From fff4d586eb5f348763189d3a278c245a8ffbb2f5 Mon Sep 17 00:00:00 2001 From: Charles Lowell Date: Fri, 6 Aug 2021 13:38:44 -0700 Subject: [PATCH 001/104] Token exchange support for ManagedIdentityCredential (#19902) --- .../azure/identity/_constants.py | 3 + .../identity/_credentials/client_assertion.py | 45 +++++++++++ .../identity/_credentials/managed_identity.py | 10 +++ .../identity/_credentials/token_exchange.py | 42 +++++++++++ .../azure/identity/_internal/aad_client.py | 7 ++ .../identity/_internal/aad_client_base.py | 41 +++++----- .../aio/_credentials/client_assertion.py | 50 +++++++++++++ .../aio/_credentials/managed_identity.py | 10 +++ .../aio/_credentials/token_exchange.py | 23 ++++++ .../identity/aio/_internal/aad_client.py | 13 +++- .../azure-identity/tests/test_aad_client.py | 10 ++- .../tests/test_aad_client_async.py | 6 +- .../tests/test_managed_identity.py | 75 ++++++++++++++----- .../tests/test_managed_identity_async.py | 66 ++++++++++++---- .../tests/test_managed_identity_client.py | 19 ++++- .../test_managed_identity_client_async.py | 22 +++++- 16 files changed, 380 insertions(+), 62 deletions(-) create mode 100644 sdk/identity/azure-identity/azure/identity/_credentials/client_assertion.py create mode 100644 sdk/identity/azure-identity/azure/identity/_credentials/token_exchange.py create mode 100644 sdk/identity/azure-identity/azure/identity/aio/_credentials/client_assertion.py create mode 100644 sdk/identity/azure-identity/azure/identity/aio/_credentials/token_exchange.py diff --git a/sdk/identity/azure-identity/azure/identity/_constants.py b/sdk/identity/azure-identity/azure/identity/_constants.py index 7766f6b82834..ea1526cac540 100644 --- a/sdk/identity/azure-identity/azure/identity/_constants.py +++ b/sdk/identity/azure-identity/azure/identity/_constants.py @@ -46,3 +46,6 @@ class EnvironmentVariables: AZURE_AUTHORITY_HOST = "AZURE_AUTHORITY_HOST" AZURE_IDENTITY_ENABLE_LEGACY_TENANT_SELECTION = "AZURE_IDENTITY_ENABLE_LEGACY_TENANT_SELECTION" AZURE_REGIONAL_AUTHORITY_NAME = "AZURE_REGIONAL_AUTHORITY_NAME" + + TOKEN_FILE_PATH = "TOKEN_FILE_PATH" + TOKEN_EXCHANGE_VARS = (AZURE_CLIENT_ID, AZURE_TENANT_ID, TOKEN_FILE_PATH) diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/client_assertion.py b/sdk/identity/azure-identity/azure/identity/_credentials/client_assertion.py new file mode 100644 index 000000000000..013307c3e39b --- /dev/null +++ b/sdk/identity/azure-identity/azure/identity/_credentials/client_assertion.py @@ -0,0 +1,45 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +from typing import TYPE_CHECKING + +from .._internal import AadClient +from .._internal.get_token_mixin import GetTokenMixin + +if TYPE_CHECKING: + from typing import Any, Callable, Optional + from azure.core.credentials import AccessToken + + +class ClientAssertionCredential(GetTokenMixin): + def __init__(self, tenant_id, client_id, get_assertion, **kwargs): + # type: (str, str, Callable[[], str], **Any) -> None + """Authenticates a service principal with a JWT assertion. + + This credential is for advanced scenarios. :class:`~azure.identity.ClientCertificateCredential` has a more + convenient API for the most common assertion scenario, authenticating a service principal with a certificate. + + :param str tenant_id: ID of the principal's tenant. Also called its "directory" ID. + :param str client_id: the principal's client ID + :param get_assertion: a callable that returns a string assertion. The credential will call this every time it + acquires a new token. + :paramtype get_assertion: Callable[[], str] + + :keyword str authority: authority of an Azure Active Directory endpoint, for example + "login.microsoftonline.com", the authority for Azure Public Cloud (which is the default). + :class:`~azure.identity.AzureAuthorityHosts` defines authorities for other clouds. + """ + self._get_assertion = get_assertion + self._client = AadClient(tenant_id, client_id, **kwargs) + super(ClientAssertionCredential, self).__init__(**kwargs) + + def _acquire_token_silently(self, *scopes, **kwargs): + # type: (*str, **Any) -> Optional[AccessToken] + return self._client.get_cached_access_token(scopes, **kwargs) + + def _request_token(self, *scopes, **kwargs): + # type: (*str, **Any) -> AccessToken + assertion = self._get_assertion() + token = self._client.obtain_token_by_jwt_assertion(scopes, assertion, **kwargs) + return token diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py b/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py index 2fc67178fee0..d0a0acef7931 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py @@ -65,6 +65,16 @@ def __init__(self, **kwargs): from .azure_arc import AzureArcCredential self._credential = AzureArcCredential(**kwargs) + elif all(os.environ.get(var) for var in EnvironmentVariables.TOKEN_EXCHANGE_VARS): + _LOGGER.info("%s will use token exchange", self.__class__.__name__) + from .token_exchange import TokenExchangeCredential + + self._credential = TokenExchangeCredential( + tenant_id=os.environ[EnvironmentVariables.AZURE_TENANT_ID], + client_id=os.environ[EnvironmentVariables.AZURE_CLIENT_ID], + token_file_path=os.environ[EnvironmentVariables.TOKEN_FILE_PATH], + **kwargs + ) else: from .imds import ImdsCredential diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/token_exchange.py b/sdk/identity/azure-identity/azure/identity/_credentials/token_exchange.py new file mode 100644 index 000000000000..bb5bcee00058 --- /dev/null +++ b/sdk/identity/azure-identity/azure/identity/_credentials/token_exchange.py @@ -0,0 +1,42 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +import time +from typing import TYPE_CHECKING + +from .client_assertion import ClientAssertionCredential + +if TYPE_CHECKING: + # pylint:disable=unused-import,ungrouped-imports + from typing import Any + + +class TokenFileMixin(object): + def __init__(self, token_file_path, **_): + # type: (str, **Any) -> None + super(TokenFileMixin, self).__init__() + self._jwt = "" + self._last_read_time = 0 + self._token_file_path = token_file_path + + def get_service_account_token(self): + # type: () -> str + now = int(time.time()) + if now - self._last_read_time > 300: + with open(self._token_file_path) as f: + self._jwt = f.read() + self._last_read_time = now + return self._jwt + + +class TokenExchangeCredential(ClientAssertionCredential, TokenFileMixin): + def __init__(self, tenant_id, client_id, token_file_path, **kwargs): + # type: (str, str, str, **Any) -> None + super(TokenExchangeCredential, self).__init__( + tenant_id=tenant_id, + client_id=client_id, + get_assertion=self.get_service_account_token, + token_file_path=token_file_path, + **kwargs + ) diff --git a/sdk/identity/azure-identity/azure/identity/_internal/aad_client.py b/sdk/identity/azure-identity/azure/identity/_internal/aad_client.py index a08a5fa8d6e4..79f986fca8a5 100644 --- a/sdk/identity/azure-identity/azure/identity/_internal/aad_client.py +++ b/sdk/identity/azure-identity/azure/identity/_internal/aad_client.py @@ -40,6 +40,13 @@ def obtain_token_by_client_secret(self, scopes, secret, **kwargs): response = self._pipeline.run(request, stream=False, retry_on_methods=self._POST, **kwargs) return self._process_response(response, now) + def obtain_token_by_jwt_assertion(self, scopes, assertion, **kwargs): + # type: (Iterable[str], str, **Any) -> AccessToken + request = self._get_jwt_assertion_request(scopes, assertion) + now = int(time.time()) + response = self._pipeline.run(request, stream=False, retry_on_methods=self._POST, **kwargs) + return self._process_response(response, now) + def obtain_token_by_refresh_token(self, scopes, refresh_token, **kwargs): # type: (Iterable[str], str, **Any) -> AccessToken request = self._get_refresh_token_request(scopes, refresh_token, **kwargs) diff --git a/sdk/identity/azure-identity/azure/identity/_internal/aad_client_base.py b/sdk/identity/azure-identity/azure/identity/_internal/aad_client_base.py index 0aeb6e0ee83e..1bf0b2d02aff 100644 --- a/sdk/identity/azure-identity/azure/identity/_internal/aad_client_base.py +++ b/sdk/identity/azure-identity/azure/identity/_internal/aad_client_base.py @@ -80,6 +80,10 @@ def get_cached_refresh_tokens(self, scopes): def obtain_token_by_authorization_code(self, scopes, code, redirect_uri, client_secret=None, **kwargs): pass + @abc.abstractmethod + def obtain_token_by_jwt_assertion(self, scopes, assertion, **kwargs): + pass + @abc.abstractmethod def obtain_token_by_client_certificate(self, scopes, certificate, **kwargs): pass @@ -165,10 +169,8 @@ def _get_auth_code_request(self, scopes, code, redirect_uri, client_secret=None, request = self._post(data, **kwargs) return request - def _get_client_certificate_request(self, scopes, certificate, **kwargs): - # type: (Iterable[str], AadClientCertificate, **Any) -> HttpRequest - audience = self._get_token_url(**kwargs) - assertion = self._get_jwt_assertion(certificate, audience) + def _get_jwt_assertion_request(self, scopes, assertion, **kwargs): + # type: (Iterable[str], str, **Any) -> HttpRequest data = { "client_assertion": assertion, "client_assertion_type": "urn:ietf:params:oauth:client-assertion-type:jwt-bearer", @@ -180,19 +182,8 @@ def _get_client_certificate_request(self, scopes, certificate, **kwargs): request = self._post(data, **kwargs) return request - def _get_client_secret_request(self, scopes, secret, **kwargs): - # type: (Iterable[str], str, **Any) -> HttpRequest - data = { - "client_id": self._client_id, - "client_secret": secret, - "grant_type": "client_credentials", - "scope": " ".join(scopes), - } - request = self._post(data, **kwargs) - return request - - def _get_jwt_assertion(self, certificate, audience): - # type: (AadClientCertificate, str) -> str + def _get_client_certificate_request(self, scopes, certificate, **kwargs): + # type: (Iterable[str], AadClientCertificate, **Any) -> HttpRequest now = int(time.time()) header = six.ensure_binary( json.dumps({"typ": "JWT", "alg": "RS256", "x5t": certificate.thumbprint}), encoding="utf-8" @@ -201,7 +192,7 @@ def _get_jwt_assertion(self, certificate, audience): json.dumps( { "jti": str(uuid4()), - "aud": audience, + "aud": self._get_token_url(**kwargs), "iss": self._client_id, "sub": self._client_id, "nbf": now, @@ -213,8 +204,20 @@ def _get_jwt_assertion(self, certificate, audience): jws = base64.urlsafe_b64encode(header) + b"." + base64.urlsafe_b64encode(payload) signature = certificate.sign(jws) jwt_bytes = jws + b"." + base64.urlsafe_b64encode(signature) + assertion = jwt_bytes.decode("utf-8") - return jwt_bytes.decode("utf-8") + return self._get_jwt_assertion_request(scopes, assertion, **kwargs) + + def _get_client_secret_request(self, scopes, secret, **kwargs): + # type: (Iterable[str], str, **Any) -> HttpRequest + data = { + "client_id": self._client_id, + "client_secret": secret, + "grant_type": "client_credentials", + "scope": " ".join(scopes), + } + request = self._post(data, **kwargs) + return request def _get_refresh_token_request(self, scopes, refresh_token, **kwargs): # type: (Iterable[str], str, **Any) -> HttpRequest diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/client_assertion.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/client_assertion.py new file mode 100644 index 000000000000..8b09b43fca3c --- /dev/null +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/client_assertion.py @@ -0,0 +1,50 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +from typing import TYPE_CHECKING + +from .._internal import AadClient, AsyncContextManager +from .._internal.get_token_mixin import GetTokenMixin + +if TYPE_CHECKING: + from typing import Any, Callable, Optional + from azure.core.credentials import AccessToken + + +class ClientAssertionCredential(AsyncContextManager, GetTokenMixin): + def __init__(self, tenant_id: str, client_id: str, get_assertion: "Callable[[], str]", **kwargs: "Any") -> None: + """Authenticates a service principal with a JWT assertion. + + This credential is for advanced scenarios. :class:`~azure.identity.ClientCertificateCredential` has a more + convenient API for the most common assertion scenario, authenticating a service principal with a certificate. + + :param str tenant_id: ID of the principal's tenant. Also called its "directory" ID. + :param str client_id: the principal's client ID + :param get_assertion: a callable that returns a string assertion. The credential will call this every time it + acquires a new token. + :paramtype get_assertion: Callable[[], str] + + :keyword str authority: authority of an Azure Active Directory endpoint, for example + "login.microsoftonline.com", the authority for Azure Public Cloud (which is the default). + :class:`~azure.identity.AzureAuthorityHosts` defines authorities for other clouds. + """ + self._get_assertion = get_assertion + self._client = AadClient(tenant_id, client_id, **kwargs) + super().__init__(**kwargs) + + async def __aenter__(self): + await self._client.__aenter__() + return self + + async def close(self) -> None: + """Close the credential's transport session.""" + await self._client.close() + + async def _acquire_token_silently(self, *scopes: str, **kwargs: "Any") -> "Optional[AccessToken]": + return self._client.get_cached_access_token(scopes, **kwargs) + + async def _request_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": + assertion = self._get_assertion() + token = await self._client.obtain_token_by_jwt_assertion(scopes, assertion, **kwargs) + return token diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/managed_identity.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/managed_identity.py index 11c685572794..075dffe1d463 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/managed_identity.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/managed_identity.py @@ -62,6 +62,16 @@ def __init__(self, **kwargs: "Any") -> None: from .azure_arc import AzureArcCredential self._credential = AzureArcCredential(**kwargs) + elif all(os.environ.get(var) for var in EnvironmentVariables.TOKEN_EXCHANGE_VARS): + _LOGGER.info("%s will use token exchange", self.__class__.__name__) + from .token_exchange import TokenExchangeCredential + + self._credential = TokenExchangeCredential( + tenant_id=os.environ[EnvironmentVariables.AZURE_TENANT_ID], + client_id=os.environ[EnvironmentVariables.AZURE_CLIENT_ID], + token_file_path=os.environ[EnvironmentVariables.TOKEN_FILE_PATH], + **kwargs + ) else: from .imds import ImdsCredential diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/token_exchange.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/token_exchange.py new file mode 100644 index 000000000000..1ac071ed310e --- /dev/null +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/token_exchange.py @@ -0,0 +1,23 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +from typing import TYPE_CHECKING + +from .client_assertion import ClientAssertionCredential +from ..._credentials.token_exchange import TokenFileMixin + +if TYPE_CHECKING: + # pylint:disable=unused-import,ungrouped-imports + from typing import Any + + +class TokenExchangeCredential(ClientAssertionCredential, TokenFileMixin): + def __init__(self, tenant_id: str, client_id: str, token_file_path: str, **kwargs: "Any") -> None: + super().__init__( + tenant_id=tenant_id, + client_id=client_id, + get_assertion=self.get_service_account_token, + token_file_path=token_file_path, + **kwargs + ) diff --git a/sdk/identity/azure-identity/azure/identity/aio/_internal/aad_client.py b/sdk/identity/azure-identity/azure/identity/aio/_internal/aad_client.py index 249a63d69e0e..44123a2c9f69 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_internal/aad_client.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_internal/aad_client.py @@ -48,8 +48,9 @@ async def obtain_token_by_authorization_code( response = await self._pipeline.run(request, retry_on_methods=self._POST, **kwargs) return self._process_response(response, now) - async def obtain_token_by_client_certificate(self, scopes, certificate, **kwargs): - # type: (Iterable[str], AadClientCertificate, **Any) -> AccessToken + async def obtain_token_by_client_certificate( + self, scopes: "Iterable[str]", certificate: "AadClientCertificate", **kwargs: "Any" + ) -> "AccessToken": request = self._get_client_certificate_request(scopes, certificate, **kwargs) now = int(time.time()) response = await self._pipeline.run(request, stream=False, retry_on_methods=self._POST, **kwargs) @@ -63,6 +64,14 @@ async def obtain_token_by_client_secret( response = await self._pipeline.run(request, retry_on_methods=self._POST, **kwargs) return self._process_response(response, now) + async def obtain_token_by_jwt_assertion( + self, scopes: "Iterable[str]", assertion: str, **kwargs: "Any" + ) -> "AccessToken": + request = self._get_jwt_assertion_request(scopes, assertion) + now = int(time.time()) + response = await self._pipeline.run(request, stream=False, retry_on_methods=self._POST, **kwargs) + return self._process_response(response, now) + async def obtain_token_by_refresh_token( self, scopes: "Iterable[str]", refresh_token: str, **kwargs: "Any" ) -> "AccessToken": diff --git a/sdk/identity/azure-identity/tests/test_aad_client.py b/sdk/identity/azure-identity/tests/test_aad_client.py index 9f798d50c4fe..2737f955b51d 100644 --- a/sdk/identity/azure-identity/tests/test_aad_client.py +++ b/sdk/identity/azure-identity/tests/test_aad_client.py @@ -3,12 +3,10 @@ # Licensed under the MIT License. # ------------------------------------ import functools -import time from azure.core.exceptions import ClientAuthenticationError, ServiceRequestError -from azure.identity._constants import EnvironmentVariables, DEFAULT_REFRESH_OFFSET, DEFAULT_TOKEN_REFRESH_RETRY_DELAY +from azure.identity._constants import EnvironmentVariables from azure.identity._internal import AadClient, AadClientCertificate -from azure.core.credentials import AccessToken import pytest from msal import TokenCache @@ -234,10 +232,14 @@ def test_retries_token_requests(): transport.send.reset_mock() with pytest.raises(ServiceRequestError, match=message): - client.obtain_token_by_refresh_token("", "") + client.obtain_token_by_jwt_assertion("", "") assert transport.send.call_count > 1 transport.send.reset_mock() + with pytest.raises(ServiceRequestError, match=message): + client.obtain_token_by_refresh_token("", "") + assert transport.send.call_count > 1 + def test_shared_cache(): """The client should return only tokens associated with its own client_id""" diff --git a/sdk/identity/azure-identity/tests/test_aad_client_async.py b/sdk/identity/azure-identity/tests/test_aad_client_async.py index 64212d573e97..5f3fd757d399 100644 --- a/sdk/identity/azure-identity/tests/test_aad_client_async.py +++ b/sdk/identity/azure-identity/tests/test_aad_client_async.py @@ -236,10 +236,14 @@ async def test_retries_token_requests(): transport.send.reset_mock() with pytest.raises(ServiceRequestError, match=message): - await client.obtain_token_by_refresh_token("", "") + await client.obtain_token_by_jwt_assertion("", "") assert transport.send.call_count > 1 transport.send.reset_mock() + with pytest.raises(ServiceRequestError, match=message): + await client.obtain_token_by_refresh_token("", "") + assert transport.send.call_count > 1 + async def test_shared_cache(): """The client should return only tokens associated with its own client_id""" diff --git a/sdk/identity/azure-identity/tests/test_managed_identity.py b/sdk/identity/azure-identity/tests/test_managed_identity.py index a492c8315555..eb199f08b368 100644 --- a/sdk/identity/azure-identity/tests/test_managed_identity.py +++ b/sdk/identity/azure-identity/tests/test_managed_identity.py @@ -11,12 +11,10 @@ import mock # type: ignore from azure.core.credentials import AccessToken -from azure.core.exceptions import ClientAuthenticationError, ServiceRequestError -from azure.core.pipeline.transport import HttpRequest +from azure.core.exceptions import ClientAuthenticationError from azure.identity import ManagedIdentityCredential from azure.identity._constants import EnvironmentVariables from azure.identity._credentials.imds import IMDS_AUTHORITY, IMDS_TOKEN_PATH -from azure.identity._internal.managed_identity_client import ManagedIdentityClient from azure.identity._internal.user_agent import USER_AGENT import pytest @@ -34,6 +32,11 @@ EnvironmentVariables.IDENTITY_SERVER_THUMBPRINT: "...", }, {EnvironmentVariables.IDENTITY_ENDPOINT: "...", EnvironmentVariables.IMDS_ENDPOINT: "..."}, # Arc + { # token exchange + EnvironmentVariables.AZURE_CLIENT_ID: "...", + EnvironmentVariables.AZURE_TENANT_ID: "...", + EnvironmentVariables.TOKEN_FILE_PATH: __file__, + }, {}, # IMDS ) @@ -547,9 +550,7 @@ def send(request, **_): # Cloud Shell with mock.patch.dict( - MANAGED_IDENTITY_ENVIRON, - {EnvironmentVariables.MSI_ENDPOINT: "https://localhost"}, - clear=True, + MANAGED_IDENTITY_ENVIRON, {EnvironmentVariables.MSI_ENDPOINT: "https://localhost"}, clear=True ): credential = ManagedIdentityCredential(client_id=None, transport=mock.Mock(send=send)) token = credential.get_token(scope) @@ -733,18 +734,56 @@ def test_azure_arc_client_id(): credential.get_token("scope") -def test_managed_identity_client_retry(): - """ManagedIdentityClient should retry token requests""" +def test_token_exchange(tmpdir): + exchange_token = "exchange-token" + token_file = tmpdir.join("token") + token_file.write(exchange_token) + access_token = "***" + authority = "https://localhost" + client_id = "client_id" + tenant = "tenant_id" + scope = "scope" - message = "can't connect" - transport = mock.Mock(send=mock.Mock(side_effect=ServiceRequestError(message))) - request_factory = mock.Mock() + transport = validating_transport( + requests=[ + Request( + base_url=authority, + method="POST", + required_data={ + "client_assertion": exchange_token, + "client_assertion_type": "urn:ietf:params:oauth:client-assertion-type:jwt-bearer", + "client_id": client_id, + "grant_type": "client_credentials", + "scope": scope, + }, + ) + ], + responses=[ + mock_response( + json_payload={ + "access_token": access_token, + "expires_in": 3600, + "ext_expires_in": 3600, + "expires_on": int(time.time()) + 3600, + "not_before": int(time.time()), + "resource": scope, + "token_type": "Bearer", + } + ) + ], + ) - client = ManagedIdentityClient(request_factory, transport=transport) + with mock.patch.dict( + "os.environ", + { + EnvironmentVariables.AZURE_AUTHORITY_HOST: authority, + EnvironmentVariables.AZURE_CLIENT_ID: client_id, + EnvironmentVariables.AZURE_TENANT_ID: tenant, + EnvironmentVariables.TOKEN_FILE_PATH: token_file.strpath, + }, + clear=True, + ): + credential = ManagedIdentityCredential(transport=transport) + token = credential.get_token(scope) - for method in ("GET", "POST"): - request_factory.return_value = HttpRequest(method, "https://localhost") - with pytest.raises(ServiceRequestError, match=message): - client.request_token("scope") - assert transport.send.call_count > 1 - transport.send.reset_mock() + assert token.token == access_token diff --git a/sdk/identity/azure-identity/tests/test_managed_identity_async.py b/sdk/identity/azure-identity/tests/test_managed_identity_async.py index dde080f03961..14f616c404cc 100644 --- a/sdk/identity/azure-identity/tests/test_managed_identity_async.py +++ b/sdk/identity/azure-identity/tests/test_managed_identity_async.py @@ -7,10 +7,8 @@ from unittest import mock from azure.core.credentials import AccessToken -from azure.core.exceptions import ClientAuthenticationError, ServiceRequestError -from azure.core.pipeline.transport import HttpRequest +from azure.core.exceptions import ClientAuthenticationError from azure.identity.aio import ManagedIdentityCredential -from azure.identity.aio._internal.managed_identity_client import AsyncManagedIdentityClient from azure.identity._credentials.imds import IMDS_AUTHORITY, IMDS_TOKEN_PATH from azure.identity._constants import EnvironmentVariables from azure.identity._internal.user_agent import USER_AGENT @@ -716,18 +714,56 @@ async def test_azure_arc_client_id(): @pytest.mark.asyncio -async def test_managed_identity_client_retry(): - """AsyncManagedIdentityClient should retry token requests""" +async def test_token_exchange(tmpdir): + exchange_token = "exchange-token" + token_file = tmpdir.join("token") + token_file.write(exchange_token) + access_token = "***" + authority = "https://localhost" + client_id = "client_id" + tenant = "tenant_id" + scope = "scope" - message = "can't connect" - transport = mock.Mock(send=mock.Mock(side_effect=ServiceRequestError(message)), sleep=get_completed_future) - request_factory = mock.Mock() + transport = async_validating_transport( + requests=[ + Request( + base_url=authority, + method="POST", + required_data={ + "client_assertion": exchange_token, + "client_assertion_type": "urn:ietf:params:oauth:client-assertion-type:jwt-bearer", + "client_id": client_id, + "grant_type": "client_credentials", + "scope": scope, + }, + ) + ], + responses=[ + mock_response( + json_payload={ + "access_token": access_token, + "expires_in": 3600, + "ext_expires_in": 3600, + "expires_on": int(time.time()) + 3600, + "not_before": int(time.time()), + "resource": scope, + "token_type": "Bearer", + } + ) + ], + ) - client = AsyncManagedIdentityClient(request_factory, transport=transport) + with mock.patch.dict( + "os.environ", + { + EnvironmentVariables.AZURE_AUTHORITY_HOST: authority, + EnvironmentVariables.AZURE_CLIENT_ID: client_id, + EnvironmentVariables.AZURE_TENANT_ID: tenant, + EnvironmentVariables.TOKEN_FILE_PATH: token_file.strpath, + }, + clear=True, + ): + credential = ManagedIdentityCredential(transport=transport) + token = await credential.get_token(scope) - for method in ("GET", "POST"): - request_factory.return_value = HttpRequest(method, "https://localhost") - with pytest.raises(ServiceRequestError, match=message): - await client.request_token("scope") - assert transport.send.call_count > 1 - transport.send.reset_mock() + assert token.token == access_token diff --git a/sdk/identity/azure-identity/tests/test_managed_identity_client.py b/sdk/identity/azure-identity/tests/test_managed_identity_client.py index 909a31e90cea..e797cd875543 100644 --- a/sdk/identity/azure-identity/tests/test_managed_identity_client.py +++ b/sdk/identity/azure-identity/tests/test_managed_identity_client.py @@ -5,7 +5,7 @@ import json import time -from azure.core.exceptions import ClientAuthenticationError +from azure.core.exceptions import ClientAuthenticationError, ServiceRequestError from azure.core.pipeline.transport import HttpRequest from azure.identity._internal.managed_identity_client import ManagedIdentityClient import pytest @@ -83,6 +83,23 @@ def send(request, **_): assert token.token == expected_token +def test_retry(): + """ManagedIdentityClient should retry token requests""" + + message = "can't connect" + transport = mock.Mock(send=mock.Mock(side_effect=ServiceRequestError(message))) + request_factory = mock.Mock() + + client = ManagedIdentityClient(request_factory, transport=transport) + + for method in ("GET", "POST"): + request_factory.return_value = HttpRequest(method, "https://localhost") + with pytest.raises(ServiceRequestError, match=message): + client.request_token("scope") + assert transport.send.call_count > 1 + transport.send.reset_mock() + + @pytest.mark.parametrize("content_type", ("text/html","application/json")) def test_unexpected_content(content_type): content = "not JSON" diff --git a/sdk/identity/azure-identity/tests/test_managed_identity_client_async.py b/sdk/identity/azure-identity/tests/test_managed_identity_client_async.py index bba2a5c77b9d..03a9d870aa4a 100644 --- a/sdk/identity/azure-identity/tests/test_managed_identity_client_async.py +++ b/sdk/identity/azure-identity/tests/test_managed_identity_client_async.py @@ -6,13 +6,13 @@ import time from unittest.mock import Mock, patch -from azure.core.exceptions import ClientAuthenticationError +from azure.core.exceptions import ClientAuthenticationError, ServiceRequestError from azure.core.pipeline.transport import HttpRequest from azure.identity.aio._internal.managed_identity_client import AsyncManagedIdentityClient import pytest from helpers import mock_response, Request -from helpers_async import async_validating_transport, AsyncMockTransport +from helpers_async import async_validating_transport, AsyncMockTransport, get_completed_future pytestmark = pytest.mark.asyncio @@ -108,6 +108,24 @@ async def send(request, **_): assert token.token == expected_token +@pytest.mark.asyncio +async def test_managed_identity_client_retry(): + """AsyncManagedIdentityClient should retry token requests""" + + message = "can't connect" + transport = Mock(send=Mock(side_effect=ServiceRequestError(message)), sleep=get_completed_future) + request_factory = Mock() + + client = AsyncManagedIdentityClient(request_factory, transport=transport) + + for method in ("GET", "POST"): + request_factory.return_value = HttpRequest(method, "https://localhost") + with pytest.raises(ServiceRequestError, match=message): + await client.request_token("scope") + assert transport.send.call_count > 1 + transport.send.reset_mock() + + @pytest.mark.parametrize("content_type", ("text/html", "application/json")) async def test_unexpected_content(content_type): content = "not JSON" From 168ac5b5f3bd8aad0c4990ca25fe622026e97c27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= <39780829+mccoyp@users.noreply.github.com> Date: Fri, 6 Aug 2021 15:11:25 -0700 Subject: [PATCH 002/104] [Key Vault] Update test certificates (#20135) --- eng/CredScanSuppression.json | 4 +- ...password_encoded_no_policy_2016_10_01.yaml | 31 +- ...te_not_password_encoded_no_policy_7_0.yaml | 31 +- ...te_not_password_encoded_no_policy_7_1.yaml | 31 +- ...te_not_password_encoded_no_policy_7_2.yaml | 27 +- ...password_encoded_no_policy_2016_10_01.yaml | 33 +- ...ficate_password_encoded_no_policy_7_0.yaml | 33 +- ...ficate_password_encoded_no_policy_7_1.yaml | 33 +- ...ficate_password_encoded_no_policy_7_2.yaml | 28 +- ...tificates_client.test_list_2016_10_01.yaml | 398 +- ...est_certificates_client.test_list_7_0.yaml | 412 +- ...est_certificates_client.test_list_7_1.yaml | 396 +- ...est_certificates_client.test_list_7_2.yaml | 426 +- ..._list_certificate_versions_2016_10_01.yaml | 224 +- ...nt.test_list_certificate_versions_7_0.yaml | 224 +- ...nt.test_list_certificate_versions_7_1.yaml | 224 +- ...nt.test_list_certificate_versions_7_2.yaml | 239 +- ...ent.test_recover_and_purge_2016_10_01.yaml | 8550 ++++++++--- ...tes_client.test_recover_and_purge_7_0.yaml | 9664 ++++++++++-- ...tes_client.test_recover_and_purge_7_1.yaml | 6396 ++++++-- ...tes_client.test_recover_and_purge_7_2.yaml | 12745 ++++++++++++++-- ...password_encoded_no_policy_2016_10_01.yaml | 35 +- ...te_not_password_encoded_no_policy_7_0.yaml | 35 +- ...te_not_password_encoded_no_policy_7_1.yaml | 35 +- ...te_not_password_encoded_no_policy_7_2.yaml | 27 +- ...password_encoded_no_policy_2016_10_01.yaml | 37 +- ...ficate_password_encoded_no_policy_7_0.yaml | 37 +- ...ficate_password_encoded_no_policy_7_1.yaml | 37 +- ...ficate_password_encoded_no_policy_7_2.yaml | 29 +- ...tes_client_async.test_list_2016_10_01.yaml | 562 +- ...rtificates_client_async.test_list_7_0.yaml | 607 +- ...rtificates_client_async.test_list_7_1.yaml | 623 +- ...rtificates_client_async.test_list_7_2.yaml | 605 +- ..._list_certificate_versions_2016_10_01.yaml | 237 +- ...nc.test_list_certificate_versions_7_0.yaml | 237 +- ...nc.test_list_certificate_versions_7_1.yaml | 237 +- ...nc.test_list_certificate_versions_7_2.yaml | 204 +- ...ync.test_recover_and_purge_2016_10_01.yaml | 6345 ++++++-- ...ient_async.test_recover_and_purge_7_0.yaml | 6023 ++++++-- ...ient_async.test_recover_and_purge_7_1.yaml | 9750 ++++++++++-- ...ient_async.test_recover_and_purge_7_2.yaml | 6107 ++++++-- .../tests/test_certificates_client.py | 20 +- .../tests/test_certificates_client_async.py | 14 +- 43 files changed, 57556 insertions(+), 14436 deletions(-) diff --git a/eng/CredScanSuppression.json b/eng/CredScanSuppression.json index ac3db3a03547..a7494311e04b 100644 --- a/eng/CredScanSuppression.json +++ b/eng/CredScanSuppression.json @@ -29,8 +29,8 @@ "nodesdk", "p@55wOrd", "pass$w0rd", - "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", ], "_justification": "Secret used by test code, it is fake." }, diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_not_password_encoded_no_policy_2016_10_01.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_not_password_encoded_no_policy_2016_10_01.yaml index ea98460b67d2..e4fd3d0563ae 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_not_password_encoded_no_policy_2016_10_01.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_not_password_encoded_no_policy_2016_10_01.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate8e0f2344/import?api-version=2016-10-01 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:37 GMT + - Fri, 06 Aug 2021 18:11:14 GMT expires: - '-1' pragma: @@ -43,16 +43,16 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"value": "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"}' + body: '{"value": "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"}' headers: Accept: - application/json @@ -61,25 +61,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3501' + - '3329' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate8e0f2344/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate8e0f2344/2449be7566cf4ab1a355c0e86ca82682","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportNotPasswordEncodedCertificate8e0f2344/2449be7566cf4ab1a355c0e86ca82682","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportNotPasswordEncodedCertificate8e0f2344/2449be7566cf4ab1a355c0e86ca82682","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","cer":"MIIDKDCCAhCgAwIBAgIQfDvNAzhSSh6HHUDV89pfITANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDEwZNeUNlcnQwHhcNMjAwNjI1MTMwMDMzWhcNMjEwNjI1MTMxMDMzWjARMQ8wDQYDVQQDEwZNeUNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQChubMEV/8RtgjNYGw8CMGo6p9VssZjWulzHfnjVcemZ96eYegXh74fIDTdh+J9CK5oHd/qU4IGKR5lRkiEMw7mdPv4FUWRmd1KG1CR9MTShnjL9kaIFv5zYSy9oQZL/wWR4pX3wXV53tD6P42higSrad7wAFV2GanDDBEMNXm7x5o0bvwzNRUMobW9SnYy2wmTIFjQNyHovDWuXLaafMfv4yl59dv1mw6GJkOG6wyHPOEx8auoyQFRU5C3aTzS8gG0AJMW7uwwjSz/sh5sr5pqNu99GOx1ZVANySwKU+Lgjp0P6AKg1uluicsZc/aIFV7ulp+9raz/MXVmTfMOiobbAgMBAAGjfDB6MA4GA1UdDwEB/wQEAwIFoDAJBgNVHRMEAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSMEGDAWgBTjkI1VhBb9cYdl70SJH8tdOV847DAdBgNVHQ4EFgQU45CNVYQW/XGHZe9EiR/LXTlfOOwwDQYJKoZIhvcNAQELBQADggEBAGafeWghsVmVEo6/QGgBRW/hhVWq4MEfW5YOLwmNObpJL3/OEKhUDw9u9to1kWcos/aRj4u+bz3vTqIJxK+i0dEBIo///mkxJhtLLGd6Ks6rXlGgEOG1+m8GvZkUsLOaZsPAFYAgnF091iS7PcNW5VYqvpFvIWgIEVwhE0dBGCUogoBatYZyc+YqWCqbzv8mhui3NgToGoiLW1dFxXbeyeGGee5yyroSDE+6jTbMCzrdX/2fK41J2lOL3Ap/IYtHltCTKIOmlToq6uG2qSyeYGLL63bYo+4ZvpHyjN/5QYQQXS4WMyPw5o9+jcIyONNOEbJoiFUTwsm55A0diDisDlk=","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616448999,"updated":1616448999,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate8e0f2344/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=MyCert","ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":13,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1616448999,"updated":1616448999}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate8e0f2344/c321cb1f813d4e9a8c5d42d524b8391c","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportNotPasswordEncodedCertificate8e0f2344/c321cb1f813d4e9a8c5d42d524b8391c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportNotPasswordEncodedCertificate8e0f2344/c321cb1f813d4e9a8c5d42d524b8391c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273475,"updated":1628273475,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate8e0f2344/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1628273475,"updated":1628273475}}}' headers: cache-control: - no-cache content-length: - - '2350' + - '2397' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:39 GMT + - Fri, 06 Aug 2021 18:11:15 GMT expires: - '-1' pragma: @@ -91,9 +92,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_not_password_encoded_no_policy_7_0.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_not_password_encoded_no_policy_7_0.yaml index 637ae6a9a855..ac169eb52ae0 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_not_password_encoded_no_policy_7_0.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_not_password_encoded_no_policy_7_0.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7321c1/import?api-version=7.0 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:39 GMT + - Fri, 06 Aug 2021 18:11:15 GMT expires: - '-1' pragma: @@ -43,16 +43,16 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"value": "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"}' + body: '{"value": "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"}' headers: Accept: - application/json @@ -61,25 +61,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3501' + - '3329' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7321c1/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7321c1/b43a2e1378e244c5b6113ea8dbb12773","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportNotPasswordEncodedCertificate9c7321c1/b43a2e1378e244c5b6113ea8dbb12773","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportNotPasswordEncodedCertificate9c7321c1/b43a2e1378e244c5b6113ea8dbb12773","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","cer":"MIIDKDCCAhCgAwIBAgIQfDvNAzhSSh6HHUDV89pfITANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDEwZNeUNlcnQwHhcNMjAwNjI1MTMwMDMzWhcNMjEwNjI1MTMxMDMzWjARMQ8wDQYDVQQDEwZNeUNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQChubMEV/8RtgjNYGw8CMGo6p9VssZjWulzHfnjVcemZ96eYegXh74fIDTdh+J9CK5oHd/qU4IGKR5lRkiEMw7mdPv4FUWRmd1KG1CR9MTShnjL9kaIFv5zYSy9oQZL/wWR4pX3wXV53tD6P42higSrad7wAFV2GanDDBEMNXm7x5o0bvwzNRUMobW9SnYy2wmTIFjQNyHovDWuXLaafMfv4yl59dv1mw6GJkOG6wyHPOEx8auoyQFRU5C3aTzS8gG0AJMW7uwwjSz/sh5sr5pqNu99GOx1ZVANySwKU+Lgjp0P6AKg1uluicsZc/aIFV7ulp+9raz/MXVmTfMOiobbAgMBAAGjfDB6MA4GA1UdDwEB/wQEAwIFoDAJBgNVHRMEAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSMEGDAWgBTjkI1VhBb9cYdl70SJH8tdOV847DAdBgNVHQ4EFgQU45CNVYQW/XGHZe9EiR/LXTlfOOwwDQYJKoZIhvcNAQELBQADggEBAGafeWghsVmVEo6/QGgBRW/hhVWq4MEfW5YOLwmNObpJL3/OEKhUDw9u9to1kWcos/aRj4u+bz3vTqIJxK+i0dEBIo///mkxJhtLLGd6Ks6rXlGgEOG1+m8GvZkUsLOaZsPAFYAgnF091iS7PcNW5VYqvpFvIWgIEVwhE0dBGCUogoBatYZyc+YqWCqbzv8mhui3NgToGoiLW1dFxXbeyeGGee5yyroSDE+6jTbMCzrdX/2fK41J2lOL3Ap/IYtHltCTKIOmlToq6uG2qSyeYGLL63bYo+4ZvpHyjN/5QYQQXS4WMyPw5o9+jcIyONNOEbJoiFUTwsm55A0diDisDlk=","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616449000,"updated":1616449000,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7321c1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=MyCert","ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":13,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1616449000,"updated":1616449000}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7321c1/2a5847871b0b4d1b855d7a5219219521","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportNotPasswordEncodedCertificate9c7321c1/2a5847871b0b4d1b855d7a5219219521","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportNotPasswordEncodedCertificate9c7321c1/2a5847871b0b4d1b855d7a5219219521","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273476,"updated":1628273476,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7321c1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1628273476,"updated":1628273476}}}' headers: cache-control: - no-cache content-length: - - '2350' + - '2397' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:40 GMT + - Fri, 06 Aug 2021 18:11:16 GMT expires: - '-1' pragma: @@ -91,9 +92,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_not_password_encoded_no_policy_7_1.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_not_password_encoded_no_policy_7_1.yaml index 3cc48c30a75f..4d822dfe20e4 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_not_password_encoded_no_policy_7_1.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_not_password_encoded_no_policy_7_1.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7421c2/import?api-version=7.1 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:40 GMT + - Fri, 06 Aug 2021 18:11:16 GMT expires: - '-1' pragma: @@ -43,16 +43,16 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"value": "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"}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIE7pdl4fTqmwCAggAgIID0MDlcRFQUH0YDxopuqVyuEd4OLfawucEAxGvdj9+SMs34Cz1tVyZgfFuU4MwlLk6cA1dog8iw9/f8/VlA6wS0DHhslLL3JzSxZoi6JQQ0IYgjWaIv4c+wT0IcBhc2USI3lPqoqALG15qcs8fAEpDIssUplDcmA7gLVvBvw1utAipib8y93J71tIIedDaf0pAuVuC6K1PRI3HWVnUetCaiq4AW2iQu7f0rxJVDcKubmNinEivyRi4yl2Q1g2OwGlqwZEAnIW02uE+FzgFk51OA357vvooKicb0fdDz+hsRuzlWMhs2ciFMg71jlCUIKnvAKXCR714ox+OK8pTN1KQy3ICAFy+m6lNpkwkozfRoMwJyRGt5Tm6N/k9nQM1ysu3xqw3hG8q4srCbWhxcUrvrDcxvWe5Q8WX8Sl8nJ4joPZipBxDSEKYPqk9qkPF+YZbAmjcS3mw0AI5V8v31WQaa/i6LxQGwKUVSyjHe6ZDskQjyogtRmt61z1MYHmv9iNuLyyWhq9w7hV/AyKTzQ7FsWcK2vdNZJA2lj8H7rSrYtaVFNPMBzOa4KsJmif9s9B0VyMlX37XB1tGEtRmRuJtA+EZYVzu50J/ZVx2QGr40IpmyYKwB6CTQpBE12W9RMgMLYy+YAykrexYOJaIh9wfzLi/bAH8uCNTKueeVREnMHrzSF1xNQzqW8okoEMvSdr6+uCjHxt1cmRhUOcGvocLfNOgNhz+qwztLr35QTE8zTnrjvhb0NKfT1vpGa0nXP3EBYDolRqTZgKlG9icupDI57wDNuHED/d63Ri+tCbs3VF+QjcPBO8q3xz0hMj38oYLnHYt1i4YQOvXSDdZLc4fW5GXB1cVmP9vxbM0lxBKCLA8V0wZ8P341Dknr5WhS21A0qs3b9FavwbUUCDTuvky/1qhA6MaxqbtzjeVm7mYJ7TnCQveH0Iy3RHEPQrzrGUQc0bEBfissGeVYlghNULlaDW9CobT6J+pYT0y85flg+qtTZX69NaI4mZuh11hkKLmbVx6gGouQ79XmpE3+vNycEQNota534gUs77qF0VACJHnbgh05Qhxkp9Xd/LSUt+6r9niTa9HWQ+SMdfXuu6ognA3lMGeO4i0NTFkXA1MNs+e0QQZqNX8CiCj09i6YeMNVTdIh1ufrEF9YlO8yjLitHVSJRuY65QCCpPsS5Ugdk+5tUD3H2l1j/ZA5f73z2JdFEAchPRLsNQKTx49ZvsSex2ikEJeNjHDBuMQZtVZZDs9DdVQL/i49Mc7N+/x37AcLFx+DelOKZ0F5LgiDDprfU8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIwQ83ZA6tJFoCAggABIIEyHQt53aY9srYggLfYUSeD6Gcjm7uEA5F24s9r3FZF50YRSztbJIrqGd6oytw4LDCInANcGuCF3WQjSdEB6ABy+Igmbk9OAsFAy18txfg05UQb4JYN3M0XkYywh+GlMlZdcsZQakXqBGSj6kyG4J9ISgGPpvSqopo7fUHjc3QjWcG07d42u6lgkLxdQH2e+qiHWA+9C3mawA5AYWA6sciEoKzYOZkl7ZtWptpJJWD54HtIT7ENGkHM6y2LM+FyMC0axoUsFawoObzcbJLX29Zfohzq9yt169ZLcKDC1zpS6R0MIRE5rs4727vG9mJWMetDpIg/2fka4nkhfry2Wo+Pp/065aUSfHbQGMZ2Lw/zgU1Eo/Bau+fREft/DRX/sZpkd0ulPlbxmQ80Xf6IXRSGD5poq3B19dJpKHmJagFJu1IgXEovjpexrYEmEAuzLaH1wdMTMGViWHsxu+g066LuHbBfJQ4THnAOp0N2eUkcfO3oJ3thzGnvWXM4lKAkULcnBlQnnfKi2CrQYJCJMhyIicYYs+03gxXxNwQihZPm3VI3an/ci1otoh19WP4on3DqZ4KySU+PZ45XzDg1H00+nhyShwuyiFhDN6XuJ0VWIZZEvoPRY1Tmt2prP/1B1Kk9+lishvTJKkuZ3rqC1bkJioIWte1FEoktCtzQ3dVUwlvy1r2y1WL5OTdk6yIENvm9+xHSkJelkZjW+Jr/B9dyZ2o9+oJGuLW8J2gNixecnWJXlb/tPwmL7iwLmFfM5tw27LnYO54dfUnq00G5JM6yiAj9i73RLkZo4lq29HOsoi4T3s06KpkOVhrIud7VhPFdzWtptcV9gbidHKtX209oZKAVgXa538DyKownqHx3I8yjXs0eFlty1CJjBP9fuAvllyNpUteuZoDcS45Zwl3WOpPrL595gBwy5yGOADOJXA3ww2oqvlTcZv1lyteKght3hMkSgy2mIGYAa19v+ZK0LxKxvwCCkC+bMuyTduiaUJmHmI7k0lVIt/5WPzz9cnvCahhCovN/+C0LI1xbOTW9nDp2Ffsb0aC9XYBRf/amRCiHmMzB18E85aA05h3l7KXPdck/xrKEePdv4dnLWxvHw69O6sjssmdV3q6+cZgYYLZAEl1byIbZBTQaHT0GhzcmHJrW71L6Sl/9TEfmDSvctEEe4cZd8o29TXqzE10kmrt8dqoRbYiNq5CODPiithVtCRWQu3aFoLkT0ooWEYk+IWU6/WQ8rq7KkZ6BR8JV60I3WbXLejTyaTf79VMt8myIET5GjSc7r+tWyDRCHcU32Guyw7F+9ndkMlVuI5gB/zfrsfX6noSQnx72yF6NrIyhJWf/Zl3NMbnPKUHA+sZkjE4+Hwvf5yWkjFZhNeLq/4gaXQk7yEddjoCpN/cWsVjX8NxZFsRLs00Ag89+NAbgWkr2eejKcXB+I4TZHVee8IPKdEh8ga6RtDD8GV9VpwhnOpDHT5K1CtuX2CyTMl8fgUxobZ4kauiRr4dChd5n9Bgp7mvTarl7k2nVXptSJDmaPvZ0ETht+WF24+a/7XqV7fyHoYU/WOvEGPW34a7X8R5UJWaOwZTcpqmfp8iwapRtgvQoXAISy2wK20fS0nK79nlqnhp5KEddTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQUY8Q/ANtHMzVyl4asrQ/lPKRjd2AECOBKL60N+UaKAgIIAA=="}' headers: Accept: - application/json @@ -61,25 +61,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3501' + - '3329' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7421c2/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7421c2/7233c7729e5a4361bd6eb37c33732b12","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportNotPasswordEncodedCertificate9c7421c2/7233c7729e5a4361bd6eb37c33732b12","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportNotPasswordEncodedCertificate9c7421c2/7233c7729e5a4361bd6eb37c33732b12","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","cer":"MIIDKDCCAhCgAwIBAgIQfDvNAzhSSh6HHUDV89pfITANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDEwZNeUNlcnQwHhcNMjAwNjI1MTMwMDMzWhcNMjEwNjI1MTMxMDMzWjARMQ8wDQYDVQQDEwZNeUNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQChubMEV/8RtgjNYGw8CMGo6p9VssZjWulzHfnjVcemZ96eYegXh74fIDTdh+J9CK5oHd/qU4IGKR5lRkiEMw7mdPv4FUWRmd1KG1CR9MTShnjL9kaIFv5zYSy9oQZL/wWR4pX3wXV53tD6P42higSrad7wAFV2GanDDBEMNXm7x5o0bvwzNRUMobW9SnYy2wmTIFjQNyHovDWuXLaafMfv4yl59dv1mw6GJkOG6wyHPOEx8auoyQFRU5C3aTzS8gG0AJMW7uwwjSz/sh5sr5pqNu99GOx1ZVANySwKU+Lgjp0P6AKg1uluicsZc/aIFV7ulp+9raz/MXVmTfMOiobbAgMBAAGjfDB6MA4GA1UdDwEB/wQEAwIFoDAJBgNVHRMEAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSMEGDAWgBTjkI1VhBb9cYdl70SJH8tdOV847DAdBgNVHQ4EFgQU45CNVYQW/XGHZe9EiR/LXTlfOOwwDQYJKoZIhvcNAQELBQADggEBAGafeWghsVmVEo6/QGgBRW/hhVWq4MEfW5YOLwmNObpJL3/OEKhUDw9u9to1kWcos/aRj4u+bz3vTqIJxK+i0dEBIo///mkxJhtLLGd6Ks6rXlGgEOG1+m8GvZkUsLOaZsPAFYAgnF091iS7PcNW5VYqvpFvIWgIEVwhE0dBGCUogoBatYZyc+YqWCqbzv8mhui3NgToGoiLW1dFxXbeyeGGee5yyroSDE+6jTbMCzrdX/2fK41J2lOL3Ap/IYtHltCTKIOmlToq6uG2qSyeYGLL63bYo+4ZvpHyjN/5QYQQXS4WMyPw5o9+jcIyONNOEbJoiFUTwsm55A0diDisDlk=","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616449002,"updated":1616449002,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7421c2/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=MyCert","ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":13,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1616449002,"updated":1616449002}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7421c2/25948af5713e488ca8e8b791e80382a3","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportNotPasswordEncodedCertificate9c7421c2/25948af5713e488ca8e8b791e80382a3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportNotPasswordEncodedCertificate9c7421c2/25948af5713e488ca8e8b791e80382a3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273477,"updated":1628273477,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7421c2/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1628273477,"updated":1628273477}}}' headers: cache-control: - no-cache content-length: - - '2371' + - '2418' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:42 GMT + - Fri, 06 Aug 2021 18:11:17 GMT expires: - '-1' pragma: @@ -91,9 +92,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_not_password_encoded_no_policy_7_2.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_not_password_encoded_no_policy_7_2.yaml index e9c2b6ed700b..8a98a7f054b6 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_not_password_encoded_no_policy_7_2.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_not_password_encoded_no_policy_7_2.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7521c3/import?api-version=7.2 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:23 GMT + - Fri, 06 Aug 2021 18:11:17 GMT expires: - '-1' pragma: @@ -45,14 +45,14 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"value": "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"}' + body: '{"value": "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"}' headers: Accept: - application/json @@ -61,25 +61,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3501' + - '3329' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7521c3/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7521c3/8c93684cf71b4dd2bf815f75c40b0bf8","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportNotPasswordEncodedCertificate9c7521c3/8c93684cf71b4dd2bf815f75c40b0bf8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportNotPasswordEncodedCertificate9c7521c3/8c93684cf71b4dd2bf815f75c40b0bf8","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","cer":"MIIDKDCCAhCgAwIBAgIQfDvNAzhSSh6HHUDV89pfITANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDEwZNeUNlcnQwHhcNMjAwNjI1MTMwMDMzWhcNMjEwNjI1MTMxMDMzWjARMQ8wDQYDVQQDEwZNeUNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQChubMEV/8RtgjNYGw8CMGo6p9VssZjWulzHfnjVcemZ96eYegXh74fIDTdh+J9CK5oHd/qU4IGKR5lRkiEMw7mdPv4FUWRmd1KG1CR9MTShnjL9kaIFv5zYSy9oQZL/wWR4pX3wXV53tD6P42higSrad7wAFV2GanDDBEMNXm7x5o0bvwzNRUMobW9SnYy2wmTIFjQNyHovDWuXLaafMfv4yl59dv1mw6GJkOG6wyHPOEx8auoyQFRU5C3aTzS8gG0AJMW7uwwjSz/sh5sr5pqNu99GOx1ZVANySwKU+Lgjp0P6AKg1uluicsZc/aIFV7ulp+9raz/MXVmTfMOiobbAgMBAAGjfDB6MA4GA1UdDwEB/wQEAwIFoDAJBgNVHRMEAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSMEGDAWgBTjkI1VhBb9cYdl70SJH8tdOV847DAdBgNVHQ4EFgQU45CNVYQW/XGHZe9EiR/LXTlfOOwwDQYJKoZIhvcNAQELBQADggEBAGafeWghsVmVEo6/QGgBRW/hhVWq4MEfW5YOLwmNObpJL3/OEKhUDw9u9to1kWcos/aRj4u+bz3vTqIJxK+i0dEBIo///mkxJhtLLGd6Ks6rXlGgEOG1+m8GvZkUsLOaZsPAFYAgnF091iS7PcNW5VYqvpFvIWgIEVwhE0dBGCUogoBatYZyc+YqWCqbzv8mhui3NgToGoiLW1dFxXbeyeGGee5yyroSDE+6jTbMCzrdX/2fK41J2lOL3Ap/IYtHltCTKIOmlToq6uG2qSyeYGLL63bYo+4ZvpHyjN/5QYQQXS4WMyPw5o9+jcIyONNOEbJoiFUTwsm55A0diDisDlk=","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1620433824,"updated":1620433824,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7521c3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=MyCert","ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":13,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1620433824,"updated":1620433824}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7521c3/b956afb894cd48cbbf68f71f056e593b","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportNotPasswordEncodedCertificate9c7521c3/b956afb894cd48cbbf68f71f056e593b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportNotPasswordEncodedCertificate9c7521c3/b956afb894cd48cbbf68f71f056e593b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273478,"updated":1628273478,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7521c3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1628270669,"updated":1628273478}}}' headers: cache-control: - no-cache content-length: - - '2363' + - '2418' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:24 GMT + - Fri, 06 Aug 2021 18:11:18 GMT expires: - '-1' pragma: @@ -93,7 +94,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_password_encoded_no_policy_2016_10_01.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_password_encoded_no_policy_2016_10_01.yaml index ee051eb6b4f3..e10f35f63116 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_password_encoded_no_policy_2016_10_01.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_password_encoded_no_policy_2016_10_01.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatefad02194/import?api-version=2016-10-01 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:42 GMT + - Fri, 06 Aug 2021 18:11:26 GMT expires: - '-1' pragma: @@ -43,17 +43,17 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"value": "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234"}' headers: Accept: - application/json @@ -62,25 +62,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3183' + - '3344' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatefad02194/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatefad02194/5df62844b2a343cdbe4d3c317bd86bd7","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportPasswordEncodedCertificatefad02194/5df62844b2a343cdbe4d3c317bd86bd7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportPasswordEncodedCertificatefad02194/5df62844b2a343cdbe4d3c317bd86bd7","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449003,"updated":1616449003,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatefad02194/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1616449003,"updated":1616449003}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatefad02194/22d0f151a1c141b39450a1e5037f0afe","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportPasswordEncodedCertificatefad02194/22d0f151a1c141b39450a1e5037f0afe","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportPasswordEncodedCertificatefad02194/22d0f151a1c141b39450a1e5037f0afe","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273487,"updated":1628273487,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatefad02194/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1628273487,"updated":1628273487}}}' headers: cache-control: - no-cache content-length: - - '1950' + - '2385' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:43 GMT + - Fri, 06 Aug 2021 18:11:27 GMT expires: - '-1' pragma: @@ -92,9 +93,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_password_encoded_no_policy_7_0.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_password_encoded_no_policy_7_0.yaml index cb802ff48b23..a68da7d02e57 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_password_encoded_no_policy_7_0.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_password_encoded_no_policy_7_0.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15132011/import?api-version=7.0 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:44 GMT + - Fri, 06 Aug 2021 18:11:27 GMT expires: - '-1' pragma: @@ -43,17 +43,17 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"value": "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234"}' headers: Accept: - application/json @@ -62,25 +62,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3183' + - '3344' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15132011/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15132011/799409b40db944eca7aa6f728f1b293b","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportPasswordEncodedCertificate15132011/799409b40db944eca7aa6f728f1b293b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportPasswordEncodedCertificate15132011/799409b40db944eca7aa6f728f1b293b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449005,"updated":1616449005,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15132011/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1616449005,"updated":1616449005}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15132011/8a032bc3dabb4323a01429ce6f5f07bb","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportPasswordEncodedCertificate15132011/8a032bc3dabb4323a01429ce6f5f07bb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportPasswordEncodedCertificate15132011/8a032bc3dabb4323a01429ce6f5f07bb","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273488,"updated":1628273488,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15132011/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1628273488,"updated":1628273488}}}' headers: cache-control: - no-cache content-length: - - '1950' + - '2385' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:45 GMT + - Fri, 06 Aug 2021 18:11:28 GMT expires: - '-1' pragma: @@ -92,9 +93,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_password_encoded_no_policy_7_1.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_password_encoded_no_policy_7_1.yaml index e96de3275499..86f58bff34c6 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_password_encoded_no_policy_7_1.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_password_encoded_no_policy_7_1.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15142012/import?api-version=7.1 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:45 GMT + - Fri, 06 Aug 2021 18:11:28 GMT expires: - '-1' pragma: @@ -43,17 +43,17 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"value": "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234"}' headers: Accept: - application/json @@ -62,25 +62,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3183' + - '3344' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15142012/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15142012/11f05f13fdc74c8c98c8f2002497f7e8","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportPasswordEncodedCertificate15142012/11f05f13fdc74c8c98c8f2002497f7e8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportPasswordEncodedCertificate15142012/11f05f13fdc74c8c98c8f2002497f7e8","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449006,"updated":1616449006,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15142012/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1616449006,"updated":1616449006}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15142012/08c6817261ba43b882aa8f8433f9410a","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportPasswordEncodedCertificate15142012/08c6817261ba43b882aa8f8433f9410a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportPasswordEncodedCertificate15142012/08c6817261ba43b882aa8f8433f9410a","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273490,"updated":1628273490,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15142012/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1628273490,"updated":1628273490}}}' headers: cache-control: - no-cache content-length: - - '1971' + - '2406' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:46 GMT + - Fri, 06 Aug 2021 18:11:29 GMT expires: - '-1' pragma: @@ -92,9 +93,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_password_encoded_no_policy_7_2.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_password_encoded_no_policy_7_2.yaml index 82b3ae8bbc92..94840de703f1 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_password_encoded_no_policy_7_2.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_import_certificate_password_encoded_no_policy_7_2.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15152013/import?api-version=7.2 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:10 GMT + - Fri, 06 Aug 2021 18:11:30 GMT expires: - '-1' pragma: @@ -45,14 +45,15 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"pwd": "123", "value": "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"}' + body: '{"value": "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", + "pwd": "1234"}' headers: Accept: - application/json @@ -61,25 +62,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3183' + - '3344' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15152013/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15152013/a2fb59287dbb43e2ab10f1812a3f486b","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportPasswordEncodedCertificate15152013/a2fb59287dbb43e2ab10f1812a3f486b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportPasswordEncodedCertificate15152013/a2fb59287dbb43e2ab10f1812a3f486b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433752,"updated":1620433752,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15152013/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1620433752,"updated":1620433752}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15152013/2e16466061b749b1a691d2322052b05a","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportPasswordEncodedCertificate15152013/2e16466061b749b1a691d2322052b05a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportPasswordEncodedCertificate15152013/2e16466061b749b1a691d2322052b05a","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273491,"updated":1628273491,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15152013/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1628268885,"updated":1628273491}}}' headers: cache-control: - no-cache content-length: - - '1963' + - '2406' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:12 GMT + - Fri, 06 Aug 2021 18:11:30 GMT expires: - '-1' pragma: @@ -93,7 +95,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_2016_10_01.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_2016_10_01.yaml index 3519af53bdf6..311ab3146664 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_2016_10_01.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_2016_10_01.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert09fab10a5/import?api-version=2016-10-01 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:46 GMT + - Fri, 06 Aug 2021 18:11:51 GMT expires: - '-1' pragma: @@ -43,21 +43,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -66,25 +65,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert09fab10a5/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert09fab10a5/1d8d1704c2a8403397fe0bcf572620c7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert09fab10a5/1d8d1704c2a8403397fe0bcf572620c7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert09fab10a5/1d8d1704c2a8403397fe0bcf572620c7","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449007,"updated":1616449007,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert09fab10a5/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449007,"updated":1616449007}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert09fab10a5/9fa6265d40e346b1ae84ea104bb308b0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert09fab10a5/9fa6265d40e346b1ae84ea104bb308b0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert09fab10a5/9fa6265d40e346b1ae84ea104bb308b0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert09fab10a5/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273513,"updated":1628273513}}}' headers: cache-control: - no-cache content-length: - - '1835' + - '2270' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:48 GMT + - Fri, 06 Aug 2021 18:11:52 GMT expires: - '-1' pragma: @@ -96,21 +96,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -119,25 +118,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert19fab10a5/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert19fab10a5/73fd05293c8c4001b3f261d8d6436ffa","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert19fab10a5/73fd05293c8c4001b3f261d8d6436ffa","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert19fab10a5/73fd05293c8c4001b3f261d8d6436ffa","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449008,"updated":1616449008,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert19fab10a5/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449008,"updated":1616449008}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert19fab10a5/023d9181e2864ec7b3f00962ac820c7a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert19fab10a5/023d9181e2864ec7b3f00962ac820c7a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert19fab10a5/023d9181e2864ec7b3f00962ac820c7a","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert19fab10a5/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273513,"updated":1628273513}}}' headers: cache-control: - no-cache content-length: - - '1835' + - '2270' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:49 GMT + - Fri, 06 Aug 2021 18:11:53 GMT expires: - '-1' pragma: @@ -149,21 +149,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -172,25 +171,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert29fab10a5/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert29fab10a5/7c4028e73c114e5b90ed3b4c93680109","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert29fab10a5/7c4028e73c114e5b90ed3b4c93680109","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert29fab10a5/7c4028e73c114e5b90ed3b4c93680109","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449009,"updated":1616449009,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert29fab10a5/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449009,"updated":1616449009}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert29fab10a5/552278219f644e6eb9638a9f82085867","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert29fab10a5/552278219f644e6eb9638a9f82085867","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert29fab10a5/552278219f644e6eb9638a9f82085867","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert29fab10a5/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273514,"updated":1628273514}}}' headers: cache-control: - no-cache content-length: - - '1835' + - '2270' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:49 GMT + - Fri, 06 Aug 2021 18:11:53 GMT expires: - '-1' pragma: @@ -202,21 +202,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -225,25 +224,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert39fab10a5/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert39fab10a5/aac96faa968943d1a804efbdac1959de","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert39fab10a5/aac96faa968943d1a804efbdac1959de","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert39fab10a5/aac96faa968943d1a804efbdac1959de","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449010,"updated":1616449010,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert39fab10a5/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449010,"updated":1616449010}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert39fab10a5/d2b8f8f68d53419e9467e2413b15bc6b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert39fab10a5/d2b8f8f68d53419e9467e2413b15bc6b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert39fab10a5/d2b8f8f68d53419e9467e2413b15bc6b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert39fab10a5/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273514,"updated":1628273514}}}' headers: cache-control: - no-cache content-length: - - '1835' + - '2270' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:50 GMT + - Fri, 06 Aug 2021 18:11:54 GMT expires: - '-1' pragma: @@ -255,21 +255,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -278,25 +277,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert49fab10a5/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert49fab10a5/c57ce4877db843749904c64ba0024938","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert49fab10a5/c57ce4877db843749904c64ba0024938","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert49fab10a5/c57ce4877db843749904c64ba0024938","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449010,"updated":1616449010,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert49fab10a5/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449010,"updated":1616449010}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert49fab10a5/956de51b0e6940ee9ed9b7f946cbc909","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert49fab10a5/956de51b0e6940ee9ed9b7f946cbc909","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert49fab10a5/956de51b0e6940ee9ed9b7f946cbc909","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert49fab10a5/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273514,"updated":1628273514}}}' headers: cache-control: - no-cache content-length: - - '1835' + - '2270' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:50 GMT + - Fri, 06 Aug 2021 18:11:54 GMT expires: - '-1' pragma: @@ -308,21 +308,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -331,25 +330,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert59fab10a5/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert59fab10a5/e9dd12e9057e47bb86b6c7b48c081c5d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert59fab10a5/e9dd12e9057e47bb86b6c7b48c081c5d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert59fab10a5/e9dd12e9057e47bb86b6c7b48c081c5d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449011,"updated":1616449011,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert59fab10a5/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449011,"updated":1616449011}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert59fab10a5/014ccec72f0844b78d1da9da839e64d8","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert59fab10a5/014ccec72f0844b78d1da9da839e64d8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert59fab10a5/014ccec72f0844b78d1da9da839e64d8","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273515,"updated":1628273515,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert59fab10a5/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273515,"updated":1628273515}}}' headers: cache-control: - no-cache content-length: - - '1835' + - '2270' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:51 GMT + - Fri, 06 Aug 2021 18:11:55 GMT expires: - '-1' pragma: @@ -361,21 +361,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -384,25 +383,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert69fab10a5/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert69fab10a5/48d5dbcf69d94f4887180c7d74d84e68","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert69fab10a5/48d5dbcf69d94f4887180c7d74d84e68","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert69fab10a5/48d5dbcf69d94f4887180c7d74d84e68","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449011,"updated":1616449011,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert69fab10a5/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449011,"updated":1616449011}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert69fab10a5/6b7502830bbf4f959bc70a4c91e222e1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert69fab10a5/6b7502830bbf4f959bc70a4c91e222e1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert69fab10a5/6b7502830bbf4f959bc70a4c91e222e1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273516,"updated":1628273516,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert69fab10a5/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273516,"updated":1628273516}}}' headers: cache-control: - no-cache content-length: - - '1835' + - '2270' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:52 GMT + - Fri, 06 Aug 2021 18:11:55 GMT expires: - '-1' pragma: @@ -414,9 +414,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -432,21 +432,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=2016-10-01&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?maxresults=6&api-version=2016-10-01 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert09fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449007,"updated":1616449007},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert19fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449008,"updated":1616449008},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert29fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449009,"updated":1616449009},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271415,"updated":1628271415},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert09fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271416,"updated":1628271416},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert19fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271416,"updated":1628271416},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNak13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1051' + - '1515' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:52 GMT + - Fri, 06 Aug 2021 18:11:55 GMT expires: - '-1' pragma: @@ -458,9 +458,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -476,21 +476,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNak13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert39fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449010,"updated":1616449010},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert49fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449010,"updated":1616449010},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4b451870","x5t":"jwR9dqj0XdAVh_hU85Vwou2oIlc","attributes":{"enabled":true,"nbf":1616448076,"exp":1647984676,"created":1616448676,"updated":1616448676},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert59fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449011,"updated":1616449011},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert69fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449011,"updated":1616449011},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVPRFpDUXpFMU0wRXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert29fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271416,"updated":1628271416},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert39fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271417,"updated":1628271417},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert49fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271418,"updated":1628271418},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1526' + - '1751' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:52 GMT + - Fri, 06 Aug 2021 18:11:55 GMT expires: - '-1' pragma: @@ -502,9 +502,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -520,21 +520,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVPRFpDUXpFMU0wRXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerta57516ed","x5t":"l_uhE2272cOQmuacJFpd9Oy_bLY","attributes":{"enabled":true,"nbf":1616448211,"exp":1647984811,"created":1616448811,"updated":1616448811},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerta57616ee","x5t":"eQsAGslCneyqCU4IUOwmrtL4J9A","attributes":{"enabled":true,"nbf":1616448343,"exp":1647984943,"created":1616448943,"updated":1616448943},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertb81a116d","x5t":"NUR6--m_b7by_G3DVEZpEYgAlXU","attributes":{"enabled":true,"nbf":1616447610,"exp":1647984210,"created":1616448210,"updated":1616448210},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerte251133f","x5t":"KkD1lfjFdu3V2tXb_Sa-lpN1-9Y","attributes":{"enabled":true,"nbf":1616447740,"exp":1647984340,"created":1616448340,"updated":1616448340},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerte2521340","x5t":"SkHl6jRTBOIHNS5OJK5xpg0NKEE","attributes":{"enabled":true,"nbf":1616447792,"exp":1647984392,"created":1616448392,"updated":1616448392},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSamMyTmpFelFqY3ZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert59fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273515,"updated":1628273515},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271418,"updated":1628271418},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert69fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273516,"updated":1628273516},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerta57716ef","x5t":"bs8zDoN_L6ut-WtJQjafZf5LMZo","attributes":{"enabled":true,"nbf":1628270787,"exp":1659807387,"created":1628271388,"updated":1628271388},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerte2531341","x5t":"e8fn_F2UY1TfBPQ8GJSPkPRyn7k","attributes":{"enabled":true,"nbf":1628270251,"exp":1659806851,"created":1628270851,"updated":1628270851},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSamMyT0RFelFqa3ZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1522' + - '1513' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:52 GMT + - Fri, 06 Aug 2021 18:11:55 GMT expires: - '-1' pragma: @@ -546,9 +546,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -564,21 +564,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSamMyTmpFelFqY3ZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSamMyT0RFelFqa3ZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate8e0f2344","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616448999,"updated":1616448999},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7321c1","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616449000,"updated":1616449000},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7421c2","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616449002,"updated":1616449002},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15132011","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449005,"updated":1616449005},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15142012","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449006,"updated":1616449006},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRReU1ERXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271462,"updated":1628271462},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271463,"updated":1628271463},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271464,"updated":1628271464},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271464,"updated":1628271464},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271465,"updated":1628271465},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271465,"updated":1628271465},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETlRJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1719' + - '1774' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:52 GMT + - Fri, 06 Aug 2021 18:11:56 GMT expires: - '-1' pragma: @@ -590,9 +590,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -608,21 +608,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRReU1ERXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETlRJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatefad02194","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449003,"updated":1616449003},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert26191f05","x5t":"IOoOGP4lsseVrCLqtZ-EjrWq_ro","attributes":{"enabled":true,"nbf":1616448366,"exp":1647984966,"created":1616448966,"updated":1616448966},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert52361d82","x5t":"MKJ_5aEi9lAEKYoBh4Gqd5Aochc","attributes":{"enabled":true,"nbf":1616448378,"exp":1647984978,"created":1616448978,"updated":1616448978},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert52371d83","x5t":"HTLPPjVILRrzqzuF32coGncEf4M","attributes":{"enabled":true,"nbf":1616448393,"exp":1647984993,"created":1616448993,"updated":1616448993},"subject":""}],"nextLink":null}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271466,"updated":1628271466},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271422,"updated":1628271422},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1625875913,"updated":1625875913},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport2","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1625878813,"updated":1625878813},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport3","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1626124145,"updated":1626124145},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate8e0f2344","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273475,"updated":1628273475},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRoRk1FWXlNelEwTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1042' + - '1820' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:53 GMT + - Fri, 06 Aug 2021 18:11:56 GMT expires: - '-1' pragma: @@ -634,9 +634,141 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRoRk1FWXlNelEwTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7321c1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273476,"updated":1628273476},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7421c2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273477,"updated":1628273477},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7521c3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273478,"updated":1628273478},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15132011","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273488,"updated":1628273488},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15142012","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273490,"updated":1628273490},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15152013","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273491,"updated":1628273491},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRVeU1ERXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: + - no-cache + content-length: + - '1970' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:11:56 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRVeU1ERXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatefad02194","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273487,"updated":1628273487},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestpolicyCertificate50fb0ff8","x5t":"ii2-LQ5gejwZ7yWQO1p6xgCEyfE","attributes":{"enabled":true,"nbf":1628270856,"exp":1659807456,"created":1628271456,"updated":1628271456},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert52381d84","x5t":"HE_ZOc3HX3KBdiVd7nMbJpgwQ5c","attributes":{"enabled":true,"nbf":1628270810,"exp":1659807410,"created":1628271410,"updated":1628271410},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/mcpatinosftest2","x5t":"u4vvzavJkU95sWDnEvJ3KC9WORI","attributes":{"enabled":true,"nbf":1625870189,"exp":1657406789,"created":1625870789,"updated":1625870789},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/pem-cert","x5t":"9-_V15wTEmxzVzRImTRCuxULj0w","attributes":{"enabled":true,"nbf":1627059202,"exp":1658595802,"created":1627059802,"updated":1627059802},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5NiFNREF3TURJM0lXTmxjblJwWm1sallYUmxMMUJGVFMxRFJWSlVMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: + - no-cache + content-length: + - '1515' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:11:56 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5NiFNREF3TURJM0lXTmxjblJwWm1sallYUmxMMUJGVFMxRFJWSlVMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/rbac-cert","x5t":"5ZhGBMPs2QJqbOwnQNbburKo_FY","attributes":{"enabled":true,"nbf":1626992126,"exp":1658528726,"created":1626992726,"updated":1626992726},"subject":""}],"nextLink":null}' + headers: + cache-control: + - no-cache + content-length: + - '249' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:11:56 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_7_0.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_7_0.yaml index 450eaafcbd67..4d6381360004 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_7_0.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_7_0.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert030770f22/import?api-version=7.0 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:52 GMT + - Fri, 06 Aug 2021 18:11:56 GMT expires: - '-1' pragma: @@ -43,21 +43,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -66,25 +65,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert030770f22/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030770f22/1e60cbc875e247da9c9374b0c46f2612","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert030770f22/1e60cbc875e247da9c9374b0c46f2612","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert030770f22/1e60cbc875e247da9c9374b0c46f2612","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449014,"updated":1616449014,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030770f22/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449014,"updated":1616449014}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030770f22/de29a453bd56468c9009f5099cbc5650","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert030770f22/de29a453bd56468c9009f5099cbc5650","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert030770f22/de29a453bd56468c9009f5099cbc5650","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273517,"updated":1628273517,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030770f22/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273517,"updated":1628273517}}}' headers: cache-control: - no-cache content-length: - - '1835' + - '2270' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:53 GMT + - Fri, 06 Aug 2021 18:11:57 GMT expires: - '-1' pragma: @@ -96,21 +96,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -119,25 +118,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert130770f22/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130770f22/4f2cf52364134708996cd50380b490a1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert130770f22/4f2cf52364134708996cd50380b490a1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert130770f22/4f2cf52364134708996cd50380b490a1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449014,"updated":1616449014,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130770f22/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449014,"updated":1616449014}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130770f22/a1b163d876644d82a564ce249c2b3bf4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert130770f22/a1b163d876644d82a564ce249c2b3bf4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert130770f22/a1b163d876644d82a564ce249c2b3bf4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273518,"updated":1628273518,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130770f22/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273518,"updated":1628273518}}}' headers: cache-control: - no-cache content-length: - - '1835' + - '2270' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:54 GMT + - Fri, 06 Aug 2021 18:11:58 GMT expires: - '-1' pragma: @@ -149,21 +149,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -172,25 +171,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert230770f22/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230770f22/d804c8f389204a25a8bd49eb5218c295","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert230770f22/d804c8f389204a25a8bd49eb5218c295","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert230770f22/d804c8f389204a25a8bd49eb5218c295","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449015,"updated":1616449015,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230770f22/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449015,"updated":1616449015}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230770f22/8b5f5849b22b4fc3b004672b01efa7e9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert230770f22/8b5f5849b22b4fc3b004672b01efa7e9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert230770f22/8b5f5849b22b4fc3b004672b01efa7e9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273518,"updated":1628273518,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230770f22/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273518,"updated":1628273518}}}' headers: cache-control: - no-cache content-length: - - '1835' + - '2270' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:54 GMT + - Fri, 06 Aug 2021 18:11:58 GMT expires: - '-1' pragma: @@ -202,21 +202,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -225,25 +224,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert330770f22/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330770f22/83147a23d1d14a939befa0b36bec363e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert330770f22/83147a23d1d14a939befa0b36bec363e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert330770f22/83147a23d1d14a939befa0b36bec363e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449015,"updated":1616449015,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330770f22/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449015,"updated":1616449015}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330770f22/abf62573187b4c65baf98cd248d9a4e6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert330770f22/abf62573187b4c65baf98cd248d9a4e6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert330770f22/abf62573187b4c65baf98cd248d9a4e6","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273519,"updated":1628273519,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330770f22/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273519,"updated":1628273519}}}' headers: cache-control: - no-cache content-length: - - '1835' + - '2270' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:56 GMT + - Fri, 06 Aug 2021 18:11:59 GMT expires: - '-1' pragma: @@ -255,21 +255,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -278,25 +277,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert430770f22/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430770f22/4fc760a8305545828e389c20b0870b2a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert430770f22/4fc760a8305545828e389c20b0870b2a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert430770f22/4fc760a8305545828e389c20b0870b2a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449016,"updated":1616449016,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430770f22/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449016,"updated":1616449016}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430770f22/decdc349f61d456d87fba38f4ff0c844","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert430770f22/decdc349f61d456d87fba38f4ff0c844","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert430770f22/decdc349f61d456d87fba38f4ff0c844","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273519,"updated":1628273519,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430770f22/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273519,"updated":1628273519}}}' headers: cache-control: - no-cache content-length: - - '1835' + - '2270' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:56 GMT + - Fri, 06 Aug 2021 18:11:59 GMT expires: - '-1' pragma: @@ -308,21 +308,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -331,25 +330,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert530770f22/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530770f22/197045722e6a4b5dac201f8943121c32","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert530770f22/197045722e6a4b5dac201f8943121c32","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert530770f22/197045722e6a4b5dac201f8943121c32","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449016,"updated":1616449016,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530770f22/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449016,"updated":1616449016}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530770f22/56160c7bcc434260ad3dc9089e1e25d8","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert530770f22/56160c7bcc434260ad3dc9089e1e25d8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert530770f22/56160c7bcc434260ad3dc9089e1e25d8","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273520,"updated":1628273520,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530770f22/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273520,"updated":1628273520}}}' headers: cache-control: - no-cache content-length: - - '1835' + - '2270' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:57 GMT + - Fri, 06 Aug 2021 18:11:59 GMT expires: - '-1' pragma: @@ -361,21 +361,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -384,25 +383,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert630770f22/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630770f22/319b464460be4fd691efa768b0f7fef1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert630770f22/319b464460be4fd691efa768b0f7fef1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert630770f22/319b464460be4fd691efa768b0f7fef1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449017,"updated":1616449017,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630770f22/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449017,"updated":1616449017}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630770f22/f070f0a4c8284071b3b7ddd508aa1619","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert630770f22/f070f0a4c8284071b3b7ddd508aa1619","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert630770f22/f070f0a4c8284071b3b7ddd508aa1619","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273520,"updated":1628273520,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630770f22/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273520,"updated":1628273520}}}' headers: cache-control: - no-cache content-length: - - '1835' + - '2270' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:57 GMT + - Fri, 06 Aug 2021 18:12:00 GMT expires: - '-1' pragma: @@ -414,9 +414,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -432,21 +432,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?maxresults=6&api-version=7.0 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030770f22","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449014,"updated":1616449014},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert09fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449007,"updated":1616449007},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130770f22","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449014,"updated":1616449014},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVE13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273517,"updated":1628273517},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271415,"updated":1628271415},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert09fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273518,"updated":1628273518},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271416,"updated":1628271416},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1044' + - '1508' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:57 GMT + - Fri, 06 Aug 2021 18:12:00 GMT expires: - '-1' pragma: @@ -458,9 +458,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -476,21 +476,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVE13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert19fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449008,"updated":1616449008},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230770f22","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449015,"updated":1616449015},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert29fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449009,"updated":1616449009},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330770f22","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449015,"updated":1616449015},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert39fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449010,"updated":1616449010},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430770f22","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449016,"updated":1616449016},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORE13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert19fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273518,"updated":1628273518},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271416,"updated":1628271416},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert29fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273519,"updated":1628273519},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271416,"updated":1628271416},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNek13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1758' + - '1744' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:57 GMT + - Fri, 06 Aug 2021 18:12:00 GMT expires: - '-1' pragma: @@ -502,9 +502,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -520,21 +520,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORE13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNek13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert49fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449010,"updated":1616449010},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4b451870","x5t":"jwR9dqj0XdAVh_hU85Vwou2oIlc","attributes":{"enabled":true,"nbf":1616448076,"exp":1647984676,"created":1616448676,"updated":1616448676},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530770f22","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449016,"updated":1616449016},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert59fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449011,"updated":1616449011},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630770f22","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449017,"updated":1616449017},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert69fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449011,"updated":1616449011},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert39fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273519,"updated":1628273519},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271417,"updated":1628271417},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert49fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273520,"updated":1628273520},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271418,"updated":1628271418},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1757' + - '1744' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:58 GMT + - Fri, 06 Aug 2021 18:12:00 GMT expires: - '-1' pragma: @@ -546,9 +546,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -564,21 +564,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerta57516ed","x5t":"l_uhE2272cOQmuacJFpd9Oy_bLY","attributes":{"enabled":true,"nbf":1616448211,"exp":1647984811,"created":1616448811,"updated":1616448811},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerta57616ee","x5t":"eQsAGslCneyqCU4IUOwmrtL4J9A","attributes":{"enabled":true,"nbf":1616448343,"exp":1647984943,"created":1616448943,"updated":1616448943},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertb81a116d","x5t":"NUR6--m_b7by_G3DVEZpEYgAlXU","attributes":{"enabled":true,"nbf":1616447610,"exp":1647984210,"created":1616448210,"updated":1616448210},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerte251133f","x5t":"KkD1lfjFdu3V2tXb_Sa-lpN1-9Y","attributes":{"enabled":true,"nbf":1616447740,"exp":1647984340,"created":1616448340,"updated":1616448340},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerte2521340","x5t":"SkHl6jRTBOIHNS5OJK5xpg0NKEE","attributes":{"enabled":true,"nbf":1616447792,"exp":1647984392,"created":1616448392,"updated":1616448392},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSVEkxTWpFek5EQXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert59fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273515,"updated":1628273515},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273520,"updated":1628273520},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271418,"updated":1628271418},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert69fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273516,"updated":1628273516},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerta57716ef","x5t":"bs8zDoN_L6ut-WtJQjafZf5LMZo","attributes":{"enabled":true,"nbf":1628270787,"exp":1659807387,"created":1628271388,"updated":1628271388},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerte2531341","x5t":"e8fn_F2UY1TfBPQ8GJSPkPRyn7k","attributes":{"enabled":true,"nbf":1628270251,"exp":1659806851,"created":1628270851,"updated":1628270851},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSVEkxTXpFek5ERXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1515' + - '1742' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:58 GMT + - Fri, 06 Aug 2021 18:12:00 GMT expires: - '-1' pragma: @@ -590,9 +590,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -608,21 +608,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSVEkxTWpFek5EQXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSVEkxTXpFek5ERXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate8e0f2344","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616448999,"updated":1616448999},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7321c1","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616449000,"updated":1616449000},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7421c2","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616449002,"updated":1616449002},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15132011","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449005,"updated":1616449005},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRNeU1ERXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271462,"updated":1628271462},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271463,"updated":1628271463},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271464,"updated":1628271464},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271464,"updated":1628271464},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271465,"updated":1628271465},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkRJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1447' + - '1528' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:58 GMT + - Fri, 06 Aug 2021 18:12:00 GMT expires: - '-1' pragma: @@ -634,9 +634,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -652,21 +652,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRNeU1ERXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkRJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15142012","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449006,"updated":1616449006},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatefad02194","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449003,"updated":1616449003},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert26191f05","x5t":"IOoOGP4lsseVrCLqtZ-EjrWq_ro","attributes":{"enabled":true,"nbf":1616448366,"exp":1647984966,"created":1616448966,"updated":1616448966},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert52361d82","x5t":"MKJ_5aEi9lAEKYoBh4Gqd5Aochc","attributes":{"enabled":true,"nbf":1616448378,"exp":1647984978,"created":1616448978,"updated":1616448978},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert52371d83","x5t":"HTLPPjVILRrzqzuF32coGncEf4M","attributes":{"enabled":true,"nbf":1616448393,"exp":1647984993,"created":1616448993,"updated":1616448993},"subject":""}],"nextLink":null}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271465,"updated":1628271465},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271466,"updated":1628271466},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271422,"updated":1628271422},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1625875913,"updated":1625875913},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport2","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1625878813,"updated":1625878813},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport3","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1626124145,"updated":1626124145},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1307' + - '1722' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:58 GMT + - Fri, 06 Aug 2021 18:12:00 GMT expires: - '-1' pragma: @@ -678,9 +678,141 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate8e0f2344","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273475,"updated":1628273475},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7321c1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273476,"updated":1628273476},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7421c2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273477,"updated":1628273477},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7521c3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273478,"updated":1628273478},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15132011","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273488,"updated":1628273488},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15142012","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273490,"updated":1628273490},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRReU1ERXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: + - no-cache + content-length: + - '1966' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:12:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRReU1ERXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15152013","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273491,"updated":1628273491},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatefad02194","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273487,"updated":1628273487},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestpolicyCertificate50fb0ff8","x5t":"ii2-LQ5gejwZ7yWQO1p6xgCEyfE","attributes":{"enabled":true,"nbf":1628270856,"exp":1659807456,"created":1628271456,"updated":1628271456},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert52381d84","x5t":"HE_ZOc3HX3KBdiVd7nMbJpgwQ5c","attributes":{"enabled":true,"nbf":1628270810,"exp":1659807410,"created":1628271410,"updated":1628271410},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/mcpatinosftest2","x5t":"u4vvzavJkU95sWDnEvJ3KC9WORI","attributes":{"enabled":true,"nbf":1625870189,"exp":1657406789,"created":1625870789,"updated":1625870789},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDQhTURBd01ETTBJV05sY25ScFptbGpZWFJsTDAxRFVFRlVTVTVQVTBaVVJWTlVNaTlRVDB4SlExa2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: + - no-cache + content-length: + - '1562' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:12:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDQhTURBd01ETTBJV05sY25ScFptbGpZWFJsTDAxRFVFRlVTVTVQVTBaVVJWTlVNaTlRVDB4SlExa2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/pem-cert","x5t":"9-_V15wTEmxzVzRImTRCuxULj0w","attributes":{"enabled":true,"nbf":1627059202,"exp":1658595802,"created":1627059802,"updated":1627059802},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/rbac-cert","x5t":"5ZhGBMPs2QJqbOwnQNbburKo_FY","attributes":{"enabled":true,"nbf":1626992126,"exp":1658528726,"created":1626992726,"updated":1626992726},"subject":""}],"nextLink":null}' + headers: + cache-control: + - no-cache + content-length: + - '470' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:12:02 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_7_1.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_7_1.yaml index 210f0b5b6324..b95c30ab52bc 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_7_1.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_7_1.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert030780f23/import?api-version=7.1 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:58 GMT + - Fri, 06 Aug 2021 18:12:02 GMT expires: - '-1' pragma: @@ -43,21 +43,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -66,25 +65,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert030780f23/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030780f23/d806b0b8baaf4c769f7765d0959eb7ea","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert030780f23/d806b0b8baaf4c769f7765d0959eb7ea","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert030780f23/d806b0b8baaf4c769f7765d0959eb7ea","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449020,"updated":1616449020,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030780f23/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449020,"updated":1616449020}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030780f23/9450ecf3e6c946f3ac24bb19466e4135","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert030780f23/9450ecf3e6c946f3ac24bb19466e4135","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert030780f23/9450ecf3e6c946f3ac24bb19466e4135","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273522,"updated":1628273522,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030780f23/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273522,"updated":1628273522}}}' headers: cache-control: - no-cache content-length: - - '1856' + - '2291' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:36:59 GMT + - Fri, 06 Aug 2021 18:12:02 GMT expires: - '-1' pragma: @@ -96,21 +96,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -119,25 +118,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert130780f23/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130780f23/2e7cbb40d8f24babb01faba75aa25b7d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert130780f23/2e7cbb40d8f24babb01faba75aa25b7d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert130780f23/2e7cbb40d8f24babb01faba75aa25b7d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449020,"updated":1616449020,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130780f23/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449020,"updated":1616449020}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130780f23/2e42c86bb67041e8aeca0528ffd68813","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert130780f23/2e42c86bb67041e8aeca0528ffd68813","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert130780f23/2e42c86bb67041e8aeca0528ffd68813","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273523,"updated":1628273523,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130780f23/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273523,"updated":1628273523}}}' headers: cache-control: - no-cache content-length: - - '1856' + - '2291' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:00 GMT + - Fri, 06 Aug 2021 18:12:03 GMT expires: - '-1' pragma: @@ -149,21 +149,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -172,25 +171,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert230780f23/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230780f23/d9e3d91d9e4444f592745842e948ac18","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert230780f23/d9e3d91d9e4444f592745842e948ac18","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert230780f23/d9e3d91d9e4444f592745842e948ac18","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449021,"updated":1616449021,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230780f23/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449021,"updated":1616449021}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230780f23/ade58d1c70ed462b95374e33fcf6651b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert230780f23/ade58d1c70ed462b95374e33fcf6651b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert230780f23/ade58d1c70ed462b95374e33fcf6651b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273523,"updated":1628273523,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230780f23/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273523,"updated":1628273523}}}' headers: cache-control: - no-cache content-length: - - '1856' + - '2291' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:00 GMT + - Fri, 06 Aug 2021 18:12:03 GMT expires: - '-1' pragma: @@ -202,21 +202,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -225,25 +224,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert330780f23/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330780f23/cfb3194ab94b40e584fdc7d84278325e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert330780f23/cfb3194ab94b40e584fdc7d84278325e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert330780f23/cfb3194ab94b40e584fdc7d84278325e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449021,"updated":1616449021,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330780f23/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449021,"updated":1616449021}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330780f23/1fe39ed1e1654f0a81c8e46f0290eab4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert330780f23/1fe39ed1e1654f0a81c8e46f0290eab4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert330780f23/1fe39ed1e1654f0a81c8e46f0290eab4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330780f23/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273524,"updated":1628273524}}}' headers: cache-control: - no-cache content-length: - - '1856' + - '2291' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:01 GMT + - Fri, 06 Aug 2021 18:12:04 GMT expires: - '-1' pragma: @@ -255,21 +255,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -278,25 +277,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert430780f23/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430780f23/52aa3b8486f641ff80e638dcf9a5caee","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert430780f23/52aa3b8486f641ff80e638dcf9a5caee","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert430780f23/52aa3b8486f641ff80e638dcf9a5caee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449022,"updated":1616449022,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430780f23/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449022,"updated":1616449022}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430780f23/78255d4bbc554cd0aecdca9ea67ffc40","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert430780f23/78255d4bbc554cd0aecdca9ea67ffc40","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert430780f23/78255d4bbc554cd0aecdca9ea67ffc40","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430780f23/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273524,"updated":1628273524}}}' headers: cache-control: - no-cache content-length: - - '1856' + - '2291' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:01 GMT + - Fri, 06 Aug 2021 18:12:04 GMT expires: - '-1' pragma: @@ -308,21 +308,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -331,25 +330,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert530780f23/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530780f23/6d9b9f5f063147ef969797c00fd90686","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert530780f23/6d9b9f5f063147ef969797c00fd90686","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert530780f23/6d9b9f5f063147ef969797c00fd90686","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449022,"updated":1616449022,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530780f23/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449022,"updated":1616449022}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530780f23/484aafb7b0c64f06b9ebc4d2ac0106d7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert530780f23/484aafb7b0c64f06b9ebc4d2ac0106d7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert530780f23/484aafb7b0c64f06b9ebc4d2ac0106d7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530780f23/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273524,"updated":1628273524}}}' headers: cache-control: - no-cache content-length: - - '1856' + - '2291' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:02 GMT + - Fri, 06 Aug 2021 18:12:04 GMT expires: - '-1' pragma: @@ -361,21 +361,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -384,25 +383,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert630780f23/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630780f23/8f03d34c86c34db688867fa42ef42502","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert630780f23/8f03d34c86c34db688867fa42ef42502","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert630780f23/8f03d34c86c34db688867fa42ef42502","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449023,"updated":1616449023,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630780f23/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449023,"updated":1616449023}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630780f23/48b3d618d58d41a4a1f30e6e6d546215","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert630780f23/48b3d618d58d41a4a1f30e6e6d546215","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert630780f23/48b3d618d58d41a4a1f30e6e6d546215","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273525,"updated":1628273525,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630780f23/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273525,"updated":1628273525}}}' headers: cache-control: - no-cache content-length: - - '1856' + - '2291' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:02 GMT + - Fri, 06 Aug 2021 18:12:05 GMT expires: - '-1' pragma: @@ -414,9 +414,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -432,21 +432,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?maxresults=6&api-version=7.1 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030770f22","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449014,"updated":1616449014},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030780f23","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449020,"updated":1616449020},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert09fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449007,"updated":1616449007},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNRGxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273517,"updated":1628273517},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273522,"updated":1628273522},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271415,"updated":1628271415},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert09fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273518,"updated":1628273518},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVE13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1044' + - '1508' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:02 GMT + - Fri, 06 Aug 2021 18:12:05 GMT expires: - '-1' pragma: @@ -458,9 +458,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -476,21 +476,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNRGxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVE13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130770f22","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449014,"updated":1616449014},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130780f23","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449020,"updated":1616449020},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert19fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449008,"updated":1616449008},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230770f22","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449015,"updated":1616449015},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230780f23","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449021,"updated":1616449021},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert29fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449009,"updated":1616449009},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273523,"updated":1628273523},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271416,"updated":1628271416},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert19fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273518,"updated":1628273518},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273523,"updated":1628273523},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271416,"updated":1628271416},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNak13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1758' + - '1744' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:02 GMT + - Fri, 06 Aug 2021 18:12:05 GMT expires: - '-1' pragma: @@ -502,9 +502,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -520,21 +520,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNak13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330770f22","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449015,"updated":1616449015},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330780f23","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449021,"updated":1616449021},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert39fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449010,"updated":1616449010},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430770f22","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449016,"updated":1616449016},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430780f23","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449022,"updated":1616449022},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert49fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449010,"updated":1616449010},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORGxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert29fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273519,"updated":1628273519},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271416,"updated":1628271416},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert39fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273519,"updated":1628273519},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORE13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1758' + - '1744' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:04 GMT + - Fri, 06 Aug 2021 18:12:05 GMT expires: - '-1' pragma: @@ -546,9 +546,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -564,21 +564,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORGxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORE13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4b451870","x5t":"jwR9dqj0XdAVh_hU85Vwou2oIlc","attributes":{"enabled":true,"nbf":1616448076,"exp":1647984676,"created":1616448676,"updated":1616448676},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530770f22","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449016,"updated":1616449016},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530780f23","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449022,"updated":1616449022},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert59fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449011,"updated":1616449011},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630770f22","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449017,"updated":1616449017},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630780f23","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449023,"updated":1616449023},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOak13Tnpnd1JqSXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271417,"updated":1628271417},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert49fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273520,"updated":1628273520},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271418,"updated":1628271418},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1757' + - '1744' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:04 GMT + - Fri, 06 Aug 2021 18:12:05 GMT expires: - '-1' pragma: @@ -590,9 +590,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -608,21 +608,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOak13Tnpnd1JqSXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert69fab10a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449011,"updated":1616449011},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerta57516ed","x5t":"l_uhE2272cOQmuacJFpd9Oy_bLY","attributes":{"enabled":true,"nbf":1616448211,"exp":1647984811,"created":1616448811,"updated":1616448811},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerta57616ee","x5t":"eQsAGslCneyqCU4IUOwmrtL4J9A","attributes":{"enabled":true,"nbf":1616448343,"exp":1647984943,"created":1616448943,"updated":1616448943},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertb81a116d","x5t":"NUR6--m_b7by_G3DVEZpEYgAlXU","attributes":{"enabled":true,"nbf":1616447610,"exp":1647984210,"created":1616448210,"updated":1616448210},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerte251133f","x5t":"KkD1lfjFdu3V2tXb_Sa-lpN1-9Y","attributes":{"enabled":true,"nbf":1616447740,"exp":1647984340,"created":1616448340,"updated":1616448340},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSVEkxTVRFek0wWXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert59fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273515,"updated":1628273515},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273520,"updated":1628273520},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273525,"updated":1628273525},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271418,"updated":1628271418},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert69fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273516,"updated":1628273516},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerta57716ef","x5t":"bs8zDoN_L6ut-WtJQjafZf5LMZo","attributes":{"enabled":true,"nbf":1628270787,"exp":1659807387,"created":1628271388,"updated":1628271388},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVRVFUzTnpFMlJVWXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1516' + - '1743' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:04 GMT + - Fri, 06 Aug 2021 18:12:05 GMT expires: - '-1' pragma: @@ -634,9 +634,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -652,21 +652,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSVEkxTVRFek0wWXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVRVFUzTnpFMlJVWXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerte2521340","x5t":"SkHl6jRTBOIHNS5OJK5xpg0NKEE","attributes":{"enabled":true,"nbf":1616447792,"exp":1647984392,"created":1616448392,"updated":1616448392},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate8e0f2344","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616448999,"updated":1616448999},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7321c1","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616449000,"updated":1616449000},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7421c2","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616449002,"updated":1616449002},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRsRE56UXlNVU15TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerte2531341","x5t":"e8fn_F2UY1TfBPQ8GJSPkPRyn7k","attributes":{"enabled":true,"nbf":1628270251,"exp":1659806851,"created":1628270851,"updated":1628270851},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271462,"updated":1628271462},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271463,"updated":1628271463},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271464,"updated":1628271464},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271464,"updated":1628271464},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETXpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1424' + - '1524' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:04 GMT + - Fri, 06 Aug 2021 18:12:05 GMT expires: - '-1' pragma: @@ -678,9 +678,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -696,21 +696,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRsRE56UXlNVU15TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETXpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15132011","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449005,"updated":1616449005},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15142012","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449006,"updated":1616449006},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatefad02194","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449003,"updated":1616449003},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert26191f05","x5t":"IOoOGP4lsseVrCLqtZ-EjrWq_ro","attributes":{"enabled":true,"nbf":1616448366,"exp":1647984966,"created":1616448966,"updated":1616448966},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert52361d82","x5t":"MKJ_5aEi9lAEKYoBh4Gqd5Aochc","attributes":{"enabled":true,"nbf":1616448378,"exp":1647984978,"created":1616448978,"updated":1616448978},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert52371d83","x5t":"HTLPPjVILRrzqzuF32coGncEf4M","attributes":{"enabled":true,"nbf":1616448393,"exp":1647984993,"created":1616448993,"updated":1616448993},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSVlRrdE9UMWRPU1ZOVFZVVlNRMFZTVkRVeU16Y3hSRGd6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271465,"updated":1628271465},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271465,"updated":1628271465},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271466,"updated":1628271466},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271422,"updated":1628271422},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1625875913,"updated":1625875913},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport2","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1625878813,"updated":1625878813},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1896' + - '1731' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:04 GMT + - Fri, 06 Aug 2021 18:12:06 GMT expires: - '-1' pragma: @@ -722,9 +722,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -740,21 +740,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSVlRrdE9UMWRPU1ZOVFZVVlNRMFZTVkRVeU16Y3hSRGd6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 response: body: - string: '{"value":[],"nextLink":null}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport3","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1626124145,"updated":1626124145},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate8e0f2344","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273475,"updated":1628273475},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7321c1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273476,"updated":1628273476},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7421c2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273477,"updated":1628273477},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7521c3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273478,"updated":1628273478},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15132011","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273488,"updated":1628273488},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRNeU1ERXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '28' + - '1933' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:05 GMT + - Fri, 06 Aug 2021 18:12:06 GMT expires: - '-1' pragma: @@ -766,9 +766,97 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRNeU1ERXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15142012","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273490,"updated":1628273490},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15152013","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273491,"updated":1628273491},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatefad02194","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273487,"updated":1628273487},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestpolicyCertificate50fb0ff8","x5t":"ii2-LQ5gejwZ7yWQO1p6xgCEyfE","attributes":{"enabled":true,"nbf":1628270856,"exp":1659807456,"created":1628271456,"updated":1628271456},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert52381d84","x5t":"HE_ZOc3HX3KBdiVd7nMbJpgwQ5c","attributes":{"enabled":true,"nbf":1628270810,"exp":1659807410,"created":1628271410,"updated":1628271410},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDQhTURBd01ETXpJV05sY25ScFptbGpZWFJsTDAxRFVFRlVTVTVQVTBaVVJWTlVMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: + - no-cache + content-length: + - '1597' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:12:06 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDQhTURBd01ETXpJV05sY25ScFptbGpZWFJsTDAxRFVFRlVTVTVQVTBaVVJWTlVMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/mcpatinosftest2","x5t":"u4vvzavJkU95sWDnEvJ3KC9WORI","attributes":{"enabled":true,"nbf":1625870189,"exp":1657406789,"created":1625870789,"updated":1625870789},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/pem-cert","x5t":"9-_V15wTEmxzVzRImTRCuxULj0w","attributes":{"enabled":true,"nbf":1627059202,"exp":1658595802,"created":1627059802,"updated":1627059802},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/rbac-cert","x5t":"5ZhGBMPs2QJqbOwnQNbburKo_FY","attributes":{"enabled":true,"nbf":1626992126,"exp":1658528726,"created":1626992726,"updated":1626992726},"subject":""}],"nextLink":null}' + headers: + cache-control: + - no-cache + content-length: + - '698' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:12:06 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_7_2.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_7_2.yaml index cea30399d732..c262a412edb7 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_7_2.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_7_2.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert030790f24/import?api-version=7.2 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:24 GMT + - Fri, 06 Aug 2021 18:12:06 GMT expires: - '-1' pragma: @@ -45,19 +45,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -66,25 +65,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert030790f24/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030790f24/908ac674c57342c4b16af7585cb7883a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert030790f24/908ac674c57342c4b16af7585cb7883a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert030790f24/908ac674c57342c4b16af7585cb7883a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433825,"updated":1620433825,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030790f24/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433825,"updated":1620433825}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030790f24/1a3ecd406aeb4c50927cc64d8b2c6f72","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert030790f24/1a3ecd406aeb4c50927cc64d8b2c6f72","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert030790f24/1a3ecd406aeb4c50927cc64d8b2c6f72","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273527,"updated":1628273527,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030790f24/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271415,"updated":1628273527}}}' headers: cache-control: - no-cache content-length: - - '1848' + - '2291' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:26 GMT + - Fri, 06 Aug 2021 18:12:07 GMT expires: - '-1' pragma: @@ -98,19 +98,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -119,25 +118,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert130790f24/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130790f24/0bb2e7784fc241b6b4fe5d26fc83830e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert130790f24/0bb2e7784fc241b6b4fe5d26fc83830e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert130790f24/0bb2e7784fc241b6b4fe5d26fc83830e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433826,"updated":1620433826,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130790f24/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433826,"updated":1620433826}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130790f24/c0ba1aa4cc614fe583b21b006c03190d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert130790f24/c0ba1aa4cc614fe583b21b006c03190d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert130790f24/c0ba1aa4cc614fe583b21b006c03190d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273527,"updated":1628273527,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130790f24/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271416,"updated":1628273527}}}' headers: cache-control: - no-cache content-length: - - '1848' + - '2291' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:26 GMT + - Fri, 06 Aug 2021 18:12:08 GMT expires: - '-1' pragma: @@ -151,19 +151,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -172,25 +171,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert230790f24/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230790f24/67bf9e02ce0843eb8ac1ec54895b3e47","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert230790f24/67bf9e02ce0843eb8ac1ec54895b3e47","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert230790f24/67bf9e02ce0843eb8ac1ec54895b3e47","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433826,"updated":1620433826,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230790f24/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433826,"updated":1620433826}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230790f24/569164d72dd24289b765901db96e4c38","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert230790f24/569164d72dd24289b765901db96e4c38","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert230790f24/569164d72dd24289b765901db96e4c38","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273528,"updated":1628273528,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230790f24/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271416,"updated":1628273528}}}' headers: cache-control: - no-cache content-length: - - '1848' + - '2291' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:27 GMT + - Fri, 06 Aug 2021 18:12:08 GMT expires: - '-1' pragma: @@ -204,19 +204,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -225,25 +224,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert330790f24/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330790f24/565f2220d1304ab59f630c4a1da91a5c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert330790f24/565f2220d1304ab59f630c4a1da91a5c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert330790f24/565f2220d1304ab59f630c4a1da91a5c","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433827,"updated":1620433827,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330790f24/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433827,"updated":1620433827}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330790f24/02935a48f032431da82a5704c73d6a59","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert330790f24/02935a48f032431da82a5704c73d6a59","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert330790f24/02935a48f032431da82a5704c73d6a59","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273529,"updated":1628273529,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330790f24/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271416,"updated":1628273529}}}' headers: cache-control: - no-cache content-length: - - '1848' + - '2291' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:27 GMT + - Fri, 06 Aug 2021 18:12:09 GMT expires: - '-1' pragma: @@ -257,19 +257,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -278,25 +277,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert430790f24/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430790f24/94eae174d96c4c0099a65d168577ee81","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert430790f24/94eae174d96c4c0099a65d168577ee81","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert430790f24/94eae174d96c4c0099a65d168577ee81","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433827,"updated":1620433827,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430790f24/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433827,"updated":1620433827}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430790f24/e29cea1cfac44a098a6d1cc5d1e4a4cd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert430790f24/e29cea1cfac44a098a6d1cc5d1e4a4cd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert430790f24/e29cea1cfac44a098a6d1cc5d1e4a4cd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273529,"updated":1628273529,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430790f24/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271417,"updated":1628273529}}}' headers: cache-control: - no-cache content-length: - - '1848' + - '2291' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:28 GMT + - Fri, 06 Aug 2021 18:12:09 GMT expires: - '-1' pragma: @@ -310,19 +310,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -331,25 +330,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert530790f24/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530790f24/6c0a1aced1a448ef8dc2ef0157ebc4fa","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert530790f24/6c0a1aced1a448ef8dc2ef0157ebc4fa","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert530790f24/6c0a1aced1a448ef8dc2ef0157ebc4fa","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433828,"updated":1620433828,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530790f24/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433828,"updated":1620433828}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530790f24/0e040798ab9948ab9f83c7b4c1094ca8","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert530790f24/0e040798ab9948ab9f83c7b4c1094ca8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert530790f24/0e040798ab9948ab9f83c7b4c1094ca8","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273530,"updated":1628273530,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530790f24/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271418,"updated":1628273530}}}' headers: cache-control: - no-cache content-length: - - '1848' + - '2291' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:28 GMT + - Fri, 06 Aug 2021 18:12:10 GMT expires: - '-1' pragma: @@ -363,19 +363,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -384,25 +383,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert630790f24/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630790f24/1bc27750a8dc4ebe83ba85effd4bc9ed","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert630790f24/1bc27750a8dc4ebe83ba85effd4bc9ed","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert630790f24/1bc27750a8dc4ebe83ba85effd4bc9ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433828,"updated":1620433828,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630790f24/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433828,"updated":1620433828}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630790f24/2f7d5d65134b46a48b615dacf4e0fe16","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert630790f24/2f7d5d65134b46a48b615dacf4e0fe16","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert630790f24/2f7d5d65134b46a48b615dacf4e0fe16","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273530,"updated":1628273530,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630790f24/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271418,"updated":1628273530}}}' headers: cache-control: - no-cache content-length: - - '1848' + - '2291' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:28 GMT + - Fri, 06 Aug 2021 18:12:10 GMT expires: - '-1' pragma: @@ -416,7 +416,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -432,12 +432,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.2&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?maxresults=6&api-version=7.2 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030790f24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433825,"updated":1620433825},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130790f24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433826,"updated":1620433826},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230790f24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433826,"updated":1620433826},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330790f24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433827,"updated":1620433827},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430790f24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433827,"updated":1620433827},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273517,"updated":1628273517},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273522,"updated":1628273522},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273527,"updated":1628273527},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert09fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273518,"updated":1628273518},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVE13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache @@ -446,7 +446,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:29 GMT + - Fri, 06 Aug 2021 18:12:11 GMT expires: - '-1' pragma: @@ -460,7 +460,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -476,21 +476,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVE13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530790f24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433828,"updated":1620433828},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630790f24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433828,"updated":1620433828},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerta57716ef","x5t":"fbPGjBZmGM4d-8CTQxstRGoEYSU","attributes":{"enabled":true,"nbf":1620433219,"exp":1651969819,"created":1620433819,"updated":1620433819},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerte2531341","x5t":"Hz4uDPqFcuvZ6ZE0XYmEJ0mpzho","attributes":{"enabled":true,"nbf":1620433102,"exp":1651969702,"created":1620433702,"updated":1620433702},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433779,"updated":1620433779},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITURJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273523,"updated":1628273523},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273527,"updated":1628273527},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert19fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273518,"updated":1628273518},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273523,"updated":1628273523},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273528,"updated":1628273528},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNak13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1514' + - '1744' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:29 GMT + - Fri, 06 Aug 2021 18:12:11 GMT expires: - '-1' pragma: @@ -504,7 +504,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -520,21 +520,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITURJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNak13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433780,"updated":1620433780},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433781,"updated":1620433781},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433781,"updated":1620433781},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433782,"updated":1620433782},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITmpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert29fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273519,"updated":1628273519},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273529,"updated":1628273529},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert39fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273519,"updated":1628273519},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORE13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1289' + - '1744' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:29 GMT + - Fri, 06 Aug 2021 18:12:11 GMT expires: - '-1' pragma: @@ -548,7 +548,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -564,21 +564,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITmpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORE13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433777,"updated":1620433777},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433778,"updated":1620433778},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETlRJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273529,"updated":1628273529},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert49fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273520,"updated":1628273520},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273530,"updated":1628273530},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1289' + - '1744' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:29 GMT + - Fri, 06 Aug 2021 18:12:11 GMT expires: - '-1' pragma: @@ -592,7 +592,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -608,21 +608,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETlRJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertserialize3","x5t":"DOg7nSJhUPuFdlafxvEb34kYeR0","attributes":{"enabled":true,"nbf":1619561103,"exp":1651097703,"created":1619561704,"updated":1619561704},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433756,"updated":1620433756},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7521c3","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1620433824,"updated":1620433824},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15152013","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433752,"updated":1620433752},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestpolicyCertificate50fb0ff8","x5t":"nEYq8jEV49Ry3OWHsS8j5fYsuGE","attributes":{"enabled":true,"nbf":1620433174,"exp":1651969774,"created":1620433774,"updated":1620433774},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSUVQweEpRMWxEUlZKVVNVWkpRMEZVUlRVd1JrSXdSa1k0TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert59fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273515,"updated":1628273515},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273520,"updated":1628273520},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273525,"updated":1628273525},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273530,"updated":1628273530},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert69fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273516,"updated":1628273516},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerta57716ef","x5t":"bs8zDoN_L6ut-WtJQjafZf5LMZo","attributes":{"enabled":true,"nbf":1628270787,"exp":1659807387,"created":1628271388,"updated":1628271388},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVRVFUzTnpFMlJVWXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '1601' + - '1743' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:29 GMT + - Fri, 06 Aug 2021 18:12:11 GMT expires: - '-1' pragma: @@ -636,7 +636,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -652,21 +652,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSUVQweEpRMWxEUlZKVVNVWkpRMEZVUlRVd1JrSXdSa1k0TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVRVFUzTnpFMlJVWXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert52381d84","x5t":"KPGO24Va-irLzCs3xgY7KB4u8jQ","attributes":{"enabled":true,"nbf":1620433147,"exp":1651969747,"created":1620433747,"updated":1620433747},"subject":""}],"nextLink":null}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerte2531341","x5t":"e8fn_F2UY1TfBPQ8GJSPkPRyn7k","attributes":{"enabled":true,"nbf":1628270251,"exp":1659806851,"created":1628270851,"updated":1628270851},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271462,"updated":1628271462},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271463,"updated":1628271463},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271464,"updated":1628271464},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271464,"updated":1628271464},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETXpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '275' + - '1524' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:29 GMT + - Fri, 06 Aug 2021 18:12:11 GMT expires: - '-1' pragma: @@ -680,7 +680,183 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETXpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271465,"updated":1628271465},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271465,"updated":1628271465},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271466,"updated":1628271466},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271422,"updated":1628271422},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1625875913,"updated":1625875913},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport2","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1625878813,"updated":1625878813},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: + - no-cache + content-length: + - '1731' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:12:11 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport3","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1626124145,"updated":1626124145},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate8e0f2344","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273475,"updated":1628273475},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7321c1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273476,"updated":1628273476},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7421c2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273477,"updated":1628273477},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7521c3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273478,"updated":1628273478},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15132011","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273488,"updated":1628273488},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRNeU1ERXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: + - no-cache + content-length: + - '1933' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:12:11 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRNeU1ERXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15142012","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273490,"updated":1628273490},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15152013","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273491,"updated":1628273491},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatefad02194","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273487,"updated":1628273487},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestpolicyCertificate50fb0ff8","x5t":"ii2-LQ5gejwZ7yWQO1p6xgCEyfE","attributes":{"enabled":true,"nbf":1628270856,"exp":1659807456,"created":1628271456,"updated":1628271456},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert52381d84","x5t":"HE_ZOc3HX3KBdiVd7nMbJpgwQ5c","attributes":{"enabled":true,"nbf":1628270810,"exp":1659807410,"created":1628271410,"updated":1628271410},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDQhTURBd01ETXpJV05sY25ScFptbGpZWFJsTDAxRFVFRlVTVTVQVTBaVVJWTlVMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: + - no-cache + content-length: + - '1597' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:12:11 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDQhTURBd01ETXpJV05sY25ScFptbGpZWFJsTDAxRFVFRlVTVTVQVTBaVVJWTlVMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/mcpatinosftest2","x5t":"u4vvzavJkU95sWDnEvJ3KC9WORI","attributes":{"enabled":true,"nbf":1625870189,"exp":1657406789,"created":1625870789,"updated":1625870789},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/pem-cert","x5t":"9-_V15wTEmxzVzRImTRCuxULj0w","attributes":{"enabled":true,"nbf":1627059202,"exp":1658595802,"created":1627059802,"updated":1627059802},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/rbac-cert","x5t":"5ZhGBMPs2QJqbOwnQNbburKo_FY","attributes":{"enabled":true,"nbf":1626992126,"exp":1658528726,"created":1626992726,"updated":1626992726},"subject":""}],"nextLink":null}' + headers: + cache-control: + - no-cache + content-length: + - '698' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:12:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_certificate_versions_2016_10_01.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_certificate_versions_2016_10_01.yaml index 2f0018a0f51c..b62e140ebe55 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_certificate_versions_2016_10_01.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_certificate_versions_2016_10_01.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/import?api-version=2016-10-01 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:05 GMT + - Fri, 06 Aug 2021 18:12:11 GMT expires: - '-1' pragma: @@ -43,21 +43,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -66,25 +65,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/330b1cbe89894fffb3715326b30da77c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver8404195f/330b1cbe89894fffb3715326b30da77c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver8404195f/330b1cbe89894fffb3715326b30da77c","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449026,"updated":1616449026,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449026,"updated":1616449026}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/7d0115ceb45b43bb9b2d3ebcfed5f235","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver8404195f/7d0115ceb45b43bb9b2d3ebcfed5f235","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver8404195f/7d0115ceb45b43bb9b2d3ebcfed5f235","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273533,"updated":1628273533,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273533,"updated":1628273533}}}' headers: cache-control: - no-cache content-length: - - '1843' + - '2278' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:06 GMT + - Fri, 06 Aug 2021 18:12:12 GMT expires: - '-1' pragma: @@ -96,21 +96,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -119,25 +118,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/68a0ee73746d4043b532e82a27d86644","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver8404195f/68a0ee73746d4043b532e82a27d86644","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver8404195f/68a0ee73746d4043b532e82a27d86644","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449026,"updated":1616449026,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449026,"updated":1616449026}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/0645b472a83b4585aecddd9e2dfd6c77","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver8404195f/0645b472a83b4585aecddd9e2dfd6c77","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver8404195f/0645b472a83b4585aecddd9e2dfd6c77","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273533,"updated":1628273533,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273533,"updated":1628273533}}}' headers: cache-control: - no-cache content-length: - - '1843' + - '2278' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:06 GMT + - Fri, 06 Aug 2021 18:12:13 GMT expires: - '-1' pragma: @@ -149,21 +149,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -172,25 +171,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/1a05dffcabde4adcb8e175f2c76fbc34","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver8404195f/1a05dffcabde4adcb8e175f2c76fbc34","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver8404195f/1a05dffcabde4adcb8e175f2c76fbc34","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449027,"updated":1616449027,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449026,"updated":1616449027}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/cf7a7ea38daa45e894be373c3ec40011","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver8404195f/cf7a7ea38daa45e894be373c3ec40011","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver8404195f/cf7a7ea38daa45e894be373c3ec40011","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273534,"updated":1628273534,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273533,"updated":1628273534}}}' headers: cache-control: - no-cache content-length: - - '1843' + - '2278' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:07 GMT + - Fri, 06 Aug 2021 18:12:13 GMT expires: - '-1' pragma: @@ -202,21 +202,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -225,25 +224,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/c616294a362a4e529bd773486cd8560d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver8404195f/c616294a362a4e529bd773486cd8560d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver8404195f/c616294a362a4e529bd773486cd8560d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449027,"updated":1616449027,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449026,"updated":1616449027}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/fca2c4f311484acd87f7bbf3434efe71","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver8404195f/fca2c4f311484acd87f7bbf3434efe71","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver8404195f/fca2c4f311484acd87f7bbf3434efe71","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273534,"updated":1628273534,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273533,"updated":1628273534}}}' headers: cache-control: - no-cache content-length: - - '1843' + - '2278' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:07 GMT + - Fri, 06 Aug 2021 18:12:14 GMT expires: - '-1' pragma: @@ -255,21 +255,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -278,25 +277,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/5553a55d93d243a794b91738d2a57baa","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver8404195f/5553a55d93d243a794b91738d2a57baa","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver8404195f/5553a55d93d243a794b91738d2a57baa","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449028,"updated":1616449028,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449026,"updated":1616449028}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/bce957e34f514d28a8aace3ab7d4f7d1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver8404195f/bce957e34f514d28a8aace3ab7d4f7d1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver8404195f/bce957e34f514d28a8aace3ab7d4f7d1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273535,"updated":1628273535,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273533,"updated":1628273535}}}' headers: cache-control: - no-cache content-length: - - '1843' + - '2278' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:08 GMT + - Fri, 06 Aug 2021 18:12:14 GMT expires: - '-1' pragma: @@ -308,21 +308,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -331,25 +330,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/5d8765f3648e459d817767c7c2c46787","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver8404195f/5d8765f3648e459d817767c7c2c46787","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver8404195f/5d8765f3648e459d817767c7c2c46787","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449028,"updated":1616449028,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449026,"updated":1616449028}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/63505d24936f4b169f849ba90bc8f661","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver8404195f/63505d24936f4b169f849ba90bc8f661","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver8404195f/63505d24936f4b169f849ba90bc8f661","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273535,"updated":1628273535,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273533,"updated":1628273535}}}' headers: cache-control: - no-cache content-length: - - '1843' + - '2278' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:08 GMT + - Fri, 06 Aug 2021 18:12:15 GMT expires: - '-1' pragma: @@ -361,21 +361,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -384,25 +383,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/5a277d8410994898a027baa5a1e8bd36","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver8404195f/5a277d8410994898a027baa5a1e8bd36","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver8404195f/5a277d8410994898a027baa5a1e8bd36","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449029,"updated":1616449029,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449026,"updated":1616449029}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/bef738406c6d4bc19ba281adfc1b2c25","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver8404195f/bef738406c6d4bc19ba281adfc1b2c25","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver8404195f/bef738406c6d4bc19ba281adfc1b2c25","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273536,"updated":1628273536,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273533,"updated":1628273536}}}' headers: cache-control: - no-cache content-length: - - '1843' + - '2278' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:09 GMT + - Fri, 06 Aug 2021 18:12:15 GMT expires: - '-1' pragma: @@ -414,9 +414,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -432,21 +432,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/versions?api-version=2016-10-01&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/versions?maxresults=6&api-version=2016-10-01 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/1a05dffcabde4adcb8e175f2c76fbc34","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449027,"updated":1616449027},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/330b1cbe89894fffb3715326b30da77c","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449026,"updated":1616449026},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/5553a55d93d243a794b91738d2a57baa","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449028,"updated":1616449028},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/5a277d8410994898a027baa5a1e8bd36","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449029,"updated":1616449029},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/5d8765f3648e459d817767c7c2c46787","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449028,"updated":1616449028},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/68a0ee73746d4043b532e82a27d86644","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449026,"updated":1616449026},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates/livekvtestcertver8404195f/versions?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTT0RRd05ERTVOVVl2VmtWU1UwbFBUbE12UXpZeE5qSTVORUV6TmpKQk5FVTFNamxDUkRjM016UTROa05FT0RVMk1FUWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/0645b472a83b4585aecddd9e2dfd6c77","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273533,"updated":1628273533},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/63505d24936f4b169f849ba90bc8f661","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273535,"updated":1628273535},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/7d0115ceb45b43bb9b2d3ebcfed5f235","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273533,"updated":1628273533},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/bce957e34f514d28a8aace3ab7d4f7d1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273535,"updated":1628273535},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/bef738406c6d4bc19ba281adfc1b2c25","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273536,"updated":1628273536},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/cf7a7ea38daa45e894be373c3ec40011","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273534,"updated":1628273534},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates/livekvtestcertver8404195f/versions?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTT0RRd05ERTVOVVl2VmtWU1UwbFBUbE12UmtOQk1rTTBSak14TVRRNE5FRkRSRGczUmpkQ1FrWXpORE0wUlVaRk56RWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '2074' + - '2060' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:09 GMT + - Fri, 06 Aug 2021 18:12:15 GMT expires: - '-1' pragma: @@ -458,9 +458,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -476,21 +476,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/versions?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTT0RRd05ERTVOVVl2VmtWU1UwbFBUbE12UXpZeE5qSTVORUV6TmpKQk5FVTFNamxDUkRjM016UTROa05FT0RVMk1FUWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/versions?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTT0RRd05ERTVOVVl2VmtWU1UwbFBUbE12UmtOQk1rTTBSak14TVRRNE5FRkRSRGczUmpkQ1FrWXpORE0wUlVaRk56RWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/c616294a362a4e529bd773486cd8560d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449027,"updated":1616449027},"subject":""}],"nextLink":null}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f/fca2c4f311484acd87f7bbf3434efe71","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273534,"updated":1628273534},"subject":""}],"nextLink":null}' headers: cache-control: - no-cache content-length: - - '300' + - '298' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:09 GMT + - Fri, 06 Aug 2021 18:12:15 GMT expires: - '-1' pragma: @@ -502,9 +502,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_certificate_versions_7_0.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_certificate_versions_7_0.yaml index e5b2949ba18d..b095ab3fcf43 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_certificate_versions_7_0.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_certificate_versions_7_0.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/import?api-version=7.0 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:09 GMT + - Fri, 06 Aug 2021 18:12:16 GMT expires: - '-1' pragma: @@ -43,21 +43,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -66,25 +65,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/a8974b691733442abb593b79342a0330","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ab17dc/a8974b691733442abb593b79342a0330","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ab17dc/a8974b691733442abb593b79342a0330","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449031,"updated":1616449031,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449031,"updated":1616449031}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/0d8934645425411bbb8200970134ec22","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ab17dc/0d8934645425411bbb8200970134ec22","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ab17dc/0d8934645425411bbb8200970134ec22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273537,"updated":1628273537,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273537,"updated":1628273537}}}' headers: cache-control: - no-cache content-length: - - '1843' + - '2278' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:11 GMT + - Fri, 06 Aug 2021 18:12:17 GMT expires: - '-1' pragma: @@ -96,21 +96,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -119,25 +118,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/cb04e22ca613406c93606a6ff922e393","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ab17dc/cb04e22ca613406c93606a6ff922e393","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ab17dc/cb04e22ca613406c93606a6ff922e393","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449031,"updated":1616449031,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449031,"updated":1616449031}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/23e81c76be424c3ca4c95eaec691c7b1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ab17dc/23e81c76be424c3ca4c95eaec691c7b1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ab17dc/23e81c76be424c3ca4c95eaec691c7b1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273537,"updated":1628273537,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273537,"updated":1628273537}}}' headers: cache-control: - no-cache content-length: - - '1843' + - '2278' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:12 GMT + - Fri, 06 Aug 2021 18:12:17 GMT expires: - '-1' pragma: @@ -149,21 +149,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -172,25 +171,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/5825f74205af40f6aa5ee6b30118e002","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ab17dc/5825f74205af40f6aa5ee6b30118e002","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ab17dc/5825f74205af40f6aa5ee6b30118e002","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449032,"updated":1616449032,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449031,"updated":1616449032}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/8d209a6650c54f12a0a4a29c252009eb","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ab17dc/8d209a6650c54f12a0a4a29c252009eb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ab17dc/8d209a6650c54f12a0a4a29c252009eb","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273538,"updated":1628273538,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273537,"updated":1628273538}}}' headers: cache-control: - no-cache content-length: - - '1843' + - '2278' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:12 GMT + - Fri, 06 Aug 2021 18:12:18 GMT expires: - '-1' pragma: @@ -202,21 +202,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -225,25 +224,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/d7ac793a735d42ae8b9e0e7c7b655b74","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ab17dc/d7ac793a735d42ae8b9e0e7c7b655b74","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ab17dc/d7ac793a735d42ae8b9e0e7c7b655b74","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449032,"updated":1616449032,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449031,"updated":1616449032}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/0c31e0b8eaad4346aa0f308c71b0f07e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ab17dc/0c31e0b8eaad4346aa0f308c71b0f07e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ab17dc/0c31e0b8eaad4346aa0f308c71b0f07e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273538,"updated":1628273538,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273537,"updated":1628273538}}}' headers: cache-control: - no-cache content-length: - - '1843' + - '2278' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:13 GMT + - Fri, 06 Aug 2021 18:12:18 GMT expires: - '-1' pragma: @@ -255,21 +255,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -278,25 +277,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/1e5d79dcc1db44f4a4a68504dc4c606d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ab17dc/1e5d79dcc1db44f4a4a68504dc4c606d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ab17dc/1e5d79dcc1db44f4a4a68504dc4c606d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449033,"updated":1616449033,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449031,"updated":1616449033}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/9d2a73a75d52441689039e50bf0d7d73","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ab17dc/9d2a73a75d52441689039e50bf0d7d73","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ab17dc/9d2a73a75d52441689039e50bf0d7d73","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273539,"updated":1628273539,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273537,"updated":1628273539}}}' headers: cache-control: - no-cache content-length: - - '1843' + - '2278' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:13 GMT + - Fri, 06 Aug 2021 18:12:19 GMT expires: - '-1' pragma: @@ -308,21 +308,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -331,25 +330,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/b4fe4c57457c4f3ca80b3bd1c97a9c97","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ab17dc/b4fe4c57457c4f3ca80b3bd1c97a9c97","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ab17dc/b4fe4c57457c4f3ca80b3bd1c97a9c97","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449033,"updated":1616449033,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449031,"updated":1616449033}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/948cff65fc724c3286a56af0eb31da9b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ab17dc/948cff65fc724c3286a56af0eb31da9b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ab17dc/948cff65fc724c3286a56af0eb31da9b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273540,"updated":1628273540,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273537,"updated":1628273540}}}' headers: cache-control: - no-cache content-length: - - '1843' + - '2278' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:14 GMT + - Fri, 06 Aug 2021 18:12:20 GMT expires: - '-1' pragma: @@ -361,21 +361,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -384,25 +383,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/9613aaecccbb41f6b9c4f40775e483e3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ab17dc/9613aaecccbb41f6b9c4f40775e483e3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ab17dc/9613aaecccbb41f6b9c4f40775e483e3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449034,"updated":1616449034,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449031,"updated":1616449034}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/c16bfa2cb62b49848bba54aa6dadb3cc","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ab17dc/c16bfa2cb62b49848bba54aa6dadb3cc","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ab17dc/c16bfa2cb62b49848bba54aa6dadb3cc","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273541,"updated":1628273541,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273537,"updated":1628273541}}}' headers: cache-control: - no-cache content-length: - - '1843' + - '2278' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:14 GMT + - Fri, 06 Aug 2021 18:12:20 GMT expires: - '-1' pragma: @@ -414,9 +414,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -432,21 +432,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/versions?api-version=7.0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/versions?maxresults=6&api-version=7.0 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/1e5d79dcc1db44f4a4a68504dc4c606d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449033,"updated":1616449033},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/5825f74205af40f6aa5ee6b30118e002","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449032,"updated":1616449032},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/9613aaecccbb41f6b9c4f40775e483e3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449034,"updated":1616449034},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/a8974b691733442abb593b79342a0330","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449031,"updated":1616449031},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/b4fe4c57457c4f3ca80b3bd1c97a9c97","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449033,"updated":1616449033},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/cb04e22ca613406c93606a6ff922e393","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449031,"updated":1616449031},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates/livekvtestcertverd7ab17dc/versions?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlFqRTNSRU12VmtWU1UwbFBUbE12UkRkQlF6YzVNMEUzTXpWRU5ESkJSVGhDT1VVd1JUZEROMEkyTlRWQ056UWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/0c31e0b8eaad4346aa0f308c71b0f07e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273538,"updated":1628273538},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/0d8934645425411bbb8200970134ec22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273537,"updated":1628273537},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/23e81c76be424c3ca4c95eaec691c7b1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273537,"updated":1628273537},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/8d209a6650c54f12a0a4a29c252009eb","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273538,"updated":1628273538},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/948cff65fc724c3286a56af0eb31da9b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273540,"updated":1628273540},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/9d2a73a75d52441689039e50bf0d7d73","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273539,"updated":1628273539},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates/livekvtestcertverd7ab17dc/versions?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlFqRTNSRU12VmtWU1UwbFBUbE12UXpFMlFrWkJNa05DTmpKQ05EazRORGhDUWtFMU5FRkJOa1JCUkVJelEwTWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '2067' + - '2053' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:14 GMT + - Fri, 06 Aug 2021 18:12:20 GMT expires: - '-1' pragma: @@ -458,9 +458,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -476,21 +476,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/versions?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlFqRTNSRU12VmtWU1UwbFBUbE12UkRkQlF6YzVNMEUzTXpWRU5ESkJSVGhDT1VVd1JUZEROMEkyTlRWQ056UWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/versions?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlFqRTNSRU12VmtWU1UwbFBUbE12UXpFMlFrWkJNa05DTmpKQ05EazRORGhDUWtFMU5FRkJOa1JCUkVJelEwTWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/d7ac793a735d42ae8b9e0e7c7b655b74","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449032,"updated":1616449032},"subject":""}],"nextLink":null}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc/c16bfa2cb62b49848bba54aa6dadb3cc","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273541,"updated":1628273541},"subject":""}],"nextLink":null}' headers: cache-control: - no-cache content-length: - - '300' + - '298' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:15 GMT + - Fri, 06 Aug 2021 18:12:20 GMT expires: - '-1' pragma: @@ -502,9 +502,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_certificate_versions_7_1.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_certificate_versions_7_1.yaml index 0d02d55b5afa..41cce1d95f42 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_certificate_versions_7_1.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_certificate_versions_7_1.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/import?api-version=7.1 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:15 GMT + - Fri, 06 Aug 2021 18:12:21 GMT expires: - '-1' pragma: @@ -43,21 +43,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -66,25 +65,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/e4995bdf0f6b401cbec45dd12d9029d5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ac17dd/e4995bdf0f6b401cbec45dd12d9029d5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ac17dd/e4995bdf0f6b401cbec45dd12d9029d5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449036,"updated":1616449036,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449036,"updated":1616449036}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/4f78fc852b7944dd93ca8b9fd74f69d0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ac17dd/4f78fc852b7944dd93ca8b9fd74f69d0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ac17dd/4f78fc852b7944dd93ca8b9fd74f69d0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273542,"updated":1628273542,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273542,"updated":1628273542}}}' headers: cache-control: - no-cache content-length: - - '1864' + - '2299' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:16 GMT + - Fri, 06 Aug 2021 18:12:22 GMT expires: - '-1' pragma: @@ -96,21 +96,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -119,25 +118,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/612c056e1f9447c385377ce8c36f840a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ac17dd/612c056e1f9447c385377ce8c36f840a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ac17dd/612c056e1f9447c385377ce8c36f840a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449036,"updated":1616449036,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449036,"updated":1616449036}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/ea4298ece9684efa9f2fa7caf0bf1bb4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ac17dd/ea4298ece9684efa9f2fa7caf0bf1bb4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ac17dd/ea4298ece9684efa9f2fa7caf0bf1bb4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273542,"updated":1628273542,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273542,"updated":1628273542}}}' headers: cache-control: - no-cache content-length: - - '1864' + - '2299' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:17 GMT + - Fri, 06 Aug 2021 18:12:22 GMT expires: - '-1' pragma: @@ -149,21 +149,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -172,25 +171,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/0a7716d990e94b679f7ca0b2d03c5a41","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ac17dd/0a7716d990e94b679f7ca0b2d03c5a41","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ac17dd/0a7716d990e94b679f7ca0b2d03c5a41","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449037,"updated":1616449037,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449036,"updated":1616449037}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/01daaa9ea5ed4bc1be6c5dd77eebdf27","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ac17dd/01daaa9ea5ed4bc1be6c5dd77eebdf27","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ac17dd/01daaa9ea5ed4bc1be6c5dd77eebdf27","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273543,"updated":1628273543,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273542,"updated":1628273543}}}' headers: cache-control: - no-cache content-length: - - '1864' + - '2299' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:17 GMT + - Fri, 06 Aug 2021 18:12:23 GMT expires: - '-1' pragma: @@ -202,21 +202,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -225,25 +224,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/54071f9443534eb780ee3772eb3f9ed2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ac17dd/54071f9443534eb780ee3772eb3f9ed2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ac17dd/54071f9443534eb780ee3772eb3f9ed2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449038,"updated":1616449038,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449036,"updated":1616449038}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/5334c3d731a24273be300f9141ed7413","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ac17dd/5334c3d731a24273be300f9141ed7413","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ac17dd/5334c3d731a24273be300f9141ed7413","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273543,"updated":1628273543,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273542,"updated":1628273543}}}' headers: cache-control: - no-cache content-length: - - '1864' + - '2299' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:18 GMT + - Fri, 06 Aug 2021 18:12:23 GMT expires: - '-1' pragma: @@ -255,21 +255,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -278,25 +277,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/eeca3e0ad12d4dccafef664f4f1baf42","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ac17dd/eeca3e0ad12d4dccafef664f4f1baf42","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ac17dd/eeca3e0ad12d4dccafef664f4f1baf42","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449038,"updated":1616449038,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449036,"updated":1616449038}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/a9f0dfa49cce4335bf4fb01943fc1f58","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ac17dd/a9f0dfa49cce4335bf4fb01943fc1f58","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ac17dd/a9f0dfa49cce4335bf4fb01943fc1f58","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273543,"updated":1628273543,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273542,"updated":1628273543}}}' headers: cache-control: - no-cache content-length: - - '1864' + - '2299' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:18 GMT + - Fri, 06 Aug 2021 18:12:24 GMT expires: - '-1' pragma: @@ -308,21 +308,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -331,25 +330,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/f058ccac8eb744209248c58891ebaffe","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ac17dd/f058ccac8eb744209248c58891ebaffe","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ac17dd/f058ccac8eb744209248c58891ebaffe","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449039,"updated":1616449039,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449036,"updated":1616449039}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/9cfb86e0147941b19675106201a006fb","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ac17dd/9cfb86e0147941b19675106201a006fb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ac17dd/9cfb86e0147941b19675106201a006fb","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273544,"updated":1628273544,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273542,"updated":1628273544}}}' headers: cache-control: - no-cache content-length: - - '1864' + - '2299' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:19 GMT + - Fri, 06 Aug 2021 18:12:24 GMT expires: - '-1' pragma: @@ -361,21 +361,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -384,25 +383,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/fb5f670998e344d78415f18504757668","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ac17dd/fb5f670998e344d78415f18504757668","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ac17dd/fb5f670998e344d78415f18504757668","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449039,"updated":1616449039,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449036,"updated":1616449039}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/b766ac810b7446a3acb2a3ec6353d760","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ac17dd/b766ac810b7446a3acb2a3ec6353d760","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ac17dd/b766ac810b7446a3acb2a3ec6353d760","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273544,"updated":1628273544,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273542,"updated":1628273544}}}' headers: cache-control: - no-cache content-length: - - '1864' + - '2299' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:19 GMT + - Fri, 06 Aug 2021 18:12:25 GMT expires: - '-1' pragma: @@ -414,9 +414,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -432,21 +432,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/versions?api-version=7.1&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/versions?maxresults=6&api-version=7.1 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/0a7716d990e94b679f7ca0b2d03c5a41","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449037,"updated":1616449037},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/54071f9443534eb780ee3772eb3f9ed2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449038,"updated":1616449038},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/612c056e1f9447c385377ce8c36f840a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449036,"updated":1616449036},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/e4995bdf0f6b401cbec45dd12d9029d5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449036,"updated":1616449036},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/eeca3e0ad12d4dccafef664f4f1baf42","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449038,"updated":1616449038},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/f058ccac8eb744209248c58891ebaffe","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449039,"updated":1616449039},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates/livekvtestcertverd7ac17dd/versions?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlF6RTNSRVF2VmtWU1UwbFBUbE12UmtJMVJqWTNNRGs1T0VVek5EUkVOemcwTVRWR01UZzFNRFEzTlRjMk5qZ2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/01daaa9ea5ed4bc1be6c5dd77eebdf27","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273543,"updated":1628273543},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/4f78fc852b7944dd93ca8b9fd74f69d0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273542,"updated":1628273542},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/5334c3d731a24273be300f9141ed7413","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273543,"updated":1628273543},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/9cfb86e0147941b19675106201a006fb","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273544,"updated":1628273544},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/a9f0dfa49cce4335bf4fb01943fc1f58","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273543,"updated":1628273543},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/b766ac810b7446a3acb2a3ec6353d760","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273544,"updated":1628273544},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates/livekvtestcertverd7ac17dd/versions?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlF6RTNSRVF2VmtWU1UwbFBUbE12UlVFME1qazRSVU5GT1RZNE5FVkdRVGxHTWtaQk4wTkJSakJDUmpGQ1FqUWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '2067' + - '2053' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:19 GMT + - Fri, 06 Aug 2021 18:12:25 GMT expires: - '-1' pragma: @@ -458,9 +458,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -476,21 +476,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/versions?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlF6RTNSRVF2VmtWU1UwbFBUbE12UmtJMVJqWTNNRGs1T0VVek5EUkVOemcwTVRWR01UZzFNRFEzTlRjMk5qZ2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/versions?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlF6RTNSRVF2VmtWU1UwbFBUbE12UlVFME1qazRSVU5GT1RZNE5FVkdRVGxHTWtaQk4wTkJSakJDUmpGQ1FqUWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/fb5f670998e344d78415f18504757668","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449039,"updated":1616449039},"subject":""}],"nextLink":null}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd/ea4298ece9684efa9f2fa7caf0bf1bb4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273542,"updated":1628273542},"subject":""}],"nextLink":null}' headers: cache-control: - no-cache content-length: - - '300' + - '298' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:37:19 GMT + - Fri, 06 Aug 2021 18:12:25 GMT expires: - '-1' pragma: @@ -502,9 +502,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_certificate_versions_7_2.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_certificate_versions_7_2.yaml index 159b5cba68f0..286ba53935c1 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_certificate_versions_7_2.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_list_certificate_versions_7_2.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/import?api-version=7.2 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:12 GMT + - Fri, 06 Aug 2021 18:12:25 GMT expires: - '-1' pragma: @@ -45,18 +45,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "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"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -65,25 +65,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/56a20e8cb85e451da0f9b90c59fb7d8e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ad17de/56a20e8cb85e451da0f9b90c59fb7d8e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ad17de/56a20e8cb85e451da0f9b90c59fb7d8e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433753,"updated":1620433753,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433753,"updated":1620433753}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/39fe9ff285584b90befd1257a2efdb37","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ad17de/39fe9ff285584b90befd1257a2efdb37","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ad17de/39fe9ff285584b90befd1257a2efdb37","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273546,"updated":1628273546,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271419,"updated":1628273546}}}' headers: cache-control: - no-cache content-length: - - '1856' + - '2299' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:13 GMT + - Fri, 06 Aug 2021 18:12:26 GMT expires: - '-1' pragma: @@ -97,18 +98,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "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"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -117,25 +118,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/9a2f9d79607e40bda1881b5abcf22245","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ad17de/9a2f9d79607e40bda1881b5abcf22245","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ad17de/9a2f9d79607e40bda1881b5abcf22245","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433753,"updated":1620433753,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433753,"updated":1620433753}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/ed62c5c618744d83b25113a09bbb20f8","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ad17de/ed62c5c618744d83b25113a09bbb20f8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ad17de/ed62c5c618744d83b25113a09bbb20f8","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273546,"updated":1628273546,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271419,"updated":1628273546}}}' headers: cache-control: - no-cache content-length: - - '1856' + - '2299' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:13 GMT + - Fri, 06 Aug 2021 18:12:26 GMT expires: - '-1' pragma: @@ -149,18 +151,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "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"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -169,25 +171,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/36b0a0491221436bba5a1edf626ec283","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ad17de/36b0a0491221436bba5a1edf626ec283","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ad17de/36b0a0491221436bba5a1edf626ec283","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433754,"updated":1620433754,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433753,"updated":1620433754}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/f48d6f50786f450c9c020f527609f881","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ad17de/f48d6f50786f450c9c020f527609f881","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ad17de/f48d6f50786f450c9c020f527609f881","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273547,"updated":1628273547,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271419,"updated":1628273547}}}' headers: cache-control: - no-cache content-length: - - '1856' + - '2299' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:14 GMT + - Fri, 06 Aug 2021 18:12:27 GMT expires: - '-1' pragma: @@ -201,18 +204,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "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"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -221,25 +224,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/e19fe55734524f7fb66aadfe12b323f7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ad17de/e19fe55734524f7fb66aadfe12b323f7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ad17de/e19fe55734524f7fb66aadfe12b323f7","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433754,"updated":1620433754,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433753,"updated":1620433754}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/9361a7346cf04547afdaf979e259a9e9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ad17de/9361a7346cf04547afdaf979e259a9e9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ad17de/9361a7346cf04547afdaf979e259a9e9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273547,"updated":1628273547,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271419,"updated":1628273547}}}' headers: cache-control: - no-cache content-length: - - '1856' + - '2299' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:14 GMT + - Fri, 06 Aug 2021 18:12:27 GMT expires: - '-1' pragma: @@ -253,18 +257,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "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"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -273,25 +277,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/8a90d7786d654380b3b7b94727b0dba0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ad17de/8a90d7786d654380b3b7b94727b0dba0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ad17de/8a90d7786d654380b3b7b94727b0dba0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433755,"updated":1620433755,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433753,"updated":1620433755}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/da97019ecdff46d7b710406126146834","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ad17de/da97019ecdff46d7b710406126146834","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ad17de/da97019ecdff46d7b710406126146834","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273547,"updated":1628273547,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271419,"updated":1628273547}}}' headers: cache-control: - no-cache content-length: - - '1856' + - '2299' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:15 GMT + - Fri, 06 Aug 2021 18:12:28 GMT expires: - '-1' pragma: @@ -305,18 +310,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "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"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -325,25 +330,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/ac314eea31384841936f4e390f4d58a5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ad17de/ac314eea31384841936f4e390f4d58a5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ad17de/ac314eea31384841936f4e390f4d58a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433755,"updated":1620433755,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433753,"updated":1620433755}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/f2d227a55a7e46e09a2fa1277dda4c85","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ad17de/f2d227a55a7e46e09a2fa1277dda4c85","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ad17de/f2d227a55a7e46e09a2fa1277dda4c85","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273548,"updated":1628273548,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271419,"updated":1628273548}}}' headers: cache-control: - no-cache content-length: - - '1856' + - '2299' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:15 GMT + - Fri, 06 Aug 2021 18:12:28 GMT expires: - '-1' pragma: @@ -357,18 +363,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "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"}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -377,25 +383,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/1db65e585fb746b0b4026004bbf9456d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ad17de/1db65e585fb746b0b4026004bbf9456d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ad17de/1db65e585fb746b0b4026004bbf9456d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433756,"updated":1620433756,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433753,"updated":1620433756}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/8f1dc55b340b417485e1d757b185f8bb","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertverd7ad17de/8f1dc55b340b417485e1d757b185f8bb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertverd7ad17de/8f1dc55b340b417485e1d757b185f8bb","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273548,"updated":1628273548,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271419,"updated":1628273548}}}' headers: cache-control: - no-cache content-length: - - '1856' + - '2299' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:15 GMT + - Fri, 06 Aug 2021 18:12:29 GMT expires: - '-1' pragma: @@ -409,7 +416,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -425,12 +432,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/versions?api-version=7.2&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/versions?maxresults=6&api-version=7.2 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/1db65e585fb746b0b4026004bbf9456d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433756,"updated":1620433756},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/36b0a0491221436bba5a1edf626ec283","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433754,"updated":1620433754},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/56a20e8cb85e451da0f9b90c59fb7d8e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433753,"updated":1620433753},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/8a90d7786d654380b3b7b94727b0dba0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433755,"updated":1620433755},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/9a2f9d79607e40bda1881b5abcf22245","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433753,"updated":1620433753},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/ac314eea31384841936f4e390f4d58a5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433755,"updated":1620433755},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates/livekvtestcertverd7ad17de/versions?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlJERTNSRVV2VmtWU1UwbFBUbE12UlRFNVJrVTFOVGN6TkRVeU5FWTNSa0kyTmtGQlJFWkZNVEpDTXpJelJqY2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/016f79bb475641f78e8029b3aee6f035","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271420,"updated":1628271420},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/13ec438bad2e4b449d2ec6eec472fc74","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271422,"updated":1628271422},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/39fe9ff285584b90befd1257a2efdb37","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273546,"updated":1628273546},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/73a663f52ce443178980dce55866dd9d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271420,"updated":1628271420},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/83745af5036a4a8f9282cf039a772629","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271421,"updated":1628271421},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/847dea48fb4a4821a27c3ade15ba373e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271419,"updated":1628271419},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates/livekvtestcertverd7ad17de/versions?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlJERTNSRVV2VmtWU1UwbFBUbE12T0VZeFJFTTFOVUl6TkRCQ05ERTNORGcxUlRGRU56VTNRakU0TlVZNFFrSWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache @@ -439,7 +446,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:16 GMT + - Fri, 06 Aug 2021 18:12:29 GMT expires: - '-1' pragma: @@ -453,7 +460,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -469,21 +476,65 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/versions?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlJERTNSRVV2VmtWU1UwbFBUbE12UlRFNVJrVTFOVGN6TkRVeU5FWTNSa0kyTmtGQlJFWkZNVEpDTXpJelJqY2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/versions?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlJERTNSRVV2VmtWU1UwbFBUbE12T0VZeFJFTTFOVUl6TkRCQ05ERTNORGcxUlRGRU56VTNRakU0TlVZNFFrSWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/e19fe55734524f7fb66aadfe12b323f7","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433754,"updated":1620433754},"subject":""}],"nextLink":null}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/8f1dc55b340b417485e1d757b185f8bb","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273548,"updated":1628273548},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/9361a7346cf04547afdaf979e259a9e9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273547,"updated":1628273547},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/b3e2dd90fcb5482b8ec37ee96a44d3fc","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271422,"updated":1628271422},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/cbc859837f574a80b4e53564fa28d88d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271421,"updated":1628271421},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/da97019ecdff46d7b710406126146834","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273547,"updated":1628273547},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/ed62c5c618744d83b25113a09bbb20f8","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273546,"updated":1628273546},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates/livekvtestcertverd7ad17de/versions?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlJERTNSRVV2VmtWU1UwbFBUbE12UmpKRU1qSTNRVFUxUVRkRk5EWkZNRGxCTWtaQk1USTNOMFJFUVRSRE9EVWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: - no-cache content-length: - - '298' + - '2053' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:12:29 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/versions?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlJERTNSRVV2VmtWU1UwbFBUbE12UmpKRU1qSTNRVFUxUVRkRk5EWkZNRGxCTWtaQk1USTNOMFJFUVRSRE9EVWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/f2d227a55a7e46e09a2fa1277dda4c85","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273548,"updated":1628273548},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de/f48d6f50786f450c9c020f527609f881","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273547,"updated":1628273547},"subject":""}],"nextLink":null}' + headers: + cache-control: + - no-cache + content-length: + - '569' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:16 GMT + - Fri, 06 Aug 2021 18:12:29 GMT expires: - '-1' pragma: @@ -497,7 +548,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_recover_and_purge_2016_10_01.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_recover_and_purge_2016_10_01.yaml index 412560eec380..bda4d2c4ef5c 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_recover_and_purge_2016_10_01.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_recover_and_purge_2016_10_01.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/import?api-version=2016-10-01 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:10 GMT + - Fri, 06 Aug 2021 18:12:49 GMT expires: - '-1' pragma: @@ -43,21 +43,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -66,25 +65,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449091,"updated":1616449091,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449091,"updated":1616449091}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273570,"updated":1628273570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273570,"updated":1628273570}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:11 GMT + - Fri, 06 Aug 2021 18:12:50 GMT expires: - '-1' pragma: @@ -96,21 +96,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -119,25 +118,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449091,"updated":1616449091,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449091,"updated":1616449091}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273571,"updated":1628273571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273571,"updated":1628273571}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:11 GMT + - Fri, 06 Aug 2021 18:12:50 GMT expires: - '-1' pragma: @@ -149,21 +149,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -172,25 +171,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449092,"updated":1616449092,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449092,"updated":1616449092}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273571,"updated":1628273571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273571,"updated":1628273571}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:12 GMT + - Fri, 06 Aug 2021 18:12:52 GMT expires: - '-1' pragma: @@ -202,21 +202,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -225,25 +224,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449092,"updated":1616449092,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449092,"updated":1616449092}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273572,"updated":1628273572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273572,"updated":1628273572}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:13 GMT + - Fri, 06 Aug 2021 18:12:52 GMT expires: - '-1' pragma: @@ -255,21 +255,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -278,25 +277,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449093,"updated":1616449093,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449093,"updated":1616449093}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273572,"updated":1628273572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273572,"updated":1628273572}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:13 GMT + - Fri, 06 Aug 2021 18:12:52 GMT expires: - '-1' pragma: @@ -308,21 +308,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -331,25 +330,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449094,"updated":1616449094,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449094,"updated":1616449094}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273573,"updated":1628273573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273573,"updated":1628273573}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:14 GMT + - Fri, 06 Aug 2021 18:12:53 GMT expires: - '-1' pragma: @@ -361,21 +361,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -384,25 +383,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449094,"updated":1616449094,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449094,"updated":1616449094}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273573,"updated":1628273573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273573,"updated":1628273573}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:14 GMT + - Fri, 06 Aug 2021 18:12:53 GMT expires: - '-1' pragma: @@ -414,21 +414,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -437,25 +436,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0b48f15f3/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0b48f15f3/929c1e2704cf4b0c80b29b1834db0f28","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0b48f15f3/929c1e2704cf4b0c80b29b1834db0f28","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0b48f15f3/929c1e2704cf4b0c80b29b1834db0f28","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449095,"updated":1616449095,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449095,"updated":1616449095}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0b48f15f3/38d67467e93a42c3a527b934d292fb43","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0b48f15f3/38d67467e93a42c3a527b934d292fb43","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0b48f15f3/38d67467e93a42c3a527b934d292fb43","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273574,"updated":1628273574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273574,"updated":1628273574}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:15 GMT + - Fri, 06 Aug 2021 18:12:54 GMT expires: - '-1' pragma: @@ -467,21 +467,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -490,25 +489,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1b48f15f3/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1b48f15f3/d70760fa2304430eb47cd51b7678bb06","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1b48f15f3/d70760fa2304430eb47cd51b7678bb06","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1b48f15f3/d70760fa2304430eb47cd51b7678bb06","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449095,"updated":1616449095,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449095,"updated":1616449095}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1b48f15f3/c54bce44cb4d47c39691f27e265b0a72","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1b48f15f3/c54bce44cb4d47c39691f27e265b0a72","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1b48f15f3/c54bce44cb4d47c39691f27e265b0a72","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273574,"updated":1628273574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273574,"updated":1628273574}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:15 GMT + - Fri, 06 Aug 2021 18:12:54 GMT expires: - '-1' pragma: @@ -520,21 +520,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -543,25 +542,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2b48f15f3/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2b48f15f3/1320bb824691469e930ad57734945cdb","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2b48f15f3/1320bb824691469e930ad57734945cdb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2b48f15f3/1320bb824691469e930ad57734945cdb","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449096,"updated":1616449096,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449096,"updated":1616449096}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2b48f15f3/49de07f6451f4f4893b2b10bd8d69f13","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2b48f15f3/49de07f6451f4f4893b2b10bd8d69f13","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2b48f15f3/49de07f6451f4f4893b2b10bd8d69f13","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273575,"updated":1628273575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273575,"updated":1628273575}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:16 GMT + - Fri, 06 Aug 2021 18:12:55 GMT expires: - '-1' pragma: @@ -573,21 +573,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -596,25 +595,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3b48f15f3/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3b48f15f3/12a9a07d2ac34128b83fc81fa464d3b4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3b48f15f3/12a9a07d2ac34128b83fc81fa464d3b4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3b48f15f3/12a9a07d2ac34128b83fc81fa464d3b4","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449097,"updated":1616449097,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449097,"updated":1616449097}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3b48f15f3/27ad405bba63475199ae6df993e8c950","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3b48f15f3/27ad405bba63475199ae6df993e8c950","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3b48f15f3/27ad405bba63475199ae6df993e8c950","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273575,"updated":1628273575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273575,"updated":1628273575}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:17 GMT + - Fri, 06 Aug 2021 18:12:55 GMT expires: - '-1' pragma: @@ -626,21 +626,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -649,25 +648,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4b48f15f3/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4b48f15f3/2e907d5b9791455da707499bf79007dd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4b48f15f3/2e907d5b9791455da707499bf79007dd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4b48f15f3/2e907d5b9791455da707499bf79007dd","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449097,"updated":1616449097,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449097,"updated":1616449097}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4b48f15f3/10a2c72a96934e44875320b19c1646f9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4b48f15f3/10a2c72a96934e44875320b19c1646f9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4b48f15f3/10a2c72a96934e44875320b19c1646f9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273575,"updated":1628273575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273575,"updated":1628273575}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:17 GMT + - Fri, 06 Aug 2021 18:12:55 GMT expires: - '-1' pragma: @@ -679,21 +679,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -702,25 +701,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5b48f15f3/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5b48f15f3/4649b0adda79481fb2bb132731afad08","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5b48f15f3/4649b0adda79481fb2bb132731afad08","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5b48f15f3/4649b0adda79481fb2bb132731afad08","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449098,"updated":1616449098,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449098,"updated":1616449098}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5b48f15f3/c5a0c643c63a44379d5541ffa864ad53","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5b48f15f3/c5a0c643c63a44379d5541ffa864ad53","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5b48f15f3/c5a0c643c63a44379d5541ffa864ad53","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273576,"updated":1628273576,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273576,"updated":1628273576}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:18 GMT + - Fri, 06 Aug 2021 18:12:56 GMT expires: - '-1' pragma: @@ -732,21 +732,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -755,25 +754,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3/6485a197f648496686ec8290c5a5a579","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6b48f15f3/6485a197f648496686ec8290c5a5a579","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6b48f15f3/6485a197f648496686ec8290c5a5a579","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449098,"updated":1616449098,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449098,"updated":1616449098}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3/e525c1dd49ba43b897c5e6770d0bea8c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6b48f15f3/e525c1dd49ba43b897c5e6770d0bea8c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6b48f15f3/e525c1dd49ba43b897c5e6770d0bea8c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273576,"updated":1628273576,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273576,"updated":1628273576}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:18 GMT + - Fri, 06 Aug 2021 18:12:56 GMT expires: - '-1' pragma: @@ -785,9 +785,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -805,21 +805,22 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3","deletedDate":1616449099,"scheduledPurgeDate":1624225099,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449092,"updated":1616449092,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449092,"updated":1616449092}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3","deletedDate":1628273577,"scheduledPurgeDate":1636049577,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273570,"updated":1628273570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273570,"updated":1628273570}}}' headers: cache-control: - no-cache content-length: - - '2003' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:18 GMT + - Fri, 06 Aug 2021 18:12:56 GMT expires: - '-1' pragma: @@ -831,9 +832,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -849,13 +850,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3b48f15f3"}}' + not found: livekvtestcertrec0b48f15f3"}}' headers: cache-control: - no-cache @@ -864,7 +865,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:19 GMT + - Fri, 06 Aug 2021 18:12:56 GMT expires: - '-1' pragma: @@ -876,9 +877,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -894,13 +895,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3b48f15f3"}}' + not found: livekvtestcertrec0b48f15f3"}}' headers: cache-control: - no-cache @@ -909,7 +910,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:21 GMT + - Fri, 06 Aug 2021 18:12:58 GMT expires: - '-1' pragma: @@ -921,9 +922,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -939,13 +940,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3b48f15f3"}}' + not found: livekvtestcertrec0b48f15f3"}}' headers: cache-control: - no-cache @@ -954,7 +955,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:23 GMT + - Fri, 06 Aug 2021 18:13:01 GMT expires: - '-1' pragma: @@ -966,9 +967,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -984,13 +985,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3b48f15f3"}}' + not found: livekvtestcertrec0b48f15f3"}}' headers: cache-control: - no-cache @@ -999,7 +1000,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:25 GMT + - Fri, 06 Aug 2021 18:13:03 GMT expires: - '-1' pragma: @@ -1011,9 +1012,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1029,13 +1030,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3b48f15f3"}}' + not found: livekvtestcertrec0b48f15f3"}}' headers: cache-control: - no-cache @@ -1044,7 +1045,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:27 GMT + - Fri, 06 Aug 2021 18:13:04 GMT expires: - '-1' pragma: @@ -1056,9 +1057,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1074,13 +1075,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3b48f15f3"}}' + not found: livekvtestcertrec0b48f15f3"}}' headers: cache-control: - no-cache @@ -1089,7 +1090,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:30 GMT + - Fri, 06 Aug 2021 18:13:06 GMT expires: - '-1' pragma: @@ -1101,9 +1102,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1119,21 +1120,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3","deletedDate":1616449099,"scheduledPurgeDate":1624225099,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449092,"updated":1616449092,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449092,"updated":1616449092}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec0b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:31 GMT + - Fri, 06 Aug 2021 18:13:08 GMT expires: - '-1' pragma: @@ -1145,14 +1147,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1162,24 +1164,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3","deletedDate":1616449112,"scheduledPurgeDate":1624225112,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449094,"updated":1616449094,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449094,"updated":1616449094}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec0b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:32 GMT + - Fri, 06 Aug 2021 18:13:10 GMT expires: - '-1' pragma: @@ -1191,14 +1192,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1209,13 +1210,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5b48f15f3"}}' + not found: livekvtestcertrec0b48f15f3"}}' headers: cache-control: - no-cache @@ -1224,7 +1225,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:32 GMT + - Fri, 06 Aug 2021 18:13:13 GMT expires: - '-1' pragma: @@ -1236,9 +1237,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1254,13 +1255,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5b48f15f3"}}' + not found: livekvtestcertrec0b48f15f3"}}' headers: cache-control: - no-cache @@ -1269,7 +1270,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:34 GMT + - Fri, 06 Aug 2021 18:13:15 GMT expires: - '-1' pragma: @@ -1281,9 +1282,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1299,13 +1300,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5b48f15f3"}}' + not found: livekvtestcertrec0b48f15f3"}}' headers: cache-control: - no-cache @@ -1314,7 +1315,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:36 GMT + - Fri, 06 Aug 2021 18:13:17 GMT expires: - '-1' pragma: @@ -1326,9 +1327,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1344,13 +1345,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5b48f15f3"}}' + not found: livekvtestcertrec0b48f15f3"}}' headers: cache-control: - no-cache @@ -1359,7 +1360,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:38 GMT + - Fri, 06 Aug 2021 18:13:19 GMT expires: - '-1' pragma: @@ -1371,9 +1372,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1389,13 +1390,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5b48f15f3"}}' + not found: livekvtestcertrec0b48f15f3"}}' headers: cache-control: - no-cache @@ -1404,7 +1405,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:40 GMT + - Fri, 06 Aug 2021 18:13:21 GMT expires: - '-1' pragma: @@ -1416,9 +1417,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1434,13 +1435,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5b48f15f3"}}' + not found: livekvtestcertrec0b48f15f3"}}' headers: cache-control: - no-cache @@ -1449,7 +1450,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:42 GMT + - Fri, 06 Aug 2021 18:13:23 GMT expires: - '-1' pragma: @@ -1461,9 +1462,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1479,22 +1480,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5b48f15f3"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3","deletedDate":1628273577,"scheduledPurgeDate":1636049577,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273570,"updated":1628273570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273570,"updated":1628273570}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:45 GMT + - Fri, 06 Aug 2021 18:13:25 GMT expires: - '-1' pragma: @@ -1506,14 +1507,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -1523,22 +1524,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3","deletedDate":1616449112,"scheduledPurgeDate":1624225112,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449094,"updated":1616449094,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449094,"updated":1616449094}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3","deletedDate":1628273606,"scheduledPurgeDate":1636049606,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273571,"updated":1628273571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273571,"updated":1628273571}}}' headers: cache-control: - no-cache content-length: - - '2003' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:47 GMT + - Fri, 06 Aug 2021 18:13:26 GMT expires: - '-1' pragma: @@ -1550,9 +1554,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1567,24 +1571,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3","deletedDate":1616449127,"scheduledPurgeDate":1624225127,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1b48f15f3/d70760fa2304430eb47cd51b7678bb06","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1b48f15f3/d70760fa2304430eb47cd51b7678bb06","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1b48f15f3/d70760fa2304430eb47cd51b7678bb06","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449095,"updated":1616449095,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449095,"updated":1616449095}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:47 GMT + - Fri, 06 Aug 2021 18:13:26 GMT expires: - '-1' pragma: @@ -1596,14 +1599,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1614,13 +1617,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1b48f15f3"}}' + not found: livekvtestcertrec1b48f15f3"}}' headers: cache-control: - no-cache @@ -1629,7 +1632,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:47 GMT + - Fri, 06 Aug 2021 18:13:28 GMT expires: - '-1' pragma: @@ -1641,9 +1644,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1659,13 +1662,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1b48f15f3"}}' + not found: livekvtestcertrec1b48f15f3"}}' headers: cache-control: - no-cache @@ -1674,7 +1677,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:49 GMT + - Fri, 06 Aug 2021 18:13:30 GMT expires: - '-1' pragma: @@ -1686,9 +1689,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1704,13 +1707,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1b48f15f3"}}' + not found: livekvtestcertrec1b48f15f3"}}' headers: cache-control: - no-cache @@ -1719,7 +1722,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:52 GMT + - Fri, 06 Aug 2021 18:13:32 GMT expires: - '-1' pragma: @@ -1731,9 +1734,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1749,13 +1752,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1b48f15f3"}}' + not found: livekvtestcertrec1b48f15f3"}}' headers: cache-control: - no-cache @@ -1764,7 +1767,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:54 GMT + - Fri, 06 Aug 2021 18:13:34 GMT expires: - '-1' pragma: @@ -1776,9 +1779,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1794,13 +1797,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1b48f15f3"}}' + not found: livekvtestcertrec1b48f15f3"}}' headers: cache-control: - no-cache @@ -1809,7 +1812,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:55 GMT + - Fri, 06 Aug 2021 18:13:36 GMT expires: - '-1' pragma: @@ -1821,9 +1824,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1839,13 +1842,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1b48f15f3"}}' + not found: livekvtestcertrec1b48f15f3"}}' headers: cache-control: - no-cache @@ -1854,7 +1857,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:38:57 GMT + - Fri, 06 Aug 2021 18:13:38 GMT expires: - '-1' pragma: @@ -1866,9 +1869,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1884,21 +1887,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3","deletedDate":1616449127,"scheduledPurgeDate":1624225127,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1b48f15f3/d70760fa2304430eb47cd51b7678bb06","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1b48f15f3/d70760fa2304430eb47cd51b7678bb06","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1b48f15f3/d70760fa2304430eb47cd51b7678bb06","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449095,"updated":1616449095,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449095,"updated":1616449095}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:00 GMT + - Fri, 06 Aug 2021 18:13:40 GMT expires: - '-1' pragma: @@ -1910,14 +1914,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1927,24 +1931,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3","deletedDate":1616449141,"scheduledPurgeDate":1624225141,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449093,"updated":1616449093,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449093,"updated":1616449093}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:00 GMT + - Fri, 06 Aug 2021 18:13:42 GMT expires: - '-1' pragma: @@ -1956,14 +1959,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1974,13 +1977,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4b48f15f3"}}' + not found: livekvtestcertrec1b48f15f3"}}' headers: cache-control: - no-cache @@ -1989,7 +1992,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:00 GMT + - Fri, 06 Aug 2021 18:13:44 GMT expires: - '-1' pragma: @@ -2001,9 +2004,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2019,22 +2022,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4b48f15f3"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3","deletedDate":1628273606,"scheduledPurgeDate":1636049606,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273571,"updated":1628273571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273571,"updated":1628273571}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:03 GMT + - Fri, 06 Aug 2021 18:13:46 GMT expires: - '-1' pragma: @@ -2046,14 +2049,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -2063,23 +2066,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4b48f15f3"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3","deletedDate":1628273627,"scheduledPurgeDate":1636049627,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273571,"updated":1628273571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273571,"updated":1628273571}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:05 GMT + - Fri, 06 Aug 2021 18:13:47 GMT expires: - '-1' pragma: @@ -2091,14 +2096,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -2109,13 +2114,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4b48f15f3"}}' + not found: livekvtestcertrec2b48f15f3"}}' headers: cache-control: - no-cache @@ -2124,7 +2129,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:07 GMT + - Fri, 06 Aug 2021 18:13:47 GMT expires: - '-1' pragma: @@ -2136,9 +2141,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2154,21 +2159,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3","deletedDate":1616449141,"scheduledPurgeDate":1624225141,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449093,"updated":1616449093,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449093,"updated":1616449093}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec2b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:09 GMT + - Fri, 06 Aug 2021 18:13:49 GMT expires: - '-1' pragma: @@ -2180,14 +2186,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2197,24 +2203,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3","deletedDate":1616449150,"scheduledPurgeDate":1624225150,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3/6485a197f648496686ec8290c5a5a579","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6b48f15f3/6485a197f648496686ec8290c5a5a579","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6b48f15f3/6485a197f648496686ec8290c5a5a579","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449098,"updated":1616449098,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449098,"updated":1616449098}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec2b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:09 GMT + - Fri, 06 Aug 2021 18:13:50 GMT expires: - '-1' pragma: @@ -2226,14 +2231,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2244,13 +2249,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6b48f15f3"}}' + not found: livekvtestcertrec2b48f15f3"}}' headers: cache-control: - no-cache @@ -2259,7 +2264,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:09 GMT + - Fri, 06 Aug 2021 18:13:52 GMT expires: - '-1' pragma: @@ -2271,9 +2276,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2289,13 +2294,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6b48f15f3"}}' + not found: livekvtestcertrec2b48f15f3"}}' headers: cache-control: - no-cache @@ -2304,7 +2309,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:11 GMT + - Fri, 06 Aug 2021 18:13:54 GMT expires: - '-1' pragma: @@ -2316,9 +2321,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2334,13 +2339,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6b48f15f3"}}' + not found: livekvtestcertrec2b48f15f3"}}' headers: cache-control: - no-cache @@ -2349,7 +2354,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:14 GMT + - Fri, 06 Aug 2021 18:13:57 GMT expires: - '-1' pragma: @@ -2361,9 +2366,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2379,13 +2384,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6b48f15f3"}}' + not found: livekvtestcertrec2b48f15f3"}}' headers: cache-control: - no-cache @@ -2394,7 +2399,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:16 GMT + - Fri, 06 Aug 2021 18:13:59 GMT expires: - '-1' pragma: @@ -2406,9 +2411,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2424,13 +2429,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6b48f15f3"}}' + not found: livekvtestcertrec2b48f15f3"}}' headers: cache-control: - no-cache @@ -2439,7 +2444,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:18 GMT + - Fri, 06 Aug 2021 18:14:01 GMT expires: - '-1' pragma: @@ -2451,9 +2456,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2469,13 +2474,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6b48f15f3"}}' + not found: livekvtestcertrec2b48f15f3"}}' headers: cache-control: - no-cache @@ -2484,7 +2489,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:20 GMT + - Fri, 06 Aug 2021 18:14:03 GMT expires: - '-1' pragma: @@ -2496,9 +2501,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2514,13 +2519,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6b48f15f3"}}' + not found: livekvtestcertrec2b48f15f3"}}' headers: cache-control: - no-cache @@ -2529,7 +2534,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:22 GMT + - Fri, 06 Aug 2021 18:14:05 GMT expires: - '-1' pragma: @@ -2541,9 +2546,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2559,13 +2564,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6b48f15f3"}}' + not found: livekvtestcertrec2b48f15f3"}}' headers: cache-control: - no-cache @@ -2574,7 +2579,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:24 GMT + - Fri, 06 Aug 2021 18:14:07 GMT expires: - '-1' pragma: @@ -2586,9 +2591,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2604,22 +2609,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6b48f15f3"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3","deletedDate":1628273627,"scheduledPurgeDate":1636049627,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273571,"updated":1628273571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273571,"updated":1628273571}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:26 GMT + - Fri, 06 Aug 2021 18:14:09 GMT expires: - '-1' pragma: @@ -2631,14 +2636,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -2648,23 +2653,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6b48f15f3"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3","deletedDate":1628273650,"scheduledPurgeDate":1636049650,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273572,"updated":1628273572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273572,"updated":1628273572}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:28 GMT + - Fri, 06 Aug 2021 18:14:09 GMT expires: - '-1' pragma: @@ -2676,14 +2683,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -2694,13 +2701,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6b48f15f3"}}' + not found: livekvtestcertrec3b48f15f3"}}' headers: cache-control: - no-cache @@ -2709,7 +2716,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:30 GMT + - Fri, 06 Aug 2021 18:14:09 GMT expires: - '-1' pragma: @@ -2721,9 +2728,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2739,13 +2746,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6b48f15f3"}}' + not found: livekvtestcertrec3b48f15f3"}}' headers: cache-control: - no-cache @@ -2754,7 +2761,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:33 GMT + - Fri, 06 Aug 2021 18:14:11 GMT expires: - '-1' pragma: @@ -2766,9 +2773,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2784,21 +2791,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3","deletedDate":1616449150,"scheduledPurgeDate":1624225150,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3/6485a197f648496686ec8290c5a5a579","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6b48f15f3/6485a197f648496686ec8290c5a5a579","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6b48f15f3/6485a197f648496686ec8290c5a5a579","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449098,"updated":1616449098,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449098,"updated":1616449098}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec3b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:35 GMT + - Fri, 06 Aug 2021 18:14:14 GMT expires: - '-1' pragma: @@ -2810,14 +2818,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2827,24 +2835,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3","deletedDate":1616449176,"scheduledPurgeDate":1624225176,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4b48f15f3/2e907d5b9791455da707499bf79007dd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4b48f15f3/2e907d5b9791455da707499bf79007dd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4b48f15f3/2e907d5b9791455da707499bf79007dd","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449097,"updated":1616449097,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449097,"updated":1616449097}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec3b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:35 GMT + - Fri, 06 Aug 2021 18:14:16 GMT expires: - '-1' pragma: @@ -2856,14 +2863,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2874,13 +2881,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4b48f15f3"}}' + not found: livekvtestcertrec3b48f15f3"}}' headers: cache-control: - no-cache @@ -2889,7 +2896,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:35 GMT + - Fri, 06 Aug 2021 18:14:18 GMT expires: - '-1' pragma: @@ -2901,9 +2908,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2919,13 +2926,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4b48f15f3"}}' + not found: livekvtestcertrec3b48f15f3"}}' headers: cache-control: - no-cache @@ -2934,7 +2941,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:37 GMT + - Fri, 06 Aug 2021 18:14:20 GMT expires: - '-1' pragma: @@ -2946,9 +2953,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2964,13 +2971,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4b48f15f3"}}' + not found: livekvtestcertrec3b48f15f3"}}' headers: cache-control: - no-cache @@ -2979,7 +2986,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:40 GMT + - Fri, 06 Aug 2021 18:14:22 GMT expires: - '-1' pragma: @@ -2991,9 +2998,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3009,13 +3016,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4b48f15f3"}}' + not found: livekvtestcertrec3b48f15f3"}}' headers: cache-control: - no-cache @@ -3024,7 +3031,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:42 GMT + - Fri, 06 Aug 2021 18:14:24 GMT expires: - '-1' pragma: @@ -3036,9 +3043,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3054,13 +3061,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4b48f15f3"}}' + not found: livekvtestcertrec3b48f15f3"}}' headers: cache-control: - no-cache @@ -3069,7 +3076,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:44 GMT + - Fri, 06 Aug 2021 18:14:26 GMT expires: - '-1' pragma: @@ -3081,9 +3088,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3099,13 +3106,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4b48f15f3"}}' + not found: livekvtestcertrec3b48f15f3"}}' headers: cache-control: - no-cache @@ -3114,7 +3121,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:46 GMT + - Fri, 06 Aug 2021 18:14:28 GMT expires: - '-1' pragma: @@ -3126,9 +3133,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3144,22 +3151,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4b48f15f3"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3","deletedDate":1628273650,"scheduledPurgeDate":1636049650,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273572,"updated":1628273572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273572,"updated":1628273572}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:48 GMT + - Fri, 06 Aug 2021 18:14:30 GMT expires: - '-1' pragma: @@ -3171,14 +3178,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -3188,23 +3195,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4b48f15f3"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3","deletedDate":1628273671,"scheduledPurgeDate":1636049671,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273572,"updated":1628273572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273572,"updated":1628273572}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:50 GMT + - Fri, 06 Aug 2021 18:14:30 GMT expires: - '-1' pragma: @@ -3216,14 +3225,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -3234,13 +3243,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4b48f15f3"}}' + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache @@ -3249,7 +3258,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:52 GMT + - Fri, 06 Aug 2021 18:14:30 GMT expires: - '-1' pragma: @@ -3261,9 +3270,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3279,21 +3288,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3","deletedDate":1616449176,"scheduledPurgeDate":1624225176,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4b48f15f3/2e907d5b9791455da707499bf79007dd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4b48f15f3/2e907d5b9791455da707499bf79007dd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4b48f15f3/2e907d5b9791455da707499bf79007dd","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449097,"updated":1616449097,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449097,"updated":1616449097}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:54 GMT + - Fri, 06 Aug 2021 18:14:33 GMT expires: - '-1' pragma: @@ -3305,14 +3315,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3322,24 +3332,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3","deletedDate":1616449195,"scheduledPurgeDate":1624225195,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5b48f15f3/4649b0adda79481fb2bb132731afad08","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5b48f15f3/4649b0adda79481fb2bb132731afad08","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5b48f15f3/4649b0adda79481fb2bb132731afad08","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449098,"updated":1616449098,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449098,"updated":1616449098}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:55 GMT + - Fri, 06 Aug 2021 18:14:35 GMT expires: - '-1' pragma: @@ -3351,14 +3360,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3369,13 +3378,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5b48f15f3"}}' + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache @@ -3384,7 +3393,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:55 GMT + - Fri, 06 Aug 2021 18:14:37 GMT expires: - '-1' pragma: @@ -3396,9 +3405,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3414,13 +3423,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5b48f15f3"}}' + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache @@ -3429,7 +3438,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:57 GMT + - Fri, 06 Aug 2021 18:14:39 GMT expires: - '-1' pragma: @@ -3441,9 +3450,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3459,13 +3468,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5b48f15f3"}}' + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache @@ -3474,7 +3483,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:39:59 GMT + - Fri, 06 Aug 2021 18:14:41 GMT expires: - '-1' pragma: @@ -3486,9 +3495,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3504,13 +3513,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5b48f15f3"}}' + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache @@ -3519,7 +3528,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:01 GMT + - Fri, 06 Aug 2021 18:14:43 GMT expires: - '-1' pragma: @@ -3531,9 +3540,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3549,13 +3558,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5b48f15f3"}}' + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache @@ -3564,7 +3573,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:04 GMT + - Fri, 06 Aug 2021 18:14:44 GMT expires: - '-1' pragma: @@ -3576,9 +3585,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3594,13 +3603,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5b48f15f3"}}' + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache @@ -3609,7 +3618,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:06 GMT + - Fri, 06 Aug 2021 18:14:46 GMT expires: - '-1' pragma: @@ -3621,9 +3630,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3639,13 +3648,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5b48f15f3"}}' + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache @@ -3654,7 +3663,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:08 GMT + - Fri, 06 Aug 2021 18:14:49 GMT expires: - '-1' pragma: @@ -3666,9 +3675,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3684,13 +3693,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5b48f15f3"}}' + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache @@ -3699,7 +3708,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:10 GMT + - Fri, 06 Aug 2021 18:14:51 GMT expires: - '-1' pragma: @@ -3711,9 +3720,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3729,13 +3738,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5b48f15f3"}}' + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache @@ -3744,7 +3753,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:12 GMT + - Fri, 06 Aug 2021 18:14:53 GMT expires: - '-1' pragma: @@ -3756,9 +3765,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3774,13 +3783,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5b48f15f3"}}' + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache @@ -3789,7 +3798,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:14 GMT + - Fri, 06 Aug 2021 18:14:55 GMT expires: - '-1' pragma: @@ -3801,9 +3810,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3819,13 +3828,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5b48f15f3"}}' + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache @@ -3834,7 +3843,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:16 GMT + - Fri, 06 Aug 2021 18:14:57 GMT expires: - '-1' pragma: @@ -3846,9 +3855,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3864,13 +3873,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5b48f15f3"}}' + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache @@ -3879,7 +3888,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:19 GMT + - Fri, 06 Aug 2021 18:14:59 GMT expires: - '-1' pragma: @@ -3891,9 +3900,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3909,21 +3918,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3","deletedDate":1616449195,"scheduledPurgeDate":1624225195,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5b48f15f3/4649b0adda79481fb2bb132731afad08","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5b48f15f3/4649b0adda79481fb2bb132731afad08","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5b48f15f3/4649b0adda79481fb2bb132731afad08","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449098,"updated":1616449098,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449098,"updated":1616449098}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:21 GMT + - Fri, 06 Aug 2021 18:15:01 GMT expires: - '-1' pragma: @@ -3935,14 +3945,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3952,24 +3962,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3","deletedDate":1616449222,"scheduledPurgeDate":1624225222,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2b48f15f3/1320bb824691469e930ad57734945cdb","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2b48f15f3/1320bb824691469e930ad57734945cdb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2b48f15f3/1320bb824691469e930ad57734945cdb","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449096,"updated":1616449096,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449096,"updated":1616449096}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:21 GMT + - Fri, 06 Aug 2021 18:15:03 GMT expires: - '-1' pragma: @@ -3981,14 +3990,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3999,13 +4008,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2b48f15f3"}}' + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache @@ -4014,7 +4023,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:21 GMT + - Fri, 06 Aug 2021 18:15:06 GMT expires: - '-1' pragma: @@ -4026,9 +4035,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4044,13 +4053,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2b48f15f3"}}' + not found: livekvtestcertrec4b48f15f3"}}' headers: cache-control: - no-cache @@ -4059,7 +4068,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:24 GMT + - Fri, 06 Aug 2021 18:15:08 GMT expires: - '-1' pragma: @@ -4071,9 +4080,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4089,22 +4098,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2b48f15f3"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3","deletedDate":1628273671,"scheduledPurgeDate":1636049671,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273572,"updated":1628273572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273572,"updated":1628273572}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:26 GMT + - Fri, 06 Aug 2021 18:15:09 GMT expires: - '-1' pragma: @@ -4116,14 +4125,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -4133,23 +4142,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2b48f15f3"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3","deletedDate":1628273710,"scheduledPurgeDate":1636049710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273573,"updated":1628273573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273573,"updated":1628273573}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:28 GMT + - Fri, 06 Aug 2021 18:15:09 GMT expires: - '-1' pragma: @@ -4161,14 +4172,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -4179,13 +4190,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2b48f15f3"}}' + not found: livekvtestcertrec5b48f15f3"}}' headers: cache-control: - no-cache @@ -4194,7 +4205,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:30 GMT + - Fri, 06 Aug 2021 18:15:10 GMT expires: - '-1' pragma: @@ -4206,9 +4217,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4224,13 +4235,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2b48f15f3"}}' + not found: livekvtestcertrec5b48f15f3"}}' headers: cache-control: - no-cache @@ -4239,7 +4250,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:32 GMT + - Fri, 06 Aug 2021 18:15:12 GMT expires: - '-1' pragma: @@ -4251,9 +4262,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4269,13 +4280,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2b48f15f3"}}' + not found: livekvtestcertrec5b48f15f3"}}' headers: cache-control: - no-cache @@ -4284,7 +4295,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:35 GMT + - Fri, 06 Aug 2021 18:15:14 GMT expires: - '-1' pragma: @@ -4296,9 +4307,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4314,21 +4325,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3","deletedDate":1616449222,"scheduledPurgeDate":1624225222,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2b48f15f3/1320bb824691469e930ad57734945cdb","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2b48f15f3/1320bb824691469e930ad57734945cdb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2b48f15f3/1320bb824691469e930ad57734945cdb","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449096,"updated":1616449096,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449096,"updated":1616449096}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:37 GMT + - Fri, 06 Aug 2021 18:15:16 GMT expires: - '-1' pragma: @@ -4340,14 +4352,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -4357,24 +4369,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3","deletedDate":1616449237,"scheduledPurgeDate":1624225237,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3b48f15f3/12a9a07d2ac34128b83fc81fa464d3b4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3b48f15f3/12a9a07d2ac34128b83fc81fa464d3b4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3b48f15f3/12a9a07d2ac34128b83fc81fa464d3b4","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449097,"updated":1616449097,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449097,"updated":1616449097}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:37 GMT + - Fri, 06 Aug 2021 18:15:18 GMT expires: - '-1' pragma: @@ -4386,14 +4397,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -4404,13 +4415,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3b48f15f3"}}' + not found: livekvtestcertrec5b48f15f3"}}' headers: cache-control: - no-cache @@ -4419,7 +4430,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:37 GMT + - Fri, 06 Aug 2021 18:15:20 GMT expires: - '-1' pragma: @@ -4431,9 +4442,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4449,13 +4460,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3b48f15f3"}}' + not found: livekvtestcertrec5b48f15f3"}}' headers: cache-control: - no-cache @@ -4464,7 +4475,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:39 GMT + - Fri, 06 Aug 2021 18:15:23 GMT expires: - '-1' pragma: @@ -4476,9 +4487,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4494,13 +4505,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3b48f15f3"}}' + not found: livekvtestcertrec5b48f15f3"}}' headers: cache-control: - no-cache @@ -4509,7 +4520,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:41 GMT + - Fri, 06 Aug 2021 18:15:25 GMT expires: - '-1' pragma: @@ -4521,9 +4532,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4539,22 +4550,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3b48f15f3"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3","deletedDate":1628273710,"scheduledPurgeDate":1636049710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273573,"updated":1628273573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273573,"updated":1628273573}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:43 GMT + - Fri, 06 Aug 2021 18:15:27 GMT expires: - '-1' pragma: @@ -4566,14 +4577,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -4583,23 +4594,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3b48f15f3"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3","deletedDate":1628273727,"scheduledPurgeDate":1636049727,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273573,"updated":1628273573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273573,"updated":1628273573}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:46 GMT + - Fri, 06 Aug 2021 18:15:27 GMT expires: - '-1' pragma: @@ -4611,14 +4624,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -4629,13 +4642,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3b48f15f3"}}' + not found: livekvtestcertrec6b48f15f3"}}' headers: cache-control: - no-cache @@ -4644,7 +4657,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:48 GMT + - Fri, 06 Aug 2021 18:15:27 GMT expires: - '-1' pragma: @@ -4656,9 +4669,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4674,21 +4687,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3","deletedDate":1616449237,"scheduledPurgeDate":1624225237,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3b48f15f3/12a9a07d2ac34128b83fc81fa464d3b4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3b48f15f3/12a9a07d2ac34128b83fc81fa464d3b4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3b48f15f3/12a9a07d2ac34128b83fc81fa464d3b4","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449097,"updated":1616449097,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449097,"updated":1616449097}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:50 GMT + - Fri, 06 Aug 2021 18:15:29 GMT expires: - '-1' pragma: @@ -4700,14 +4714,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -4717,24 +4731,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3","deletedDate":1616449251,"scheduledPurgeDate":1624225251,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449094,"updated":1616449094,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449094,"updated":1616449094}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:50 GMT + - Fri, 06 Aug 2021 18:15:31 GMT expires: - '-1' pragma: @@ -4746,14 +4759,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -4764,7 +4777,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3?api-version=2016-10-01 response: @@ -4779,7 +4792,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:50 GMT + - Fri, 06 Aug 2021 18:15:33 GMT expires: - '-1' pragma: @@ -4791,9 +4804,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4809,7 +4822,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3?api-version=2016-10-01 response: @@ -4824,7 +4837,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:52 GMT + - Fri, 06 Aug 2021 18:15:35 GMT expires: - '-1' pragma: @@ -4836,9 +4849,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4854,7 +4867,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3?api-version=2016-10-01 response: @@ -4869,7 +4882,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:55 GMT + - Fri, 06 Aug 2021 18:15:37 GMT expires: - '-1' pragma: @@ -4881,9 +4894,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4899,7 +4912,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3?api-version=2016-10-01 response: @@ -4914,7 +4927,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:57 GMT + - Fri, 06 Aug 2021 18:15:39 GMT expires: - '-1' pragma: @@ -4926,9 +4939,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4944,7 +4957,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3?api-version=2016-10-01 response: @@ -4959,7 +4972,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:40:59 GMT + - Fri, 06 Aug 2021 18:15:41 GMT expires: - '-1' pragma: @@ -4971,9 +4984,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4989,7 +5002,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3?api-version=2016-10-01 response: @@ -5004,7 +5017,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:01 GMT + - Fri, 06 Aug 2021 18:15:44 GMT expires: - '-1' pragma: @@ -5016,9 +5029,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5034,7 +5047,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3?api-version=2016-10-01 response: @@ -5049,7 +5062,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:03 GMT + - Fri, 06 Aug 2021 18:15:46 GMT expires: - '-1' pragma: @@ -5061,9 +5074,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5079,21 +5092,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3","deletedDate":1616449251,"scheduledPurgeDate":1624225251,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449094,"updated":1616449094,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449094,"updated":1616449094}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3","deletedDate":1628273727,"scheduledPurgeDate":1636049727,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273573,"updated":1628273573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273573,"updated":1628273573}}}' headers: cache-control: - no-cache content-length: - - '2003' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:06 GMT + - Fri, 06 Aug 2021 18:15:47 GMT expires: - '-1' pragma: @@ -5105,9 +5119,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5125,21 +5139,22 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3","deletedDate":1616449266,"scheduledPurgeDate":1624225266,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449091,"updated":1616449091,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449091,"updated":1616449091}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3","deletedDate":1628273748,"scheduledPurgeDate":1636049748,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0b48f15f3/38d67467e93a42c3a527b934d292fb43","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0b48f15f3/38d67467e93a42c3a527b934d292fb43","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0b48f15f3/38d67467e93a42c3a527b934d292fb43","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273574,"updated":1628273574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273574,"updated":1628273574}}}' headers: cache-control: - no-cache content-length: - - '2003' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:06 GMT + - Fri, 06 Aug 2021 18:15:48 GMT expires: - '-1' pragma: @@ -5151,9 +5166,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5169,13 +5184,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0b48f15f3"}}' + not found: livekvtestcertprg0b48f15f3"}}' headers: cache-control: - no-cache @@ -5184,7 +5199,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:06 GMT + - Fri, 06 Aug 2021 18:15:48 GMT expires: - '-1' pragma: @@ -5196,9 +5211,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5214,13 +5229,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0b48f15f3"}}' + not found: livekvtestcertprg0b48f15f3"}}' headers: cache-control: - no-cache @@ -5229,7 +5244,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:08 GMT + - Fri, 06 Aug 2021 18:15:50 GMT expires: - '-1' pragma: @@ -5241,9 +5256,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5259,13 +5274,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0b48f15f3"}}' + not found: livekvtestcertprg0b48f15f3"}}' headers: cache-control: - no-cache @@ -5274,7 +5289,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:10 GMT + - Fri, 06 Aug 2021 18:15:51 GMT expires: - '-1' pragma: @@ -5286,9 +5301,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5304,13 +5319,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0b48f15f3"}}' + not found: livekvtestcertprg0b48f15f3"}}' headers: cache-control: - no-cache @@ -5319,7 +5334,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:12 GMT + - Fri, 06 Aug 2021 18:15:53 GMT expires: - '-1' pragma: @@ -5331,9 +5346,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5349,13 +5364,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0b48f15f3"}}' + not found: livekvtestcertprg0b48f15f3"}}' headers: cache-control: - no-cache @@ -5364,7 +5379,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:15 GMT + - Fri, 06 Aug 2021 18:15:56 GMT expires: - '-1' pragma: @@ -5376,9 +5391,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5394,13 +5409,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0b48f15f3"}}' + not found: livekvtestcertprg0b48f15f3"}}' headers: cache-control: - no-cache @@ -5409,7 +5424,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:17 GMT + - Fri, 06 Aug 2021 18:15:58 GMT expires: - '-1' pragma: @@ -5421,9 +5436,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5439,13 +5454,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0b48f15f3"}}' + not found: livekvtestcertprg0b48f15f3"}}' headers: cache-control: - no-cache @@ -5454,7 +5469,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:19 GMT + - Fri, 06 Aug 2021 18:16:00 GMT expires: - '-1' pragma: @@ -5466,9 +5481,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5484,13 +5499,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0b48f15f3"}}' + not found: livekvtestcertprg0b48f15f3"}}' headers: cache-control: - no-cache @@ -5499,7 +5514,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:21 GMT + - Fri, 06 Aug 2021 18:16:03 GMT expires: - '-1' pragma: @@ -5511,9 +5526,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5529,21 +5544,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3","deletedDate":1616449266,"scheduledPurgeDate":1624225266,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449091,"updated":1616449091,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449091,"updated":1616449091}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:23 GMT + - Fri, 06 Aug 2021 18:16:05 GMT expires: - '-1' pragma: @@ -5555,14 +5571,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -5572,24 +5588,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3","deletedDate":1616449284,"scheduledPurgeDate":1624225284,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449091,"updated":1616449091,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449091,"updated":1616449091}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:23 GMT + - Fri, 06 Aug 2021 18:16:07 GMT expires: - '-1' pragma: @@ -5601,14 +5616,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -5619,13 +5634,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1b48f15f3"}}' + not found: livekvtestcertprg0b48f15f3"}}' headers: cache-control: - no-cache @@ -5634,7 +5649,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:23 GMT + - Fri, 06 Aug 2021 18:16:09 GMT expires: - '-1' pragma: @@ -5646,9 +5661,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5664,13 +5679,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1b48f15f3"}}' + not found: livekvtestcertprg0b48f15f3"}}' headers: cache-control: - no-cache @@ -5679,7 +5694,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:25 GMT + - Fri, 06 Aug 2021 18:16:11 GMT expires: - '-1' pragma: @@ -5691,9 +5706,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5709,22 +5724,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1b48f15f3"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3","deletedDate":1628273748,"scheduledPurgeDate":1636049748,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0b48f15f3/38d67467e93a42c3a527b934d292fb43","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0b48f15f3/38d67467e93a42c3a527b934d292fb43","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0b48f15f3/38d67467e93a42c3a527b934d292fb43","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273574,"updated":1628273574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273574,"updated":1628273574}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:28 GMT + - Fri, 06 Aug 2021 18:16:12 GMT expires: - '-1' pragma: @@ -5736,14 +5751,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -5753,23 +5768,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1b48f15f3"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3","deletedDate":1628273773,"scheduledPurgeDate":1636049773,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1b48f15f3/c54bce44cb4d47c39691f27e265b0a72","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1b48f15f3/c54bce44cb4d47c39691f27e265b0a72","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1b48f15f3/c54bce44cb4d47c39691f27e265b0a72","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273574,"updated":1628273574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273574,"updated":1628273574}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:30 GMT + - Fri, 06 Aug 2021 18:16:13 GMT expires: - '-1' pragma: @@ -5781,14 +5798,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -5799,13 +5816,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1b48f15f3"}}' + not found: livekvtestcertprg1b48f15f3"}}' headers: cache-control: - no-cache @@ -5814,7 +5831,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:32 GMT + - Fri, 06 Aug 2021 18:16:13 GMT expires: - '-1' pragma: @@ -5826,9 +5843,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5844,13 +5861,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1b48f15f3"}}' + not found: livekvtestcertprg1b48f15f3"}}' headers: cache-control: - no-cache @@ -5859,7 +5876,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:34 GMT + - Fri, 06 Aug 2021 18:16:15 GMT expires: - '-1' pragma: @@ -5871,9 +5888,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5889,21 +5906,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3","deletedDate":1616449284,"scheduledPurgeDate":1624225284,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449091,"updated":1616449091,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449091,"updated":1616449091}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:36 GMT + - Fri, 06 Aug 2021 18:16:16 GMT expires: - '-1' pragma: @@ -5915,14 +5933,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -5932,24 +5950,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3","deletedDate":1616449297,"scheduledPurgeDate":1624225297,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449092,"updated":1616449092,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449092,"updated":1616449092}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:36 GMT + - Fri, 06 Aug 2021 18:16:19 GMT expires: - '-1' pragma: @@ -5961,14 +5978,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -5979,13 +5996,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2b48f15f3"}}' + not found: livekvtestcertprg1b48f15f3"}}' headers: cache-control: - no-cache @@ -5994,7 +6011,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:36 GMT + - Fri, 06 Aug 2021 18:16:21 GMT expires: - '-1' pragma: @@ -6006,9 +6023,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6024,13 +6041,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2b48f15f3"}}' + not found: livekvtestcertprg1b48f15f3"}}' headers: cache-control: - no-cache @@ -6039,7 +6056,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:39 GMT + - Fri, 06 Aug 2021 18:16:23 GMT expires: - '-1' pragma: @@ -6051,9 +6068,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6069,13 +6086,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2b48f15f3"}}' + not found: livekvtestcertprg1b48f15f3"}}' headers: cache-control: - no-cache @@ -6084,7 +6101,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:41 GMT + - Fri, 06 Aug 2021 18:16:25 GMT expires: - '-1' pragma: @@ -6096,9 +6113,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6114,13 +6131,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2b48f15f3"}}' + not found: livekvtestcertprg1b48f15f3"}}' headers: cache-control: - no-cache @@ -6129,7 +6146,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:43 GMT + - Fri, 06 Aug 2021 18:16:27 GMT expires: - '-1' pragma: @@ -6141,9 +6158,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6159,22 +6176,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2b48f15f3"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3","deletedDate":1628273773,"scheduledPurgeDate":1636049773,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1b48f15f3/c54bce44cb4d47c39691f27e265b0a72","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1b48f15f3/c54bce44cb4d47c39691f27e265b0a72","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1b48f15f3/c54bce44cb4d47c39691f27e265b0a72","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273574,"updated":1628273574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273574,"updated":1628273574}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:45 GMT + - Fri, 06 Aug 2021 18:16:29 GMT expires: - '-1' pragma: @@ -6186,14 +6203,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -6203,23 +6220,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2b48f15f3"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3","deletedDate":1628273790,"scheduledPurgeDate":1636049790,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2b48f15f3/49de07f6451f4f4893b2b10bd8d69f13","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2b48f15f3/49de07f6451f4f4893b2b10bd8d69f13","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2b48f15f3/49de07f6451f4f4893b2b10bd8d69f13","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273575,"updated":1628273575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273575,"updated":1628273575}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:47 GMT + - Fri, 06 Aug 2021 18:16:29 GMT expires: - '-1' pragma: @@ -6231,14 +6250,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -6249,13 +6268,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2b48f15f3"}}' + not found: livekvtestcertprg2b48f15f3"}}' headers: cache-control: - no-cache @@ -6264,7 +6283,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:49 GMT + - Fri, 06 Aug 2021 18:16:29 GMT expires: - '-1' pragma: @@ -6276,9 +6295,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6294,21 +6313,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3","deletedDate":1616449297,"scheduledPurgeDate":1624225297,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449092,"updated":1616449092,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449092,"updated":1616449092}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:51 GMT + - Fri, 06 Aug 2021 18:16:32 GMT expires: - '-1' pragma: @@ -6320,14 +6340,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6337,24 +6357,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3","deletedDate":1616449312,"scheduledPurgeDate":1624225312,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0b48f15f3/929c1e2704cf4b0c80b29b1834db0f28","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0b48f15f3/929c1e2704cf4b0c80b29b1834db0f28","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0b48f15f3/929c1e2704cf4b0c80b29b1834db0f28","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449095,"updated":1616449095,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449095,"updated":1616449095}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:52 GMT + - Fri, 06 Aug 2021 18:16:34 GMT expires: - '-1' pragma: @@ -6366,14 +6385,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6384,13 +6403,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0b48f15f3"}}' + not found: livekvtestcertprg2b48f15f3"}}' headers: cache-control: - no-cache @@ -6399,7 +6418,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:52 GMT + - Fri, 06 Aug 2021 18:16:36 GMT expires: - '-1' pragma: @@ -6411,9 +6430,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6429,13 +6448,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0b48f15f3"}}' + not found: livekvtestcertprg2b48f15f3"}}' headers: cache-control: - no-cache @@ -6444,7 +6463,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:55 GMT + - Fri, 06 Aug 2021 18:16:38 GMT expires: - '-1' pragma: @@ -6456,9 +6475,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6474,13 +6493,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0b48f15f3"}}' + not found: livekvtestcertprg2b48f15f3"}}' headers: cache-control: - no-cache @@ -6489,7 +6508,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:57 GMT + - Fri, 06 Aug 2021 18:16:40 GMT expires: - '-1' pragma: @@ -6501,9 +6520,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6519,13 +6538,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0b48f15f3"}}' + not found: livekvtestcertprg2b48f15f3"}}' headers: cache-control: - no-cache @@ -6534,7 +6553,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:41:59 GMT + - Fri, 06 Aug 2021 18:16:42 GMT expires: - '-1' pragma: @@ -6546,9 +6565,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6564,13 +6583,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0b48f15f3"}}' + not found: livekvtestcertprg2b48f15f3"}}' headers: cache-control: - no-cache @@ -6579,7 +6598,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:01 GMT + - Fri, 06 Aug 2021 18:16:44 GMT expires: - '-1' pragma: @@ -6591,9 +6610,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6609,13 +6628,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0b48f15f3"}}' + not found: livekvtestcertprg2b48f15f3"}}' headers: cache-control: - no-cache @@ -6624,7 +6643,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:03 GMT + - Fri, 06 Aug 2021 18:16:46 GMT expires: - '-1' pragma: @@ -6636,9 +6655,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6654,21 +6673,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3","deletedDate":1616449312,"scheduledPurgeDate":1624225312,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0b48f15f3/929c1e2704cf4b0c80b29b1834db0f28","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0b48f15f3/929c1e2704cf4b0c80b29b1834db0f28","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0b48f15f3/929c1e2704cf4b0c80b29b1834db0f28","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449095,"updated":1616449095,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449095,"updated":1616449095}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2b48f15f3"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:05 GMT + - Fri, 06 Aug 2021 18:16:48 GMT expires: - '-1' pragma: @@ -6680,14 +6700,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6698,21 +6718,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 response: body: - string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3","deletedDate":1628273790,"scheduledPurgeDate":1636049790,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2b48f15f3/49de07f6451f4f4893b2b10bd8d69f13","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2b48f15f3/49de07f6451f4f4893b2b10bd8d69f13","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2b48f15f3/49de07f6451f4f4893b2b10bd8d69f13","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273575,"updated":1628273575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273575,"updated":1628273575}}}' headers: cache-control: - no-cache content-length: - - '332' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:06 GMT + - Fri, 06 Aug 2021 18:16:50 GMT expires: - '-1' pragma: @@ -6724,9 +6745,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6741,22 +6762,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcert86bc153a","deletedDate":1616448460,"scheduledPurgeDate":1624224460,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert86bc153a","x5t":"se7NvIEKi8S7ofjDzgwQac1xJ4k","attributes":{"enabled":true,"nbf":1616447853,"exp":1647984453,"created":1616448453,"updated":1616448460,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76613b7","deletedDate":1616448501,"scheduledPurgeDate":1624224501,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76613b7","x5t":"c4HAnMZ8fqtsb0BFJX8iJTcCvfo","attributes":{"enabled":true,"nbf":1616447896,"exp":1647984496,"created":1616448496,"updated":1616448501,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76713b8","deletedDate":1616448532,"scheduledPurgeDate":1624224532,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76713b8","x5t":"Xg4iTQA_I614-V1OPIdMd4DgQpI","attributes":{"enabled":true,"nbf":1616447926,"exp":1647984526,"created":1616448526,"updated":1616448532,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3","deletedDate":1616449312,"scheduledPurgeDate":1624225312,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0b48f15f3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449095,"updated":1616449095,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3","deletedDate":1616449127,"scheduledPurgeDate":1624225127,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1b48f15f3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449095,"updated":1616449095,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3","deletedDate":1616449222,"scheduledPurgeDate":1624225222,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2b48f15f3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449096,"updated":1616449096,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3","deletedDate":1616449237,"scheduledPurgeDate":1624225237,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3b48f15f3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449097,"updated":1616449097,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3","deletedDate":1616449176,"scheduledPurgeDate":1624225176,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4b48f15f3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449097,"updated":1616449097,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3","deletedDate":1616449195,"scheduledPurgeDate":1624225195,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5b48f15f3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449098,"updated":1616449098,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3","deletedDate":1616449150,"scheduledPurgeDate":1624225150,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449098,"updated":1616449098,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3","deletedDate":1616449266,"scheduledPurgeDate":1624225266,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449091,"updated":1616449091,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3","deletedDate":1616449284,"scheduledPurgeDate":1624225284,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449091,"updated":1616449091,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3","deletedDate":1616449297,"scheduledPurgeDate":1624225297,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449092,"updated":1616449092,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3","deletedDate":1616449099,"scheduledPurgeDate":1624225099,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449092,"updated":1616449092,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3","deletedDate":1616449141,"scheduledPurgeDate":1624225141,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449093,"updated":1616449093,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3","deletedDate":1616449112,"scheduledPurgeDate":1624225112,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449094,"updated":1616449094,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3","deletedDate":1616449251,"scheduledPurgeDate":1624225251,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449094,"updated":1616449094,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlF6RTNSRVF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3","deletedDate":1628273811,"scheduledPurgeDate":1636049811,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3b48f15f3/27ad405bba63475199ae6df993e8c950","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3b48f15f3/27ad405bba63475199ae6df993e8c950","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3b48f15f3/27ad405bba63475199ae6df993e8c950","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273575,"updated":1628273575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273575,"updated":1628273575}}}' headers: cache-control: - no-cache content-length: - - '7619' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:06 GMT + - Fri, 06 Aug 2021 18:16:50 GMT expires: - '-1' pragma: @@ -6768,9 +6792,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6786,21 +6810,4971 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlF6RTNSRVF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:16:50 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:16:52 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:16:55 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:16:57 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:16:59 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:01 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:03 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:05 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:07 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:09 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3","deletedDate":1628273811,"scheduledPurgeDate":1636049811,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3b48f15f3/27ad405bba63475199ae6df993e8c950","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3b48f15f3/27ad405bba63475199ae6df993e8c950","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3b48f15f3/27ad405bba63475199ae6df993e8c950","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273575,"updated":1628273575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273575,"updated":1628273575}}}' + headers: + cache-control: + - no-cache + content-length: + - '2436' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:11 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3","deletedDate":1628273832,"scheduledPurgeDate":1636049832,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4b48f15f3/10a2c72a96934e44875320b19c1646f9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4b48f15f3/10a2c72a96934e44875320b19c1646f9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4b48f15f3/10a2c72a96934e44875320b19c1646f9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273575,"updated":1628273575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273575,"updated":1628273575}}}' + headers: + cache-control: + - no-cache + content-length: + - '2436' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:11 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:11 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:13 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:15 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:18 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:22 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:24 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:26 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:28 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3","deletedDate":1628273832,"scheduledPurgeDate":1636049832,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4b48f15f3/10a2c72a96934e44875320b19c1646f9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4b48f15f3/10a2c72a96934e44875320b19c1646f9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4b48f15f3/10a2c72a96934e44875320b19c1646f9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273575,"updated":1628273575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273575,"updated":1628273575}}}' + headers: + cache-control: + - no-cache + content-length: + - '2436' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:30 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3","deletedDate":1628273851,"scheduledPurgeDate":1636049851,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5b48f15f3/c5a0c643c63a44379d5541ffa864ad53","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5b48f15f3/c5a0c643c63a44379d5541ffa864ad53","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5b48f15f3/c5a0c643c63a44379d5541ffa864ad53","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273576,"updated":1628273576,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273576,"updated":1628273576}}}' + headers: + cache-control: + - no-cache + content-length: + - '2436' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:30 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:30 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:32 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:34 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:36 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:39 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:41 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:43 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:45 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:47 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:49 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:51 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:54 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:56 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:58 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:17:59 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:01 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:03 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:05 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:08 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:10 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3","deletedDate":1628273851,"scheduledPurgeDate":1636049851,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5b48f15f3/c5a0c643c63a44379d5541ffa864ad53","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5b48f15f3/c5a0c643c63a44379d5541ffa864ad53","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5b48f15f3/c5a0c643c63a44379d5541ffa864ad53","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273576,"updated":1628273576,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273576,"updated":1628273576}}}' + headers: + cache-control: + - no-cache + content-length: + - '2436' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:14 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3","deletedDate":1628273894,"scheduledPurgeDate":1636049894,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3/e525c1dd49ba43b897c5e6770d0bea8c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6b48f15f3/e525c1dd49ba43b897c5e6770d0bea8c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6b48f15f3/e525c1dd49ba43b897c5e6770d0bea8c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273576,"updated":1628273576,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273576,"updated":1628273576}}}' + headers: + cache-control: + - no-cache + content-length: + - '2436' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:14 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:14 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:16 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:18 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:23 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:25 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:27 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:29 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:30 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:32 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6b48f15f3"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:35 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3","deletedDate":1628273894,"scheduledPurgeDate":1636049894,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3/e525c1dd49ba43b897c5e6770d0bea8c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6b48f15f3/e525c1dd49ba43b897c5e6770d0bea8c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6b48f15f3/e525c1dd49ba43b897c5e6770d0bea8c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273576,"updated":1628273576,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273576,"updated":1628273576}}}' + headers: + cache-control: + - no-cache + content-length: + - '2436' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:37 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: + - no-cache + content-length: + - '330' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:37 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: + - no-cache + content-length: + - '330' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:37 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1628271087,"scheduledPurgeDate":1636047087,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"RC8tFJZPwOeZWUeGE9sGSFTbczM","attributes":{"enabled":true,"nbf":1628270484,"exp":1659807084,"created":1628271084,"updated":1628271087,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3","deletedDate":1628273748,"scheduledPurgeDate":1636049748,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273574,"updated":1628273574,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3","deletedDate":1628273773,"scheduledPurgeDate":1636049773,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273574,"updated":1628273574,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3","deletedDate":1628273790,"scheduledPurgeDate":1636049790,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273575,"updated":1628273575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3","deletedDate":1628273811,"scheduledPurgeDate":1636049811,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273575,"updated":1628273575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3","deletedDate":1628273832,"scheduledPurgeDate":1636049832,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273575,"updated":1628273575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3","deletedDate":1628273851,"scheduledPurgeDate":1636049851,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273576,"updated":1628273576,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3","deletedDate":1628273894,"scheduledPurgeDate":1636049894,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273576,"updated":1628273576,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3","deletedDate":1628273577,"scheduledPurgeDate":1636049577,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273570,"updated":1628273570,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3","deletedDate":1628273606,"scheduledPurgeDate":1636049606,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273571,"updated":1628273571,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3","deletedDate":1628273627,"scheduledPurgeDate":1636049627,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273571,"updated":1628273571,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3","deletedDate":1628273650,"scheduledPurgeDate":1636049650,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273572,"updated":1628273572,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETTBJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: + - no-cache + content-length: + - '5399' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:38 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETTBJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3","deletedDate":1628273671,"scheduledPurgeDate":1636049671,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273572,"updated":1628273572,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3","deletedDate":1628273710,"scheduledPurgeDate":1636049710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273573,"updated":1628273573,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3","deletedDate":1628273727,"scheduledPurgeDate":1636049727,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273573,"updated":1628273573,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRsRE56VXlNVU16TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: + - no-cache + content-length: + - '1642' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:38 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRsRE56VXlNVU16TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[],"nextLink":null}' + headers: + cache-control: + - no-cache + content-length: + - '28' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:38 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3/recover?api-version=2016-10-01 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273570,"updated":1628273570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273570,"updated":1628273570}}}' + headers: + cache-control: + - no-cache + content-length: + - '2282' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:38 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:38 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:40 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:42 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:44 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:46 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:49 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:51 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:52 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:54 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:57 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:58 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:03 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:05 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:07 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:10 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273570,"updated":1628273570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273570,"updated":1628273570}}}' + headers: + cache-control: + - no-cache + content-length: + - '2282' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:13 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3/recover?api-version=2016-10-01 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273571,"updated":1628273571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273571,"updated":1628273571}}}' + headers: + cache-control: + - no-cache + content-length: + - '2282' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:13 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:13 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:15 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:18 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:22 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:24 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:26 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:28 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:30 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:32 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:35 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273571,"updated":1628273571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273571,"updated":1628273571}}}' + headers: + cache-control: + - no-cache + content-length: + - '2282' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:37 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3/recover?api-version=2016-10-01 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273571,"updated":1628273571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273571,"updated":1628273571}}}' + headers: + cache-control: + - no-cache + content-length: + - '2282' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:37 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:37 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:39 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:41 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:42 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:44 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:47 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:49 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 response: body: - string: '{"value":[],"nextLink":null}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:51 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:53 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:55 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:19:57 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:20:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '28' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:06 GMT + - Fri, 06 Aug 2021 18:20:02 GMT expires: - '-1' pragma: @@ -6812,14 +11786,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6829,24 +11803,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3/recover?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449092,"updated":1616449092,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449092,"updated":1616449092}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:07 GMT + - Fri, 06 Aug 2021 18:20:04 GMT expires: - '-1' pragma: @@ -6858,14 +11833,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6876,13 +11851,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6893,7 +11868,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:07 GMT + - Fri, 06 Aug 2021 18:20:06 GMT expires: - '-1' pragma: @@ -6905,9 +11880,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6923,13 +11898,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6940,7 +11915,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:09 GMT + - Fri, 06 Aug 2021 18:20:08 GMT expires: - '-1' pragma: @@ -6952,9 +11927,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6970,13 +11945,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6987,7 +11962,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:11 GMT + - Fri, 06 Aug 2021 18:20:10 GMT expires: - '-1' pragma: @@ -6999,9 +11974,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7017,13 +11992,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7034,7 +12009,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:13 GMT + - Fri, 06 Aug 2021 18:20:12 GMT expires: - '-1' pragma: @@ -7046,9 +12021,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7064,13 +12039,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7081,7 +12056,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:15 GMT + - Fri, 06 Aug 2021 18:20:15 GMT expires: - '-1' pragma: @@ -7093,9 +12068,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7111,13 +12086,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7128,7 +12103,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:17 GMT + - Fri, 06 Aug 2021 18:20:17 GMT expires: - '-1' pragma: @@ -7140,9 +12115,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7158,21 +12133,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449092,"updated":1616449092,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449092,"updated":1616449092}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273571,"updated":1628273571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273571,"updated":1628273571}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:19 GMT + - Fri, 06 Aug 2021 18:20:19 GMT expires: - '-1' pragma: @@ -7184,9 +12160,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7204,21 +12180,22 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3/recover?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3b48f15f3/recover?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449094,"updated":1616449094,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449094,"updated":1616449094}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273572,"updated":1628273572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273572,"updated":1628273572}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:20 GMT + - Fri, 06 Aug 2021 18:20:19 GMT expires: - '-1' pragma: @@ -7230,9 +12207,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7248,13 +12225,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7265,7 +12242,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:20 GMT + - Fri, 06 Aug 2021 18:20:19 GMT expires: - '-1' pragma: @@ -7277,9 +12254,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7295,13 +12272,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7312,7 +12289,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:22 GMT + - Fri, 06 Aug 2021 18:20:21 GMT expires: - '-1' pragma: @@ -7324,9 +12301,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7342,13 +12319,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7359,7 +12336,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:25 GMT + - Fri, 06 Aug 2021 18:20:23 GMT expires: - '-1' pragma: @@ -7371,9 +12348,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7389,13 +12366,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7406,7 +12383,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:27 GMT + - Fri, 06 Aug 2021 18:20:24 GMT expires: - '-1' pragma: @@ -7418,9 +12395,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7436,13 +12413,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7453,7 +12430,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:29 GMT + - Fri, 06 Aug 2021 18:20:27 GMT expires: - '-1' pragma: @@ -7465,9 +12442,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7483,13 +12460,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7500,7 +12477,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:31 GMT + - Fri, 06 Aug 2021 18:20:29 GMT expires: - '-1' pragma: @@ -7512,9 +12489,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7530,13 +12507,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7547,7 +12524,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:33 GMT + - Fri, 06 Aug 2021 18:20:31 GMT expires: - '-1' pragma: @@ -7559,9 +12536,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7577,21 +12554,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449094,"updated":1616449094,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449094,"updated":1616449094}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:35 GMT + - Fri, 06 Aug 2021 18:20:33 GMT expires: - '-1' pragma: @@ -7603,14 +12583,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -7620,24 +12600,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3/recover?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449093,"updated":1616449093,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449093,"updated":1616449093}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:35 GMT + - Fri, 06 Aug 2021 18:20:36 GMT expires: - '-1' pragma: @@ -7649,14 +12630,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -7667,13 +12648,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7684,7 +12665,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:35 GMT + - Fri, 06 Aug 2021 18:20:38 GMT expires: - '-1' pragma: @@ -7696,9 +12677,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7714,13 +12695,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7731,7 +12712,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:37 GMT + - Fri, 06 Aug 2021 18:20:40 GMT expires: - '-1' pragma: @@ -7743,9 +12724,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7761,13 +12742,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7778,7 +12759,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:40 GMT + - Fri, 06 Aug 2021 18:20:42 GMT expires: - '-1' pragma: @@ -7790,9 +12771,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7808,13 +12789,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7825,7 +12806,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:42 GMT + - Fri, 06 Aug 2021 18:20:44 GMT expires: - '-1' pragma: @@ -7837,9 +12818,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7855,13 +12836,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7872,7 +12853,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:45 GMT + - Fri, 06 Aug 2021 18:20:46 GMT expires: - '-1' pragma: @@ -7884,9 +12865,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7902,13 +12883,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7919,7 +12900,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:47 GMT + - Fri, 06 Aug 2021 18:20:47 GMT expires: - '-1' pragma: @@ -7931,9 +12912,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7949,13 +12930,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7966,7 +12947,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:49 GMT + - Fri, 06 Aug 2021 18:20:50 GMT expires: - '-1' pragma: @@ -7978,9 +12959,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7996,21 +12977,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449093,"updated":1616449093,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449093,"updated":1616449093}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:51 GMT + - Fri, 06 Aug 2021 18:20:52 GMT expires: - '-1' pragma: @@ -8022,14 +13006,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -8039,24 +13023,70 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3/recover?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:20:54 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449094,"updated":1616449094,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449094,"updated":1616449094}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273572,"updated":1628273572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273572,"updated":1628273572}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:51 GMT + - Fri, 06 Aug 2021 18:20:56 GMT expires: - '-1' pragma: @@ -8068,9 +13098,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8085,25 +13115,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4b48f15f3/recover?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6b48f15f3 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273572,"updated":1628273572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273572,"updated":1628273572}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:51 GMT + - Fri, 06 Aug 2021 18:20:56 GMT expires: - '-1' pragma: @@ -8115,14 +13145,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -8133,13 +13163,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8150,7 +13180,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:53 GMT + - Fri, 06 Aug 2021 18:20:56 GMT expires: - '-1' pragma: @@ -8162,9 +13192,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8180,13 +13210,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8197,7 +13227,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:57 GMT + - Fri, 06 Aug 2021 18:20:58 GMT expires: - '-1' pragma: @@ -8209,9 +13239,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8227,13 +13257,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8244,7 +13274,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:42:59 GMT + - Fri, 06 Aug 2021 18:21:01 GMT expires: - '-1' pragma: @@ -8256,9 +13286,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8274,13 +13304,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8291,7 +13321,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:01 GMT + - Fri, 06 Aug 2021 18:21:02 GMT expires: - '-1' pragma: @@ -8303,9 +13333,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8321,13 +13351,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8338,7 +13368,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:03 GMT + - Fri, 06 Aug 2021 18:21:05 GMT expires: - '-1' pragma: @@ -8350,9 +13380,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8368,21 +13398,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449094,"updated":1616449094,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449094,"updated":1616449094}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:05 GMT + - Fri, 06 Aug 2021 18:21:07 GMT expires: - '-1' pragma: @@ -8394,14 +13427,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -8411,24 +13444,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0b48f15f3/recover?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449091,"updated":1616449091,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449091,"updated":1616449091}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:05 GMT + - Fri, 06 Aug 2021 18:21:09 GMT expires: - '-1' pragma: @@ -8440,14 +13474,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -8458,13 +13492,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8475,7 +13509,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:05 GMT + - Fri, 06 Aug 2021 18:21:11 GMT expires: - '-1' pragma: @@ -8487,9 +13521,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8505,13 +13539,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8522,7 +13556,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:07 GMT + - Fri, 06 Aug 2021 18:21:13 GMT expires: - '-1' pragma: @@ -8534,9 +13568,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8552,13 +13586,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8569,7 +13603,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:09 GMT + - Fri, 06 Aug 2021 18:21:15 GMT expires: - '-1' pragma: @@ -8581,9 +13615,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8599,13 +13633,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8616,7 +13650,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:11 GMT + - Fri, 06 Aug 2021 18:21:17 GMT expires: - '-1' pragma: @@ -8628,9 +13662,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8646,13 +13680,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec4b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8663,7 +13697,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:14 GMT + - Fri, 06 Aug 2021 18:21:19 GMT expires: - '-1' pragma: @@ -8675,9 +13709,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8693,24 +13727,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273572,"updated":1628273572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273572,"updated":1628273572}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:16 GMT + - Fri, 06 Aug 2021 18:21:21 GMT expires: - '-1' pragma: @@ -8722,14 +13754,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -8739,25 +13771,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5b48f15f3/recover?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0b48f15f3 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273573,"updated":1628273573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273573,"updated":1628273573}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:18 GMT + - Fri, 06 Aug 2021 18:21:21 GMT expires: - '-1' pragma: @@ -8769,14 +13801,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -8787,21 +13819,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449091,"updated":1616449091,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449091,"updated":1616449091}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec5b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:20 GMT + - Fri, 06 Aug 2021 18:21:21 GMT expires: - '-1' pragma: @@ -8813,14 +13848,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -8830,24 +13865,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1b48f15f3/recover?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449091,"updated":1616449091,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449091,"updated":1616449091}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec5b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:20 GMT + - Fri, 06 Aug 2021 18:21:23 GMT expires: - '-1' pragma: @@ -8859,14 +13895,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -8877,13 +13913,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec5b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8894,7 +13930,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:21 GMT + - Fri, 06 Aug 2021 18:21:26 GMT expires: - '-1' pragma: @@ -8906,9 +13942,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8924,13 +13960,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec5b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8941,7 +13977,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:23 GMT + - Fri, 06 Aug 2021 18:21:28 GMT expires: - '-1' pragma: @@ -8953,9 +13989,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8971,13 +14007,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec5b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8988,7 +14024,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:25 GMT + - Fri, 06 Aug 2021 18:21:30 GMT expires: - '-1' pragma: @@ -9000,9 +14036,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9018,13 +14054,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec5b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9035,7 +14071,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:27 GMT + - Fri, 06 Aug 2021 18:21:32 GMT expires: - '-1' pragma: @@ -9047,9 +14083,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9065,13 +14101,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec5b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9082,7 +14118,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:29 GMT + - Fri, 06 Aug 2021 18:21:33 GMT expires: - '-1' pragma: @@ -9094,9 +14130,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9112,13 +14148,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec5b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9129,7 +14165,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:31 GMT + - Fri, 06 Aug 2021 18:21:35 GMT expires: - '-1' pragma: @@ -9141,9 +14177,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9159,24 +14195,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1b48f15f3 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273573,"updated":1628273573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273573,"updated":1628273573}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:34 GMT + - Fri, 06 Aug 2021 18:21:38 GMT expires: - '-1' pragma: @@ -9188,14 +14222,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -9205,22 +14239,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6b48f15f3/recover?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449091,"updated":1616449091,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449091,"updated":1616449091}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273573,"updated":1628273573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273573,"updated":1628273573}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:36 GMT + - Fri, 06 Aug 2021 18:21:38 GMT expires: - '-1' pragma: @@ -9232,9 +14269,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9249,24 +14286,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2b48f15f3/recover?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449092,"updated":1616449092,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449092,"updated":1616449092}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec6b48f15f3 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:36 GMT + - Fri, 06 Aug 2021 18:21:38 GMT expires: - '-1' pragma: @@ -9278,14 +14316,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -9296,13 +14334,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec6b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9313,7 +14351,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:36 GMT + - Fri, 06 Aug 2021 18:21:40 GMT expires: - '-1' pragma: @@ -9325,9 +14363,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9343,13 +14381,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec6b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9360,7 +14398,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:38 GMT + - Fri, 06 Aug 2021 18:21:42 GMT expires: - '-1' pragma: @@ -9372,9 +14410,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9390,13 +14428,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec6b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9407,7 +14445,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:41 GMT + - Fri, 06 Aug 2021 18:21:44 GMT expires: - '-1' pragma: @@ -9419,9 +14457,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9437,13 +14475,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec6b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9454,7 +14492,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:43 GMT + - Fri, 06 Aug 2021 18:21:47 GMT expires: - '-1' pragma: @@ -9466,9 +14504,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9484,13 +14522,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec6b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9501,7 +14539,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:45 GMT + - Fri, 06 Aug 2021 18:21:49 GMT expires: - '-1' pragma: @@ -9513,9 +14551,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9531,13 +14569,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec6b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9548,7 +14586,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:47 GMT + - Fri, 06 Aug 2021 18:21:50 GMT expires: - '-1' pragma: @@ -9560,9 +14598,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9578,13 +14616,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2b48f15f3 was not found in this key vault. If you + (name/id) livekvtestcertrec6b48f15f3 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9595,7 +14633,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:49 GMT + - Fri, 06 Aug 2021 18:21:53 GMT expires: - '-1' pragma: @@ -9607,9 +14645,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9625,21 +14663,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449092,"updated":1616449092,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449092,"updated":1616449092}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273573,"updated":1628273573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273573,"updated":1628273573}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:43:52 GMT + - Fri, 06 Aug 2021 18:21:55 GMT expires: - '-1' pragma: @@ -9651,9 +14690,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9671,9 +14710,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 response: body: string: '' @@ -9681,7 +14720,7 @@ interactions: cache-control: - no-cache date: - - Mon, 22 Mar 2021 21:43:52 GMT + - Fri, 06 Aug 2021 18:21:55 GMT expires: - '-1' pragma: @@ -9693,9 +14732,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9713,9 +14752,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1b48f15f3?api-version=2016-10-01 response: body: string: '' @@ -9723,7 +14762,7 @@ interactions: cache-control: - no-cache date: - - Mon, 22 Mar 2021 21:43:52 GMT + - Fri, 06 Aug 2021 18:21:55 GMT expires: - '-1' pragma: @@ -9735,9 +14774,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9755,9 +14794,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 response: body: string: '' @@ -9765,7 +14804,7 @@ interactions: cache-control: - no-cache date: - - Mon, 22 Mar 2021 21:43:52 GMT + - Fri, 06 Aug 2021 18:21:55 GMT expires: - '-1' pragma: @@ -9777,9 +14816,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9797,9 +14836,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 response: body: string: '' @@ -9807,7 +14846,7 @@ interactions: cache-control: - no-cache date: - - Mon, 22 Mar 2021 21:43:53 GMT + - Fri, 06 Aug 2021 18:21:55 GMT expires: - '-1' pragma: @@ -9819,9 +14858,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9839,9 +14878,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4b48f15f3?api-version=2016-10-01 response: body: string: '' @@ -9849,7 +14888,7 @@ interactions: cache-control: - no-cache date: - - Mon, 22 Mar 2021 21:43:53 GMT + - Fri, 06 Aug 2021 18:21:55 GMT expires: - '-1' pragma: @@ -9861,9 +14900,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9881,9 +14920,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5b48f15f3?api-version=2016-10-01 response: body: string: '' @@ -9891,7 +14930,7 @@ interactions: cache-control: - no-cache date: - - Mon, 22 Mar 2021 21:43:53 GMT + - Fri, 06 Aug 2021 18:21:56 GMT expires: - '-1' pragma: @@ -9903,9 +14942,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9923,9 +14962,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0b48f15f3?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6b48f15f3?api-version=2016-10-01 response: body: string: '' @@ -9933,7 +14972,7 @@ interactions: cache-control: - no-cache date: - - Mon, 22 Mar 2021 21:43:53 GMT + - Fri, 06 Aug 2021 18:21:56 GMT expires: - '-1' pragma: @@ -9945,9 +14984,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9963,21 +15002,109 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01 response: body: - string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: + - no-cache + content-length: + - '330' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:22:46 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: + - no-cache + content-length: + - '330' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:22:46 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1628271087,"scheduledPurgeDate":1636047087,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"RC8tFJZPwOeZWUeGE9sGSFTbczM","attributes":{"enabled":true,"nbf":1628270484,"exp":1659807084,"created":1628271084,"updated":1628271087,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870","deletedDate":1628274024,"scheduledPurgeDate":1636050024,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274017,"updated":1628274017,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870","deletedDate":1628274057,"scheduledPurgeDate":1636050057,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274018,"updated":1628274018,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870","deletedDate":1628274082,"scheduledPurgeDate":1636050082,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274018,"updated":1628274018,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETWpSRU9EVXhPRGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: - no-cache content-length: - - '332' + - '2039' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:43 GMT + - Fri, 06 Aug 2021 18:22:46 GMT expires: - '-1' pragma: @@ -9989,9 +15116,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -10007,21 +15134,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETWpSRU9EVXhPRGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcert86bc153a","deletedDate":1616448460,"scheduledPurgeDate":1624224460,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert86bc153a","x5t":"se7NvIEKi8S7ofjDzgwQac1xJ4k","attributes":{"enabled":true,"nbf":1616447853,"exp":1647984453,"created":1616448453,"updated":1616448460,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76613b7","deletedDate":1616448501,"scheduledPurgeDate":1624224501,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76613b7","x5t":"c4HAnMZ8fqtsb0BFJX8iJTcCvfo","attributes":{"enabled":true,"nbf":1616447896,"exp":1647984496,"created":1616448496,"updated":1616448501,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76713b8","deletedDate":1616448532,"scheduledPurgeDate":1624224532,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76713b8","x5t":"Xg4iTQA_I614-V1OPIdMd4DgQpI","attributes":{"enabled":true,"nbf":1616447926,"exp":1647984526,"created":1616448526,"updated":1616448532,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSUVQweEpRMWxEUlZKVVNVWkpRMEZVUlRVd1Jqa3dSa1kyTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870","deletedDate":1628274099,"scheduledPurgeDate":1636050099,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274019,"updated":1628274019,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870","deletedDate":1628274115,"scheduledPurgeDate":1636050115,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274019,"updated":1628274019,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870","deletedDate":1628274132,"scheduledPurgeDate":1636050132,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274020,"updated":1628274020,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870","deletedDate":1628274149,"scheduledPurgeDate":1636050149,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274020,"updated":1628274020,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRjek9VVXlORE5GTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: - no-cache content-length: - - '1699' + - '2062' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:44 GMT + - Fri, 06 Aug 2021 18:22:46 GMT expires: - '-1' pragma: @@ -10033,9 +15160,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -10051,9 +15178,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSUVQweEpRMWxEUlZKVVNVWkpRMEZVUlRVd1Jqa3dSa1kyTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRjek9VVXlORE5GTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: string: '{"value":[],"nextLink":null}' @@ -10065,7 +15192,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:44 GMT + - Fri, 06 Aug 2021 18:22:47 GMT expires: - '-1' pragma: @@ -10077,9 +15204,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -10095,21 +15222,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3b48f15f3/9b6fe7d49f0246dc834a4e2a3e4d2849","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449092,"updated":1616449092,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449092,"updated":1616449092}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0b48f15f3/7977ce9183794c26bfe5621524356034","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273570,"updated":1628273570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273570,"updated":1628273570}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:44 GMT + - Fri, 06 Aug 2021 18:22:47 GMT expires: - '-1' pragma: @@ -10121,9 +15249,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -10139,21 +15267,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5b48f15f3/6a1a27d5ac094327a271d140eea0dff9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449094,"updated":1616449094,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449094,"updated":1616449094}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1b48f15f3/3d29c66a6b89478191cff0c7c78278bb","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273571,"updated":1628273571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273571,"updated":1628273571}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:44 GMT + - Fri, 06 Aug 2021 18:22:47 GMT expires: - '-1' pragma: @@ -10165,9 +15294,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -10183,21 +15312,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4b48f15f3/be1149a5613e454494ae20c812555ef9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449093,"updated":1616449093,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449093,"updated":1616449093}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2b48f15f3/0436d55863044abf80413275d354176c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273571,"updated":1628273571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273571,"updated":1628273571}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:44 GMT + - Fri, 06 Aug 2021 18:22:47 GMT expires: - '-1' pragma: @@ -10209,9 +15339,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -10227,21 +15357,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0b48f15f3/f024d564dd754b469b2e133ba72457c5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449091,"updated":1616449091,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449091,"updated":1616449091}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3b48f15f3/91bf42dcf9e7492aa7cb1fb9cd9a646d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273572,"updated":1628273572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273572,"updated":1628273572}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:44 GMT + - Fri, 06 Aug 2021 18:22:47 GMT expires: - '-1' pragma: @@ -10253,9 +15384,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -10271,21 +15402,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1b48f15f3/481904f550554f638aa1938413f71237","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449091,"updated":1616449091,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449091,"updated":1616449091}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4b48f15f3/c2e99cd26aec4afebccb4ffb952b1a10","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273572,"updated":1628273572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273572,"updated":1628273572}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:46 GMT + - Fri, 06 Aug 2021 18:22:47 GMT expires: - '-1' pragma: @@ -10297,9 +15429,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -10315,21 +15447,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2b48f15f3/d15f461029b14211bec0ffbebe967566","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449092,"updated":1616449092,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449092,"updated":1616449092}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5b48f15f3/4e17d5883f4b46038627136d46ec029c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273573,"updated":1628273573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273573,"updated":1628273573}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:46 GMT + - Fri, 06 Aug 2021 18:22:47 GMT expires: - '-1' pragma: @@ -10341,9 +15474,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -10359,21 +15492,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6b48f15f3/20b0ab02e56249e187cefad7433ae09d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449094,"updated":1616449094,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449094,"updated":1616449094}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6b48f15f3/c9bcbc86d5fc43d9a505ef7f9f354bb5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273573,"updated":1628273573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6b48f15f3/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273573,"updated":1628273573}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:46 GMT + - Fri, 06 Aug 2021 18:22:47 GMT expires: - '-1' pragma: @@ -10385,9 +15519,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_recover_and_purge_7_0.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_recover_and_purge_7_0.yaml index 8169acbe9645..df07445d6e60 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_recover_and_purge_7_0.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_recover_and_purge_7_0.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/import?api-version=7.0 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:46 GMT + - Fri, 06 Aug 2021 18:22:48 GMT expires: - '-1' pragma: @@ -43,21 +43,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -66,25 +65,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449487,"updated":1616449487,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449487,"updated":1616449487}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274169,"updated":1628274169,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274169,"updated":1628274169}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:47 GMT + - Fri, 06 Aug 2021 18:22:48 GMT expires: - '-1' pragma: @@ -96,21 +96,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -119,25 +118,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449488,"updated":1616449488,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449488,"updated":1616449488}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274169,"updated":1628274169,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274169,"updated":1628274169}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:47 GMT + - Fri, 06 Aug 2021 18:22:49 GMT expires: - '-1' pragma: @@ -149,21 +149,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -172,25 +171,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449488,"updated":1616449488,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449488,"updated":1616449488}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274170,"updated":1628274170}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:48 GMT + - Fri, 06 Aug 2021 18:22:49 GMT expires: - '-1' pragma: @@ -202,21 +202,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -225,25 +224,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449489,"updated":1616449489,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449489,"updated":1616449489}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274170,"updated":1628274170}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:48 GMT + - Fri, 06 Aug 2021 18:22:51 GMT expires: - '-1' pragma: @@ -255,21 +255,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -278,25 +277,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449489,"updated":1616449489,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449489,"updated":1616449489}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274171,"updated":1628274171}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:50 GMT + - Fri, 06 Aug 2021 18:22:51 GMT expires: - '-1' pragma: @@ -308,21 +308,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -331,25 +330,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449490,"updated":1616449490,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449490,"updated":1616449490}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274171,"updated":1628274171}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:50 GMT + - Fri, 06 Aug 2021 18:22:52 GMT expires: - '-1' pragma: @@ -361,21 +361,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -384,25 +383,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449490,"updated":1616449490,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449490,"updated":1616449490}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274172,"updated":1628274172,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274172,"updated":1628274172}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:51 GMT + - Fri, 06 Aug 2021 18:22:52 GMT expires: - '-1' pragma: @@ -414,21 +414,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -437,25 +436,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470/05afbcd81e1544879f5291a8e01455e7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg020391470/05afbcd81e1544879f5291a8e01455e7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg020391470/05afbcd81e1544879f5291a8e01455e7","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449491,"updated":1616449491,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449491,"updated":1616449491}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470/2074ef157c3742408d9257adc7ea401b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg020391470/2074ef157c3742408d9257adc7ea401b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg020391470/2074ef157c3742408d9257adc7ea401b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274172,"updated":1628274172,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274172,"updated":1628274172}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:51 GMT + - Fri, 06 Aug 2021 18:22:52 GMT expires: - '-1' pragma: @@ -467,21 +467,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -490,25 +489,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470/96c2b3a78ad24fd9b778356b306e614b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg120391470/96c2b3a78ad24fd9b778356b306e614b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg120391470/96c2b3a78ad24fd9b778356b306e614b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449492,"updated":1616449492,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449492,"updated":1616449492}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470/3b7eb5a4b5754710b08d8be1f534a480","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg120391470/3b7eb5a4b5754710b08d8be1f534a480","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg120391470/3b7eb5a4b5754710b08d8be1f534a480","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274173,"updated":1628274173,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274173,"updated":1628274173}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:52 GMT + - Fri, 06 Aug 2021 18:22:53 GMT expires: - '-1' pragma: @@ -520,21 +520,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -543,25 +542,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470/a26bba1e0546479aab555af405f2a850","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg220391470/a26bba1e0546479aab555af405f2a850","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg220391470/a26bba1e0546479aab555af405f2a850","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449492,"updated":1616449492,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449492,"updated":1616449492}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470/fd10080f6880486d8808fa4ebc819ef0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg220391470/fd10080f6880486d8808fa4ebc819ef0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg220391470/fd10080f6880486d8808fa4ebc819ef0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274173,"updated":1628274173,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274173,"updated":1628274173}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:52 GMT + - Fri, 06 Aug 2021 18:22:53 GMT expires: - '-1' pragma: @@ -573,21 +573,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -596,25 +595,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470/1da79bec567b40ca9960e616751526c9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg320391470/1da79bec567b40ca9960e616751526c9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg320391470/1da79bec567b40ca9960e616751526c9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449493,"updated":1616449493,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449493,"updated":1616449493}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470/c52a7b976b354f77a7abc6c2f63ec754","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg320391470/c52a7b976b354f77a7abc6c2f63ec754","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg320391470/c52a7b976b354f77a7abc6c2f63ec754","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274174,"updated":1628274174,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274174,"updated":1628274174}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:53 GMT + - Fri, 06 Aug 2021 18:22:54 GMT expires: - '-1' pragma: @@ -626,21 +626,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -649,25 +648,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470/09af46b422d2459296a13f3a3cf5423d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg420391470/09af46b422d2459296a13f3a3cf5423d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg420391470/09af46b422d2459296a13f3a3cf5423d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449494,"updated":1616449494,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449494,"updated":1616449494}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470/255e4e77e38740278807f86c7e8e92b6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg420391470/255e4e77e38740278807f86c7e8e92b6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg420391470/255e4e77e38740278807f86c7e8e92b6","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274174,"updated":1628274174,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274174,"updated":1628274174}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:54 GMT + - Fri, 06 Aug 2021 18:22:54 GMT expires: - '-1' pragma: @@ -679,21 +679,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -702,25 +701,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470/f9ae0bc528a04466a404d3b4f1471af0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg520391470/f9ae0bc528a04466a404d3b4f1471af0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg520391470/f9ae0bc528a04466a404d3b4f1471af0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449494,"updated":1616449494,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449494,"updated":1616449494}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470/1b25c8b6b6f34191bd0879d01ea7ed67","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg520391470/1b25c8b6b6f34191bd0879d01ea7ed67","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg520391470/1b25c8b6b6f34191bd0879d01ea7ed67","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274175,"updated":1628274175,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274175,"updated":1628274175}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:54 GMT + - Fri, 06 Aug 2021 18:22:55 GMT expires: - '-1' pragma: @@ -732,21 +732,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -755,25 +754,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470/d1b5fafca8094bfbaf2e6c4e099bd61d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg620391470/d1b5fafca8094bfbaf2e6c4e099bd61d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg620391470/d1b5fafca8094bfbaf2e6c4e099bd61d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449495,"updated":1616449495,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449495,"updated":1616449495}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470/f180947a1b174bddbf05f8d26352eb93","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg620391470/f180947a1b174bddbf05f8d26352eb93","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg620391470/f180947a1b174bddbf05f8d26352eb93","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274175,"updated":1628274175,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274175,"updated":1628274175}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:55 GMT + - Fri, 06 Aug 2021 18:22:55 GMT expires: - '-1' pragma: @@ -785,9 +785,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -805,21 +805,22 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470","deletedDate":1616449495,"scheduledPurgeDate":1624225495,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470/05afbcd81e1544879f5291a8e01455e7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg020391470/05afbcd81e1544879f5291a8e01455e7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg020391470/05afbcd81e1544879f5291a8e01455e7","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449491,"updated":1616449491,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449491,"updated":1616449491}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470","deletedDate":1628274176,"scheduledPurgeDate":1636050176,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274169,"updated":1628274169,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274169,"updated":1628274169}}}' headers: cache-control: - no-cache content-length: - - '2003' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:55 GMT + - Fri, 06 Aug 2021 18:22:55 GMT expires: - '-1' pragma: @@ -831,9 +832,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -849,13 +850,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg020391470"}}' + not found: livekvtestcertrec020391470"}}' headers: cache-control: - no-cache @@ -864,7 +865,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:55 GMT + - Fri, 06 Aug 2021 18:22:55 GMT expires: - '-1' pragma: @@ -876,9 +877,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -894,13 +895,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg020391470"}}' + not found: livekvtestcertrec020391470"}}' headers: cache-control: - no-cache @@ -909,7 +910,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:57 GMT + - Fri, 06 Aug 2021 18:22:57 GMT expires: - '-1' pragma: @@ -921,9 +922,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -939,13 +940,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg020391470"}}' + not found: livekvtestcertrec020391470"}}' headers: cache-control: - no-cache @@ -954,7 +955,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:44:59 GMT + - Fri, 06 Aug 2021 18:22:59 GMT expires: - '-1' pragma: @@ -966,9 +967,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -984,13 +985,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg020391470"}}' + not found: livekvtestcertrec020391470"}}' headers: cache-control: - no-cache @@ -999,7 +1000,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:01 GMT + - Fri, 06 Aug 2021 18:23:02 GMT expires: - '-1' pragma: @@ -1011,9 +1012,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1029,13 +1030,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg020391470"}}' + not found: livekvtestcertrec020391470"}}' headers: cache-control: - no-cache @@ -1044,7 +1045,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:03 GMT + - Fri, 06 Aug 2021 18:23:04 GMT expires: - '-1' pragma: @@ -1056,9 +1057,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1074,21 +1075,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470","deletedDate":1616449495,"scheduledPurgeDate":1624225495,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470/05afbcd81e1544879f5291a8e01455e7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg020391470/05afbcd81e1544879f5291a8e01455e7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg020391470/05afbcd81e1544879f5291a8e01455e7","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449491,"updated":1616449491,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449491,"updated":1616449491}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec020391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:06 GMT + - Fri, 06 Aug 2021 18:23:06 GMT expires: - '-1' pragma: @@ -1100,14 +1102,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1117,24 +1119,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470","deletedDate":1616449506,"scheduledPurgeDate":1624225506,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449487,"updated":1616449487,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449487,"updated":1616449487}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec020391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:06 GMT + - Fri, 06 Aug 2021 18:23:07 GMT expires: - '-1' pragma: @@ -1146,14 +1147,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1164,7 +1165,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470?api-version=7.0 response: @@ -1179,7 +1180,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:06 GMT + - Fri, 06 Aug 2021 18:23:10 GMT expires: - '-1' pragma: @@ -1191,9 +1192,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1209,7 +1210,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470?api-version=7.0 response: @@ -1224,7 +1225,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:08 GMT + - Fri, 06 Aug 2021 18:23:12 GMT expires: - '-1' pragma: @@ -1236,9 +1237,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1254,7 +1255,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470?api-version=7.0 response: @@ -1269,7 +1270,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:11 GMT + - Fri, 06 Aug 2021 18:23:14 GMT expires: - '-1' pragma: @@ -1281,9 +1282,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1299,7 +1300,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470?api-version=7.0 response: @@ -1314,7 +1315,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:13 GMT + - Fri, 06 Aug 2021 18:23:16 GMT expires: - '-1' pragma: @@ -1326,9 +1327,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1344,7 +1345,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470?api-version=7.0 response: @@ -1359,7 +1360,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:15 GMT + - Fri, 06 Aug 2021 18:23:18 GMT expires: - '-1' pragma: @@ -1371,9 +1372,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1389,7 +1390,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470?api-version=7.0 response: @@ -1404,7 +1405,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:17 GMT + - Fri, 06 Aug 2021 18:23:20 GMT expires: - '-1' pragma: @@ -1416,9 +1417,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1434,21 +1435,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470","deletedDate":1616449506,"scheduledPurgeDate":1624225506,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449487,"updated":1616449487,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449487,"updated":1616449487}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec020391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:19 GMT + - Fri, 06 Aug 2021 18:23:22 GMT expires: - '-1' pragma: @@ -1460,14 +1462,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1477,24 +1479,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470","deletedDate":1616449519,"scheduledPurgeDate":1624225519,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470/a26bba1e0546479aab555af405f2a850","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg220391470/a26bba1e0546479aab555af405f2a850","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg220391470/a26bba1e0546479aab555af405f2a850","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449492,"updated":1616449492,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449492,"updated":1616449492}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec020391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:19 GMT + - Fri, 06 Aug 2021 18:23:24 GMT expires: - '-1' pragma: @@ -1506,14 +1507,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1524,22 +1525,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg220391470"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470","deletedDate":1628274176,"scheduledPurgeDate":1636050176,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274169,"updated":1628274169,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274169,"updated":1628274169}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:19 GMT + - Fri, 06 Aug 2021 18:23:27 GMT expires: - '-1' pragma: @@ -1551,14 +1552,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -1568,23 +1569,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg220391470"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470","deletedDate":1628274207,"scheduledPurgeDate":1636050207,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274169,"updated":1628274169,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274169,"updated":1628274169}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:21 GMT + - Fri, 06 Aug 2021 18:23:27 GMT expires: - '-1' pragma: @@ -1596,14 +1599,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -1614,13 +1617,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg220391470"}}' + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache @@ -1629,7 +1632,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:23 GMT + - Fri, 06 Aug 2021 18:23:27 GMT expires: - '-1' pragma: @@ -1641,9 +1644,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1659,13 +1662,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg220391470"}}' + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache @@ -1674,7 +1677,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:25 GMT + - Fri, 06 Aug 2021 18:23:29 GMT expires: - '-1' pragma: @@ -1686,9 +1689,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1704,13 +1707,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg220391470"}}' + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache @@ -1719,7 +1722,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:28 GMT + - Fri, 06 Aug 2021 18:23:31 GMT expires: - '-1' pragma: @@ -1731,9 +1734,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1749,13 +1752,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg220391470"}}' + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache @@ -1764,7 +1767,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:30 GMT + - Fri, 06 Aug 2021 18:23:33 GMT expires: - '-1' pragma: @@ -1776,9 +1779,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1794,21 +1797,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470","deletedDate":1616449519,"scheduledPurgeDate":1624225519,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470/a26bba1e0546479aab555af405f2a850","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg220391470/a26bba1e0546479aab555af405f2a850","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg220391470/a26bba1e0546479aab555af405f2a850","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449492,"updated":1616449492,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449492,"updated":1616449492}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:32 GMT + - Fri, 06 Aug 2021 18:23:35 GMT expires: - '-1' pragma: @@ -1820,14 +1824,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1837,24 +1841,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470","deletedDate":1616449533,"scheduledPurgeDate":1624225533,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449489,"updated":1616449489,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449489,"updated":1616449489}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:32 GMT + - Fri, 06 Aug 2021 18:23:37 GMT expires: - '-1' pragma: @@ -1866,14 +1869,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1884,13 +1887,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec320391470"}}' + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache @@ -1899,7 +1902,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:33 GMT + - Fri, 06 Aug 2021 18:23:40 GMT expires: - '-1' pragma: @@ -1911,9 +1914,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1929,13 +1932,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec320391470"}}' + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache @@ -1944,7 +1947,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:35 GMT + - Fri, 06 Aug 2021 18:23:42 GMT expires: - '-1' pragma: @@ -1956,9 +1959,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1974,13 +1977,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec320391470"}}' + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache @@ -1989,7 +1992,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:37 GMT + - Fri, 06 Aug 2021 18:23:43 GMT expires: - '-1' pragma: @@ -2001,9 +2004,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2019,13 +2022,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec320391470"}}' + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache @@ -2034,7 +2037,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:39 GMT + - Fri, 06 Aug 2021 18:23:45 GMT expires: - '-1' pragma: @@ -2046,9 +2049,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2064,13 +2067,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec320391470"}}' + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache @@ -2079,7 +2082,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:41 GMT + - Fri, 06 Aug 2021 18:23:47 GMT expires: - '-1' pragma: @@ -2091,9 +2094,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2109,13 +2112,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec320391470"}}' + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache @@ -2124,7 +2127,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:43 GMT + - Fri, 06 Aug 2021 18:23:49 GMT expires: - '-1' pragma: @@ -2136,9 +2139,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2154,21 +2157,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470","deletedDate":1616449533,"scheduledPurgeDate":1624225533,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449489,"updated":1616449489,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449489,"updated":1616449489}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:45 GMT + - Fri, 06 Aug 2021 18:23:51 GMT expires: - '-1' pragma: @@ -2180,14 +2184,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2197,24 +2201,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470","deletedDate":1616449546,"scheduledPurgeDate":1624225546,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470/d1b5fafca8094bfbaf2e6c4e099bd61d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg620391470/d1b5fafca8094bfbaf2e6c4e099bd61d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg620391470/d1b5fafca8094bfbaf2e6c4e099bd61d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449495,"updated":1616449495,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449495,"updated":1616449495}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:45 GMT + - Fri, 06 Aug 2021 18:23:54 GMT expires: - '-1' pragma: @@ -2226,14 +2229,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2244,13 +2247,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg620391470"}}' + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache @@ -2259,7 +2262,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:45 GMT + - Fri, 06 Aug 2021 18:23:56 GMT expires: - '-1' pragma: @@ -2271,9 +2274,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2289,13 +2292,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg620391470"}}' + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache @@ -2304,7 +2307,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:47 GMT + - Fri, 06 Aug 2021 18:23:58 GMT expires: - '-1' pragma: @@ -2316,9 +2319,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2334,13 +2337,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg620391470"}}' + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache @@ -2349,7 +2352,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:50 GMT + - Fri, 06 Aug 2021 18:24:00 GMT expires: - '-1' pragma: @@ -2361,9 +2364,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2379,13 +2382,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg620391470"}}' + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache @@ -2394,7 +2397,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:52 GMT + - Fri, 06 Aug 2021 18:24:02 GMT expires: - '-1' pragma: @@ -2406,9 +2409,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2424,13 +2427,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg620391470"}}' + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache @@ -2439,7 +2442,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:54 GMT + - Fri, 06 Aug 2021 18:24:04 GMT expires: - '-1' pragma: @@ -2451,9 +2454,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2469,13 +2472,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg620391470"}}' + not found: livekvtestcertrec120391470"}}' headers: cache-control: - no-cache @@ -2484,7 +2487,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:56 GMT + - Fri, 06 Aug 2021 18:24:07 GMT expires: - '-1' pragma: @@ -2496,9 +2499,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2514,22 +2517,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg620391470"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470","deletedDate":1628274207,"scheduledPurgeDate":1636050207,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274169,"updated":1628274169,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274169,"updated":1628274169}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:45:58 GMT + - Fri, 06 Aug 2021 18:24:09 GMT expires: - '-1' pragma: @@ -2541,14 +2544,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -2558,23 +2561,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg620391470"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470","deletedDate":1628274249,"scheduledPurgeDate":1636050249,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274170,"updated":1628274170}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:00 GMT + - Fri, 06 Aug 2021 18:24:09 GMT expires: - '-1' pragma: @@ -2586,14 +2591,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -2604,13 +2609,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg620391470"}}' + not found: livekvtestcertrec220391470"}}' headers: cache-control: - no-cache @@ -2619,7 +2624,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:03 GMT + - Fri, 06 Aug 2021 18:24:09 GMT expires: - '-1' pragma: @@ -2631,9 +2636,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2649,13 +2654,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg620391470"}}' + not found: livekvtestcertrec220391470"}}' headers: cache-control: - no-cache @@ -2664,7 +2669,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:05 GMT + - Fri, 06 Aug 2021 18:24:11 GMT expires: - '-1' pragma: @@ -2676,9 +2681,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2694,13 +2699,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg620391470"}}' + not found: livekvtestcertrec220391470"}}' headers: cache-control: - no-cache @@ -2709,7 +2714,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:08 GMT + - Fri, 06 Aug 2021 18:24:13 GMT expires: - '-1' pragma: @@ -2721,9 +2726,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2739,13 +2744,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg620391470"}}' + not found: livekvtestcertrec220391470"}}' headers: cache-control: - no-cache @@ -2754,7 +2759,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:10 GMT + - Fri, 06 Aug 2021 18:24:14 GMT expires: - '-1' pragma: @@ -2766,9 +2771,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2784,13 +2789,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg620391470"}}' + not found: livekvtestcertrec220391470"}}' headers: cache-control: - no-cache @@ -2799,7 +2804,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:12 GMT + - Fri, 06 Aug 2021 18:24:16 GMT expires: - '-1' pragma: @@ -2811,9 +2816,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2829,21 +2834,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470","deletedDate":1616449546,"scheduledPurgeDate":1624225546,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470/d1b5fafca8094bfbaf2e6c4e099bd61d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg620391470/d1b5fafca8094bfbaf2e6c4e099bd61d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg620391470/d1b5fafca8094bfbaf2e6c4e099bd61d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449495,"updated":1616449495,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449495,"updated":1616449495}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec220391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:14 GMT + - Fri, 06 Aug 2021 18:24:18 GMT expires: - '-1' pragma: @@ -2855,14 +2861,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2872,24 +2878,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470","deletedDate":1616449574,"scheduledPurgeDate":1624225574,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470/96c2b3a78ad24fd9b778356b306e614b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg120391470/96c2b3a78ad24fd9b778356b306e614b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg120391470/96c2b3a78ad24fd9b778356b306e614b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449492,"updated":1616449492,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449492,"updated":1616449492}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec220391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:14 GMT + - Fri, 06 Aug 2021 18:24:20 GMT expires: - '-1' pragma: @@ -2901,14 +2906,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2919,13 +2924,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg120391470"}}' + not found: livekvtestcertrec220391470"}}' headers: cache-control: - no-cache @@ -2934,7 +2939,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:14 GMT + - Fri, 06 Aug 2021 18:24:23 GMT expires: - '-1' pragma: @@ -2946,9 +2951,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2964,13 +2969,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg120391470"}}' + not found: livekvtestcertrec220391470"}}' headers: cache-control: - no-cache @@ -2979,7 +2984,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:17 GMT + - Fri, 06 Aug 2021 18:24:25 GMT expires: - '-1' pragma: @@ -2991,9 +2996,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3009,13 +3014,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg120391470"}}' + not found: livekvtestcertrec220391470"}}' headers: cache-control: - no-cache @@ -3024,7 +3029,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:19 GMT + - Fri, 06 Aug 2021 18:24:27 GMT expires: - '-1' pragma: @@ -3036,9 +3041,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3054,13 +3059,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg120391470"}}' + not found: livekvtestcertrec220391470"}}' headers: cache-control: - no-cache @@ -3069,7 +3074,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:21 GMT + - Fri, 06 Aug 2021 18:24:29 GMT expires: - '-1' pragma: @@ -3081,9 +3086,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3099,22 +3104,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg120391470"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470","deletedDate":1628274249,"scheduledPurgeDate":1636050249,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274170,"updated":1628274170}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:23 GMT + - Fri, 06 Aug 2021 18:24:31 GMT expires: - '-1' pragma: @@ -3126,14 +3131,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -3143,22 +3148,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470","deletedDate":1616449574,"scheduledPurgeDate":1624225574,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470/96c2b3a78ad24fd9b778356b306e614b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg120391470/96c2b3a78ad24fd9b778356b306e614b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg120391470/96c2b3a78ad24fd9b778356b306e614b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449492,"updated":1616449492,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449492,"updated":1616449492}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470","deletedDate":1628274272,"scheduledPurgeDate":1636050272,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274170,"updated":1628274170}}}' headers: cache-control: - no-cache content-length: - - '2003' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:25 GMT + - Fri, 06 Aug 2021 18:24:31 GMT expires: - '-1' pragma: @@ -3170,9 +3178,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3187,24 +3195,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470","deletedDate":1616449586,"scheduledPurgeDate":1624225586,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470/1da79bec567b40ca9960e616751526c9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg320391470/1da79bec567b40ca9960e616751526c9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg320391470/1da79bec567b40ca9960e616751526c9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449493,"updated":1616449493,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449493,"updated":1616449493}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec320391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:25 GMT + - Fri, 06 Aug 2021 18:24:32 GMT expires: - '-1' pragma: @@ -3216,14 +3223,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3234,13 +3241,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg320391470"}}' + not found: livekvtestcertrec320391470"}}' headers: cache-control: - no-cache @@ -3249,7 +3256,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:25 GMT + - Fri, 06 Aug 2021 18:24:36 GMT expires: - '-1' pragma: @@ -3261,9 +3268,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3279,13 +3286,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg320391470"}}' + not found: livekvtestcertrec320391470"}}' headers: cache-control: - no-cache @@ -3294,7 +3301,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:27 GMT + - Fri, 06 Aug 2021 18:24:38 GMT expires: - '-1' pragma: @@ -3306,9 +3313,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3324,13 +3331,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg320391470"}}' + not found: livekvtestcertrec320391470"}}' headers: cache-control: - no-cache @@ -3339,7 +3346,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:29 GMT + - Fri, 06 Aug 2021 18:24:40 GMT expires: - '-1' pragma: @@ -3351,9 +3358,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3369,13 +3376,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg320391470"}}' + not found: livekvtestcertrec320391470"}}' headers: cache-control: - no-cache @@ -3384,7 +3391,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:31 GMT + - Fri, 06 Aug 2021 18:24:41 GMT expires: - '-1' pragma: @@ -3396,9 +3403,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3414,13 +3421,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg320391470"}}' + not found: livekvtestcertrec320391470"}}' headers: cache-control: - no-cache @@ -3429,7 +3436,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:34 GMT + - Fri, 06 Aug 2021 18:24:43 GMT expires: - '-1' pragma: @@ -3441,9 +3448,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3459,13 +3466,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg320391470"}}' + not found: livekvtestcertrec320391470"}}' headers: cache-control: - no-cache @@ -3474,7 +3481,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:36 GMT + - Fri, 06 Aug 2021 18:24:46 GMT expires: - '-1' pragma: @@ -3486,9 +3493,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3504,22 +3511,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg320391470"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470","deletedDate":1628274272,"scheduledPurgeDate":1636050272,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274170,"updated":1628274170}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:38 GMT + - Fri, 06 Aug 2021 18:24:48 GMT expires: - '-1' pragma: @@ -3531,14 +3538,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -3548,23 +3555,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg320391470"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470","deletedDate":1628274289,"scheduledPurgeDate":1636050289,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274171,"updated":1628274171}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:40 GMT + - Fri, 06 Aug 2021 18:24:48 GMT expires: - '-1' pragma: @@ -3576,14 +3585,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -3594,13 +3603,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg320391470"}}' + not found: livekvtestcertrec420391470"}}' headers: cache-control: - no-cache @@ -3609,7 +3618,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:43 GMT + - Fri, 06 Aug 2021 18:24:49 GMT expires: - '-1' pragma: @@ -3621,9 +3630,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3639,13 +3648,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg320391470"}}' + not found: livekvtestcertrec420391470"}}' headers: cache-control: - no-cache @@ -3654,7 +3663,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:45 GMT + - Fri, 06 Aug 2021 18:24:51 GMT expires: - '-1' pragma: @@ -3666,9 +3675,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3684,13 +3693,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg320391470"}}' + not found: livekvtestcertrec420391470"}}' headers: cache-control: - no-cache @@ -3699,7 +3708,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:47 GMT + - Fri, 06 Aug 2021 18:24:52 GMT expires: - '-1' pragma: @@ -3711,9 +3720,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3729,13 +3738,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg320391470"}}' + not found: livekvtestcertrec420391470"}}' headers: cache-control: - no-cache @@ -3744,7 +3753,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:49 GMT + - Fri, 06 Aug 2021 18:24:54 GMT expires: - '-1' pragma: @@ -3756,9 +3765,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3774,13 +3783,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg320391470"}}' + not found: livekvtestcertrec420391470"}}' headers: cache-control: - no-cache @@ -3789,7 +3798,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:51 GMT + - Fri, 06 Aug 2021 18:24:56 GMT expires: - '-1' pragma: @@ -3801,9 +3810,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3819,21 +3828,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470","deletedDate":1616449586,"scheduledPurgeDate":1624225586,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470/1da79bec567b40ca9960e616751526c9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg320391470/1da79bec567b40ca9960e616751526c9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg320391470/1da79bec567b40ca9960e616751526c9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449493,"updated":1616449493,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449493,"updated":1616449493}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec420391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:53 GMT + - Fri, 06 Aug 2021 18:24:59 GMT expires: - '-1' pragma: @@ -3845,14 +3855,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3862,24 +3872,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470","deletedDate":1616449614,"scheduledPurgeDate":1624225614,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449490,"updated":1616449490,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449490,"updated":1616449490}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec420391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:53 GMT + - Fri, 06 Aug 2021 18:25:01 GMT expires: - '-1' pragma: @@ -3891,14 +3900,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3909,13 +3918,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec620391470"}}' + not found: livekvtestcertrec420391470"}}' headers: cache-control: - no-cache @@ -3924,7 +3933,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:54 GMT + - Fri, 06 Aug 2021 18:25:03 GMT expires: - '-1' pragma: @@ -3936,9 +3945,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3954,13 +3963,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec620391470"}}' + not found: livekvtestcertrec420391470"}}' headers: cache-control: - no-cache @@ -3969,7 +3978,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:56 GMT + - Fri, 06 Aug 2021 18:25:05 GMT expires: - '-1' pragma: @@ -3981,9 +3990,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3999,13 +4008,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec620391470"}}' + not found: livekvtestcertrec420391470"}}' headers: cache-control: - no-cache @@ -4014,7 +4023,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:46:59 GMT + - Fri, 06 Aug 2021 18:25:07 GMT expires: - '-1' pragma: @@ -4026,9 +4035,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4044,22 +4053,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec620391470"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470","deletedDate":1628274289,"scheduledPurgeDate":1636050289,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274171,"updated":1628274171}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:01 GMT + - Fri, 06 Aug 2021 18:25:09 GMT expires: - '-1' pragma: @@ -4071,14 +4080,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -4088,23 +4097,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec620391470"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470","deletedDate":1628274310,"scheduledPurgeDate":1636050310,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274171,"updated":1628274171}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:03 GMT + - Fri, 06 Aug 2021 18:25:09 GMT expires: - '-1' pragma: @@ -4116,14 +4127,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -4134,13 +4145,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec620391470"}}' + not found: livekvtestcertrec520391470"}}' headers: cache-control: - no-cache @@ -4149,7 +4160,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:05 GMT + - Fri, 06 Aug 2021 18:25:09 GMT expires: - '-1' pragma: @@ -4161,9 +4172,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4179,13 +4190,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec620391470"}}' + not found: livekvtestcertrec520391470"}}' headers: cache-control: - no-cache @@ -4194,7 +4205,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:07 GMT + - Fri, 06 Aug 2021 18:25:11 GMT expires: - '-1' pragma: @@ -4206,9 +4217,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4224,13 +4235,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec620391470"}}' + not found: livekvtestcertrec520391470"}}' headers: cache-control: - no-cache @@ -4239,7 +4250,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:09 GMT + - Fri, 06 Aug 2021 18:25:14 GMT expires: - '-1' pragma: @@ -4251,9 +4262,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4269,21 +4280,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470","deletedDate":1616449614,"scheduledPurgeDate":1624225614,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449490,"updated":1616449490,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449490,"updated":1616449490}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec520391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:11 GMT + - Fri, 06 Aug 2021 18:25:16 GMT expires: - '-1' pragma: @@ -4295,14 +4307,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -4312,24 +4324,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470","deletedDate":1616449632,"scheduledPurgeDate":1624225632,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470/09af46b422d2459296a13f3a3cf5423d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg420391470/09af46b422d2459296a13f3a3cf5423d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg420391470/09af46b422d2459296a13f3a3cf5423d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449494,"updated":1616449494,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449494,"updated":1616449494}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec520391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:12 GMT + - Fri, 06 Aug 2021 18:25:18 GMT expires: - '-1' pragma: @@ -4341,14 +4352,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -4359,13 +4370,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg420391470"}}' + not found: livekvtestcertrec520391470"}}' headers: cache-control: - no-cache @@ -4374,7 +4385,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:12 GMT + - Fri, 06 Aug 2021 18:25:20 GMT expires: - '-1' pragma: @@ -4386,9 +4397,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4404,13 +4415,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg420391470"}}' + not found: livekvtestcertrec520391470"}}' headers: cache-control: - no-cache @@ -4419,7 +4430,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:14 GMT + - Fri, 06 Aug 2021 18:25:22 GMT expires: - '-1' pragma: @@ -4431,9 +4442,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4449,13 +4460,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg420391470"}}' + not found: livekvtestcertrec520391470"}}' headers: cache-control: - no-cache @@ -4464,7 +4475,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:16 GMT + - Fri, 06 Aug 2021 18:25:23 GMT expires: - '-1' pragma: @@ -4476,9 +4487,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4494,13 +4505,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg420391470"}}' + not found: livekvtestcertrec520391470"}}' headers: cache-control: - no-cache @@ -4509,7 +4520,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:18 GMT + - Fri, 06 Aug 2021 18:25:25 GMT expires: - '-1' pragma: @@ -4521,9 +4532,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4539,22 +4550,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg420391470"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470","deletedDate":1628274310,"scheduledPurgeDate":1636050310,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274171,"updated":1628274171}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:20 GMT + - Fri, 06 Aug 2021 18:25:27 GMT expires: - '-1' pragma: @@ -4566,14 +4577,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -4583,23 +4594,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg420391470"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470","deletedDate":1628274328,"scheduledPurgeDate":1636050328,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274172,"updated":1628274172,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274172,"updated":1628274172}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:23 GMT + - Fri, 06 Aug 2021 18:25:28 GMT expires: - '-1' pragma: @@ -4611,14 +4624,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -4629,13 +4642,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg420391470"}}' + not found: livekvtestcertrec620391470"}}' headers: cache-control: - no-cache @@ -4644,7 +4657,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:25 GMT + - Fri, 06 Aug 2021 18:25:28 GMT expires: - '-1' pragma: @@ -4656,9 +4669,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4674,13 +4687,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg420391470"}}' + not found: livekvtestcertrec620391470"}}' headers: cache-control: - no-cache @@ -4689,7 +4702,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:27 GMT + - Fri, 06 Aug 2021 18:25:31 GMT expires: - '-1' pragma: @@ -4701,9 +4714,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4719,13 +4732,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg420391470"}}' + not found: livekvtestcertrec620391470"}}' headers: cache-control: - no-cache @@ -4734,7 +4747,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:29 GMT + - Fri, 06 Aug 2021 18:25:32 GMT expires: - '-1' pragma: @@ -4746,9 +4759,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4764,13 +4777,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg420391470"}}' + not found: livekvtestcertrec620391470"}}' headers: cache-control: - no-cache @@ -4779,7 +4792,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:31 GMT + - Fri, 06 Aug 2021 18:25:34 GMT expires: - '-1' pragma: @@ -4791,9 +4804,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4809,13 +4822,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg420391470"}}' + not found: livekvtestcertrec620391470"}}' headers: cache-control: - no-cache @@ -4824,7 +4837,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:33 GMT + - Fri, 06 Aug 2021 18:25:36 GMT expires: - '-1' pragma: @@ -4836,9 +4849,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4854,21 +4867,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470","deletedDate":1616449632,"scheduledPurgeDate":1624225632,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470/09af46b422d2459296a13f3a3cf5423d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg420391470/09af46b422d2459296a13f3a3cf5423d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg420391470/09af46b422d2459296a13f3a3cf5423d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449494,"updated":1616449494,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449494,"updated":1616449494}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec620391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:35 GMT + - Fri, 06 Aug 2021 18:25:38 GMT expires: - '-1' pragma: @@ -4880,14 +4894,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -4897,24 +4911,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470","deletedDate":1616449656,"scheduledPurgeDate":1624225656,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470/f9ae0bc528a04466a404d3b4f1471af0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg520391470/f9ae0bc528a04466a404d3b4f1471af0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg520391470/f9ae0bc528a04466a404d3b4f1471af0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449494,"updated":1616449494,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449494,"updated":1616449494}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec620391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:35 GMT + - Fri, 06 Aug 2021 18:25:40 GMT expires: - '-1' pragma: @@ -4926,14 +4939,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -4944,13 +4957,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg520391470"}}' + not found: livekvtestcertrec620391470"}}' headers: cache-control: - no-cache @@ -4959,7 +4972,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:35 GMT + - Fri, 06 Aug 2021 18:25:42 GMT expires: - '-1' pragma: @@ -4971,9 +4984,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4989,22 +5002,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg520391470"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470","deletedDate":1628274328,"scheduledPurgeDate":1636050328,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274172,"updated":1628274172,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274172,"updated":1628274172}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:38 GMT + - Fri, 06 Aug 2021 18:25:44 GMT expires: - '-1' pragma: @@ -5016,14 +5029,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -5033,23 +5046,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg520391470"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470","deletedDate":1628274345,"scheduledPurgeDate":1636050345,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470/2074ef157c3742408d9257adc7ea401b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg020391470/2074ef157c3742408d9257adc7ea401b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg020391470/2074ef157c3742408d9257adc7ea401b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274172,"updated":1628274172,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274172,"updated":1628274172}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:40 GMT + - Fri, 06 Aug 2021 18:25:45 GMT expires: - '-1' pragma: @@ -5061,14 +5076,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -5079,13 +5094,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg520391470"}}' + not found: livekvtestcertprg020391470"}}' headers: cache-control: - no-cache @@ -5094,7 +5109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:42 GMT + - Fri, 06 Aug 2021 18:25:45 GMT expires: - '-1' pragma: @@ -5106,9 +5121,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5124,13 +5139,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg520391470"}}' + not found: livekvtestcertprg020391470"}}' headers: cache-control: - no-cache @@ -5139,7 +5154,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:45 GMT + - Fri, 06 Aug 2021 18:25:47 GMT expires: - '-1' pragma: @@ -5151,9 +5166,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5169,13 +5184,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg520391470"}}' + not found: livekvtestcertprg020391470"}}' headers: cache-control: - no-cache @@ -5184,7 +5199,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:47 GMT + - Fri, 06 Aug 2021 18:25:50 GMT expires: - '-1' pragma: @@ -5196,9 +5211,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5214,21 +5229,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470","deletedDate":1616449656,"scheduledPurgeDate":1624225656,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470/f9ae0bc528a04466a404d3b4f1471af0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg520391470/f9ae0bc528a04466a404d3b4f1471af0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg520391470/f9ae0bc528a04466a404d3b4f1471af0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449494,"updated":1616449494,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449494,"updated":1616449494}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg020391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:49 GMT + - Fri, 06 Aug 2021 18:25:51 GMT expires: - '-1' pragma: @@ -5240,14 +5256,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -5257,24 +5273,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470","deletedDate":1616449669,"scheduledPurgeDate":1624225669,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449490,"updated":1616449490,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449490,"updated":1616449490}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg020391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:49 GMT + - Fri, 06 Aug 2021 18:25:53 GMT expires: - '-1' pragma: @@ -5286,14 +5301,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -5304,13 +5319,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec520391470"}}' + not found: livekvtestcertprg020391470"}}' headers: cache-control: - no-cache @@ -5319,7 +5334,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:49 GMT + - Fri, 06 Aug 2021 18:25:55 GMT expires: - '-1' pragma: @@ -5331,9 +5346,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5349,13 +5364,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec520391470"}}' + not found: livekvtestcertprg020391470"}}' headers: cache-control: - no-cache @@ -5364,7 +5379,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:51 GMT + - Fri, 06 Aug 2021 18:25:57 GMT expires: - '-1' pragma: @@ -5376,9 +5391,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5394,13 +5409,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec520391470"}}' + not found: livekvtestcertprg020391470"}}' headers: cache-control: - no-cache @@ -5409,7 +5424,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:54 GMT + - Fri, 06 Aug 2021 18:25:59 GMT expires: - '-1' pragma: @@ -5421,9 +5436,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5439,13 +5454,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec520391470"}}' + not found: livekvtestcertprg020391470"}}' headers: cache-control: - no-cache @@ -5454,7 +5469,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:56 GMT + - Fri, 06 Aug 2021 18:26:01 GMT expires: - '-1' pragma: @@ -5466,9 +5481,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5484,13 +5499,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec520391470"}}' + not found: livekvtestcertprg020391470"}}' headers: cache-control: - no-cache @@ -5499,7 +5514,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:47:58 GMT + - Fri, 06 Aug 2021 18:26:04 GMT expires: - '-1' pragma: @@ -5511,9 +5526,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5529,21 +5544,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470","deletedDate":1616449669,"scheduledPurgeDate":1624225669,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449490,"updated":1616449490,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449490,"updated":1616449490}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470","deletedDate":1628274345,"scheduledPurgeDate":1636050345,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470/2074ef157c3742408d9257adc7ea401b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg020391470/2074ef157c3742408d9257adc7ea401b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg020391470/2074ef157c3742408d9257adc7ea401b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274172,"updated":1628274172,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274172,"updated":1628274172}}}' headers: cache-control: - no-cache content-length: - - '2003' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:00 GMT + - Fri, 06 Aug 2021 18:26:06 GMT expires: - '-1' pragma: @@ -5555,9 +5571,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5575,21 +5591,22 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470","deletedDate":1616449680,"scheduledPurgeDate":1624225680,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449488,"updated":1616449488,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449488,"updated":1616449488}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470","deletedDate":1628274366,"scheduledPurgeDate":1636050366,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470/3b7eb5a4b5754710b08d8be1f534a480","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg120391470/3b7eb5a4b5754710b08d8be1f534a480","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg120391470/3b7eb5a4b5754710b08d8be1f534a480","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274173,"updated":1628274173,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274173,"updated":1628274173}}}' headers: cache-control: - no-cache content-length: - - '2003' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:00 GMT + - Fri, 06 Aug 2021 18:26:06 GMT expires: - '-1' pragma: @@ -5601,9 +5618,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5619,13 +5636,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec120391470"}}' + not found: livekvtestcertprg120391470"}}' headers: cache-control: - no-cache @@ -5634,7 +5651,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:00 GMT + - Fri, 06 Aug 2021 18:26:06 GMT expires: - '-1' pragma: @@ -5646,9 +5663,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5664,13 +5681,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec120391470"}}' + not found: livekvtestcertprg120391470"}}' headers: cache-control: - no-cache @@ -5679,7 +5696,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:02 GMT + - Fri, 06 Aug 2021 18:26:08 GMT expires: - '-1' pragma: @@ -5691,9 +5708,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5709,13 +5726,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec120391470"}}' + not found: livekvtestcertprg120391470"}}' headers: cache-control: - no-cache @@ -5724,7 +5741,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:04 GMT + - Fri, 06 Aug 2021 18:26:10 GMT expires: - '-1' pragma: @@ -5736,9 +5753,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5754,13 +5771,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec120391470"}}' + not found: livekvtestcertprg120391470"}}' headers: cache-control: - no-cache @@ -5769,7 +5786,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:06 GMT + - Fri, 06 Aug 2021 18:26:13 GMT expires: - '-1' pragma: @@ -5781,9 +5798,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5799,13 +5816,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec120391470"}}' + not found: livekvtestcertprg120391470"}}' headers: cache-control: - no-cache @@ -5814,7 +5831,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:09 GMT + - Fri, 06 Aug 2021 18:26:14 GMT expires: - '-1' pragma: @@ -5826,9 +5843,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5844,13 +5861,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec120391470"}}' + not found: livekvtestcertprg120391470"}}' headers: cache-control: - no-cache @@ -5859,7 +5876,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:11 GMT + - Fri, 06 Aug 2021 18:26:17 GMT expires: - '-1' pragma: @@ -5871,9 +5888,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5889,13 +5906,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec120391470"}}' + not found: livekvtestcertprg120391470"}}' headers: cache-control: - no-cache @@ -5904,7 +5921,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:13 GMT + - Fri, 06 Aug 2021 18:26:18 GMT expires: - '-1' pragma: @@ -5916,9 +5933,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5934,13 +5951,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec120391470"}}' + not found: livekvtestcertprg120391470"}}' headers: cache-control: - no-cache @@ -5949,7 +5966,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:15 GMT + - Fri, 06 Aug 2021 18:26:20 GMT expires: - '-1' pragma: @@ -5961,9 +5978,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5979,13 +5996,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec120391470"}}' + not found: livekvtestcertprg120391470"}}' headers: cache-control: - no-cache @@ -5994,7 +6011,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:17 GMT + - Fri, 06 Aug 2021 18:26:22 GMT expires: - '-1' pragma: @@ -6006,9 +6023,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6024,21 +6041,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470","deletedDate":1616449680,"scheduledPurgeDate":1624225680,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449488,"updated":1616449488,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449488,"updated":1616449488}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470","deletedDate":1628274366,"scheduledPurgeDate":1636050366,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470/3b7eb5a4b5754710b08d8be1f534a480","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg120391470/3b7eb5a4b5754710b08d8be1f534a480","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg120391470/3b7eb5a4b5754710b08d8be1f534a480","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274173,"updated":1628274173,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274173,"updated":1628274173}}}' headers: cache-control: - no-cache content-length: - - '2003' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:19 GMT + - Fri, 06 Aug 2021 18:26:24 GMT expires: - '-1' pragma: @@ -6050,9 +6068,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6070,21 +6088,22 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470","deletedDate":1616449700,"scheduledPurgeDate":1624225700,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449489,"updated":1616449489,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449489,"updated":1616449489}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470","deletedDate":1628274385,"scheduledPurgeDate":1636050385,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470/fd10080f6880486d8808fa4ebc819ef0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg220391470/fd10080f6880486d8808fa4ebc819ef0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg220391470/fd10080f6880486d8808fa4ebc819ef0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274173,"updated":1628274173,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274173,"updated":1628274173}}}' headers: cache-control: - no-cache content-length: - - '2003' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:20 GMT + - Fri, 06 Aug 2021 18:26:25 GMT expires: - '-1' pragma: @@ -6096,9 +6115,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6114,13 +6133,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec420391470"}}' + not found: livekvtestcertprg220391470"}}' headers: cache-control: - no-cache @@ -6129,7 +6148,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:20 GMT + - Fri, 06 Aug 2021 18:26:25 GMT expires: - '-1' pragma: @@ -6141,9 +6160,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6159,13 +6178,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec420391470"}}' + not found: livekvtestcertprg220391470"}}' headers: cache-control: - no-cache @@ -6174,7 +6193,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:22 GMT + - Fri, 06 Aug 2021 18:26:27 GMT expires: - '-1' pragma: @@ -6186,9 +6205,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6204,13 +6223,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec420391470"}}' + not found: livekvtestcertprg220391470"}}' headers: cache-control: - no-cache @@ -6219,7 +6238,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:25 GMT + - Fri, 06 Aug 2021 18:26:28 GMT expires: - '-1' pragma: @@ -6231,9 +6250,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6249,13 +6268,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec420391470"}}' + not found: livekvtestcertprg220391470"}}' headers: cache-control: - no-cache @@ -6264,7 +6283,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:27 GMT + - Fri, 06 Aug 2021 18:26:31 GMT expires: - '-1' pragma: @@ -6276,9 +6295,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6294,13 +6313,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec420391470"}}' + not found: livekvtestcertprg220391470"}}' headers: cache-control: - no-cache @@ -6309,7 +6328,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:29 GMT + - Fri, 06 Aug 2021 18:26:33 GMT expires: - '-1' pragma: @@ -6321,9 +6340,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6339,13 +6358,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec420391470"}}' + not found: livekvtestcertprg220391470"}}' headers: cache-control: - no-cache @@ -6354,7 +6373,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:31 GMT + - Fri, 06 Aug 2021 18:26:35 GMT expires: - '-1' pragma: @@ -6366,9 +6385,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6384,13 +6403,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec420391470"}}' + not found: livekvtestcertprg220391470"}}' headers: cache-control: - no-cache @@ -6399,7 +6418,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:33 GMT + - Fri, 06 Aug 2021 18:26:37 GMT expires: - '-1' pragma: @@ -6411,9 +6430,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6429,21 +6448,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470","deletedDate":1616449700,"scheduledPurgeDate":1624225700,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449489,"updated":1616449489,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449489,"updated":1616449489}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg220391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:35 GMT + - Fri, 06 Aug 2021 18:26:39 GMT expires: - '-1' pragma: @@ -6455,14 +6475,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6472,24 +6492,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470","deletedDate":1616449716,"scheduledPurgeDate":1624225716,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449488,"updated":1616449488,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449488,"updated":1616449488}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg220391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:35 GMT + - Fri, 06 Aug 2021 18:26:41 GMT expires: - '-1' pragma: @@ -6501,14 +6520,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6519,22 +6538,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec220391470"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470","deletedDate":1628274385,"scheduledPurgeDate":1636050385,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470/fd10080f6880486d8808fa4ebc819ef0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg220391470/fd10080f6880486d8808fa4ebc819ef0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg220391470/fd10080f6880486d8808fa4ebc819ef0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274173,"updated":1628274173,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274173,"updated":1628274173}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:35 GMT + - Fri, 06 Aug 2021 18:26:44 GMT expires: - '-1' pragma: @@ -6546,14 +6565,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -6563,23 +6582,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec220391470"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470","deletedDate":1628274404,"scheduledPurgeDate":1636050404,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470/c52a7b976b354f77a7abc6c2f63ec754","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg320391470/c52a7b976b354f77a7abc6c2f63ec754","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg320391470/c52a7b976b354f77a7abc6c2f63ec754","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274174,"updated":1628274174,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274174,"updated":1628274174}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2436' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:37 GMT + - Fri, 06 Aug 2021 18:26:44 GMT expires: - '-1' pragma: @@ -6591,14 +6612,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -6609,13 +6630,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec220391470"}}' + not found: livekvtestcertprg320391470"}}' headers: cache-control: - no-cache @@ -6624,7 +6645,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:40 GMT + - Fri, 06 Aug 2021 18:26:44 GMT expires: - '-1' pragma: @@ -6636,9 +6657,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6654,13 +6675,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec220391470"}}' + not found: livekvtestcertprg320391470"}}' headers: cache-control: - no-cache @@ -6669,7 +6690,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:43 GMT + - Fri, 06 Aug 2021 18:26:46 GMT expires: - '-1' pragma: @@ -6681,9 +6702,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6699,13 +6720,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec220391470"}}' + not found: livekvtestcertprg320391470"}}' headers: cache-control: - no-cache @@ -6714,7 +6735,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:45 GMT + - Fri, 06 Aug 2021 18:26:48 GMT expires: - '-1' pragma: @@ -6726,9 +6747,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6744,13 +6765,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec220391470"}}' + not found: livekvtestcertprg320391470"}}' headers: cache-control: - no-cache @@ -6759,7 +6780,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:47 GMT + - Fri, 06 Aug 2021 18:26:50 GMT expires: - '-1' pragma: @@ -6771,9 +6792,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6789,21 +6810,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470","deletedDate":1616449716,"scheduledPurgeDate":1624225716,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449488,"updated":1616449488,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449488,"updated":1616449488}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg320391470"}}' headers: cache-control: - no-cache content-length: - - '2003' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:49 GMT + - Fri, 06 Aug 2021 18:26:53 GMT expires: - '-1' pragma: @@ -6815,14 +6837,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6833,21 +6855,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 response: body: - string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg320391470"}}' headers: cache-control: - no-cache content-length: - - '325' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:49 GMT + - Fri, 06 Aug 2021 18:26:54 GMT expires: - '-1' pragma: @@ -6859,14 +6882,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6877,21 +6900,6151 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg320391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:26:56 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg320391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:26:58 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg320391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg320391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:02 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg320391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:04 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg320391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:07 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg320391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:09 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg320391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:11 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg320391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:13 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg320391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:15 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg320391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:18 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470","deletedDate":1628274404,"scheduledPurgeDate":1636050404,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470/c52a7b976b354f77a7abc6c2f63ec754","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg320391470/c52a7b976b354f77a7abc6c2f63ec754","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg320391470/c52a7b976b354f77a7abc6c2f63ec754","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274174,"updated":1628274174,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274174,"updated":1628274174}}}' + headers: + cache-control: + - no-cache + content-length: + - '2436' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470","deletedDate":1628274440,"scheduledPurgeDate":1636050440,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470/255e4e77e38740278807f86c7e8e92b6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg420391470/255e4e77e38740278807f86c7e8e92b6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg420391470/255e4e77e38740278807f86c7e8e92b6","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274174,"updated":1628274174,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274174,"updated":1628274174}}}' + headers: + cache-control: + - no-cache + content-length: + - '2436' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg420391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg420391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:22 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg420391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:24 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg420391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:26 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg420391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:28 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg420391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:30 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg420391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:32 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg420391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:34 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg420391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:36 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg420391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:38 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg420391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:41 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg420391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:43 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg420391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:45 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg420391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:47 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg420391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:49 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470","deletedDate":1628274440,"scheduledPurgeDate":1636050440,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470/255e4e77e38740278807f86c7e8e92b6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg420391470/255e4e77e38740278807f86c7e8e92b6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg420391470/255e4e77e38740278807f86c7e8e92b6","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274174,"updated":1628274174,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274174,"updated":1628274174}}}' + headers: + cache-control: + - no-cache + content-length: + - '2436' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:50 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470","deletedDate":1628274471,"scheduledPurgeDate":1636050471,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470/1b25c8b6b6f34191bd0879d01ea7ed67","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg520391470/1b25c8b6b6f34191bd0879d01ea7ed67","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg520391470/1b25c8b6b6f34191bd0879d01ea7ed67","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274175,"updated":1628274175,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274175,"updated":1628274175}}}' + headers: + cache-control: + - no-cache + content-length: + - '2436' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:50 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg520391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:51 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg520391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:53 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg520391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:55 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg520391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:27:58 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg520391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg520391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:02 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg520391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:04 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg520391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:05 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg520391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:08 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg520391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:10 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470","deletedDate":1628274471,"scheduledPurgeDate":1636050471,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470/1b25c8b6b6f34191bd0879d01ea7ed67","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg520391470/1b25c8b6b6f34191bd0879d01ea7ed67","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg520391470/1b25c8b6b6f34191bd0879d01ea7ed67","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274175,"updated":1628274175,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274175,"updated":1628274175}}}' + headers: + cache-control: + - no-cache + content-length: + - '2436' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470","deletedDate":1628274492,"scheduledPurgeDate":1636050492,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470/f180947a1b174bddbf05f8d26352eb93","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg620391470/f180947a1b174bddbf05f8d26352eb93","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg620391470/f180947a1b174bddbf05f8d26352eb93","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274175,"updated":1628274175,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274175,"updated":1628274175}}}' + headers: + cache-control: + - no-cache + content-length: + - '2436' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg620391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg620391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:14 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg620391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:16 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg620391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:18 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg620391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg620391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:22 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg620391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:24 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg620391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:26 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg620391470"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:29 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470","deletedDate":1628274492,"scheduledPurgeDate":1636050492,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470/f180947a1b174bddbf05f8d26352eb93","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg620391470/f180947a1b174bddbf05f8d26352eb93","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg620391470/f180947a1b174bddbf05f8d26352eb93","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274175,"updated":1628274175,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274175,"updated":1628274175}}}' + headers: + cache-control: + - no-cache + content-length: + - '2436' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:31 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: + - no-cache + content-length: + - '323' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:32 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: + - no-cache + content-length: + - '323' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:32 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1628271087,"scheduledPurgeDate":1636047087,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"RC8tFJZPwOeZWUeGE9sGSFTbczM","attributes":{"enabled":true,"nbf":1628270484,"exp":1659807084,"created":1628271084,"updated":1628271087,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470","deletedDate":1628274345,"scheduledPurgeDate":1636050345,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274172,"updated":1628274172,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470","deletedDate":1628274366,"scheduledPurgeDate":1636050366,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274173,"updated":1628274173,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470","deletedDate":1628274385,"scheduledPurgeDate":1636050385,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274173,"updated":1628274173,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470","deletedDate":1628274404,"scheduledPurgeDate":1636050404,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274174,"updated":1628274174,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470","deletedDate":1628274440,"scheduledPurgeDate":1636050440,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274174,"updated":1628274174,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470","deletedDate":1628274471,"scheduledPurgeDate":1636050471,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274175,"updated":1628274175,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470","deletedDate":1628274492,"scheduledPurgeDate":1636050492,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274175,"updated":1628274175,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470","deletedDate":1628274176,"scheduledPurgeDate":1636050176,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274169,"updated":1628274169,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470","deletedDate":1628274207,"scheduledPurgeDate":1636050207,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274169,"updated":1628274169,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: + - no-cache + content-length: + - '4552' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:32 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470","deletedDate":1628274249,"scheduledPurgeDate":1636050249,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470","deletedDate":1628274272,"scheduledPurgeDate":1636050272,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470","deletedDate":1628274289,"scheduledPurgeDate":1636050289,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470","deletedDate":1628274310,"scheduledPurgeDate":1636050310,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470","deletedDate":1628274328,"scheduledPurgeDate":1636050328,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274172,"updated":1628274172,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTT0RRd05ERTVOVVl2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: + - no-cache + content-length: + - '2427' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:32 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTT0RRd05ERTVOVVl2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDQhTURBd01ETXpJV05sY25ScFptbGpZWFJsTDAxRFVFRlVTVTVQVTBaVVJWTlVMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: + - no-cache + content-length: + - '307' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:32 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDQhTURBd01ETXpJV05sY25ScFptbGpZWFJsTDAxRFVFRlVTVTVQVTBaVVJWTlVMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[],"nextLink":null}' + headers: + cache-control: + - no-cache + content-length: + - '28' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:33 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470/recover?api-version=7.0 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274169,"updated":1628274169,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274169,"updated":1628274169}}}' + headers: + cache-control: + - no-cache + content-length: + - '2282' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:33 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:33 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:35 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:37 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:38 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:40 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:42 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:45 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:47 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:49 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:51 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:53 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:55 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:57 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:28:59 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:02 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274169,"updated":1628274169,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274169,"updated":1628274169}}}' + headers: + cache-control: + - no-cache + content-length: + - '2282' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:04 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470/recover?api-version=7.0 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274169,"updated":1628274169,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274169,"updated":1628274169}}}' + headers: + cache-control: + - no-cache + content-length: + - '2282' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:04 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:04 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:06 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:08 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:10 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:15 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:17 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:19 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:22 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:24 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:27 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:29 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:31 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:33 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:35 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:37 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:39 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274169,"updated":1628274169,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274169,"updated":1628274169}}}' + headers: + cache-control: + - no-cache + content-length: + - '2282' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:42 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470/recover?api-version=7.0 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274170,"updated":1628274170}}}' + headers: + cache-control: + - no-cache + content-length: + - '2282' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:42 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:42 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:44 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:46 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:48 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:50 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:51 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:54 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:56 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:29:58 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:02 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:04 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:06 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:09 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:10 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:13 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274170,"updated":1628274170}}}' + headers: + cache-control: + - no-cache + content-length: + - '2282' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:14 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470/recover?api-version=7.0 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274170,"updated":1628274170}}}' + headers: + cache-control: + - no-cache + content-length: + - '2282' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:15 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec320391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:15 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec320391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:18 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec320391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec320391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:22 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec320391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:24 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec320391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:26 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec320391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:28 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec320391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:29 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec320391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:31 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274170,"updated":1628274170}}}' + headers: + cache-control: + - no-cache + content-length: + - '2282' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:34 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470/recover?api-version=7.0 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274171,"updated":1628274171}}}' + headers: + cache-control: + - no-cache + content-length: + - '2282' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:34 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec420391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:34 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec420391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:36 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec420391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:38 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec420391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:40 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec420391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:43 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec420391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:45 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec420391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:47 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec420391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:30:49 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcert86bc153a","deletedDate":1616448460,"scheduledPurgeDate":1624224460,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert86bc153a","x5t":"se7NvIEKi8S7ofjDzgwQac1xJ4k","attributes":{"enabled":true,"nbf":1616447853,"exp":1647984453,"created":1616448453,"updated":1616448460,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76613b7","deletedDate":1616448501,"scheduledPurgeDate":1624224501,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76613b7","x5t":"c4HAnMZ8fqtsb0BFJX8iJTcCvfo","attributes":{"enabled":true,"nbf":1616447896,"exp":1647984496,"created":1616448496,"updated":1616448501,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76713b8","deletedDate":1616448532,"scheduledPurgeDate":1624224532,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76713b8","x5t":"Xg4iTQA_I614-V1OPIdMd4DgQpI","attributes":{"enabled":true,"nbf":1616447926,"exp":1647984526,"created":1616448526,"updated":1616448532,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470","deletedDate":1616449495,"scheduledPurgeDate":1624225495,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449491,"updated":1616449491,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470","deletedDate":1616449574,"scheduledPurgeDate":1624225574,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449492,"updated":1616449492,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470","deletedDate":1616449519,"scheduledPurgeDate":1624225519,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449492,"updated":1616449492,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470","deletedDate":1616449586,"scheduledPurgeDate":1624225586,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449493,"updated":1616449493,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470","deletedDate":1616449632,"scheduledPurgeDate":1624225632,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449494,"updated":1616449494,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470","deletedDate":1616449656,"scheduledPurgeDate":1624225656,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449494,"updated":1616449494,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470","deletedDate":1616449546,"scheduledPurgeDate":1624225546,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449495,"updated":1616449495,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470","deletedDate":1616449506,"scheduledPurgeDate":1624225506,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449487,"updated":1616449487,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470","deletedDate":1616449680,"scheduledPurgeDate":1624225680,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449488,"updated":1616449488,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470","deletedDate":1616449716,"scheduledPurgeDate":1624225716,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449488,"updated":1616449488,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470","deletedDate":1616449533,"scheduledPurgeDate":1624225533,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449489,"updated":1616449489,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470","deletedDate":1616449700,"scheduledPurgeDate":1624225700,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449489,"updated":1616449489,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec420391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '6764' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:50 GMT + - Fri, 06 Aug 2021 18:30:51 GMT expires: - '-1' pragma: @@ -6903,14 +13056,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6921,21 +13074,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470","deletedDate":1616449669,"scheduledPurgeDate":1624225669,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449490,"updated":1616449490,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470","deletedDate":1616449614,"scheduledPurgeDate":1624225614,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449490,"updated":1616449490,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":null}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec420391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '875' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:50 GMT + - Fri, 06 Aug 2021 18:30:53 GMT expires: - '-1' pragma: @@ -6947,14 +13103,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6964,24 +13120,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470/recover?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449487,"updated":1616449487,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449487,"updated":1616449487}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec420391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:51 GMT + - Fri, 06 Aug 2021 18:30:55 GMT expires: - '-1' pragma: @@ -6993,14 +13150,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -7011,13 +13168,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + (name/id) livekvtestcertrec420391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7028,7 +13185,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:51 GMT + - Fri, 06 Aug 2021 18:30:57 GMT expires: - '-1' pragma: @@ -7040,9 +13197,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7058,13 +13215,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + (name/id) livekvtestcertrec420391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7075,7 +13232,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:53 GMT + - Fri, 06 Aug 2021 18:30:59 GMT expires: - '-1' pragma: @@ -7087,9 +13244,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7105,13 +13262,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + (name/id) livekvtestcertrec420391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7122,7 +13279,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:55 GMT + - Fri, 06 Aug 2021 18:31:01 GMT expires: - '-1' pragma: @@ -7134,9 +13291,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7152,13 +13309,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + (name/id) livekvtestcertrec420391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7169,7 +13326,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:48:57 GMT + - Fri, 06 Aug 2021 18:31:03 GMT expires: - '-1' pragma: @@ -7181,9 +13338,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7199,13 +13356,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec020391470 was not found in this key vault. If you + (name/id) livekvtestcertrec420391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7216,7 +13373,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:00 GMT + - Fri, 06 Aug 2021 18:31:05 GMT expires: - '-1' pragma: @@ -7228,9 +13385,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7246,21 +13403,69 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec420391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:31:07 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449487,"updated":1616449487,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449487,"updated":1616449487}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274171,"updated":1628274171}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:02 GMT + - Fri, 06 Aug 2021 18:31:09 GMT expires: - '-1' pragma: @@ -7272,9 +13477,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7292,21 +13497,22 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470/recover?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470/recover?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449489,"updated":1616449489,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449489,"updated":1616449489}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274171,"updated":1628274171}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:02 GMT + - Fri, 06 Aug 2021 18:31:09 GMT expires: - '-1' pragma: @@ -7318,9 +13524,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7336,13 +13542,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec320391470 was not found in this key vault. If you + (name/id) livekvtestcertrec520391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7353,7 +13559,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:03 GMT + - Fri, 06 Aug 2021 18:31:09 GMT expires: - '-1' pragma: @@ -7365,9 +13571,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7383,13 +13589,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec320391470 was not found in this key vault. If you + (name/id) livekvtestcertrec520391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7400,7 +13606,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:05 GMT + - Fri, 06 Aug 2021 18:31:11 GMT expires: - '-1' pragma: @@ -7412,9 +13618,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7430,13 +13636,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec320391470 was not found in this key vault. If you + (name/id) livekvtestcertrec520391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7447,7 +13653,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:07 GMT + - Fri, 06 Aug 2021 18:31:14 GMT expires: - '-1' pragma: @@ -7459,9 +13665,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7477,13 +13683,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec320391470 was not found in this key vault. If you + (name/id) livekvtestcertrec520391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7494,7 +13700,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:09 GMT + - Fri, 06 Aug 2021 18:31:16 GMT expires: - '-1' pragma: @@ -7506,9 +13712,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7524,13 +13730,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec320391470 was not found in this key vault. If you + (name/id) livekvtestcertrec520391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7541,7 +13747,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:11 GMT + - Fri, 06 Aug 2021 18:31:18 GMT expires: - '-1' pragma: @@ -7553,9 +13759,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7571,21 +13777,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449489,"updated":1616449489,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449489,"updated":1616449489}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec520391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:13 GMT + - Fri, 06 Aug 2021 18:31:20 GMT expires: - '-1' pragma: @@ -7597,14 +13806,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -7614,24 +13823,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470/recover?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449490,"updated":1616449490,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449490,"updated":1616449490}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec520391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:13 GMT + - Fri, 06 Aug 2021 18:31:22 GMT expires: - '-1' pragma: @@ -7643,14 +13853,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -7661,13 +13871,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec620391470 was not found in this key vault. If you + (name/id) livekvtestcertrec520391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7678,7 +13888,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:14 GMT + - Fri, 06 Aug 2021 18:31:24 GMT expires: - '-1' pragma: @@ -7690,9 +13900,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7708,13 +13918,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec620391470 was not found in this key vault. If you + (name/id) livekvtestcertrec520391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7725,7 +13935,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:16 GMT + - Fri, 06 Aug 2021 18:31:26 GMT expires: - '-1' pragma: @@ -7737,9 +13947,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7755,13 +13965,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec620391470 was not found in this key vault. If you + (name/id) livekvtestcertrec520391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7772,7 +13982,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:17 GMT + - Fri, 06 Aug 2021 18:31:28 GMT expires: - '-1' pragma: @@ -7784,9 +13994,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7802,13 +14012,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec620391470 was not found in this key vault. If you + (name/id) livekvtestcertrec520391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7819,7 +14029,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:21 GMT + - Fri, 06 Aug 2021 18:31:31 GMT expires: - '-1' pragma: @@ -7831,9 +14041,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7849,13 +14059,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec620391470 was not found in this key vault. If you + (name/id) livekvtestcertrec520391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7866,7 +14076,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:23 GMT + - Fri, 06 Aug 2021 18:31:32 GMT expires: - '-1' pragma: @@ -7878,9 +14088,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7896,13 +14106,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec620391470 was not found in this key vault. If you + (name/id) livekvtestcertrec520391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7913,7 +14123,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:25 GMT + - Fri, 06 Aug 2021 18:31:35 GMT expires: - '-1' pragma: @@ -7925,9 +14135,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7943,21 +14153,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449490,"updated":1616449490,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449490,"updated":1616449490}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec520391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:27 GMT + - Fri, 06 Aug 2021 18:31:37 GMT expires: - '-1' pragma: @@ -7969,14 +14182,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -7986,24 +14199,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470/recover?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449490,"updated":1616449490,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449490,"updated":1616449490}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec520391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:27 GMT + - Fri, 06 Aug 2021 18:31:39 GMT expires: - '-1' pragma: @@ -8015,14 +14229,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -8033,7 +14247,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: @@ -8050,7 +14264,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:27 GMT + - Fri, 06 Aug 2021 18:31:41 GMT expires: - '-1' pragma: @@ -8062,9 +14276,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8080,7 +14294,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: @@ -8097,7 +14311,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:29 GMT + - Fri, 06 Aug 2021 18:31:43 GMT expires: - '-1' pragma: @@ -8109,9 +14323,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8127,7 +14341,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: @@ -8144,7 +14358,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:31 GMT + - Fri, 06 Aug 2021 18:31:45 GMT expires: - '-1' pragma: @@ -8156,9 +14370,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8174,24 +14388,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec520391470 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274171,"updated":1628274171}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:33 GMT + - Fri, 06 Aug 2021 18:31:47 GMT expires: - '-1' pragma: @@ -8203,14 +14415,61 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470/recover?api-version=7.0 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274172,"updated":1628274172,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274172,"updated":1628274172}}}' + headers: + cache-control: + - no-cache + content-length: + - '2282' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:31:47 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK - request: body: null headers: @@ -8221,13 +14480,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec520391470 was not found in this key vault. If you + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8238,7 +14497,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:35 GMT + - Fri, 06 Aug 2021 18:31:47 GMT expires: - '-1' pragma: @@ -8250,9 +14509,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8268,13 +14527,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec520391470 was not found in this key vault. If you + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8285,7 +14544,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:37 GMT + - Fri, 06 Aug 2021 18:31:49 GMT expires: - '-1' pragma: @@ -8297,9 +14556,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8315,21 +14574,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449490,"updated":1616449490,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449490,"updated":1616449490}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:40 GMT + - Fri, 06 Aug 2021 18:31:51 GMT expires: - '-1' pragma: @@ -8341,14 +14603,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -8358,24 +14620,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470/recover?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449488,"updated":1616449488,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449488,"updated":1616449488}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:41 GMT + - Fri, 06 Aug 2021 18:31:54 GMT expires: - '-1' pragma: @@ -8387,14 +14650,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -8405,13 +14668,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8422,7 +14685,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:41 GMT + - Fri, 06 Aug 2021 18:31:56 GMT expires: - '-1' pragma: @@ -8434,9 +14697,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8452,13 +14715,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8469,7 +14732,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:43 GMT + - Fri, 06 Aug 2021 18:31:58 GMT expires: - '-1' pragma: @@ -8481,9 +14744,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8499,13 +14762,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8516,7 +14779,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:45 GMT + - Fri, 06 Aug 2021 18:32:00 GMT expires: - '-1' pragma: @@ -8528,9 +14791,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8546,13 +14809,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8563,7 +14826,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:47 GMT + - Fri, 06 Aug 2021 18:32:02 GMT expires: - '-1' pragma: @@ -8575,9 +14838,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8593,13 +14856,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec120391470 was not found in this key vault. If you + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8610,7 +14873,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:49 GMT + - Fri, 06 Aug 2021 18:32:04 GMT expires: - '-1' pragma: @@ -8622,9 +14885,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8640,21 +14903,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449488,"updated":1616449488,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449488,"updated":1616449488}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:51 GMT + - Fri, 06 Aug 2021 18:32:06 GMT expires: - '-1' pragma: @@ -8666,14 +14932,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -8683,24 +14949,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470/recover?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449489,"updated":1616449489,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449489,"updated":1616449489}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:51 GMT + - Fri, 06 Aug 2021 18:32:08 GMT expires: - '-1' pragma: @@ -8712,14 +14979,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -8730,13 +14997,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec420391470 was not found in this key vault. If you + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8747,7 +15014,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:51 GMT + - Fri, 06 Aug 2021 18:32:10 GMT expires: - '-1' pragma: @@ -8759,9 +15026,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8777,13 +15044,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec420391470 was not found in this key vault. If you + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8794,7 +15061,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:54 GMT + - Fri, 06 Aug 2021 18:32:13 GMT expires: - '-1' pragma: @@ -8806,9 +15073,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8824,13 +15091,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec420391470 was not found in this key vault. If you + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8841,7 +15108,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:56 GMT + - Fri, 06 Aug 2021 18:32:15 GMT expires: - '-1' pragma: @@ -8853,9 +15120,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8871,13 +15138,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec420391470 was not found in this key vault. If you + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8888,7 +15155,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:49:58 GMT + - Fri, 06 Aug 2021 18:32:17 GMT expires: - '-1' pragma: @@ -8900,9 +15167,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8918,13 +15185,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec420391470 was not found in this key vault. If you + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8935,7 +15202,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:50:00 GMT + - Fri, 06 Aug 2021 18:32:19 GMT expires: - '-1' pragma: @@ -8947,9 +15214,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8965,21 +15232,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449489,"updated":1616449489,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449489,"updated":1616449489}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:50:03 GMT + - Fri, 06 Aug 2021 18:32:21 GMT expires: - '-1' pragma: @@ -8991,14 +15261,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -9008,24 +15278,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470/recover?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449488,"updated":1616449488,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449488,"updated":1616449488}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1847' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:50:03 GMT + - Fri, 06 Aug 2021 18:32:22 GMT expires: - '-1' pragma: @@ -9037,14 +15308,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -9055,13 +15326,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9072,7 +15343,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:50:03 GMT + - Fri, 06 Aug 2021 18:32:25 GMT expires: - '-1' pragma: @@ -9084,9 +15355,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9102,13 +15373,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9119,7 +15390,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:50:05 GMT + - Fri, 06 Aug 2021 18:32:27 GMT expires: - '-1' pragma: @@ -9131,9 +15402,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9149,13 +15420,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec220391470 was not found in this key vault. If you + (name/id) livekvtestcertrec620391470 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9166,7 +15437,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:50:07 GMT + - Fri, 06 Aug 2021 18:32:29 GMT expires: - '-1' pragma: @@ -9178,9 +15449,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9196,24 +15467,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec220391470 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274172,"updated":1628274172,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274172,"updated":1628274172}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:50:09 GMT + - Fri, 06 Aug 2021 18:32:31 GMT expires: - '-1' pragma: @@ -9225,14 +15494,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -9242,25 +15511,20 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec220391470 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '' headers: cache-control: - no-cache - content-length: - - '338' - content-type: - - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:50:12 GMT + - Fri, 06 Aug 2021 18:32:31 GMT expires: - '-1' pragma: @@ -9272,14 +15536,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 204 + message: No Content - request: body: null headers: @@ -9289,25 +15553,20 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec220391470 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '' headers: cache-control: - no-cache - content-length: - - '338' - content-type: - - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:50:14 GMT + - Fri, 06 Aug 2021 18:32:31 GMT expires: - '-1' pragma: @@ -9319,14 +15578,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 204 + message: No Content - request: body: null headers: @@ -9336,22 +15595,20 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449488,"updated":1616449488,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449488,"updated":1616449488}}}' + string: '' headers: cache-control: - no-cache - content-length: - - '1847' - content-type: - - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:50:16 GMT + - Fri, 06 Aug 2021 18:32:31 GMT expires: - '-1' pragma: @@ -9363,14 +15620,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 204 + message: No Content - request: body: null headers: @@ -9383,9 +15640,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 response: body: string: '' @@ -9393,7 +15650,7 @@ interactions: cache-control: - no-cache date: - - Mon, 22 Mar 2021 21:50:16 GMT + - Fri, 06 Aug 2021 18:32:31 GMT expires: - '-1' pragma: @@ -9405,9 +15662,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9425,9 +15682,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 response: body: string: '' @@ -9435,7 +15692,7 @@ interactions: cache-control: - no-cache date: - - Mon, 22 Mar 2021 21:50:16 GMT + - Fri, 06 Aug 2021 18:32:32 GMT expires: - '-1' pragma: @@ -9447,9 +15704,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9467,9 +15724,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 response: body: string: '' @@ -9477,7 +15734,7 @@ interactions: cache-control: - no-cache date: - - Mon, 22 Mar 2021 21:50:17 GMT + - Fri, 06 Aug 2021 18:32:32 GMT expires: - '-1' pragma: @@ -9489,9 +15746,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9509,9 +15766,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470?api-version=7.0 response: body: string: '' @@ -9519,7 +15776,7 @@ interactions: cache-control: - no-cache date: - - Mon, 22 Mar 2021 21:50:17 GMT + - Fri, 06 Aug 2021 18:32:32 GMT expires: - '-1' pragma: @@ -9531,9 +15788,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9548,20 +15805,22 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0 response: body: - string: '' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' headers: cache-control: - no-cache + content-length: + - '323' + content-type: + - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:50:17 GMT + - Fri, 06 Aug 2021 18:33:23 GMT expires: - '-1' pragma: @@ -9573,14 +15832,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 204 - message: No Content + code: 200 + message: OK - request: body: null headers: @@ -9590,20 +15849,22 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 response: body: - string: '' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' headers: cache-control: - no-cache + content-length: + - '323' + content-type: + - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:50:17 GMT + - Fri, 06 Aug 2021 18:33:23 GMT expires: - '-1' pragma: @@ -9615,14 +15876,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 204 - message: No Content + code: 200 + message: OK - request: body: null headers: @@ -9632,20 +15893,22 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 response: body: - string: '' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1628271087,"scheduledPurgeDate":1636047087,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"RC8tFJZPwOeZWUeGE9sGSFTbczM","attributes":{"enabled":true,"nbf":1628270484,"exp":1659807084,"created":1628271084,"updated":1628271087,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed","deletedDate":1628274709,"scheduledPurgeDate":1636050709,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed","deletedDate":1628274751,"scheduledPurgeDate":1636050751,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274551,"updated":1628274551,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed","deletedDate":1628274770,"scheduledPurgeDate":1636050770,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274551,"updated":1628274551,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed","deletedDate":1628274554,"scheduledPurgeDate":1636050554,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274547,"updated":1628274547,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVRSRU9EVXhPRGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: - no-cache + content-length: + - '2452' + content-type: + - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:50:18 GMT + - Fri, 06 Aug 2021 18:33:23 GMT expires: - '-1' pragma: @@ -9657,14 +15920,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 204 - message: No Content + code: 200 + message: OK - request: body: null headers: @@ -9675,21 +15938,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVRSRU9EVXhPRGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: - string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed","deletedDate":1628274580,"scheduledPurgeDate":1636050580,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274548,"updated":1628274548,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed","deletedDate":1628274595,"scheduledPurgeDate":1636050595,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274548,"updated":1628274548,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed","deletedDate":1628274616,"scheduledPurgeDate":1636050616,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274549,"updated":1628274549,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed","deletedDate":1628274634,"scheduledPurgeDate":1636050634,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274549,"updated":1628274549,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed","deletedDate":1628274651,"scheduledPurgeDate":1636050651,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETmpSRU9EVXhPRGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: - no-cache content-length: - - '325' + - '2427' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:09 GMT + - Fri, 06 Aug 2021 18:33:23 GMT expires: - '-1' pragma: @@ -9701,9 +15964,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9719,21 +15982,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETmpSRU9EVXhPRGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcert86bc153a","deletedDate":1616448460,"scheduledPurgeDate":1624224460,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert86bc153a","x5t":"se7NvIEKi8S7ofjDzgwQac1xJ4k","attributes":{"enabled":true,"nbf":1616447853,"exp":1647984453,"created":1616448453,"updated":1616448460,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76613b7","deletedDate":1616448501,"scheduledPurgeDate":1624224501,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76613b7","x5t":"c4HAnMZ8fqtsb0BFJX8iJTcCvfo","attributes":{"enabled":true,"nbf":1616447896,"exp":1647984496,"created":1616448496,"updated":1616448501,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76713b8","deletedDate":1616448532,"scheduledPurgeDate":1624224532,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76713b8","x5t":"Xg4iTQA_I614-V1OPIdMd4DgQpI","attributes":{"enabled":true,"nbf":1616447926,"exp":1647984526,"created":1616448526,"updated":1616448532,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlF6RTNSRVF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed","deletedDate":1628274672,"scheduledPurgeDate":1636050672,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVE1TnpJeU5ERXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' headers: cache-control: - no-cache content-length: - - '1676' + - '790' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:10 GMT + - Fri, 06 Aug 2021 18:33:24 GMT expires: - '-1' pragma: @@ -9745,9 +16008,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9763,9 +16026,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlF6RTNSRVF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVE1TnpJeU5ERXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 response: body: string: '{"value":[],"nextLink":null}' @@ -9777,7 +16040,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:10 GMT + - Fri, 06 Aug 2021 18:33:24 GMT expires: - '-1' pragma: @@ -9789,9 +16052,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9807,21 +16070,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec620391470/1d530db2d84e46cbb4ec9d6a1e64b2b2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449490,"updated":1616449490,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449490,"updated":1616449490}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec020391470/bf182052190f46be86e3a328e24f8154","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274169,"updated":1628274169,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274169,"updated":1628274169}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:10 GMT + - Fri, 06 Aug 2021 18:33:24 GMT expires: - '-1' pragma: @@ -9833,9 +16097,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9851,21 +16115,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec520391470/9d959f7d5e9e4480b92403e9a95fd601","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449490,"updated":1616449490,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449490,"updated":1616449490}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec120391470/083c6acb42b34994995ce61fd7b78c49","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274169,"updated":1628274169,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274169,"updated":1628274169}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:10 GMT + - Fri, 06 Aug 2021 18:33:24 GMT expires: - '-1' pragma: @@ -9877,9 +16142,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9895,21 +16160,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec120391470/2328f752cbdc45ffbcc050fad95abdb0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449488,"updated":1616449488,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449488,"updated":1616449488}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec220391470/ee96e4ec0c1946a5af17c33ba71f631f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274170,"updated":1628274170}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:10 GMT + - Fri, 06 Aug 2021 18:33:24 GMT expires: - '-1' pragma: @@ -9921,9 +16187,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9939,21 +16205,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec020391470/fde48c056d204e5986a07582bd8601cf","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449487,"updated":1616449487,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449487,"updated":1616449487}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec320391470/de4e275ba3df46d096bf7001b3a12693","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274170,"updated":1628274170}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:11 GMT + - Fri, 06 Aug 2021 18:33:24 GMT expires: - '-1' pragma: @@ -9965,9 +16232,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9983,21 +16250,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec420391470/c5be272e774d480c92db1c69320295b2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449489,"updated":1616449489,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449489,"updated":1616449489}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec420391470/4dbb9aa14c844d80b4ddc7ab094cb3b1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274171,"updated":1628274171}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:11 GMT + - Fri, 06 Aug 2021 18:33:24 GMT expires: - '-1' pragma: @@ -10009,9 +16277,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -10027,21 +16295,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec220391470/ed0e5ae70d064229a829276dbbd04350","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449488,"updated":1616449488,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449488,"updated":1616449488}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec520391470/4ce26ef271ec4209838e984cef3e7e27","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274171,"updated":1628274171}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:11 GMT + - Fri, 06 Aug 2021 18:33:24 GMT expires: - '-1' pragma: @@ -10053,9 +16322,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -10071,21 +16340,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec320391470/7fcd6a66095f44d486c2c14886488116","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449489,"updated":1616449489,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449489,"updated":1616449489}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec620391470/73592e71419142458c092eb06e81f85b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274172,"updated":1628274172,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274172,"updated":1628274172}}}' headers: cache-control: - no-cache content-length: - - '1847' + - '2282' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:11 GMT + - Fri, 06 Aug 2021 18:33:24 GMT expires: - '-1' pragma: @@ -10097,9 +16367,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_recover_and_purge_7_1.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_recover_and_purge_7_1.yaml index 0d1f728ba72b..10c8cf914664 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_recover_and_purge_7_1.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_recover_and_purge_7_1.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/import?api-version=7.1 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:12 GMT + - Fri, 06 Aug 2021 18:33:24 GMT expires: - '-1' pragma: @@ -43,21 +43,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -66,25 +65,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449873,"updated":1616449873,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449873,"updated":1616449873}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274805,"updated":1628274805,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274805,"updated":1628274805}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:13 GMT + - Fri, 06 Aug 2021 18:33:25 GMT expires: - '-1' pragma: @@ -96,21 +96,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -119,25 +118,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449874,"updated":1616449874,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449874,"updated":1616449874}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274806,"updated":1628274806}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:13 GMT + - Fri, 06 Aug 2021 18:33:26 GMT expires: - '-1' pragma: @@ -149,21 +149,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -172,25 +171,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449874,"updated":1616449874,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449874,"updated":1616449874}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274806,"updated":1628274806}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:14 GMT + - Fri, 06 Aug 2021 18:33:26 GMT expires: - '-1' pragma: @@ -202,21 +202,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -225,25 +224,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449875,"updated":1616449875,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449875,"updated":1616449875}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:14 GMT + - Fri, 06 Aug 2021 18:33:27 GMT expires: - '-1' pragma: @@ -255,21 +255,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -278,25 +277,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449875,"updated":1616449875,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449875,"updated":1616449875}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:15 GMT + - Fri, 06 Aug 2021 18:33:27 GMT expires: - '-1' pragma: @@ -308,21 +308,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -331,25 +330,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449876,"updated":1616449876,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449876,"updated":1616449876}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:15 GMT + - Fri, 06 Aug 2021 18:33:27 GMT expires: - '-1' pragma: @@ -361,21 +361,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -384,25 +383,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449877,"updated":1616449877,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449877,"updated":1616449877}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274808,"updated":1628274808,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274808,"updated":1628274808}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:16 GMT + - Fri, 06 Aug 2021 18:33:28 GMT expires: - '-1' pragma: @@ -414,21 +414,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -437,25 +436,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471/f5e81219140843219506452e804f291a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0203a1471/f5e81219140843219506452e804f291a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0203a1471/f5e81219140843219506452e804f291a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449877,"updated":1616449877,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449877,"updated":1616449877}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471/921c2aa3ed6b48e0815614a60e76873a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0203a1471/921c2aa3ed6b48e0815614a60e76873a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0203a1471/921c2aa3ed6b48e0815614a60e76873a","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274808,"updated":1628274808,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274808,"updated":1628274808}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:17 GMT + - Fri, 06 Aug 2021 18:33:28 GMT expires: - '-1' pragma: @@ -467,21 +467,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -490,25 +489,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471/0ff6dd1dbad74cd99d9b04d6c54ca2a2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1203a1471/0ff6dd1dbad74cd99d9b04d6c54ca2a2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1203a1471/0ff6dd1dbad74cd99d9b04d6c54ca2a2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449878,"updated":1616449878,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449878,"updated":1616449878}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471/3d7a0ac87bb148558569d06cebda9b90","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1203a1471/3d7a0ac87bb148558569d06cebda9b90","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1203a1471/3d7a0ac87bb148558569d06cebda9b90","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274809,"updated":1628274809,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274809,"updated":1628274809}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:17 GMT + - Fri, 06 Aug 2021 18:33:28 GMT expires: - '-1' pragma: @@ -520,21 +520,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -543,25 +542,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471/72146df71a42429ba576d7d1725d9799","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2203a1471/72146df71a42429ba576d7d1725d9799","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2203a1471/72146df71a42429ba576d7d1725d9799","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449878,"updated":1616449878,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449878,"updated":1616449878}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471/8e4a40332e654db3b893899a5140bd4e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2203a1471/8e4a40332e654db3b893899a5140bd4e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2203a1471/8e4a40332e654db3b893899a5140bd4e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274809,"updated":1628274809,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274809,"updated":1628274809}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:19 GMT + - Fri, 06 Aug 2021 18:33:29 GMT expires: - '-1' pragma: @@ -573,21 +573,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -596,25 +595,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471/f6bf825985474f258da566b73cc91ff0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3203a1471/f6bf825985474f258da566b73cc91ff0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3203a1471/f6bf825985474f258da566b73cc91ff0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449879,"updated":1616449879,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449879,"updated":1616449879}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471/df8196faa8194f9289a1765a5727c720","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3203a1471/df8196faa8194f9289a1765a5727c720","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3203a1471/df8196faa8194f9289a1765a5727c720","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274810,"updated":1628274810,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274810,"updated":1628274810}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:19 GMT + - Fri, 06 Aug 2021 18:33:29 GMT expires: - '-1' pragma: @@ -626,21 +626,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -649,25 +648,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471/579edb84e5824fdd9644f0494642d255","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4203a1471/579edb84e5824fdd9644f0494642d255","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4203a1471/579edb84e5824fdd9644f0494642d255","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449880,"updated":1616449880,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449880,"updated":1616449880}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471/4b413f2d70f94e3c96ac27eed2ca3906","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4203a1471/4b413f2d70f94e3c96ac27eed2ca3906","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4203a1471/4b413f2d70f94e3c96ac27eed2ca3906","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274810,"updated":1628274810,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274810,"updated":1628274810}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:20 GMT + - Fri, 06 Aug 2021 18:33:30 GMT expires: - '-1' pragma: @@ -679,21 +679,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -702,25 +701,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471/ca2b4762d9c2496089c5e85063dea578","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5203a1471/ca2b4762d9c2496089c5e85063dea578","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5203a1471/ca2b4762d9c2496089c5e85063dea578","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449880,"updated":1616449880,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449880,"updated":1616449880}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471/5a748f3519414e3586d898651fd3bed5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5203a1471/5a748f3519414e3586d898651fd3bed5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5203a1471/5a748f3519414e3586d898651fd3bed5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274810,"updated":1628274810,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274810,"updated":1628274810}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:21 GMT + - Fri, 06 Aug 2021 18:33:30 GMT expires: - '-1' pragma: @@ -732,21 +732,20 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"validity_months": - 12, "sans": {}, "key_usage": ["digitalSignature", "keyEncipherment"], "subject": - "CN=DefaultPolicy"}, "secret_props": {"contentType": "application/x-pkcs12"}, - "key_props": {"exportable": true, "reuse_key": false, "key_size": 2048, "kty": - "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -755,25 +754,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471/9a92e59fea0f487c917d048e618b2cd8","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6203a1471/9a92e59fea0f487c917d048e618b2cd8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6203a1471/9a92e59fea0f487c917d048e618b2cd8","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449881,"updated":1616449881,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449881,"updated":1616449881}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471/6ad10dbb273d437fb1848786dfee24e4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6203a1471/6ad10dbb273d437fb1848786dfee24e4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6203a1471/6ad10dbb273d437fb1848786dfee24e4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274811,"updated":1628274811,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274811,"updated":1628274811}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:21 GMT + - Fri, 06 Aug 2021 18:33:30 GMT expires: - '-1' pragma: @@ -785,9 +785,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -805,21 +805,22 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471","deletedDate":1616449881,"scheduledPurgeDate":1624225881,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449874,"updated":1616449874,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449874,"updated":1616449874}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471","deletedDate":1628274811,"scheduledPurgeDate":1636050811,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274805,"updated":1628274805,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274805,"updated":1628274805}}}' headers: cache-control: - no-cache content-length: - - '2024' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:21 GMT + - Fri, 06 Aug 2021 18:33:30 GMT expires: - '-1' pragma: @@ -831,9 +832,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -849,13 +850,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2203a1471"}}' + not found: livekvtestcertrec0203a1471"}}' headers: cache-control: - no-cache @@ -864,7 +865,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:22 GMT + - Fri, 06 Aug 2021 18:33:30 GMT expires: - '-1' pragma: @@ -876,9 +877,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -894,13 +895,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2203a1471"}}' + not found: livekvtestcertrec0203a1471"}}' headers: cache-control: - no-cache @@ -909,7 +910,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:24 GMT + - Fri, 06 Aug 2021 18:33:32 GMT expires: - '-1' pragma: @@ -921,9 +922,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -939,13 +940,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2203a1471"}}' + not found: livekvtestcertrec0203a1471"}}' headers: cache-control: - no-cache @@ -954,7 +955,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:26 GMT + - Fri, 06 Aug 2021 18:33:35 GMT expires: - '-1' pragma: @@ -966,9 +967,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -984,13 +985,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2203a1471"}}' + not found: livekvtestcertrec0203a1471"}}' headers: cache-control: - no-cache @@ -999,7 +1000,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:28 GMT + - Fri, 06 Aug 2021 18:33:37 GMT expires: - '-1' pragma: @@ -1011,9 +1012,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1029,13 +1030,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2203a1471"}}' + not found: livekvtestcertrec0203a1471"}}' headers: cache-control: - no-cache @@ -1044,7 +1045,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:30 GMT + - Fri, 06 Aug 2021 18:33:39 GMT expires: - '-1' pragma: @@ -1056,9 +1057,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1074,13 +1075,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2203a1471"}}' + not found: livekvtestcertrec0203a1471"}}' headers: cache-control: - no-cache @@ -1089,7 +1090,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:32 GMT + - Fri, 06 Aug 2021 18:33:41 GMT expires: - '-1' pragma: @@ -1101,9 +1102,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1119,13 +1120,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2203a1471"}}' + not found: livekvtestcertrec0203a1471"}}' headers: cache-control: - no-cache @@ -1134,7 +1135,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:34 GMT + - Fri, 06 Aug 2021 18:33:43 GMT expires: - '-1' pragma: @@ -1146,9 +1147,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1164,22 +1165,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2203a1471"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471","deletedDate":1628274811,"scheduledPurgeDate":1636050811,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274805,"updated":1628274805,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274805,"updated":1628274805}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:37 GMT + - Fri, 06 Aug 2021 18:33:46 GMT expires: - '-1' pragma: @@ -1191,14 +1192,61 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471","deletedDate":1628274826,"scheduledPurgeDate":1636050826,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274806,"updated":1628274806}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:33:46 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK - request: body: null headers: @@ -1209,13 +1257,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2203a1471"}}' + not found: livekvtestcertrec1203a1471"}}' headers: cache-control: - no-cache @@ -1224,7 +1272,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:39 GMT + - Fri, 06 Aug 2021 18:33:46 GMT expires: - '-1' pragma: @@ -1236,9 +1284,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1254,21 +1302,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471","deletedDate":1616449881,"scheduledPurgeDate":1624225881,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449874,"updated":1616449874,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449874,"updated":1616449874}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:41 GMT + - Fri, 06 Aug 2021 18:33:48 GMT expires: - '-1' pragma: @@ -1280,14 +1329,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1297,24 +1346,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471","deletedDate":1616449902,"scheduledPurgeDate":1624225902,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449876,"updated":1616449876,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449876,"updated":1616449876}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:41 GMT + - Fri, 06 Aug 2021 18:33:50 GMT expires: - '-1' pragma: @@ -1326,14 +1374,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1344,13 +1392,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5203a1471"}}' + not found: livekvtestcertrec1203a1471"}}' headers: cache-control: - no-cache @@ -1359,7 +1407,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:42 GMT + - Fri, 06 Aug 2021 18:33:51 GMT expires: - '-1' pragma: @@ -1371,9 +1419,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1389,13 +1437,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5203a1471"}}' + not found: livekvtestcertrec1203a1471"}}' headers: cache-control: - no-cache @@ -1404,7 +1452,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:44 GMT + - Fri, 06 Aug 2021 18:33:54 GMT expires: - '-1' pragma: @@ -1416,9 +1464,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1434,13 +1482,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5203a1471"}}' + not found: livekvtestcertrec1203a1471"}}' headers: cache-control: - no-cache @@ -1449,7 +1497,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:46 GMT + - Fri, 06 Aug 2021 18:33:56 GMT expires: - '-1' pragma: @@ -1461,9 +1509,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1479,13 +1527,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5203a1471"}}' + not found: livekvtestcertrec1203a1471"}}' headers: cache-control: - no-cache @@ -1494,7 +1542,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:48 GMT + - Fri, 06 Aug 2021 18:33:58 GMT expires: - '-1' pragma: @@ -1506,9 +1554,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1524,13 +1572,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5203a1471"}}' + not found: livekvtestcertrec1203a1471"}}' headers: cache-control: - no-cache @@ -1539,7 +1587,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:50 GMT + - Fri, 06 Aug 2021 18:34:00 GMT expires: - '-1' pragma: @@ -1551,9 +1599,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1569,13 +1617,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5203a1471"}}' + not found: livekvtestcertrec1203a1471"}}' headers: cache-control: - no-cache @@ -1584,7 +1632,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:52 GMT + - Fri, 06 Aug 2021 18:34:02 GMT expires: - '-1' pragma: @@ -1596,9 +1644,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1614,21 +1662,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471","deletedDate":1616449902,"scheduledPurgeDate":1624225902,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449876,"updated":1616449876,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449876,"updated":1616449876}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:54 GMT + - Fri, 06 Aug 2021 18:34:05 GMT expires: - '-1' pragma: @@ -1640,14 +1689,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1657,24 +1706,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471","deletedDate":1616449915,"scheduledPurgeDate":1624225915,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471/9a92e59fea0f487c917d048e618b2cd8","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6203a1471/9a92e59fea0f487c917d048e618b2cd8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6203a1471/9a92e59fea0f487c917d048e618b2cd8","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449881,"updated":1616449881,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449881,"updated":1616449881}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:54 GMT + - Fri, 06 Aug 2021 18:34:07 GMT expires: - '-1' pragma: @@ -1686,14 +1734,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1704,13 +1752,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6203a1471"}}' + not found: livekvtestcertrec1203a1471"}}' headers: cache-control: - no-cache @@ -1719,7 +1767,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:54 GMT + - Fri, 06 Aug 2021 18:34:09 GMT expires: - '-1' pragma: @@ -1731,9 +1779,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1749,13 +1797,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6203a1471"}}' + not found: livekvtestcertrec1203a1471"}}' headers: cache-control: - no-cache @@ -1764,7 +1812,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:56 GMT + - Fri, 06 Aug 2021 18:34:11 GMT expires: - '-1' pragma: @@ -1776,9 +1824,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1794,13 +1842,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6203a1471"}}' + not found: livekvtestcertrec1203a1471"}}' headers: cache-control: - no-cache @@ -1809,7 +1857,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:51:59 GMT + - Fri, 06 Aug 2021 18:34:12 GMT expires: - '-1' pragma: @@ -1821,9 +1869,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1839,13 +1887,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6203a1471"}}' + not found: livekvtestcertrec1203a1471"}}' headers: cache-control: - no-cache @@ -1854,7 +1902,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:01 GMT + - Fri, 06 Aug 2021 18:34:14 GMT expires: - '-1' pragma: @@ -1866,9 +1914,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1884,13 +1932,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6203a1471"}}' + not found: livekvtestcertrec1203a1471"}}' headers: cache-control: - no-cache @@ -1899,7 +1947,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:04 GMT + - Fri, 06 Aug 2021 18:34:16 GMT expires: - '-1' pragma: @@ -1911,9 +1959,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1929,21 +1977,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471","deletedDate":1616449915,"scheduledPurgeDate":1624225915,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471/9a92e59fea0f487c917d048e618b2cd8","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6203a1471/9a92e59fea0f487c917d048e618b2cd8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6203a1471/9a92e59fea0f487c917d048e618b2cd8","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449881,"updated":1616449881,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449881,"updated":1616449881}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471","deletedDate":1628274826,"scheduledPurgeDate":1636050826,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274806,"updated":1628274806}}}' headers: cache-control: - no-cache content-length: - - '2024' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:06 GMT + - Fri, 06 Aug 2021 18:34:18 GMT expires: - '-1' pragma: @@ -1955,9 +2004,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1975,21 +2024,22 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471","deletedDate":1616449927,"scheduledPurgeDate":1624225927,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449875,"updated":1616449875,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449875,"updated":1616449875}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471","deletedDate":1628274859,"scheduledPurgeDate":1636050859,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274806,"updated":1628274806}}}' headers: cache-control: - no-cache content-length: - - '2024' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:06 GMT + - Fri, 06 Aug 2021 18:34:18 GMT expires: - '-1' pragma: @@ -2001,9 +2051,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2019,13 +2069,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3203a1471"}}' + not found: livekvtestcertrec2203a1471"}}' headers: cache-control: - no-cache @@ -2034,7 +2084,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:06 GMT + - Fri, 06 Aug 2021 18:34:19 GMT expires: - '-1' pragma: @@ -2046,9 +2096,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2064,13 +2114,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3203a1471"}}' + not found: livekvtestcertrec2203a1471"}}' headers: cache-control: - no-cache @@ -2079,7 +2129,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:08 GMT + - Fri, 06 Aug 2021 18:34:20 GMT expires: - '-1' pragma: @@ -2091,9 +2141,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2109,13 +2159,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3203a1471"}}' + not found: livekvtestcertrec2203a1471"}}' headers: cache-control: - no-cache @@ -2124,7 +2174,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:11 GMT + - Fri, 06 Aug 2021 18:34:22 GMT expires: - '-1' pragma: @@ -2136,9 +2186,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2154,13 +2204,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3203a1471"}}' + not found: livekvtestcertrec2203a1471"}}' headers: cache-control: - no-cache @@ -2169,7 +2219,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:13 GMT + - Fri, 06 Aug 2021 18:34:25 GMT expires: - '-1' pragma: @@ -2181,9 +2231,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2199,13 +2249,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3203a1471"}}' + not found: livekvtestcertrec2203a1471"}}' headers: cache-control: - no-cache @@ -2214,7 +2264,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:15 GMT + - Fri, 06 Aug 2021 18:34:27 GMT expires: - '-1' pragma: @@ -2226,9 +2276,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2244,21 +2294,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471","deletedDate":1616449927,"scheduledPurgeDate":1624225927,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449875,"updated":1616449875,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449875,"updated":1616449875}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec2203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:17 GMT + - Fri, 06 Aug 2021 18:34:29 GMT expires: - '-1' pragma: @@ -2270,14 +2321,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2287,24 +2338,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471","deletedDate":1616449938,"scheduledPurgeDate":1624225938,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449874,"updated":1616449874,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449874,"updated":1616449874}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec2203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:18 GMT + - Fri, 06 Aug 2021 18:34:31 GMT expires: - '-1' pragma: @@ -2316,14 +2366,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2334,13 +2384,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1203a1471"}}' + not found: livekvtestcertrec2203a1471"}}' headers: cache-control: - no-cache @@ -2349,7 +2399,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:18 GMT + - Fri, 06 Aug 2021 18:34:34 GMT expires: - '-1' pragma: @@ -2361,9 +2411,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2379,13 +2429,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1203a1471"}}' + not found: livekvtestcertrec2203a1471"}}' headers: cache-control: - no-cache @@ -2394,7 +2444,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:20 GMT + - Fri, 06 Aug 2021 18:34:36 GMT expires: - '-1' pragma: @@ -2406,9 +2456,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2424,22 +2474,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1203a1471"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471","deletedDate":1628274859,"scheduledPurgeDate":1636050859,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274806,"updated":1628274806}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:22 GMT + - Fri, 06 Aug 2021 18:34:38 GMT expires: - '-1' pragma: @@ -2451,14 +2501,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -2468,23 +2518,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1203a1471"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471","deletedDate":1628274878,"scheduledPurgeDate":1636050878,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:24 GMT + - Fri, 06 Aug 2021 18:34:38 GMT expires: - '-1' pragma: @@ -2496,14 +2548,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -2514,13 +2566,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1203a1471"}}' + not found: livekvtestcertrec3203a1471"}}' headers: cache-control: - no-cache @@ -2529,7 +2581,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:26 GMT + - Fri, 06 Aug 2021 18:34:38 GMT expires: - '-1' pragma: @@ -2541,9 +2593,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2559,21 +2611,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471","deletedDate":1616449938,"scheduledPurgeDate":1624225938,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449874,"updated":1616449874,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449874,"updated":1616449874}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec3203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:29 GMT + - Fri, 06 Aug 2021 18:34:40 GMT expires: - '-1' pragma: @@ -2585,14 +2638,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2602,24 +2655,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471","deletedDate":1616449949,"scheduledPurgeDate":1624225949,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471/f5e81219140843219506452e804f291a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0203a1471/f5e81219140843219506452e804f291a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0203a1471/f5e81219140843219506452e804f291a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449877,"updated":1616449877,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449877,"updated":1616449877}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec3203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:29 GMT + - Fri, 06 Aug 2021 18:34:42 GMT expires: - '-1' pragma: @@ -2631,14 +2683,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2649,13 +2701,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0203a1471"}}' + not found: livekvtestcertrec3203a1471"}}' headers: cache-control: - no-cache @@ -2664,7 +2716,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:29 GMT + - Fri, 06 Aug 2021 18:34:43 GMT expires: - '-1' pragma: @@ -2676,9 +2728,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2694,13 +2746,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0203a1471"}}' + not found: livekvtestcertrec3203a1471"}}' headers: cache-control: - no-cache @@ -2709,7 +2761,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:31 GMT + - Fri, 06 Aug 2021 18:34:46 GMT expires: - '-1' pragma: @@ -2721,9 +2773,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2739,13 +2791,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0203a1471"}}' + not found: livekvtestcertrec3203a1471"}}' headers: cache-control: - no-cache @@ -2754,7 +2806,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:33 GMT + - Fri, 06 Aug 2021 18:34:48 GMT expires: - '-1' pragma: @@ -2766,9 +2818,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2784,13 +2836,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0203a1471"}}' + not found: livekvtestcertrec3203a1471"}}' headers: cache-control: - no-cache @@ -2799,7 +2851,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:36 GMT + - Fri, 06 Aug 2021 18:34:50 GMT expires: - '-1' pragma: @@ -2811,9 +2863,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2829,22 +2881,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0203a1471"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471","deletedDate":1628274878,"scheduledPurgeDate":1636050878,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:38 GMT + - Fri, 06 Aug 2021 18:34:52 GMT expires: - '-1' pragma: @@ -2856,14 +2908,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -2873,22 +2925,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471","deletedDate":1616449949,"scheduledPurgeDate":1624225949,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471/f5e81219140843219506452e804f291a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0203a1471/f5e81219140843219506452e804f291a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0203a1471/f5e81219140843219506452e804f291a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449877,"updated":1616449877,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449877,"updated":1616449877}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471","deletedDate":1628274893,"scheduledPurgeDate":1636050893,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '2024' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:40 GMT + - Fri, 06 Aug 2021 18:34:52 GMT expires: - '-1' pragma: @@ -2900,9 +2955,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2917,24 +2972,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471","deletedDate":1616449960,"scheduledPurgeDate":1624225960,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471/72146df71a42429ba576d7d1725d9799","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2203a1471/72146df71a42429ba576d7d1725d9799","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2203a1471/72146df71a42429ba576d7d1725d9799","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449878,"updated":1616449878,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449878,"updated":1616449878}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:40 GMT + - Fri, 06 Aug 2021 18:34:52 GMT expires: - '-1' pragma: @@ -2946,14 +3000,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2964,13 +3018,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2203a1471"}}' + not found: livekvtestcertrec4203a1471"}}' headers: cache-control: - no-cache @@ -2979,7 +3033,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:40 GMT + - Fri, 06 Aug 2021 18:34:54 GMT expires: - '-1' pragma: @@ -2991,9 +3045,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3009,13 +3063,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2203a1471"}}' + not found: livekvtestcertrec4203a1471"}}' headers: cache-control: - no-cache @@ -3024,7 +3078,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:42 GMT + - Fri, 06 Aug 2021 18:34:56 GMT expires: - '-1' pragma: @@ -3036,9 +3090,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3054,13 +3108,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2203a1471"}}' + not found: livekvtestcertrec4203a1471"}}' headers: cache-control: - no-cache @@ -3069,7 +3123,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:44 GMT + - Fri, 06 Aug 2021 18:34:59 GMT expires: - '-1' pragma: @@ -3081,9 +3135,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3099,13 +3153,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2203a1471"}}' + not found: livekvtestcertrec4203a1471"}}' headers: cache-control: - no-cache @@ -3114,7 +3168,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:47 GMT + - Fri, 06 Aug 2021 18:35:01 GMT expires: - '-1' pragma: @@ -3126,9 +3180,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3144,13 +3198,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2203a1471"}}' + not found: livekvtestcertrec4203a1471"}}' headers: cache-control: - no-cache @@ -3159,7 +3213,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:49 GMT + - Fri, 06 Aug 2021 18:35:02 GMT expires: - '-1' pragma: @@ -3171,9 +3225,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3189,13 +3243,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2203a1471"}}' + not found: livekvtestcertrec4203a1471"}}' headers: cache-control: - no-cache @@ -3204,7 +3258,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:51 GMT + - Fri, 06 Aug 2021 18:35:05 GMT expires: - '-1' pragma: @@ -3216,9 +3270,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3234,21 +3288,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471","deletedDate":1616449960,"scheduledPurgeDate":1624225960,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471/72146df71a42429ba576d7d1725d9799","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2203a1471/72146df71a42429ba576d7d1725d9799","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2203a1471/72146df71a42429ba576d7d1725d9799","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449878,"updated":1616449878,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449878,"updated":1616449878}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:53 GMT + - Fri, 06 Aug 2021 18:35:07 GMT expires: - '-1' pragma: @@ -3260,14 +3315,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3277,24 +3332,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471","deletedDate":1616449974,"scheduledPurgeDate":1624225974,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449877,"updated":1616449877,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449877,"updated":1616449877}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471","deletedDate":1628274893,"scheduledPurgeDate":1636050893,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '2024' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:53 GMT + - Fri, 06 Aug 2021 18:35:09 GMT expires: - '-1' pragma: @@ -3306,9 +3360,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3323,23 +3377,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6203a1471"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471","deletedDate":1628274909,"scheduledPurgeDate":1636050909,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:53 GMT + - Fri, 06 Aug 2021 18:35:09 GMT expires: - '-1' pragma: @@ -3351,14 +3407,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -3369,13 +3425,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6203a1471"}}' + not found: livekvtestcertrec5203a1471"}}' headers: cache-control: - no-cache @@ -3384,7 +3440,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:56 GMT + - Fri, 06 Aug 2021 18:35:09 GMT expires: - '-1' pragma: @@ -3396,9 +3452,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3414,13 +3470,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6203a1471"}}' + not found: livekvtestcertrec5203a1471"}}' headers: cache-control: - no-cache @@ -3429,7 +3485,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:52:58 GMT + - Fri, 06 Aug 2021 18:35:11 GMT expires: - '-1' pragma: @@ -3441,9 +3497,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3459,13 +3515,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6203a1471"}}' + not found: livekvtestcertrec5203a1471"}}' headers: cache-control: - no-cache @@ -3474,7 +3530,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:00 GMT + - Fri, 06 Aug 2021 18:35:13 GMT expires: - '-1' pragma: @@ -3486,9 +3542,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3504,13 +3560,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6203a1471"}}' + not found: livekvtestcertrec5203a1471"}}' headers: cache-control: - no-cache @@ -3519,7 +3575,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:02 GMT + - Fri, 06 Aug 2021 18:35:15 GMT expires: - '-1' pragma: @@ -3531,9 +3587,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3549,13 +3605,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6203a1471"}}' + not found: livekvtestcertrec5203a1471"}}' headers: cache-control: - no-cache @@ -3564,7 +3620,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:04 GMT + - Fri, 06 Aug 2021 18:35:17 GMT expires: - '-1' pragma: @@ -3576,9 +3632,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3594,21 +3650,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471","deletedDate":1616449974,"scheduledPurgeDate":1624225974,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449877,"updated":1616449877,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449877,"updated":1616449877}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:07 GMT + - Fri, 06 Aug 2021 18:35:20 GMT expires: - '-1' pragma: @@ -3620,14 +3677,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3637,24 +3694,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471","deletedDate":1616449987,"scheduledPurgeDate":1624225987,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449875,"updated":1616449875,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449875,"updated":1616449875}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:07 GMT + - Fri, 06 Aug 2021 18:35:22 GMT expires: - '-1' pragma: @@ -3666,14 +3722,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3684,13 +3740,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4203a1471"}}' + not found: livekvtestcertrec5203a1471"}}' headers: cache-control: - no-cache @@ -3699,7 +3755,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:07 GMT + - Fri, 06 Aug 2021 18:35:24 GMT expires: - '-1' pragma: @@ -3711,9 +3767,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3729,13 +3785,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4203a1471"}}' + not found: livekvtestcertrec5203a1471"}}' headers: cache-control: - no-cache @@ -3744,7 +3800,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:09 GMT + - Fri, 06 Aug 2021 18:35:26 GMT expires: - '-1' pragma: @@ -3756,9 +3812,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3774,22 +3830,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4203a1471"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471","deletedDate":1628274909,"scheduledPurgeDate":1636050909,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:11 GMT + - Fri, 06 Aug 2021 18:35:28 GMT expires: - '-1' pragma: @@ -3801,14 +3857,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -3818,23 +3874,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4203a1471"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471","deletedDate":1628274928,"scheduledPurgeDate":1636050928,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274808,"updated":1628274808,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274808,"updated":1628274808}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:13 GMT + - Fri, 06 Aug 2021 18:35:28 GMT expires: - '-1' pragma: @@ -3846,14 +3904,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -3864,13 +3922,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4203a1471"}}' + not found: livekvtestcertrec6203a1471"}}' headers: cache-control: - no-cache @@ -3879,7 +3937,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:15 GMT + - Fri, 06 Aug 2021 18:35:28 GMT expires: - '-1' pragma: @@ -3891,9 +3949,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3909,21 +3967,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471","deletedDate":1616449987,"scheduledPurgeDate":1624225987,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449875,"updated":1616449875,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449875,"updated":1616449875}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:18 GMT + - Fri, 06 Aug 2021 18:35:30 GMT expires: - '-1' pragma: @@ -3935,14 +3994,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3952,24 +4011,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471","deletedDate":1616449998,"scheduledPurgeDate":1624225998,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471/579edb84e5824fdd9644f0494642d255","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4203a1471/579edb84e5824fdd9644f0494642d255","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4203a1471/579edb84e5824fdd9644f0494642d255","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449880,"updated":1616449880,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449880,"updated":1616449880}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:18 GMT + - Fri, 06 Aug 2021 18:35:32 GMT expires: - '-1' pragma: @@ -3981,14 +4039,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3999,13 +4057,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4203a1471"}}' + not found: livekvtestcertrec6203a1471"}}' headers: cache-control: - no-cache @@ -4014,7 +4072,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:18 GMT + - Fri, 06 Aug 2021 18:35:34 GMT expires: - '-1' pragma: @@ -4026,9 +4084,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4044,13 +4102,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4203a1471"}}' + not found: livekvtestcertrec6203a1471"}}' headers: cache-control: - no-cache @@ -4059,7 +4117,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:20 GMT + - Fri, 06 Aug 2021 18:35:36 GMT expires: - '-1' pragma: @@ -4071,9 +4129,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4089,13 +4147,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4203a1471"}}' + not found: livekvtestcertrec6203a1471"}}' headers: cache-control: - no-cache @@ -4104,7 +4162,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:22 GMT + - Fri, 06 Aug 2021 18:35:38 GMT expires: - '-1' pragma: @@ -4116,9 +4174,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4134,13 +4192,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4203a1471"}}' + not found: livekvtestcertrec6203a1471"}}' headers: cache-control: - no-cache @@ -4149,7 +4207,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:24 GMT + - Fri, 06 Aug 2021 18:35:40 GMT expires: - '-1' pragma: @@ -4161,9 +4219,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4179,13 +4237,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4203a1471"}}' + not found: livekvtestcertrec6203a1471"}}' headers: cache-control: - no-cache @@ -4194,7 +4252,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:27 GMT + - Fri, 06 Aug 2021 18:35:43 GMT expires: - '-1' pragma: @@ -4206,9 +4264,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4224,22 +4282,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4203a1471"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471","deletedDate":1628274928,"scheduledPurgeDate":1636050928,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274808,"updated":1628274808,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274808,"updated":1628274808}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:29 GMT + - Fri, 06 Aug 2021 18:35:44 GMT expires: - '-1' pragma: @@ -4251,14 +4309,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -4268,23 +4326,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4203a1471"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471","deletedDate":1628274945,"scheduledPurgeDate":1636050945,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471/921c2aa3ed6b48e0815614a60e76873a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0203a1471/921c2aa3ed6b48e0815614a60e76873a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0203a1471/921c2aa3ed6b48e0815614a60e76873a","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274808,"updated":1628274808,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274808,"updated":1628274808}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:31 GMT + - Fri, 06 Aug 2021 18:35:45 GMT expires: - '-1' pragma: @@ -4296,14 +4356,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -4314,21 +4374,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471","deletedDate":1616449998,"scheduledPurgeDate":1624225998,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471/579edb84e5824fdd9644f0494642d255","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4203a1471/579edb84e5824fdd9644f0494642d255","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4203a1471/579edb84e5824fdd9644f0494642d255","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449880,"updated":1616449880,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449880,"updated":1616449880}}}' - headers: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203a1471"}}' + headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:33 GMT + - Fri, 06 Aug 2021 18:35:45 GMT expires: - '-1' pragma: @@ -4340,14 +4401,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -4357,24 +4418,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471","deletedDate":1616450014,"scheduledPurgeDate":1624226014,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471/ca2b4762d9c2496089c5e85063dea578","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5203a1471/ca2b4762d9c2496089c5e85063dea578","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5203a1471/ca2b4762d9c2496089c5e85063dea578","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449880,"updated":1616449880,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449880,"updated":1616449880}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:33 GMT + - Fri, 06 Aug 2021 18:35:47 GMT expires: - '-1' pragma: @@ -4386,14 +4446,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -4404,13 +4464,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5203a1471"}}' + not found: livekvtestcertprg0203a1471"}}' headers: cache-control: - no-cache @@ -4419,7 +4479,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:34 GMT + - Fri, 06 Aug 2021 18:35:48 GMT expires: - '-1' pragma: @@ -4431,9 +4491,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4449,13 +4509,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5203a1471"}}' + not found: livekvtestcertprg0203a1471"}}' headers: cache-control: - no-cache @@ -4464,7 +4524,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:36 GMT + - Fri, 06 Aug 2021 18:35:50 GMT expires: - '-1' pragma: @@ -4476,9 +4536,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4494,13 +4554,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5203a1471"}}' + not found: livekvtestcertprg0203a1471"}}' headers: cache-control: - no-cache @@ -4509,7 +4569,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:38 GMT + - Fri, 06 Aug 2021 18:35:53 GMT expires: - '-1' pragma: @@ -4521,9 +4581,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4539,13 +4599,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5203a1471"}}' + not found: livekvtestcertprg0203a1471"}}' headers: cache-control: - no-cache @@ -4554,7 +4614,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:40 GMT + - Fri, 06 Aug 2021 18:35:55 GMT expires: - '-1' pragma: @@ -4566,9 +4626,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4584,13 +4644,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5203a1471"}}' + not found: livekvtestcertprg0203a1471"}}' headers: cache-control: - no-cache @@ -4599,7 +4659,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:42 GMT + - Fri, 06 Aug 2021 18:35:57 GMT expires: - '-1' pragma: @@ -4611,9 +4671,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4629,13 +4689,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5203a1471"}}' + not found: livekvtestcertprg0203a1471"}}' headers: cache-control: - no-cache @@ -4644,7 +4704,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:44 GMT + - Fri, 06 Aug 2021 18:35:59 GMT expires: - '-1' pragma: @@ -4656,9 +4716,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4674,13 +4734,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5203a1471"}}' + not found: livekvtestcertprg0203a1471"}}' headers: cache-control: - no-cache @@ -4689,7 +4749,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:46 GMT + - Fri, 06 Aug 2021 18:36:01 GMT expires: - '-1' pragma: @@ -4701,9 +4761,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4719,22 +4779,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5203a1471"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471","deletedDate":1628274945,"scheduledPurgeDate":1636050945,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471/921c2aa3ed6b48e0815614a60e76873a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0203a1471/921c2aa3ed6b48e0815614a60e76873a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0203a1471/921c2aa3ed6b48e0815614a60e76873a","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274808,"updated":1628274808,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274808,"updated":1628274808}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:49 GMT + - Fri, 06 Aug 2021 18:36:03 GMT expires: - '-1' pragma: @@ -4746,14 +4806,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -4763,23 +4823,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5203a1471"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471","deletedDate":1628274963,"scheduledPurgeDate":1636050963,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471/3d7a0ac87bb148558569d06cebda9b90","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1203a1471/3d7a0ac87bb148558569d06cebda9b90","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1203a1471/3d7a0ac87bb148558569d06cebda9b90","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274809,"updated":1628274809,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274809,"updated":1628274809}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:51 GMT + - Fri, 06 Aug 2021 18:36:03 GMT expires: - '-1' pragma: @@ -4791,14 +4853,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -4809,13 +4871,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5203a1471"}}' + not found: livekvtestcertprg1203a1471"}}' headers: cache-control: - no-cache @@ -4824,7 +4886,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:53 GMT + - Fri, 06 Aug 2021 18:36:03 GMT expires: - '-1' pragma: @@ -4836,9 +4898,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4854,13 +4916,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5203a1471"}}' + not found: livekvtestcertprg1203a1471"}}' headers: cache-control: - no-cache @@ -4869,7 +4931,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:55 GMT + - Fri, 06 Aug 2021 18:36:05 GMT expires: - '-1' pragma: @@ -4881,9 +4943,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4899,21 +4961,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471","deletedDate":1616450014,"scheduledPurgeDate":1624226014,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471/ca2b4762d9c2496089c5e85063dea578","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5203a1471/ca2b4762d9c2496089c5e85063dea578","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5203a1471/ca2b4762d9c2496089c5e85063dea578","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449880,"updated":1616449880,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449880,"updated":1616449880}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:57 GMT + - Fri, 06 Aug 2021 18:36:07 GMT expires: - '-1' pragma: @@ -4925,14 +4988,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -4942,24 +5005,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471","deletedDate":1616450038,"scheduledPurgeDate":1624226038,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471/f6bf825985474f258da566b73cc91ff0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3203a1471/f6bf825985474f258da566b73cc91ff0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3203a1471/f6bf825985474f258da566b73cc91ff0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449879,"updated":1616449879,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449879,"updated":1616449879}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:58 GMT + - Fri, 06 Aug 2021 18:36:09 GMT expires: - '-1' pragma: @@ -4971,14 +5033,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -4989,13 +5051,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3203a1471"}}' + not found: livekvtestcertprg1203a1471"}}' headers: cache-control: - no-cache @@ -5004,7 +5066,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:53:58 GMT + - Fri, 06 Aug 2021 18:36:11 GMT expires: - '-1' pragma: @@ -5016,9 +5078,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5034,13 +5096,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3203a1471"}}' + not found: livekvtestcertprg1203a1471"}}' headers: cache-control: - no-cache @@ -5049,7 +5111,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:00 GMT + - Fri, 06 Aug 2021 18:36:13 GMT expires: - '-1' pragma: @@ -5061,9 +5123,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5079,13 +5141,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3203a1471"}}' + not found: livekvtestcertprg1203a1471"}}' headers: cache-control: - no-cache @@ -5094,7 +5156,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:02 GMT + - Fri, 06 Aug 2021 18:36:15 GMT expires: - '-1' pragma: @@ -5106,9 +5168,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5124,13 +5186,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3203a1471"}}' + not found: livekvtestcertprg1203a1471"}}' headers: cache-control: - no-cache @@ -5139,7 +5201,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:04 GMT + - Fri, 06 Aug 2021 18:36:17 GMT expires: - '-1' pragma: @@ -5151,9 +5213,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5169,21 +5231,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471","deletedDate":1616450038,"scheduledPurgeDate":1624226038,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471/f6bf825985474f258da566b73cc91ff0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3203a1471/f6bf825985474f258da566b73cc91ff0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3203a1471/f6bf825985474f258da566b73cc91ff0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449879,"updated":1616449879,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449879,"updated":1616449879}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471","deletedDate":1628274963,"scheduledPurgeDate":1636050963,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471/3d7a0ac87bb148558569d06cebda9b90","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1203a1471/3d7a0ac87bb148558569d06cebda9b90","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1203a1471/3d7a0ac87bb148558569d06cebda9b90","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274809,"updated":1628274809,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274809,"updated":1628274809}}}' headers: cache-control: - no-cache content-length: - - '2024' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:06 GMT + - Fri, 06 Aug 2021 18:36:20 GMT expires: - '-1' pragma: @@ -5195,9 +5258,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5215,21 +5278,22 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471","deletedDate":1616450047,"scheduledPurgeDate":1624226047,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471/0ff6dd1dbad74cd99d9b04d6c54ca2a2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1203a1471/0ff6dd1dbad74cd99d9b04d6c54ca2a2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1203a1471/0ff6dd1dbad74cd99d9b04d6c54ca2a2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449878,"updated":1616449878,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449878,"updated":1616449878}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471","deletedDate":1628274980,"scheduledPurgeDate":1636050980,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471/8e4a40332e654db3b893899a5140bd4e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2203a1471/8e4a40332e654db3b893899a5140bd4e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2203a1471/8e4a40332e654db3b893899a5140bd4e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274809,"updated":1628274809,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274809,"updated":1628274809}}}' headers: cache-control: - no-cache content-length: - - '2024' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:06 GMT + - Fri, 06 Aug 2021 18:36:20 GMT expires: - '-1' pragma: @@ -5241,9 +5305,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5259,13 +5323,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1203a1471"}}' + not found: livekvtestcertprg2203a1471"}}' headers: cache-control: - no-cache @@ -5274,7 +5338,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:06 GMT + - Fri, 06 Aug 2021 18:36:20 GMT expires: - '-1' pragma: @@ -5286,9 +5350,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5304,13 +5368,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1203a1471"}}' + not found: livekvtestcertprg2203a1471"}}' headers: cache-control: - no-cache @@ -5319,7 +5383,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:09 GMT + - Fri, 06 Aug 2021 18:36:22 GMT expires: - '-1' pragma: @@ -5331,9 +5395,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5349,13 +5413,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1203a1471"}}' + not found: livekvtestcertprg2203a1471"}}' headers: cache-control: - no-cache @@ -5364,7 +5428,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:11 GMT + - Fri, 06 Aug 2021 18:36:24 GMT expires: - '-1' pragma: @@ -5376,9 +5440,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5394,13 +5458,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1203a1471"}}' + not found: livekvtestcertprg2203a1471"}}' headers: cache-control: - no-cache @@ -5409,7 +5473,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:13 GMT + - Fri, 06 Aug 2021 18:36:26 GMT expires: - '-1' pragma: @@ -5421,9 +5485,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5439,13 +5503,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1203a1471"}}' + not found: livekvtestcertprg2203a1471"}}' headers: cache-control: - no-cache @@ -5454,7 +5518,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:16 GMT + - Fri, 06 Aug 2021 18:36:29 GMT expires: - '-1' pragma: @@ -5466,9 +5530,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5484,21 +5548,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471","deletedDate":1616450047,"scheduledPurgeDate":1624226047,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471/0ff6dd1dbad74cd99d9b04d6c54ca2a2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1203a1471/0ff6dd1dbad74cd99d9b04d6c54ca2a2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1203a1471/0ff6dd1dbad74cd99d9b04d6c54ca2a2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449878,"updated":1616449878,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449878,"updated":1616449878}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:18 GMT + - Fri, 06 Aug 2021 18:36:31 GMT expires: - '-1' pragma: @@ -5510,14 +5575,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -5527,24 +5592,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471","deletedDate":1616450058,"scheduledPurgeDate":1624226058,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449873,"updated":1616449873,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449873,"updated":1616449873}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:18 GMT + - Fri, 06 Aug 2021 18:36:33 GMT expires: - '-1' pragma: @@ -5556,14 +5620,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -5574,13 +5638,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0203a1471"}}' + not found: livekvtestcertprg2203a1471"}}' headers: cache-control: - no-cache @@ -5589,7 +5653,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:18 GMT + - Fri, 06 Aug 2021 18:36:35 GMT expires: - '-1' pragma: @@ -5601,9 +5665,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5619,13 +5683,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0203a1471"}}' + not found: livekvtestcertprg2203a1471"}}' headers: cache-control: - no-cache @@ -5634,7 +5698,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:21 GMT + - Fri, 06 Aug 2021 18:36:37 GMT expires: - '-1' pragma: @@ -5646,9 +5710,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5664,22 +5728,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0203a1471"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471","deletedDate":1628274980,"scheduledPurgeDate":1636050980,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471/8e4a40332e654db3b893899a5140bd4e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2203a1471/8e4a40332e654db3b893899a5140bd4e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2203a1471/8e4a40332e654db3b893899a5140bd4e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274809,"updated":1628274809,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274809,"updated":1628274809}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2457' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:23 GMT + - Fri, 06 Aug 2021 18:36:39 GMT expires: - '-1' pragma: @@ -5691,14 +5755,61 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471","deletedDate":1628274999,"scheduledPurgeDate":1636050999,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471/df8196faa8194f9289a1765a5727c720","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3203a1471/df8196faa8194f9289a1765a5727c720","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3203a1471/df8196faa8194f9289a1765a5727c720","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274810,"updated":1628274810,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274810,"updated":1628274810}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:36:39 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK - request: body: null headers: @@ -5709,13 +5820,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0203a1471"}}' + not found: livekvtestcertprg3203a1471"}}' headers: cache-control: - no-cache @@ -5724,7 +5835,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:25 GMT + - Fri, 06 Aug 2021 18:36:39 GMT expires: - '-1' pragma: @@ -5736,9 +5847,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5754,13 +5865,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0203a1471"}}' + not found: livekvtestcertprg3203a1471"}}' headers: cache-control: - no-cache @@ -5769,7 +5880,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:27 GMT + - Fri, 06 Aug 2021 18:36:41 GMT expires: - '-1' pragma: @@ -5781,9 +5892,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5799,21 +5910,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471","deletedDate":1616450058,"scheduledPurgeDate":1624226058,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449873,"updated":1616449873,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449873,"updated":1616449873}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203a1471"}}' headers: cache-control: - no-cache content-length: - - '2024' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:29 GMT + - Fri, 06 Aug 2021 18:36:43 GMT expires: - '-1' pragma: @@ -5825,14 +5937,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -5843,21 +5955,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471?api-version=7.1 response: body: - string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203a1471"}}' headers: cache-control: - no-cache content-length: - - '325' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:29 GMT + - Fri, 06 Aug 2021 18:36:45 GMT expires: - '-1' pragma: @@ -5869,14 +5982,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -5887,21 +6000,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471?api-version=7.1 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcert86bc153a","deletedDate":1616448460,"scheduledPurgeDate":1624224460,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert86bc153a","x5t":"se7NvIEKi8S7ofjDzgwQac1xJ4k","attributes":{"enabled":true,"nbf":1616447853,"exp":1647984453,"created":1616448453,"updated":1616448460,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76613b7","deletedDate":1616448501,"scheduledPurgeDate":1624224501,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76613b7","x5t":"c4HAnMZ8fqtsb0BFJX8iJTcCvfo","attributes":{"enabled":true,"nbf":1616447896,"exp":1647984496,"created":1616448496,"updated":1616448501,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76713b8","deletedDate":1616448532,"scheduledPurgeDate":1624224532,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76713b8","x5t":"Xg4iTQA_I614-V1OPIdMd4DgQpI","attributes":{"enabled":true,"nbf":1616447926,"exp":1647984526,"created":1616448526,"updated":1616448532,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471","deletedDate":1616449949,"scheduledPurgeDate":1624225949,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449877,"updated":1616449877,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471","deletedDate":1616450047,"scheduledPurgeDate":1624226047,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449878,"updated":1616449878,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471","deletedDate":1616449960,"scheduledPurgeDate":1624225960,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449878,"updated":1616449878,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471","deletedDate":1616450038,"scheduledPurgeDate":1624226038,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449879,"updated":1616449879,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471","deletedDate":1616449998,"scheduledPurgeDate":1624225998,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449880,"updated":1616449880,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471","deletedDate":1616450014,"scheduledPurgeDate":1624226014,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449880,"updated":1616449880,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471","deletedDate":1616449915,"scheduledPurgeDate":1624225915,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449881,"updated":1616449881,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471","deletedDate":1616450058,"scheduledPurgeDate":1624226058,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449873,"updated":1616449873,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471","deletedDate":1616449938,"scheduledPurgeDate":1624225938,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449874,"updated":1616449874,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471","deletedDate":1616449881,"scheduledPurgeDate":1624225881,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449874,"updated":1616449874,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETXpJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203a1471"}}' headers: cache-control: - no-cache content-length: - - '6189' + - '110' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:30 GMT + - Fri, 06 Aug 2021 18:36:47 GMT expires: - '-1' pragma: @@ -5913,14 +6027,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -5931,21 +6045,2852 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETXpJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471?api-version=7.1 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471","deletedDate":1616449927,"scheduledPurgeDate":1624225927,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449875,"updated":1616449875,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471","deletedDate":1616449987,"scheduledPurgeDate":1624225987,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449875,"updated":1616449875,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471","deletedDate":1616449902,"scheduledPurgeDate":1624225902,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449876,"updated":1616449876,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471","deletedDate":1616449974,"scheduledPurgeDate":1624225974,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449877,"updated":1616449877,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSVlRrdE9UMWRPU1ZOVFZVVlNRMFZTVkRVeU16Y3hSRGd6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:36:49 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:36:51 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:36:54 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471","deletedDate":1628274999,"scheduledPurgeDate":1636050999,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471/df8196faa8194f9289a1765a5727c720","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3203a1471/df8196faa8194f9289a1765a5727c720","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3203a1471/df8196faa8194f9289a1765a5727c720","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274810,"updated":1628274810,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274810,"updated":1628274810}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:36:56 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471","deletedDate":1628275016,"scheduledPurgeDate":1636051016,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471/4b413f2d70f94e3c96ac27eed2ca3906","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4203a1471/4b413f2d70f94e3c96ac27eed2ca3906","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4203a1471/4b413f2d70f94e3c96ac27eed2ca3906","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274810,"updated":1628274810,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274810,"updated":1628274810}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:36:56 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:36:56 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:36:58 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:02 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:04 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:06 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:08 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:10 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471","deletedDate":1628275016,"scheduledPurgeDate":1636051016,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471/4b413f2d70f94e3c96ac27eed2ca3906","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4203a1471/4b413f2d70f94e3c96ac27eed2ca3906","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4203a1471/4b413f2d70f94e3c96ac27eed2ca3906","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274810,"updated":1628274810,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274810,"updated":1628274810}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471","deletedDate":1628275033,"scheduledPurgeDate":1636051033,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471/5a748f3519414e3586d898651fd3bed5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5203a1471/5a748f3519414e3586d898651fd3bed5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5203a1471/5a748f3519414e3586d898651fd3bed5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274810,"updated":1628274810,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274810,"updated":1628274810}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:14 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:17 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:18 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:22 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:25 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471","deletedDate":1628275033,"scheduledPurgeDate":1636051033,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471/5a748f3519414e3586d898651fd3bed5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5203a1471/5a748f3519414e3586d898651fd3bed5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5203a1471/5a748f3519414e3586d898651fd3bed5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274810,"updated":1628274810,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274810,"updated":1628274810}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:28 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471","deletedDate":1628275048,"scheduledPurgeDate":1636051048,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471/6ad10dbb273d437fb1848786dfee24e4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6203a1471/6ad10dbb273d437fb1848786dfee24e4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6203a1471/6ad10dbb273d437fb1848786dfee24e4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274811,"updated":1628274811,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274811,"updated":1628274811}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:28 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:28 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:30 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:32 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:34 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:36 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:38 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:40 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:42 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:43 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:46 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203a1471"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:48 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471","deletedDate":1628275048,"scheduledPurgeDate":1636051048,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471/6ad10dbb273d437fb1848786dfee24e4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6203a1471/6ad10dbb273d437fb1848786dfee24e4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6203a1471/6ad10dbb273d437fb1848786dfee24e4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274811,"updated":1628274811,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274811,"updated":1628274811}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:50 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: + - no-cache + content-length: + - '323' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:50 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: + - no-cache + content-length: + - '323' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:50 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1628271087,"scheduledPurgeDate":1636047087,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"RC8tFJZPwOeZWUeGE9sGSFTbczM","attributes":{"enabled":true,"nbf":1628270484,"exp":1659807084,"created":1628271084,"updated":1628271087,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471","deletedDate":1628274945,"scheduledPurgeDate":1636050945,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274808,"updated":1628274808,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471","deletedDate":1628274963,"scheduledPurgeDate":1636050963,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274809,"updated":1628274809,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471","deletedDate":1628274980,"scheduledPurgeDate":1636050980,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274809,"updated":1628274809,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471","deletedDate":1628274999,"scheduledPurgeDate":1636050999,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274810,"updated":1628274810,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471","deletedDate":1628275016,"scheduledPurgeDate":1636051016,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274810,"updated":1628274810,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471","deletedDate":1628275033,"scheduledPurgeDate":1636051033,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274810,"updated":1628274810,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471","deletedDate":1628275048,"scheduledPurgeDate":1636051048,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274811,"updated":1628274811,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471","deletedDate":1628274811,"scheduledPurgeDate":1636050811,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274805,"updated":1628274805,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471","deletedDate":1628274826,"scheduledPurgeDate":1636050826,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVRJd00wRXhORGN4TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: + - no-cache + content-length: + - '4762' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:51 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVRJd00wRXhORGN4TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471","deletedDate":1628274859,"scheduledPurgeDate":1636050859,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471","deletedDate":1628274878,"scheduledPurgeDate":1636050878,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471","deletedDate":1628274893,"scheduledPurgeDate":1636050893,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471","deletedDate":1628274909,"scheduledPurgeDate":1636050909,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETlRJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: + - no-cache + content-length: + - '2091' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:51 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETlRJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471","deletedDate":1628274928,"scheduledPurgeDate":1636050928,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274808,"updated":1628274808,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRoRk1FWXlNelEwTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: + - no-cache + content-length: + - '816' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:51 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRoRk1FWXlNelEwTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[],"nextLink":null}' + headers: + cache-control: + - no-cache + content-length: + - '28' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:51 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471/recover?api-version=7.1 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274805,"updated":1628274805,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274805,"updated":1628274805}}}' + headers: + cache-control: + - no-cache + content-length: + - '2303' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:51 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:51 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:53 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:55 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:37:58 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:38:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:38:02 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:38:04 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:38:06 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:38:08 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:38:10 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:38:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:38:14 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:38:16 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:38:18 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274805,"updated":1628274805,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274805,"updated":1628274805}}}' + headers: + cache-control: + - no-cache + content-length: + - '2303' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:38:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471/recover?api-version=7.1 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274806,"updated":1628274806}}}' + headers: + cache-control: + - no-cache + content-length: + - '2303' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:38:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:38:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:38:22 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:38:25 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '2125' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:30 GMT + - Fri, 06 Aug 2021 18:38:27 GMT expires: - '-1' pragma: @@ -5957,14 +8902,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -5975,21 +8920,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSVlRrdE9UMWRPU1ZOVFZVVlNRMFZTVkRVeU16Y3hSRGd6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/?api-version=7.1 response: body: - string: '{"value":[],"nextLink":null}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '28' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:30 GMT + - Fri, 06 Aug 2021 18:38:29 GMT expires: - '-1' pragma: @@ -6001,14 +8949,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6018,24 +8966,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471/recover?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449874,"updated":1616449874,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449874,"updated":1616449874}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1868' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:30 GMT + - Fri, 06 Aug 2021 18:38:31 GMT expires: - '-1' pragma: @@ -6047,14 +8996,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6065,13 +9014,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec1203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6082,7 +9031,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:30 GMT + - Fri, 06 Aug 2021 18:38:33 GMT expires: - '-1' pragma: @@ -6094,9 +9043,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6112,13 +9061,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec1203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6129,7 +9078,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:34 GMT + - Fri, 06 Aug 2021 18:38:35 GMT expires: - '-1' pragma: @@ -6141,9 +9090,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6159,24 +9108,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2203a1471 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274806,"updated":1628274806}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:36 GMT + - Fri, 06 Aug 2021 18:38:37 GMT expires: - '-1' pragma: @@ -6188,14 +9135,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -6205,25 +9152,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471/recover?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2203a1471 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274806,"updated":1628274806}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:38 GMT + - Fri, 06 Aug 2021 18:38:37 GMT expires: - '-1' pragma: @@ -6235,14 +9182,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -6253,7 +9200,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 response: @@ -6270,7 +9217,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:40 GMT + - Fri, 06 Aug 2021 18:38:37 GMT expires: - '-1' pragma: @@ -6282,9 +9229,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6300,7 +9247,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 response: @@ -6317,7 +9264,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:42 GMT + - Fri, 06 Aug 2021 18:38:40 GMT expires: - '-1' pragma: @@ -6329,9 +9276,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6347,7 +9294,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 response: @@ -6364,7 +9311,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:44 GMT + - Fri, 06 Aug 2021 18:38:41 GMT expires: - '-1' pragma: @@ -6376,9 +9323,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6394,7 +9341,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 response: @@ -6411,7 +9358,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:46 GMT + - Fri, 06 Aug 2021 18:38:43 GMT expires: - '-1' pragma: @@ -6423,9 +9370,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6441,7 +9388,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 response: @@ -6458,7 +9405,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:48 GMT + - Fri, 06 Aug 2021 18:38:46 GMT expires: - '-1' pragma: @@ -6470,9 +9417,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6488,7 +9435,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 response: @@ -6505,7 +9452,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:50 GMT + - Fri, 06 Aug 2021 18:38:47 GMT expires: - '-1' pragma: @@ -6517,9 +9464,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6535,7 +9482,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 response: @@ -6552,7 +9499,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:52 GMT + - Fri, 06 Aug 2021 18:38:50 GMT expires: - '-1' pragma: @@ -6564,9 +9511,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6582,21 +9529,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449874,"updated":1616449874,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449874,"updated":1616449874}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1868' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:54 GMT + - Fri, 06 Aug 2021 18:38:52 GMT expires: - '-1' pragma: @@ -6608,14 +9558,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6625,24 +9575,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471/recover?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449876,"updated":1616449876,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449876,"updated":1616449876}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1868' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:55 GMT + - Fri, 06 Aug 2021 18:38:53 GMT expires: - '-1' pragma: @@ -6654,14 +9605,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6672,13 +9623,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec2203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6689,7 +9640,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:55 GMT + - Fri, 06 Aug 2021 18:38:57 GMT expires: - '-1' pragma: @@ -6701,9 +9652,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6719,13 +9670,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec2203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6736,7 +9687,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:54:58 GMT + - Fri, 06 Aug 2021 18:38:58 GMT expires: - '-1' pragma: @@ -6748,9 +9699,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6766,13 +9717,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec2203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6783,7 +9734,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:00 GMT + - Fri, 06 Aug 2021 18:39:01 GMT expires: - '-1' pragma: @@ -6795,9 +9746,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6813,24 +9764,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5203a1471 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274806,"updated":1628274806}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:02 GMT + - Fri, 06 Aug 2021 18:39:03 GMT expires: - '-1' pragma: @@ -6842,14 +9791,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -6859,25 +9808,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471/recover?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5203a1471 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:04 GMT + - Fri, 06 Aug 2021 18:39:03 GMT expires: - '-1' pragma: @@ -6889,14 +9838,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -6907,13 +9856,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec3203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6924,7 +9873,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:06 GMT + - Fri, 06 Aug 2021 18:39:03 GMT expires: - '-1' pragma: @@ -6936,9 +9885,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6954,21 +9903,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449876,"updated":1616449876,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449876,"updated":1616449876}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1868' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:08 GMT + - Fri, 06 Aug 2021 18:39:05 GMT expires: - '-1' pragma: @@ -6980,14 +9932,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6997,24 +9949,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471/recover?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449875,"updated":1616449875,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449875,"updated":1616449875}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1868' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:08 GMT + - Fri, 06 Aug 2021 18:39:07 GMT expires: - '-1' pragma: @@ -7026,14 +9979,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -7044,7 +9997,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/?api-version=7.1 response: @@ -7061,7 +10014,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:08 GMT + - Fri, 06 Aug 2021 18:39:09 GMT expires: - '-1' pragma: @@ -7073,9 +10026,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7091,7 +10044,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/?api-version=7.1 response: @@ -7108,7 +10061,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:10 GMT + - Fri, 06 Aug 2021 18:39:11 GMT expires: - '-1' pragma: @@ -7120,9 +10073,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7138,7 +10091,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/?api-version=7.1 response: @@ -7155,7 +10108,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:13 GMT + - Fri, 06 Aug 2021 18:39:13 GMT expires: - '-1' pragma: @@ -7167,9 +10120,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7185,7 +10138,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/?api-version=7.1 response: @@ -7202,7 +10155,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:15 GMT + - Fri, 06 Aug 2021 18:39:15 GMT expires: - '-1' pragma: @@ -7214,9 +10167,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7232,7 +10185,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/?api-version=7.1 response: @@ -7249,7 +10202,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:18 GMT + - Fri, 06 Aug 2021 18:39:17 GMT expires: - '-1' pragma: @@ -7261,9 +10214,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7279,21 +10232,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449875,"updated":1616449875,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449875,"updated":1616449875}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1868' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:19 GMT + - Fri, 06 Aug 2021 18:39:20 GMT expires: - '-1' pragma: @@ -7305,14 +10261,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -7322,24 +10278,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471/recover?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449874,"updated":1616449874,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449874,"updated":1616449874}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1868' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:20 GMT + - Fri, 06 Aug 2021 18:39:22 GMT expires: - '-1' pragma: @@ -7351,14 +10308,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -7369,13 +10326,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec3203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7386,7 +10343,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:20 GMT + - Fri, 06 Aug 2021 18:39:24 GMT expires: - '-1' pragma: @@ -7398,9 +10355,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7416,13 +10373,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec3203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7433,7 +10390,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:22 GMT + - Fri, 06 Aug 2021 18:39:25 GMT expires: - '-1' pragma: @@ -7445,9 +10402,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7463,13 +10420,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec3203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7480,7 +10437,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:24 GMT + - Fri, 06 Aug 2021 18:39:28 GMT expires: - '-1' pragma: @@ -7492,9 +10449,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7510,13 +10467,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec3203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7527,7 +10484,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:27 GMT + - Fri, 06 Aug 2021 18:39:30 GMT expires: - '-1' pragma: @@ -7539,9 +10496,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7557,13 +10514,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec3203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7574,7 +10531,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:29 GMT + - Fri, 06 Aug 2021 18:39:32 GMT expires: - '-1' pragma: @@ -7586,9 +10543,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7604,21 +10561,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449874,"updated":1616449874,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449874,"updated":1616449874}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:31 GMT + - Fri, 06 Aug 2021 18:39:34 GMT expires: - '-1' pragma: @@ -7630,9 +10588,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7650,21 +10608,22 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471/recover?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471/recover?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449877,"updated":1616449877,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449877,"updated":1616449877}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:31 GMT + - Fri, 06 Aug 2021 18:39:34 GMT expires: - '-1' pragma: @@ -7676,9 +10635,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7694,13 +10653,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7711,7 +10670,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:31 GMT + - Fri, 06 Aug 2021 18:39:34 GMT expires: - '-1' pragma: @@ -7723,9 +10682,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7741,13 +10700,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7758,7 +10717,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:33 GMT + - Fri, 06 Aug 2021 18:39:36 GMT expires: - '-1' pragma: @@ -7770,9 +10729,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7788,13 +10747,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7805,7 +10764,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:36 GMT + - Fri, 06 Aug 2021 18:39:38 GMT expires: - '-1' pragma: @@ -7817,9 +10776,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7835,13 +10794,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7852,7 +10811,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:38 GMT + - Fri, 06 Aug 2021 18:39:40 GMT expires: - '-1' pragma: @@ -7864,9 +10823,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7882,13 +10841,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7899,7 +10858,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:40 GMT + - Fri, 06 Aug 2021 18:39:42 GMT expires: - '-1' pragma: @@ -7911,9 +10870,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7929,13 +10888,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7946,7 +10905,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:42 GMT + - Fri, 06 Aug 2021 18:39:44 GMT expires: - '-1' pragma: @@ -7958,9 +10917,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7976,13 +10935,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7993,7 +10952,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:45 GMT + - Fri, 06 Aug 2021 18:39:47 GMT expires: - '-1' pragma: @@ -8005,9 +10964,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8023,21 +10982,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449877,"updated":1616449877,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449877,"updated":1616449877}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1868' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:47 GMT + - Fri, 06 Aug 2021 18:39:49 GMT expires: - '-1' pragma: @@ -8049,14 +11011,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -8066,24 +11028,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471/recover?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449875,"updated":1616449875,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449875,"updated":1616449875}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1868' + - '338' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:47 GMT + - Fri, 06 Aug 2021 18:39:51 GMT expires: - '-1' pragma: @@ -8095,14 +11058,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -8113,24 +11076,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:47 GMT + - Fri, 06 Aug 2021 18:39:53 GMT expires: - '-1' pragma: @@ -8142,14 +11103,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -8159,25 +11120,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471/recover?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:49 GMT + - Fri, 06 Aug 2021 18:39:53 GMT expires: - '-1' pragma: @@ -8189,14 +11150,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -8207,13 +11168,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec5203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8224,7 +11185,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:51 GMT + - Fri, 06 Aug 2021 18:39:53 GMT expires: - '-1' pragma: @@ -8236,9 +11197,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8254,13 +11215,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec5203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8271,7 +11232,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:53 GMT + - Fri, 06 Aug 2021 18:39:55 GMT expires: - '-1' pragma: @@ -8283,9 +11244,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8301,13 +11262,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec5203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8318,7 +11279,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:55 GMT + - Fri, 06 Aug 2021 18:39:57 GMT expires: - '-1' pragma: @@ -8330,9 +11291,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8348,13 +11309,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec5203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8365,7 +11326,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:55:58 GMT + - Fri, 06 Aug 2021 18:39:59 GMT expires: - '-1' pragma: @@ -8377,9 +11338,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8395,13 +11356,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec5203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8412,7 +11373,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:01 GMT + - Fri, 06 Aug 2021 18:40:01 GMT expires: - '-1' pragma: @@ -8424,9 +11385,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8442,13 +11403,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec5203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8459,7 +11420,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:03 GMT + - Fri, 06 Aug 2021 18:40:03 GMT expires: - '-1' pragma: @@ -8471,9 +11432,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8489,13 +11450,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec5203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8506,7 +11467,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:05 GMT + - Fri, 06 Aug 2021 18:40:05 GMT expires: - '-1' pragma: @@ -8518,9 +11479,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8536,13 +11497,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec5203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8553,7 +11514,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:07 GMT + - Fri, 06 Aug 2021 18:40:08 GMT expires: - '-1' pragma: @@ -8565,9 +11526,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8583,13 +11544,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec5203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8600,7 +11561,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:09 GMT + - Fri, 06 Aug 2021 18:40:10 GMT expires: - '-1' pragma: @@ -8612,9 +11573,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8630,13 +11591,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec5203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8647,7 +11608,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:11 GMT + - Fri, 06 Aug 2021 18:40:12 GMT expires: - '-1' pragma: @@ -8659,9 +11620,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8677,13 +11638,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec5203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8694,7 +11655,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:13 GMT + - Fri, 06 Aug 2021 18:40:14 GMT expires: - '-1' pragma: @@ -8706,9 +11667,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8724,21 +11685,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449875,"updated":1616449875,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449875,"updated":1616449875}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:15 GMT + - Fri, 06 Aug 2021 18:40:16 GMT expires: - '-1' pragma: @@ -8750,9 +11712,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8770,21 +11732,22 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471/recover?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471/recover?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449873,"updated":1616449873,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449873,"updated":1616449873}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274808,"updated":1628274808,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274808,"updated":1628274808}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:15 GMT + - Fri, 06 Aug 2021 18:40:16 GMT expires: - '-1' pragma: @@ -8796,9 +11759,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8814,13 +11777,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8831,7 +11794,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:15 GMT + - Fri, 06 Aug 2021 18:40:16 GMT expires: - '-1' pragma: @@ -8843,9 +11806,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8861,13 +11824,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8878,7 +11841,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:17 GMT + - Fri, 06 Aug 2021 18:40:19 GMT expires: - '-1' pragma: @@ -8890,9 +11853,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8908,13 +11871,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8925,7 +11888,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:20 GMT + - Fri, 06 Aug 2021 18:40:20 GMT expires: - '-1' pragma: @@ -8937,9 +11900,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8955,13 +11918,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -8972,7 +11935,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:22 GMT + - Fri, 06 Aug 2021 18:40:22 GMT expires: - '-1' pragma: @@ -8984,9 +11947,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9002,13 +11965,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9019,7 +11982,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:24 GMT + - Fri, 06 Aug 2021 18:40:24 GMT expires: - '-1' pragma: @@ -9031,9 +11994,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9049,13 +12012,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9066,7 +12029,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:26 GMT + - Fri, 06 Aug 2021 18:40:26 GMT expires: - '-1' pragma: @@ -9078,9 +12041,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9096,13 +12059,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9113,7 +12076,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:28 GMT + - Fri, 06 Aug 2021 18:40:28 GMT expires: - '-1' pragma: @@ -9125,9 +12088,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9143,13 +12106,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9160,7 +12123,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:31 GMT + - Fri, 06 Aug 2021 18:40:31 GMT expires: - '-1' pragma: @@ -9172,9 +12135,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9190,13 +12153,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9207,7 +12170,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:33 GMT + - Fri, 06 Aug 2021 18:40:33 GMT expires: - '-1' pragma: @@ -9219,9 +12182,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9237,13 +12200,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9254,7 +12217,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:36 GMT + - Fri, 06 Aug 2021 18:40:35 GMT expires: - '-1' pragma: @@ -9266,9 +12229,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9284,13 +12247,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you + (name/id) livekvtestcertrec6203a1471 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -9301,7 +12264,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:38 GMT + - Fri, 06 Aug 2021 18:40:37 GMT expires: - '-1' pragma: @@ -9313,9 +12276,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9331,24 +12294,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0203a1471 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274808,"updated":1628274808,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274808,"updated":1628274808}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:40 GMT + - Fri, 06 Aug 2021 18:40:38 GMT expires: - '-1' pragma: @@ -9360,14 +12321,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -9377,22 +12338,20 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449873,"updated":1616449873,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449873,"updated":1616449873}}}' + string: '' headers: cache-control: - no-cache - content-length: - - '1868' - content-type: - - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:42 GMT + - Fri, 06 Aug 2021 18:40:39 GMT expires: - '-1' pragma: @@ -9404,14 +12363,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 204 + message: No Content - request: body: null headers: @@ -9424,9 +12383,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471?api-version=7.1 response: body: string: '' @@ -9434,7 +12393,7 @@ interactions: cache-control: - no-cache date: - - Mon, 22 Mar 2021 21:56:43 GMT + - Fri, 06 Aug 2021 18:40:39 GMT expires: - '-1' pragma: @@ -9446,9 +12405,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9466,9 +12425,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 response: body: string: '' @@ -9476,7 +12435,7 @@ interactions: cache-control: - no-cache date: - - Mon, 22 Mar 2021 21:56:43 GMT + - Fri, 06 Aug 2021 18:40:39 GMT expires: - '-1' pragma: @@ -9488,9 +12447,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9508,9 +12467,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471?api-version=7.1 response: body: string: '' @@ -9518,7 +12477,7 @@ interactions: cache-control: - no-cache date: - - Mon, 22 Mar 2021 21:56:43 GMT + - Fri, 06 Aug 2021 18:40:39 GMT expires: - '-1' pragma: @@ -9530,9 +12489,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9550,7 +12509,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471?api-version=7.1 response: @@ -9560,7 +12519,7 @@ interactions: cache-control: - no-cache date: - - Mon, 22 Mar 2021 21:56:43 GMT + - Fri, 06 Aug 2021 18:40:39 GMT expires: - '-1' pragma: @@ -9572,9 +12531,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9592,7 +12551,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471?api-version=7.1 response: @@ -9602,7 +12561,7 @@ interactions: cache-control: - no-cache date: - - Mon, 22 Mar 2021 21:56:44 GMT + - Fri, 06 Aug 2021 18:40:39 GMT expires: - '-1' pragma: @@ -9614,9 +12573,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9634,9 +12593,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471?api-version=7.1 response: body: string: '' @@ -9644,7 +12603,7 @@ interactions: cache-control: - no-cache date: - - Mon, 22 Mar 2021 21:56:44 GMT + - Fri, 06 Aug 2021 18:40:39 GMT expires: - '-1' pragma: @@ -9656,9 +12615,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9673,20 +12632,22 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1 response: body: - string: '' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' headers: cache-control: - no-cache + content-length: + - '323' + content-type: + - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:56:44 GMT + - Fri, 06 Aug 2021 18:41:30 GMT expires: - '-1' pragma: @@ -9698,14 +12659,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 204 - message: No Content + code: 200 + message: OK - request: body: null headers: @@ -9716,21 +12677,109 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: + - no-cache + content-length: + - '323' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:41:30 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1628271087,"scheduledPurgeDate":1636047087,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"RC8tFJZPwOeZWUeGE9sGSFTbczM","attributes":{"enabled":true,"nbf":1628270484,"exp":1659807084,"created":1628271084,"updated":1628271087,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee","deletedDate":1628275238,"scheduledPurgeDate":1636051238,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275076,"updated":1628275076,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee","deletedDate":1628275080,"scheduledPurgeDate":1636051080,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275073,"updated":1628275073,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVRJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: + - no-cache + content-length: + - '1675' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:41:30 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVRJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: - string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee","deletedDate":1628275101,"scheduledPurgeDate":1636051101,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee","deletedDate":1628275119,"scheduledPurgeDate":1636051119,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee","deletedDate":1628275144,"scheduledPurgeDate":1636051144,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkVFM1FqVXhOa1ZFTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: - no-cache content-length: - - '325' + - '1650' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:57:35 GMT + - Fri, 06 Aug 2021 18:41:30 GMT expires: - '-1' pragma: @@ -9742,9 +12791,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9760,21 +12809,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkVFM1FqVXhOa1ZFTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcert86bc153a","deletedDate":1616448460,"scheduledPurgeDate":1624224460,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert86bc153a","x5t":"se7NvIEKi8S7ofjDzgwQac1xJ4k","attributes":{"enabled":true,"nbf":1616447853,"exp":1647984453,"created":1616448453,"updated":1616448460,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76613b7","deletedDate":1616448501,"scheduledPurgeDate":1624224501,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76613b7","x5t":"c4HAnMZ8fqtsb0BFJX8iJTcCvfo","attributes":{"enabled":true,"nbf":1616447896,"exp":1647984496,"created":1616448496,"updated":1616448501,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76713b8","deletedDate":1616448532,"scheduledPurgeDate":1624224532,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76713b8","x5t":"Xg4iTQA_I614-V1OPIdMd4DgQpI","attributes":{"enabled":true,"nbf":1616447926,"exp":1647984526,"created":1616448526,"updated":1616448532,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETlRJd00wRXhORGN4TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee","deletedDate":1628275175,"scheduledPurgeDate":1636051175,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275075,"updated":1628275075,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee","deletedDate":1628275192,"scheduledPurgeDate":1636051192,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275075,"updated":1628275075,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee","deletedDate":1628275215,"scheduledPurgeDate":1636051215,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275076,"updated":1628275076,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: - no-cache content-length: - - '1739' + - '1634' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:57:35 GMT + - Fri, 06 Aug 2021 18:41:31 GMT expires: - '-1' pragma: @@ -9786,9 +12835,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9804,9 +12853,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETlRJd00wRXhORGN4TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: string: '{"value":[],"nextLink":null}' @@ -9818,7 +12867,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:57:36 GMT + - Fri, 06 Aug 2021 18:41:31 GMT expires: - '-1' pragma: @@ -9830,9 +12879,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9848,21 +12897,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203a1471/710d3c7ebf4f45818b6afd549e095fcd","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449875,"updated":1616449875,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449875,"updated":1616449875}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203a1471/a523a51ed80e4ceca7562307b0d1c5e0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274805,"updated":1628274805,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274805,"updated":1628274805}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:57:36 GMT + - Fri, 06 Aug 2021 18:41:31 GMT expires: - '-1' pragma: @@ -9874,9 +12924,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9892,21 +12942,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203a1471/66b4650451c54b10b924a6f8e4e27e1c","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449874,"updated":1616449874,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449874,"updated":1616449874}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203a1471/87c9aecb5e58418c803c24941bc37952","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274806,"updated":1628274806}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:57:36 GMT + - Fri, 06 Aug 2021 18:41:31 GMT expires: - '-1' pragma: @@ -9918,9 +12969,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9936,21 +12987,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203a1471/a85ca61a5c2f4b098c7f830a9bf74e26","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449876,"updated":1616449876,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449876,"updated":1616449876}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203a1471/2f7ee625d00b4e17bcc4f03a3698d962","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274806,"updated":1628274806}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:57:36 GMT + - Fri, 06 Aug 2021 18:41:31 GMT expires: - '-1' pragma: @@ -9962,9 +13014,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -9980,21 +13032,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203a1471/bb9d89a40921400882f8e88ad2b78922","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449875,"updated":1616449875,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449875,"updated":1616449875}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203a1471/c93cc945b1aa46b8a1b8f7125e1e5f12","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:57:36 GMT + - Fri, 06 Aug 2021 18:41:31 GMT expires: - '-1' pragma: @@ -10006,9 +13059,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -10024,21 +13077,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203a1471/f815146b0dbb4a18ba85e80f0c815078","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449874,"updated":1616449874,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449874,"updated":1616449874}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203a1471/3b8a30581c83414e8b1fbada91c45477","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:57:36 GMT + - Fri, 06 Aug 2021 18:41:31 GMT expires: - '-1' pragma: @@ -10050,9 +13104,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -10068,21 +13122,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203a1471/64f05a5f87a746e1bba5d6db67ed523d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449877,"updated":1616449877,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449877,"updated":1616449877}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203a1471/5d55cde35db84b60972455d7d19c026c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274807,"updated":1628274807}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:57:37 GMT + - Fri, 06 Aug 2021 18:41:31 GMT expires: - '-1' pragma: @@ -10094,9 +13149,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -10112,21 +13167,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203a1471/f577b96c497944dfa61aa53d22496baa","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616449873,"updated":1616449873,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616449873,"updated":1616449873}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203a1471/960f62bdbc0f4b17910b6a2b20e23893","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274808,"updated":1628274808,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274808,"updated":1628274808}}}' headers: cache-control: - no-cache content-length: - - '1868' + - '2303' content-type: - application/json; charset=utf-8 date: - - Mon, 22 Mar 2021 21:57:37 GMT + - Fri, 06 Aug 2021 18:41:31 GMT expires: - '-1' pragma: @@ -10138,9 +13194,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: - - eastus2 + - westus2 x-ms-keyvault-service-version: - - 1.2.205.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_recover_and_purge_7_2.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_recover_and_purge_7_2.yaml index d7e3221fbb13..30d353b15b5f 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_recover_and_purge_7_2.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client.test_recover_and_purge_7_2.yaml @@ -13,22 +13,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/import?api-version=7.2 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '87' + - '97' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:35 GMT + - Fri, 06 Aug 2021 18:41:32 GMT expires: - '-1' pragma: @@ -45,18 +45,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 401 message: Unauthorized - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "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"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -65,25 +65,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433776,"updated":1620433776}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275293,"updated":1628275293,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271462,"updated":1628275293}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:36 GMT + - Fri, 06 Aug 2021 18:41:33 GMT expires: - '-1' pragma: @@ -97,18 +98,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -117,25 +118,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433776,"updated":1620433776}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275294,"updated":1628275294,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271463,"updated":1628275294}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:36 GMT + - Fri, 06 Aug 2021 18:41:35 GMT expires: - '-1' pragma: @@ -149,18 +151,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "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"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -169,25 +171,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433777,"updated":1620433777,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433777,"updated":1620433777}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275295,"updated":1628275295,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271464,"updated":1628275295}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:37 GMT + - Fri, 06 Aug 2021 18:41:35 GMT expires: - '-1' pragma: @@ -201,18 +204,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "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"}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -221,25 +224,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433777,"updated":1620433777,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433777,"updated":1620433777}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271464,"updated":1628275296}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:37 GMT + - Fri, 06 Aug 2021 18:41:36 GMT expires: - '-1' pragma: @@ -253,18 +257,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "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"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -273,25 +277,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433778,"updated":1620433778,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433778,"updated":1620433778}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271465,"updated":1628275296}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:38 GMT + - Fri, 06 Aug 2021 18:41:36 GMT expires: - '-1' pragma: @@ -305,18 +310,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -325,25 +330,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433778,"updated":1620433778,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433778,"updated":1620433778}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275297,"updated":1628275297,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271465,"updated":1628275297}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:38 GMT + - Fri, 06 Aug 2021 18:41:37 GMT expires: - '-1' pragma: @@ -357,18 +363,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ"}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -377,25 +383,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433779,"updated":1620433779,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433779,"updated":1620433779}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275297,"updated":1628275297,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271466,"updated":1628275297}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:39 GMT + - Fri, 06 Aug 2021 18:41:37 GMT expires: - '-1' pragma: @@ -409,18 +416,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -429,25 +436,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472/58a2265f63a349d5a36a4eab7486538d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0203b1472/58a2265f63a349d5a36a4eab7486538d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0203b1472/58a2265f63a349d5a36a4eab7486538d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433779,"updated":1620433779,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433779,"updated":1620433779}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472/0fb5515947904c3c8cb8bc53d595b8b0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0203b1472/0fb5515947904c3c8cb8bc53d595b8b0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0203b1472/0fb5515947904c3c8cb8bc53d595b8b0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275298,"updated":1628275298,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275298,"updated":1628275298}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:39 GMT + - Fri, 06 Aug 2021 18:41:39 GMT expires: - '-1' pragma: @@ -461,18 +469,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "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"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -481,25 +489,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472/7ffd98136c724af9a0c934e2c93329c9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1203b1472/7ffd98136c724af9a0c934e2c93329c9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1203b1472/7ffd98136c724af9a0c934e2c93329c9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433780,"updated":1620433780,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433780,"updated":1620433780}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472/cbb9a19a7682495d8dd916b9d5a8fe53","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1203b1472/cbb9a19a7682495d8dd916b9d5a8fe53","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1203b1472/cbb9a19a7682495d8dd916b9d5a8fe53","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275301,"updated":1628275301,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275301,"updated":1628275301}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:39 GMT + - Fri, 06 Aug 2021 18:41:41 GMT expires: - '-1' pragma: @@ -513,18 +522,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "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"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -533,25 +542,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472/44824def780844bf95e8f3a6e3fdb3b5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2203b1472/44824def780844bf95e8f3a6e3fdb3b5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2203b1472/44824def780844bf95e8f3a6e3fdb3b5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433780,"updated":1620433780,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433780,"updated":1620433780}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472/5160d6866d254dcaaf65a14a5f63067e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2203b1472/5160d6866d254dcaaf65a14a5f63067e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2203b1472/5160d6866d254dcaaf65a14a5f63067e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275301,"updated":1628275301,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275301,"updated":1628275301}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:40 GMT + - Fri, 06 Aug 2021 18:41:41 GMT expires: - '-1' pragma: @@ -565,18 +575,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "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"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -585,25 +595,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472/05ac58210dd94318930ab49e9b3ceb66","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3203b1472/05ac58210dd94318930ab49e9b3ceb66","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3203b1472/05ac58210dd94318930ab49e9b3ceb66","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433780,"updated":1620433780,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433780,"updated":1620433780}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472/01ce7c684c1d4e4f9f1669b5e60b7816","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3203b1472/01ce7c684c1d4e4f9f1669b5e60b7816","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3203b1472/01ce7c684c1d4e4f9f1669b5e60b7816","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275302,"updated":1628275302,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275302,"updated":1628275302}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:40 GMT + - Fri, 06 Aug 2021 18:41:42 GMT expires: - '-1' pragma: @@ -617,18 +628,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "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"}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -637,25 +648,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472/d2ed029783674a3191354849b80bb1fd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4203b1472/d2ed029783674a3191354849b80bb1fd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4203b1472/d2ed029783674a3191354849b80bb1fd","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433781,"updated":1620433781,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433781,"updated":1620433781}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472/fc4ab420db37428785605da2907534d3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4203b1472/fc4ab420db37428785605da2907534d3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4203b1472/fc4ab420db37428785605da2907534d3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275302,"updated":1628275302,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275302,"updated":1628275302}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:41 GMT + - Fri, 06 Aug 2021 18:41:42 GMT expires: - '-1' pragma: @@ -669,18 +681,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "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"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -689,25 +701,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472/df68efb9ea744f2e8c54d1d0e7853b54","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5203b1472/df68efb9ea744f2e8c54d1d0e7853b54","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5203b1472/df68efb9ea744f2e8c54d1d0e7853b54","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433781,"updated":1620433781,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433781,"updated":1620433781}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472/0e8ad17582d04a26a1a2c29c6496e69e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5203b1472/0e8ad17582d04a26a1a2c29c6496e69e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5203b1472/0e8ad17582d04a26a1a2c29c6496e69e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275303,"updated":1628275303,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275303,"updated":1628275303}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:41 GMT + - Fri, 06 Aug 2021 18:41:43 GMT expires: - '-1' pragma: @@ -721,18 +734,18 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 200 message: OK - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "x509_props": - {"sans": {}, "subject": "CN=DefaultPolicy", "validity_months": 12, "key_usage": - ["digitalSignature", "keyEncipherment"]}, "key_props": {"exportable": true, - "reuse_key": false, "kty": "RSA", "key_size": 2048}, "issuer": {"name": "Self"}}, - "pwd": "123", "value": "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"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json @@ -741,25 +754,26 @@ interactions: Connection: - keep-alive Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472/51944a6860c8418782b94884197c6b48","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6203b1472/51944a6860c8418782b94884197c6b48","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6203b1472/51944a6860c8418782b94884197c6b48","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433782,"updated":1620433782,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433782,"updated":1620433782}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472/23ee1b8a445a4c79a72d7d434ad49359","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6203b1472/23ee1b8a445a4c79a72d7d434ad49359","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6203b1472/23ee1b8a445a4c79a72d7d434ad49359","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275303,"updated":1628275303,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275303,"updated":1628275303}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:41 GMT + - Fri, 06 Aug 2021 18:41:43 GMT expires: - '-1' pragma: @@ -773,7 +787,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -791,21 +805,22 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472","deletedDate":1620433782,"scheduledPurgeDate":1628209782,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472/05ac58210dd94318930ab49e9b3ceb66","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3203b1472/05ac58210dd94318930ab49e9b3ceb66","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3203b1472/05ac58210dd94318930ab49e9b3ceb66","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433780,"updated":1620433780,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433780,"updated":1620433780}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472","deletedDate":1628275304,"scheduledPurgeDate":1636051304,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275293,"updated":1628275293,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271462,"updated":1628275293}}}' headers: cache-control: - no-cache content-length: - - '2014' + - '2457' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:42 GMT + - Fri, 06 Aug 2021 18:41:44 GMT expires: - '-1' pragma: @@ -819,7 +834,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -835,13 +850,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -850,7 +865,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:42 GMT + - Fri, 06 Aug 2021 18:41:44 GMT expires: - '-1' pragma: @@ -864,7 +879,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -880,13 +895,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -895,7 +910,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:44 GMT + - Fri, 06 Aug 2021 18:41:46 GMT expires: - '-1' pragma: @@ -909,7 +924,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -925,13 +940,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -940,7 +955,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:46 GMT + - Fri, 06 Aug 2021 18:41:47 GMT expires: - '-1' pragma: @@ -954,7 +969,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -970,13 +985,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -985,7 +1000,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:48 GMT + - Fri, 06 Aug 2021 18:41:49 GMT expires: - '-1' pragma: @@ -999,7 +1014,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1015,13 +1030,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -1030,7 +1045,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:50 GMT + - Fri, 06 Aug 2021 18:41:51 GMT expires: - '-1' pragma: @@ -1044,7 +1059,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1060,13 +1075,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -1075,7 +1090,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:52 GMT + - Fri, 06 Aug 2021 18:41:53 GMT expires: - '-1' pragma: @@ -1089,7 +1104,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1105,13 +1120,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -1120,7 +1135,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:54 GMT + - Fri, 06 Aug 2021 18:41:56 GMT expires: - '-1' pragma: @@ -1134,7 +1149,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1150,13 +1165,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -1165,7 +1180,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:56 GMT + - Fri, 06 Aug 2021 18:41:58 GMT expires: - '-1' pragma: @@ -1179,7 +1194,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1195,21 +1210,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472","deletedDate":1620433782,"scheduledPurgeDate":1628209782,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472/05ac58210dd94318930ab49e9b3ceb66","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3203b1472/05ac58210dd94318930ab49e9b3ceb66","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3203b1472/05ac58210dd94318930ab49e9b3ceb66","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433780,"updated":1620433780,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433780,"updated":1620433780}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:58 GMT + - Fri, 06 Aug 2021 18:42:00 GMT expires: - '-1' pragma: @@ -1223,12 +1239,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1238,24 +1254,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472","deletedDate":1620433799,"scheduledPurgeDate":1628209799,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433778,"updated":1620433778,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433778,"updated":1620433778}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:58 GMT + - Fri, 06 Aug 2021 18:42:02 GMT expires: - '-1' pragma: @@ -1269,12 +1284,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1285,13 +1300,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -1300,7 +1315,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:29:58 GMT + - Fri, 06 Aug 2021 18:42:04 GMT expires: - '-1' pragma: @@ -1314,7 +1329,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1330,13 +1345,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -1345,7 +1360,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:01 GMT + - Fri, 06 Aug 2021 18:42:06 GMT expires: - '-1' pragma: @@ -1359,7 +1374,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1375,13 +1390,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -1390,7 +1405,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:03 GMT + - Fri, 06 Aug 2021 18:42:09 GMT expires: - '-1' pragma: @@ -1404,7 +1419,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1420,13 +1435,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -1435,7 +1450,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:05 GMT + - Fri, 06 Aug 2021 18:42:10 GMT expires: - '-1' pragma: @@ -1449,7 +1464,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1465,13 +1480,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -1480,7 +1495,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:07 GMT + - Fri, 06 Aug 2021 18:42:12 GMT expires: - '-1' pragma: @@ -1494,7 +1509,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1510,13 +1525,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -1525,7 +1540,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:09 GMT + - Fri, 06 Aug 2021 18:42:14 GMT expires: - '-1' pragma: @@ -1539,7 +1554,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1555,21 +1570,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472","deletedDate":1620433799,"scheduledPurgeDate":1628209799,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433778,"updated":1620433778,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433778,"updated":1620433778}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:12 GMT + - Fri, 06 Aug 2021 18:42:16 GMT expires: - '-1' pragma: @@ -1583,12 +1599,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1598,24 +1614,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472","deletedDate":1620433812,"scheduledPurgeDate":1628209812,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433779,"updated":1620433779,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433779,"updated":1620433779}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:12 GMT + - Fri, 06 Aug 2021 18:42:18 GMT expires: - '-1' pragma: @@ -1629,12 +1644,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1645,13 +1660,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -1660,7 +1675,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:12 GMT + - Fri, 06 Aug 2021 18:42:20 GMT expires: - '-1' pragma: @@ -1674,7 +1689,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1690,13 +1705,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -1705,7 +1720,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:14 GMT + - Fri, 06 Aug 2021 18:42:22 GMT expires: - '-1' pragma: @@ -1719,7 +1734,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1735,13 +1750,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -1750,7 +1765,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:16 GMT + - Fri, 06 Aug 2021 18:42:25 GMT expires: - '-1' pragma: @@ -1764,7 +1779,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1780,13 +1795,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -1795,7 +1810,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:18 GMT + - Fri, 06 Aug 2021 18:42:27 GMT expires: - '-1' pragma: @@ -1809,7 +1824,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1825,21 +1840,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472","deletedDate":1620433812,"scheduledPurgeDate":1628209812,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433779,"updated":1620433779,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433779,"updated":1620433779}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:20 GMT + - Fri, 06 Aug 2021 18:42:29 GMT expires: - '-1' pragma: @@ -1853,12 +1869,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1868,24 +1884,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472","deletedDate":1620433820,"scheduledPurgeDate":1628209820,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433777,"updated":1620433777,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433777,"updated":1620433777}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:20 GMT + - Fri, 06 Aug 2021 18:42:32 GMT expires: - '-1' pragma: @@ -1899,12 +1914,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -1915,13 +1930,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -1930,7 +1945,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:20 GMT + - Fri, 06 Aug 2021 18:42:34 GMT expires: - '-1' pragma: @@ -1944,7 +1959,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -1960,13 +1975,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -1975,7 +1990,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:22 GMT + - Fri, 06 Aug 2021 18:42:35 GMT expires: - '-1' pragma: @@ -1989,7 +2004,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2005,13 +2020,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -2020,7 +2035,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:24 GMT + - Fri, 06 Aug 2021 18:42:37 GMT expires: - '-1' pragma: @@ -2034,7 +2049,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2050,13 +2065,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -2065,7 +2080,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:27 GMT + - Fri, 06 Aug 2021 18:42:39 GMT expires: - '-1' pragma: @@ -2079,7 +2094,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2095,21 +2110,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472","deletedDate":1620433820,"scheduledPurgeDate":1628209820,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433777,"updated":1620433777,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433777,"updated":1620433777}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:29 GMT + - Fri, 06 Aug 2021 18:42:41 GMT expires: - '-1' pragma: @@ -2123,12 +2139,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2138,24 +2154,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472","deletedDate":1620433829,"scheduledPurgeDate":1628209829,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472/7ffd98136c724af9a0c934e2c93329c9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1203b1472/7ffd98136c724af9a0c934e2c93329c9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1203b1472/7ffd98136c724af9a0c934e2c93329c9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433780,"updated":1620433780,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433780,"updated":1620433780}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:29 GMT + - Fri, 06 Aug 2021 18:42:43 GMT expires: - '-1' pragma: @@ -2169,12 +2184,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2185,13 +2200,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -2200,7 +2215,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:29 GMT + - Fri, 06 Aug 2021 18:42:46 GMT expires: - '-1' pragma: @@ -2214,7 +2229,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2230,13 +2245,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -2245,7 +2260,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:31 GMT + - Fri, 06 Aug 2021 18:42:48 GMT expires: - '-1' pragma: @@ -2259,7 +2274,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2275,13 +2290,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -2290,7 +2305,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:33 GMT + - Fri, 06 Aug 2021 18:42:50 GMT expires: - '-1' pragma: @@ -2304,7 +2319,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2320,13 +2335,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1203b1472"}}' + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache @@ -2335,7 +2350,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:35 GMT + - Fri, 06 Aug 2021 18:42:52 GMT expires: - '-1' pragma: @@ -2349,7 +2364,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2365,21 +2380,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472","deletedDate":1620433829,"scheduledPurgeDate":1628209829,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472/7ffd98136c724af9a0c934e2c93329c9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1203b1472/7ffd98136c724af9a0c934e2c93329c9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1203b1472/7ffd98136c724af9a0c934e2c93329c9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433780,"updated":1620433780,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433780,"updated":1620433780}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec0203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:37 GMT + - Fri, 06 Aug 2021 18:42:54 GMT expires: - '-1' pragma: @@ -2393,12 +2409,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2408,24 +2424,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472","deletedDate":1620433837,"scheduledPurgeDate":1628209837,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472/58a2265f63a349d5a36a4eab7486538d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0203b1472/58a2265f63a349d5a36a4eab7486538d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0203b1472/58a2265f63a349d5a36a4eab7486538d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433779,"updated":1620433779,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433779,"updated":1620433779}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472","deletedDate":1628275304,"scheduledPurgeDate":1636051304,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275293,"updated":1628275293,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271462,"updated":1628275293}}}' headers: cache-control: - no-cache content-length: - - '2014' + - '2457' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:37 GMT + - Fri, 06 Aug 2021 18:42:56 GMT expires: - '-1' pragma: @@ -2439,7 +2454,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2454,23 +2469,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0203b1472"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472","deletedDate":1628275377,"scheduledPurgeDate":1636051377,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275294,"updated":1628275294,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271463,"updated":1628275294}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2457' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:37 GMT + - Fri, 06 Aug 2021 18:42:56 GMT expires: - '-1' pragma: @@ -2484,12 +2501,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -2500,13 +2517,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0203b1472"}}' + not found: livekvtestcertrec1203b1472"}}' headers: cache-control: - no-cache @@ -2515,7 +2532,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:39 GMT + - Fri, 06 Aug 2021 18:42:56 GMT expires: - '-1' pragma: @@ -2529,7 +2546,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2545,13 +2562,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0203b1472"}}' + not found: livekvtestcertrec1203b1472"}}' headers: cache-control: - no-cache @@ -2560,7 +2577,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:41 GMT + - Fri, 06 Aug 2021 18:42:59 GMT expires: - '-1' pragma: @@ -2574,7 +2591,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2590,13 +2607,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0203b1472"}}' + not found: livekvtestcertrec1203b1472"}}' headers: cache-control: - no-cache @@ -2605,7 +2622,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:43 GMT + - Fri, 06 Aug 2021 18:43:01 GMT expires: - '-1' pragma: @@ -2619,7 +2636,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2635,13 +2652,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0203b1472"}}' + not found: livekvtestcertrec1203b1472"}}' headers: cache-control: - no-cache @@ -2650,7 +2667,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:45 GMT + - Fri, 06 Aug 2021 18:43:03 GMT expires: - '-1' pragma: @@ -2664,7 +2681,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2680,21 +2697,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472","deletedDate":1620433837,"scheduledPurgeDate":1628209837,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472/58a2265f63a349d5a36a4eab7486538d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0203b1472/58a2265f63a349d5a36a4eab7486538d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0203b1472/58a2265f63a349d5a36a4eab7486538d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433779,"updated":1620433779,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433779,"updated":1620433779}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:47 GMT + - Fri, 06 Aug 2021 18:43:05 GMT expires: - '-1' pragma: @@ -2708,12 +2726,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2723,24 +2741,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472","deletedDate":1620433848,"scheduledPurgeDate":1628209848,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472/d2ed029783674a3191354849b80bb1fd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4203b1472/d2ed029783674a3191354849b80bb1fd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4203b1472/d2ed029783674a3191354849b80bb1fd","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433781,"updated":1620433781,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433781,"updated":1620433781}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:47 GMT + - Fri, 06 Aug 2021 18:43:07 GMT expires: - '-1' pragma: @@ -2754,12 +2771,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -2770,13 +2787,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4203b1472"}}' + not found: livekvtestcertrec1203b1472"}}' headers: cache-control: - no-cache @@ -2785,7 +2802,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:47 GMT + - Fri, 06 Aug 2021 18:43:09 GMT expires: - '-1' pragma: @@ -2799,7 +2816,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2815,13 +2832,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4203b1472"}}' + not found: livekvtestcertrec1203b1472"}}' headers: cache-control: - no-cache @@ -2830,7 +2847,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:49 GMT + - Fri, 06 Aug 2021 18:43:10 GMT expires: - '-1' pragma: @@ -2844,7 +2861,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2860,13 +2877,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4203b1472"}}' + not found: livekvtestcertrec1203b1472"}}' headers: cache-control: - no-cache @@ -2875,7 +2892,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:51 GMT + - Fri, 06 Aug 2021 18:43:13 GMT expires: - '-1' pragma: @@ -2889,7 +2906,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2905,13 +2922,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4203b1472"}}' + not found: livekvtestcertrec1203b1472"}}' headers: cache-control: - no-cache @@ -2920,7 +2937,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:53 GMT + - Fri, 06 Aug 2021 18:43:15 GMT expires: - '-1' pragma: @@ -2934,7 +2951,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2950,13 +2967,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4203b1472"}}' + not found: livekvtestcertrec1203b1472"}}' headers: cache-control: - no-cache @@ -2965,7 +2982,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:56 GMT + - Fri, 06 Aug 2021 18:43:17 GMT expires: - '-1' pragma: @@ -2979,7 +2996,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -2995,13 +3012,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4203b1472"}}' + not found: livekvtestcertrec1203b1472"}}' headers: cache-control: - no-cache @@ -3010,7 +3027,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:30:58 GMT + - Fri, 06 Aug 2021 18:43:19 GMT expires: - '-1' pragma: @@ -3024,7 +3041,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3040,21 +3057,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472","deletedDate":1620433848,"scheduledPurgeDate":1628209848,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472/d2ed029783674a3191354849b80bb1fd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4203b1472/d2ed029783674a3191354849b80bb1fd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4203b1472/d2ed029783674a3191354849b80bb1fd","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433781,"updated":1620433781,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433781,"updated":1620433781}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:00 GMT + - Fri, 06 Aug 2021 18:43:21 GMT expires: - '-1' pragma: @@ -3068,12 +3086,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3083,24 +3101,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472","deletedDate":1620433861,"scheduledPurgeDate":1628209861,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433776,"updated":1620433776}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:00 GMT + - Fri, 06 Aug 2021 18:43:23 GMT expires: - '-1' pragma: @@ -3114,12 +3131,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3130,7 +3147,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 response: @@ -3145,7 +3162,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:00 GMT + - Fri, 06 Aug 2021 18:43:25 GMT expires: - '-1' pragma: @@ -3159,7 +3176,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3175,22 +3192,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1203b1472"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472","deletedDate":1628275377,"scheduledPurgeDate":1636051377,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275294,"updated":1628275294,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271463,"updated":1628275294}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2457' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:02 GMT + - Fri, 06 Aug 2021 18:43:28 GMT expires: - '-1' pragma: @@ -3204,12 +3221,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -3219,23 +3236,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1203b1472"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472","deletedDate":1628275408,"scheduledPurgeDate":1636051408,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275295,"updated":1628275295,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271464,"updated":1628275295}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2457' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:04 GMT + - Fri, 06 Aug 2021 18:43:28 GMT expires: - '-1' pragma: @@ -3249,12 +3268,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -3265,13 +3284,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1203b1472"}}' + not found: livekvtestcertrec2203b1472"}}' headers: cache-control: - no-cache @@ -3280,7 +3299,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:06 GMT + - Fri, 06 Aug 2021 18:43:28 GMT expires: - '-1' pragma: @@ -3294,7 +3313,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3310,13 +3329,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1203b1472"}}' + not found: livekvtestcertrec2203b1472"}}' headers: cache-control: - no-cache @@ -3325,7 +3344,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:08 GMT + - Fri, 06 Aug 2021 18:43:30 GMT expires: - '-1' pragma: @@ -3339,7 +3358,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3355,21 +3374,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472","deletedDate":1620433861,"scheduledPurgeDate":1628209861,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433776,"updated":1620433776}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec2203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:10 GMT + - Fri, 06 Aug 2021 18:43:32 GMT expires: - '-1' pragma: @@ -3383,12 +3403,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3398,24 +3418,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472","deletedDate":1620433871,"scheduledPurgeDate":1628209871,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472/44824def780844bf95e8f3a6e3fdb3b5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2203b1472/44824def780844bf95e8f3a6e3fdb3b5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2203b1472/44824def780844bf95e8f3a6e3fdb3b5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433780,"updated":1620433780,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433780,"updated":1620433780}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec2203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:10 GMT + - Fri, 06 Aug 2021 18:43:34 GMT expires: - '-1' pragma: @@ -3429,12 +3448,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3445,13 +3464,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2203b1472"}}' + not found: livekvtestcertrec2203b1472"}}' headers: cache-control: - no-cache @@ -3460,7 +3479,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:10 GMT + - Fri, 06 Aug 2021 18:43:36 GMT expires: - '-1' pragma: @@ -3474,7 +3493,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3490,13 +3509,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2203b1472"}}' + not found: livekvtestcertrec2203b1472"}}' headers: cache-control: - no-cache @@ -3505,7 +3524,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:13 GMT + - Fri, 06 Aug 2021 18:43:39 GMT expires: - '-1' pragma: @@ -3519,7 +3538,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3535,13 +3554,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2203b1472"}}' + not found: livekvtestcertrec2203b1472"}}' headers: cache-control: - no-cache @@ -3550,7 +3569,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:15 GMT + - Fri, 06 Aug 2021 18:43:40 GMT expires: - '-1' pragma: @@ -3564,7 +3583,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3580,13 +3599,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2203b1472"}}' + not found: livekvtestcertrec2203b1472"}}' headers: cache-control: - no-cache @@ -3595,7 +3614,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:17 GMT + - Fri, 06 Aug 2021 18:43:42 GMT expires: - '-1' pragma: @@ -3609,7 +3628,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3625,13 +3644,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2203b1472"}}' + not found: livekvtestcertrec2203b1472"}}' headers: cache-control: - no-cache @@ -3640,7 +3659,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:19 GMT + - Fri, 06 Aug 2021 18:43:45 GMT expires: - '-1' pragma: @@ -3654,7 +3673,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3670,21 +3689,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472","deletedDate":1620433871,"scheduledPurgeDate":1628209871,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472/44824def780844bf95e8f3a6e3fdb3b5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2203b1472/44824def780844bf95e8f3a6e3fdb3b5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2203b1472/44824def780844bf95e8f3a6e3fdb3b5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433780,"updated":1620433780,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433780,"updated":1620433780}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec2203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:21 GMT + - Fri, 06 Aug 2021 18:43:47 GMT expires: - '-1' pragma: @@ -3698,12 +3718,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3713,24 +3733,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472","deletedDate":1620433882,"scheduledPurgeDate":1628209882,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433776,"updated":1620433776}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec2203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:21 GMT + - Fri, 06 Aug 2021 18:43:49 GMT expires: - '-1' pragma: @@ -3744,12 +3763,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -3760,13 +3779,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0203b1472"}}' + not found: livekvtestcertrec2203b1472"}}' headers: cache-control: - no-cache @@ -3775,7 +3794,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:21 GMT + - Fri, 06 Aug 2021 18:43:51 GMT expires: - '-1' pragma: @@ -3789,7 +3808,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3805,13 +3824,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0203b1472"}}' + not found: livekvtestcertrec2203b1472"}}' headers: cache-control: - no-cache @@ -3820,7 +3839,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:23 GMT + - Fri, 06 Aug 2021 18:43:53 GMT expires: - '-1' pragma: @@ -3834,7 +3853,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3850,13 +3869,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0203b1472"}}' + not found: livekvtestcertrec2203b1472"}}' headers: cache-control: - no-cache @@ -3865,7 +3884,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:25 GMT + - Fri, 06 Aug 2021 18:43:55 GMT expires: - '-1' pragma: @@ -3879,7 +3898,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3895,13 +3914,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0203b1472"}}' + not found: livekvtestcertrec2203b1472"}}' headers: cache-control: - no-cache @@ -3910,7 +3929,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:28 GMT + - Fri, 06 Aug 2021 18:43:56 GMT expires: - '-1' pragma: @@ -3924,7 +3943,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3940,13 +3959,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0203b1472"}}' + not found: livekvtestcertrec2203b1472"}}' headers: cache-control: - no-cache @@ -3955,7 +3974,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:30 GMT + - Fri, 06 Aug 2021 18:43:58 GMT expires: - '-1' pragma: @@ -3969,7 +3988,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -3985,21 +4004,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472","deletedDate":1620433882,"scheduledPurgeDate":1628209882,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433776,"updated":1620433776}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472","deletedDate":1628275408,"scheduledPurgeDate":1636051408,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275295,"updated":1628275295,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271464,"updated":1628275295}}}' headers: cache-control: - no-cache content-length: - - '2014' + - '2457' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:32 GMT + - Fri, 06 Aug 2021 18:44:01 GMT expires: - '-1' pragma: @@ -4013,7 +4033,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4031,21 +4051,22 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472","deletedDate":1620433892,"scheduledPurgeDate":1628209892,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472/51944a6860c8418782b94884197c6b48","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6203b1472/51944a6860c8418782b94884197c6b48","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6203b1472/51944a6860c8418782b94884197c6b48","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433782,"updated":1620433782,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433782,"updated":1620433782}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472","deletedDate":1628275442,"scheduledPurgeDate":1636051442,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271464,"updated":1628275296}}}' headers: cache-control: - no-cache content-length: - - '2014' + - '2457' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:32 GMT + - Fri, 06 Aug 2021 18:44:01 GMT expires: - '-1' pragma: @@ -4059,7 +4080,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4075,13 +4096,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6203b1472"}}' + not found: livekvtestcertrec3203b1472"}}' headers: cache-control: - no-cache @@ -4090,7 +4111,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:32 GMT + - Fri, 06 Aug 2021 18:44:02 GMT expires: - '-1' pragma: @@ -4104,7 +4125,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4120,13 +4141,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6203b1472"}}' + not found: livekvtestcertrec3203b1472"}}' headers: cache-control: - no-cache @@ -4135,7 +4156,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:34 GMT + - Fri, 06 Aug 2021 18:44:04 GMT expires: - '-1' pragma: @@ -4149,7 +4170,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4165,13 +4186,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6203b1472"}}' + not found: livekvtestcertrec3203b1472"}}' headers: cache-control: - no-cache @@ -4180,7 +4201,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:36 GMT + - Fri, 06 Aug 2021 18:44:06 GMT expires: - '-1' pragma: @@ -4194,7 +4215,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4210,13 +4231,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6203b1472"}}' + not found: livekvtestcertrec3203b1472"}}' headers: cache-control: - no-cache @@ -4225,7 +4246,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:38 GMT + - Fri, 06 Aug 2021 18:44:08 GMT expires: - '-1' pragma: @@ -4239,7 +4260,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4255,21 +4276,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472","deletedDate":1620433892,"scheduledPurgeDate":1628209892,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472/51944a6860c8418782b94884197c6b48","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6203b1472/51944a6860c8418782b94884197c6b48","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6203b1472/51944a6860c8418782b94884197c6b48","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433782,"updated":1620433782,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433782,"updated":1620433782}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec3203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:40 GMT + - Fri, 06 Aug 2021 18:44:10 GMT expires: - '-1' pragma: @@ -4283,12 +4305,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -4298,24 +4320,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472","deletedDate":1620433901,"scheduledPurgeDate":1628209901,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433777,"updated":1620433777,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433777,"updated":1620433777}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec3203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:40 GMT + - Fri, 06 Aug 2021 18:44:11 GMT expires: - '-1' pragma: @@ -4329,12 +4350,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -4345,7 +4366,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472?api-version=7.2 response: @@ -4360,7 +4381,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:40 GMT + - Fri, 06 Aug 2021 18:44:14 GMT expires: - '-1' pragma: @@ -4374,7 +4395,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4390,7 +4411,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472?api-version=7.2 response: @@ -4405,7 +4426,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:43 GMT + - Fri, 06 Aug 2021 18:44:16 GMT expires: - '-1' pragma: @@ -4419,7 +4440,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4435,7 +4456,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472?api-version=7.2 response: @@ -4450,7 +4471,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:45 GMT + - Fri, 06 Aug 2021 18:44:18 GMT expires: - '-1' pragma: @@ -4464,7 +4485,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4480,7 +4501,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472?api-version=7.2 response: @@ -4495,7 +4516,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:47 GMT + - Fri, 06 Aug 2021 18:44:21 GMT expires: - '-1' pragma: @@ -4509,7 +4530,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4525,21 +4546,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472","deletedDate":1620433901,"scheduledPurgeDate":1628209901,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433777,"updated":1620433777,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433777,"updated":1620433777}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec3203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:49 GMT + - Fri, 06 Aug 2021 18:44:23 GMT expires: - '-1' pragma: @@ -4553,12 +4575,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -4568,24 +4590,23 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472","deletedDate":1620433910,"scheduledPurgeDate":1628209910,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472/df68efb9ea744f2e8c54d1d0e7853b54","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5203b1472/df68efb9ea744f2e8c54d1d0e7853b54","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5203b1472/df68efb9ea744f2e8c54d1d0e7853b54","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433781,"updated":1620433781,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433781,"updated":1620433781}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec3203b1472"}}' headers: cache-control: - no-cache content-length: - - '2014' + - '110' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:49 GMT + - Fri, 06 Aug 2021 18:44:24 GMT expires: - '-1' pragma: @@ -4599,12 +4620,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -4615,13 +4636,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5203b1472"}}' + not found: livekvtestcertrec3203b1472"}}' headers: cache-control: - no-cache @@ -4630,7 +4651,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:49 GMT + - Fri, 06 Aug 2021 18:44:26 GMT expires: - '-1' pragma: @@ -4644,7 +4665,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4660,22 +4681,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5203b1472"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472","deletedDate":1628275442,"scheduledPurgeDate":1636051442,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271464,"updated":1628275296}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2457' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:52 GMT + - Fri, 06 Aug 2021 18:44:28 GMT expires: - '-1' pragma: @@ -4689,12 +4710,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -4704,23 +4725,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5203b1472"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472","deletedDate":1628275469,"scheduledPurgeDate":1636051469,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271465,"updated":1628275296}}}' headers: cache-control: - no-cache content-length: - - '110' + - '2457' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:54 GMT + - Fri, 06 Aug 2021 18:44:28 GMT expires: - '-1' pragma: @@ -4734,12 +4757,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -4750,13 +4773,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5203b1472"}}' + not found: livekvtestcertrec4203b1472"}}' headers: cache-control: - no-cache @@ -4765,7 +4788,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:56 GMT + - Fri, 06 Aug 2021 18:44:29 GMT expires: - '-1' pragma: @@ -4779,7 +4802,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4795,9 +4818,7585 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:44:31 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:44:33 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:44:34 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:44:37 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:44:39 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:44:41 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:44:43 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:44:45 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:44:47 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:44:49 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:44:51 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:44:53 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:44:56 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:44:58 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:02 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:04 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:06 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472","deletedDate":1628275469,"scheduledPurgeDate":1636051469,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271465,"updated":1628275296}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:08 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472","deletedDate":1628275509,"scheduledPurgeDate":1636051509,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275297,"updated":1628275297,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271465,"updated":1628275297}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:08 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:08 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:11 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:13 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:15 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:17 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:19 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:23 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:25 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:27 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:29 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:31 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:33 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:36 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:38 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:40 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:42 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:44 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:45 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:48 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:50 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:52 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:54 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:57 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:45:59 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472","deletedDate":1628275509,"scheduledPurgeDate":1636051509,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275297,"updated":1628275297,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271465,"updated":1628275297}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472","deletedDate":1628275561,"scheduledPurgeDate":1636051561,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275297,"updated":1628275297,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271466,"updated":1628275297}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:03 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:05 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:07 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:08 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:10 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:15 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:17 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:19 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:21 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:23 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:25 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:28 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:30 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:32 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:34 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:36 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:38 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472","deletedDate":1628275561,"scheduledPurgeDate":1636051561,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275297,"updated":1628275297,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271466,"updated":1628275297}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:40 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472","deletedDate":1628275601,"scheduledPurgeDate":1636051601,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472/0fb5515947904c3c8cb8bc53d595b8b0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0203b1472/0fb5515947904c3c8cb8bc53d595b8b0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0203b1472/0fb5515947904c3c8cb8bc53d595b8b0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275298,"updated":1628275298,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275298,"updated":1628275298}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:40 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:40 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:43 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:45 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:46 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:48 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:50 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:53 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:55 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:57 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:46:59 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:01 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:03 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:05 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:08 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:10 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:13 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472","deletedDate":1628275601,"scheduledPurgeDate":1636051601,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472/0fb5515947904c3c8cb8bc53d595b8b0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0203b1472/0fb5515947904c3c8cb8bc53d595b8b0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0203b1472/0fb5515947904c3c8cb8bc53d595b8b0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275298,"updated":1628275298,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275298,"updated":1628275298}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:15 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472","deletedDate":1628275636,"scheduledPurgeDate":1636051636,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472/cbb9a19a7682495d8dd916b9d5a8fe53","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1203b1472/cbb9a19a7682495d8dd916b9d5a8fe53","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1203b1472/cbb9a19a7682495d8dd916b9d5a8fe53","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275301,"updated":1628275301,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275301,"updated":1628275301}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:15 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:15 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:19 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:22 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:24 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:26 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:28 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:30 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:32 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:35 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:37 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:39 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:41 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:44 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:46 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:48 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:50 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:52 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:54 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472","deletedDate":1628275636,"scheduledPurgeDate":1636051636,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472/cbb9a19a7682495d8dd916b9d5a8fe53","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1203b1472/cbb9a19a7682495d8dd916b9d5a8fe53","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1203b1472/cbb9a19a7682495d8dd916b9d5a8fe53","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275301,"updated":1628275301,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275301,"updated":1628275301}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:56 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472","deletedDate":1628275676,"scheduledPurgeDate":1636051676,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472/5160d6866d254dcaaf65a14a5f63067e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2203b1472/5160d6866d254dcaaf65a14a5f63067e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2203b1472/5160d6866d254dcaaf65a14a5f63067e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275301,"updated":1628275301,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275301,"updated":1628275301}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:56 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:56 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:47:58 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:02 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:04 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:06 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:08 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:11 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:13 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:15 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:17 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:19 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:23 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:25 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:27 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:29 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:31 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:33 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:36 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:37 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:39 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:41 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:43 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472","deletedDate":1628275676,"scheduledPurgeDate":1636051676,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472/5160d6866d254dcaaf65a14a5f63067e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2203b1472/5160d6866d254dcaaf65a14a5f63067e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2203b1472/5160d6866d254dcaaf65a14a5f63067e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275301,"updated":1628275301,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275301,"updated":1628275301}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:45 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472","deletedDate":1628275726,"scheduledPurgeDate":1636051726,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472/01ce7c684c1d4e4f9f1669b5e60b7816","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3203b1472/01ce7c684c1d4e4f9f1669b5e60b7816","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3203b1472/01ce7c684c1d4e4f9f1669b5e60b7816","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275302,"updated":1628275302,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275302,"updated":1628275302}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:45 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:45 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:48 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:50 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:52 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:55 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:56 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:48:58 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:03 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:05 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:07 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:09 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:11 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:13 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472","deletedDate":1628275726,"scheduledPurgeDate":1636051726,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472/01ce7c684c1d4e4f9f1669b5e60b7816","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3203b1472/01ce7c684c1d4e4f9f1669b5e60b7816","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3203b1472/01ce7c684c1d4e4f9f1669b5e60b7816","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275302,"updated":1628275302,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275302,"updated":1628275302}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:16 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472","deletedDate":1628275756,"scheduledPurgeDate":1636051756,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472/fc4ab420db37428785605da2907534d3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4203b1472/fc4ab420db37428785605da2907534d3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4203b1472/fc4ab420db37428785605da2907534d3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275302,"updated":1628275302,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275302,"updated":1628275302}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:16 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:16 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:18 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:22 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:24 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:26 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:28 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:29 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:32 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:34 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472","deletedDate":1628275756,"scheduledPurgeDate":1636051756,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472/fc4ab420db37428785605da2907534d3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4203b1472/fc4ab420db37428785605da2907534d3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4203b1472/fc4ab420db37428785605da2907534d3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275302,"updated":1628275302,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275302,"updated":1628275302}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:36 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472","deletedDate":1628275777,"scheduledPurgeDate":1636051777,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472/0e8ad17582d04a26a1a2c29c6496e69e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5203b1472/0e8ad17582d04a26a1a2c29c6496e69e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5203b1472/0e8ad17582d04a26a1a2c29c6496e69e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275303,"updated":1628275303,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275303,"updated":1628275303}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:36 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:37 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:38 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:40 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:43 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:45 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:46 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate @@ -4806,11 +12405,2366 @@ interactions: cache-control: - no-cache content-length: - - '110' + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:49 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472","deletedDate":1628275777,"scheduledPurgeDate":1636051777,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472/0e8ad17582d04a26a1a2c29c6496e69e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5203b1472/0e8ad17582d04a26a1a2c29c6496e69e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5203b1472/0e8ad17582d04a26a1a2c29c6496e69e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275303,"updated":1628275303,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275303,"updated":1628275303}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:51 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472","deletedDate":1628275792,"scheduledPurgeDate":1636051792,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472/23ee1b8a445a4c79a72d7d434ad49359","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6203b1472/23ee1b8a445a4c79a72d7d434ad49359","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6203b1472/23ee1b8a445a4c79a72d7d434ad49359","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275303,"updated":1628275303,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275303,"updated":1628275303}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:51 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:51 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:53 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:55 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:49:58 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:02 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:04 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:06 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6203b1472"}}' + headers: + cache-control: + - no-cache + content-length: + - '110' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:08 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472","deletedDate":1628275792,"scheduledPurgeDate":1636051792,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472/23ee1b8a445a4c79a72d7d434ad49359","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6203b1472/23ee1b8a445a4c79a72d7d434ad49359","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6203b1472/23ee1b8a445a4c79a72d7d434ad49359","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275303,"updated":1628275303,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275303,"updated":1628275303}}}' + headers: + cache-control: + - no-cache + content-length: + - '2457' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:11 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: + - no-cache + content-length: + - '323' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:11 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: + - no-cache + content-length: + - '323' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:11 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1628271087,"scheduledPurgeDate":1636047087,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"RC8tFJZPwOeZWUeGE9sGSFTbczM","attributes":{"enabled":true,"nbf":1628270484,"exp":1659807084,"created":1628271084,"updated":1628271087,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472","deletedDate":1628275601,"scheduledPurgeDate":1636051601,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275298,"updated":1628275298,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472","deletedDate":1628275636,"scheduledPurgeDate":1636051636,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275301,"updated":1628275301,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472","deletedDate":1628275676,"scheduledPurgeDate":1636051676,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275301,"updated":1628275301,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472","deletedDate":1628275726,"scheduledPurgeDate":1636051726,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275302,"updated":1628275302,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472","deletedDate":1628275756,"scheduledPurgeDate":1636051756,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275302,"updated":1628275302,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472","deletedDate":1628275777,"scheduledPurgeDate":1636051777,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275303,"updated":1628275303,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472","deletedDate":1628275792,"scheduledPurgeDate":1636051792,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275303,"updated":1628275303,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472","deletedDate":1628275304,"scheduledPurgeDate":1636051304,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275293,"updated":1628275293,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVRJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: + - no-cache + content-length: + - '4321' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:11 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVRJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472","deletedDate":1628275377,"scheduledPurgeDate":1636051377,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275294,"updated":1628275294,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472","deletedDate":1628275408,"scheduledPurgeDate":1636051408,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275295,"updated":1628275295,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472","deletedDate":1628275442,"scheduledPurgeDate":1636051442,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472","deletedDate":1628275469,"scheduledPurgeDate":1636051469,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkVFM1FqVXhOa1ZFTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: + - no-cache + content-length: + - '2091' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkVFM1FqVXhOa1ZFTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472","deletedDate":1628275509,"scheduledPurgeDate":1636051509,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275297,"updated":1628275297,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472","deletedDate":1628275561,"scheduledPurgeDate":1636051561,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275297,"updated":1628275297,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: + - no-cache + content-length: + - '1193' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[],"nextLink":null}' + headers: + cache-control: + - no-cache + content-length: + - '28' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472/recover?api-version=7.2 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275293,"updated":1628275293,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271462,"updated":1628275293}}}' + headers: + cache-control: + - no-cache + content-length: + - '2303' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:14 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:16 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:18 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:22 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:25 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:27 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:29 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:31 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:33 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:36 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:38 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:39 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:41 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:43 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:45 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:47 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:49 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:52 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:54 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:56 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275293,"updated":1628275293,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271462,"updated":1628275293}}}' + headers: + cache-control: + - no-cache + content-length: + - '2303' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:59 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472/recover?api-version=7.2 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275294,"updated":1628275294,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271463,"updated":1628275294}}}' + headers: + cache-control: + - no-cache + content-length: + - '2303' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:59 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:50:59 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:51:01 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:51:03 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:51:05 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:51:07 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:51:09 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:51:12 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:31:58 GMT + - Fri, 06 Aug 2021 18:51:14 GMT expires: - '-1' pragma: @@ -4824,7 +14778,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4840,21 +14794,69 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:51:16 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472","deletedDate":1620433910,"scheduledPurgeDate":1628209910,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472/df68efb9ea744f2e8c54d1d0e7853b54","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5203b1472/df68efb9ea744f2e8c54d1d0e7853b54","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5203b1472/df68efb9ea744f2e8c54d1d0e7853b54","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433781,"updated":1620433781,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433781,"updated":1620433781}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275294,"updated":1628275294,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271463,"updated":1628275294}}}' headers: cache-control: - no-cache content-length: - - '2014' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:00 GMT + - Fri, 06 Aug 2021 18:51:18 GMT expires: - '-1' pragma: @@ -4868,7 +14870,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4886,21 +14888,22 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472/recover?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472","deletedDate":1620433920,"scheduledPurgeDate":1628209920,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433778,"updated":1620433778,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433778,"updated":1620433778}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275295,"updated":1628275295,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271464,"updated":1628275295}}}' headers: cache-control: - no-cache content-length: - - '2014' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:00 GMT + - Fri, 06 Aug 2021 18:51:18 GMT expires: - '-1' pragma: @@ -4914,7 +14917,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4930,22 +14933,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5203b1472"}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '110' + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:00 GMT + - Fri, 06 Aug 2021 18:51:18 GMT expires: - '-1' pragma: @@ -4959,7 +14964,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -4975,22 +14980,212 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5203b1472"}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:51:20 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:51:21 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:51:23 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: + - no-cache + content-length: + - '338' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:51:25 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '110' + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:02 GMT + - Fri, 06 Aug 2021 18:51:28 GMT expires: - '-1' pragma: @@ -5004,7 +15199,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5020,22 +15215,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5203b1472"}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '110' + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:04 GMT + - Fri, 06 Aug 2021 18:51:30 GMT expires: - '-1' pragma: @@ -5049,7 +15246,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5065,22 +15262,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5203b1472"}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '110' + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:07 GMT + - Fri, 06 Aug 2021 18:51:32 GMT expires: - '-1' pragma: @@ -5094,7 +15293,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5110,22 +15309,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5203b1472"}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '110' + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:09 GMT + - Fri, 06 Aug 2021 18:51:34 GMT expires: - '-1' pragma: @@ -5139,7 +15340,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5155,21 +15356,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472","deletedDate":1620433920,"scheduledPurgeDate":1628209920,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433778,"updated":1620433778,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433778,"updated":1620433778}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275295,"updated":1628275295,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271464,"updated":1628275295}}}' headers: cache-control: - no-cache content-length: - - '2014' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:11 GMT + - Fri, 06 Aug 2021 18:51:36 GMT expires: - '-1' pragma: @@ -5183,7 +15385,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5198,22 +15400,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472/recover?api-version=7.2 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcert79f91636","deletedDate":1620433848,"scheduledPurgeDate":1628209848,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert79f91636","x5t":"UIHNGBKI6d3gOVWuRU0xanHMMb4","attributes":{"enabled":true,"nbf":1620433246,"exp":1651969846,"created":1620433846,"updated":1620433848,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1620433730,"scheduledPurgeDate":1628209730,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"zoS3gO5weGAuhGwb_cCI3MTBQcQ","attributes":{"enabled":true,"nbf":1620433126,"exp":1651969726,"created":1620433726,"updated":1620433730,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472","deletedDate":1620433837,"scheduledPurgeDate":1628209837,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433779,"updated":1620433779,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472","deletedDate":1620433829,"scheduledPurgeDate":1628209829,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433780,"updated":1620433780,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472","deletedDate":1620433871,"scheduledPurgeDate":1628209871,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433780,"updated":1620433780,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472","deletedDate":1620433782,"scheduledPurgeDate":1628209782,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433780,"updated":1620433780,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472","deletedDate":1620433848,"scheduledPurgeDate":1628209848,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433781,"updated":1620433781,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472","deletedDate":1620433910,"scheduledPurgeDate":1628209910,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433781,"updated":1620433781,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472","deletedDate":1620433892,"scheduledPurgeDate":1628209892,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433782,"updated":1620433782,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472","deletedDate":1620433882,"scheduledPurgeDate":1628209882,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472","deletedDate":1620433861,"scheduledPurgeDate":1628209861,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472","deletedDate":1620433820,"scheduledPurgeDate":1628209820,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433777,"updated":1620433777,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472","deletedDate":1620433901,"scheduledPurgeDate":1628209901,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433777,"updated":1620433777,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472","deletedDate":1620433799,"scheduledPurgeDate":1628209799,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433778,"updated":1620433778,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkRJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271464,"updated":1628275296}}}' headers: cache-control: - no-cache content-length: - - '6551' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:11 GMT + - Fri, 06 Aug 2021 18:51:36 GMT expires: - '-1' pragma: @@ -5227,7 +15432,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5243,21 +15448,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkRJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472","deletedDate":1620433920,"scheduledPurgeDate":1628209920,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433778,"updated":1620433778,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472","deletedDate":1620433812,"scheduledPurgeDate":1628209812,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433779,"updated":1620433779,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":null}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '909' + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:11 GMT + - Fri, 06 Aug 2021 18:51:36 GMT expires: - '-1' pragma: @@ -5271,12 +15479,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -5286,24 +15494,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472/recover?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433778,"updated":1620433778,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433778,"updated":1620433778}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1860' + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:11 GMT + - Fri, 06 Aug 2021 18:51:38 GMT expires: - '-1' pragma: @@ -5317,12 +15526,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -5333,13 +15542,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec3203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -5350,7 +15559,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:11 GMT + - Fri, 06 Aug 2021 18:51:40 GMT expires: - '-1' pragma: @@ -5364,7 +15573,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5380,13 +15589,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec3203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -5397,7 +15606,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:13 GMT + - Fri, 06 Aug 2021 18:51:42 GMT expires: - '-1' pragma: @@ -5411,7 +15620,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5427,13 +15636,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec3203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -5444,7 +15653,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:15 GMT + - Fri, 06 Aug 2021 18:51:45 GMT expires: - '-1' pragma: @@ -5458,7 +15667,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5474,13 +15683,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec3203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -5491,7 +15700,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:17 GMT + - Fri, 06 Aug 2021 18:51:47 GMT expires: - '-1' pragma: @@ -5505,7 +15714,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5521,13 +15730,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec3203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -5538,7 +15747,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:19 GMT + - Fri, 06 Aug 2021 18:51:50 GMT expires: - '-1' pragma: @@ -5552,7 +15761,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5568,13 +15777,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec3203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -5585,7 +15794,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:21 GMT + - Fri, 06 Aug 2021 18:51:52 GMT expires: - '-1' pragma: @@ -5599,7 +15808,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5615,21 +15824,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433778,"updated":1620433778,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433778,"updated":1620433778}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1860' + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:23 GMT + - Fri, 06 Aug 2021 18:51:54 GMT expires: - '-1' pragma: @@ -5643,12 +15855,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -5658,24 +15870,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472/recover?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433779,"updated":1620433779,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433779,"updated":1620433779}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1860' + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:24 GMT + - Fri, 06 Aug 2021 18:51:56 GMT expires: - '-1' pragma: @@ -5689,12 +15902,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -5705,24 +15918,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6203b1472 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271464,"updated":1628275296}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:24 GMT + - Fri, 06 Aug 2021 18:51:58 GMT expires: - '-1' pragma: @@ -5736,12 +15947,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -5751,25 +15962,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472/recover?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6203b1472 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271465,"updated":1628275296}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:26 GMT + - Fri, 06 Aug 2021 18:51:58 GMT expires: - '-1' pragma: @@ -5783,12 +15994,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -5799,13 +16010,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec4203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -5816,7 +16027,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:28 GMT + - Fri, 06 Aug 2021 18:51:58 GMT expires: - '-1' pragma: @@ -5830,7 +16041,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5846,13 +16057,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec4203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -5863,7 +16074,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:31 GMT + - Fri, 06 Aug 2021 18:52:00 GMT expires: - '-1' pragma: @@ -5877,7 +16088,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5893,13 +16104,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec4203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -5910,7 +16121,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:33 GMT + - Fri, 06 Aug 2021 18:52:02 GMT expires: - '-1' pragma: @@ -5924,7 +16135,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -5940,21 +16151,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433779,"updated":1620433779,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433779,"updated":1620433779}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1860' + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:34 GMT + - Fri, 06 Aug 2021 18:52:04 GMT expires: - '-1' pragma: @@ -5968,12 +16182,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -5983,24 +16197,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472/recover?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433777,"updated":1620433777,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433777,"updated":1620433777}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1860' + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:35 GMT + - Fri, 06 Aug 2021 18:52:06 GMT expires: - '-1' pragma: @@ -6014,12 +16229,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6030,13 +16245,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec4203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6047,7 +16262,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:35 GMT + - Fri, 06 Aug 2021 18:52:09 GMT expires: - '-1' pragma: @@ -6061,7 +16276,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6077,13 +16292,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec4203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6094,7 +16309,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:37 GMT + - Fri, 06 Aug 2021 18:52:11 GMT expires: - '-1' pragma: @@ -6108,7 +16323,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6124,13 +16339,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec4203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6141,7 +16356,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:38 GMT + - Fri, 06 Aug 2021 18:52:13 GMT expires: - '-1' pragma: @@ -6155,7 +16370,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6171,13 +16386,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec4203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6188,7 +16403,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:41 GMT + - Fri, 06 Aug 2021 18:52:15 GMT expires: - '-1' pragma: @@ -6202,7 +16417,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6218,21 +16433,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433777,"updated":1620433777,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433777,"updated":1620433777}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1860' + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:43 GMT + - Fri, 06 Aug 2021 18:52:17 GMT expires: - '-1' pragma: @@ -6246,12 +16464,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6261,24 +16479,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472/recover?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433776,"updated":1620433776}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1860' + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:43 GMT + - Fri, 06 Aug 2021 18:52:20 GMT expires: - '-1' pragma: @@ -6292,12 +16511,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6308,24 +16527,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1203b1472 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271465,"updated":1628275296}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:43 GMT + - Fri, 06 Aug 2021 18:52:22 GMT expires: - '-1' pragma: @@ -6339,12 +16556,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -6354,25 +16571,25 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472/recover?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1203b1472 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275297,"updated":1628275297,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271465,"updated":1628275297}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:45 GMT + - Fri, 06 Aug 2021 18:52:22 GMT expires: - '-1' pragma: @@ -6386,12 +16603,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -6402,13 +16619,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec5203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6419,7 +16636,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:47 GMT + - Fri, 06 Aug 2021 18:52:22 GMT expires: - '-1' pragma: @@ -6433,7 +16650,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6449,13 +16666,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec5203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6466,7 +16683,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:50 GMT + - Fri, 06 Aug 2021 18:52:24 GMT expires: - '-1' pragma: @@ -6480,7 +16697,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6496,21 +16713,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433776,"updated":1620433776}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec5203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1860' + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:52 GMT + - Fri, 06 Aug 2021 18:52:26 GMT expires: - '-1' pragma: @@ -6524,12 +16744,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6539,24 +16759,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472/recover?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433776,"updated":1620433776}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec5203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1860' + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:52 GMT + - Fri, 06 Aug 2021 18:52:28 GMT expires: - '-1' pragma: @@ -6570,12 +16791,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -6586,13 +16807,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec5203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6603,7 +16824,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:52 GMT + - Fri, 06 Aug 2021 18:52:30 GMT expires: - '-1' pragma: @@ -6617,7 +16838,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6633,13 +16854,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec5203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6650,7 +16871,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:54 GMT + - Fri, 06 Aug 2021 18:52:32 GMT expires: - '-1' pragma: @@ -6664,7 +16885,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6680,13 +16901,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec5203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6697,7 +16918,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:56 GMT + - Fri, 06 Aug 2021 18:52:34 GMT expires: - '-1' pragma: @@ -6711,7 +16932,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6727,13 +16948,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec5203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6744,7 +16965,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:32:58 GMT + - Fri, 06 Aug 2021 18:52:37 GMT expires: - '-1' pragma: @@ -6758,7 +16979,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6774,13 +16995,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec5203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6791,7 +17012,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:00 GMT + - Fri, 06 Aug 2021 18:52:39 GMT expires: - '-1' pragma: @@ -6805,7 +17026,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6821,21 +17042,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433776,"updated":1620433776}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275297,"updated":1628275297,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271465,"updated":1628275297}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:02 GMT + - Fri, 06 Aug 2021 18:52:41 GMT expires: - '-1' pragma: @@ -6849,7 +17071,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6867,21 +17089,22 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472/recover?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472/recover?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433777,"updated":1620433777,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433777,"updated":1620433777}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275297,"updated":1628275297,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271466,"updated":1628275297}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:02 GMT + - Fri, 06 Aug 2021 18:52:41 GMT expires: - '-1' pragma: @@ -6895,7 +17118,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6911,13 +17134,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec6203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6928,7 +17151,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:02 GMT + - Fri, 06 Aug 2021 18:52:41 GMT expires: - '-1' pragma: @@ -6942,7 +17165,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -6958,13 +17181,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec6203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -6975,7 +17198,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:04 GMT + - Fri, 06 Aug 2021 18:52:43 GMT expires: - '-1' pragma: @@ -6989,7 +17212,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7005,13 +17228,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec6203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7022,7 +17245,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:07 GMT + - Fri, 06 Aug 2021 18:52:45 GMT expires: - '-1' pragma: @@ -7036,7 +17259,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7052,13 +17275,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec6203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7069,7 +17292,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:09 GMT + - Fri, 06 Aug 2021 18:52:47 GMT expires: - '-1' pragma: @@ -7083,7 +17306,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7099,21 +17322,24 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433777,"updated":1620433777,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433777,"updated":1620433777}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec6203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1860' + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:11 GMT + - Fri, 06 Aug 2021 18:52:48 GMT expires: - '-1' pragma: @@ -7127,12 +17353,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -7142,24 +17368,25 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472/recover?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433778,"updated":1620433778,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433778,"updated":1620433778}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec6203b1472 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: - no-cache content-length: - - '1860' + - '338' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:11 GMT + - Fri, 06 Aug 2021 18:52:51 GMT expires: - '-1' pragma: @@ -7173,12 +17400,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found - request: body: null headers: @@ -7189,13 +17416,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec6203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7206,7 +17433,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:11 GMT + - Fri, 06 Aug 2021 18:52:53 GMT expires: - '-1' pragma: @@ -7220,7 +17447,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7236,13 +17463,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5203b1472 was not found in this key vault. If you + (name/id) livekvtestcertrec6203b1472 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: @@ -7253,7 +17480,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:13 GMT + - Fri, 06 Aug 2021 18:52:55 GMT expires: - '-1' pragma: @@ -7267,7 +17494,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7283,24 +17510,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5203b1472 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275297,"updated":1628275297,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271466,"updated":1628275297}}}' headers: cache-control: - no-cache content-length: - - '338' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:15 GMT + - Fri, 06 Aug 2021 18:52:57 GMT expires: - '-1' pragma: @@ -7314,12 +17539,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK - request: body: null headers: @@ -7329,25 +17554,20 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5203b1472 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '' headers: cache-control: - no-cache - content-length: - - '338' - content-type: - - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:18 GMT + - Fri, 06 Aug 2021 18:52:57 GMT expires: - '-1' pragma: @@ -7361,12 +17581,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 204 + message: No Content - request: body: null headers: @@ -7376,25 +17596,20 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5203b1472 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '' headers: cache-control: - no-cache - content-length: - - '338' - content-type: - - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:20 GMT + - Fri, 06 Aug 2021 18:52:57 GMT expires: - '-1' pragma: @@ -7408,12 +17623,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 204 + message: No Content - request: body: null headers: @@ -7423,25 +17638,20 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5203b1472 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '' headers: cache-control: - no-cache - content-length: - - '338' - content-type: - - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:21 GMT + - Fri, 06 Aug 2021 18:52:57 GMT expires: - '-1' pragma: @@ -7455,12 +17665,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 204 + message: No Content - request: body: null headers: @@ -7470,22 +17680,20 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433778,"updated":1620433778,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433778,"updated":1620433778}}}' + string: '' headers: cache-control: - no-cache - content-length: - - '1860' - content-type: - - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:23 GMT + - Fri, 06 Aug 2021 18:52:59 GMT expires: - '-1' pragma: @@ -7499,12 +17707,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 204 + message: No Content - request: body: null headers: @@ -7517,9 +17725,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 response: body: string: '' @@ -7527,7 +17735,7 @@ interactions: cache-control: - no-cache date: - - Sat, 08 May 2021 00:33:23 GMT + - Fri, 06 Aug 2021 18:52:59 GMT expires: - '-1' pragma: @@ -7541,7 +17749,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7559,9 +17767,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472?api-version=7.2 response: body: string: '' @@ -7569,7 +17777,7 @@ interactions: cache-control: - no-cache date: - - Sat, 08 May 2021 00:33:24 GMT + - Fri, 06 Aug 2021 18:52:59 GMT expires: - '-1' pragma: @@ -7583,7 +17791,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7601,9 +17809,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472?api-version=7.2 response: body: string: '' @@ -7611,7 +17819,7 @@ interactions: cache-control: - no-cache date: - - Sat, 08 May 2021 00:33:24 GMT + - Fri, 06 Aug 2021 18:52:59 GMT expires: - '-1' pragma: @@ -7625,7 +17833,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7640,20 +17848,22 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2 response: body: - string: '' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' headers: cache-control: - no-cache + content-length: + - '323' + content-type: + - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:24 GMT + - Fri, 06 Aug 2021 18:53:49 GMT expires: - '-1' pragma: @@ -7667,12 +17877,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 204 - message: No Content + code: 200 + message: OK - request: body: null headers: @@ -7682,20 +17892,22 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 response: body: - string: '' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' headers: cache-control: - no-cache + content-length: + - '323' + content-type: + - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:24 GMT + - Fri, 06 Aug 2021 18:53:49 GMT expires: - '-1' pragma: @@ -7709,12 +17921,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 204 - message: No Content + code: 200 + message: OK - request: body: null headers: @@ -7724,20 +17936,22 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 response: body: - string: '' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1628271087,"scheduledPurgeDate":1636047087,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"RC8tFJZPwOeZWUeGE9sGSFTbczM","attributes":{"enabled":true,"nbf":1628270484,"exp":1659807084,"created":1628271084,"updated":1628271087,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef","deletedDate":1628275978,"scheduledPurgeDate":1636051978,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275835,"updated":1628275835,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef","deletedDate":1628275997,"scheduledPurgeDate":1636051997,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275835,"updated":1628275835,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef","deletedDate":1628275840,"scheduledPurgeDate":1636051840,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275831,"updated":1628275831,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETUVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: - no-cache + content-length: + - '2116' + content-type: + - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:24 GMT + - Fri, 06 Aug 2021 18:53:50 GMT expires: - '-1' pragma: @@ -7751,12 +17965,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 204 - message: No Content + code: 200 + message: OK - request: body: null headers: @@ -7766,20 +17980,22 @@ interactions: - gzip, deflate Connection: - keep-alive - Content-Length: - - '0' User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETUVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: - string: '' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef","deletedDate":1628275859,"scheduledPurgeDate":1636051859,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275832,"updated":1628275832,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef","deletedDate":1628275878,"scheduledPurgeDate":1636051878,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275832,"updated":1628275832,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef","deletedDate":1628275897,"scheduledPurgeDate":1636051897,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275833,"updated":1628275833,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkRJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: - no-cache + content-length: + - '1650' + content-type: + - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:33:24 GMT + - Fri, 06 Aug 2021 18:53:50 GMT expires: - '-1' pragma: @@ -7793,12 +18009,12 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 204 - message: No Content + code: 200 + message: OK - request: body: null headers: @@ -7809,21 +18025,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkRJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcert79f91636","deletedDate":1620433848,"scheduledPurgeDate":1628209848,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert79f91636","x5t":"UIHNGBKI6d3gOVWuRU0xanHMMb4","attributes":{"enabled":true,"nbf":1620433246,"exp":1651969846,"created":1620433846,"updated":1620433848,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1620433730,"scheduledPurgeDate":1628209730,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"zoS3gO5weGAuhGwb_cCI3MTBQcQ","attributes":{"enabled":true,"nbf":1620433126,"exp":1651969726,"created":1620433726,"updated":1620433730,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef","deletedDate":1620434027,"scheduledPurgeDate":1628210027,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434012,"updated":1620434012,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITkVFM1FqY3hOa1ZHTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef","deletedDate":1628275917,"scheduledPurgeDate":1636051917,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275833,"updated":1628275833,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef","deletedDate":1628275942,"scheduledPurgeDate":1636051942,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275834,"updated":1628275834,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef","deletedDate":1628275961,"scheduledPurgeDate":1636051961,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275834,"updated":1628275834,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJURkJOVGt2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: - no-cache content-length: - - '1700' + - '1650' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:34:15 GMT + - Fri, 06 Aug 2021 18:53:50 GMT expires: - '-1' pragma: @@ -7837,7 +18053,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7853,21 +18069,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITkVFM1FqY3hOa1ZHTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJURkJOVGt2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef","deletedDate":1620434044,"scheduledPurgeDate":1628210044,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434014,"updated":1620434014,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef","deletedDate":1620434036,"scheduledPurgeDate":1628210036,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434009,"updated":1620434009,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef","deletedDate":1620434015,"scheduledPurgeDate":1628210015,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSUVQweEpRMWxEUlZKVVNVWkpRMEZVUlVKRU1UZ3hNamMxTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVpCUkRBeU1UazBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' headers: cache-control: - no-cache content-length: - - '1666' + - '371' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:34:15 GMT + - Fri, 06 Aug 2021 18:53:50 GMT expires: - '-1' pragma: @@ -7881,7 +18097,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7897,9 +18113,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSUVQweEpRMWxEUlZKVVNVWkpRMEZVUlVKRU1UZ3hNamMxTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVpCUkRBeU1UazBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 response: body: string: '{"value":[],"nextLink":null}' @@ -7911,7 +18127,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:34:15 GMT + - Fri, 06 Aug 2021 18:53:50 GMT expires: - '-1' pragma: @@ -7925,7 +18141,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7941,21 +18157,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203b1472/d5085736451f411f8fdbd0cdb22b6448","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433778,"updated":1620433778,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433778,"updated":1620433778}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203b1472/f5d42d09a4a042adb652b44355780f9d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275293,"updated":1628275293,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271462,"updated":1628275293}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:34:15 GMT + - Fri, 06 Aug 2021 18:53:50 GMT expires: - '-1' pragma: @@ -7969,7 +18186,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -7985,21 +18202,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0203b1472/c051fd737d33404e8c3236c0cca963a8","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433776,"updated":1620433776}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203b1472/08699b633f974b5aa3cee32507245fe2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275294,"updated":1628275294,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271463,"updated":1628275294}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:34:15 GMT + - Fri, 06 Aug 2021 18:53:50 GMT expires: - '-1' pragma: @@ -8013,7 +18231,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8029,21 +18247,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203b1472/a25f57c25265408080c93fa8be172d99","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433777,"updated":1620433777,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433777,"updated":1620433777}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2203b1472/17cefb664d1348069e2f11b5f365ad3c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275295,"updated":1628275295,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271464,"updated":1628275295}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:34:15 GMT + - Fri, 06 Aug 2021 18:53:51 GMT expires: - '-1' pragma: @@ -8057,7 +18276,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8073,21 +18292,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203b1472/3c79899b7ec14d41a925f9be83074a41","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433779,"updated":1620433779,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433779,"updated":1620433779}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203b1472/8e6a68bdd12c4a10a523a5d0f5b744ca","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271464,"updated":1628275296}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:34:15 GMT + - Fri, 06 Aug 2021 18:53:51 GMT expires: - '-1' pragma: @@ -8101,7 +18321,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8117,21 +18337,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3203b1472/a873ae9f548f49eeb72c8d690c5c00fc","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433777,"updated":1620433777,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433777,"updated":1620433777}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4203b1472/8fd296fd9f2543d7b5edd95d1cfa484c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271465,"updated":1628275296}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:34:15 GMT + - Fri, 06 Aug 2021 18:53:51 GMT expires: - '-1' pragma: @@ -8145,7 +18366,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8161,21 +18382,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1203b1472/3a5d0b24c77645009c28e15fa840228a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433776,"updated":1620433776}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203b1472/a583d9d741a84da6a17823255f7bdf8f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275297,"updated":1628275297,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271465,"updated":1628275297}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:34:16 GMT + - Fri, 06 Aug 2021 18:53:51 GMT expires: - '-1' pragma: @@ -8189,7 +18411,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: @@ -8205,21 +18427,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5203b1472/cdb61f9d55504a7b80ae30d87e9ea259","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433778,"updated":1620433778,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433778,"updated":1620433778}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6203b1472/5513fe2a0d52466cb3a7aa61fe45fcb7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275297,"updated":1628275297,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628271466,"updated":1628275297}}}' headers: cache-control: - no-cache content-length: - - '1860' + - '2303' content-type: - application/json; charset=utf-8 date: - - Sat, 08 May 2021 00:34:16 GMT + - Fri, 06 Aug 2021 18:53:51 GMT expires: - '-1' pragma: @@ -8233,7 +18456,7 @@ interactions: x-ms-keyvault-region: - westus2 x-ms-keyvault-service-version: - - 1.2.265.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_not_password_encoded_no_policy_2016_10_01.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_not_password_encoded_no_policy_2016_10_01.yaml index 0b36b1e9587a..ade5458f573e 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_not_password_encoded_no_policy_2016_10_01.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_not_password_encoded_no_policy_2016_10_01.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate76a525c1/import?api-version=2016-10-01 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:34 GMT + date: Fri, 06 Aug 2021 18:15:45 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -28,44 +28,45 @@ interactions: resource="https://vault.azure.net" x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate76a525c1/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate76a525c1/import?api-version=2016-10-01 - request: - body: '{"value": "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"}' + body: '{"value": "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"}' headers: Accept: - application/json Content-Length: - - '3501' + - '3329' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate76a525c1/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate76a525c1/e29f39433a824a64aeee3596e372faa7","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportNotPasswordEncodedCertificate76a525c1/e29f39433a824a64aeee3596e372faa7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportNotPasswordEncodedCertificate76a525c1/e29f39433a824a64aeee3596e372faa7","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","cer":"MIIDKDCCAhCgAwIBAgIQfDvNAzhSSh6HHUDV89pfITANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDEwZNeUNlcnQwHhcNMjAwNjI1MTMwMDMzWhcNMjEwNjI1MTMxMDMzWjARMQ8wDQYDVQQDEwZNeUNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQChubMEV/8RtgjNYGw8CMGo6p9VssZjWulzHfnjVcemZ96eYegXh74fIDTdh+J9CK5oHd/qU4IGKR5lRkiEMw7mdPv4FUWRmd1KG1CR9MTShnjL9kaIFv5zYSy9oQZL/wWR4pX3wXV53tD6P42higSrad7wAFV2GanDDBEMNXm7x5o0bvwzNRUMobW9SnYy2wmTIFjQNyHovDWuXLaafMfv4yl59dv1mw6GJkOG6wyHPOEx8auoyQFRU5C3aTzS8gG0AJMW7uwwjSz/sh5sr5pqNu99GOx1ZVANySwKU+Lgjp0P6AKg1uluicsZc/aIFV7ulp+9raz/MXVmTfMOiobbAgMBAAGjfDB6MA4GA1UdDwEB/wQEAwIFoDAJBgNVHRMEAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSMEGDAWgBTjkI1VhBb9cYdl70SJH8tdOV847DAdBgNVHQ4EFgQU45CNVYQW/XGHZe9EiR/LXTlfOOwwDQYJKoZIhvcNAQELBQADggEBAGafeWghsVmVEo6/QGgBRW/hhVWq4MEfW5YOLwmNObpJL3/OEKhUDw9u9to1kWcos/aRj4u+bz3vTqIJxK+i0dEBIo///mkxJhtLLGd6Ks6rXlGgEOG1+m8GvZkUsLOaZsPAFYAgnF091iS7PcNW5VYqvpFvIWgIEVwhE0dBGCUogoBatYZyc+YqWCqbzv8mhui3NgToGoiLW1dFxXbeyeGGee5yyroSDE+6jTbMCzrdX/2fK41J2lOL3Ap/IYtHltCTKIOmlToq6uG2qSyeYGLL63bYo+4ZvpHyjN/5QYQQXS4WMyPw5o9+jcIyONNOEbJoiFUTwsm55A0diDisDlk=","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616465016,"updated":1616465016,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate76a525c1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=MyCert","ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":13,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1616465016,"updated":1616465016}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate76a525c1/2f0b87d9c16e4bec9b42c0830602c584","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportNotPasswordEncodedCertificate76a525c1/2f0b87d9c16e4bec9b42c0830602c584","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportNotPasswordEncodedCertificate76a525c1/2f0b87d9c16e4bec9b42c0830602c584","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273746,"updated":1628273746,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate76a525c1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1628273746,"updated":1628273746}}}' headers: cache-control: no-cache - content-length: '2350' + content-length: '2397' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:35 GMT + date: Fri, 06 Aug 2021 18:15:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate76a525c1/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate76a525c1/import?api-version=2016-10-01 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_not_password_encoded_no_policy_7_0.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_not_password_encoded_no_policy_7_0.yaml index be8b5acc067d..0b2b7af54f1c 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_not_password_encoded_no_policy_7_0.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_not_password_encoded_no_policy_7_0.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739e243e/import?api-version=7.0 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:36 GMT + date: Fri, 06 Aug 2021 18:15:47 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -28,44 +28,45 @@ interactions: resource="https://vault.azure.net" x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739e243e/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739e243e/import?api-version=7.0 - request: - body: '{"value": "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"}' + body: '{"value": "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"}' headers: Accept: - application/json Content-Length: - - '3501' + - '3329' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739e243e/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739e243e/3ea111a99ed348fbb25776ee3e508a2c","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportNotPasswordEncodedCertificate739e243e/3ea111a99ed348fbb25776ee3e508a2c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportNotPasswordEncodedCertificate739e243e/3ea111a99ed348fbb25776ee3e508a2c","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","cer":"MIIDKDCCAhCgAwIBAgIQfDvNAzhSSh6HHUDV89pfITANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDEwZNeUNlcnQwHhcNMjAwNjI1MTMwMDMzWhcNMjEwNjI1MTMxMDMzWjARMQ8wDQYDVQQDEwZNeUNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQChubMEV/8RtgjNYGw8CMGo6p9VssZjWulzHfnjVcemZ96eYegXh74fIDTdh+J9CK5oHd/qU4IGKR5lRkiEMw7mdPv4FUWRmd1KG1CR9MTShnjL9kaIFv5zYSy9oQZL/wWR4pX3wXV53tD6P42higSrad7wAFV2GanDDBEMNXm7x5o0bvwzNRUMobW9SnYy2wmTIFjQNyHovDWuXLaafMfv4yl59dv1mw6GJkOG6wyHPOEx8auoyQFRU5C3aTzS8gG0AJMW7uwwjSz/sh5sr5pqNu99GOx1ZVANySwKU+Lgjp0P6AKg1uluicsZc/aIFV7ulp+9raz/MXVmTfMOiobbAgMBAAGjfDB6MA4GA1UdDwEB/wQEAwIFoDAJBgNVHRMEAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSMEGDAWgBTjkI1VhBb9cYdl70SJH8tdOV847DAdBgNVHQ4EFgQU45CNVYQW/XGHZe9EiR/LXTlfOOwwDQYJKoZIhvcNAQELBQADggEBAGafeWghsVmVEo6/QGgBRW/hhVWq4MEfW5YOLwmNObpJL3/OEKhUDw9u9to1kWcos/aRj4u+bz3vTqIJxK+i0dEBIo///mkxJhtLLGd6Ks6rXlGgEOG1+m8GvZkUsLOaZsPAFYAgnF091iS7PcNW5VYqvpFvIWgIEVwhE0dBGCUogoBatYZyc+YqWCqbzv8mhui3NgToGoiLW1dFxXbeyeGGee5yyroSDE+6jTbMCzrdX/2fK41J2lOL3Ap/IYtHltCTKIOmlToq6uG2qSyeYGLL63bYo+4ZvpHyjN/5QYQQXS4WMyPw5o9+jcIyONNOEbJoiFUTwsm55A0diDisDlk=","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616465017,"updated":1616465017,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739e243e/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=MyCert","ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":13,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1616465017,"updated":1616465017}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739e243e/76279b98c9c14e3c87c247ee90830055","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportNotPasswordEncodedCertificate739e243e/76279b98c9c14e3c87c247ee90830055","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportNotPasswordEncodedCertificate739e243e/76279b98c9c14e3c87c247ee90830055","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273747,"updated":1628273747,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739e243e/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1628273747,"updated":1628273747}}}' headers: cache-control: no-cache - content-length: '2350' + content-length: '2397' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:36 GMT + date: Fri, 06 Aug 2021 18:15:47 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739e243e/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739e243e/import?api-version=7.0 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_not_password_encoded_no_policy_7_1.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_not_password_encoded_no_policy_7_1.yaml index fc3a7d6cf69f..62949745800a 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_not_password_encoded_no_policy_7_1.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_not_password_encoded_no_policy_7_1.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739f243f/import?api-version=7.1 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:37 GMT + date: Fri, 06 Aug 2021 18:15:47 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -28,44 +28,45 @@ interactions: resource="https://vault.azure.net" x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739f243f/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739f243f/import?api-version=7.1 - request: - body: '{"value": "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"}' + body: '{"value": "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"}' headers: Accept: - application/json Content-Length: - - '3501' + - '3329' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739f243f/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739f243f/ddb9884bbcda4973a8de8c9830ae3eb1","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportNotPasswordEncodedCertificate739f243f/ddb9884bbcda4973a8de8c9830ae3eb1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportNotPasswordEncodedCertificate739f243f/ddb9884bbcda4973a8de8c9830ae3eb1","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","cer":"MIIDKDCCAhCgAwIBAgIQfDvNAzhSSh6HHUDV89pfITANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDEwZNeUNlcnQwHhcNMjAwNjI1MTMwMDMzWhcNMjEwNjI1MTMxMDMzWjARMQ8wDQYDVQQDEwZNeUNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQChubMEV/8RtgjNYGw8CMGo6p9VssZjWulzHfnjVcemZ96eYegXh74fIDTdh+J9CK5oHd/qU4IGKR5lRkiEMw7mdPv4FUWRmd1KG1CR9MTShnjL9kaIFv5zYSy9oQZL/wWR4pX3wXV53tD6P42higSrad7wAFV2GanDDBEMNXm7x5o0bvwzNRUMobW9SnYy2wmTIFjQNyHovDWuXLaafMfv4yl59dv1mw6GJkOG6wyHPOEx8auoyQFRU5C3aTzS8gG0AJMW7uwwjSz/sh5sr5pqNu99GOx1ZVANySwKU+Lgjp0P6AKg1uluicsZc/aIFV7ulp+9raz/MXVmTfMOiobbAgMBAAGjfDB6MA4GA1UdDwEB/wQEAwIFoDAJBgNVHRMEAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSMEGDAWgBTjkI1VhBb9cYdl70SJH8tdOV847DAdBgNVHQ4EFgQU45CNVYQW/XGHZe9EiR/LXTlfOOwwDQYJKoZIhvcNAQELBQADggEBAGafeWghsVmVEo6/QGgBRW/hhVWq4MEfW5YOLwmNObpJL3/OEKhUDw9u9to1kWcos/aRj4u+bz3vTqIJxK+i0dEBIo///mkxJhtLLGd6Ks6rXlGgEOG1+m8GvZkUsLOaZsPAFYAgnF091iS7PcNW5VYqvpFvIWgIEVwhE0dBGCUogoBatYZyc+YqWCqbzv8mhui3NgToGoiLW1dFxXbeyeGGee5yyroSDE+6jTbMCzrdX/2fK41J2lOL3Ap/IYtHltCTKIOmlToq6uG2qSyeYGLL63bYo+4ZvpHyjN/5QYQQXS4WMyPw5o9+jcIyONNOEbJoiFUTwsm55A0diDisDlk=","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616465018,"updated":1616465018,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739f243f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=MyCert","ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":13,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1616465018,"updated":1616465018}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739f243f/901df609902440eab3d955b5ffd98586","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportNotPasswordEncodedCertificate739f243f/901df609902440eab3d955b5ffd98586","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportNotPasswordEncodedCertificate739f243f/901df609902440eab3d955b5ffd98586","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273748,"updated":1628273748,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739f243f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1628273748,"updated":1628273748}}}' headers: cache-control: no-cache - content-length: '2371' + content-length: '2418' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:38 GMT + date: Fri, 06 Aug 2021 18:15:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739f243f/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739f243f/import?api-version=7.1 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_not_password_encoded_no_policy_7_2.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_not_password_encoded_no_policy_7_2.yaml index f0c75d4204a6..9bd0e295afe7 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_not_password_encoded_no_policy_7_2.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_not_password_encoded_no_policy_7_2.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate73a02440/import?api-version=7.2 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:32:55 GMT + date: Fri, 06 Aug 2021 18:15:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -29,40 +29,41 @@ interactions: x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized url: https://mcpatinokv.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate73a02440/import?api-version=7.2 - request: - body: '{"value": "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"}' + body: '{"value": "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"}' headers: Accept: - application/json Content-Length: - - '3501' + - '3329' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate73a02440/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate73a02440/88f11923502a4e0cbe203c6d9d9c94bb","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportNotPasswordEncodedCertificate73a02440/88f11923502a4e0cbe203c6d9d9c94bb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportNotPasswordEncodedCertificate73a02440/88f11923502a4e0cbe203c6d9d9c94bb","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","cer":"MIIDKDCCAhCgAwIBAgIQfDvNAzhSSh6HHUDV89pfITANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDEwZNeUNlcnQwHhcNMjAwNjI1MTMwMDMzWhcNMjEwNjI1MTMxMDMzWjARMQ8wDQYDVQQDEwZNeUNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQChubMEV/8RtgjNYGw8CMGo6p9VssZjWulzHfnjVcemZ96eYegXh74fIDTdh+J9CK5oHd/qU4IGKR5lRkiEMw7mdPv4FUWRmd1KG1CR9MTShnjL9kaIFv5zYSy9oQZL/wWR4pX3wXV53tD6P42higSrad7wAFV2GanDDBEMNXm7x5o0bvwzNRUMobW9SnYy2wmTIFjQNyHovDWuXLaafMfv4yl59dv1mw6GJkOG6wyHPOEx8auoyQFRU5C3aTzS8gG0AJMW7uwwjSz/sh5sr5pqNu99GOx1ZVANySwKU+Lgjp0P6AKg1uluicsZc/aIFV7ulp+9raz/MXVmTfMOiobbAgMBAAGjfDB6MA4GA1UdDwEB/wQEAwIFoDAJBgNVHRMEAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSMEGDAWgBTjkI1VhBb9cYdl70SJH8tdOV847DAdBgNVHQ4EFgQU45CNVYQW/XGHZe9EiR/LXTlfOOwwDQYJKoZIhvcNAQELBQADggEBAGafeWghsVmVEo6/QGgBRW/hhVWq4MEfW5YOLwmNObpJL3/OEKhUDw9u9to1kWcos/aRj4u+bz3vTqIJxK+i0dEBIo///mkxJhtLLGd6Ks6rXlGgEOG1+m8GvZkUsLOaZsPAFYAgnF091iS7PcNW5VYqvpFvIWgIEVwhE0dBGCUogoBatYZyc+YqWCqbzv8mhui3NgToGoiLW1dFxXbeyeGGee5yyroSDE+6jTbMCzrdX/2fK41J2lOL3Ap/IYtHltCTKIOmlToq6uG2qSyeYGLL63bYo+4ZvpHyjN/5QYQQXS4WMyPw5o9+jcIyONNOEbJoiFUTwsm55A0diDisDlk=","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1620433976,"updated":1620433976,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate73a02440/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=MyCert","ekus":["1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2"],"key_usage":["digitalSignature","keyEncipherment"],"validity_months":13,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1620433976,"updated":1620433976}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate73a02440/70f31c152d58476ab9876495fadc5862","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportNotPasswordEncodedCertificate73a02440/70f31c152d58476ab9876495fadc5862","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportNotPasswordEncodedCertificate73a02440/70f31c152d58476ab9876495fadc5862","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273748,"updated":1628273748,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate73a02440/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1628273748,"updated":1628273748}}}' headers: cache-control: no-cache - content-length: '2363' + content-length: '2418' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:32:55 GMT + date: Fri, 06 Aug 2021 18:15:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_password_encoded_no_policy_2016_10_01.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_password_encoded_no_policy_2016_10_01.yaml index 5f2ec249affc..5515a0b08734 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_password_encoded_no_policy_2016_10_01.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_password_encoded_no_policy_2016_10_01.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificated9722411/import?api-version=2016-10-01 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:38 GMT + date: Fri, 06 Aug 2021 18:16:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -28,45 +28,46 @@ interactions: resource="https://vault.azure.net" x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificated9722411/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificated9722411/import?api-version=2016-10-01 - request: - body: '{"value": "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234"}' headers: Accept: - application/json Content-Length: - - '3183' + - '3344' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificated9722411/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificated9722411/a6960174cf644731b077976adde8e026","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportPasswordEncodedCertificated9722411/a6960174cf644731b077976adde8e026","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportPasswordEncodedCertificated9722411/a6960174cf644731b077976adde8e026","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465019,"updated":1616465019,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificated9722411/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1616465019,"updated":1616465019}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificated9722411/e42c360724d64528866a2f40a8e2d3d6","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportPasswordEncodedCertificated9722411/e42c360724d64528866a2f40a8e2d3d6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportPasswordEncodedCertificated9722411/e42c360724d64528866a2f40a8e2d3d6","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273781,"updated":1628273781,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificated9722411/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1628273781,"updated":1628273781}}}' headers: cache-control: no-cache - content-length: '1950' + content-length: '2385' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:39 GMT + date: Fri, 06 Aug 2021 18:16:21 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificated9722411/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificated9722411/import?api-version=2016-10-01 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_password_encoded_no_policy_7_0.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_password_encoded_no_policy_7_0.yaml index babf9ee3e453..506800b10b32 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_password_encoded_no_policy_7_0.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_password_encoded_no_policy_7_0.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23b228e/import?api-version=7.0 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:39 GMT + date: Fri, 06 Aug 2021 18:16:21 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -28,45 +28,46 @@ interactions: resource="https://vault.azure.net" x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23b228e/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23b228e/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234"}' headers: Accept: - application/json Content-Length: - - '3183' + - '3344' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23b228e/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23b228e/f0c5f321b11c4a8e84f7fd921df72c19","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportPasswordEncodedCertificatee23b228e/f0c5f321b11c4a8e84f7fd921df72c19","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportPasswordEncodedCertificatee23b228e/f0c5f321b11c4a8e84f7fd921df72c19","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465020,"updated":1616465020,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23b228e/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1616465020,"updated":1616465020}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23b228e/d94cfb7119be443e8b8c6ac9a588f85d","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportPasswordEncodedCertificatee23b228e/d94cfb7119be443e8b8c6ac9a588f85d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportPasswordEncodedCertificatee23b228e/d94cfb7119be443e8b8c6ac9a588f85d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273782,"updated":1628273782,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23b228e/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1628273782,"updated":1628273782}}}' headers: cache-control: no-cache - content-length: '1950' + content-length: '2385' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:40 GMT + date: Fri, 06 Aug 2021 18:16:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23b228e/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23b228e/import?api-version=7.0 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_password_encoded_no_policy_7_1.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_password_encoded_no_policy_7_1.yaml index de5e5b8b829a..9c8da4715cad 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_password_encoded_no_policy_7_1.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_password_encoded_no_policy_7_1.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23c228f/import?api-version=7.1 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:40 GMT + date: Fri, 06 Aug 2021 18:16:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -28,45 +28,46 @@ interactions: resource="https://vault.azure.net" x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23c228f/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23c228f/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123"}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234"}' headers: Accept: - application/json Content-Length: - - '3183' + - '3344' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23c228f/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23c228f/2f842bc46e5d40ccbc15ffa6d8db0f53","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportPasswordEncodedCertificatee23c228f/2f842bc46e5d40ccbc15ffa6d8db0f53","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportPasswordEncodedCertificatee23c228f/2f842bc46e5d40ccbc15ffa6d8db0f53","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465021,"updated":1616465021,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23c228f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1616465021,"updated":1616465021}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23c228f/c143c39fee954f0f868165bdcca929f7","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportPasswordEncodedCertificatee23c228f/c143c39fee954f0f868165bdcca929f7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportPasswordEncodedCertificatee23c228f/c143c39fee954f0f868165bdcca929f7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273783,"updated":1628273783,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23c228f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1628273783,"updated":1628273783}}}' headers: cache-control: no-cache - content-length: '1971' + content-length: '2406' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:42 GMT + date: Fri, 06 Aug 2021 18:16:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23c228f/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23c228f/import?api-version=7.1 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_password_encoded_no_policy_7_2.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_password_encoded_no_policy_7_2.yaml index 598873d7ae1b..3ad935c6689d 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_password_encoded_no_policy_7_2.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_import_certificate_password_encoded_no_policy_7_2.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23d2290/import?api-version=7.2 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:32:56 GMT + date: Fri, 06 Aug 2021 18:16:23 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -29,41 +29,42 @@ interactions: x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized url: https://mcpatinokv.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23d2290/import?api-version=7.2 - request: - body: '{"value": "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234"}' headers: Accept: - application/json Content-Length: - - '3183' + - '3344' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23d2290/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23d2290/38a3ee98e6414d58b18f893fc0182182","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportPasswordEncodedCertificatee23d2290/38a3ee98e6414d58b18f893fc0182182","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportPasswordEncodedCertificatee23d2290/38a3ee98e6414d58b18f893fc0182182","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433976,"updated":1620433976,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23d2290/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1620433976,"updated":1620433976}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23d2290/c6972b167ded4a4aa389fcf63f816a0b","kid":"https://vaultname.vault.azure.net/keys/livekvtestimportPasswordEncodedCertificatee23d2290/c6972b167ded4a4aa389fcf63f816a0b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestimportPasswordEncodedCertificatee23d2290/c6972b167ded4a4aa389fcf63f816a0b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273783,"updated":1628273783,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23d2290/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"EmailContacts"}}],"issuer":{"name":"Unknown"},"attributes":{"enabled":true,"created":1628273783,"updated":1628273783}}}' headers: cache-control: no-cache - content-length: '1963' + content-length: '2406' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:32:57 GMT + date: Fri, 06 Aug 2021 18:16:23 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_2016_10_01.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_2016_10_01.yaml index 889eb2c6c4d9..e9009a3434bc 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_2016_10_01.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_2016_10_01.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert018481322/import?api-version=2016-10-01 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:41 GMT + date: Fri, 06 Aug 2021 18:17:31 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -28,444 +28,712 @@ interactions: resource="https://vault.azure.net" x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert018481322/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert018481322/import?api-version=2016-10-01 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert018481322/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert018481322/5b833fdbb43741f8b2ef8f03bd758db0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert018481322/5b833fdbb43741f8b2ef8f03bd758db0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert018481322/5b833fdbb43741f8b2ef8f03bd758db0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465023,"updated":1616465023,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert018481322/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465023,"updated":1616465023}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert018481322/bb2f343f2a034183aeee6c62bc510f7c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert018481322/bb2f343f2a034183aeee6c62bc510f7c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert018481322/bb2f343f2a034183aeee6c62bc510f7c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273852,"updated":1628273852,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert018481322/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273852,"updated":1628273852}}}' headers: cache-control: no-cache - content-length: '1835' + content-length: '2270' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:42 GMT + date: Fri, 06 Aug 2021 18:17:31 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert018481322/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert018481322/import?api-version=2016-10-01 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert118481322/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert118481322/5ffd708e126c4eedb21ee9023c89896b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert118481322/5ffd708e126c4eedb21ee9023c89896b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert118481322/5ffd708e126c4eedb21ee9023c89896b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465023,"updated":1616465023,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert118481322/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465023,"updated":1616465023}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert118481322/f4fe732b80284358a42a008d2aa50ca2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert118481322/f4fe732b80284358a42a008d2aa50ca2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert118481322/f4fe732b80284358a42a008d2aa50ca2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273853,"updated":1628273853,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert118481322/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273853,"updated":1628273853}}}' headers: cache-control: no-cache - content-length: '1835' + content-length: '2270' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:44 GMT + date: Fri, 06 Aug 2021 18:17:33 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert118481322/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert118481322/import?api-version=2016-10-01 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert218481322/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert218481322/34d61ce651d147e085513b36826e6f22","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert218481322/34d61ce651d147e085513b36826e6f22","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert218481322/34d61ce651d147e085513b36826e6f22","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465024,"updated":1616465024,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert218481322/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465024,"updated":1616465024}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert218481322/3068a12313a94bb98bc531e2d83dfb16","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert218481322/3068a12313a94bb98bc531e2d83dfb16","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert218481322/3068a12313a94bb98bc531e2d83dfb16","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273853,"updated":1628273853,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert218481322/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273853,"updated":1628273853}}}' headers: cache-control: no-cache - content-length: '1835' + content-length: '2270' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:44 GMT + date: Fri, 06 Aug 2021 18:17:33 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert218481322/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert218481322/import?api-version=2016-10-01 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert318481322/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert318481322/22cca0d9fb894fa584be9976412cc0b1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert318481322/22cca0d9fb894fa584be9976412cc0b1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert318481322/22cca0d9fb894fa584be9976412cc0b1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465024,"updated":1616465024,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert318481322/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465024,"updated":1616465024}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert318481322/c3bf4a44425d408081051fad5a7b6344","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert318481322/c3bf4a44425d408081051fad5a7b6344","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert318481322/c3bf4a44425d408081051fad5a7b6344","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273854,"updated":1628273854,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert318481322/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273854,"updated":1628273854}}}' headers: cache-control: no-cache - content-length: '1835' + content-length: '2270' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:45 GMT + date: Fri, 06 Aug 2021 18:17:34 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert318481322/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert318481322/import?api-version=2016-10-01 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert418481322/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert418481322/881c2c3129b7494e92bd8d62837137b6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert418481322/881c2c3129b7494e92bd8d62837137b6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert418481322/881c2c3129b7494e92bd8d62837137b6","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465025,"updated":1616465025,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert418481322/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465025,"updated":1616465025}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert418481322/e7d9d06fb63541cab06a2807822eb1fa","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert418481322/e7d9d06fb63541cab06a2807822eb1fa","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert418481322/e7d9d06fb63541cab06a2807822eb1fa","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273854,"updated":1628273854,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert418481322/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273854,"updated":1628273854}}}' headers: cache-control: no-cache - content-length: '1835' + content-length: '2270' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:45 GMT + date: Fri, 06 Aug 2021 18:17:35 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert418481322/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert418481322/import?api-version=2016-10-01 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert518481322/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert518481322/a0213031673f4d21bb6ac1903d3d3e5c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert518481322/a0213031673f4d21bb6ac1903d3d3e5c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert518481322/a0213031673f4d21bb6ac1903d3d3e5c","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465025,"updated":1616465025,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert518481322/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465025,"updated":1616465025}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert518481322/f25939f4cbe34a9fa19d4493253b932f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert518481322/f25939f4cbe34a9fa19d4493253b932f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert518481322/f25939f4cbe34a9fa19d4493253b932f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273855,"updated":1628273855,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert518481322/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273855,"updated":1628273855}}}' headers: cache-control: no-cache - content-length: '1835' + content-length: '2270' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:45 GMT + date: Fri, 06 Aug 2021 18:17:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert518481322/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert518481322/import?api-version=2016-10-01 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert618481322/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert618481322/5b5bd0ba95c74f6ea2d93fafec16bebf","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert618481322/5b5bd0ba95c74f6ea2d93fafec16bebf","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert618481322/5b5bd0ba95c74f6ea2d93fafec16bebf","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465026,"updated":1616465026,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert618481322/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465026,"updated":1616465026}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert618481322/12ebc1bb437445d0943db231a6fc2b6a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert618481322/12ebc1bb437445d0943db231a6fc2b6a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert618481322/12ebc1bb437445d0943db231a6fc2b6a","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273856,"updated":1628273856,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert618481322/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273856,"updated":1628273856}}}' headers: cache-control: no-cache - content-length: '1835' + content-length: '2270' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:46 GMT + date: Fri, 06 Aug 2021 18:17:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert618481322/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert618481322/import?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=2016-10-01&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?maxresults=6&api-version=2016-10-01 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert-name3dc9196a","x5t":"KeezAPmYJTEInc0lSrE3bjjd28g","attributes":{"enabled":true,"nbf":1616463391,"exp":1679535991,"created":1616463991,"updated":1616463991},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert-nameb4eb1eca","x5t":"u8p1ST181NoIIWCtmXCH6XwrsC8","attributes":{"enabled":true,"nbf":1616462848,"exp":1679535448,"created":1616463448,"updated":1616463448},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert-namee3671be7","x5t":"bvZzF4E96GwpHEU3Vtf-5QMswNg","attributes":{"enabled":true,"nbf":1616463074,"exp":1679535674,"created":1616463674,"updated":1616463674},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert-namefdd31c4d","x5t":"SfvkxzAxGAYDucdicry6krdUax0","attributes":{"enabled":true,"nbf":1616463193,"exp":1679535793,"created":1616463794,"updated":1616463794},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVMVTVCVFVWR1JFUXpNVU0wUkM5UVQweEpRMWtoTURBd01ESTRJVGs1T1RrdE1USXRNekZVTWpNNk5UazZOVGt1T1RrNU9UazVPVm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert018481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273852,"updated":1628273852},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273517,"updated":1628273517},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273522,"updated":1628273522},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273527,"updated":1628273527},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert09fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNRGxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1310' + content-length: '1515' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:46 GMT + date: Fri, 06 Aug 2021 18:17:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates?api-version=2016-10-01&maxresults=6 + url: https://mcpatinokv.vault.azure.net/certificates?maxresults=6&api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVMVTVCVFVWR1JFUXpNVU0wUkM5UVQweEpRMWtoTURBd01ESTRJVGs1T1RrdE1USXRNekZVTWpNNk5UazZOVGt1T1RrNU9UazVPVm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNRGxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert018481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465023,"updated":1616465023},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert118481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465023,"updated":1616465023},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert218481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465024,"updated":1616465024},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert318481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465024,"updated":1616465024},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNekU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert118481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273853,"updated":1628273853},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273518,"updated":1628273518},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273523,"updated":1628273523},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273527,"updated":1628273527},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert19fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert218481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273853,"updated":1628273853},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1289' + content-length: '1751' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:47 GMT + date: Fri, 06 Aug 2021 18:17:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVMVTVCVFVWR1JFUXpNVU0wUkM5UVQweEpRMWtoTURBd01ESTRJVGs1T1RrdE1USXRNekZVTWpNNk5UazZOVGt1T1RrNU9UazVPVm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNRGxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNekU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3bee196a","x5t":"O84QduEd0hE0I_5cla2eReHmwuc","attributes":{"enabled":true,"nbf":1616464193,"exp":1648000793,"created":1616464793,"updated":1616464793},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3bef196b","x5t":"toom9Hfw4OeEfYqnYOtwZW-AVLw","attributes":{"enabled":true,"nbf":1616464354,"exp":1648000954,"created":1616464954,"updated":1616464954},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert418481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465025,"updated":1616465025},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert518481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465025,"updated":1616465025},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert618481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465026,"updated":1616465026},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert626515bc","x5t":"fTaTerFyX5iAldJndSpQQlZiY6s","attributes":{"enabled":true,"nbf":1616463635,"exp":1648000235,"created":1616464235,"updated":1616464235},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakkyTlRFMVFrTXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273518,"updated":1628273518},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273523,"updated":1628273523},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273528,"updated":1628273528},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert29fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert318481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273854,"updated":1628273854},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273519,"updated":1628273519},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNek13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1762' + content-length: '1751' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:47 GMT + date: Fri, 06 Aug 2021 18:17:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNekU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakkyTlRFMVFrTXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNek13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert626615bd","x5t":"ocRUcooFb8J9bXycgpIWKDcNLVg","attributes":{"enabled":true,"nbf":1616463685,"exp":1648000285,"created":1616464285,"updated":1616464285},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf31a1aed","x5t":"hr06PB0NNCN9nA44Q9FD-g9oc-s","attributes":{"enabled":true,"nbf":1616464034,"exp":1648000634,"created":1616464634,"updated":1616464634},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739e243e","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616465017,"updated":1616465017},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRjek9VVXlORE5GTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273529,"updated":1628273529},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert39fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert418481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273854,"updated":1628273854},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273519,"updated":1628273519},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORE13Tnpnd1JqSXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1132' + content-length: '1751' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:47 GMT + date: Fri, 06 Aug 2021 18:17:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakkyTlRFMVFrTXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNek13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRjek9VVXlORE5GTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORE13Tnpnd1JqSXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739f243f","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616465018,"updated":1616465018},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate76a525c1","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616465016,"updated":1616465016},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificated9722411","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465019,"updated":1616465019},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23b228e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465020,"updated":1616465020},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23c228f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465021,"updated":1616465021},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert107f1fff","x5t":"2ETA-VK-aKsRvqn6G8npO4Yrm5k","attributes":{"enabled":true,"nbf":1616464396,"exp":1648000996,"created":1616464996,"updated":1616464996},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSVlRrdE9UMWRPU1ZOVFZVVlNRMFZTVkRFd04wWXhSa1pHTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273529,"updated":1628273529},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert49fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert518481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273855,"updated":1628273855},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273520,"updated":1628273520},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273530,"updated":1628273530},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1939' + content-length: '1751' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:47 GMT + date: Fri, 06 Aug 2021 18:17:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRjek9VVXlORE5GTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORE13Tnpnd1JqSXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSVlRrdE9UMWRPU1ZOVFZVVlNRMFZTVkRFd04wWXhSa1pHTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert10802000","x5t":"rc8BCGFgc8wKA3MqnU-9gq43UkY","attributes":{"enabled":true,"nbf":1616464414,"exp":1648001014,"created":1616465014,"updated":1616465014},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCertf5be2182","x5t":"5FKCYwEk6vejMOnIsnIyRbroklE","attributes":{"enabled":true,"nbf":1616464381,"exp":1648000981,"created":1616464981,"updated":1616464981},"subject":""}],"nextLink":null}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert59fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273515,"updated":1628273515},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert618481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273856,"updated":1628273856},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273520,"updated":1628273520},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273525,"updated":1628273525},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273530,"updated":1628273530},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert69fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273516,"updated":1628273516},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '527' + content-length: '1751' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:47 GMT + date: Fri, 06 Aug 2021 18:17:37 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSVlRrdE9UMWRPU1ZOVFZVVlNRMFZTVkRFd04wWXhSa1pHTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerta57716ef","x5t":"bs8zDoN_L6ut-WtJQjafZf5LMZo","attributes":{"enabled":true,"nbf":1628270787,"exp":1659807387,"created":1628271388,"updated":1628271388},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerte2531341","x5t":"e8fn_F2UY1TfBPQ8GJSPkPRyn7k","attributes":{"enabled":true,"nbf":1628270251,"exp":1659806851,"created":1628270851,"updated":1628270851},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITWtJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '810' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITWtJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273576,"updated":1628273576},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271462,"updated":1628271462},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETUVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '818' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITWtJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETUVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271463,"updated":1628271463},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271464,"updated":1628271464},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271464,"updated":1628271464},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETTBJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1057' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETUVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETTBJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271465,"updated":1628271465},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271465,"updated":1628271465},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271466,"updated":1628271466},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETmtJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1057' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETTBJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETmtJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273536,"updated":1628273536},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273541,"updated":1628273541},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273544,"updated":1628273544},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273548,"updated":1628273548},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1625875913,"updated":1625875913},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport2","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1625878813,"updated":1625878813},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1735' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETmtJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport3","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1626124145,"updated":1626124145},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739e243e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273747,"updated":1628273747},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739f243f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273748,"updated":1628273748},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate73a02440","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273748,"updated":1628273748},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate76a525c1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273746,"updated":1628273746},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate8e0f2344","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273475,"updated":1628273475},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRoRk1FWXlNelEwTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1948' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRoRk1FWXlNelEwTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7321c1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273476,"updated":1628273476},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7421c2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273477,"updated":1628273477},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7521c3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273478,"updated":1628273478},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15132011","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273488,"updated":1628273488},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15142012","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273490,"updated":1628273490},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15152013","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273491,"updated":1628273491},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRVeU1ERXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1970' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRoRk1FWXlNelEwTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRVeU1ERXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificated9722411","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273781,"updated":1628273781},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23b228e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273782,"updated":1628273782},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23c228f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273783,"updated":1628273783},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23d2290","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273783,"updated":1628273783},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatefad02194","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273487,"updated":1628273487},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestpolicyCertificate50fb0ff8","x5t":"ii2-LQ5gejwZ7yWQO1p6xgCEyfE","attributes":{"enabled":true,"nbf":1628270856,"exp":1659807456,"created":1628271456,"updated":1628271456},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSUVQweEpRMWxEUlZKVVNVWkpRMEZVUlRVd1JrSXdSa1k0TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1919' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRVeU1ERXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSUVQweEpRMWxEUlZKVVNVWkpRMEZVUlRVd1JrSXdSa1k0TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert52381d84","x5t":"HE_ZOc3HX3KBdiVd7nMbJpgwQ5c","attributes":{"enabled":true,"nbf":1628270810,"exp":1659807410,"created":1628271410,"updated":1628271410},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/mcpatinosftest2","x5t":"u4vvzavJkU95sWDnEvJ3KC9WORI","attributes":{"enabled":true,"nbf":1625870189,"exp":1657406789,"created":1625870789,"updated":1625870789},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/pem-cert","x5t":"9-_V15wTEmxzVzRImTRCuxULj0w","attributes":{"enabled":true,"nbf":1627059202,"exp":1658595802,"created":1627059802,"updated":1627059802},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/rbac-cert","x5t":"5ZhGBMPs2QJqbOwnQNbburKo_FY","attributes":{"enabled":true,"nbf":1626992126,"exp":1658528726,"created":1626992726,"updated":1626992726},"subject":""}],"nextLink":null}' + headers: + cache-control: no-cache + content-length: '946' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSUVQweEpRMWxEUlZKVVNVWkpRMEZVUlRVd1JrSXdSa1k0TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_7_0.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_7_0.yaml index afc176298075..7e5786032394 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_7_0.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_7_0.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert0979a119f/import?api-version=7.0 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:48 GMT + date: Fri, 06 Aug 2021 18:17:37 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -28,473 +28,770 @@ interactions: resource="https://vault.azure.net" x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert0979a119f/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert0979a119f/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert0979a119f/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979a119f/bb79d4bdd40643a588e1884aad92835e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert0979a119f/bb79d4bdd40643a588e1884aad92835e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert0979a119f/bb79d4bdd40643a588e1884aad92835e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465028,"updated":1616465028,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979a119f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465028,"updated":1616465028}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979a119f/cfecc122b59b4427a921b021fc6dbf7e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert0979a119f/cfecc122b59b4427a921b021fc6dbf7e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert0979a119f/cfecc122b59b4427a921b021fc6dbf7e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273858,"updated":1628273858,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979a119f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273858,"updated":1628273858}}}' headers: cache-control: no-cache - content-length: '1835' + content-length: '2270' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:49 GMT + date: Fri, 06 Aug 2021 18:17:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert0979a119f/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert0979a119f/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert1979a119f/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979a119f/7d8504cfbd654081a0605a2faf17da56","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert1979a119f/7d8504cfbd654081a0605a2faf17da56","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert1979a119f/7d8504cfbd654081a0605a2faf17da56","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465029,"updated":1616465029,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979a119f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465029,"updated":1616465029}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979a119f/a3f623c293f247c2af098911196dc9c5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert1979a119f/a3f623c293f247c2af098911196dc9c5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert1979a119f/a3f623c293f247c2af098911196dc9c5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273859,"updated":1628273859,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979a119f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273859,"updated":1628273859}}}' headers: cache-control: no-cache - content-length: '1835' + content-length: '2270' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:49 GMT + date: Fri, 06 Aug 2021 18:17:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert1979a119f/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert1979a119f/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert2979a119f/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979a119f/78bce6ea1b734ca09f378c02b1ecc047","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert2979a119f/78bce6ea1b734ca09f378c02b1ecc047","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert2979a119f/78bce6ea1b734ca09f378c02b1ecc047","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465029,"updated":1616465029,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979a119f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465029,"updated":1616465029}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979a119f/90b478f45a5f41eeb4fb45d7821b2c0d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert2979a119f/90b478f45a5f41eeb4fb45d7821b2c0d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert2979a119f/90b478f45a5f41eeb4fb45d7821b2c0d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273859,"updated":1628273859,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979a119f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273859,"updated":1628273859}}}' headers: cache-control: no-cache - content-length: '1835' + content-length: '2270' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:50 GMT + date: Fri, 06 Aug 2021 18:17:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert2979a119f/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert2979a119f/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert3979a119f/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979a119f/2c79fa298fd8414ea4a48bc7dc895d87","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert3979a119f/2c79fa298fd8414ea4a48bc7dc895d87","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert3979a119f/2c79fa298fd8414ea4a48bc7dc895d87","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465030,"updated":1616465030,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979a119f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465030,"updated":1616465030}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979a119f/d46688cc999c47cf99d7af79b11917f2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert3979a119f/d46688cc999c47cf99d7af79b11917f2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert3979a119f/d46688cc999c47cf99d7af79b11917f2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273860,"updated":1628273860,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979a119f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273860,"updated":1628273860}}}' headers: cache-control: no-cache - content-length: '1835' + content-length: '2270' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:50 GMT + date: Fri, 06 Aug 2021 18:17:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert3979a119f/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert3979a119f/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert4979a119f/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979a119f/ded1dec2bd2a4717923720e32e82203b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert4979a119f/ded1dec2bd2a4717923720e32e82203b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert4979a119f/ded1dec2bd2a4717923720e32e82203b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465030,"updated":1616465030,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979a119f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465030,"updated":1616465030}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979a119f/23c6f514e6cf467ea4b67b82047396ad","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert4979a119f/23c6f514e6cf467ea4b67b82047396ad","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert4979a119f/23c6f514e6cf467ea4b67b82047396ad","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273860,"updated":1628273860,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979a119f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273860,"updated":1628273860}}}' headers: cache-control: no-cache - content-length: '1835' + content-length: '2270' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:50 GMT + date: Fri, 06 Aug 2021 18:17:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert4979a119f/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert4979a119f/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert5979a119f/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979a119f/6c97accd8a8d4b93a591cd95e409d34d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert5979a119f/6c97accd8a8d4b93a591cd95e409d34d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert5979a119f/6c97accd8a8d4b93a591cd95e409d34d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465031,"updated":1616465031,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979a119f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465031,"updated":1616465031}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979a119f/365080948a5f4be0ac4e09371dea3c2b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert5979a119f/365080948a5f4be0ac4e09371dea3c2b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert5979a119f/365080948a5f4be0ac4e09371dea3c2b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273860,"updated":1628273860,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979a119f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273860,"updated":1628273860}}}' headers: cache-control: no-cache - content-length: '1835' + content-length: '2270' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:51 GMT + date: Fri, 06 Aug 2021 18:17:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert5979a119f/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert5979a119f/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert6979a119f/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979a119f/ef703693aaa34929b9f8825e5172b0b8","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert6979a119f/ef703693aaa34929b9f8825e5172b0b8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert6979a119f/ef703693aaa34929b9f8825e5172b0b8","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465031,"updated":1616465031,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979a119f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465031,"updated":1616465031}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979a119f/b6a5b2650dc444238af11d68e1d6af97","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert6979a119f/b6a5b2650dc444238af11d68e1d6af97","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert6979a119f/b6a5b2650dc444238af11d68e1d6af97","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273861,"updated":1628273861,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979a119f/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273861,"updated":1628273861}}}' headers: cache-control: no-cache - content-length: '1835' + content-length: '2270' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:51 GMT + date: Fri, 06 Aug 2021 18:17:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert6979a119f/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert6979a119f/import?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?maxresults=6&api-version=7.0 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert-name3dc9196a","x5t":"KeezAPmYJTEInc0lSrE3bjjd28g","attributes":{"enabled":true,"nbf":1616463391,"exp":1679535991,"created":1616463991,"updated":1616463991},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert-nameb4eb1eca","x5t":"u8p1ST181NoIIWCtmXCH6XwrsC8","attributes":{"enabled":true,"nbf":1616462848,"exp":1679535448,"created":1616463448,"updated":1616463448},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert-namee3671be7","x5t":"bvZzF4E96GwpHEU3Vtf-5QMswNg","attributes":{"enabled":true,"nbf":1616463074,"exp":1679535674,"created":1616463674,"updated":1616463674},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert-namefdd31c4d","x5t":"SfvkxzAxGAYDucdicry6krdUax0","attributes":{"enabled":true,"nbf":1616463193,"exp":1679535793,"created":1616463794,"updated":1616463794},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVMVTVCVFVWR1JFUXpNVU0wUkM5UVQweEpRMWtoTURBd01ESTRJVGs1T1RrdE1USXRNekZVTWpNNk5UazZOVGt1T1RrNU9UazVPVm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert018481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273852,"updated":1628273852},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273517,"updated":1628273517},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273522,"updated":1628273522},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273527,"updated":1628273527},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273858,"updated":1628273858},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNRGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1303' + content-length: '1508' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:52 GMT + date: Fri, 06 Aug 2021 18:17:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates?api-version=7.0&maxresults=6 + url: https://mcpatinokv.vault.azure.net/certificates?maxresults=6&api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVMVTVCVFVWR1JFUXpNVU0wUkM5UVQweEpRMWtoTURBd01ESTRJVGs1T1RrdE1USXRNekZVTWpNNk5UazZOVGt1T1RrNU9UazVPVm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNRGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert018481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465023,"updated":1616465023},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979a119f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465028,"updated":1616465028},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert118481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465023,"updated":1616465023},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979a119f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465029,"updated":1616465029},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVU5GUWpGRFJETXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert09fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert118481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273853,"updated":1628273853},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273518,"updated":1628273518},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273523,"updated":1628273523},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273527,"updated":1628273527},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273859,"updated":1628273859},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1282' + content-length: '1744' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:52 GMT + date: Fri, 06 Aug 2021 18:17:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVMVTVCVFVWR1JFUXpNVU0wUkM5UVQweEpRMWtoTURBd01ESTRJVGs1T1RrdE1USXRNekZVTWpNNk5UazZOVGt1T1RrNU9UazVPVm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNRGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVU5GUWpGRFJETXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert218481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465024,"updated":1616465024},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979a119f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465029,"updated":1616465029},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert318481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465024,"updated":1616465024},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979a119f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465030,"updated":1616465030},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3bee196a","x5t":"O84QduEd0hE0I_5cla2eReHmwuc","attributes":{"enabled":true,"nbf":1616464193,"exp":1648000793,"created":1616464793,"updated":1616464793},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3bef196b","x5t":"toom9Hfw4OeEfYqnYOtwZW-AVLw","attributes":{"enabled":true,"nbf":1616464354,"exp":1648000954,"created":1616464954,"updated":1616464954},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNMEpGUmpFNU5rSXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert19fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert218481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273853,"updated":1628273853},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273518,"updated":1628273518},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273523,"updated":1628273523},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273528,"updated":1628273528},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273859,"updated":1628273859},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1756' + content-length: '1744' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:52 GMT + date: Fri, 06 Aug 2021 18:17:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVU5GUWpGRFJETXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNMEpGUmpFNU5rSXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert418481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465025,"updated":1616465025},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979a119f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465030,"updated":1616465030},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert518481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465025,"updated":1616465025},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979a119f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465031,"updated":1616465031},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert618481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465026,"updated":1616465026},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert626515bc","x5t":"fTaTerFyX5iAldJndSpQQlZiY6s","attributes":{"enabled":true,"nbf":1616463635,"exp":1648000235,"created":1616464235,"updated":1616464235},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakkyTlRFMVFrTXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert29fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert318481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273854,"updated":1628273854},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273519,"updated":1628273519},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273529,"updated":1628273529},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273860,"updated":1628273860},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNemszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1757' + content-length: '1744' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:52 GMT + date: Fri, 06 Aug 2021 18:17:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNMEpGUmpFNU5rSXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakkyTlRFMVFrTXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNemszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert626615bd","x5t":"ocRUcooFb8J9bXycgpIWKDcNLVg","attributes":{"enabled":true,"nbf":1616463685,"exp":1648000285,"created":1616464285,"updated":1616464285},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979a119f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465031,"updated":1616465031},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf31a1aed","x5t":"hr06PB0NNCN9nA44Q9FD-g9oc-s","attributes":{"enabled":true,"nbf":1616464034,"exp":1648000634,"created":1616464634,"updated":1616464634},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSak14UVRGQlJVUXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert39fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert418481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273854,"updated":1628273854},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273519,"updated":1628273519},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273529,"updated":1628273529},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273860,"updated":1628273860},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1042' + content-length: '1744' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:52 GMT + date: Fri, 06 Aug 2021 18:17:42 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakkyTlRFMVFrTXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNemszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSak14UVRGQlJVUXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739e243e","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616465017,"updated":1616465017},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739f243f","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616465018,"updated":1616465018},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate76a525c1","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616465016,"updated":1616465016},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificated9722411","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465019,"updated":1616465019},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23b228e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465020,"updated":1616465020},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23c228f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465021,"updated":1616465021},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVV5TTBNeU1qaEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert49fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert518481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273855,"updated":1628273855},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273520,"updated":1628273520},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273530,"updated":1628273530},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273860,"updated":1628273860},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1977' + content-length: '1744' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:53 GMT + date: Fri, 06 Aug 2021 18:17:42 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSak14UVRGQlJVUXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVV5TTBNeU1qaEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert107f1fff","x5t":"2ETA-VK-aKsRvqn6G8npO4Yrm5k","attributes":{"enabled":true,"nbf":1616464396,"exp":1648000996,"created":1616464996,"updated":1616464996},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert10802000","x5t":"rc8BCGFgc8wKA3MqnU-9gq43UkY","attributes":{"enabled":true,"nbf":1616464414,"exp":1648001014,"created":1616465014,"updated":1616465014},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCertf5be2182","x5t":"5FKCYwEk6vejMOnIsnIyRbroklE","attributes":{"enabled":true,"nbf":1616464381,"exp":1648000981,"created":1616464981,"updated":1616464981},"subject":""}],"nextLink":null}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert59fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273515,"updated":1628273515},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert618481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273856,"updated":1628273856},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273520,"updated":1628273520},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273525,"updated":1628273525},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273530,"updated":1628273530},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273861,"updated":1628273861},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '777' + content-length: '1744' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:53 GMT + date: Fri, 06 Aug 2021 18:17:42 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVV5TTBNeU1qaEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert69fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273516,"updated":1628273516},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerta57716ef","x5t":"bs8zDoN_L6ut-WtJQjafZf5LMZo","attributes":{"enabled":true,"nbf":1628270787,"exp":1659807387,"created":1628271388,"updated":1628271388},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerte2531341","x5t":"e8fn_F2UY1TfBPQ8GJSPkPRyn7k","attributes":{"enabled":true,"nbf":1628270251,"exp":1659806851,"created":1628270851,"updated":1628270851},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITVVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1039' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:42 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITVVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273576,"updated":1628273576},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271462,"updated":1628271462},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETURJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '811' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:42 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITVVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETURJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271463,"updated":1628271463},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271464,"updated":1628271464},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271464,"updated":1628271464},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETXpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1050' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:42 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETURJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETXpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271465,"updated":1628271465},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271465,"updated":1628271465},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271466,"updated":1628271466},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETmpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1050' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:42 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETXpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETmpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273536,"updated":1628273536},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273541,"updated":1628273541},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273544,"updated":1628273544},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273548,"updated":1628273548},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1625875913,"updated":1625875913},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1498' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:42 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETmpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport2","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1625878813,"updated":1625878813},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport3","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1626124145,"updated":1626124145},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739e243e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273747,"updated":1628273747},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739f243f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273748,"updated":1628273748},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate73a02440","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273748,"updated":1628273748},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate76a525c1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273746,"updated":1628273746},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRjMlFUVXlOVU14TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1905' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:42 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRjMlFUVXlOVU14TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate8e0f2344","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273475,"updated":1628273475},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7321c1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273476,"updated":1628273476},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7421c2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273477,"updated":1628273477},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7521c3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273478,"updated":1628273478},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15132011","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273488,"updated":1628273488},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15142012","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273490,"updated":1628273490},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRReU1ERXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1966' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:42 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRjMlFUVXlOVU14TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRReU1ERXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15152013","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273491,"updated":1628273491},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificated9722411","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273781,"updated":1628273781},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23b228e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273782,"updated":1628273782},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23c228f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273783,"updated":1628273783},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23d2290","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273783,"updated":1628273783},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatefad02194","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273487,"updated":1628273487},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVpCUkRBeU1UazBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1954' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:42 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRReU1ERXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVpCUkRBeU1UazBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestpolicyCertificate50fb0ff8","x5t":"ii2-LQ5gejwZ7yWQO1p6xgCEyfE","attributes":{"enabled":true,"nbf":1628270856,"exp":1659807456,"created":1628271456,"updated":1628271456},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert52381d84","x5t":"HE_ZOc3HX3KBdiVd7nMbJpgwQ5c","attributes":{"enabled":true,"nbf":1628270810,"exp":1659807410,"created":1628271410,"updated":1628271410},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/mcpatinosftest2","x5t":"u4vvzavJkU95sWDnEvJ3KC9WORI","attributes":{"enabled":true,"nbf":1625870189,"exp":1657406789,"created":1625870789,"updated":1625870789},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/pem-cert","x5t":"9-_V15wTEmxzVzRImTRCuxULj0w","attributes":{"enabled":true,"nbf":1627059202,"exp":1658595802,"created":1627059802,"updated":1627059802},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/rbac-cert","x5t":"5ZhGBMPs2QJqbOwnQNbburKo_FY","attributes":{"enabled":true,"nbf":1626992126,"exp":1658528726,"created":1626992726,"updated":1626992726},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5NiFNREF3TURJNElXTmxjblJwWm1sallYUmxMMUpDUVVNdFEwVlNWQzlRVDB4SlExa2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1467' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:42 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVpCUkRBeU1UazBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5NiFNREF3TURJNElXTmxjblJwWm1sallYUmxMMUpDUVVNdFEwVlNWQzlRVDB4SlExa2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[],"nextLink":null}' + headers: + cache-control: no-cache + content-length: '28' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:43 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5NiFNREF3TURJNElXTmxjblJwWm1sallYUmxMMUpDUVVNdFEwVlNWQzlRVDB4SlExa2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_7_1.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_7_1.yaml index b6a13805295a..2ef24f5d0351 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_7_1.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_7_1.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert0979b11a0/import?api-version=7.1 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:53 GMT + date: Fri, 06 Aug 2021 18:17:42 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -28,502 +28,799 @@ interactions: resource="https://vault.azure.net" x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert0979b11a0/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert0979b11a0/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert0979b11a0/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979b11a0/010cec3b0e144b6e97a789517a9b1fe9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert0979b11a0/010cec3b0e144b6e97a789517a9b1fe9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert0979b11a0/010cec3b0e144b6e97a789517a9b1fe9","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465034,"updated":1616465034,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979b11a0/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465034,"updated":1616465034}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979b11a0/39201f7b54914670a62b0e29208fddd7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert0979b11a0/39201f7b54914670a62b0e29208fddd7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert0979b11a0/39201f7b54914670a62b0e29208fddd7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273863,"updated":1628273863,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979b11a0/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273863,"updated":1628273863}}}' headers: cache-control: no-cache - content-length: '1856' + content-length: '2291' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:54 GMT + date: Fri, 06 Aug 2021 18:17:43 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert0979b11a0/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert0979b11a0/import?api-version=7.1 - request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert1979b11a0/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979b11a0/da60c0a962284ca28a168b8c87dcc957","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert1979b11a0/da60c0a962284ca28a168b8c87dcc957","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert1979b11a0/da60c0a962284ca28a168b8c87dcc957","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465034,"updated":1616465034,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979b11a0/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465034,"updated":1616465034}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979b11a0/91a9b5f1a5de4d13a1077fa86a119133","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert1979b11a0/91a9b5f1a5de4d13a1077fa86a119133","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert1979b11a0/91a9b5f1a5de4d13a1077fa86a119133","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273863,"updated":1628273863,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979b11a0/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273863,"updated":1628273863}}}' headers: cache-control: no-cache - content-length: '1856' + content-length: '2291' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:54 GMT + date: Fri, 06 Aug 2021 18:17:43 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert1979b11a0/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert1979b11a0/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert2979b11a0/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979b11a0/4a5f481ec9284166adfe7f1b9ed2f295","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert2979b11a0/4a5f481ec9284166adfe7f1b9ed2f295","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert2979b11a0/4a5f481ec9284166adfe7f1b9ed2f295","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465035,"updated":1616465035,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979b11a0/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465035,"updated":1616465035}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979b11a0/cb33bc65fd504942bbf7991389722e2e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert2979b11a0/cb33bc65fd504942bbf7991389722e2e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert2979b11a0/cb33bc65fd504942bbf7991389722e2e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273864,"updated":1628273864,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979b11a0/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273864,"updated":1628273864}}}' headers: cache-control: no-cache - content-length: '1856' + content-length: '2291' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:55 GMT + date: Fri, 06 Aug 2021 18:17:44 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert2979b11a0/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert2979b11a0/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert3979b11a0/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979b11a0/c3fa7df8b473499e9c3b754f7dab9da5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert3979b11a0/c3fa7df8b473499e9c3b754f7dab9da5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert3979b11a0/c3fa7df8b473499e9c3b754f7dab9da5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465035,"updated":1616465035,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979b11a0/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465035,"updated":1616465035}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979b11a0/40cdeb5798c14eabb9d8717d72959f54","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert3979b11a0/40cdeb5798c14eabb9d8717d72959f54","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert3979b11a0/40cdeb5798c14eabb9d8717d72959f54","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273864,"updated":1628273864,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979b11a0/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273864,"updated":1628273864}}}' headers: cache-control: no-cache - content-length: '1856' + content-length: '2291' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:55 GMT + date: Fri, 06 Aug 2021 18:17:44 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert3979b11a0/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert3979b11a0/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert4979b11a0/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979b11a0/885ff04f1a7a47708192b85a42cdef5c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert4979b11a0/885ff04f1a7a47708192b85a42cdef5c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert4979b11a0/885ff04f1a7a47708192b85a42cdef5c","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465036,"updated":1616465036,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979b11a0/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465036,"updated":1616465036}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979b11a0/bab313a2ad2946edbf429e802332185c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert4979b11a0/bab313a2ad2946edbf429e802332185c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert4979b11a0/bab313a2ad2946edbf429e802332185c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273865,"updated":1628273865,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979b11a0/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273865,"updated":1628273865}}}' headers: cache-control: no-cache - content-length: '1856' + content-length: '2291' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:55 GMT + date: Fri, 06 Aug 2021 18:17:45 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert4979b11a0/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert4979b11a0/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert5979b11a0/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979b11a0/3022b71ed7b0472d8abcea0e8fc39dc4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert5979b11a0/3022b71ed7b0472d8abcea0e8fc39dc4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert5979b11a0/3022b71ed7b0472d8abcea0e8fc39dc4","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465036,"updated":1616465036,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979b11a0/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465036,"updated":1616465036}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979b11a0/ba8f43f8300a453aa41854e0ce46cbb6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert5979b11a0/ba8f43f8300a453aa41854e0ce46cbb6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert5979b11a0/ba8f43f8300a453aa41854e0ce46cbb6","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273865,"updated":1628273865,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979b11a0/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273865,"updated":1628273865}}}' headers: cache-control: no-cache - content-length: '1856' + content-length: '2291' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:56 GMT + date: Fri, 06 Aug 2021 18:17:45 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert5979b11a0/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert5979b11a0/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert6979b11a0/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979b11a0/84ff2d11cd9d4c28b0af7915d0c418c7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert6979b11a0/84ff2d11cd9d4c28b0af7915d0c418c7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert6979b11a0/84ff2d11cd9d4c28b0af7915d0c418c7","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465037,"updated":1616465037,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979b11a0/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465037,"updated":1616465037}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979b11a0/f4d42207df474c2f88b15c4b817c5d31","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert6979b11a0/f4d42207df474c2f88b15c4b817c5d31","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert6979b11a0/f4d42207df474c2f88b15c4b817c5d31","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273866,"updated":1628273866,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979b11a0/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273866,"updated":1628273866}}}' headers: cache-control: no-cache - content-length: '1856' + content-length: '2291' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:57 GMT + date: Fri, 06 Aug 2021 18:17:45 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcert6979b11a0/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert6979b11a0/import?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.1&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?maxresults=6&api-version=7.1 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert-name3dc9196a","x5t":"KeezAPmYJTEInc0lSrE3bjjd28g","attributes":{"enabled":true,"nbf":1616463391,"exp":1679535991,"created":1616463991,"updated":1616463991},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert-nameb4eb1eca","x5t":"u8p1ST181NoIIWCtmXCH6XwrsC8","attributes":{"enabled":true,"nbf":1616462848,"exp":1679535448,"created":1616463448,"updated":1616463448},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert-namee3671be7","x5t":"bvZzF4E96GwpHEU3Vtf-5QMswNg","attributes":{"enabled":true,"nbf":1616463074,"exp":1679535674,"created":1616463674,"updated":1616463674},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert-namefdd31c4d","x5t":"SfvkxzAxGAYDucdicry6krdUax0","attributes":{"enabled":true,"nbf":1616463193,"exp":1679535793,"created":1616463794,"updated":1616463794},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVMVTVCVFVWR1JFUXpNVU0wUkM5UVQweEpRMWtoTURBd01ESTRJVGs1T1RrdE1USXRNekZVTWpNNk5UazZOVGt1T1RrNU9UazVPVm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert018481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273852,"updated":1628273852},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273517,"updated":1628273517},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273522,"updated":1628273522},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273527,"updated":1628273527},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273858,"updated":1628273858},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNRGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1303' + content-length: '1508' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:57 GMT + date: Fri, 06 Aug 2021 18:17:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates?api-version=7.1&maxresults=6 + url: https://mcpatinokv.vault.azure.net/certificates?maxresults=6&api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVMVTVCVFVWR1JFUXpNVU0wUkM5UVQweEpRMWtoTURBd01ESTRJVGs1T1RrdE1USXRNekZVTWpNNk5UazZOVGt1T1RrNU9UazVPVm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNRGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert018481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465023,"updated":1616465023},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979a119f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465028,"updated":1616465028},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979b11a0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465034,"updated":1616465034},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert118481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465023,"updated":1616465023},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979a119f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465029,"updated":1616465029},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979b11a0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465034,"updated":1616465034},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVGszT1VJeE1VRXdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979b11a0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273863,"updated":1628273863},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert09fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert118481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273853,"updated":1628273853},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273518,"updated":1628273518},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273523,"updated":1628273523},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273527,"updated":1628273527},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1758' + content-length: '1744' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:57 GMT + date: Fri, 06 Aug 2021 18:17:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTJJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVMVTVCVFVWR1JFUXpNVU0wUkM5UVQweEpRMWtoTURBd01ESTRJVGs1T1RrdE1USXRNekZVTWpNNk5UazZOVGt1T1RrNU9UazVPVm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNRGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVGszT1VJeE1VRXdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert218481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465024,"updated":1616465024},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979a119f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465029,"updated":1616465029},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979b11a0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465035,"updated":1616465035},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert318481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465024,"updated":1616465024},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNekU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273859,"updated":1628273859},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979b11a0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273863,"updated":1628273863},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert19fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert218481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273853,"updated":1628273853},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273518,"updated":1628273518},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273523,"updated":1628273523},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNak13Tnpnd1JqSXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1282' + content-length: '1744' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:57 GMT + date: Fri, 06 Aug 2021 18:17:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVGszT1VJeE1VRXdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVE13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNekU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNak13Tnpnd1JqSXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979a119f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465030,"updated":1616465030},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979b11a0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465035,"updated":1616465035},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3bee196a","x5t":"O84QduEd0hE0I_5cla2eReHmwuc","attributes":{"enabled":true,"nbf":1616464193,"exp":1648000793,"created":1616464793,"updated":1616464793},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3bef196b","x5t":"toom9Hfw4OeEfYqnYOtwZW-AVLw","attributes":{"enabled":true,"nbf":1616464354,"exp":1648000954,"created":1616464954,"updated":1616464954},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert418481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465025,"updated":1616465025},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979a119f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465030,"updated":1616465030},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273528,"updated":1628273528},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273859,"updated":1628273859},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979b11a0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273864,"updated":1628273864},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert29fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert318481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273854,"updated":1628273854},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273519,"updated":1628273519},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNek13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1756' + content-length: '1744' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:57 GMT + date: Fri, 06 Aug 2021 18:17:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNekU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNak13Tnpnd1JqSXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNek13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979b11a0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465036,"updated":1616465036},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert518481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465025,"updated":1616465025},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979a119f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465031,"updated":1616465031},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979b11a0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465036,"updated":1616465036},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert618481322","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465026,"updated":1616465026},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert626515bc","x5t":"fTaTerFyX5iAldJndSpQQlZiY6s","attributes":{"enabled":true,"nbf":1616463635,"exp":1648000235,"created":1616464235,"updated":1616464235},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakkyTlRFMVFrTXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273529,"updated":1628273529},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273860,"updated":1628273860},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979b11a0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273864,"updated":1628273864},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert39fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert418481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273854,"updated":1628273854},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOREU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1757' + content-length: '1744' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:58 GMT + date: Fri, 06 Aug 2021 18:17:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNek13Tnpjd1JqSXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakkyTlRFMVFrTXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOREU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert626615bd","x5t":"ocRUcooFb8J9bXycgpIWKDcNLVg","attributes":{"enabled":true,"nbf":1616463685,"exp":1648000285,"created":1616464285,"updated":1616464285},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979a119f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465031,"updated":1616465031},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979b11a0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465037,"updated":1616465037},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSRFkzTVRGR05UQXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273519,"updated":1628273519},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273529,"updated":1628273529},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273860,"updated":1628273860},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979b11a0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273865,"updated":1628273865},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert49fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORGxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1043' + content-length: '1744' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:58 GMT + date: Fri, 06 Aug 2021 18:17:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakkyTlRFMVFrTXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOREU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSRFkzTVRGR05UQXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORGxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf31a1aed","x5t":"hr06PB0NNCN9nA44Q9FD-g9oc-s","attributes":{"enabled":true,"nbf":1616464034,"exp":1648000634,"created":1616464634,"updated":1616464634},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739e243e","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616465017,"updated":1616465017},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739f243f","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616465018,"updated":1616465018},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate76a525c1","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1616465016,"updated":1616465016},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificated9722411","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465019,"updated":1616465019},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23b228e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465020,"updated":1616465020},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVV5TTBJeU1qaEZMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert518481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273855,"updated":1628273855},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273520,"updated":1628273520},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273530,"updated":1628273530},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273860,"updated":1628273860},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979b11a0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273865,"updated":1628273865},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVGszT1VJeE1VRXdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1949' + content-length: '1744' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:58 GMT + date: Fri, 06 Aug 2021 18:17:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSRFkzTVRGR05UQXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORGxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVV5TTBJeU1qaEZMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVGszT1VJeE1VRXdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23c228f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465021,"updated":1616465021},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert107f1fff","x5t":"2ETA-VK-aKsRvqn6G8npO4Yrm5k","attributes":{"enabled":true,"nbf":1616464396,"exp":1648000996,"created":1616464996,"updated":1616464996},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert10802000","x5t":"rc8BCGFgc8wKA3MqnU-9gq43UkY","attributes":{"enabled":true,"nbf":1616464414,"exp":1648001014,"created":1616465014,"updated":1616465014},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCertf5be2182","x5t":"5FKCYwEk6vejMOnIsnIyRbroklE","attributes":{"enabled":true,"nbf":1616464381,"exp":1648000981,"created":1616464981,"updated":1616464981},"subject":""}],"nextLink":null}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert59fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273515,"updated":1628273515},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert618481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273856,"updated":1628273856},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273520,"updated":1628273520},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273525,"updated":1628273525},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273530,"updated":1628273530},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273861,"updated":1628273861},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1042' + content-length: '1744' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:58 GMT + date: Fri, 06 Aug 2021 18:17:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVV5TTBJeU1qaEZMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVGszT1VJeE1VRXdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979b11a0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273866,"updated":1628273866},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert69fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273516,"updated":1628273516},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerta57716ef","x5t":"bs8zDoN_L6ut-WtJQjafZf5LMZo","attributes":{"enabled":true,"nbf":1628270787,"exp":1659807387,"created":1628271388,"updated":1628271388},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerte2531341","x5t":"e8fn_F2UY1TfBPQ8GJSPkPRyn7k","attributes":{"enabled":true,"nbf":1628270251,"exp":1659806851,"created":1628270851,"updated":1628270851},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITUVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1275' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:46 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITUVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273576,"updated":1628273576},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITmtJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '572' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:46 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITUVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITmtJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271462,"updated":1628271462},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271463,"updated":1628271463},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271464,"updated":1628271464},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETWtJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1050' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:46 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITmtJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETWtJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271464,"updated":1628271464},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271465,"updated":1628271465},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271465,"updated":1628271465},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETlVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1050' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:46 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETWtJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETlVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271466,"updated":1628271466},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273536,"updated":1628273536},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273541,"updated":1628273541},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273544,"updated":1628273544},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273548,"updated":1628273548},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlJERTNSRVV2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1524' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:47 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETlVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlJERTNSRVV2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1625875913,"updated":1625875913},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport2","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1625878813,"updated":1625878813},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport3","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1626124145,"updated":1626124145},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739e243e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273747,"updated":1628273747},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739f243f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273748,"updated":1628273748},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate73a02440","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273748,"updated":1628273748},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRjelFUQXlORFF3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1868' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:47 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlJERTNSRVV2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRjelFUQXlORFF3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate76a525c1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273746,"updated":1628273746},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate8e0f2344","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273475,"updated":1628273475},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7321c1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273476,"updated":1628273476},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7421c2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273477,"updated":1628273477},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7521c3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273478,"updated":1628273478},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15132011","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273488,"updated":1628273488},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRNeU1ERXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1969' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:47 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRjelFUQXlORFF3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRNeU1ERXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15142012","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273490,"updated":1628273490},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15152013","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273491,"updated":1628273491},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificated9722411","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273781,"updated":1628273781},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23b228e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273782,"updated":1628273782},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23c228f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273783,"updated":1628273783},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23d2290","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273783,"updated":1628273783},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVV5TTBReU1qa3dMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1954' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:47 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRNeU1ERXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVV5TTBReU1qa3dMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatefad02194","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273487,"updated":1628273487},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestpolicyCertificate50fb0ff8","x5t":"ii2-LQ5gejwZ7yWQO1p6xgCEyfE","attributes":{"enabled":true,"nbf":1628270856,"exp":1659807456,"created":1628271456,"updated":1628271456},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert52381d84","x5t":"HE_ZOc3HX3KBdiVd7nMbJpgwQ5c","attributes":{"enabled":true,"nbf":1628270810,"exp":1659807410,"created":1628271410,"updated":1628271410},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/mcpatinosftest2","x5t":"u4vvzavJkU95sWDnEvJ3KC9WORI","attributes":{"enabled":true,"nbf":1625870189,"exp":1657406789,"created":1625870789,"updated":1625870789},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/pem-cert","x5t":"9-_V15wTEmxzVzRImTRCuxULj0w","attributes":{"enabled":true,"nbf":1627059202,"exp":1658595802,"created":1627059802,"updated":1627059802},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5NiFNREF3TURJM0lXTmxjblJwWm1sallYUmxMMUJGVFMxRFJWSlVMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1508' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:47 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVV5TTBReU1qa3dMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5NiFNREF3TURJM0lXTmxjblJwWm1sallYUmxMMUJGVFMxRFJWSlVMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/rbac-cert","x5t":"5ZhGBMPs2QJqbOwnQNbburKo_FY","attributes":{"enabled":true,"nbf":1626992126,"exp":1658528726,"created":1626992726,"updated":1626992726},"subject":""}],"nextLink":null}' + headers: + cache-control: no-cache + content-length: '249' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:47 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5NiFNREF3TURJM0lXTmxjblJwWm1sallYUmxMMUJGVFMxRFJWSlVMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_7_2.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_7_2.yaml index d7fe93bd244a..e70a1cff1f98 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_7_2.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_7_2.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert0979c11a1/import?api-version=7.2 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:32:57 GMT + date: Fri, 06 Aug 2021 18:17:47 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -29,273 +29,273 @@ interactions: x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert0979c11a1/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert0979c11a1/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979c11a1/9340421d2d064df9a7f2120dac75acc4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert0979c11a1/9340421d2d064df9a7f2120dac75acc4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert0979c11a1/9340421d2d064df9a7f2120dac75acc4","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433977,"updated":1620433977,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979c11a1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433977,"updated":1620433977}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979c11a1/27c6ed5e572340ec8580e981cbead313","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert0979c11a1/27c6ed5e572340ec8580e981cbead313","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert0979c11a1/27c6ed5e572340ec8580e981cbead313","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273868,"updated":1628273868,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979c11a1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273868,"updated":1628273868}}}' headers: cache-control: no-cache - content-length: '1848' + content-length: '2291' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:32:57 GMT + date: Fri, 06 Aug 2021 18:17:49 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert0979c11a1/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert1979c11a1/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979c11a1/fecec004c0384f05a133b6e4c9060849","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert1979c11a1/fecec004c0384f05a133b6e4c9060849","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert1979c11a1/fecec004c0384f05a133b6e4c9060849","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433978,"updated":1620433978,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979c11a1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433978,"updated":1620433978}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979c11a1/3ab8ed82064042dcbc50c23faa33e30c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert1979c11a1/3ab8ed82064042dcbc50c23faa33e30c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert1979c11a1/3ab8ed82064042dcbc50c23faa33e30c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273869,"updated":1628273869,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979c11a1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273869,"updated":1628273869}}}' headers: cache-control: no-cache - content-length: '1848' + content-length: '2291' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:32:58 GMT + date: Fri, 06 Aug 2021 18:17:50 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert1979c11a1/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert2979c11a1/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979c11a1/73542ee88ecc4cc2b729b15ba668cd2f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert2979c11a1/73542ee88ecc4cc2b729b15ba668cd2f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert2979c11a1/73542ee88ecc4cc2b729b15ba668cd2f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433978,"updated":1620433978,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979c11a1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433978,"updated":1620433978}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979c11a1/3fbb023dcbed40f7999f63711cb748f7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert2979c11a1/3fbb023dcbed40f7999f63711cb748f7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert2979c11a1/3fbb023dcbed40f7999f63711cb748f7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273870,"updated":1628273870,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979c11a1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273870,"updated":1628273870}}}' headers: cache-control: no-cache - content-length: '1848' + content-length: '2291' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:32:58 GMT + date: Fri, 06 Aug 2021 18:17:51 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert2979c11a1/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert3979c11a1/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979c11a1/1e7f441604ee4122962ffeba549c98b1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert3979c11a1/1e7f441604ee4122962ffeba549c98b1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert3979c11a1/1e7f441604ee4122962ffeba549c98b1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433979,"updated":1620433979,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979c11a1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433979,"updated":1620433979}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979c11a1/73f4da1fd7c7400aa09beb2600826169","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert3979c11a1/73f4da1fd7c7400aa09beb2600826169","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert3979c11a1/73f4da1fd7c7400aa09beb2600826169","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273871,"updated":1628273871,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979c11a1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273871,"updated":1628273871}}}' headers: cache-control: no-cache - content-length: '1848' + content-length: '2291' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:32:59 GMT + date: Fri, 06 Aug 2021 18:17:51 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert3979c11a1/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert4979c11a1/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979c11a1/b376accdb67e4b589fa487ae057772ff","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert4979c11a1/b376accdb67e4b589fa487ae057772ff","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert4979c11a1/b376accdb67e4b589fa487ae057772ff","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433979,"updated":1620433979,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979c11a1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433979,"updated":1620433979}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979c11a1/32ae9f90e23c4b85b548e97553f05d04","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert4979c11a1/32ae9f90e23c4b85b548e97553f05d04","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert4979c11a1/32ae9f90e23c4b85b548e97553f05d04","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273872,"updated":1628273872,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979c11a1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273872,"updated":1628273872}}}' headers: cache-control: no-cache - content-length: '1848' + content-length: '2291' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:32:59 GMT + date: Fri, 06 Aug 2021 18:17:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert4979c11a1/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert5979c11a1/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979c11a1/8228e09b32f34dfc93ec8db942db13cb","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert5979c11a1/8228e09b32f34dfc93ec8db942db13cb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert5979c11a1/8228e09b32f34dfc93ec8db942db13cb","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433980,"updated":1620433980,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979c11a1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433980,"updated":1620433980}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979c11a1/60f38981240a4fd6aa3a26ab98475faf","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert5979c11a1/60f38981240a4fd6aa3a26ab98475faf","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert5979c11a1/60f38981240a4fd6aa3a26ab98475faf","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273873,"updated":1628273873,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979c11a1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273873,"updated":1628273873}}}' headers: cache-control: no-cache - content-length: '1848' + content-length: '2291' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:00 GMT + date: Fri, 06 Aug 2021 18:17:53 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcert5979c11a1/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcert6979c11a1/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979c11a1/7eeef02737c746d483e2373777677271","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert6979c11a1/7eeef02737c746d483e2373777677271","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert6979c11a1/7eeef02737c746d483e2373777677271","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433980,"updated":1620433980,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979c11a1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433980,"updated":1620433980}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979c11a1/34f853c5380543c3bce3a95b3d0abb75","kid":"https://vaultname.vault.azure.net/keys/livekvtestcert6979c11a1/34f853c5380543c3bce3a95b3d0abb75","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcert6979c11a1/34f853c5380543c3bce3a95b3d0abb75","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273874,"updated":1628273874,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979c11a1/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273874,"updated":1628273874}}}' headers: cache-control: no-cache - content-length: '1848' + content-length: '2291' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:00 GMT + date: Fri, 06 Aug 2021 18:17:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -307,169 +307,372 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates?api-version=7.2&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates?maxresults=6&api-version=7.2 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030790f24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433825,"updated":1620433825},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979c11a1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433977,"updated":1620433977},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130790f24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433826,"updated":1620433826},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979c11a1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433978,"updated":1620433978},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230790f24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433826,"updated":1620433826},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNak13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert018481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273852,"updated":1628273852},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273517,"updated":1628273517},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273522,"updated":1628273522},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert030790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273527,"updated":1628273527},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273858,"updated":1628273858},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNRGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache content-length: '1508' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:00 GMT + date: Fri, 06 Aug 2021 18:17:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates?api-version=7.2&maxresults=6 + url: https://mcpatinokv.vault.azure.net/certificates?maxresults=6&api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNak13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNRGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979c11a1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433978,"updated":1620433978},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330790f24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433827,"updated":1620433827},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979c11a1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433979,"updated":1620433979},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3bf0196c","x5t":"OoIQ0T91oiaip2kaIHC1WH-M8d4","attributes":{"enabled":true,"nbf":1620433353,"exp":1651969953,"created":1620433953,"updated":1620433953},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430790f24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433827,"updated":1620433827},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979c11a1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433979,"updated":1620433979},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORGszT1VNeE1VRXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979b11a0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273863,"updated":1628273863},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert0979c11a1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273868,"updated":1628273868},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert09fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert118481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273853,"updated":1628273853},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273518,"updated":1628273518},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273523,"updated":1628273523},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVE13Tnpnd1JqSXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1743' + content-length: '1744' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:00 GMT + date: Fri, 06 Aug 2021 18:17:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNak13Tnprd1JqSTBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNRGszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORGszT1VNeE1VRXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVE13Tnpnd1JqSXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530790f24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433828,"updated":1620433828},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979c11a1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433980,"updated":1620433980},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630790f24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433828,"updated":1620433828},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979c11a1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433980,"updated":1620433980},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerta57716ef","x5t":"fbPGjBZmGM4d-8CTQxstRGoEYSU","attributes":{"enabled":true,"nbf":1620433219,"exp":1651969819,"created":1620433819,"updated":1620433819},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVRVFUzTnpFMlJVWXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert130790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273527,"updated":1628273527},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273859,"updated":1628273859},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979b11a0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273863,"updated":1628273863},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1979c11a1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273869,"updated":1628273869},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert19fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273513,"updated":1628273513},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert218481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273853,"updated":1628273853},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1507' + content-length: '1744' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:00 GMT + date: Fri, 06 Aug 2021 18:17:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORGszT1VNeE1VRXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNVE13Tnpnd1JqSXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVRVFUzTnpFMlJVWXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerte2531341","x5t":"Hz4uDPqFcuvZ6ZE0XYmEJ0mpzho","attributes":{"enabled":true,"nbf":1620433102,"exp":1651969702,"created":1620433702,"updated":1620433702},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITXpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273518,"updated":1628273518},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273523,"updated":1628273523},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert230790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273528,"updated":1628273528},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273859,"updated":1628273859},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979b11a0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273864,"updated":1628273864},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert2979c11a1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273870,"updated":1628273870},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamszT1VNeE1VRXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '568' + content-length: '1744' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:00 GMT + date: Fri, 06 Aug 2021 18:17:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVRVFUzTnpFMlJVWXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITXpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamszT1VNeE1VRXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433776,"updated":1620433776},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433777,"updated":1620433777},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETWpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert29fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert318481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273854,"updated":1628273854},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273519,"updated":1628273519},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert330790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273529,"updated":1628273529},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273860,"updated":1628273860},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNemszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1050' + content-length: '1744' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamszT1VNeE1VRXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNemszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979b11a0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273864,"updated":1628273864},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert3979c11a1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273871,"updated":1628273871},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert39fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert418481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273854,"updated":1628273854},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273519,"updated":1628273519},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORE13Tnpnd1JqSXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1744' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNemszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORE13Tnpnd1JqSXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert430790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273529,"updated":1628273529},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273860,"updated":1628273860},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979b11a0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273865,"updated":1628273865},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert4979c11a1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273872,"updated":1628273872},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert49fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273514,"updated":1628273514},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert518481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273855,"updated":1628273855},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVEU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1744' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVORE13Tnpnd1JqSXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVEU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273520,"updated":1628273520},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273524,"updated":1628273524},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert530790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273530,"updated":1628273530},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273860,"updated":1628273860},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979b11a0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273865,"updated":1628273865},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert5979c11a1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273873,"updated":1628273873},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVGszT1VNeE1VRXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1744' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVEU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVGszT1VNeE1VRXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert59fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273515,"updated":1628273515},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert618481322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273856,"updated":1628273856},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630770f22","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273520,"updated":1628273520},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630780f23","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273525,"updated":1628273525},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert630790f24","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273530,"updated":1628273530},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979a119f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273861,"updated":1628273861},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1744' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOVGszT1VNeE1VRXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979b11a0","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273866,"updated":1628273866},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert6979c11a1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273874,"updated":1628273874},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert69fab10a5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273516,"updated":1628273516},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerta57716ef","x5t":"bs8zDoN_L6ut-WtJQjafZf5LMZo","attributes":{"enabled":true,"nbf":1628270787,"exp":1659807387,"created":1628271388,"updated":1628271388},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcerte2531341","x5t":"e8fn_F2UY1TfBPQ8GJSPkPRyn7k","attributes":{"enabled":true,"nbf":1628270251,"exp":1659806851,"created":1628270851,"updated":1628270851},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSamMyT0RFelFqa3ZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1506' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOamszT1VFeE1UbEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSamMyT0RFelFqa3ZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITlVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '334' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSamMyT0RFelFqa3ZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITlVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6b48f15f3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273576,"updated":1628273576},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271462,"updated":1628271462},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271463,"updated":1628271463},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271464,"updated":1628271464},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETWpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1289' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:00 GMT + date: Fri, 06 Aug 2021 18:17:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITXpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITlVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETWpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433778,"updated":1620433778},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433779,"updated":1620433779},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertserialize3","x5t":"DOg7nSJhUPuFdlafxvEb34kYeR0","attributes":{"enabled":true,"nbf":1619561103,"exp":1651097703,"created":1619561704,"updated":1619561704},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433756,"updated":1620433756},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlJERTNSRVV2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271464,"updated":1628271464},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271465,"updated":1628271465},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271465,"updated":1628271465},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETlRJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' headers: cache-control: no-cache - content-length: '1286' + content-length: '1050' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:01 GMT + date: Fri, 06 Aug 2021 18:17:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -481,56 +684,172 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETlRJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628271466,"updated":1628271466},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver8404195f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273536,"updated":1628273536},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ab17dc","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273541,"updated":1628273541},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ac17dd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273544,"updated":1628273544},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlF6RTNSRVF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1286' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:55 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETlRJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlF6RTNSRVF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertverd7ad17de","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273548,"updated":1628273548},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1625875913,"updated":1625875913},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport2","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1625878813,"updated":1625878813},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimport3","x5t":"oZnpichumSYIHBU2hOzLZbc2fpw","attributes":{"enabled":true,"nbf":1625865179,"exp":4779465179,"created":1626124145,"updated":1626124145},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739e243e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273747,"updated":1628273747},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate739f243f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273748,"updated":1628273748},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRjek9VWXlORE5HTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1840' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:55 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlF6RTNSRVF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRjek9VWXlORE5HTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate73a02440","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273748,"updated":1628273748},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate76a525c1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273746,"updated":1628273746},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate8e0f2344","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273475,"updated":1628273475},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7321c1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273476,"updated":1628273476},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7421c2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273477,"updated":1628273477},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7521c3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273478,"updated":1628273478},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRsRE56VXlNVU16TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1977' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:55 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRjek9VWXlORE5HTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRsRE56VXlNVU16TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + response: + body: + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15132011","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273488,"updated":1628273488},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15142012","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273490,"updated":1628273490},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15152013","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273491,"updated":1628273491},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificated9722411","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273781,"updated":1628273781},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23b228e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273782,"updated":1628273782},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23c228f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273783,"updated":1628273783},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVV5TTBNeU1qaEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + headers: + cache-control: no-cache + content-length: '1954' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:17:55 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRsRE56VXlNVU16TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlJERTNSRVV2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVV5TTBNeU1qaEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate73a02440","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1620433976,"updated":1620433976},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportNotPasswordEncodedCertificate9c7521c3","x5t":"Yj07xp_eOJMn7HPlahwQbKs9Eg8","attributes":{"enabled":true,"nbf":1593090033,"exp":1624626633,"created":1620433824,"updated":1620433824},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificate15152013","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433752,"updated":1620433752},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23d2290","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433976,"updated":1620433976},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestpolicyCertificate50fb0ff8","x5t":"nEYq8jEV49Ry3OWHsS8j5fYsuGE","attributes":{"enabled":true,"nbf":1620433174,"exp":1651969774,"created":1620433774,"updated":1620433774},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert10812001","x5t":"LWhDFH72xWlU3FfweN5-Bm4hc8c","attributes":{"enabled":true,"nbf":1620433371,"exp":1651969971,"created":1620433971,"updated":1620433971},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSVlRrdE9UMWRPU1ZOVFZVVlNRMFZTVkRFd09ERXlNREF4TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatee23d2290","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273783,"updated":1628273783},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestimportPasswordEncodedCertificatefad02194","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273487,"updated":1628273487},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestpolicyCertificate50fb0ff8","x5t":"ii2-LQ5gejwZ7yWQO1p6xgCEyfE","attributes":{"enabled":true,"nbf":1628270856,"exp":1659807456,"created":1628271456,"updated":1628271456},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert52381d84","x5t":"HE_ZOc3HX3KBdiVd7nMbJpgwQ5c","attributes":{"enabled":true,"nbf":1628270810,"exp":1659807410,"created":1628271410,"updated":1628271410},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/mcpatinosftest2","x5t":"u4vvzavJkU95sWDnEvJ3KC9WORI","attributes":{"enabled":true,"nbf":1625870189,"exp":1657406789,"created":1625870789,"updated":1625870789},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDQhTURBd01ETTBJV05sY25ScFptbGpZWFJsTDAxRFVFRlVTVTVQVTBaVVJWTlVNaTlRVDB4SlExa2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '1903' + content-length: '1562' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:01 GMT + date: Fri, 06 Aug 2021 18:17:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTUkRkQlJERTNSRVV2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVV5TTBNeU1qaEdMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSVlRrdE9UMWRPU1ZOVFZVVlNRMFZTVkRFd09ERXlNREF4TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDQhTURBd01ETTBJV05sY25ScFptbGpZWFJsTDAxRFVFRlVTVTVQVTBaVVJWTlVNaTlRVDB4SlExa2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestunknownIssuerCert52381d84","x5t":"KPGO24Va-irLzCs3xgY7KB4u8jQ","attributes":{"enabled":true,"nbf":1620433147,"exp":1651969747,"created":1620433747,"updated":1620433747},"subject":""}],"nextLink":null}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/pem-cert","x5t":"9-_V15wTEmxzVzRImTRCuxULj0w","attributes":{"enabled":true,"nbf":1627059202,"exp":1658595802,"created":1627059802,"updated":1627059802},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/rbac-cert","x5t":"5ZhGBMPs2QJqbOwnQNbburKo_FY","attributes":{"enabled":true,"nbf":1626992126,"exp":1658528726,"created":1626992726,"updated":1626992726},"subject":""}],"nextLink":null}' headers: cache-control: no-cache - content-length: '275' + content-length: '470' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:01 GMT + date: Fri, 06 Aug 2021 18:17:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSVlRrdE9UMWRPU1ZOVFZVVlNRMFZTVkRFd09ERXlNREF4TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDQhTURBd01ETTBJV05sY25ScFptbGpZWFJsTDAxRFVFRlVTVTVQVTBaVVJWTlVNaTlRVDB4SlExa2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_certificate_versions_2016_10_01.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_certificate_versions_2016_10_01.yaml index 6b26e91ed13e..685d89d2efc1 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_certificate_versions_2016_10_01.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_certificate_versions_2016_10_01.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:03:58 GMT + date: Fri, 06 Aug 2021 18:17:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -28,328 +28,335 @@ interactions: resource="https://vault.azure.net" x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/ac153717d4034b20a679d94cada0af20","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver30e21bdc/ac153717d4034b20a679d94cada0af20","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver30e21bdc/ac153717d4034b20a679d94cada0af20","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465040,"updated":1616465040,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465040,"updated":1616465040}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/38c779983f764a11aa17a56150e16751","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver30e21bdc/38c779983f764a11aa17a56150e16751","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver30e21bdc/38c779983f764a11aa17a56150e16751","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273876,"updated":1628273876,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273876,"updated":1628273876}}}' headers: cache-control: no-cache - content-length: '1843' + content-length: '2278' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:00 GMT + date: Fri, 06 Aug 2021 18:17:56 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/cdb4e8445a204c8088e71107edd5556c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver30e21bdc/cdb4e8445a204c8088e71107edd5556c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver30e21bdc/cdb4e8445a204c8088e71107edd5556c","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465041,"updated":1616465041,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465040,"updated":1616465041}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/99feb31f5a314594bd926b4899a944e3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver30e21bdc/99feb31f5a314594bd926b4899a944e3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver30e21bdc/99feb31f5a314594bd926b4899a944e3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273877,"updated":1628273877,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273876,"updated":1628273877}}}' headers: cache-control: no-cache - content-length: '1843' + content-length: '2278' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:01 GMT + date: Fri, 06 Aug 2021 18:17:56 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/331bc42311b9411a8b8baf9751a02a6d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver30e21bdc/331bc42311b9411a8b8baf9751a02a6d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver30e21bdc/331bc42311b9411a8b8baf9751a02a6d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465041,"updated":1616465041,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465040,"updated":1616465041}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/90e9bcbc06fd4556a3fa59c6ff0eafa3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver30e21bdc/90e9bcbc06fd4556a3fa59c6ff0eafa3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver30e21bdc/90e9bcbc06fd4556a3fa59c6ff0eafa3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273877,"updated":1628273877,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273876,"updated":1628273877}}}' headers: cache-control: no-cache - content-length: '1843' + content-length: '2278' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:01 GMT + date: Fri, 06 Aug 2021 18:17:57 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/a1eeb6b376f5492a8d510bd973147e06","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver30e21bdc/a1eeb6b376f5492a8d510bd973147e06","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver30e21bdc/a1eeb6b376f5492a8d510bd973147e06","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465042,"updated":1616465042,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465040,"updated":1616465042}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/f00df9830b35495aa1cbde2216449f65","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver30e21bdc/f00df9830b35495aa1cbde2216449f65","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver30e21bdc/f00df9830b35495aa1cbde2216449f65","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273878,"updated":1628273878,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273876,"updated":1628273878}}}' headers: cache-control: no-cache - content-length: '1843' + content-length: '2278' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:02 GMT + date: Fri, 06 Aug 2021 18:17:57 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/aa52c0acdcce474bb07f484efe738add","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver30e21bdc/aa52c0acdcce474bb07f484efe738add","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver30e21bdc/aa52c0acdcce474bb07f484efe738add","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465042,"updated":1616465042,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465040,"updated":1616465042}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/f5629cf4528247a4b4314ebb91ffec44","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver30e21bdc/f5629cf4528247a4b4314ebb91ffec44","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver30e21bdc/f5629cf4528247a4b4314ebb91ffec44","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273878,"updated":1628273878,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273876,"updated":1628273878}}}' headers: cache-control: no-cache - content-length: '1843' + content-length: '2278' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:03 GMT + date: Fri, 06 Aug 2021 18:17:59 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/144ec2b148cd49e7bb7a33e764258e8a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver30e21bdc/144ec2b148cd49e7bb7a33e764258e8a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver30e21bdc/144ec2b148cd49e7bb7a33e764258e8a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465043,"updated":1616465043,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465040,"updated":1616465043}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/48ba8883b94d4eb7ad3c6e9b97b61497","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver30e21bdc/48ba8883b94d4eb7ad3c6e9b97b61497","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver30e21bdc/48ba8883b94d4eb7ad3c6e9b97b61497","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273879,"updated":1628273879,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273876,"updated":1628273879}}}' headers: cache-control: no-cache - content-length: '1843' + content-length: '2278' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:03 GMT + date: Fri, 06 Aug 2021 18:17:59 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/a29968b572ec4268bccf3417f2d4fc89","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver30e21bdc/a29968b572ec4268bccf3417f2d4fc89","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver30e21bdc/a29968b572ec4268bccf3417f2d4fc89","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465043,"updated":1616465043,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465040,"updated":1616465043}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/f0053214d45f43c5853075d21abf342f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver30e21bdc/f0053214d45f43c5853075d21abf342f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver30e21bdc/f0053214d45f43c5853075d21abf342f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273879,"updated":1628273879,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273876,"updated":1628273879}}}' headers: cache-control: no-cache - content-length: '1843' + content-length: '2278' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:04 GMT + date: Fri, 06 Aug 2021 18:18:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver30e21bdc/import?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/versions?api-version=2016-10-01&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/versions?maxresults=6&api-version=2016-10-01 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/144ec2b148cd49e7bb7a33e764258e8a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465043,"updated":1616465043},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/331bc42311b9411a8b8baf9751a02a6d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465041,"updated":1616465041},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/a1eeb6b376f5492a8d510bd973147e06","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465042,"updated":1616465042},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/a29968b572ec4268bccf3417f2d4fc89","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465043,"updated":1616465043},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/aa52c0acdcce474bb07f484efe738add","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465042,"updated":1616465042},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/ac153717d4034b20a679d94cada0af20","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465040,"updated":1616465040},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates/livekvtestcertver30e21bdc/versions?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTXpCRk1qRkNSRU12VmtWU1UwbFBUbE12UTBSQ05FVTRORFExUVRJd05FTTRNRGc0UlRjeE1UQTNSVVJFTlRVMU5rTWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/38c779983f764a11aa17a56150e16751","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273876,"updated":1628273876},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/48ba8883b94d4eb7ad3c6e9b97b61497","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273879,"updated":1628273879},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/90e9bcbc06fd4556a3fa59c6ff0eafa3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273877,"updated":1628273877},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/99feb31f5a314594bd926b4899a944e3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273877,"updated":1628273877},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/f0053214d45f43c5853075d21abf342f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273879,"updated":1628273879},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/f00df9830b35495aa1cbde2216449f65","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273878,"updated":1628273878},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates/livekvtestcertver30e21bdc/versions?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTXpCRk1qRkNSRU12VmtWU1UwbFBUbE12UmpVMk1qbERSalExTWpneU5EZEJORUkwTXpFMFJVSkNPVEZHUmtWRE5EUWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '2074' + content-length: '2060' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:04 GMT + date: Fri, 06 Aug 2021 18:18:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver30e21bdc/versions?api-version=2016-10-01&maxresults=6 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver30e21bdc/versions?maxresults=6&api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates/livekvtestcertver30e21bdc/versions?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTXpCRk1qRkNSRU12VmtWU1UwbFBUbE12UTBSQ05FVTRORFExUVRJd05FTTRNRGc0UlRjeE1UQTNSVVJFTlRVMU5rTWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates/livekvtestcertver30e21bdc/versions?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTXpCRk1qRkNSRU12VmtWU1UwbFBUbE12UmpVMk1qbERSalExTWpneU5EZEJORUkwTXpFMFJVSkNPVEZHUmtWRE5EUWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/cdb4e8445a204c8088e71107edd5556c","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465041,"updated":1616465041},"subject":""}],"nextLink":null}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver30e21bdc/f5629cf4528247a4b4314ebb91ffec44","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273878,"updated":1628273878},"subject":""}],"nextLink":null}' headers: cache-control: no-cache - content-length: '300' + content-length: '298' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:04 GMT + date: Fri, 06 Aug 2021 18:18:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates/livekvtestcertver30e21bdc/versions?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTXpCRk1qRkNSRU12VmtWU1UwbFBUbE12UTBSQ05FVTRORFExUVRJd05FTTRNRGc0UlRjeE1UQTNSVVJFTlRVMU5rTWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates/livekvtestcertver30e21bdc/versions?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTXpCRk1qRkNSRU12VmtWU1UwbFBUbE12UmpVMk1qbERSalExTWpneU5EZEJORUkwTXpFMFJVSkNPVEZHUmtWRE5EUWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_certificate_versions_7_0.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_certificate_versions_7_0.yaml index 3b3e118eed23..46e498ce8087 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_certificate_versions_7_0.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_certificate_versions_7_0.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:05 GMT + date: Fri, 06 Aug 2021 18:18:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -28,328 +28,335 @@ interactions: resource="https://vault.azure.net" x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/8ba69997a2ca44fb9ebbb89116ca2a07","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731e1a59/8ba69997a2ca44fb9ebbb89116ca2a07","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731e1a59/8ba69997a2ca44fb9ebbb89116ca2a07","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465045,"updated":1616465045,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465045,"updated":1616465045}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/dec3f726bab44940903d94d1c237853f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731e1a59/dec3f726bab44940903d94d1c237853f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731e1a59/dec3f726bab44940903d94d1c237853f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273880,"updated":1628273880,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273880,"updated":1628273880}}}' headers: cache-control: no-cache - content-length: '1843' + content-length: '2278' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:05 GMT + date: Fri, 06 Aug 2021 18:18:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/13670e1b9ae44944852e6eb79941c425","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731e1a59/13670e1b9ae44944852e6eb79941c425","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731e1a59/13670e1b9ae44944852e6eb79941c425","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465045,"updated":1616465045,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465045,"updated":1616465045}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/751199a2448d49f784fa3a9b13757aa6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731e1a59/751199a2448d49f784fa3a9b13757aa6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731e1a59/751199a2448d49f784fa3a9b13757aa6","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273881,"updated":1628273881,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273880,"updated":1628273881}}}' headers: cache-control: no-cache - content-length: '1843' + content-length: '2278' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:06 GMT + date: Fri, 06 Aug 2021 18:18:01 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/2385c10741764e2aa13d98cec7a226a2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731e1a59/2385c10741764e2aa13d98cec7a226a2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731e1a59/2385c10741764e2aa13d98cec7a226a2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465046,"updated":1616465046,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465045,"updated":1616465046}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/2135a44c85de4ff297f3d3e23b4a97e8","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731e1a59/2135a44c85de4ff297f3d3e23b4a97e8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731e1a59/2135a44c85de4ff297f3d3e23b4a97e8","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273881,"updated":1628273881,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273880,"updated":1628273881}}}' headers: cache-control: no-cache - content-length: '1843' + content-length: '2278' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:06 GMT + date: Fri, 06 Aug 2021 18:18:01 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/610a11d9c2fe41ad8c468f0a242106f0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731e1a59/610a11d9c2fe41ad8c468f0a242106f0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731e1a59/610a11d9c2fe41ad8c468f0a242106f0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465046,"updated":1616465046,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465045,"updated":1616465046}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/a09e3e5bc95942ad8a9f32398594d8fd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731e1a59/a09e3e5bc95942ad8a9f32398594d8fd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731e1a59/a09e3e5bc95942ad8a9f32398594d8fd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273882,"updated":1628273882,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273880,"updated":1628273882}}}' headers: cache-control: no-cache - content-length: '1843' + content-length: '2278' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:07 GMT + date: Fri, 06 Aug 2021 18:18:02 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/e3e36471279543a4974c23f82e3d2460","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731e1a59/e3e36471279543a4974c23f82e3d2460","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731e1a59/e3e36471279543a4974c23f82e3d2460","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465047,"updated":1616465047,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465045,"updated":1616465047}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/c78cdbb3f4404d148fcd562d94f6f720","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731e1a59/c78cdbb3f4404d148fcd562d94f6f720","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731e1a59/c78cdbb3f4404d148fcd562d94f6f720","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273882,"updated":1628273882,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273880,"updated":1628273882}}}' headers: cache-control: no-cache - content-length: '1843' + content-length: '2278' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:07 GMT + date: Fri, 06 Aug 2021 18:18:02 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/1d33ea96d49e44cd89cc9ee0786e060b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731e1a59/1d33ea96d49e44cd89cc9ee0786e060b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731e1a59/1d33ea96d49e44cd89cc9ee0786e060b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465048,"updated":1616465048,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465045,"updated":1616465048}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/0796b159464d42abb43079a9fd23abad","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731e1a59/0796b159464d42abb43079a9fd23abad","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731e1a59/0796b159464d42abb43079a9fd23abad","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273883,"updated":1628273883,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273880,"updated":1628273883}}}' headers: cache-control: no-cache - content-length: '1843' + content-length: '2278' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:08 GMT + date: Fri, 06 Aug 2021 18:18:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/15fd1dace4e0493bae9df9732658517f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731e1a59/15fd1dace4e0493bae9df9732658517f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731e1a59/15fd1dace4e0493bae9df9732658517f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465048,"updated":1616465048,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465045,"updated":1616465048}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/8bb7a849ab914997a7f7600e4e1449a2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731e1a59/8bb7a849ab914997a7f7600e4e1449a2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731e1a59/8bb7a849ab914997a7f7600e4e1449a2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273883,"updated":1628273883,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273880,"updated":1628273883}}}' headers: cache-control: no-cache - content-length: '1843' + content-length: '2278' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:08 GMT + date: Fri, 06 Aug 2021 18:18:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731e1a59/import?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/versions?api-version=7.0&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/versions?maxresults=6&api-version=7.0 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/13670e1b9ae44944852e6eb79941c425","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465045,"updated":1616465045},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/15fd1dace4e0493bae9df9732658517f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465048,"updated":1616465048},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/1d33ea96d49e44cd89cc9ee0786e060b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465048,"updated":1616465048},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/2385c10741764e2aa13d98cec7a226a2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465046,"updated":1616465046},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/610a11d9c2fe41ad8c468f0a242106f0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465046,"updated":1616465046},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/8ba69997a2ca44fb9ebbb89116ca2a07","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465045,"updated":1616465045},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates/livekvtestcertver731e1a59/versions?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJURkJOVGt2VmtWU1UwbFBUbE12UlRORk16WTBOekV5TnprMU5ETkJORGszTkVNeU0wWTRNa1V6UkRJME5qQWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/0796b159464d42abb43079a9fd23abad","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273883,"updated":1628273883},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/2135a44c85de4ff297f3d3e23b4a97e8","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273881,"updated":1628273881},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/751199a2448d49f784fa3a9b13757aa6","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273881,"updated":1628273881},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/8bb7a849ab914997a7f7600e4e1449a2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273883,"updated":1628273883},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/a09e3e5bc95942ad8a9f32398594d8fd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273882,"updated":1628273882},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/c78cdbb3f4404d148fcd562d94f6f720","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273882,"updated":1628273882},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates/livekvtestcertver731e1a59/versions?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJURkJOVGt2VmtWU1UwbFBUbE12UkVWRE0wWTNNalpDUVVJME5EazBNRGt3TTBRNU5FUXhRekl6TnpnMU0wWWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '2067' + content-length: '2053' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:08 GMT + date: Fri, 06 Aug 2021 18:18:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731e1a59/versions?api-version=7.0&maxresults=6 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731e1a59/versions?maxresults=6&api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates/livekvtestcertver731e1a59/versions?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJURkJOVGt2VmtWU1UwbFBUbE12UlRORk16WTBOekV5TnprMU5ETkJORGszTkVNeU0wWTRNa1V6UkRJME5qQWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates/livekvtestcertver731e1a59/versions?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJURkJOVGt2VmtWU1UwbFBUbE12UkVWRE0wWTNNalpDUVVJME5EazBNRGt3TTBRNU5FUXhRekl6TnpnMU0wWWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/e3e36471279543a4974c23f82e3d2460","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465047,"updated":1616465047},"subject":""}],"nextLink":null}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731e1a59/dec3f726bab44940903d94d1c237853f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273880,"updated":1628273880},"subject":""}],"nextLink":null}' headers: cache-control: no-cache - content-length: '300' + content-length: '298' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:09 GMT + date: Fri, 06 Aug 2021 18:18:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates/livekvtestcertver731e1a59/versions?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJURkJOVGt2VmtWU1UwbFBUbE12UlRORk16WTBOekV5TnprMU5ETkJORGszTkVNeU0wWTRNa1V6UkRJME5qQWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates/livekvtestcertver731e1a59/versions?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJURkJOVGt2VmtWU1UwbFBUbE12UkVWRE0wWTNNalpDUVVJME5EazBNRGt3TTBRNU5FUXhRekl6TnpnMU0wWWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_certificate_versions_7_1.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_certificate_versions_7_1.yaml index 234ec952ddfd..b520f9223063 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_certificate_versions_7_1.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_certificate_versions_7_1.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:09 GMT + date: Fri, 06 Aug 2021 18:18:04 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -28,328 +28,335 @@ interactions: resource="https://vault.azure.net" x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/de52f214736d4341b3cba09763805330","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731f1a5a/de52f214736d4341b3cba09763805330","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731f1a5a/de52f214736d4341b3cba09763805330","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465050,"updated":1616465050,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465050,"updated":1616465050}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/f74a9ee39cb74f9cbc97c515f62173d7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731f1a5a/f74a9ee39cb74f9cbc97c515f62173d7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731f1a5a/f74a9ee39cb74f9cbc97c515f62173d7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273884,"updated":1628273884,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273884,"updated":1628273884}}}' headers: cache-control: no-cache - content-length: '1864' + content-length: '2299' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:09 GMT + date: Fri, 06 Aug 2021 18:18:05 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/1fad955dba3e458fa4f605f8948b69b3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731f1a5a/1fad955dba3e458fa4f605f8948b69b3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731f1a5a/1fad955dba3e458fa4f605f8948b69b3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465050,"updated":1616465050,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465050,"updated":1616465050}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/742ef32db5244cbabebbd56fbbe22403","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731f1a5a/742ef32db5244cbabebbd56fbbe22403","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731f1a5a/742ef32db5244cbabebbd56fbbe22403","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273885,"updated":1628273885,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273884,"updated":1628273885}}}' headers: cache-control: no-cache - content-length: '1864' + content-length: '2299' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:10 GMT + date: Fri, 06 Aug 2021 18:18:06 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/4bddc82bfdb042c1953e6f36310dcba2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731f1a5a/4bddc82bfdb042c1953e6f36310dcba2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731f1a5a/4bddc82bfdb042c1953e6f36310dcba2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465051,"updated":1616465051,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465050,"updated":1616465051}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/692f9218107f44a9aec96d6e34d34b66","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731f1a5a/692f9218107f44a9aec96d6e34d34b66","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731f1a5a/692f9218107f44a9aec96d6e34d34b66","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273886,"updated":1628273886,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273884,"updated":1628273886}}}' headers: cache-control: no-cache - content-length: '1864' + content-length: '2299' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:10 GMT + date: Fri, 06 Aug 2021 18:18:07 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/bcea687d170f4fb88efa6ea2e2d80d13","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731f1a5a/bcea687d170f4fb88efa6ea2e2d80d13","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731f1a5a/bcea687d170f4fb88efa6ea2e2d80d13","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465051,"updated":1616465051,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465050,"updated":1616465051}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/360c1a83c1b04400b23bc16ebd2640da","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731f1a5a/360c1a83c1b04400b23bc16ebd2640da","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731f1a5a/360c1a83c1b04400b23bc16ebd2640da","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273887,"updated":1628273887,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273884,"updated":1628273887}}}' headers: cache-control: no-cache - content-length: '1864' + content-length: '2299' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:11 GMT + date: Fri, 06 Aug 2021 18:18:08 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/6ed245d6148a41de8f06207a2149a600","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731f1a5a/6ed245d6148a41de8f06207a2149a600","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731f1a5a/6ed245d6148a41de8f06207a2149a600","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465052,"updated":1616465052,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465050,"updated":1616465052}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/153d0de1e1d447588da23690721df6a1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731f1a5a/153d0de1e1d447588da23690721df6a1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731f1a5a/153d0de1e1d447588da23690721df6a1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273888,"updated":1628273888,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273884,"updated":1628273888}}}' headers: cache-control: no-cache - content-length: '1864' + content-length: '2299' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:11 GMT + date: Fri, 06 Aug 2021 18:18:08 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/605d2966db7343a88d8a37245889ab5b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731f1a5a/605d2966db7343a88d8a37245889ab5b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731f1a5a/605d2966db7343a88d8a37245889ab5b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465052,"updated":1616465052,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465050,"updated":1616465052}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/afd32b384dbb4784b79ae94f998a9578","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731f1a5a/afd32b384dbb4784b79ae94f998a9578","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731f1a5a/afd32b384dbb4784b79ae94f998a9578","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273889,"updated":1628273889,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273884,"updated":1628273889}}}' headers: cache-control: no-cache - content-length: '1864' + content-length: '2299' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:12 GMT + date: Fri, 06 Aug 2021 18:18:09 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "x509_props": {"subject": - "CN=DefaultPolicy", "sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"]}, "key_props": {"exportable": true, "key_size": 2048, "reuse_key": - false, "kty": "RSA"}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/9cb884f17119471592627866eac959fb","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731f1a5a/9cb884f17119471592627866eac959fb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731f1a5a/9cb884f17119471592627866eac959fb","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465053,"updated":1616465053,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1616465050,"updated":1616465053}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/2d1682415d8c41eb97468192e228e24c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver731f1a5a/2d1682415d8c41eb97468192e228e24c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver731f1a5a/2d1682415d8c41eb97468192e228e24c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273890,"updated":1628273890,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273884,"updated":1628273890}}}' headers: cache-control: no-cache - content-length: '1864' + content-length: '2299' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:12 GMT + date: Fri, 06 Aug 2021 18:18:10 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731f1a5a/import?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/versions?api-version=7.1&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/versions?maxresults=6&api-version=7.1 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/1fad955dba3e458fa4f605f8948b69b3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465050,"updated":1616465050},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/4bddc82bfdb042c1953e6f36310dcba2","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465051,"updated":1616465051},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/605d2966db7343a88d8a37245889ab5b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465052,"updated":1616465052},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/6ed245d6148a41de8f06207a2149a600","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465052,"updated":1616465052},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/9cb884f17119471592627866eac959fb","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465053,"updated":1616465053},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/bcea687d170f4fb88efa6ea2e2d80d13","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465051,"updated":1616465051},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates/livekvtestcertver731f1a5a/versions?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJqRkJOVUV2VmtWU1UwbFBUbE12UkVVMU1rWXlNVFEzTXpaRU5ETTBNVUl6UTBKQk1EazNOak00TURVek16QWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/153d0de1e1d447588da23690721df6a1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273888,"updated":1628273888},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/2d1682415d8c41eb97468192e228e24c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273890,"updated":1628273890},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/360c1a83c1b04400b23bc16ebd2640da","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273887,"updated":1628273887},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/692f9218107f44a9aec96d6e34d34b66","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273886,"updated":1628273886},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/742ef32db5244cbabebbd56fbbe22403","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273885,"updated":1628273885},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/afd32b384dbb4784b79ae94f998a9578","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273889,"updated":1628273889},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates/livekvtestcertver731f1a5a/versions?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJqRkJOVUV2VmtWU1UwbFBUbE12UmpjMFFUbEZSVE01UTBJM05FWTVRMEpET1RkRE5URTFSall5TVRjelJEY2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache - content-length: '2067' + content-length: '2053' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:13 GMT + date: Fri, 06 Aug 2021 18:18:10 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net/certificates/livekvtestcertver731f1a5a/versions?api-version=7.1&maxresults=6 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver731f1a5a/versions?maxresults=6&api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates/livekvtestcertver731f1a5a/versions?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJqRkJOVUV2VmtWU1UwbFBUbE12UkVVMU1rWXlNVFEzTXpaRU5ETTBNVUl6UTBKQk1EazNOak00TURVek16QWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates/livekvtestcertver731f1a5a/versions?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJqRkJOVUV2VmtWU1UwbFBUbE12UmpjMFFUbEZSVE01UTBJM05FWTVRMEpET1RkRE5URTFSall5TVRjelJEY2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/de52f214736d4341b3cba09763805330","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1616465050,"updated":1616465050},"subject":""}],"nextLink":null}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver731f1a5a/f74a9ee39cb74f9cbc97c515f62173d7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273884,"updated":1628273884},"subject":""}],"nextLink":null}' headers: cache-control: no-cache - content-length: '300' + content-length: '298' content-type: application/json; charset=utf-8 - date: Tue, 23 Mar 2021 02:04:13 GMT + date: Fri, 06 Aug 2021 18:18:10 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: eastus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinotest.vault.azure.net:443/certificates/livekvtestcertver731f1a5a/versions?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJqRkJOVUV2VmtWU1UwbFBUbE12UkVVMU1rWXlNVFEzTXpaRU5ETTBNVUl6UTBKQk1EazNOak00TURVek16QWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates/livekvtestcertver731f1a5a/versions?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJqRkJOVUV2VmtWU1UwbFBUbE12UmpjMFFUbEZSVE01UTBJM05FWTVRMEpET1RkRE5URTFSall5TVRjelJEY2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_certificate_versions_7_2.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_certificate_versions_7_2.yaml index 2efce6e277b0..bff03c252358 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_certificate_versions_7_2.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_list_certificate_versions_7_2.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/import?api-version=7.2 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:01 GMT + date: Fri, 06 Aug 2021 18:18:10 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -29,273 +29,273 @@ interactions: x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver73201a5b/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/ecd2850b118e442d91e34bcb5f5dea0a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver73201a5b/ecd2850b118e442d91e34bcb5f5dea0a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver73201a5b/ecd2850b118e442d91e34bcb5f5dea0a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433982,"updated":1620433982,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433982,"updated":1620433982}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/b0a234d6eb1f418ebcd681899bc0003a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver73201a5b/b0a234d6eb1f418ebcd681899bc0003a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver73201a5b/b0a234d6eb1f418ebcd681899bc0003a","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273891,"updated":1628273891,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273891,"updated":1628273891}}}' headers: cache-control: no-cache - content-length: '1856' + content-length: '2299' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:02 GMT + date: Fri, 06 Aug 2021 18:18:10 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver73201a5b/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/0abf55c7930a4050b8ba215356a4e6b4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver73201a5b/0abf55c7930a4050b8ba215356a4e6b4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver73201a5b/0abf55c7930a4050b8ba215356a4e6b4","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433982,"updated":1620433982,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433982,"updated":1620433982}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/161e182106794a3f9f01cbc46d9d066d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver73201a5b/161e182106794a3f9f01cbc46d9d066d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver73201a5b/161e182106794a3f9f01cbc46d9d066d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273891,"updated":1628273891,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273891,"updated":1628273891}}}' headers: cache-control: no-cache - content-length: '1856' + content-length: '2299' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:02 GMT + date: Fri, 06 Aug 2021 18:18:11 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver73201a5b/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/66cae4da741544bd8deaba834fb9cba8","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver73201a5b/66cae4da741544bd8deaba834fb9cba8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver73201a5b/66cae4da741544bd8deaba834fb9cba8","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433983,"updated":1620433983,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433982,"updated":1620433983}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/b148a1d5753340319f6da5192baced21","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver73201a5b/b148a1d5753340319f6da5192baced21","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver73201a5b/b148a1d5753340319f6da5192baced21","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273892,"updated":1628273892,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273891,"updated":1628273892}}}' headers: cache-control: no-cache - content-length: '1856' + content-length: '2299' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:03 GMT + date: Fri, 06 Aug 2021 18:18:12 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver73201a5b/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/208c70b788bc480f8069e2675e03ecd0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver73201a5b/208c70b788bc480f8069e2675e03ecd0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver73201a5b/208c70b788bc480f8069e2675e03ecd0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433983,"updated":1620433983,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433982,"updated":1620433983}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/ff2e8f966ee749b88f56e4e742aa48f8","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver73201a5b/ff2e8f966ee749b88f56e4e742aa48f8","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver73201a5b/ff2e8f966ee749b88f56e4e742aa48f8","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273893,"updated":1628273893,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273891,"updated":1628273893}}}' headers: cache-control: no-cache - content-length: '1856' + content-length: '2299' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:03 GMT + date: Fri, 06 Aug 2021 18:18:13 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver73201a5b/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/d371dcca8e534ad4a7ec9b107c53e0ee","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver73201a5b/d371dcca8e534ad4a7ec9b107c53e0ee","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver73201a5b/d371dcca8e534ad4a7ec9b107c53e0ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433984,"updated":1620433984,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433982,"updated":1620433984}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/6962dbadedeb47fe8687b8a7d9940da4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver73201a5b/6962dbadedeb47fe8687b8a7d9940da4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver73201a5b/6962dbadedeb47fe8687b8a7d9940da4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273894,"updated":1628273894,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273891,"updated":1628273894}}}' headers: cache-control: no-cache - content-length: '1856' + content-length: '2299' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:04 GMT + date: Fri, 06 Aug 2021 18:18:15 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver73201a5b/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/94af6e97e56e47f48cf3b25c6ab2d8b5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver73201a5b/94af6e97e56e47f48cf3b25c6ab2d8b5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver73201a5b/94af6e97e56e47f48cf3b25c6ab2d8b5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433984,"updated":1620433984,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433982,"updated":1620433984}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/a53a378adbee4e509bcd8c4c9a651b05","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver73201a5b/a53a378adbee4e509bcd8c4c9a651b05","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver73201a5b/a53a378adbee4e509bcd8c4c9a651b05","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273895,"updated":1628273895,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273891,"updated":1628273895}}}' headers: cache-control: no-cache - content-length: '1856' + content-length: '2299' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:04 GMT + date: Fri, 06 Aug 2021 18:18:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver73201a5b/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/cbcca2360e0f458db9d2ce01854afbc1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver73201a5b/cbcca2360e0f458db9d2ce01854afbc1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver73201a5b/cbcca2360e0f458db9d2ce01854afbc1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433984,"updated":1620433984,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620433982,"updated":1620433984}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/2ed439e9f1da48e697c79ae752f5c318","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertver73201a5b/2ed439e9f1da48e697c79ae752f5c318","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertver73201a5b/2ed439e9f1da48e697c79ae752f5c318","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273896,"updated":1628273896,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628273891,"updated":1628273896}}}' headers: cache-control: no-cache - content-length: '1856' + content-length: '2299' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:04 GMT + date: Fri, 06 Aug 2021 18:18:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -307,56 +307,56 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/versions?api-version=7.2&maxresults=6 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/versions?maxresults=6&api-version=7.2 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/0abf55c7930a4050b8ba215356a4e6b4","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433982,"updated":1620433982},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/208c70b788bc480f8069e2675e03ecd0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433983,"updated":1620433983},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/66cae4da741544bd8deaba834fb9cba8","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433983,"updated":1620433983},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/94af6e97e56e47f48cf3b25c6ab2d8b5","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433984,"updated":1620433984},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/cbcca2360e0f458db9d2ce01854afbc1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433984,"updated":1620433984},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/d371dcca8e534ad4a7ec9b107c53e0ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433984,"updated":1620433984},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates/livekvtestcertver73201a5b/versions?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeU1ERkJOVUl2VmtWU1UwbFBUbE12UlVORU1qZzFNRUl4TVRoRk5EUXlSRGt4UlRNMFFrTkNOVVkxUkVWQk1FRWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/161e182106794a3f9f01cbc46d9d066d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273891,"updated":1628273891},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/2ed439e9f1da48e697c79ae752f5c318","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273896,"updated":1628273896},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/6962dbadedeb47fe8687b8a7d9940da4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273894,"updated":1628273894},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/a53a378adbee4e509bcd8c4c9a651b05","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273895,"updated":1628273895},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/b0a234d6eb1f418ebcd681899bc0003a","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273891,"updated":1628273891},"subject":""},{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/b148a1d5753340319f6da5192baced21","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273892,"updated":1628273892},"subject":""}],"nextLink":"https://vaultname.vault.azure.net:443/certificates/livekvtestcertver73201a5b/versions?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeU1ERkJOVUl2VmtWU1UwbFBUbE12UmtZeVJUaEdPVFkyUlVVM05EbENPRGhHTlRaRk5FVTNOREpCUVRRNFJqZ2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6"}' headers: cache-control: no-cache content-length: '2053' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:05 GMT + date: Fri, 06 Aug 2021 18:18:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver73201a5b/versions?api-version=7.2&maxresults=6 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertver73201a5b/versions?maxresults=6&api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/certificates/livekvtestcertver73201a5b/versions?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeU1ERkJOVUl2VmtWU1UwbFBUbE12UlVORU1qZzFNRUl4TVRoRk5EUXlSRGt4UlRNMFFrTkNOVVkxUkVWQk1FRWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + uri: https://vaultname.vault.azure.net:443/certificates/livekvtestcertver73201a5b/versions?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeU1ERkJOVUl2VmtWU1UwbFBUbE12UmtZeVJUaEdPVFkyUlVVM05EbENPRGhHTlRaRk5FVTNOREpCUVRRNFJqZ2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 response: body: - string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/ecd2850b118e442d91e34bcb5f5dea0a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620433982,"updated":1620433982},"subject":""}],"nextLink":null}' + string: '{"value":[{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertver73201a5b/ff2e8f966ee749b88f56e4e742aa48f8","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628273893,"updated":1628273893},"subject":""}],"nextLink":null}' headers: cache-control: no-cache content-length: '298' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:05 GMT + date: Fri, 06 Aug 2021 18:18:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net:443/certificates/livekvtestcertver73201a5b/versions?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeU1ERkJOVUl2VmtWU1UwbFBUbE12UlVORU1qZzFNRUl4TVRoRk5EUXlSRGt4UlRNMFFrTkNOVVkxUkVWQk1FRWhNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 + url: https://mcpatinokv.vault.azure.net:443/certificates/livekvtestcertver73201a5b/versions?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNjQhTURBd01EYzVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeU1ERkJOVUl2VmtWU1UwbFBUbE12UmtZeVJUaEdPVFkyUlVVM05EbENPRGhHTlRaRk5FVTNOREpCUVRRNFJqZ2hNREF3TURJNElUazVPVGt0TVRJdE16RlVNak02TlRrNk5Ua3VPVGs1T1RrNU9Wb2giLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=6 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_recover_and_purge_2016_10_01.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_recover_and_purge_2016_10_01.yaml index bfb603e9d1bf..78dd558b428c 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_recover_and_purge_2016_10_01.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_recover_and_purge_2016_10_01.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/import?api-version=2016-10-01 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:09 GMT + date: Fri, 06 Aug 2021 18:20:17 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -29,525 +29,539 @@ interactions: x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/import?api-version=2016-10-01 - request: - body: '{"pwd": "123", "value": "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", - "policy": {"x509_props": {"sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": {"contentType": - "application/x-pkcs12"}, "issuer": {"name": "Self"}, "key_props": {"exportable": - true, "key_size": 2048, "reuse_key": false, "kty": "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067083,"updated":1617070570}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274017,"updated":1628274017,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274017,"updated":1628274017}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:10 GMT + date: Fri, 06 Aug 2021 18:20:17 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/import?api-version=2016-10-01 - request: - body: '{"pwd": "123", "value": "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", - "policy": {"x509_props": {"sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": {"contentType": - "application/x-pkcs12"}, "issuer": {"name": "Self"}, "key_props": {"exportable": - true, "key_size": 2048, "reuse_key": false, "kty": "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070570}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274018,"updated":1628274018,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274018,"updated":1628274018}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:10 GMT + date: Fri, 06 Aug 2021 18:20:18 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/import?api-version=2016-10-01 - request: - body: '{"pwd": "123", "value": "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", - "policy": {"x509_props": {"sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": {"contentType": - "application/x-pkcs12"}, "issuer": {"name": "Self"}, "key_props": {"exportable": - true, "key_size": 2048, "reuse_key": false, "kty": "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070571}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274018,"updated":1628274018,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274018,"updated":1628274018}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:11 GMT + date: Fri, 06 Aug 2021 18:20:18 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/import?api-version=2016-10-01 - request: - body: '{"pwd": "123", "value": "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", - "policy": {"x509_props": {"sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": {"contentType": - "application/x-pkcs12"}, "issuer": {"name": "Self"}, "key_props": {"exportable": - true, "key_size": 2048, "reuse_key": false, "kty": "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070571}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274019,"updated":1628274019,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274019,"updated":1628274019}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:11 GMT + date: Fri, 06 Aug 2021 18:20:19 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/import?api-version=2016-10-01 - request: - body: '{"pwd": "123", "value": "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", - "policy": {"x509_props": {"sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": {"contentType": - "application/x-pkcs12"}, "issuer": {"name": "Self"}, "key_props": {"exportable": - true, "key_size": 2048, "reuse_key": false, "kty": "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070572}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274019,"updated":1628274019,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274019,"updated":1628274019}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:12 GMT + date: Fri, 06 Aug 2021 18:20:19 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec44d851870/import?api-version=2016-10-01 - request: - body: '{"pwd": "123", "value": "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", - "policy": {"x509_props": {"sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": {"contentType": - "application/x-pkcs12"}, "issuer": {"name": "Self"}, "key_props": {"exportable": - true, "key_size": 2048, "reuse_key": false, "kty": "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070572}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274020,"updated":1628274020,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274020,"updated":1628274020}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:12 GMT + date: Fri, 06 Aug 2021 18:20:19 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec54d851870/import?api-version=2016-10-01 - request: - body: '{"pwd": "123", "value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "policy": {"x509_props": {"sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": {"contentType": - "application/x-pkcs12"}, "issuer": {"name": "Self"}, "key_props": {"exportable": - true, "key_size": 2048, "reuse_key": false, "kty": "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070573}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274020,"updated":1628274020,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274020,"updated":1628274020}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:13 GMT + date: Fri, 06 Aug 2021 18:20:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/import?api-version=2016-10-01 - request: - body: '{"pwd": "123", "value": "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", - "policy": {"x509_props": {"sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": {"contentType": - "application/x-pkcs12"}, "issuer": {"name": "Self"}, "key_props": {"exportable": - true, "key_size": 2048, "reuse_key": false, "kty": "RSA"}}}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870/7125605242ce4ff3b37c4d6394719e17","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg04d851870/7125605242ce4ff3b37c4d6394719e17","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg04d851870/7125605242ce4ff3b37c4d6394719e17","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070573,"updated":1617070573}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870/7bc1f1c47788461692aab9dc853abae7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg04d851870/7bc1f1c47788461692aab9dc853abae7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg04d851870/7bc1f1c47788461692aab9dc853abae7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274021,"updated":1628274021,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274021,"updated":1628274021}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:13 GMT + date: Fri, 06 Aug 2021 18:20:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg04d851870/import?api-version=2016-10-01 - request: - body: '{"pwd": "123", "value": "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", - "policy": {"x509_props": {"sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": {"contentType": - "application/x-pkcs12"}, "issuer": {"name": "Self"}, "key_props": {"exportable": - true, "key_size": 2048, "reuse_key": false, "kty": "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870/d3cbd91b77d24c94a7af297780d28c89","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg14d851870/d3cbd91b77d24c94a7af297780d28c89","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg14d851870/d3cbd91b77d24c94a7af297780d28c89","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870/bfdccc6800024e79bef8cb1bccf76d2e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg14d851870/bfdccc6800024e79bef8cb1bccf76d2e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg14d851870/bfdccc6800024e79bef8cb1bccf76d2e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274021,"updated":1628274021,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274021,"updated":1628274021}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:14 GMT + date: Fri, 06 Aug 2021 18:20:21 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg14d851870/import?api-version=2016-10-01 - request: - body: '{"pwd": "123", "value": "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", - "policy": {"x509_props": {"sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": {"contentType": - "application/x-pkcs12"}, "issuer": {"name": "Self"}, "key_props": {"exportable": - true, "key_size": 2048, "reuse_key": false, "kty": "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870/545f16377e86476a943a462b36701f50","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg24d851870/545f16377e86476a943a462b36701f50","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg24d851870/545f16377e86476a943a462b36701f50","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870/44ab905c0e2d478087cfecb02a10d407","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg24d851870/44ab905c0e2d478087cfecb02a10d407","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg24d851870/44ab905c0e2d478087cfecb02a10d407","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274022,"updated":1628274022,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274022,"updated":1628274022}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:14 GMT + date: Fri, 06 Aug 2021 18:20:21 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg24d851870/import?api-version=2016-10-01 - request: - body: '{"pwd": "123", "value": "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", - "policy": {"x509_props": {"sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": {"contentType": - "application/x-pkcs12"}, "issuer": {"name": "Self"}, "key_props": {"exportable": - true, "key_size": 2048, "reuse_key": false, "kty": "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870/a0362b008d3642eda0df482842478851","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg34d851870/a0362b008d3642eda0df482842478851","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg34d851870/a0362b008d3642eda0df482842478851","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870/a571f2bc997f4758875a4899fdc7252c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg34d851870/a571f2bc997f4758875a4899fdc7252c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg34d851870/a571f2bc997f4758875a4899fdc7252c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274022,"updated":1628274022,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274022,"updated":1628274022}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:14 GMT + date: Fri, 06 Aug 2021 18:20:21 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg34d851870/import?api-version=2016-10-01 - request: - body: '{"pwd": "123", "value": "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", - "policy": {"x509_props": {"sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": {"contentType": - "application/x-pkcs12"}, "issuer": {"name": "Self"}, "key_props": {"exportable": - true, "key_size": 2048, "reuse_key": false, "kty": "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870/7518595e72b44d6eb3cb53faba6a6b7b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg44d851870/7518595e72b44d6eb3cb53faba6a6b7b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg44d851870/7518595e72b44d6eb3cb53faba6a6b7b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870/49bdf9d6c2da4b119c155a707eae5bbe","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg44d851870/49bdf9d6c2da4b119c155a707eae5bbe","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg44d851870/49bdf9d6c2da4b119c155a707eae5bbe","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274022,"updated":1628274022,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274022,"updated":1628274022}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:15 GMT + date: Fri, 06 Aug 2021 18:20:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg44d851870/import?api-version=2016-10-01 - request: - body: '{"pwd": "123", "value": "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", - "policy": {"x509_props": {"sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": {"contentType": - "application/x-pkcs12"}, "issuer": {"name": "Self"}, "key_props": {"exportable": - true, "key_size": 2048, "reuse_key": false, "kty": "RSA"}}}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870/58ccfcc1b6d64cbf87be2127f5e064f1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg54d851870/58ccfcc1b6d64cbf87be2127f5e064f1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg54d851870/58ccfcc1b6d64cbf87be2127f5e064f1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870/d2b2af52a44e42f980dff1dda7c990e5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg54d851870/d2b2af52a44e42f980dff1dda7c990e5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg54d851870/d2b2af52a44e42f980dff1dda7c990e5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274023,"updated":1628274023,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274023,"updated":1628274023}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:15 GMT + date: Fri, 06 Aug 2021 18:20:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg54d851870/import?api-version=2016-10-01 - request: - body: '{"pwd": "123", "value": "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", - "policy": {"x509_props": {"sans": {}, "validity_months": 12, "key_usage": ["digitalSignature", - "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": {"contentType": - "application/x-pkcs12"}, "issuer": {"name": "Self"}, "key_props": {"exportable": - true, "key_size": 2048, "reuse_key": false, "kty": "RSA"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870/import?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870/807bc77c21f449aab1a0e4f9526bae84","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg64d851870/807bc77c21f449aab1a0e4f9526bae84","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg64d851870/807bc77c21f449aab1a0e4f9526bae84","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070576,"updated":1617070576,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070576,"updated":1617070576}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870/1ed9375386b94454b7a59a7c316d0384","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg64d851870/1ed9375386b94454b7a59a7c316d0384","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg64d851870/1ed9375386b94454b7a59a7c316d0384","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274023,"updated":1628274023,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274023,"updated":1628274023}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:16 GMT + date: Fri, 06 Aug 2021 18:20:23 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -559,1244 +573,1285 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870","deletedDate":1617070576,"scheduledPurgeDate":1624846576,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070572}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870","deletedDate":1628274024,"scheduledPurgeDate":1636050024,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274017,"updated":1628274017,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274017,"updated":1628274017}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:16 GMT + date: Fri, 06 Aug 2021 18:20:23 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec44d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec44d851870"}}' + not found: livekvtestcertrec04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:16 GMT + date: Fri, 06 Aug 2021 18:20:23 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec44d851870"}}' + not found: livekvtestcertrec04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:18 GMT + date: Fri, 06 Aug 2021 18:20:26 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec44d851870"}}' + not found: livekvtestcertrec04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:20 GMT + date: Fri, 06 Aug 2021 18:20:27 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec44d851870"}}' + not found: livekvtestcertrec04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:22 GMT + date: Fri, 06 Aug 2021 18:20:29 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec44d851870"}}' + not found: livekvtestcertrec04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:24 GMT + date: Fri, 06 Aug 2021 18:20:31 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec44d851870"}}' + not found: livekvtestcertrec04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:26 GMT + date: Fri, 06 Aug 2021 18:20:33 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec44d851870"}}' + not found: livekvtestcertrec04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:28 GMT + date: Fri, 06 Aug 2021 18:20:35 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870","deletedDate":1617070576,"scheduledPurgeDate":1624846576,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec04d851870"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:30 GMT + date: Fri, 06 Aug 2021 18:20:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870","deletedDate":1617070591,"scheduledPurgeDate":1624846591,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870/7518595e72b44d6eb3cb53faba6a6b7b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg44d851870/7518595e72b44d6eb3cb53faba6a6b7b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg44d851870/7518595e72b44d6eb3cb53faba6a6b7b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec04d851870"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:30 GMT + date: Fri, 06 Aug 2021 18:20:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg44d851870?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg44d851870"}}' + not found: livekvtestcertrec04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:30 GMT + date: Fri, 06 Aug 2021 18:20:42 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg44d851870"}}' + not found: livekvtestcertrec04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:33 GMT + date: Fri, 06 Aug 2021 18:20:44 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg44d851870"}}' + not found: livekvtestcertrec04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:35 GMT + date: Fri, 06 Aug 2021 18:20:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg44d851870"}}' + not found: livekvtestcertrec04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:37 GMT + date: Fri, 06 Aug 2021 18:20:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg44d851870"}}' + not found: livekvtestcertrec04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:39 GMT + date: Fri, 06 Aug 2021 18:20:50 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870","deletedDate":1617070591,"scheduledPurgeDate":1624846591,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870/7518595e72b44d6eb3cb53faba6a6b7b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg44d851870/7518595e72b44d6eb3cb53faba6a6b7b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg44d851870/7518595e72b44d6eb3cb53faba6a6b7b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec04d851870"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:41 GMT + date: Fri, 06 Aug 2021 18:20:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec04d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:20:55 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870","deletedDate":1617070601,"scheduledPurgeDate":1624846601,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070573}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870","deletedDate":1628274024,"scheduledPurgeDate":1636050024,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274017,"updated":1628274017,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274017,"updated":1628274017}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:41 GMT + date: Fri, 06 Aug 2021 18:20:56 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec64d851870"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870","deletedDate":1628274057,"scheduledPurgeDate":1636050057,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274018,"updated":1628274018,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274018,"updated":1628274018}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:41 GMT + date: Fri, 06 Aug 2021 18:20:56 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec64d851870"}}' + not found: livekvtestcertrec14d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:43 GMT + date: Fri, 06 Aug 2021 18:20:56 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec64d851870"}}' + not found: livekvtestcertrec14d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:46 GMT + date: Fri, 06 Aug 2021 18:20:58 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec64d851870"}}' + not found: livekvtestcertrec14d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:48 GMT + date: Fri, 06 Aug 2021 18:21:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec64d851870"}}' + not found: livekvtestcertrec14d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:50 GMT + date: Fri, 06 Aug 2021 18:21:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870","deletedDate":1617070601,"scheduledPurgeDate":1624846601,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070573}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec14d851870"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:52 GMT + date: Fri, 06 Aug 2021 18:21:04 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870","deletedDate":1617070612,"scheduledPurgeDate":1624846612,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870/58ccfcc1b6d64cbf87be2127f5e064f1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg54d851870/58ccfcc1b6d64cbf87be2127f5e064f1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg54d851870/58ccfcc1b6d64cbf87be2127f5e064f1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec14d851870"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:52 GMT + date: Fri, 06 Aug 2021 18:21:07 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg54d851870?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg54d851870"}}' + not found: livekvtestcertrec14d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:52 GMT + date: Fri, 06 Aug 2021 18:21:09 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg54d851870"}}' + not found: livekvtestcertrec14d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:54 GMT + date: Fri, 06 Aug 2021 18:21:11 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg54d851870"}}' + not found: livekvtestcertrec14d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:56 GMT + date: Fri, 06 Aug 2021 18:21:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg54d851870"}}' + not found: livekvtestcertrec14d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:58 GMT + date: Fri, 06 Aug 2021 18:21:15 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg54d851870"}}' + not found: livekvtestcertrec14d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:00 GMT + date: Fri, 06 Aug 2021 18:21:18 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg54d851870"}}' + not found: livekvtestcertrec14d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:02 GMT + date: Fri, 06 Aug 2021 18:21:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870","deletedDate":1617070612,"scheduledPurgeDate":1624846612,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870/58ccfcc1b6d64cbf87be2127f5e064f1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg54d851870/58ccfcc1b6d64cbf87be2127f5e064f1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg54d851870/58ccfcc1b6d64cbf87be2127f5e064f1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870","deletedDate":1628274057,"scheduledPurgeDate":1636050057,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274018,"updated":1628274018,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274018,"updated":1628274018}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:04 GMT + date: Fri, 06 Aug 2021 18:21:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870","deletedDate":1617070624,"scheduledPurgeDate":1624846624,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870/7125605242ce4ff3b37c4d6394719e17","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg04d851870/7125605242ce4ff3b37c4d6394719e17","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg04d851870/7125605242ce4ff3b37c4d6394719e17","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070573,"updated":1617070573}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870","deletedDate":1628274082,"scheduledPurgeDate":1636050082,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274018,"updated":1628274018,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274018,"updated":1628274018}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:04 GMT + date: Fri, 06 Aug 2021 18:21:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg04d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg04d851870"}}' + not found: livekvtestcertrec24d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:04 GMT + date: Fri, 06 Aug 2021 18:21:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg04d851870"}}' + not found: livekvtestcertrec24d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:06 GMT + date: Fri, 06 Aug 2021 18:21:24 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg04d851870"}}' + not found: livekvtestcertrec24d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:08 GMT + date: Fri, 06 Aug 2021 18:21:26 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg04d851870"}}' + not found: livekvtestcertrec24d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:11 GMT + date: Fri, 06 Aug 2021 18:21:28 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg04d851870"}}' + not found: livekvtestcertrec24d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:13 GMT + date: Fri, 06 Aug 2021 18:21:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg04d851870"}}' + not found: livekvtestcertrec24d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:15 GMT + date: Fri, 06 Aug 2021 18:21:32 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg04d851870"}}' + not found: livekvtestcertrec24d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:17 GMT + date: Fri, 06 Aug 2021 18:21:34 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg04d851870"}}' + not found: livekvtestcertrec24d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:19 GMT + date: Fri, 06 Aug 2021 18:21:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870","deletedDate":1617070624,"scheduledPurgeDate":1624846624,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870/7125605242ce4ff3b37c4d6394719e17","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg04d851870/7125605242ce4ff3b37c4d6394719e17","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg04d851870/7125605242ce4ff3b37c4d6394719e17","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070573,"updated":1617070573}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870","deletedDate":1628274082,"scheduledPurgeDate":1636050082,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274018,"updated":1628274018,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274018,"updated":1628274018}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:21 GMT + date: Fri, 06 Aug 2021 18:21:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870","deletedDate":1617070641,"scheduledPurgeDate":1624846641,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070571}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870","deletedDate":1628274099,"scheduledPurgeDate":1636050099,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274019,"updated":1628274019,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274019,"updated":1628274019}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:21 GMT + date: Fri, 06 Aug 2021 18:21:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -1808,7 +1863,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870?api-version=2016-10-01 response: @@ -1819,14 +1874,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:21 GMT + date: Fri, 06 Aug 2021 18:21:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1838,7 +1893,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870?api-version=2016-10-01 response: @@ -1849,14 +1904,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:23 GMT + date: Fri, 06 Aug 2021 18:21:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1868,7 +1923,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870?api-version=2016-10-01 response: @@ -1879,14 +1934,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:25 GMT + date: Fri, 06 Aug 2021 18:21:43 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1898,7 +1953,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870?api-version=2016-10-01 response: @@ -1909,14 +1964,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:27 GMT + date: Fri, 06 Aug 2021 18:21:45 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1928,7 +1983,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870?api-version=2016-10-01 response: @@ -1939,14 +1994,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:28 GMT + date: Fri, 06 Aug 2021 18:21:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1958,28 +2013,29 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870","deletedDate":1617070641,"scheduledPurgeDate":1624846641,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070571}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec34d851870"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:31 GMT + date: Fri, 06 Aug 2021 18:21:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870?api-version=2016-10-01 - request: body: null @@ -1987,1732 +2043,1747 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870","deletedDate":1617070652,"scheduledPurgeDate":1624846652,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec34d851870"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:31 GMT + date: Fri, 06 Aug 2021 18:21:50 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec54d851870?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec54d851870"}}' + not found: livekvtestcertrec34d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:31 GMT + date: Fri, 06 Aug 2021 18:21:53 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec54d851870"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870","deletedDate":1628274099,"scheduledPurgeDate":1636050099,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274019,"updated":1628274019,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274019,"updated":1628274019}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:33 GMT + date: Fri, 06 Aug 2021 18:21:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec54d851870"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870","deletedDate":1628274115,"scheduledPurgeDate":1636050115,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274019,"updated":1628274019,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274019,"updated":1628274019}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:35 GMT + date: Fri, 06 Aug 2021 18:21:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec44d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec54d851870"}}' + not found: livekvtestcertrec44d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:38 GMT + date: Fri, 06 Aug 2021 18:21:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec54d851870"}}' + not found: livekvtestcertrec44d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:40 GMT + date: Fri, 06 Aug 2021 18:21:57 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870","deletedDate":1617070652,"scheduledPurgeDate":1624846652,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec44d851870"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:42 GMT + date: Fri, 06 Aug 2021 18:21:59 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870","deletedDate":1617070662,"scheduledPurgeDate":1624846662,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870/807bc77c21f449aab1a0e4f9526bae84","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg64d851870/807bc77c21f449aab1a0e4f9526bae84","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg64d851870/807bc77c21f449aab1a0e4f9526bae84","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070576,"updated":1617070576,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070576,"updated":1617070576}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec44d851870"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:42 GMT + date: Fri, 06 Aug 2021 18:22:02 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg64d851870?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg64d851870"}}' + not found: livekvtestcertrec44d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:42 GMT + date: Fri, 06 Aug 2021 18:22:04 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg64d851870"}}' + not found: livekvtestcertrec44d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:44 GMT + date: Fri, 06 Aug 2021 18:22:05 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg64d851870"}}' + not found: livekvtestcertrec44d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:46 GMT + date: Fri, 06 Aug 2021 18:22:07 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg64d851870"}}' + not found: livekvtestcertrec44d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:48 GMT + date: Fri, 06 Aug 2021 18:22:10 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg64d851870"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870","deletedDate":1628274115,"scheduledPurgeDate":1636050115,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274019,"updated":1628274019,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274019,"updated":1628274019}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:50 GMT + date: Fri, 06 Aug 2021 18:22:12 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870","deletedDate":1617070662,"scheduledPurgeDate":1624846662,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870/807bc77c21f449aab1a0e4f9526bae84","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg64d851870/807bc77c21f449aab1a0e4f9526bae84","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg64d851870/807bc77c21f449aab1a0e4f9526bae84","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070576,"updated":1617070576,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070576,"updated":1617070576}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870","deletedDate":1628274132,"scheduledPurgeDate":1636050132,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274020,"updated":1628274020,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274020,"updated":1628274020}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:52 GMT + date: Fri, 06 Aug 2021 18:22:12 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec54d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870","deletedDate":1617070673,"scheduledPurgeDate":1624846673,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870/a0362b008d3642eda0df482842478851","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg34d851870/a0362b008d3642eda0df482842478851","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg34d851870/a0362b008d3642eda0df482842478851","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec54d851870"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:52 GMT + date: Fri, 06 Aug 2021 18:22:12 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg34d851870?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg34d851870"}}' + not found: livekvtestcertrec54d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:52 GMT + date: Fri, 06 Aug 2021 18:22:13 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg34d851870"}}' + not found: livekvtestcertrec54d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:54 GMT + date: Fri, 06 Aug 2021 18:22:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg34d851870"}}' + not found: livekvtestcertrec54d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:56 GMT + date: Fri, 06 Aug 2021 18:22:18 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg34d851870"}}' + not found: livekvtestcertrec54d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:59 GMT + date: Fri, 06 Aug 2021 18:22:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg34d851870"}}' + not found: livekvtestcertrec54d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:01 GMT + date: Fri, 06 Aug 2021 18:22:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg34d851870"}}' + not found: livekvtestcertrec54d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:03 GMT + date: Fri, 06 Aug 2021 18:22:24 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870","deletedDate":1617070673,"scheduledPurgeDate":1624846673,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870/a0362b008d3642eda0df482842478851","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg34d851870/a0362b008d3642eda0df482842478851","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg34d851870/a0362b008d3642eda0df482842478851","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec54d851870"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:05 GMT + date: Fri, 06 Aug 2021 18:22:27 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870","deletedDate":1617070685,"scheduledPurgeDate":1624846685,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070571}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870","deletedDate":1628274132,"scheduledPurgeDate":1636050132,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274020,"updated":1628274020,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274020,"updated":1628274020}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:05 GMT + date: Fri, 06 Aug 2021 18:22:28 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec24d851870"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870","deletedDate":1628274149,"scheduledPurgeDate":1636050149,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274020,"updated":1628274020,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274020,"updated":1628274020}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:05 GMT + date: Fri, 06 Aug 2021 18:22:29 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec24d851870"}}' + not found: livekvtestcertrec64d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:07 GMT + date: Fri, 06 Aug 2021 18:22:29 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec24d851870"}}' + not found: livekvtestcertrec64d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:09 GMT + date: Fri, 06 Aug 2021 18:22:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec24d851870"}}' + not found: livekvtestcertrec64d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:11 GMT + date: Fri, 06 Aug 2021 18:22:33 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec24d851870"}}' + not found: livekvtestcertrec64d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:14 GMT + date: Fri, 06 Aug 2021 18:22:34 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec24d851870"}}' + not found: livekvtestcertrec64d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:16 GMT + date: Fri, 06 Aug 2021 18:22:37 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870","deletedDate":1617070685,"scheduledPurgeDate":1624846685,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070571}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec64d851870"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:17 GMT + date: Fri, 06 Aug 2021 18:22:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870","deletedDate":1617070698,"scheduledPurgeDate":1624846698,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070570}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec64d851870"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:18 GMT + date: Fri, 06 Aug 2021 18:22:41 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec14d851870"}}' + not found: livekvtestcertrec64d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:18 GMT + date: Fri, 06 Aug 2021 18:22:43 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec14d851870"}}' + not found: livekvtestcertrec64d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:20 GMT + date: Fri, 06 Aug 2021 18:22:44 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec14d851870"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870","deletedDate":1628274149,"scheduledPurgeDate":1636050149,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274020,"updated":1628274020,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274020,"updated":1628274020}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:22 GMT + date: Fri, 06 Aug 2021 18:22:47 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec14d851870"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870","deletedDate":1628274167,"scheduledPurgeDate":1636050167,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870/7bc1f1c47788461692aab9dc853abae7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg04d851870/7bc1f1c47788461692aab9dc853abae7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg04d851870/7bc1f1c47788461692aab9dc853abae7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274021,"updated":1628274021,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274021,"updated":1628274021}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:24 GMT + date: Fri, 06 Aug 2021 18:22:47 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec14d851870"}}' + not found: livekvtestcertprg04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:25 GMT + date: Fri, 06 Aug 2021 18:22:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec14d851870"}}' + not found: livekvtestcertprg04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:28 GMT + date: Fri, 06 Aug 2021 18:22:49 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870","deletedDate":1617070698,"scheduledPurgeDate":1624846698,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070570}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg04d851870"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:30 GMT + date: Fri, 06 Aug 2021 18:22:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870","deletedDate":1617070710,"scheduledPurgeDate":1624846710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870/d3cbd91b77d24c94a7af297780d28c89","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg14d851870/d3cbd91b77d24c94a7af297780d28c89","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg14d851870/d3cbd91b77d24c94a7af297780d28c89","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg04d851870"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:30 GMT + date: Fri, 06 Aug 2021 18:22:53 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg14d851870?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg14d851870"}}' + not found: livekvtestcertprg04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:30 GMT + date: Fri, 06 Aug 2021 18:22:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg14d851870"}}' + not found: livekvtestcertprg04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:32 GMT + date: Fri, 06 Aug 2021 18:22:57 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg14d851870"}}' + not found: livekvtestcertprg04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:34 GMT + date: Fri, 06 Aug 2021 18:22:59 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg14d851870"}}' + not found: livekvtestcertprg04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:36 GMT + date: Fri, 06 Aug 2021 18:23:02 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg14d851870"}}' + not found: livekvtestcertprg04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:39 GMT + date: Fri, 06 Aug 2021 18:23:04 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg14d851870"}}' + not found: livekvtestcertprg04d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:41 GMT + date: Fri, 06 Aug 2021 18:23:06 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870","deletedDate":1617070710,"scheduledPurgeDate":1624846710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870/d3cbd91b77d24c94a7af297780d28c89","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg14d851870/d3cbd91b77d24c94a7af297780d28c89","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg14d851870/d3cbd91b77d24c94a7af297780d28c89","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870","deletedDate":1628274167,"scheduledPurgeDate":1636050167,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870/7bc1f1c47788461692aab9dc853abae7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg04d851870/7bc1f1c47788461692aab9dc853abae7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg04d851870/7bc1f1c47788461692aab9dc853abae7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274021,"updated":1628274021,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274021,"updated":1628274021}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:43 GMT + date: Fri, 06 Aug 2021 18:23:08 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870","deletedDate":1617070723,"scheduledPurgeDate":1624846723,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067083,"updated":1617070570}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870","deletedDate":1628274188,"scheduledPurgeDate":1636050188,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870/bfdccc6800024e79bef8cb1bccf76d2e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg14d851870/bfdccc6800024e79bef8cb1bccf76d2e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg14d851870/bfdccc6800024e79bef8cb1bccf76d2e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274021,"updated":1628274021,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274021,"updated":1628274021}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:43 GMT + date: Fri, 06 Aug 2021 18:23:08 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec04d851870"}}' + not found: livekvtestcertprg14d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:43 GMT + date: Fri, 06 Aug 2021 18:23:08 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec04d851870"}}' + not found: livekvtestcertprg14d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:44 GMT + date: Fri, 06 Aug 2021 18:23:10 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec04d851870"}}' + not found: livekvtestcertprg14d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:46 GMT + date: Fri, 06 Aug 2021 18:23:11 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec04d851870"}}' + not found: livekvtestcertprg14d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:48 GMT + date: Fri, 06 Aug 2021 18:23:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec04d851870"}}' + not found: livekvtestcertprg14d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:50 GMT + date: Fri, 06 Aug 2021 18:23:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870","deletedDate":1617070723,"scheduledPurgeDate":1624846723,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067083,"updated":1617070570}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg14d851870"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:52 GMT + date: Fri, 06 Aug 2021 18:23:18 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870","deletedDate":1617070733,"scheduledPurgeDate":1624846733,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870/545f16377e86476a943a462b36701f50","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg24d851870/545f16377e86476a943a462b36701f50","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg24d851870/545f16377e86476a943a462b36701f50","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg14d851870"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:53 GMT + date: Fri, 06 Aug 2021 18:23:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg24d851870?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg24d851870"}}' + not found: livekvtestcertprg14d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:53 GMT + date: Fri, 06 Aug 2021 18:23:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg24d851870"}}' + not found: livekvtestcertprg14d851870"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:55 GMT + date: Fri, 06 Aug 2021 18:23:24 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg24d851870"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870","deletedDate":1628274188,"scheduledPurgeDate":1636050188,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870/bfdccc6800024e79bef8cb1bccf76d2e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg14d851870/bfdccc6800024e79bef8cb1bccf76d2e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg14d851870/bfdccc6800024e79bef8cb1bccf76d2e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274021,"updated":1628274021,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274021,"updated":1628274021}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:58 GMT + date: Fri, 06 Aug 2021 18:23:27 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg24d851870"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870","deletedDate":1628274207,"scheduledPurgeDate":1636050207,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870/44ab905c0e2d478087cfecb02a10d407","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg24d851870/44ab905c0e2d478087cfecb02a10d407","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg24d851870/44ab905c0e2d478087cfecb02a10d407","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274022,"updated":1628274022,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274022,"updated":1628274022}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:00 GMT + date: Fri, 06 Aug 2021 18:23:27 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg24d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 response: @@ -3723,14 +3794,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:02 GMT + date: Fri, 06 Aug 2021 18:23:27 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -3742,141 +3813,3571 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:23:29 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:23:31 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:23:33 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:23:35 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:23:38 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:23:40 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:23:42 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:23:44 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:23:45 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:23:47 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:23:49 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:23:51 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:23:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:23:56 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:23:58 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:01 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:03 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:04 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg24d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:06 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870","deletedDate":1628274207,"scheduledPurgeDate":1636050207,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870/44ab905c0e2d478087cfecb02a10d407","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg24d851870/44ab905c0e2d478087cfecb02a10d407","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg24d851870/44ab905c0e2d478087cfecb02a10d407","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274022,"updated":1628274022,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274022,"updated":1628274022}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:08 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870?api-version=2016-10-01 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870","deletedDate":1628274249,"scheduledPurgeDate":1636050249,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870/a571f2bc997f4758875a4899fdc7252c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg34d851870/a571f2bc997f4758875a4899fdc7252c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg34d851870/a571f2bc997f4758875a4899fdc7252c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274022,"updated":1628274022,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274022,"updated":1628274022}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:08 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg34d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg34d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:08 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg34d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:10 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg34d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:12 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg34d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:14 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg34d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:16 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg34d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:19 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg34d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:21 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg34d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:23 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg34d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:25 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg34d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:27 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg34d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:29 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870","deletedDate":1628274249,"scheduledPurgeDate":1636050249,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870/a571f2bc997f4758875a4899fdc7252c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg34d851870/a571f2bc997f4758875a4899fdc7252c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg34d851870/a571f2bc997f4758875a4899fdc7252c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274022,"updated":1628274022,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274022,"updated":1628274022}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:31 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870?api-version=2016-10-01 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870","deletedDate":1628274272,"scheduledPurgeDate":1636050272,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870/49bdf9d6c2da4b119c155a707eae5bbe","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg44d851870/49bdf9d6c2da4b119c155a707eae5bbe","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg44d851870/49bdf9d6c2da4b119c155a707eae5bbe","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274022,"updated":1628274022,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274022,"updated":1628274022}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:32 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg44d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg44d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:32 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg44d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:34 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg44d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:35 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg44d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg44d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:39 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg44d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:41 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg44d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:44 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg44d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:45 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg44d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:47 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870","deletedDate":1628274272,"scheduledPurgeDate":1636050272,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870/49bdf9d6c2da4b119c155a707eae5bbe","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg44d851870/49bdf9d6c2da4b119c155a707eae5bbe","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg44d851870/49bdf9d6c2da4b119c155a707eae5bbe","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274022,"updated":1628274022,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274022,"updated":1628274022}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:50 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870?api-version=2016-10-01 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870","deletedDate":1628274290,"scheduledPurgeDate":1636050290,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870/d2b2af52a44e42f980dff1dda7c990e5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg54d851870/d2b2af52a44e42f980dff1dda7c990e5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg54d851870/d2b2af52a44e42f980dff1dda7c990e5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274023,"updated":1628274023,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274023,"updated":1628274023}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:50 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg54d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg54d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:50 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg54d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:52 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg54d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg54d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:56 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg54d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:24:59 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg54d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:01 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg54d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:03 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg54d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:05 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg54d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:07 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870","deletedDate":1628274290,"scheduledPurgeDate":1636050290,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870/d2b2af52a44e42f980dff1dda7c990e5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg54d851870/d2b2af52a44e42f980dff1dda7c990e5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg54d851870/d2b2af52a44e42f980dff1dda7c990e5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274023,"updated":1628274023,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274023,"updated":1628274023}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870?api-version=2016-10-01 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870","deletedDate":1628274309,"scheduledPurgeDate":1636050309,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870/1ed9375386b94454b7a59a7c316d0384","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg64d851870/1ed9375386b94454b7a59a7c316d0384","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg64d851870/1ed9375386b94454b7a59a7c316d0384","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274023,"updated":1628274023,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274023,"updated":1628274023}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg64d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg64d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg64d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:11 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg64d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:14 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg64d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:16 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg64d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:18 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg64d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:19 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg64d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:21 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg64d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:24 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg64d851870"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:26 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870","deletedDate":1628274309,"scheduledPurgeDate":1636050309,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870/1ed9375386b94454b7a59a7c316d0384","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg64d851870/1ed9375386b94454b7a59a7c316d0384","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg64d851870/1ed9375386b94454b7a59a7c316d0384","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274023,"updated":1628274023,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274023,"updated":1628274023}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: no-cache + content-length: '330' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: no-cache + content-length: '330' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1628271087,"scheduledPurgeDate":1636047087,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"RC8tFJZPwOeZWUeGE9sGSFTbczM","attributes":{"enabled":true,"nbf":1628270484,"exp":1659807084,"created":1628271084,"updated":1628271087,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870","deletedDate":1628274167,"scheduledPurgeDate":1636050167,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274021,"updated":1628274021,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870","deletedDate":1628274188,"scheduledPurgeDate":1636050188,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274021,"updated":1628274021,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870","deletedDate":1628274207,"scheduledPurgeDate":1636050207,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274022,"updated":1628274022,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870","deletedDate":1628274249,"scheduledPurgeDate":1636050249,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274022,"updated":1628274022,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870","deletedDate":1628274272,"scheduledPurgeDate":1636050272,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274022,"updated":1628274022,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870","deletedDate":1628274290,"scheduledPurgeDate":1636050290,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274023,"updated":1628274023,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870","deletedDate":1628274309,"scheduledPurgeDate":1636050309,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274023,"updated":1628274023,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec020391470","deletedDate":1628274176,"scheduledPurgeDate":1636050176,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec020391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274169,"updated":1628274169,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETURJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: no-cache + content-length: '4139' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETURJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870","deletedDate":1628274024,"scheduledPurgeDate":1636050024,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274017,"updated":1628274017,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec120391470","deletedDate":1628274207,"scheduledPurgeDate":1636050207,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec120391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274169,"updated":1628274169,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870","deletedDate":1628274057,"scheduledPurgeDate":1636050057,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274018,"updated":1628274018,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470","deletedDate":1628274249,"scheduledPurgeDate":1636050249,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870","deletedDate":1628274082,"scheduledPurgeDate":1636050082,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274018,"updated":1628274018,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470","deletedDate":1628274272,"scheduledPurgeDate":1636050272,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870","deletedDate":1628274099,"scheduledPurgeDate":1636050099,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274019,"updated":1628274019,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470","deletedDate":1628274289,"scheduledPurgeDate":1636050289,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870","deletedDate":1628274115,"scheduledPurgeDate":1636050115,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274019,"updated":1628274019,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470","deletedDate":1628274310,"scheduledPurgeDate":1636050310,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870","deletedDate":1628274132,"scheduledPurgeDate":1636050132,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274020,"updated":1628274020,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETmpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: no-cache + content-length: '4954' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETURJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETmpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870","deletedDate":1628274149,"scheduledPurgeDate":1636050149,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274020,"updated":1628274020,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVE1TnpJeU5ERXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: no-cache + content-length: '797' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:29 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETmpJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVE1TnpJeU5ERXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[],"nextLink":null}' + headers: + cache-control: no-cache + content-length: '28' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:29 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVE1TnpJeU5ERXhMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870/recover?api-version=2016-10-01 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274017,"updated":1628274017,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274017,"updated":1628274017}}}' + headers: + cache-control: no-cache + content-length: '2282' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:29 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870/recover?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec04d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:29 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec04d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:31 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec04d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:33 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec04d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:35 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec04d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec04d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:40 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec04d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:42 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec04d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:44 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274017,"updated":1628274017,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274017,"updated":1628274017}}}' + headers: + cache-control: no-cache + content-length: '2282' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:46 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870/recover?api-version=2016-10-01 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274018,"updated":1628274018,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274018,"updated":1628274018}}}' + headers: + cache-control: no-cache + content-length: '2282' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:46 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870/recover?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec14d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:46 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec14d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:48 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec14d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:50 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec14d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:52 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec14d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec14d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:56 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec14d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:25:59 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec14d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:01 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec14d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:03 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274018,"updated":1628274018,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274018,"updated":1628274018}}}' + headers: + cache-control: no-cache + content-length: '2282' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:04 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870/recover?api-version=2016-10-01 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274018,"updated":1628274018,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274018,"updated":1628274018}}}' + headers: + cache-control: no-cache + content-length: '2282' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:05 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870/recover?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec24d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:05 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec24d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:07 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec24d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec24d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:11 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec24d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:13 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec24d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:15 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec24d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:17 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec24d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:19 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec24d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:22 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec24d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:24 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274018,"updated":1628274018,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274018,"updated":1628274018}}}' + headers: + cache-control: no-cache + content-length: '2282' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:26 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870/recover?api-version=2016-10-01 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274019,"updated":1628274019,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274019,"updated":1628274019}}}' + headers: + cache-control: no-cache + content-length: '2282' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:26 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870/recover?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec34d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:26 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec34d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec34d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec34d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:32 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec34d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:34 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec34d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:26:36 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg24d851870"}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec34d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '110' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:04 GMT + date: Fri, 06 Aug 2021 18:26:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870","deletedDate":1617070733,"scheduledPurgeDate":1624846733,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870/545f16377e86476a943a462b36701f50","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg24d851870/545f16377e86476a943a462b36701f50","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg24d851870/545f16377e86476a943a462b36701f50","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec34d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:05 GMT + date: Fri, 06 Aug 2021 18:26:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/BackupRestoreCertificate","deletedDate":1617053388,"scheduledPurgeDate":1624829388,"id":"https://vaultname.vault.azure.net/certificates/BackupRestoreCertificate","x5t":"BUYGRo9uO7lTgKog96DrqlW8cxQ","attributes":{"enabled":true,"nbf":1617052679,"exp":1648589279,"created":1617053279,"updated":1617053279,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870","deletedDate":1617070624,"scheduledPurgeDate":1624846624,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed","deletedDate":1617070576,"scheduledPurgeDate":1624846576,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee","deletedDate":1617070661,"scheduledPurgeDate":1624846661,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870","deletedDate":1617070710,"scheduledPurgeDate":1624846710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed","deletedDate":1617070590,"scheduledPurgeDate":1624846590,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee","deletedDate":1617070710,"scheduledPurgeDate":1624846710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870","deletedDate":1617070733,"scheduledPurgeDate":1624846733,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed","deletedDate":1617070601,"scheduledPurgeDate":1624846601,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee","deletedDate":1617070626,"scheduledPurgeDate":1624846626,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870","deletedDate":1617070673,"scheduledPurgeDate":1624846673,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed","deletedDate":1617070641,"scheduledPurgeDate":1624846641,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee","deletedDate":1617070603,"scheduledPurgeDate":1624846603,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870","deletedDate":1617070591,"scheduledPurgeDate":1624846591,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed","deletedDate":1617070733,"scheduledPurgeDate":1624846733,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee","deletedDate":1617070576,"scheduledPurgeDate":1624846576,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870","deletedDate":1617070612,"scheduledPurgeDate":1624846612,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed","deletedDate":1617070672,"scheduledPurgeDate":1624846672,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee","deletedDate":1617070653,"scheduledPurgeDate":1624846653,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870","deletedDate":1617070662,"scheduledPurgeDate":1624846662,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070576,"updated":1617070576,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed","deletedDate":1617070612,"scheduledPurgeDate":1624846612,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070576,"updated":1617070576,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee","deletedDate":1617070672,"scheduledPurgeDate":1624846672,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870","deletedDate":1617070723,"scheduledPurgeDate":1624846723,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed","deletedDate":1617070662,"scheduledPurgeDate":1624846662,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee","deletedDate":1617070684,"scheduledPurgeDate":1624846684,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETUVFM1FqWXhOa1ZGTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec34d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '10830' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:06 GMT + date: Fri, 06 Aug 2021 18:26:42 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETUVFM1FqWXhOa1ZGTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870","deletedDate":1617070698,"scheduledPurgeDate":1624846698,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed","deletedDate":1617070710,"scheduledPurgeDate":1624846710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870","deletedDate":1617070685,"scheduledPurgeDate":1624846685,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed","deletedDate":1617070651,"scheduledPurgeDate":1624846651,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee","deletedDate":1617070697,"scheduledPurgeDate":1624846697,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870","deletedDate":1617070641,"scheduledPurgeDate":1624846641,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee","deletedDate":1617070611,"scheduledPurgeDate":1624846611,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870","deletedDate":1617070576,"scheduledPurgeDate":1624846576,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed","deletedDate":1617070697,"scheduledPurgeDate":1624846697,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee","deletedDate":1617070722,"scheduledPurgeDate":1624846722,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870","deletedDate":1617070652,"scheduledPurgeDate":1624846652,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed","deletedDate":1617070685,"scheduledPurgeDate":1624846685,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee","deletedDate":1617070640,"scheduledPurgeDate":1624846640,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870","deletedDate":1617070601,"scheduledPurgeDate":1624846601,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed","deletedDate":1617070722,"scheduledPurgeDate":1624846722,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee","deletedDate":1617070733,"scheduledPurgeDate":1624846733,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":null}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274019,"updated":1628274019,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274019,"updated":1628274019}}}' headers: cache-control: no-cache - content-length: '6747' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:06 GMT + date: Fri, 06 Aug 2021 18:26:44 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETUVFM1FqWXhOa1ZGTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870/recover?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070572}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274019,"updated":1628274019,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274019,"updated":1628274019}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:06 GMT + date: Fri, 06 Aug 2021 18:26:44 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -3888,7 +7389,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: @@ -3901,14 +7402,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:06 GMT + date: Fri, 06 Aug 2021 18:26:44 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -3920,7 +7421,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: @@ -3933,14 +7434,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:08 GMT + date: Fri, 06 Aug 2021 18:26:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -3952,7 +7453,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: @@ -3965,14 +7466,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:10 GMT + date: Fri, 06 Aug 2021 18:26:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -3984,7 +7485,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: @@ -3997,14 +7498,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:12 GMT + date: Fri, 06 Aug 2021 18:26:51 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -4016,7 +7517,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: @@ -4029,14 +7530,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:14 GMT + date: Fri, 06 Aug 2021 18:26:53 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -4048,7 +7549,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: @@ -4061,14 +7562,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:17 GMT + date: Fri, 06 Aug 2021 18:26:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -4080,28 +7581,31 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec44d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:19 GMT + date: Fri, 06 Aug 2021 18:26:57 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 - request: body: null @@ -4109,504 +7613,419 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870/recover?api-version=2016-10-01 - response: - body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070573}}}' - headers: - cache-control: no-cache - content-length: '1839' - content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:19 GMT - expires: '-1' - pragma: no-cache - strict-transport-security: max-age=31536000;includeSubDomains - x-content-type-options: nosniff - x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 - x-powered-by: ASP.NET - status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870/recover?api-version=2016-10-01 -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec64d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec44d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:19 GMT + date: Fri, 06 Aug 2021 18:26:59 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec64d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec44d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:21 GMT + date: Fri, 06 Aug 2021 18:27:01 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec64d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec44d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:23 GMT + date: Fri, 06 Aug 2021 18:27:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec64d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec44d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:25 GMT + date: Fri, 06 Aug 2021 18:27:05 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec64d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec44d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:26 GMT + date: Fri, 06 Aug 2021 18:27:08 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec64d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec44d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:28 GMT + date: Fri, 06 Aug 2021 18:27:10 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 - response: - body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070573}}}' - headers: - cache-control: no-cache - content-length: '1839' - content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:31 GMT - expires: '-1' - pragma: no-cache - strict-transport-security: max-age=31536000;includeSubDomains - x-content-type-options: nosniff - x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 - x-powered-by: ASP.NET - status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870/recover?api-version=2016-10-01 - response: - body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070571}}}' - headers: - cache-control: no-cache - content-length: '1839' - content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:32 GMT - expires: '-1' - pragma: no-cache - strict-transport-security: max-age=31536000;includeSubDomains - x-content-type-options: nosniff - x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 - x-powered-by: ASP.NET - status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870/recover?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec34d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec44d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:32 GMT + date: Fri, 06 Aug 2021 18:27:12 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec34d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec44d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:34 GMT + date: Fri, 06 Aug 2021 18:27:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec34d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec44d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:36 GMT + date: Fri, 06 Aug 2021 18:27:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec34d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec44d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:38 GMT + date: Fri, 06 Aug 2021 18:27:18 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec34d851870 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274019,"updated":1628274019,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274019,"updated":1628274019}}}' headers: cache-control: no-cache - content-length: '338' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:40 GMT + date: Fri, 06 Aug 2021 18:27:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870/recover?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070571}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274020,"updated":1628274020,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274020,"updated":1628274020}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:42 GMT + date: Fri, 06 Aug 2021 18:27:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870/recover?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870/recover?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec54d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:42 GMT + date: Fri, 06 Aug 2021 18:27:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870/recover?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 response: @@ -4619,14 +8038,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:42 GMT + date: Fri, 06 Aug 2021 18:27:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -4638,7 +8057,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 response: @@ -4651,14 +8070,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:44 GMT + date: Fri, 06 Aug 2021 18:27:25 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -4670,7 +8089,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 response: @@ -4683,14 +8102,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:46 GMT + date: Fri, 06 Aug 2021 18:27:27 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -4702,7 +8121,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 response: @@ -4715,14 +8134,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:47 GMT + date: Fri, 06 Aug 2021 18:27:29 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -4734,7 +8153,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 response: @@ -4747,14 +8166,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:50 GMT + date: Fri, 06 Aug 2021 18:27:31 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -4766,7 +8185,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 response: @@ -4779,14 +8198,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:52 GMT + date: Fri, 06 Aug 2021 18:27:33 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -4798,28 +8217,31 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec54d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:54 GMT + date: Fri, 06 Aug 2021 18:27:35 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 - request: body: null @@ -4827,757 +8249,749 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870/recover?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070571}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec54d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:54 GMT + date: Fri, 06 Aug 2021 18:27:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870/recover?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec24d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec54d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:54 GMT + date: Fri, 06 Aug 2021 18:27:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec24d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec54d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:56 GMT + date: Fri, 06 Aug 2021 18:27:42 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec24d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec54d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:58 GMT + date: Fri, 06 Aug 2021 18:27:43 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec24d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec54d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:00 GMT + date: Fri, 06 Aug 2021 18:27:45 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec24d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec54d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:02 GMT + date: Fri, 06 Aug 2021 18:27:47 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec24d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec54d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:05 GMT + date: Fri, 06 Aug 2021 18:27:49 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070571}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274020,"updated":1628274020,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274020,"updated":1628274020}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:07 GMT + date: Fri, 06 Aug 2021 18:27:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870/recover?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870/recover?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070570}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274020,"updated":1628274020,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274020,"updated":1628274020}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:07 GMT + date: Fri, 06 Aug 2021 18:27:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870/recover?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870/recover?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec14d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec64d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:07 GMT + date: Fri, 06 Aug 2021 18:27:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec14d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec64d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:09 GMT + date: Fri, 06 Aug 2021 18:27:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec14d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec64d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:11 GMT + date: Fri, 06 Aug 2021 18:27:56 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec14d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec64d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:13 GMT + date: Fri, 06 Aug 2021 18:27:58 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec14d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec64d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:15 GMT + date: Fri, 06 Aug 2021 18:28:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070570}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec64d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:17 GMT + date: Fri, 06 Aug 2021 18:28:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870/recover?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067083,"updated":1617070570}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec64d851870 was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:17 GMT + date: Fri, 06 Aug 2021 18:28:05 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870/recover?api-version=2016-10-01 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec04d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec64d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:17 GMT + date: Fri, 06 Aug 2021 18:28:07 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec04d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec64d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:20 GMT + date: Fri, 06 Aug 2021 18:28:09 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec04d851870 was not found in this key vault. If you + (name/id) livekvtestcertrec64d851870 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:22 GMT + date: Fri, 06 Aug 2021 18:28:11 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec04d851870 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274020,"updated":1628274020,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274020,"updated":1628274020}}}' headers: cache-control: no-cache - content-length: '338' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:24 GMT + date: Fri, 06 Aug 2021 18:28:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec04d851870 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '' headers: cache-control: no-cache - content-length: '338' - content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:26 GMT + date: Fri, 06 Aug 2021 18:28:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + code: 204 + message: No Content + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec04d851870 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '' headers: cache-control: no-cache - content-length: '338' - content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:28 GMT + date: Fri, 06 Aug 2021 18:28:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + code: 204 + message: No Content + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec04d851870 was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '' headers: cache-control: no-cache - content-length: '338' - content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:30 GMT + date: Fri, 06 Aug 2021 18:28:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + code: 204 + message: No Content + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067083,"updated":1617070570}}}' + string: '' headers: cache-control: no-cache - content-length: '1839' - content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:33 GMT + date: Fri, 06 Aug 2021 18:28:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + code: 204 + message: No Content + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870?api-version=2016-10-01 response: @@ -5585,14 +8999,14 @@ interactions: string: '' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:33 GMT + date: Fri, 06 Aug 2021 18:28:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 204 @@ -5604,7 +9018,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870?api-version=2016-10-01 response: @@ -5612,14 +9026,14 @@ interactions: string: '' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:33 GMT + date: Fri, 06 Aug 2021 18:28:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 204 @@ -5631,173 +9045,181 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 response: body: string: '' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:33 GMT + date: Fri, 06 Aug 2021 18:28:15 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 204 message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01 response: body: - string: '' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:34 GMT + content-length: '330' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:29:05 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 204 - message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870?api-version=2016-10-01 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 response: body: - string: '' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:33 GMT + content-length: '330' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:29:05 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 204 - message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870?api-version=2016-10-01 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 response: body: - string: '' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1628271087,"scheduledPurgeDate":1636047087,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"RC8tFJZPwOeZWUeGE9sGSFTbczM","attributes":{"enabled":true,"nbf":1628270484,"exp":1659807084,"created":1628271084,"updated":1628271087,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg020391470","deletedDate":1628274345,"scheduledPurgeDate":1636050345,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg020391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274172,"updated":1628274172,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg120391470","deletedDate":1628274366,"scheduledPurgeDate":1636050366,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg120391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274173,"updated":1628274173,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg220391470","deletedDate":1628274385,"scheduledPurgeDate":1636050385,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg220391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274173,"updated":1628274173,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg320391470","deletedDate":1628274404,"scheduledPurgeDate":1636050404,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg320391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274174,"updated":1628274174,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg420391470","deletedDate":1628274440,"scheduledPurgeDate":1636050440,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg420391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274174,"updated":1628274174,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg520391470","deletedDate":1628274471,"scheduledPurgeDate":1636050471,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg520391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274175,"updated":1628274175,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg620391470","deletedDate":1628274492,"scheduledPurgeDate":1636050492,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg620391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274175,"updated":1628274175,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:33 GMT + content-length: '3719' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:29:05 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 204 - message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870?api-version=2016-10-01 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: - string: '' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec220391470","deletedDate":1628274249,"scheduledPurgeDate":1636050249,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec220391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec320391470","deletedDate":1628274272,"scheduledPurgeDate":1636050272,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec320391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274170,"updated":1628274170,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec420391470","deletedDate":1628274289,"scheduledPurgeDate":1636050289,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec420391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec520391470","deletedDate":1628274310,"scheduledPurgeDate":1636050310,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec520391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274171,"updated":1628274171,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec620391470","deletedDate":1628274328,"scheduledPurgeDate":1636050328,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec620391470","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274172,"updated":1628274172,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTT0RRd05ERTVOVVl2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:34 GMT + content-length: '2434' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:29:06 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 204 - message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870?api-version=2016-10-01 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTT0RRd05ERTVOVVl2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/BackupRestoreCertificate","deletedDate":1617053388,"scheduledPurgeDate":1624829388,"id":"https://vaultname.vault.azure.net/certificates/BackupRestoreCertificate","x5t":"BUYGRo9uO7lTgKog96DrqlW8cxQ","attributes":{"enabled":true,"nbf":1617052679,"exp":1648589279,"created":1617053279,"updated":1617053279,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVXpJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSTlJWSkhSVU5GVWxSSlJrbERRVlJGTnpWQlF6RTFSalF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDQhTURBd01ETXpJV05sY25ScFptbGpZWFJsTDAxRFVFRlVTVTVQVTBaVVJWTlVMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' headers: cache-control: no-cache - content-length: '766' + content-length: '314' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:24 GMT + date: Fri, 06 Aug 2021 18:29:06 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTT0RRd05ERTVOVVl2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVXpJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSTlJWSkhSVU5GVWxSSlJrbERRVlJGTnpWQlF6RTFSalF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDQhTURBd01ETXpJV05sY25ScFptbGpZWFJsTDAxRFVFRlVTVTVQVTBaVVJWTlVMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 response: body: string: '{"value":[],"nextLink":null}' @@ -5805,220 +9227,227 @@ interactions: cache-control: no-cache content-length: '28' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:24 GMT + date: Fri, 06 Aug 2021 18:29:06 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVXpJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSTlJWSkhSVU5GVWxSSlJrbERRVlJGTnpWQlF6RTFSalF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=2016-10-01&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDQhTURBd01ETXpJV05sY25ScFptbGpZWFJsTDAxRFVFRlVTVTVQVTBaVVJWTlVMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec44d851870/2730f57f154c494f9e779f0b00bad6c6","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070572}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec04d851870/093040ab2c5f49208a27df5da145baf4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274017,"updated":1628274017,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274017,"updated":1628274017}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:24 GMT + date: Fri, 06 Aug 2021 18:29:06 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec24d851870/8b7545034b8840619926e4cb3431b93a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070571}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec14d851870/a3f4805143ed4215850f86b185f66322","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274018,"updated":1628274018,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274018,"updated":1628274018}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:25 GMT + date: Fri, 06 Aug 2021 18:29:06 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec64d851870/d5c181b0842c4216b4a2544e1be43a01","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070573}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec24d851870/c0da638e58cd4eccb794135ccee0bec9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274018,"updated":1628274018,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274018,"updated":1628274018}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:25 GMT + date: Fri, 06 Aug 2021 18:29:06 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec24d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec14d851870/71c5e12958ef43b98dd7ca42a15f16e1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070570}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec34d851870/0885208481ae4e589d290faf897e6f98","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274019,"updated":1628274019,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274019,"updated":1628274019}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:25 GMT + date: Fri, 06 Aug 2021 18:29:06 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec14d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec34d851870/9c2a771ee44c43cb95ace74378c43bed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070571}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec44d851870/f2ea24a7edd0446eb30a327c4dec23b9","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274019,"updated":1628274019,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274019,"updated":1628274019}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:25 GMT + date: Fri, 06 Aug 2021 18:29:06 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec34d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec44d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec04d851870/08e6c8b2817146959f4333199b5f18b7","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067083,"updated":1617070570}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec54d851870/d96e695e92ab428f9f7fb23134119eb3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274020,"updated":1628274020,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274020,"updated":1628274020}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:25 GMT + date: Fri, 06 Aug 2021 18:29:06 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec04d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec54d851870/8510a58572fa44d8ab4b804cc6078dff","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070572}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec64d851870/0ef1810d08c94f87a72089a8b5031af3","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274020,"updated":1628274020,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274020,"updated":1628274020}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:25 GMT + date: Fri, 06 Aug 2021 18:29:06 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec54d851870/?api-version=2016-10-01 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec64d851870/?api-version=2016-10-01 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_recover_and_purge_7_0.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_recover_and_purge_7_0.yaml index 19264128ec4c..0a74f9e151e8 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_recover_and_purge_7_0.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_recover_and_purge_7_0.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/import?api-version=7.0 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:09 GMT + date: Fri, 06 Aug 2021 18:29:06 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -29,525 +29,539 @@ interactions: x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"x509_props": {"validity_months": 12, "sans": {}, "key_usage": - ["digitalSignature", "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": - {"contentType": "application/x-pkcs12"}, "key_props": {"exportable": true, "reuse_key": - false, "key_size": 2048, "kty": "RSA"}, "issuer": {"name": "Self"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067083,"updated":1617070570}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274547,"updated":1628274547,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274547,"updated":1628274547}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:10 GMT + date: Fri, 06 Aug 2021 18:29:08 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"x509_props": {"validity_months": 12, "sans": {}, "key_usage": - ["digitalSignature", "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": - {"contentType": "application/x-pkcs12"}, "key_props": {"exportable": true, "reuse_key": - false, "key_size": 2048, "kty": "RSA"}, "issuer": {"name": "Self"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070570}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274548,"updated":1628274548,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274548,"updated":1628274548}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:10 GMT + date: Fri, 06 Aug 2021 18:29:08 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"x509_props": {"validity_months": 12, "sans": {}, "key_usage": - ["digitalSignature", "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": - {"contentType": "application/x-pkcs12"}, "key_props": {"exportable": true, "reuse_key": - false, "key_size": 2048, "kty": "RSA"}, "issuer": {"name": "Self"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070571}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274548,"updated":1628274548,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274548,"updated":1628274548}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:11 GMT + date: Fri, 06 Aug 2021 18:29:08 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"x509_props": {"validity_months": 12, "sans": {}, "key_usage": - ["digitalSignature", "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": - {"contentType": "application/x-pkcs12"}, "key_props": {"exportable": true, "reuse_key": - false, "key_size": 2048, "kty": "RSA"}, "issuer": {"name": "Self"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070571}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274549,"updated":1628274549,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274549,"updated":1628274549}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:11 GMT + date: Fri, 06 Aug 2021 18:29:09 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"x509_props": {"validity_months": 12, "sans": {}, "key_usage": - ["digitalSignature", "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": - {"contentType": "application/x-pkcs12"}, "key_props": {"exportable": true, "reuse_key": - false, "key_size": 2048, "kty": "RSA"}, "issuer": {"name": "Self"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070572}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274549,"updated":1628274549,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274549,"updated":1628274549}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:12 GMT + date: Fri, 06 Aug 2021 18:29:09 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"x509_props": {"validity_months": 12, "sans": {}, "key_usage": - ["digitalSignature", "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": - {"contentType": "application/x-pkcs12"}, "key_props": {"exportable": true, "reuse_key": - false, "key_size": 2048, "kty": "RSA"}, "issuer": {"name": "Self"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070572}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274550,"updated":1628274550}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:12 GMT + date: Fri, 06 Aug 2021 18:29:10 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"x509_props": {"validity_months": 12, "sans": {}, "key_usage": - ["digitalSignature", "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": - {"contentType": "application/x-pkcs12"}, "key_props": {"exportable": true, "reuse_key": - false, "key_size": 2048, "kty": "RSA"}, "issuer": {"name": "Self"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070573}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274550,"updated":1628274550}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:12 GMT + date: Fri, 06 Aug 2021 18:29:10 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"x509_props": {"validity_months": 12, "sans": {}, "key_usage": - ["digitalSignature", "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": - {"contentType": "application/x-pkcs12"}, "key_props": {"exportable": true, "reuse_key": - false, "key_size": 2048, "kty": "RSA"}, "issuer": {"name": "Self"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed/6682c245d0d742ffa04a0a2c2b18c37a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b516ed/6682c245d0d742ffa04a0a2c2b18c37a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b516ed/6682c245d0d742ffa04a0a2c2b18c37a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070573,"updated":1617070573}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed/98062a3b314c40f1ab95c235f3d0861f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b516ed/98062a3b314c40f1ab95c235f3d0861f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b516ed/98062a3b314c40f1ab95c235f3d0861f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274550,"updated":1628274550}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:13 GMT + date: Fri, 06 Aug 2021 18:29:11 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg0a7b516ed/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"x509_props": {"validity_months": 12, "sans": {}, "key_usage": - ["digitalSignature", "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": - {"contentType": "application/x-pkcs12"}, "key_props": {"exportable": true, "reuse_key": - false, "key_size": 2048, "kty": "RSA"}, "issuer": {"name": "Self"}}}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed/8d08c1d36d714e5fb315427555a62d30","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b516ed/8d08c1d36d714e5fb315427555a62d30","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b516ed/8d08c1d36d714e5fb315427555a62d30","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070573,"updated":1617070573}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed/db247470c5b649a6bc246af9da4b3f47","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b516ed/db247470c5b649a6bc246af9da4b3f47","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b516ed/db247470c5b649a6bc246af9da4b3f47","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274551,"updated":1628274551,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274551,"updated":1628274551}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:13 GMT + date: Fri, 06 Aug 2021 18:29:11 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg1a7b516ed/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"x509_props": {"validity_months": 12, "sans": {}, "key_usage": - ["digitalSignature", "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": - {"contentType": "application/x-pkcs12"}, "key_props": {"exportable": true, "reuse_key": - false, "key_size": 2048, "kty": "RSA"}, "issuer": {"name": "Self"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed/0267a9744c5c4e559e1b8f2d65ceeee3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b516ed/0267a9744c5c4e559e1b8f2d65ceeee3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b516ed/0267a9744c5c4e559e1b8f2d65ceeee3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed/c246473f4d4c4ee1917bde2ca35c01ae","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b516ed/c246473f4d4c4ee1917bde2ca35c01ae","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b516ed/c246473f4d4c4ee1917bde2ca35c01ae","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274551,"updated":1628274551,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274551,"updated":1628274551}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:14 GMT + date: Fri, 06 Aug 2021 18:29:12 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg2a7b516ed/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"x509_props": {"validity_months": 12, "sans": {}, "key_usage": - ["digitalSignature", "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": - {"contentType": "application/x-pkcs12"}, "key_props": {"exportable": true, "reuse_key": - false, "key_size": 2048, "kty": "RSA"}, "issuer": {"name": "Self"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed/ff2bcb4b650e4c6ea80cd99d7bb9b25e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b516ed/ff2bcb4b650e4c6ea80cd99d7bb9b25e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b516ed/ff2bcb4b650e4c6ea80cd99d7bb9b25e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed/ef2c0dbae53846faa7d67b49b46b7f97","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b516ed/ef2c0dbae53846faa7d67b49b46b7f97","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b516ed/ef2c0dbae53846faa7d67b49b46b7f97","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274552,"updated":1628274552,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274552,"updated":1628274552}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:14 GMT + date: Fri, 06 Aug 2021 18:29:12 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg3a7b516ed/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"x509_props": {"validity_months": 12, "sans": {}, "key_usage": - ["digitalSignature", "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": - {"contentType": "application/x-pkcs12"}, "key_props": {"exportable": true, "reuse_key": - false, "key_size": 2048, "kty": "RSA"}, "issuer": {"name": "Self"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed/5d365bb73999406491b730c6f1b56a1f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b516ed/5d365bb73999406491b730c6f1b56a1f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b516ed/5d365bb73999406491b730c6f1b56a1f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed/bde495e0732b4cbd8b06584e5516ded7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b516ed/bde495e0732b4cbd8b06584e5516ded7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b516ed/bde495e0732b4cbd8b06584e5516ded7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274552,"updated":1628274552,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274552,"updated":1628274552}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:14 GMT + date: Fri, 06 Aug 2021 18:29:12 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg4a7b516ed/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"x509_props": {"validity_months": 12, "sans": {}, "key_usage": - ["digitalSignature", "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": - {"contentType": "application/x-pkcs12"}, "key_props": {"exportable": true, "reuse_key": - false, "key_size": 2048, "kty": "RSA"}, "issuer": {"name": "Self"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed/6d020497b9a8475c942a11a1e62cf4ab","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b516ed/6d020497b9a8475c942a11a1e62cf4ab","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b516ed/6d020497b9a8475c942a11a1e62cf4ab","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed/bcfda854388540a1aef362d94fbb9f17","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b516ed/bcfda854388540a1aef362d94fbb9f17","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b516ed/bcfda854388540a1aef362d94fbb9f17","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274553,"updated":1628274553,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274553,"updated":1628274553}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:15 GMT + date: Fri, 06 Aug 2021 18:29:13 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg5a7b516ed/import?api-version=7.0 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"x509_props": {"validity_months": 12, "sans": {}, "key_usage": - ["digitalSignature", "keyEncipherment"], "subject": "CN=DefaultPolicy"}, "secret_props": - {"contentType": "application/x-pkcs12"}, "key_props": {"exportable": true, "reuse_key": - false, "key_size": 2048, "kty": "RSA"}, "issuer": {"name": "Self"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed/import?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed/469649ed50f84369aae0f8c99e2f9f88","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b516ed/469649ed50f84369aae0f8c99e2f9f88","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b516ed/469649ed50f84369aae0f8c99e2f9f88","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070576,"updated":1617070576,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070576,"updated":1617070576}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed/4f4e8021fff54c2ba09ac3f74fa358e6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b516ed/4f4e8021fff54c2ba09ac3f74fa358e6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b516ed/4f4e8021fff54c2ba09ac3f74fa358e6","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274553,"updated":1628274553,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274553,"updated":1628274553}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:15 GMT + date: Fri, 06 Aug 2021 18:29:13 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -559,1108 +573,1117 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed","deletedDate":1617070576,"scheduledPurgeDate":1624846576,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed/6682c245d0d742ffa04a0a2c2b18c37a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b516ed/6682c245d0d742ffa04a0a2c2b18c37a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b516ed/6682c245d0d742ffa04a0a2c2b18c37a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070573,"updated":1617070573}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed","deletedDate":1628274554,"scheduledPurgeDate":1636050554,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274547,"updated":1628274547,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274547,"updated":1628274547}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:15 GMT + date: Fri, 06 Aug 2021 18:29:13 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg0a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0a7b516ed"}}' + not found: livekvtestcertrec0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:15 GMT + date: Fri, 06 Aug 2021 18:29:13 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0a7b516ed"}}' + not found: livekvtestcertrec0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:17 GMT + date: Fri, 06 Aug 2021 18:29:15 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0a7b516ed"}}' + not found: livekvtestcertrec0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:20 GMT + date: Fri, 06 Aug 2021 18:29:18 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0a7b516ed"}}' + not found: livekvtestcertrec0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:22 GMT + date: Fri, 06 Aug 2021 18:29:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0a7b516ed"}}' + not found: livekvtestcertrec0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:24 GMT + date: Fri, 06 Aug 2021 18:29:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0a7b516ed"}}' + not found: livekvtestcertrec0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:26 GMT + date: Fri, 06 Aug 2021 18:29:24 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0a7b516ed"}}' + not found: livekvtestcertrec0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:28 GMT + date: Fri, 06 Aug 2021 18:29:25 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed","deletedDate":1617070576,"scheduledPurgeDate":1624846576,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed/6682c245d0d742ffa04a0a2c2b18c37a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b516ed/6682c245d0d742ffa04a0a2c2b18c37a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b516ed/6682c245d0d742ffa04a0a2c2b18c37a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070573,"updated":1617070573}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec0a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:30 GMT + date: Fri, 06 Aug 2021 18:29:28 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed","deletedDate":1617070590,"scheduledPurgeDate":1624846590,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed/8d08c1d36d714e5fb315427555a62d30","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b516ed/8d08c1d36d714e5fb315427555a62d30","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b516ed/8d08c1d36d714e5fb315427555a62d30","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070573,"updated":1617070573}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec0a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:30 GMT + date: Fri, 06 Aug 2021 18:29:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg1a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1a7b516ed"}}' + not found: livekvtestcertrec0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:30 GMT + date: Fri, 06 Aug 2021 18:29:32 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1a7b516ed"}}' + not found: livekvtestcertrec0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:32 GMT + date: Fri, 06 Aug 2021 18:29:34 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1a7b516ed"}}' + not found: livekvtestcertrec0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:34 GMT + date: Fri, 06 Aug 2021 18:29:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1a7b516ed"}}' + not found: livekvtestcertrec0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:36 GMT + date: Fri, 06 Aug 2021 18:29:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1a7b516ed"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed","deletedDate":1628274554,"scheduledPurgeDate":1636050554,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274547,"updated":1628274547,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274547,"updated":1628274547}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:38 GMT + date: Fri, 06 Aug 2021 18:29:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed","deletedDate":1617070590,"scheduledPurgeDate":1624846590,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed/8d08c1d36d714e5fb315427555a62d30","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b516ed/8d08c1d36d714e5fb315427555a62d30","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b516ed/8d08c1d36d714e5fb315427555a62d30","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070573,"updated":1617070573}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed","deletedDate":1628274580,"scheduledPurgeDate":1636050580,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274548,"updated":1628274548,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274548,"updated":1628274548}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:41 GMT + date: Fri, 06 Aug 2021 18:29:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed","deletedDate":1617070601,"scheduledPurgeDate":1624846601,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed/0267a9744c5c4e559e1b8f2d65ceeee3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b516ed/0267a9744c5c4e559e1b8f2d65ceeee3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b516ed/0267a9744c5c4e559e1b8f2d65ceeee3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:41 GMT + date: Fri, 06 Aug 2021 18:29:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg2a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2a7b516ed"}}' + not found: livekvtestcertrec1a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:41 GMT + date: Fri, 06 Aug 2021 18:29:42 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2a7b516ed"}}' + not found: livekvtestcertrec1a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:43 GMT + date: Fri, 06 Aug 2021 18:29:44 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2a7b516ed"}}' + not found: livekvtestcertrec1a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:45 GMT + date: Fri, 06 Aug 2021 18:29:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2a7b516ed"}}' + not found: livekvtestcertrec1a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:47 GMT + date: Fri, 06 Aug 2021 18:29:49 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2a7b516ed"}}' + not found: livekvtestcertrec1a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:49 GMT + date: Fri, 06 Aug 2021 18:29:51 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed","deletedDate":1617070601,"scheduledPurgeDate":1624846601,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed/0267a9744c5c4e559e1b8f2d65ceeee3","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b516ed/0267a9744c5c4e559e1b8f2d65ceeee3","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b516ed/0267a9744c5c4e559e1b8f2d65ceeee3","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:50 GMT + date: Fri, 06 Aug 2021 18:29:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed","deletedDate":1617070612,"scheduledPurgeDate":1624846612,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed/469649ed50f84369aae0f8c99e2f9f88","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b516ed/469649ed50f84369aae0f8c99e2f9f88","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b516ed/469649ed50f84369aae0f8c99e2f9f88","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070576,"updated":1617070576,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070576,"updated":1617070576}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed","deletedDate":1628274580,"scheduledPurgeDate":1636050580,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274548,"updated":1628274548,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274548,"updated":1628274548}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:52 GMT + date: Fri, 06 Aug 2021 18:29:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg6a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6a7b516ed"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed","deletedDate":1628274595,"scheduledPurgeDate":1636050595,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274548,"updated":1628274548,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274548,"updated":1628274548}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:52 GMT + date: Fri, 06 Aug 2021 18:29:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6a7b516ed"}}' + not found: livekvtestcertrec2a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:54 GMT + date: Fri, 06 Aug 2021 18:29:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6a7b516ed"}}' + not found: livekvtestcertrec2a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:55 GMT + date: Fri, 06 Aug 2021 18:29:57 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6a7b516ed"}}' + not found: livekvtestcertrec2a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:57 GMT + date: Fri, 06 Aug 2021 18:29:59 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6a7b516ed"}}' + not found: livekvtestcertrec2a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:59 GMT + date: Fri, 06 Aug 2021 18:30:01 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6a7b516ed"}}' + not found: livekvtestcertrec2a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:01 GMT + date: Fri, 06 Aug 2021 18:30:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed","deletedDate":1617070612,"scheduledPurgeDate":1624846612,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed/469649ed50f84369aae0f8c99e2f9f88","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b516ed/469649ed50f84369aae0f8c99e2f9f88","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b516ed/469649ed50f84369aae0f8c99e2f9f88","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070576,"updated":1617070576,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070576,"updated":1617070576}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec2a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:03 GMT + date: Fri, 06 Aug 2021 18:30:05 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed","deletedDate":1617070624,"scheduledPurgeDate":1624846624,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070571}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec2a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:03 GMT + date: Fri, 06 Aug 2021 18:30:08 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3a7b516ed"}}' + not found: livekvtestcertrec2a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:03 GMT + date: Fri, 06 Aug 2021 18:30:09 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3a7b516ed"}}' + not found: livekvtestcertrec2a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:05 GMT + date: Fri, 06 Aug 2021 18:30:11 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3a7b516ed"}}' + not found: livekvtestcertrec2a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:07 GMT + date: Fri, 06 Aug 2021 18:30:13 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3a7b516ed"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed","deletedDate":1628274595,"scheduledPurgeDate":1636050595,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274548,"updated":1628274548,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274548,"updated":1628274548}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:09 GMT + date: Fri, 06 Aug 2021 18:30:15 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3a7b516ed"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed","deletedDate":1628274616,"scheduledPurgeDate":1636050616,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274549,"updated":1628274549,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274549,"updated":1628274549}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:11 GMT + date: Fri, 06 Aug 2021 18:30:15 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 response: @@ -1671,14 +1694,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:14 GMT + date: Fri, 06 Aug 2021 18:30:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1690,7 +1713,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 response: @@ -1701,14 +1724,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:16 GMT + date: Fri, 06 Aug 2021 18:30:17 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1720,7 +1743,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 response: @@ -1731,14 +1754,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:18 GMT + date: Fri, 06 Aug 2021 18:30:19 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1750,28 +1773,29 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed","deletedDate":1617070624,"scheduledPurgeDate":1624846624,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070571}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec3a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:20 GMT + date: Fri, 06 Aug 2021 18:30:21 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 - request: body: null @@ -1779,2354 +1803,5345 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed?api-version=7.0 - response: - body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed","deletedDate":1617070641,"scheduledPurgeDate":1624846641,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed/ff2bcb4b650e4c6ea80cd99d7bb9b25e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b516ed/ff2bcb4b650e4c6ea80cd99d7bb9b25e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b516ed/ff2bcb4b650e4c6ea80cd99d7bb9b25e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' - headers: - cache-control: no-cache - content-length: '1993' - content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:20 GMT - expires: '-1' - pragma: no-cache - strict-transport-security: max-age=31536000;includeSubDomains - x-content-type-options: nosniff - x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 - x-powered-by: ASP.NET - status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg3a7b516ed?api-version=7.0 -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3a7b516ed"}}' + not found: livekvtestcertrec3a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:20 GMT + date: Fri, 06 Aug 2021 18:30:23 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3a7b516ed"}}' + not found: livekvtestcertrec3a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:23 GMT + date: Fri, 06 Aug 2021 18:30:25 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3a7b516ed"}}' + not found: livekvtestcertrec3a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:25 GMT + date: Fri, 06 Aug 2021 18:30:28 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3a7b516ed"}}' + not found: livekvtestcertrec3a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:27 GMT + date: Fri, 06 Aug 2021 18:30:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3a7b516ed"}}' + not found: livekvtestcertrec3a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:29 GMT + date: Fri, 06 Aug 2021 18:30:32 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed","deletedDate":1617070641,"scheduledPurgeDate":1624846641,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed/ff2bcb4b650e4c6ea80cd99d7bb9b25e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b516ed/ff2bcb4b650e4c6ea80cd99d7bb9b25e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b516ed/ff2bcb4b650e4c6ea80cd99d7bb9b25e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed","deletedDate":1628274616,"scheduledPurgeDate":1636050616,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274549,"updated":1628274549,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274549,"updated":1628274549}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:31 GMT + date: Fri, 06 Aug 2021 18:30:34 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed","deletedDate":1617070651,"scheduledPurgeDate":1624846651,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070571}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed","deletedDate":1628274634,"scheduledPurgeDate":1636050634,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274549,"updated":1628274549,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274549,"updated":1628274549}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:31 GMT + date: Fri, 06 Aug 2021 18:30:34 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2a7b516ed"}}' + not found: livekvtestcertrec4a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:31 GMT + date: Fri, 06 Aug 2021 18:30:34 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2a7b516ed"}}' + not found: livekvtestcertrec4a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:33 GMT + date: Fri, 06 Aug 2021 18:30:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2a7b516ed"}}' + not found: livekvtestcertrec4a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:35 GMT + date: Fri, 06 Aug 2021 18:30:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2a7b516ed"}}' + not found: livekvtestcertrec4a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:37 GMT + date: Fri, 06 Aug 2021 18:30:41 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2a7b516ed"}}' + not found: livekvtestcertrec4a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:39 GMT + date: Fri, 06 Aug 2021 18:30:43 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed","deletedDate":1617070651,"scheduledPurgeDate":1624846651,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070571}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:42 GMT + date: Fri, 06 Aug 2021 18:30:45 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed","deletedDate":1617070662,"scheduledPurgeDate":1624846662,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067083,"updated":1617070570}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:42 GMT + date: Fri, 06 Aug 2021 18:30:47 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0a7b516ed"}}' + not found: livekvtestcertrec4a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:42 GMT + date: Fri, 06 Aug 2021 18:30:49 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0a7b516ed"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed","deletedDate":1628274634,"scheduledPurgeDate":1636050634,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274549,"updated":1628274549,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274549,"updated":1628274549}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:43 GMT + date: Fri, 06 Aug 2021 18:30:51 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0a7b516ed"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed","deletedDate":1628274651,"scheduledPurgeDate":1636050651,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274550,"updated":1628274550}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:45 GMT + date: Fri, 06 Aug 2021 18:30:51 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0a7b516ed"}}' + not found: livekvtestcertrec5a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:48 GMT + date: Fri, 06 Aug 2021 18:30:51 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0a7b516ed"}}' + not found: livekvtestcertrec5a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:50 GMT + date: Fri, 06 Aug 2021 18:30:53 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed","deletedDate":1617070662,"scheduledPurgeDate":1624846662,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067083,"updated":1617070570}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:51 GMT + date: Fri, 06 Aug 2021 18:30:56 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed","deletedDate":1617070672,"scheduledPurgeDate":1624846672,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed/6d020497b9a8475c942a11a1e62cf4ab","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b516ed/6d020497b9a8475c942a11a1e62cf4ab","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b516ed/6d020497b9a8475c942a11a1e62cf4ab","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:52 GMT + date: Fri, 06 Aug 2021 18:30:58 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg5a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5a7b516ed"}}' + not found: livekvtestcertrec5a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:52 GMT + date: Fri, 06 Aug 2021 18:31:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5a7b516ed"}}' + not found: livekvtestcertrec5a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:54 GMT + date: Fri, 06 Aug 2021 18:31:01 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5a7b516ed"}}' + not found: livekvtestcertrec5a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:56 GMT + date: Fri, 06 Aug 2021 18:31:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5a7b516ed"}}' + not found: livekvtestcertrec5a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:58 GMT + date: Fri, 06 Aug 2021 18:31:06 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5a7b516ed"}}' + not found: livekvtestcertrec5a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:00 GMT + date: Fri, 06 Aug 2021 18:31:08 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5a7b516ed"}}' + not found: livekvtestcertrec5a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:02 GMT + date: Fri, 06 Aug 2021 18:31:09 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed","deletedDate":1617070672,"scheduledPurgeDate":1624846672,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed/6d020497b9a8475c942a11a1e62cf4ab","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b516ed/6d020497b9a8475c942a11a1e62cf4ab","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b516ed/6d020497b9a8475c942a11a1e62cf4ab","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed","deletedDate":1628274651,"scheduledPurgeDate":1636050651,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274550,"updated":1628274550}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:04 GMT + date: Fri, 06 Aug 2021 18:31:11 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed","deletedDate":1617070685,"scheduledPurgeDate":1624846685,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070572}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed","deletedDate":1628274672,"scheduledPurgeDate":1636050672,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274550,"updated":1628274550}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:05 GMT + date: Fri, 06 Aug 2021 18:31:11 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b516ed"}}' + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:05 GMT + date: Fri, 06 Aug 2021 18:31:11 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b516ed"}}' + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:07 GMT + date: Fri, 06 Aug 2021 18:31:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b516ed"}}' + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:09 GMT + date: Fri, 06 Aug 2021 18:31:15 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b516ed"}}' + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:11 GMT + date: Fri, 06 Aug 2021 18:31:18 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b516ed"}}' + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:13 GMT + date: Fri, 06 Aug 2021 18:31:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b516ed"}}' + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:15 GMT + date: Fri, 06 Aug 2021 18:31:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed","deletedDate":1617070685,"scheduledPurgeDate":1624846685,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:17 GMT + date: Fri, 06 Aug 2021 18:31:24 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed","deletedDate":1617070697,"scheduledPurgeDate":1624846697,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:17 GMT + date: Fri, 06 Aug 2021 18:31:26 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4a7b516ed"}}' + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:17 GMT + date: Fri, 06 Aug 2021 18:31:29 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4a7b516ed"}}' + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:19 GMT + date: Fri, 06 Aug 2021 18:31:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4a7b516ed"}}' + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:21 GMT + date: Fri, 06 Aug 2021 18:31:32 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4a7b516ed"}}' + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:23 GMT + date: Fri, 06 Aug 2021 18:31:35 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4a7b516ed"}}' + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:25 GMT + date: Fri, 06 Aug 2021 18:31:37 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4a7b516ed"}}' + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:27 GMT + date: Fri, 06 Aug 2021 18:31:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed","deletedDate":1617070697,"scheduledPurgeDate":1624846697,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:29 GMT + date: Fri, 06 Aug 2021 18:31:41 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed","deletedDate":1617070710,"scheduledPurgeDate":1624846710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070570}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:29 GMT + date: Fri, 06 Aug 2021 18:31:43 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1a7b516ed"}}' + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:29 GMT + date: Fri, 06 Aug 2021 18:31:45 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1a7b516ed"}}' + not found: livekvtestcertrec6a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:32 GMT + date: Fri, 06 Aug 2021 18:31:47 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1a7b516ed"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed","deletedDate":1628274672,"scheduledPurgeDate":1636050672,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274550,"updated":1628274550}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:34 GMT + date: Fri, 06 Aug 2021 18:31:49 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1a7b516ed"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed","deletedDate":1628274709,"scheduledPurgeDate":1636050709,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed/98062a3b314c40f1ab95c235f3d0861f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b516ed/98062a3b314c40f1ab95c235f3d0861f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b516ed/98062a3b314c40f1ab95c235f3d0861f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274550,"updated":1628274550}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:36 GMT + date: Fri, 06 Aug 2021 18:31:49 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1a7b516ed"}}' + not found: livekvtestcertprg0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:38 GMT + date: Fri, 06 Aug 2021 18:31:49 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1a7b516ed"}}' + not found: livekvtestcertprg0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:40 GMT + date: Fri, 06 Aug 2021 18:31:51 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed","deletedDate":1617070710,"scheduledPurgeDate":1624846710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070570}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:41 GMT + date: Fri, 06 Aug 2021 18:31:53 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed","deletedDate":1617070722,"scheduledPurgeDate":1624846722,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070573}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:42 GMT + date: Fri, 06 Aug 2021 18:31:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6a7b516ed"}}' + not found: livekvtestcertprg0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:42 GMT + date: Fri, 06 Aug 2021 18:31:58 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6a7b516ed"}}' + not found: livekvtestcertprg0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:44 GMT + date: Fri, 06 Aug 2021 18:32:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6a7b516ed"}}' + not found: livekvtestcertprg0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:47 GMT + date: Fri, 06 Aug 2021 18:32:02 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6a7b516ed"}}' + not found: livekvtestcertprg0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:49 GMT + date: Fri, 06 Aug 2021 18:32:04 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6a7b516ed"}}' + not found: livekvtestcertprg0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:51 GMT + date: Fri, 06 Aug 2021 18:32:06 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed","deletedDate":1617070722,"scheduledPurgeDate":1624846722,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070573}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:52 GMT + date: Fri, 06 Aug 2021 18:32:08 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed","deletedDate":1617070733,"scheduledPurgeDate":1624846733,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed/5d365bb73999406491b730c6f1b56a1f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b516ed/5d365bb73999406491b730c6f1b56a1f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b516ed/5d365bb73999406491b730c6f1b56a1f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0a7b516ed"}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:53 GMT + date: Fri, 06 Aug 2021 18:32:10 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg4a7b516ed?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b516ed"}}' + not found: livekvtestcertprg0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:53 GMT + date: Fri, 06 Aug 2021 18:32:12 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b516ed"}}' + not found: livekvtestcertprg0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:55 GMT + date: Fri, 06 Aug 2021 18:32:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b516ed"}}' + not found: livekvtestcertprg0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:57 GMT + date: Fri, 06 Aug 2021 18:32:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b516ed"}}' + not found: livekvtestcertprg0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:59 GMT + date: Fri, 06 Aug 2021 18:32:18 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b516ed"}}' + not found: livekvtestcertprg0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:01 GMT + date: Fri, 06 Aug 2021 18:32:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b516ed"}}' + not found: livekvtestcertprg0a7b516ed"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:03 GMT + date: Fri, 06 Aug 2021 18:32:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:24 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:26 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:29 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed","deletedDate":1617070733,"scheduledPurgeDate":1624846733,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed/5d365bb73999406491b730c6f1b56a1f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b516ed/5d365bb73999406491b730c6f1b56a1f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b516ed/5d365bb73999406491b730c6f1b56a1f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed","deletedDate":1628274709,"scheduledPurgeDate":1636050709,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed/98062a3b314c40f1ab95c235f3d0861f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b516ed/98062a3b314c40f1ab95c235f3d0861f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b516ed/98062a3b314c40f1ab95c235f3d0861f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274550,"updated":1628274550}}}' headers: cache-control: no-cache - content-length: '1993' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:05 GMT + date: Fri, 06 Aug 2021 18:32:31 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed?api-version=7.0 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/BackupRestoreCertificate","deletedDate":1617053388,"scheduledPurgeDate":1624829388,"id":"https://vaultname.vault.azure.net/certificates/BackupRestoreCertificate","x5t":"BUYGRo9uO7lTgKog96DrqlW8cxQ","attributes":{"enabled":true,"nbf":1617052679,"exp":1648589279,"created":1617053279,"updated":1617053279,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870","deletedDate":1617070624,"scheduledPurgeDate":1624846624,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed","deletedDate":1617070576,"scheduledPurgeDate":1624846576,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee","deletedDate":1617070661,"scheduledPurgeDate":1624846661,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870","deletedDate":1617070710,"scheduledPurgeDate":1624846710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed","deletedDate":1617070590,"scheduledPurgeDate":1624846590,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee","deletedDate":1617070710,"scheduledPurgeDate":1624846710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870","deletedDate":1617070733,"scheduledPurgeDate":1624846733,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed","deletedDate":1617070601,"scheduledPurgeDate":1624846601,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee","deletedDate":1617070626,"scheduledPurgeDate":1624846626,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870","deletedDate":1617070673,"scheduledPurgeDate":1624846673,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed","deletedDate":1617070641,"scheduledPurgeDate":1624846641,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee","deletedDate":1617070603,"scheduledPurgeDate":1624846603,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870","deletedDate":1617070591,"scheduledPurgeDate":1624846591,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed","deletedDate":1617070733,"scheduledPurgeDate":1624846733,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee","deletedDate":1617070576,"scheduledPurgeDate":1624846576,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870","deletedDate":1617070612,"scheduledPurgeDate":1624846612,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed","deletedDate":1617070672,"scheduledPurgeDate":1624846672,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee","deletedDate":1617070653,"scheduledPurgeDate":1624846653,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870","deletedDate":1617070662,"scheduledPurgeDate":1624846662,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070576,"updated":1617070576,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed","deletedDate":1617070612,"scheduledPurgeDate":1624846612,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070576,"updated":1617070576,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee","deletedDate":1617070672,"scheduledPurgeDate":1624846672,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870","deletedDate":1617070723,"scheduledPurgeDate":1624846723,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed","deletedDate":1617070662,"scheduledPurgeDate":1624846662,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee","deletedDate":1617070684,"scheduledPurgeDate":1624846684,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETUVFM1FqWXhOa1ZGTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed","deletedDate":1628274751,"scheduledPurgeDate":1636050751,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed/db247470c5b649a6bc246af9da4b3f47","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b516ed/db247470c5b649a6bc246af9da4b3f47","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b516ed/db247470c5b649a6bc246af9da4b3f47","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274551,"updated":1628274551,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274551,"updated":1628274551}}}' headers: cache-control: no-cache - content-length: '10823' + content-length: '2436' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:06 GMT + date: Fri, 06 Aug 2021 18:32:31 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg1a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:31 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:33 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:35 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:39 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETUVFM1FqWXhOa1ZGTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870","deletedDate":1617070698,"scheduledPurgeDate":1624846698,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed","deletedDate":1617070710,"scheduledPurgeDate":1624846710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee","deletedDate":1617070590,"scheduledPurgeDate":1624846590,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870","deletedDate":1617070685,"scheduledPurgeDate":1624846685,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed","deletedDate":1617070651,"scheduledPurgeDate":1624846651,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee","deletedDate":1617070697,"scheduledPurgeDate":1624846697,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870","deletedDate":1617070641,"scheduledPurgeDate":1624846641,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed","deletedDate":1617070624,"scheduledPurgeDate":1624846624,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee","deletedDate":1617070611,"scheduledPurgeDate":1624846611,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870","deletedDate":1617070576,"scheduledPurgeDate":1624846576,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed","deletedDate":1617070697,"scheduledPurgeDate":1624846697,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee","deletedDate":1617070722,"scheduledPurgeDate":1624846722,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870","deletedDate":1617070652,"scheduledPurgeDate":1624846652,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed","deletedDate":1617070685,"scheduledPurgeDate":1624846685,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee","deletedDate":1617070640,"scheduledPurgeDate":1624846640,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870","deletedDate":1617070601,"scheduledPurgeDate":1624846601,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed","deletedDate":1617070722,"scheduledPurgeDate":1624846722,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee","deletedDate":1617070733,"scheduledPurgeDate":1624846733,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":null}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:41 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:43 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:45 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:47 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed","deletedDate":1628274751,"scheduledPurgeDate":1636050751,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed/db247470c5b649a6bc246af9da4b3f47","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b516ed/db247470c5b649a6bc246af9da4b3f47","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b516ed/db247470c5b649a6bc246af9da4b3f47","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274551,"updated":1628274551,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274551,"updated":1628274551}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:49 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed","deletedDate":1628274770,"scheduledPurgeDate":1636050770,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed/c246473f4d4c4ee1917bde2ca35c01ae","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b516ed/c246473f4d4c4ee1917bde2ca35c01ae","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b516ed/c246473f4d4c4ee1917bde2ca35c01ae","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274551,"updated":1628274551,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274551,"updated":1628274551}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:49 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg2a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:50 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:51 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:53 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:55 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:57 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:32:59 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:02 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:04 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:06 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed","deletedDate":1628274770,"scheduledPurgeDate":1636050770,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed/c246473f4d4c4ee1917bde2ca35c01ae","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b516ed/c246473f4d4c4ee1917bde2ca35c01ae","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b516ed/c246473f4d4c4ee1917bde2ca35c01ae","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274551,"updated":1628274551,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274551,"updated":1628274551}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:08 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed","deletedDate":1628274789,"scheduledPurgeDate":1636050789,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed/ef2c0dbae53846faa7d67b49b46b7f97","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b516ed/ef2c0dbae53846faa7d67b49b46b7f97","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b516ed/ef2c0dbae53846faa7d67b49b46b7f97","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274552,"updated":1628274552,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274552,"updated":1628274552}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:08 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg3a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:08 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:10 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:12 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:15 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:17 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:19 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:21 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:23 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:25 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed","deletedDate":1628274789,"scheduledPurgeDate":1636050789,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed/ef2c0dbae53846faa7d67b49b46b7f97","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b516ed/ef2c0dbae53846faa7d67b49b46b7f97","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b516ed/ef2c0dbae53846faa7d67b49b46b7f97","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274552,"updated":1628274552,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274552,"updated":1628274552}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:27 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed","deletedDate":1628274808,"scheduledPurgeDate":1636050808,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed/bde495e0732b4cbd8b06584e5516ded7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b516ed/bde495e0732b4cbd8b06584e5516ded7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b516ed/bde495e0732b4cbd8b06584e5516ded7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274552,"updated":1628274552,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274552,"updated":1628274552}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:27 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg4a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:29 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:31 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:33 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:35 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:38 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:40 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:42 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:44 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed","deletedDate":1628274808,"scheduledPurgeDate":1636050808,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed/bde495e0732b4cbd8b06584e5516ded7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b516ed/bde495e0732b4cbd8b06584e5516ded7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b516ed/bde495e0732b4cbd8b06584e5516ded7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274552,"updated":1628274552,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274552,"updated":1628274552}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:46 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed","deletedDate":1628274826,"scheduledPurgeDate":1636050826,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed/bcfda854388540a1aef362d94fbb9f17","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b516ed/bcfda854388540a1aef362d94fbb9f17","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b516ed/bcfda854388540a1aef362d94fbb9f17","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274553,"updated":1628274553,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274553,"updated":1628274553}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:46 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:46 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:48 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:50 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:53 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:55 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:57 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:33:59 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:00 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:02 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:05 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:07 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:11 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:13 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:15 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:17 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed","deletedDate":1628274826,"scheduledPurgeDate":1636050826,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed/bcfda854388540a1aef362d94fbb9f17","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b516ed/bcfda854388540a1aef362d94fbb9f17","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b516ed/bcfda854388540a1aef362d94fbb9f17","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274553,"updated":1628274553,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274553,"updated":1628274553}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:19 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed","deletedDate":1628274860,"scheduledPurgeDate":1636050860,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed/4f4e8021fff54c2ba09ac3f74fa358e6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b516ed/4f4e8021fff54c2ba09ac3f74fa358e6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b516ed/4f4e8021fff54c2ba09ac3f74fa358e6","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274553,"updated":1628274553,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274553,"updated":1628274553}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:19 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg6a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:19 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:21 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:24 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:26 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:32 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:34 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b516ed"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:36 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed","deletedDate":1628274860,"scheduledPurgeDate":1636050860,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed/4f4e8021fff54c2ba09ac3f74fa358e6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b516ed/4f4e8021fff54c2ba09ac3f74fa358e6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b516ed/4f4e8021fff54c2ba09ac3f74fa358e6","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274553,"updated":1628274553,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274553,"updated":1628274553}}}' + headers: + cache-control: no-cache + content-length: '2436' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:38 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: no-cache + content-length: '323' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:38 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: no-cache + content-length: '323' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:38 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1628271087,"scheduledPurgeDate":1636047087,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"RC8tFJZPwOeZWUeGE9sGSFTbczM","attributes":{"enabled":true,"nbf":1628270484,"exp":1659807084,"created":1628271084,"updated":1628271087,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed","deletedDate":1628274709,"scheduledPurgeDate":1636050709,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed","deletedDate":1628274751,"scheduledPurgeDate":1636050751,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274551,"updated":1628274551,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed","deletedDate":1628274770,"scheduledPurgeDate":1636050770,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274551,"updated":1628274551,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed","deletedDate":1628274789,"scheduledPurgeDate":1636050789,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274552,"updated":1628274552,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed","deletedDate":1628274808,"scheduledPurgeDate":1636050808,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274552,"updated":1628274552,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed","deletedDate":1628274826,"scheduledPurgeDate":1636050826,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274553,"updated":1628274553,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed","deletedDate":1628274860,"scheduledPurgeDate":1636050860,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274553,"updated":1628274553,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETURJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: no-cache + content-length: '3712' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:38 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETURJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471","deletedDate":1628274811,"scheduledPurgeDate":1636050811,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274805,"updated":1628274805,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed","deletedDate":1628274554,"scheduledPurgeDate":1636050554,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274547,"updated":1628274547,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471","deletedDate":1628274826,"scheduledPurgeDate":1636050826,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed","deletedDate":1628274580,"scheduledPurgeDate":1636050580,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274548,"updated":1628274548,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471","deletedDate":1628274859,"scheduledPurgeDate":1636050859,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed","deletedDate":1628274595,"scheduledPurgeDate":1636050595,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274548,"updated":1628274548,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed","deletedDate":1628274616,"scheduledPurgeDate":1636050616,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274549,"updated":1628274549,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkRJd00wRXhORGN4TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: no-cache + content-length: '3267' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:39 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETURJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkRJd00wRXhORGN4TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed","deletedDate":1628274634,"scheduledPurgeDate":1636050634,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274549,"updated":1628274549,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed","deletedDate":1628274651,"scheduledPurgeDate":1636050651,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed","deletedDate":1628274672,"scheduledPurgeDate":1636050672,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: no-cache + content-length: '1571' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:39 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkRJd00wRXhORGN4TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[],"nextLink":null}' + headers: + cache-control: no-cache + content-length: '28' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:39 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed/recover?api-version=7.0 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274547,"updated":1628274547,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274547,"updated":1628274547}}}' + headers: + cache-control: no-cache + content-length: '2282' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:39 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed/recover?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:39 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:41 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:43 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:45 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:47 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:49 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:52 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:56 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:34:58 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:35:00 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:35:02 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:35:04 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:35:07 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274547,"updated":1628274547,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274547,"updated":1628274547}}}' + headers: + cache-control: no-cache + content-length: '2282' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:35:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed/recover?api-version=7.0 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274548,"updated":1628274548,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274548,"updated":1628274548}}}' + headers: + cache-control: no-cache + content-length: '2282' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:35:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed/recover?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:35:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '7587' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:06 GMT + date: Fri, 06 Aug 2021 18:35:11 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETUVFM1FqWXhOa1ZGTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed/recover?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070571}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:06 GMT + date: Fri, 06 Aug 2021 18:35:13 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed/recover?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec1a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:06 GMT + date: Fri, 06 Aug 2021 18:35:15 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec1a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:08 GMT + date: Fri, 06 Aug 2021 18:35:17 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec1a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:10 GMT + date: Fri, 06 Aug 2021 18:35:19 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec1a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:12 GMT + date: Fri, 06 Aug 2021 18:35:21 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec1a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:14 GMT + date: Fri, 06 Aug 2021 18:35:23 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec1a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:16 GMT + date: Fri, 06 Aug 2021 18:35:26 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070571}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274548,"updated":1628274548,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274548,"updated":1628274548}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:18 GMT + date: Fri, 06 Aug 2021 18:35:28 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed/recover?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070571}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274548,"updated":1628274548,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274548,"updated":1628274548}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:18 GMT + date: Fri, 06 Aug 2021 18:35:28 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -4138,7 +7153,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/?api-version=7.0 response: @@ -4151,14 +7166,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:18 GMT + date: Fri, 06 Aug 2021 18:35:28 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -4170,7 +7185,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/?api-version=7.0 response: @@ -4183,14 +7198,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:21 GMT + date: Fri, 06 Aug 2021 18:35:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -4202,7 +7217,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/?api-version=7.0 response: @@ -4215,14 +7230,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:23 GMT + date: Fri, 06 Aug 2021 18:35:32 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -4234,7 +7249,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/?api-version=7.0 response: @@ -4247,14 +7262,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:25 GMT + date: Fri, 06 Aug 2021 18:35:34 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -4266,7 +7281,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/?api-version=7.0 response: @@ -4279,14 +7294,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:27 GMT + date: Fri, 06 Aug 2021 18:35:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -4298,7 +7313,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/?api-version=7.0 response: @@ -4311,14 +7326,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:29 GMT + date: Fri, 06 Aug 2021 18:35:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -4330,7 +7345,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/?api-version=7.0 response: @@ -4343,14 +7358,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:31 GMT + date: Fri, 06 Aug 2021 18:35:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -4362,28 +7377,31 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070571}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:32 GMT + date: Fri, 06 Aug 2021 18:35:42 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/?api-version=7.0 - request: body: null @@ -4391,688 +7409,693 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed/recover?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067083,"updated":1617070570}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274548,"updated":1628274548,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274548,"updated":1628274548}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:33 GMT + date: Fri, 06 Aug 2021 18:35:44 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed/recover?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed/recover?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274549,"updated":1628274549,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274549,"updated":1628274549}}}' headers: cache-control: no-cache - content-length: '338' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:33 GMT + date: Fri, 06 Aug 2021 18:35:44 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed/recover?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec3a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:36 GMT + date: Fri, 06 Aug 2021 18:35:44 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec3a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:38 GMT + date: Fri, 06 Aug 2021 18:35:47 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec3a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:40 GMT + date: Fri, 06 Aug 2021 18:35:49 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec3a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:42 GMT + date: Fri, 06 Aug 2021 18:35:51 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec3a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:44 GMT + date: Fri, 06 Aug 2021 18:35:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec3a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:46 GMT + date: Fri, 06 Aug 2021 18:35:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec3a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:47 GMT + date: Fri, 06 Aug 2021 18:35:57 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec3a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:49 GMT + date: Fri, 06 Aug 2021 18:35:59 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec3a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:52 GMT + date: Fri, 06 Aug 2021 18:36:01 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067083,"updated":1617070570}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274549,"updated":1628274549,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274549,"updated":1628274549}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:54 GMT + date: Fri, 06 Aug 2021 18:36:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed/recover?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed/recover?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070572}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274549,"updated":1628274549,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274549,"updated":1628274549}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:54 GMT + date: Fri, 06 Aug 2021 18:36:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed/recover?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed/recover?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:54 GMT + date: Fri, 06 Aug 2021 18:36:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:56 GMT + date: Fri, 06 Aug 2021 18:36:05 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:58 GMT + date: Fri, 06 Aug 2021 18:36:07 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:00 GMT + date: Fri, 06 Aug 2021 18:36:09 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:02 GMT + date: Fri, 06 Aug 2021 18:36:11 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:04 GMT + date: Fri, 06 Aug 2021 18:36:13 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:07 GMT + date: Fri, 06 Aug 2021 18:36:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed/recover?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:07 GMT + date: Fri, 06 Aug 2021 18:36:18 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed/recover?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4a7b516ed was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274549,"updated":1628274549,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274549,"updated":1628274549}}}' headers: cache-control: no-cache - content-length: '338' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:07 GMT + date: Fri, 06 Aug 2021 18:36:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 - request: body: null @@ -5080,475 +8103,513 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed/recover?api-version=7.0 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274550,"updated":1628274550}}}' + headers: + cache-control: no-cache + content-length: '2282' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:36:20 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed/recover?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:09 GMT + date: Fri, 06 Aug 2021 18:36:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:11 GMT + date: Fri, 06 Aug 2021 18:36:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:13 GMT + date: Fri, 06 Aug 2021 18:36:25 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:15 GMT + date: Fri, 06 Aug 2021 18:36:26 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec5a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:17 GMT + date: Fri, 06 Aug 2021 18:36:28 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed/recover?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070570}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec5a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:17 GMT + date: Fri, 06 Aug 2021 18:36:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed/recover?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:17 GMT + date: Fri, 06 Aug 2021 18:36:32 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:19 GMT + date: Fri, 06 Aug 2021 18:36:35 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:21 GMT + date: Fri, 06 Aug 2021 18:36:37 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b516ed was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274550,"updated":1628274550}}}' headers: cache-control: no-cache - content-length: '338' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:23 GMT + date: Fri, 06 Aug 2021 18:36:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed/recover?api-version=7.0 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b516ed was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274550,"updated":1628274550}}}' headers: cache-control: no-cache - content-length: '338' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:25 GMT + date: Fri, 06 Aug 2021 18:36:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed/recover?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec6a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:28 GMT + date: Fri, 06 Aug 2021 18:36:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b516ed was not found in this key vault. If you + (name/id) livekvtestcertrec6a7b516ed was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:30 GMT + date: Fri, 06 Aug 2021 18:36:41 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070570}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec6a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:32 GMT + date: Fri, 06 Aug 2021 18:36:43 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed/recover?api-version=7.0 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070573}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec6a7b516ed was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:32 GMT + date: Fri, 06 Aug 2021 18:36:45 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed/recover?api-version=7.0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 response: @@ -5561,14 +8622,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:32 GMT + date: Fri, 06 Aug 2021 18:36:47 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -5580,7 +8641,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 response: @@ -5593,14 +8654,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:34 GMT + date: Fri, 06 Aug 2021 18:36:49 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -5612,7 +8673,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 response: @@ -5625,14 +8686,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:36 GMT + date: Fri, 06 Aug 2021 18:36:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -5644,7 +8705,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 response: @@ -5657,14 +8718,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:38 GMT + date: Fri, 06 Aug 2021 18:36:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -5676,7 +8737,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 response: @@ -5689,14 +8750,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:41 GMT + date: Fri, 06 Aug 2021 18:36:56 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -5708,7 +8769,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 response: @@ -5721,14 +8782,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:43 GMT + date: Fri, 06 Aug 2021 18:36:58 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -5740,24 +8801,25 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070573}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274550,"updated":1628274550}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:45 GMT + date: Fri, 06 Aug 2021 18:37:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -5769,7 +8831,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed?api-version=7.0 response: @@ -5777,14 +8839,14 @@ interactions: string: '' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:45 GMT + date: Fri, 06 Aug 2021 18:37:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 204 @@ -5796,7 +8858,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed?api-version=7.0 response: @@ -5804,14 +8866,14 @@ interactions: string: '' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:45 GMT + date: Fri, 06 Aug 2021 18:37:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 204 @@ -5823,7 +8885,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed?api-version=7.0 response: @@ -5831,14 +8893,14 @@ interactions: string: '' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:45 GMT + date: Fri, 06 Aug 2021 18:37:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 204 @@ -5850,61 +8912,61 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 response: body: string: '' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:46 GMT + date: Fri, 06 Aug 2021 18:37:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 204 message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 response: body: string: '' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:46 GMT + date: Fri, 06 Aug 2021 18:37:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 204 message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed?api-version=7.0 response: @@ -5912,14 +8974,14 @@ interactions: string: '' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:46 GMT + date: Fri, 06 Aug 2021 18:37:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 204 @@ -5931,51 +8993,51 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 response: body: string: '' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:46 GMT + date: Fri, 06 Aug 2021 18:37:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 204 message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.0 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/BackupRestoreCertificate","deletedDate":1617053388,"scheduledPurgeDate":1624829388,"id":"https://vaultname.vault.azure.net/certificates/BackupRestoreCertificate","x5t":"BUYGRo9uO7lTgKog96DrqlW8cxQ","attributes":{"enabled":true,"nbf":1617052679,"exp":1648589279,"created":1617053279,"updated":1617053279,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVXpJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSTlJWSkhSVU5GVWxSSlJrbERRVlJGTnpWQlF6RTFSalF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' headers: cache-control: no-cache - content-length: '759' + content-length: '323' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:37 GMT + date: Fri, 06 Aug 2021 18:37:51 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -5987,82 +9049,170 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVXpJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSTlJWSkhSVU5GVWxSSlJrbERRVlJGTnpWQlF6RTFSalF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 response: body: - string: '{"value":[],"nextLink":null}' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' headers: cache-control: no-cache - content-length: '28' + content-length: '323' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:37 GMT + date: Fri, 06 Aug 2021 18:37:51 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVXpJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSTlJWSkhSVU5GVWxSSlJrbERRVlJGTnpWQlF6RTFSalF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b516ed/f7c1a225a90949248833868aa65c9a6b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070572}}}' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1628271087,"scheduledPurgeDate":1636047087,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"RC8tFJZPwOeZWUeGE9sGSFTbczM","attributes":{"enabled":true,"nbf":1628270484,"exp":1659807084,"created":1628271084,"updated":1628271087,"recoveryLevel":"Recoverable+Purgeable"},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203a1471","deletedDate":1628274945,"scheduledPurgeDate":1636050945,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274808,"updated":1628274808,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203a1471","deletedDate":1628274963,"scheduledPurgeDate":1636050963,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274809,"updated":1628274809,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203a1471","deletedDate":1628274980,"scheduledPurgeDate":1636050980,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274809,"updated":1628274809,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203a1471","deletedDate":1628274999,"scheduledPurgeDate":1636050999,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274810,"updated":1628274810,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203a1471","deletedDate":1628275016,"scheduledPurgeDate":1636051016,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274810,"updated":1628274810,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203a1471","deletedDate":1628275033,"scheduledPurgeDate":1636051033,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274810,"updated":1628274810,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203a1471","deletedDate":1628275048,"scheduledPurgeDate":1636051048,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274811,"updated":1628274811,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203a1471","deletedDate":1628274811,"scheduledPurgeDate":1636050811,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274805,"updated":1628274805,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203a1471","deletedDate":1628274826,"scheduledPurgeDate":1636050826,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVRJd00wRXhORGN4TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: no-cache - content-length: '1839' + content-length: '4552' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:37 GMT + date: Fri, 06 Aug 2021 18:37:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVRJd00wRXhORGN4TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203a1471","deletedDate":1628274859,"scheduledPurgeDate":1636050859,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274806,"updated":1628274806,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203a1471","deletedDate":1628274878,"scheduledPurgeDate":1636050878,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203a1471","deletedDate":1628274893,"scheduledPurgeDate":1636050893,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203a1471","deletedDate":1628274909,"scheduledPurgeDate":1636050909,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274807,"updated":1628274807,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETlRJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: no-cache + content-length: '2007' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:37:52 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVRJd00wRXhORGN4TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETlRJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203a1471","deletedDate":1628274928,"scheduledPurgeDate":1636050928,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203a1471","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274808,"updated":1628274808,"recoveryLevel":"Recoverable+Purgeable"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRoRk1FWXlNelEwTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: no-cache + content-length: '795' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:37:52 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETlRJd00wSXhORGN5TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRoRk1FWXlNelEwTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[],"nextLink":null}' + headers: + cache-control: no-cache + content-length: '28' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:37:52 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTYhTURBd01EY3lJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJPVDFSUVFWTlRWMDlTUkVWT1EwOUVSVVJEUlZKVVNVWkpRMEZVUlRoRk1FWXlNelEwTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b516ed/dd9bb3b4f1b54fac8c9de89088e37617","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067083,"updated":1617070570}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b516ed/9d2b4a3e78d9499099412e3abd12ff90","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274547,"updated":1628274547,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274547,"updated":1628274547}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:37 GMT + date: Fri, 06 Aug 2021 18:37:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -6074,82 +9224,85 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b516ed/e2abb875ab9642489c5dedf82afa67ab","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070571}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b516ed/133b3ce9e1824501be767b4a818d479c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274548,"updated":1628274548,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274548,"updated":1628274548}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:37 GMT + date: Fri, 06 Aug 2021 18:37:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b516ed/3fc825dc545a405d83e09e69a5eeebde","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070572}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b516ed/e8855f352ff741959d8b87852d5f7203","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274548,"updated":1628274548,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274548,"updated":1628274548}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:37 GMT + date: Fri, 06 Aug 2021 18:37:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b516ed/7b90a1b4569c407caa457c59c6907657","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067085,"updated":1617070571}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b516ed/78d69645c4104649a96e8bddc6f5e646","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274549,"updated":1628274549,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274549,"updated":1628274549}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:37 GMT + date: Fri, 06 Aug 2021 18:37:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -6161,56 +9314,88 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b516ed/a16fb665b3844f4c8660f4339bb2ee20","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067086,"updated":1617070573}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b516ed/4b0bc5436be641a9a56d3e1b3f3a37dd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274549,"updated":1628274549,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274549,"updated":1628274549}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:37 GMT + date: Fri, 06 Aug 2021 18:37:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b516ed/?api-version=7.0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b516ed/84752fcc7cca435e9469cef3e7455f60","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067084,"updated":1617070570}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b516ed/26037edc16cd452a90257d27b3b8b705","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274550,"updated":1628274550}}}' headers: cache-control: no-cache - content-length: '1839' + content-length: '2282' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:37 GMT + date: Fri, 06 Aug 2021 18:37:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b516ed/?api-version=7.0 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b516ed/?api-version=7.0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b516ed/f38d77bf928b45cfb3aca6fd3309ff8c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628274550,"updated":1628274550,"recoveryLevel":"Recoverable+Purgeable"},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628274550,"updated":1628274550}}}' + headers: + cache-control: no-cache + content-length: '2282' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:37:52 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b516ed/?api-version=7.0 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_recover_and_purge_7_1.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_recover_and_purge_7_1.yaml index d3778b4577dc..4a9910145d3b 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_recover_and_purge_7_1.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_recover_and_purge_7_1.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/import?api-version=7.1 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:09 GMT + date: Fri, 06 Aug 2021 18:37:53 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -29,525 +29,539 @@ interactions: x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "key_props": {"reuse_key": - false, "kty": "RSA", "exportable": true, "key_size": 2048}, "x509_props": {"sans": - {}, "validity_months": 12, "subject": "CN=DefaultPolicy", "key_usage": ["digitalSignature", - "keyEncipherment"]}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067434,"updated":1617070570}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275073,"updated":1628275073,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275073,"updated":1628275073}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:10 GMT + date: Fri, 06 Aug 2021 18:37:53 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/import?api-version=7.1 - request: - body: '{"value": "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "key_props": {"reuse_key": - false, "kty": "RSA", "exportable": true, "key_size": 2048}, "x509_props": {"sans": - {}, "validity_months": 12, "subject": "CN=DefaultPolicy", "key_usage": ["digitalSignature", - "keyEncipherment"]}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067435,"updated":1617070570}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:10 GMT + date: Fri, 06 Aug 2021 18:37:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "key_props": {"reuse_key": - false, "kty": "RSA", "exportable": true, "key_size": 2048}, "x509_props": {"sans": - {}, "validity_months": 12, "subject": "CN=DefaultPolicy", "key_usage": ["digitalSignature", - "keyEncipherment"]}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067435,"updated":1617070571}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:10 GMT + date: Fri, 06 Aug 2021 18:37:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "key_props": {"reuse_key": - false, "kty": "RSA", "exportable": true, "key_size": 2048}, "x509_props": {"sans": - {}, "validity_months": 12, "subject": "CN=DefaultPolicy", "key_usage": ["digitalSignature", - "keyEncipherment"]}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070571}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:11 GMT + date: Fri, 06 Aug 2021 18:37:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "key_props": {"reuse_key": - false, "kty": "RSA", "exportable": true, "key_size": 2048}, "x509_props": {"sans": - {}, "validity_months": 12, "subject": "CN=DefaultPolicy", "key_usage": ["digitalSignature", - "keyEncipherment"]}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070572}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275075,"updated":1628275075,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275075,"updated":1628275075}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:11 GMT + date: Fri, 06 Aug 2021 18:37:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "key_props": {"reuse_key": - false, "kty": "RSA", "exportable": true, "key_size": 2048}, "x509_props": {"sans": - {}, "validity_months": 12, "subject": "CN=DefaultPolicy", "key_usage": ["digitalSignature", - "keyEncipherment"]}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070572}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275075,"updated":1628275075,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275075,"updated":1628275075}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:12 GMT + date: Fri, 06 Aug 2021 18:37:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "key_props": {"reuse_key": - false, "kty": "RSA", "exportable": true, "key_size": 2048}, "x509_props": {"sans": - {}, "validity_months": 12, "subject": "CN=DefaultPolicy", "key_usage": ["digitalSignature", - "keyEncipherment"]}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067437,"updated":1617070572}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275076,"updated":1628275076,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275076,"updated":1628275076}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:12 GMT + date: Fri, 06 Aug 2021 18:37:56 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "key_props": {"reuse_key": - false, "kty": "RSA", "exportable": true, "key_size": 2048}, "x509_props": {"sans": - {}, "validity_months": 12, "subject": "CN=DefaultPolicy", "key_usage": ["digitalSignature", - "keyEncipherment"]}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee/495142c4ddb544279c0879413ce95fce","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b616ee/495142c4ddb544279c0879413ce95fce","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b616ee/495142c4ddb544279c0879413ce95fce","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070573,"updated":1617070573}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee/b3fa05e552d44eb98a28efb3ac93beea","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b616ee/b3fa05e552d44eb98a28efb3ac93beea","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b616ee/b3fa05e552d44eb98a28efb3ac93beea","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275076,"updated":1628275076,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275076,"updated":1628275076}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:13 GMT + date: Fri, 06 Aug 2021 18:37:56 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg0a7b616ee/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "key_props": {"reuse_key": - false, "kty": "RSA", "exportable": true, "key_size": 2048}, "x509_props": {"sans": - {}, "validity_months": 12, "subject": "CN=DefaultPolicy", "key_usage": ["digitalSignature", - "keyEncipherment"]}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee/514a98bc589e46719e3fa85029ef2883","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b616ee/514a98bc589e46719e3fa85029ef2883","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b616ee/514a98bc589e46719e3fa85029ef2883","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070573,"updated":1617070573}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee/6950b24497bf4688a12a740e22f61df1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b616ee/6950b24497bf4688a12a740e22f61df1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b616ee/6950b24497bf4688a12a740e22f61df1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275077,"updated":1628275077,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275077,"updated":1628275077}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:13 GMT + date: Fri, 06 Aug 2021 18:37:57 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg1a7b616ee/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "key_props": {"reuse_key": - false, "kty": "RSA", "exportable": true, "key_size": 2048}, "x509_props": {"sans": - {}, "validity_months": 12, "subject": "CN=DefaultPolicy", "key_usage": ["digitalSignature", - "keyEncipherment"]}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee/8485bf80da284055a07508141a806d63","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b616ee/8485bf80da284055a07508141a806d63","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b616ee/8485bf80da284055a07508141a806d63","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee/4362c9062dc1495a8705237ca1ef380d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b616ee/4362c9062dc1495a8705237ca1ef380d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b616ee/4362c9062dc1495a8705237ca1ef380d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275077,"updated":1628275077,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275077,"updated":1628275077}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:13 GMT + date: Fri, 06 Aug 2021 18:37:57 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg2a7b616ee/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "key_props": {"reuse_key": - false, "kty": "RSA", "exportable": true, "key_size": 2048}, "x509_props": {"sans": - {}, "validity_months": 12, "subject": "CN=DefaultPolicy", "key_usage": ["digitalSignature", - "keyEncipherment"]}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee/75e6825d5fa7477c953b5e29a4c4b27e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b616ee/75e6825d5fa7477c953b5e29a4c4b27e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b616ee/75e6825d5fa7477c953b5e29a4c4b27e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee/2b060fba25c04d349f8f32e505ac5c80","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b616ee/2b060fba25c04d349f8f32e505ac5c80","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b616ee/2b060fba25c04d349f8f32e505ac5c80","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275078,"updated":1628275078,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275078,"updated":1628275078}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:14 GMT + date: Fri, 06 Aug 2021 18:37:58 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg3a7b616ee/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "key_props": {"reuse_key": - false, "kty": "RSA", "exportable": true, "key_size": 2048}, "x509_props": {"sans": - {}, "validity_months": 12, "subject": "CN=DefaultPolicy", "key_usage": ["digitalSignature", - "keyEncipherment"]}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee/cf1fb0390df549229aff8f962d82a400","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b616ee/cf1fb0390df549229aff8f962d82a400","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b616ee/cf1fb0390df549229aff8f962d82a400","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee/54f8a558c16543c28d5980d008f8a81f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b616ee/54f8a558c16543c28d5980d008f8a81f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b616ee/54f8a558c16543c28d5980d008f8a81f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275078,"updated":1628275078,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275078,"updated":1628275078}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:14 GMT + date: Fri, 06 Aug 2021 18:37:58 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg4a7b616ee/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "key_props": {"reuse_key": - false, "kty": "RSA", "exportable": true, "key_size": 2048}, "x509_props": {"sans": - {}, "validity_months": 12, "subject": "CN=DefaultPolicy", "key_usage": ["digitalSignature", - "keyEncipherment"]}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee/a1767a6f0dcc4b208884d80ccefbb17b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b616ee/a1767a6f0dcc4b208884d80ccefbb17b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b616ee/a1767a6f0dcc4b208884d80ccefbb17b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee/385e2357ee6d4febbf50eb5ed722ef9e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b616ee/385e2357ee6d4febbf50eb5ed722ef9e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b616ee/385e2357ee6d4febbf50eb5ed722ef9e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275079,"updated":1628275079,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275079,"updated":1628275079}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:14 GMT + date: Fri, 06 Aug 2021 18:37:59 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg5a7b616ee/import?api-version=7.1 - request: - body: '{"value": "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", - "pwd": "123", "policy": {"issuer": {"name": "Self"}, "key_props": {"reuse_key": - false, "kty": "RSA", "exportable": true, "key_size": 2048}, "x509_props": {"sans": - {}, "validity_months": 12, "subject": "CN=DefaultPolicy", "key_usage": ["digitalSignature", - "keyEncipherment"]}, "secret_props": {"contentType": "application/x-pkcs12"}}}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee/import?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee/b14856122b524235aa3b7a3004cf834a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b616ee/b14856122b524235aa3b7a3004cf834a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b616ee/b14856122b524235aa3b7a3004cf834a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee/2749ce6444b542508bca6d7073b57083","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b616ee/2749ce6444b542508bca6d7073b57083","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b616ee/2749ce6444b542508bca6d7073b57083","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275079,"updated":1628275079,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275079,"updated":1628275079}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:16 GMT + date: Fri, 06 Aug 2021 18:37:59 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -559,394 +573,397 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee","deletedDate":1617070576,"scheduledPurgeDate":1624846576,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee/cf1fb0390df549229aff8f962d82a400","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b616ee/cf1fb0390df549229aff8f962d82a400","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b616ee/cf1fb0390df549229aff8f962d82a400","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee","deletedDate":1628275080,"scheduledPurgeDate":1636051080,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275073,"updated":1628275073,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275073,"updated":1628275073}}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:16 GMT + date: Fri, 06 Aug 2021 18:37:59 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg4a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b616ee"}}' + not found: livekvtestcertrec0a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:16 GMT + date: Fri, 06 Aug 2021 18:37:59 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b616ee"}}' + not found: livekvtestcertrec0a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:18 GMT + date: Fri, 06 Aug 2021 18:38:01 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b616ee"}}' + not found: livekvtestcertrec0a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:20 GMT + date: Fri, 06 Aug 2021 18:38:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b616ee"}}' + not found: livekvtestcertrec0a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:22 GMT + date: Fri, 06 Aug 2021 18:38:05 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b616ee"}}' + not found: livekvtestcertrec0a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:24 GMT + date: Fri, 06 Aug 2021 18:38:08 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b616ee"}}' + not found: livekvtestcertrec0a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:26 GMT + date: Fri, 06 Aug 2021 18:38:10 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b616ee"}}' + not found: livekvtestcertrec0a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:28 GMT + date: Fri, 06 Aug 2021 18:38:12 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee","deletedDate":1617070576,"scheduledPurgeDate":1624846576,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee/cf1fb0390df549229aff8f962d82a400","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b616ee/cf1fb0390df549229aff8f962d82a400","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b616ee/cf1fb0390df549229aff8f962d82a400","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec0a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:30 GMT + date: Fri, 06 Aug 2021 18:38:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee","deletedDate":1617070590,"scheduledPurgeDate":1624846590,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067435,"updated":1617070570}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec0a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:30 GMT + date: Fri, 06 Aug 2021 18:38:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1a7b616ee"}}' + not found: livekvtestcertrec0a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:30 GMT + date: Fri, 06 Aug 2021 18:38:18 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1a7b616ee"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee","deletedDate":1628275080,"scheduledPurgeDate":1636051080,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275073,"updated":1628275073,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275073,"updated":1628275073}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:31 GMT + date: Fri, 06 Aug 2021 18:38:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec1a7b616ee"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee","deletedDate":1628275101,"scheduledPurgeDate":1636051101,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:34 GMT + date: Fri, 06 Aug 2021 18:38:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 response: @@ -957,14 +974,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:36 GMT + date: Fri, 06 Aug 2021 18:38:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -976,7 +993,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 response: @@ -987,14 +1004,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:38 GMT + date: Fri, 06 Aug 2021 18:38:23 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1006,7 +1023,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 response: @@ -1017,14 +1034,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:40 GMT + date: Fri, 06 Aug 2021 18:38:25 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1036,28 +1053,29 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee","deletedDate":1617070590,"scheduledPurgeDate":1624846590,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067435,"updated":1617070570}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:42 GMT + date: Fri, 06 Aug 2021 18:38:27 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 - request: body: null @@ -1065,4266 +1083,11078 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee","deletedDate":1617070603,"scheduledPurgeDate":1624846603,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee/75e6825d5fa7477c953b5e29a4c4b27e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b616ee/75e6825d5fa7477c953b5e29a4c4b27e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b616ee/75e6825d5fa7477c953b5e29a4c4b27e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:42 GMT + date: Fri, 06 Aug 2021 18:38:29 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg3a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3a7b616ee"}}' + not found: livekvtestcertrec1a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:42 GMT + date: Fri, 06 Aug 2021 18:38:31 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3a7b616ee"}}' + not found: livekvtestcertrec1a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:44 GMT + date: Fri, 06 Aug 2021 18:38:33 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3a7b616ee"}}' + not found: livekvtestcertrec1a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:46 GMT + date: Fri, 06 Aug 2021 18:38:35 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3a7b616ee"}}' + not found: livekvtestcertrec1a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:48 GMT + date: Fri, 06 Aug 2021 18:38:37 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee","deletedDate":1617070603,"scheduledPurgeDate":1624846603,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee/75e6825d5fa7477c953b5e29a4c4b27e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b616ee/75e6825d5fa7477c953b5e29a4c4b27e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b616ee/75e6825d5fa7477c953b5e29a4c4b27e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee","deletedDate":1628275101,"scheduledPurgeDate":1636051101,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:50 GMT + date: Fri, 06 Aug 2021 18:38:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee","deletedDate":1617070611,"scheduledPurgeDate":1624846611,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070571}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee","deletedDate":1628275119,"scheduledPurgeDate":1636051119,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:50 GMT + date: Fri, 06 Aug 2021 18:38:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3a7b616ee"}}' + not found: livekvtestcertrec2a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:50 GMT + date: Fri, 06 Aug 2021 18:38:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3a7b616ee"}}' + not found: livekvtestcertrec2a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:53 GMT + date: Fri, 06 Aug 2021 18:38:41 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3a7b616ee"}}' + not found: livekvtestcertrec2a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:55 GMT + date: Fri, 06 Aug 2021 18:38:43 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3a7b616ee"}}' + not found: livekvtestcertrec2a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:57 GMT + date: Fri, 06 Aug 2021 18:38:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3a7b616ee"}}' + not found: livekvtestcertrec2a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:16:59 GMT + date: Fri, 06 Aug 2021 18:38:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3a7b616ee"}}' + not found: livekvtestcertrec2a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:01 GMT + date: Fri, 06 Aug 2021 18:38:50 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec3a7b616ee"}}' + not found: livekvtestcertrec2a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:03 GMT + date: Fri, 06 Aug 2021 18:38:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee","deletedDate":1617070611,"scheduledPurgeDate":1624846611,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070571}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec2a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:06 GMT + date: Fri, 06 Aug 2021 18:38:53 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee","deletedDate":1617070626,"scheduledPurgeDate":1624846626,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee/8485bf80da284055a07508141a806d63","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b616ee/8485bf80da284055a07508141a806d63","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b616ee/8485bf80da284055a07508141a806d63","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec2a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:06 GMT + date: Fri, 06 Aug 2021 18:38:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg2a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2a7b616ee"}}' + not found: livekvtestcertrec2a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:06 GMT + date: Fri, 06 Aug 2021 18:38:58 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2a7b616ee"}}' + not found: livekvtestcertrec2a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:08 GMT + date: Fri, 06 Aug 2021 18:38:59 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2a7b616ee"}}' + not found: livekvtestcertrec2a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:10 GMT + date: Fri, 06 Aug 2021 18:39:01 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2a7b616ee"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee","deletedDate":1628275119,"scheduledPurgeDate":1636051119,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:12 GMT + date: Fri, 06 Aug 2021 18:39:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2a7b616ee"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee","deletedDate":1628275144,"scheduledPurgeDate":1636051144,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:14 GMT + date: Fri, 06 Aug 2021 18:39:04 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2a7b616ee"}}' + not found: livekvtestcertrec3a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:16 GMT + date: Fri, 06 Aug 2021 18:39:04 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2a7b616ee"}}' + not found: livekvtestcertrec3a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:18 GMT + date: Fri, 06 Aug 2021 18:39:07 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee","deletedDate":1617070626,"scheduledPurgeDate":1624846626,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee/8485bf80da284055a07508141a806d63","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b616ee/8485bf80da284055a07508141a806d63","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b616ee/8485bf80da284055a07508141a806d63","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070574,"updated":1617070574}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec3a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:20 GMT + date: Fri, 06 Aug 2021 18:39:08 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee","deletedDate":1617070640,"scheduledPurgeDate":1624846640,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec3a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:20 GMT + date: Fri, 06 Aug 2021 18:39:10 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b616ee"}}' + not found: livekvtestcertrec3a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:20 GMT + date: Fri, 06 Aug 2021 18:39:12 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b616ee"}}' + not found: livekvtestcertrec3a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:22 GMT + date: Fri, 06 Aug 2021 18:39:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b616ee"}}' + not found: livekvtestcertrec3a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:24 GMT + date: Fri, 06 Aug 2021 18:39:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b616ee"}}' + not found: livekvtestcertrec3a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:26 GMT + date: Fri, 06 Aug 2021 18:39:18 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b616ee"}}' + not found: livekvtestcertrec3a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:28 GMT + date: Fri, 06 Aug 2021 18:39:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b616ee"}}' + not found: livekvtestcertrec3a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:30 GMT + date: Fri, 06 Aug 2021 18:39:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee","deletedDate":1617070640,"scheduledPurgeDate":1624846640,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec3a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:32 GMT + date: Fri, 06 Aug 2021 18:39:25 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee","deletedDate":1617070653,"scheduledPurgeDate":1624846653,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee/a1767a6f0dcc4b208884d80ccefbb17b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b616ee/a1767a6f0dcc4b208884d80ccefbb17b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b616ee/a1767a6f0dcc4b208884d80ccefbb17b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec3a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:32 GMT + date: Fri, 06 Aug 2021 18:39:27 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg5a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5a7b616ee"}}' + not found: livekvtestcertrec3a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:32 GMT + date: Fri, 06 Aug 2021 18:39:29 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5a7b616ee"}}' + not found: livekvtestcertrec3a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:34 GMT + date: Fri, 06 Aug 2021 18:39:31 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5a7b616ee"}}' + not found: livekvtestcertrec3a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:37 GMT + date: Fri, 06 Aug 2021 18:39:33 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5a7b616ee"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee","deletedDate":1628275144,"scheduledPurgeDate":1636051144,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:39 GMT + date: Fri, 06 Aug 2021 18:39:35 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee","deletedDate":1617070653,"scheduledPurgeDate":1624846653,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee/a1767a6f0dcc4b208884d80ccefbb17b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b616ee/a1767a6f0dcc4b208884d80ccefbb17b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b616ee/a1767a6f0dcc4b208884d80ccefbb17b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee","deletedDate":1628275175,"scheduledPurgeDate":1636051175,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275075,"updated":1628275075,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275075,"updated":1628275075}}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:41 GMT + date: Fri, 06 Aug 2021 18:39:35 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee","deletedDate":1617070661,"scheduledPurgeDate":1624846661,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee/495142c4ddb544279c0879413ce95fce","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b616ee/495142c4ddb544279c0879413ce95fce","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b616ee/495142c4ddb544279c0879413ce95fce","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070573,"updated":1617070573}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:41 GMT + date: Fri, 06 Aug 2021 18:39:35 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg0a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0a7b616ee"}}' + not found: livekvtestcertrec4a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:41 GMT + date: Fri, 06 Aug 2021 18:39:37 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0a7b616ee"}}' + not found: livekvtestcertrec4a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:43 GMT + date: Fri, 06 Aug 2021 18:39:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0a7b616ee"}}' + not found: livekvtestcertrec4a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:45 GMT + date: Fri, 06 Aug 2021 18:39:42 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0a7b616ee"}}' + not found: livekvtestcertrec4a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:47 GMT + date: Fri, 06 Aug 2021 18:39:44 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0a7b616ee"}}' + not found: livekvtestcertrec4a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:49 GMT + date: Fri, 06 Aug 2021 18:39:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee","deletedDate":1617070661,"scheduledPurgeDate":1624846661,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee/495142c4ddb544279c0879413ce95fce","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b616ee/495142c4ddb544279c0879413ce95fce","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b616ee/495142c4ddb544279c0879413ce95fce","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070573,"updated":1617070573}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:51 GMT + date: Fri, 06 Aug 2021 18:39:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee","deletedDate":1617070672,"scheduledPurgeDate":1624846672,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee/b14856122b524235aa3b7a3004cf834a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b616ee/b14856122b524235aa3b7a3004cf834a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b616ee/b14856122b524235aa3b7a3004cf834a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:51 GMT + date: Fri, 06 Aug 2021 18:39:50 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg6a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6a7b616ee"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee","deletedDate":1628275175,"scheduledPurgeDate":1636051175,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275075,"updated":1628275075,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275075,"updated":1628275075}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:51 GMT + date: Fri, 06 Aug 2021 18:39:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6a7b616ee"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee","deletedDate":1628275192,"scheduledPurgeDate":1636051192,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275075,"updated":1628275075,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275075,"updated":1628275075}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:53 GMT + date: Fri, 06 Aug 2021 18:39:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6a7b616ee"}}' + not found: livekvtestcertrec5a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:55 GMT + date: Fri, 06 Aug 2021 18:39:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6a7b616ee"}}' + not found: livekvtestcertrec5a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:57 GMT + date: Fri, 06 Aug 2021 18:39:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6a7b616ee"}}' + not found: livekvtestcertrec5a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:17:59 GMT + date: Fri, 06 Aug 2021 18:39:56 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6a7b616ee"}}' + not found: livekvtestcertrec5a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:01 GMT + date: Fri, 06 Aug 2021 18:39:58 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee","deletedDate":1617070672,"scheduledPurgeDate":1624846672,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee/b14856122b524235aa3b7a3004cf834a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b616ee/b14856122b524235aa3b7a3004cf834a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b616ee/b14856122b524235aa3b7a3004cf834a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070575,"updated":1617070575}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:04 GMT + date: Fri, 06 Aug 2021 18:40:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee?api-version=7.1 - response: - body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee","deletedDate":1617070684,"scheduledPurgeDate":1624846684,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067434,"updated":1617070570}}}' - headers: - cache-control: no-cache - content-length: '2014' - content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:04 GMT - expires: '-1' - pragma: no-cache - strict-transport-security: max-age=31536000;includeSubDomains - x-content-type-options: nosniff - x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 - x-powered-by: ASP.NET - status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0a7b616ee"}}' + not found: livekvtestcertrec5a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:05 GMT + date: Fri, 06 Aug 2021 18:40:02 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0a7b616ee"}}' + not found: livekvtestcertrec5a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:07 GMT + date: Fri, 06 Aug 2021 18:40:04 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0a7b616ee"}}' + not found: livekvtestcertrec5a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:08 GMT + date: Fri, 06 Aug 2021 18:40:07 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0a7b616ee"}}' + not found: livekvtestcertrec5a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:10 GMT + date: Fri, 06 Aug 2021 18:40:09 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0a7b616ee"}}' + not found: livekvtestcertrec5a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:12 GMT + date: Fri, 06 Aug 2021 18:40:11 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0a7b616ee"}}' + not found: livekvtestcertrec5a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:14 GMT + date: Fri, 06 Aug 2021 18:40:13 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee","deletedDate":1617070684,"scheduledPurgeDate":1624846684,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067434,"updated":1617070570}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee","deletedDate":1628275192,"scheduledPurgeDate":1636051192,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275075,"updated":1628275075,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275075,"updated":1628275075}}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:17 GMT + date: Fri, 06 Aug 2021 18:40:15 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee","deletedDate":1617070697,"scheduledPurgeDate":1624846697,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067435,"updated":1617070571}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee","deletedDate":1628275215,"scheduledPurgeDate":1636051215,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275076,"updated":1628275076,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275076,"updated":1628275076}}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:17 GMT + date: Fri, 06 Aug 2021 18:40:15 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2a7b616ee"}}' + not found: livekvtestcertrec6a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:17 GMT + date: Fri, 06 Aug 2021 18:40:15 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2a7b616ee"}}' + not found: livekvtestcertrec6a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:19 GMT + date: Fri, 06 Aug 2021 18:40:17 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2a7b616ee"}}' + not found: livekvtestcertrec6a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:21 GMT + date: Fri, 06 Aug 2021 18:40:19 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2a7b616ee"}}' + not found: livekvtestcertrec6a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:23 GMT + date: Fri, 06 Aug 2021 18:40:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2a7b616ee"}}' + not found: livekvtestcertrec6a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:25 GMT + date: Fri, 06 Aug 2021 18:40:24 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2a7b616ee"}}' + not found: livekvtestcertrec6a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:27 GMT + date: Fri, 06 Aug 2021 18:40:25 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee","deletedDate":1617070697,"scheduledPurgeDate":1624846697,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067435,"updated":1617070571}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:30 GMT + date: Fri, 06 Aug 2021 18:40:27 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee","deletedDate":1617070710,"scheduledPurgeDate":1624846710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee/514a98bc589e46719e3fa85029ef2883","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b616ee/514a98bc589e46719e3fa85029ef2883","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b616ee/514a98bc589e46719e3fa85029ef2883","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070573,"updated":1617070573}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:30 GMT + date: Fri, 06 Aug 2021 18:40:29 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg1a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1a7b616ee"}}' + not found: livekvtestcertrec6a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:30 GMT + date: Fri, 06 Aug 2021 18:40:32 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1a7b616ee"}}' + not found: livekvtestcertrec6a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:32 GMT + date: Fri, 06 Aug 2021 18:40:34 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1a7b616ee"}}' + not found: livekvtestcertrec6a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:34 GMT + date: Fri, 06 Aug 2021 18:40:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1a7b616ee"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee","deletedDate":1628275215,"scheduledPurgeDate":1636051215,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275076,"updated":1628275076,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275076,"updated":1628275076}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:36 GMT + date: Fri, 06 Aug 2021 18:40:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1a7b616ee"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee","deletedDate":1628275238,"scheduledPurgeDate":1636051238,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee/b3fa05e552d44eb98a28efb3ac93beea","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b616ee/b3fa05e552d44eb98a28efb3ac93beea","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b616ee/b3fa05e552d44eb98a28efb3ac93beea","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275076,"updated":1628275076,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275076,"updated":1628275076}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:38 GMT + date: Fri, 06 Aug 2021 18:40:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1a7b616ee"}}' + not found: livekvtestcertprg0a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:40 GMT + date: Fri, 06 Aug 2021 18:40:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee","deletedDate":1617070710,"scheduledPurgeDate":1624846710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee/514a98bc589e46719e3fa85029ef2883","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b616ee/514a98bc589e46719e3fa85029ef2883","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b616ee/514a98bc589e46719e3fa85029ef2883","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617070573,"updated":1617070573}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:42 GMT + date: Fri, 06 Aug 2021 18:40:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee","deletedDate":1617070722,"scheduledPurgeDate":1624846722,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:42 GMT + date: Fri, 06 Aug 2021 18:40:42 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4a7b616ee"}}' + not found: livekvtestcertprg0a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:42 GMT + date: Fri, 06 Aug 2021 18:40:44 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4a7b616ee"}}' + not found: livekvtestcertprg0a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:44 GMT + date: Fri, 06 Aug 2021 18:40:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4a7b616ee"}}' + not found: livekvtestcertprg0a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:46 GMT + date: Fri, 06 Aug 2021 18:40:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4a7b616ee"}}' + not found: livekvtestcertprg0a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:48 GMT + date: Fri, 06 Aug 2021 18:40:50 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4a7b616ee"}}' + not found: livekvtestcertprg0a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:51 GMT + date: Fri, 06 Aug 2021 18:40:53 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee","deletedDate":1617070722,"scheduledPurgeDate":1624846722,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:53 GMT + date: Fri, 06 Aug 2021 18:40:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee","deletedDate":1617070733,"scheduledPurgeDate":1624846733,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067437,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:53 GMT + date: Fri, 06 Aug 2021 18:40:56 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6a7b616ee"}}' + not found: livekvtestcertprg0a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:53 GMT + date: Fri, 06 Aug 2021 18:40:59 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee","deletedDate":1628275238,"scheduledPurgeDate":1636051238,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee/b3fa05e552d44eb98a28efb3ac93beea","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b616ee/b3fa05e552d44eb98a28efb3ac93beea","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b616ee/b3fa05e552d44eb98a28efb3ac93beea","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275076,"updated":1628275076,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275076,"updated":1628275076}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:01 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee","deletedDate":1628275261,"scheduledPurgeDate":1636051261,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee/6950b24497bf4688a12a740e22f61df1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b616ee/6950b24497bf4688a12a740e22f61df1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b616ee/6950b24497bf4688a12a740e22f61df1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275077,"updated":1628275077,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275077,"updated":1628275077}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:01 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg1a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6a7b616ee"}}' + not found: livekvtestcertprg1a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:55 GMT + date: Fri, 06 Aug 2021 18:41:01 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6a7b616ee"}}' + not found: livekvtestcertprg1a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:57 GMT + date: Fri, 06 Aug 2021 18:41:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6a7b616ee"}}' + not found: livekvtestcertprg1a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:18:59 GMT + date: Fri, 06 Aug 2021 18:41:05 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6a7b616ee"}}' + not found: livekvtestcertprg1a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:01 GMT + date: Fri, 06 Aug 2021 18:41:07 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6a7b616ee"}}' + not found: livekvtestcertprg1a7b616ee"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:03 GMT + date: Fri, 06 Aug 2021 18:41:09 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee","deletedDate":1617070733,"scheduledPurgeDate":1624846733,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067437,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b616ee"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:05 GMT + date: Fri, 06 Aug 2021 18:41:11 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:13 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:15 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:18 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:19 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:21 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/BackupRestoreCertificate","deletedDate":1617053388,"scheduledPurgeDate":1624829388,"id":"https://vaultname.vault.azure.net/certificates/BackupRestoreCertificate","x5t":"BUYGRo9uO7lTgKog96DrqlW8cxQ","attributes":{"enabled":true,"nbf":1617052679,"exp":1648589279,"created":1617053279,"updated":1617053279,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg04d851870","deletedDate":1617070624,"scheduledPurgeDate":1624846624,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg04d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b516ed","deletedDate":1617070576,"scheduledPurgeDate":1624846576,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee","deletedDate":1617070661,"scheduledPurgeDate":1624846661,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg14d851870","deletedDate":1617070710,"scheduledPurgeDate":1624846710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg14d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b516ed","deletedDate":1617070590,"scheduledPurgeDate":1624846590,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee","deletedDate":1617070710,"scheduledPurgeDate":1624846710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg24d851870","deletedDate":1617070733,"scheduledPurgeDate":1624846733,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg24d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b516ed","deletedDate":1617070601,"scheduledPurgeDate":1624846601,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee","deletedDate":1617070626,"scheduledPurgeDate":1624846626,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg34d851870","deletedDate":1617070673,"scheduledPurgeDate":1624846673,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg34d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b516ed","deletedDate":1617070641,"scheduledPurgeDate":1624846641,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee","deletedDate":1617070603,"scheduledPurgeDate":1624846603,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070574,"updated":1617070574,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg44d851870","deletedDate":1617070591,"scheduledPurgeDate":1624846591,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg44d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b516ed","deletedDate":1617070733,"scheduledPurgeDate":1624846733,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee","deletedDate":1617070576,"scheduledPurgeDate":1624846576,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg54d851870","deletedDate":1617070612,"scheduledPurgeDate":1624846612,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg54d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b516ed","deletedDate":1617070672,"scheduledPurgeDate":1624846672,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee","deletedDate":1617070653,"scheduledPurgeDate":1624846653,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg64d851870","deletedDate":1617070662,"scheduledPurgeDate":1624846662,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg64d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070576,"updated":1617070576,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b516ed","deletedDate":1617070612,"scheduledPurgeDate":1624846612,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070576,"updated":1617070576,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee","deletedDate":1617070672,"scheduledPurgeDate":1624846672,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070575,"updated":1617070575,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec04d851870","deletedDate":1617070723,"scheduledPurgeDate":1624846723,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec04d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b516ed","deletedDate":1617070662,"scheduledPurgeDate":1624846662,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee","deletedDate":1617070684,"scheduledPurgeDate":1624846684,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETUVFM1FqWXhOa1ZGTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b616ee"}}' headers: cache-control: no-cache - content-length: '11348' + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:23 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:25 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:27 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:32 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:34 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:36 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:38 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:40 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee","deletedDate":1628275261,"scheduledPurgeDate":1636051261,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee/6950b24497bf4688a12a740e22f61df1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b616ee/6950b24497bf4688a12a740e22f61df1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b616ee/6950b24497bf4688a12a740e22f61df1","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275077,"updated":1628275077,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275077,"updated":1628275077}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:43 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee","deletedDate":1628275303,"scheduledPurgeDate":1636051303,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee/4362c9062dc1495a8705237ca1ef380d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b616ee/4362c9062dc1495a8705237ca1ef380d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b616ee/4362c9062dc1495a8705237ca1ef380d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275077,"updated":1628275077,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275077,"updated":1628275077}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:43 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:43 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:45 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:46 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:49 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:51 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:53 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:55 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:57 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:41:58 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:00 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:03 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:05 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:07 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:11 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:13 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:16 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:18 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:20 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:22 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:24 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:26 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:32 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:34 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:36 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:38 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:40 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:43 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:45 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:47 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:49 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:50 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:52 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee","deletedDate":1628275303,"scheduledPurgeDate":1636051303,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee/4362c9062dc1495a8705237ca1ef380d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b616ee/4362c9062dc1495a8705237ca1ef380d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b616ee/4362c9062dc1495a8705237ca1ef380d","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275077,"updated":1628275077,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275077,"updated":1628275077}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:56 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee","deletedDate":1628275377,"scheduledPurgeDate":1636051377,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee/2b060fba25c04d349f8f32e505ac5c80","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b616ee/2b060fba25c04d349f8f32e505ac5c80","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b616ee/2b060fba25c04d349f8f32e505ac5c80","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275078,"updated":1628275078,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275078,"updated":1628275078}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:56 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg3a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:56 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:42:58 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:01 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:03 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:05 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:07 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:11 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:13 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:15 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:17 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:20 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:22 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:24 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:26 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee","deletedDate":1628275377,"scheduledPurgeDate":1636051377,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee/2b060fba25c04d349f8f32e505ac5c80","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b616ee/2b060fba25c04d349f8f32e505ac5c80","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b616ee/2b060fba25c04d349f8f32e505ac5c80","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275078,"updated":1628275078,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275078,"updated":1628275078}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee","deletedDate":1628275408,"scheduledPurgeDate":1636051408,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee/54f8a558c16543c28d5980d008f8a81f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b616ee/54f8a558c16543c28d5980d008f8a81f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b616ee/54f8a558c16543c28d5980d008f8a81f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275078,"updated":1628275078,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275078,"updated":1628275078}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:32 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:35 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:39 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:40 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:42 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:44 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:46 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:49 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:51 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:53 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:55 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:43:57 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:00 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee","deletedDate":1628275408,"scheduledPurgeDate":1636051408,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee/54f8a558c16543c28d5980d008f8a81f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b616ee/54f8a558c16543c28d5980d008f8a81f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b616ee/54f8a558c16543c28d5980d008f8a81f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275078,"updated":1628275078,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275078,"updated":1628275078}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:02 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee","deletedDate":1628275442,"scheduledPurgeDate":1636051442,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee/385e2357ee6d4febbf50eb5ed722ef9e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b616ee/385e2357ee6d4febbf50eb5ed722ef9e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b616ee/385e2357ee6d4febbf50eb5ed722ef9e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275079,"updated":1628275079,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275079,"updated":1628275079}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:02 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg5a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:02 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:04 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:06 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:08 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:10 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:12 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:14 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:16 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:18 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:20 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:22 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:24 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:26 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee","deletedDate":1628275442,"scheduledPurgeDate":1636051442,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee/385e2357ee6d4febbf50eb5ed722ef9e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b616ee/385e2357ee6d4febbf50eb5ed722ef9e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b616ee/385e2357ee6d4febbf50eb5ed722ef9e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275079,"updated":1628275079,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275079,"updated":1628275079}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee","deletedDate":1628275469,"scheduledPurgeDate":1636051469,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee/2749ce6444b542508bca6d7073b57083","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b616ee/2749ce6444b542508bca6d7073b57083","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b616ee/2749ce6444b542508bca6d7073b57083","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275079,"updated":1628275079,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275079,"updated":1628275079}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:31 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:33 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:35 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:39 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:41 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:43 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:46 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:48 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:50 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:52 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:53 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:55 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:44:57 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:00 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:02 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:04 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b616ee"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:06 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee","deletedDate":1628275469,"scheduledPurgeDate":1636051469,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee/2749ce6444b542508bca6d7073b57083","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b616ee/2749ce6444b542508bca6d7073b57083","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b616ee/2749ce6444b542508bca6d7073b57083","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275079,"updated":1628275079,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275079,"updated":1628275079}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: no-cache + content-length: '323' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: no-cache + content-length: '323' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1628271087,"scheduledPurgeDate":1636047087,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"RC8tFJZPwOeZWUeGE9sGSFTbczM","attributes":{"enabled":true,"nbf":1628270484,"exp":1659807084,"created":1628271084,"updated":1628271087,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee","deletedDate":1628275238,"scheduledPurgeDate":1636051238,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275076,"updated":1628275076,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee","deletedDate":1628275261,"scheduledPurgeDate":1636051261,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275077,"updated":1628275077,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee","deletedDate":1628275303,"scheduledPurgeDate":1636051303,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275077,"updated":1628275077,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee","deletedDate":1628275377,"scheduledPurgeDate":1636051377,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275078,"updated":1628275078,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee","deletedDate":1628275408,"scheduledPurgeDate":1636051408,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275078,"updated":1628275078,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee","deletedDate":1628275442,"scheduledPurgeDate":1636051442,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275079,"updated":1628275079,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee","deletedDate":1628275469,"scheduledPurgeDate":1636051469,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275079,"updated":1628275079,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETURJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: no-cache + content-length: '3880' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETURJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0203b1472","deletedDate":1628275304,"scheduledPurgeDate":1636051304,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275293,"updated":1628275293,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee","deletedDate":1628275080,"scheduledPurgeDate":1636051080,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275073,"updated":1628275073,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472","deletedDate":1628275377,"scheduledPurgeDate":1636051377,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275294,"updated":1628275294,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee","deletedDate":1628275101,"scheduledPurgeDate":1636051101,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472","deletedDate":1628275408,"scheduledPurgeDate":1636051408,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275295,"updated":1628275295,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee","deletedDate":1628275119,"scheduledPurgeDate":1636051119,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472","deletedDate":1628275442,"scheduledPurgeDate":1636051442,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETTBFM1FqVXhOa1ZFTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: no-cache + content-length: '3414' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:10 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETURJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETTBFM1FqVXhOa1ZFTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee","deletedDate":1628275144,"scheduledPurgeDate":1636051144,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472","deletedDate":1628275469,"scheduledPurgeDate":1636051469,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee","deletedDate":1628275175,"scheduledPurgeDate":1636051175,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275075,"updated":1628275075,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee","deletedDate":1628275192,"scheduledPurgeDate":1636051192,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275075,"updated":1628275075,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee","deletedDate":1628275215,"scheduledPurgeDate":1636051215,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275076,"updated":1628275076,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJURkJOVGt2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: no-cache + content-length: '2532' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:10 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETTBFM1FqVXhOa1ZFTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJURkJOVGt2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVpCUkRBeU1UazBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: no-cache + content-length: '371' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:10 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJURkJOVGt2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVpCUkRBeU1UazBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[],"nextLink":null}' + headers: + cache-control: no-cache + content-length: '28' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:10 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVpCUkRBeU1UazBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee/recover?api-version=7.1 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275073,"updated":1628275073,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275073,"updated":1628275073}}}' + headers: + cache-control: no-cache + content-length: '2303' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:11 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee/recover?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:11 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:13 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:15 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:17 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:19 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:21 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:22 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:24 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:26 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:29 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:31 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:33 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:35 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:40 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:42 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:43 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:45 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:47 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:50 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:52 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:56 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:45:58 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275073,"updated":1628275073,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275073,"updated":1628275073}}}' + headers: + cache-control: no-cache + content-length: '2303' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:00 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee/recover?api-version=7.1 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' + headers: + cache-control: no-cache + content-length: '2303' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:00 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee/recover?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:00 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:02 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:04 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:06 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:11 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:13 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:15 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:17 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:20 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:22 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:24 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:26 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:29 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:31 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:34 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:36 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:38 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' + headers: + cache-control: no-cache + content-length: '2303' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:40 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee/recover?api-version=7.1 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' + headers: + cache-control: no-cache + content-length: '2303' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:40 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee/recover?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:40 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:42 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:44 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:46 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:48 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:50 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:53 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:55 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:57 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:46:59 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:01 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:03 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:06 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:08 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:11 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:14 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' + headers: + cache-control: no-cache + content-length: '2303' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:16 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee/recover?api-version=7.1 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' + headers: + cache-control: no-cache + content-length: '2303' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:16 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee/recover?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:16 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:18 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:20 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:22 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:25 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:27 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:29 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:31 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:32 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:34 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:39 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:41 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:43 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:46 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:48 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:50 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:52 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' + headers: + cache-control: no-cache + content-length: '2303' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:56 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee/recover?api-version=7.1 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275075,"updated":1628275075,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275075,"updated":1628275075}}}' + headers: + cache-control: no-cache + content-length: '2303' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:47:56 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee/recover?api-version=7.1 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:05 GMT + date: Fri, 06 Aug 2021 18:47:56 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETUVFM1FqWXhOa1ZGTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec14d851870","deletedDate":1617070698,"scheduledPurgeDate":1624846698,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec14d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b516ed","deletedDate":1617070710,"scheduledPurgeDate":1624846710,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee","deletedDate":1617070590,"scheduledPurgeDate":1624846590,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec24d851870","deletedDate":1617070685,"scheduledPurgeDate":1624846685,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec24d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b516ed","deletedDate":1617070651,"scheduledPurgeDate":1624846651,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee","deletedDate":1617070697,"scheduledPurgeDate":1624846697,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec34d851870","deletedDate":1617070641,"scheduledPurgeDate":1624846641,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec34d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b516ed","deletedDate":1617070624,"scheduledPurgeDate":1624846624,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee","deletedDate":1617070611,"scheduledPurgeDate":1624846611,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec44d851870","deletedDate":1617070576,"scheduledPurgeDate":1624846576,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec44d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b516ed","deletedDate":1617070697,"scheduledPurgeDate":1624846697,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee","deletedDate":1617070722,"scheduledPurgeDate":1624846722,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec54d851870","deletedDate":1617070652,"scheduledPurgeDate":1624846652,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec54d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b516ed","deletedDate":1617070685,"scheduledPurgeDate":1624846685,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee","deletedDate":1617070640,"scheduledPurgeDate":1624846640,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec64d851870","deletedDate":1617070601,"scheduledPurgeDate":1624846601,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec64d851870","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b516ed","deletedDate":1617070722,"scheduledPurgeDate":1624846722,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b516ed","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070573,"updated":1617070573,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee","deletedDate":1617070733,"scheduledPurgeDate":1624846733,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":null}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '7965' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:05 GMT + date: Fri, 06 Aug 2021 18:47:58 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETUVFM1FqWXhOa1ZGTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee/recover?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067435,"updated":1617070570}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:05 GMT + date: Fri, 06 Aug 2021 18:48:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b616ee/recover?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:05 GMT + date: Fri, 06 Aug 2021 18:48:02 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:08 GMT + date: Fri, 06 Aug 2021 18:48:04 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:10 GMT + date: Fri, 06 Aug 2021 18:48:07 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:12 GMT + date: Fri, 06 Aug 2021 18:48:09 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:14 GMT + date: Fri, 06 Aug 2021 18:48:11 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:16 GMT + date: Fri, 06 Aug 2021 18:48:12 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067435,"updated":1617070570}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:18 GMT + date: Fri, 06 Aug 2021 18:48:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee/recover?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070571}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:18 GMT + date: Fri, 06 Aug 2021 18:48:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b616ee/recover?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:18 GMT + date: Fri, 06 Aug 2021 18:48:19 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:21 GMT + date: Fri, 06 Aug 2021 18:48:21 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:23 GMT + date: Fri, 06 Aug 2021 18:48:23 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:25 GMT + date: Fri, 06 Aug 2021 18:48:25 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:26 GMT + date: Fri, 06 Aug 2021 18:48:27 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:29 GMT + date: Fri, 06 Aug 2021 18:48:29 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:31 GMT + date: Fri, 06 Aug 2021 18:48:31 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070571}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:33 GMT + date: Fri, 06 Aug 2021 18:48:34 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee/recover?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:33 GMT + date: Fri, 06 Aug 2021 18:48:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee/recover?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:33 GMT + date: Fri, 06 Aug 2021 18:48:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:35 GMT + date: Fri, 06 Aug 2021 18:48:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:37 GMT + date: Fri, 06 Aug 2021 18:48:41 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:39 GMT + date: Fri, 06 Aug 2021 18:48:43 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070572}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275075,"updated":1628275075,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275075,"updated":1628275075}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:41 GMT + date: Fri, 06 Aug 2021 18:48:45 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee/recover?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee/recover?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067434,"updated":1617070570}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275075,"updated":1628275075,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275075,"updated":1628275075}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:41 GMT + date: Fri, 06 Aug 2021 18:48:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b616ee/recover?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b616ee/recover?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:41 GMT + date: Fri, 06 Aug 2021 18:48:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:44 GMT + date: Fri, 06 Aug 2021 18:48:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:46 GMT + date: Fri, 06 Aug 2021 18:48:51 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:48 GMT + date: Fri, 06 Aug 2021 18:48:52 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:49 GMT + date: Fri, 06 Aug 2021 18:48:54 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:51 GMT + date: Fri, 06 Aug 2021 18:48:56 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067434,"updated":1617070570}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:53 GMT + date: Fri, 06 Aug 2021 18:48:58 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee/recover?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067435,"updated":1617070571}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:54 GMT + date: Fri, 06 Aug 2021 18:49:01 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b616ee/recover?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:54 GMT + date: Fri, 06 Aug 2021 18:49:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:57 GMT + date: Fri, 06 Aug 2021 18:49:05 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:19:59 GMT + date: Fri, 06 Aug 2021 18:49:07 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:01 GMT + date: Fri, 06 Aug 2021 18:49:09 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:03 GMT + date: Fri, 06 Aug 2021 18:49:10 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:05 GMT + date: Fri, 06 Aug 2021 18:49:12 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067435,"updated":1617070571}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275075,"updated":1628275075,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275075,"updated":1628275075}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:07 GMT + date: Fri, 06 Aug 2021 18:49:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee/recover?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee/recover?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070572}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275076,"updated":1628275076,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275076,"updated":1628275076}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:07 GMT + date: Fri, 06 Aug 2021 18:49:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b616ee/recover?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee/recover?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec6a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:07 GMT + date: Fri, 06 Aug 2021 18:49:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec6a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:09 GMT + date: Fri, 06 Aug 2021 18:49:18 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec6a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:11 GMT + date: Fri, 06 Aug 2021 18:49:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec6a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:12 GMT + date: Fri, 06 Aug 2021 18:49:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4a7b616ee was not found in this key vault. If you + (name/id) livekvtestcertrec6a7b616ee was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:15 GMT + date: Fri, 06 Aug 2021 18:49:24 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec6a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:17 GMT + date: Fri, 06 Aug 2021 18:49:26 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee/recover?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067437,"updated":1617070572}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec6a7b616ee was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:18 GMT + date: Fri, 06 Aug 2021 18:49:28 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b616ee/recover?api-version=7.1 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 response: @@ -5337,14 +12167,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:18 GMT + date: Fri, 06 Aug 2021 18:49:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -5356,7 +12186,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 response: @@ -5369,14 +12199,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:20 GMT + date: Fri, 06 Aug 2021 18:49:32 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -5388,7 +12218,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 response: @@ -5401,14 +12231,14 @@ interactions: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:22 GMT + date: Fri, 06 Aug 2021 18:49:35 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -5420,31 +12250,29 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6a7b616ee was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275076,"updated":1628275076,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275076,"updated":1628275076}}}' headers: cache-control: no-cache - content-length: '338' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:23 GMT + date: Fri, 06 Aug 2021 18:49:37 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found + code: 200 + message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 - request: body: null @@ -5452,132 +12280,115 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6a7b616ee was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '' headers: cache-control: no-cache - content-length: '338' - content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:25 GMT + date: Fri, 06 Aug 2021 18:49:37 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 + code: 204 + message: No Content + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6a7b616ee was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '' headers: cache-control: no-cache - content-length: '338' - content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:27 GMT + date: Fri, 06 Aug 2021 18:49:37 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 + code: 204 + message: No Content + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6a7b616ee was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '' headers: cache-control: no-cache - content-length: '338' - content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:29 GMT + date: Fri, 06 Aug 2021 18:49:37 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 + code: 204 + message: No Content + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067437,"updated":1617070572}}}' + string: '' headers: cache-control: no-cache - content-length: '1860' - content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:20:31 GMT + date: Fri, 06 Aug 2021 18:49:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 + code: 204 + message: No Content + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b616ee?api-version=7.1 response: @@ -5585,14 +12396,14 @@ interactions: string: '' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:31 GMT + date: Fri, 06 Aug 2021 18:49:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 204 @@ -5604,200 +12415,208 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 response: body: string: '' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:33 GMT + date: Fri, 06 Aug 2021 18:49:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 204 message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 response: body: string: '' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:32 GMT + date: Fri, 06 Aug 2021 18:49:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 204 message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b616ee?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1 response: body: - string: '' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:33 GMT + content-length: '323' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:50:29 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 204 - message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b616ee?api-version=7.1 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 response: body: - string: '' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:34 GMT + content-length: '323' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:50:29 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 204 - message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b616ee?api-version=7.1 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 response: body: - string: '' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1628271087,"scheduledPurgeDate":1636047087,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"RC8tFJZPwOeZWUeGE9sGSFTbczM","attributes":{"enabled":true,"nbf":1628270484,"exp":1659807084,"created":1628271084,"updated":1628271087,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0203b1472","deletedDate":1628275601,"scheduledPurgeDate":1636051601,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275298,"updated":1628275298,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1203b1472","deletedDate":1628275636,"scheduledPurgeDate":1636051636,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275301,"updated":1628275301,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2203b1472","deletedDate":1628275676,"scheduledPurgeDate":1636051676,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275301,"updated":1628275301,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3203b1472","deletedDate":1628275726,"scheduledPurgeDate":1636051726,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275302,"updated":1628275302,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4203b1472","deletedDate":1628275756,"scheduledPurgeDate":1636051756,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275302,"updated":1628275302,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5203b1472","deletedDate":1628275777,"scheduledPurgeDate":1636051777,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275303,"updated":1628275303,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6203b1472","deletedDate":1628275792,"scheduledPurgeDate":1636051792,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275303,"updated":1628275303,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVRJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:34 GMT + content-length: '3880' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:50:29 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 204 - message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b616ee?api-version=7.1 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVRJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: - string: '' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1203b1472","deletedDate":1628275377,"scheduledPurgeDate":1636051377,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275294,"updated":1628275294,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2203b1472","deletedDate":1628275408,"scheduledPurgeDate":1636051408,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275295,"updated":1628275295,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3203b1472","deletedDate":1628275442,"scheduledPurgeDate":1636051442,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4203b1472","deletedDate":1628275469,"scheduledPurgeDate":1636051469,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275296,"updated":1628275296,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkVFM1FqVXhOa1ZFTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: no-cache - date: Tue, 30 Mar 2021 02:20:34 GMT + content-length: '2091' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:50:29 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 204 - message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b616ee?api-version=7.1 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVRJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.1 + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkVFM1FqVXhOa1ZFTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/BackupRestoreCertificate","deletedDate":1617053388,"scheduledPurgeDate":1624829388,"id":"https://vaultname.vault.azure.net/certificates/BackupRestoreCertificate","x5t":"BUYGRo9uO7lTgKog96DrqlW8cxQ","attributes":{"enabled":true,"nbf":1617052679,"exp":1648589279,"created":1617053279,"updated":1617053279,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVXpJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSTlJWSkhSVU5GVWxSSlJrbERRVlJGTnpWQlF6RTFSalF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5203b1472","deletedDate":1628275509,"scheduledPurgeDate":1636051509,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275297,"updated":1628275297,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6203b1472","deletedDate":1628275561,"scheduledPurgeDate":1636051561,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6203b1472","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275297,"updated":1628275297,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: no-cache - content-length: '780' + content-length: '1193' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:24 GMT + date: Fri, 06 Aug 2021 18:50:29 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates?api-version=7.1 + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkVFM1FqVXhOa1ZFTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVXpJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSTlJWSkhSVU5GVWxSSlJrbERRVlJGTnpWQlF6RTFSalF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: string: '{"value":[],"nextLink":null}' @@ -5805,101 +12624,104 @@ interactions: cache-control: no-cache content-length: '28' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:24 GMT + date: Fri, 06 Aug 2021 18:50:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVXpJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSTlJWSkhSVU5GVWxSSlJrbERRVlJGTnpWQlF6RTFSalF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.1&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b616ee/492b7d0f54704c3980783ed705b074d1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067435,"updated":1617070570}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b616ee/5bc9050b1cd34777a814ec490356a8de","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275073,"updated":1628275073,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275073,"updated":1628275073}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:24 GMT + date: Fri, 06 Aug 2021 18:50:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b616ee/f9b0b1037057475f9a2c2c3dee66fa6e","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070571}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b616ee/79486c5a904b4db3b66056811c424dcd","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:24 GMT + date: Fri, 06 Aug 2021 18:50:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b616ee/42ceb5b2c274463296372d594ab2bba1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070571,"updated":1617070571,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067435,"updated":1617070571}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b616ee/7cfe156b807e4dc4997c39e76708fd8e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:24 GMT + date: Fri, 06 Aug 2021 18:50:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -5911,114 +12733,118 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b616ee/de0b15f3796949c3a03f80719dcf9075","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070572}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b616ee/41c8c1a788ab429e841b43f6baa7c23b","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275074,"updated":1628275074,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275074,"updated":1628275074}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:24 GMT + date: Fri, 06 Aug 2021 18:50:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b616ee/a8d774761d1c4efdac5a8361c0e1ec08","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067436,"updated":1617070572}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b616ee/d3a782efc9db4e078d47c95c4ad9abf2","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275075,"updated":1628275075,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275075,"updated":1628275075}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:24 GMT + date: Fri, 06 Aug 2021 18:50:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b616ee/97c1d95d95a44be593e3955bd7fdb607","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070572,"updated":1617070572,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067437,"updated":1617070572}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b616ee/e3604367a46d4474b36575141c5c1a0c","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275075,"updated":1628275075,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275075,"updated":1628275075}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:24 GMT + date: Fri, 06 Aug 2021 18:50:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b616ee/?api-version=7.1 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b616ee/87f66975e901456496b59f171831214a","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1617070570,"updated":1617070570,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1617067434,"updated":1617070570}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b616ee/6f3f85aa64754fea99405dda4d4f2de5","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275076,"updated":1628275076,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275076,"updated":1628275076}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Tue, 30 Mar 2021 02:21:24 GMT + date: Fri, 06 Aug 2021 18:50:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.205.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b616ee/?api-version=7.1 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b616ee/?api-version=7.1 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_recover_and_purge_7_2.yaml b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_recover_and_purge_7_2.yaml index a22556247d64..81921480296b 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_recover_and_purge_7_2.yaml +++ b/sdk/keyvault/azure-keyvault-certificates/tests/recordings/test_certificates_client_async.test_recover_and_purge_7_2.yaml @@ -9,18 +9,18 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/import?api-version=7.2 response: body: - string: '{"error":{"code":"Unauthorized","message":"Request is missing a Bearer - or PoP token."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '87' + content-length: '97' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:28 GMT + date: Fri, 06 Aug 2021 18:50:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains @@ -29,539 +29,539 @@ interactions: x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 401 message: Unauthorized url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434008,"updated":1620434008,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434008,"updated":1620434008}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275831,"updated":1628275831,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275831,"updated":1628275831}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:29 GMT + date: Fri, 06 Aug 2021 18:50:31 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434009,"updated":1620434009,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434009,"updated":1620434009}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275832,"updated":1628275832,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275832,"updated":1628275832}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:29 GMT + date: Fri, 06 Aug 2021 18:50:31 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434009,"updated":1620434009,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434009,"updated":1620434009}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275832,"updated":1628275832,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275832,"updated":1628275832}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:29 GMT + date: Fri, 06 Aug 2021 18:50:32 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434010,"updated":1620434010,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434010,"updated":1620434010}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275833,"updated":1628275833,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275833,"updated":1628275833}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:30 GMT + date: Fri, 06 Aug 2021 18:50:32 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434010,"updated":1620434010,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434010,"updated":1620434010}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275833,"updated":1628275833,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275833,"updated":1628275833}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:30 GMT + date: Fri, 06 Aug 2021 18:50:33 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434011,"updated":1620434011}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275834,"updated":1628275834,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275834,"updated":1628275834}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:31 GMT + date: Fri, 06 Aug 2021 18:50:33 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434011,"updated":1620434011}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275834,"updated":1628275834,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275834,"updated":1628275834}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:31 GMT + date: Fri, 06 Aug 2021 18:50:33 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef/52c97de2a835459782a78d9f826a502d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b716ef/52c97de2a835459782a78d9f826a502d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b716ef/52c97de2a835459782a78d9f826a502d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434011,"updated":1620434011}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef/d75e839e04f64ce499a0cb8078b5634e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b716ef/d75e839e04f64ce499a0cb8078b5634e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b716ef/d75e839e04f64ce499a0cb8078b5634e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275835,"updated":1628275835,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275835,"updated":1628275835}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:32 GMT + date: Fri, 06 Aug 2021 18:50:35 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg0a7b716ef/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef/e3c8d6af7481422c8e039c49c59b13d0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b716ef/e3c8d6af7481422c8e039c49c59b13d0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b716ef/e3c8d6af7481422c8e039c49c59b13d0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434012,"updated":1620434012,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434012,"updated":1620434012}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef/8816802e1b65491faf17e18d2bcd486f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b716ef/8816802e1b65491faf17e18d2bcd486f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b716ef/8816802e1b65491faf17e18d2bcd486f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275835,"updated":1628275835,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275835,"updated":1628275835}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:32 GMT + date: Fri, 06 Aug 2021 18:50:35 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg1a7b716ef/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef/64fd0ad8f66f44898858960fabe768ec","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b716ef/64fd0ad8f66f44898858960fabe768ec","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b716ef/64fd0ad8f66f44898858960fabe768ec","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434012,"updated":1620434012,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434012,"updated":1620434012}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef/91266c66435f4717a39c62204bf8a636","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b716ef/91266c66435f4717a39c62204bf8a636","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b716ef/91266c66435f4717a39c62204bf8a636","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275835,"updated":1628275835,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275835,"updated":1628275835}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:32 GMT + date: Fri, 06 Aug 2021 18:50:35 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg2a7b716ef/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b716ef/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b716ef/887ef744680f413e86e7829c9758da2f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b716ef/887ef744680f413e86e7829c9758da2f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b716ef/887ef744680f413e86e7829c9758da2f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434013,"updated":1620434013,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434013,"updated":1620434013}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b716ef/d964b2a1320f4a56b28ea42fe5539e0a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b716ef/d964b2a1320f4a56b28ea42fe5539e0a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b716ef/d964b2a1320f4a56b28ea42fe5539e0a","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275836,"updated":1628275836,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275836,"updated":1628275836}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:33 GMT + date: Fri, 06 Aug 2021 18:50:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg3a7b716ef/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b716ef/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b716ef/51dc8404457b4fd895af0bd26470ad5f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b716ef/51dc8404457b4fd895af0bd26470ad5f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b716ef/51dc8404457b4fd895af0bd26470ad5f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434013,"updated":1620434013,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434013,"updated":1620434013}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b716ef/09a88eec761846b085a4a29bd4ee5dcb","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b716ef/09a88eec761846b085a4a29bd4ee5dcb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b716ef/09a88eec761846b085a4a29bd4ee5dcb","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275839,"updated":1628275839,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275839,"updated":1628275839}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:33 GMT + date: Fri, 06 Aug 2021 18:50:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg4a7b716ef/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "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", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b716ef/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b716ef/9f9bd6de302d4ecc90d62b017f26b7d1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b716ef/9f9bd6de302d4ecc90d62b017f26b7d1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b716ef/9f9bd6de302d4ecc90d62b017f26b7d1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434014,"updated":1620434014,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434014,"updated":1620434014}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b716ef/385f49c207b54a41b7898fe352eca2c7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b716ef/385f49c207b54a41b7898fe352eca2c7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b716ef/385f49c207b54a41b7898fe352eca2c7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275840,"updated":1628275840,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275840,"updated":1628275840}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:34 GMT + date: Fri, 06 Aug 2021 18:50:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg5a7b716ef/import?api-version=7.2 - request: - body: '{"policy": {"secret_props": {"contentType": "application/x-pkcs12"}, "issuer": - {"name": "Self"}, "key_props": {"key_size": 2048, "kty": "RSA", "exportable": - true, "reuse_key": false}, "x509_props": {"subject": "CN=DefaultPolicy", "validity_months": - 12, "key_usage": ["digitalSignature", "keyEncipherment"], "sans": {}}}, "value": - "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", - "pwd": "123"}' + body: '{"value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIWLKMqe2DMNcCAggAgIID0NfyQXWkGMtMjCa9BwG2Q61zZbbGQyCoNe59yTw2dVWbA3hLuMaOxrsS+5YDiRVhy/815WnsS25xR4ju2WN96j8ZF70DNYfyT18SLRpKxa1mpPE1GKRDYoax9Sy4syduWJwYGc6/+rBnIRogebE7fKlA5ZCSseB2SkQG93ysmhFrhkps4UvaYbCyR1leuT7bOWAbXn7Ztet46Jz4WKun5NyKIXtWpkO8sgsy20uuQkqSjWVuOKa6nCRkZ5iY/kb3AkWRqK7snBt994A21kKG8fZU670Dw1s3tixtLlE2WDwYnb3fULJzmtTXYkyaRFbWoFJPHrPMu9K9ZQTY/WXTcFSj2qgQUl05SQOBiJo7bn1kVT+XTTrCP5OELO0vvaIUV9omMwua9oUegWgS0GkADhvc7g2PkJw5ugoW23MFrLPU7Jt2MLXnBF3dhu6xkf7NMGCa0330On2oAy4ru3jsIqKkrxwz26uRrDz4Zy2G3lUbcPaP7T7IYdu44E/139dNxHZvoGuRFqWISbj5nkY5pcQUrgGZOpOe9ygmOSeUVY7dIJxFKW7X1O3Nl4LpoaKW42nTM7xuoVQ4O/GgapHqvgyKjiSzL9zrRZAXEprKQAQMCbreYmuzeJoXOugqYE9wHpEnePWpK7GpA+0wAJ3gsqFEaLS6PAUXNapX5af9VPrZenBBYFUIxPUn4uJz+p2PGMWA90H4OXv4eTlQ2lqqEqDYZ5MuwtIwt6vH1FO7h2GqiMbVN/ckTSpkFKaUbsiqESKfzD712YyNKmsKKU09e2c3SagCCW8zIj7kgsraDcKuvqOqjnMSXlxo+MgNcaYySHAzNDxL94Wy7sOIGogZmTEDEVdPvmdZQ5TKtan3YwvsUx5mtxU9t1uQIilK7PIbf1RrQimq6UXpQkatc1r1t+Ngwy2ZniZzwakuVc4DkWq0eaDHjR2S5a1WZtAc8UIHM/EQNcVZaQejBjR7QJmPY5eTgmE+7IbQMbn88nNdElKipmlqS3c6wO57L0zRSvbrBCxUuVI4BzdVfREuxm+Kev1paAS44rcygRzsRGr9gEoee/I6VgNbGjCV08H8UiF5K0/VbN93+EtaefNQBaU0fFLZUf1nxMgtgTJKqU2ku/d6R82B/4LWCDnvXABVCQ+1WmB5jXUzwYAFVXHqpZbGdE7qK663GRvT0CIN2FwljZMTtYNXCQO6TlseVLX8CrLdxGioJol85NWrj3YSD//gG3Ds0RiH+0fXcuN67in2RC3WKfaUCcUTur71Tau2f37SWZ9FrzOHQqJVoP/dKTG1UJ8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIAMlOFXUURPECAggABIIEyFYuslCPqytr0m3AvBpTJMm3Umv94Xg6z+lhl6oQ/ClfV7TBaUb1gvM12z7+hSbuyZfFJwm/rK5c28BHVpZL5zvehnhRALjt67yIEVhMmnqeSv9PIR7F1rzrGBGXle3i2MCzDQD3+QRD/m3HUF/WD9LLx9Q0ucUfdz4i0q07IbRAC1DP/xkmA2uqi/zWWIdec31tdqbyR7tA2hUyXXpVG5ZxxyHuwlEFZEcHpsHnDU405ih45+WhcA+R7CM6bwzLsRf1TZ7Ljx3Fw848G0Q6k4OvOmRyWtCAP/soJCPvuOXnIvJXOJNkDtv5FyoQF+xya9gfb6a+t/kbwHFhM14t6ryCZ525f86PEizcfijTDvdE2E1EqFZlbnBVCHwJ9eJucjSxXmpgslbdroNHZpMNA+bDZiqgcgcOHPK+MaE7KEoiRKkJ7Q4T3XWfrLqDaAtFmhINJw7HmSueliyOEM9HvVHa8CKA1IM8xdF/nrsGEYrw/GUtPaF1ZXEBoeFO1yH+6JkT2SyGbzei2KACShquZpFqJvH6gStxZP5oaOT0UIE2EKz9+2peTahE5XL3L7Xmq/UqezsRKOBBsR+uTSB6w8dWmweaaloBML1iRsNJLDFtZPJvi7zWMq0xjUxoL3ulMJ8jP2/u1mum0lylO26IFqg7V744gSt1FPHR62zwG2zV2b5hu1/hNnhXeE9KMsdwwdfLUkcqXrNBBqkDjF12S4rt7HCaAjx1fE/O/oMqC8YEO3TYa7mL4maj7lR9Ja0n7gVHpKGIy6IUevadPhxcvM1/dMaxO/hd4xCDQC1V8BYqxsv6QH4dbxOj3YTuxD7mRUSI7m4gQbG2jDlUYTWMdCaQow2RCPBE7JWk7efvX/RwknQXi26TcGsVhAZ0/5Tf2+KP0pOBZ5Y+4sQcbSBIXTQqTR4+qTEmTosSj4OTDOO6bS+bVnmsaNAJ9OVa9bNAXSOl+6WPEjNR3z42W/fd+sUk0Y0GU4YcNiBIfMPkkQksVmqU3Y0yyuazrZkk/32kqSrONfxV9JbkgLGwS4O2LBDCubxHyBoakqLvjyFie/jYp7Hu4R6XEfD0mgpho6hhWHh7gy54yA/RiKoZZ7IyJv14KbFzs0f8PEbSx75RpfVEtQD+RZyIby7ompwRnHLvw04gj0kWy1MR84QUIL7yoJJIOgL6Kcgci4M5ZaVdcNAr0CdmjNKfOB7DIvDSxClZjL94zObKxsnExamxs593HLkKJkEdhskpPmaqL/Tt3IaLqxuJsFz7iI2KPRwD9N9mfE9Sfc9yvJiL53Q3sZq9j3oq1bUYa1ubbv0+4Fj3Swg4FmNz7TCN7swtb2BRnwTLh9CRN3BgWaRPIOxmCeosl1GzqWv+sN/GbKeJ8Nylmk1NzaVeJg0NkK2T9hlstVfmdRm+Xk4V30pG/FD67251T1vkLCHP6DJysoEGsfiS2OM+/x3onMvrB6T+hfUmtvxKcnQ7d4DMfmHC9wj/YZkULLYIa+sd9Pbr1U2mJ6lqyWsPUM7XLDMfzN1XOgIDuzcYxTRR5TDiYyg9hYksMNeqSisCsy/ODtMKwk73m2+0GdvIGbPQfV7cgGBEBzN9Wh2BLWtsZq107ZerM02XmRFmq/MX0TaOsmVXhTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQULqAXFUm78ZQ7CCRuYcS3O9qq21EECJq6mOwqNtpgAgIIAA==", + "pwd": "1234", "policy": {"key_props": {"exportable": true, "kty": "RSA", "key_size": + 2048, "reuse_key": false}, "secret_props": {"contentType": "application/x-pkcs12"}, + "x509_props": {"subject": "CN=DefaultPolicy", "sans": {}, "key_usage": ["digitalSignature", + "keyEncipherment"], "validity_months": 12}, "issuer": {"name": "Self"}}}' headers: Accept: - application/json Content-Length: - - '3503' + - '3664' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef/import?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef/69e5f14be47e47a1ac956e9c18d43cbe","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b716ef/69e5f14be47e47a1ac956e9c18d43cbe","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b716ef/69e5f14be47e47a1ac956e9c18d43cbe","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434014,"updated":1620434014,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434014,"updated":1620434014}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef/593c7184f10a476483aacc6779cf2a09","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b716ef/593c7184f10a476483aacc6779cf2a09","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b716ef/593c7184f10a476483aacc6779cf2a09","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275840,"updated":1628275840,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275840,"updated":1628275840}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:34 GMT + date: Fri, 06 Aug 2021 18:50:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -573,452 +573,457 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef","deletedDate":1620434015,"scheduledPurgeDate":1628210015,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434011,"updated":1620434011}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef","deletedDate":1628275840,"scheduledPurgeDate":1636051840,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275831,"updated":1628275831,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275831,"updated":1628275831}}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:34 GMT + date: Fri, 06 Aug 2021 18:50:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b716ef"}}' + not found: livekvtestcertrec0a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:34 GMT + date: Fri, 06 Aug 2021 18:50:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b716ef"}}' + not found: livekvtestcertrec0a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:36 GMT + date: Fri, 06 Aug 2021 18:50:42 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b716ef"}}' + not found: livekvtestcertrec0a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:38 GMT + date: Fri, 06 Aug 2021 18:50:45 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b716ef"}}' + not found: livekvtestcertrec0a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:40 GMT + date: Fri, 06 Aug 2021 18:50:47 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b716ef"}}' + not found: livekvtestcertrec0a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:42 GMT + date: Fri, 06 Aug 2021 18:50:49 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec5a7b716ef"}}' + not found: livekvtestcertrec0a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:45 GMT + date: Fri, 06 Aug 2021 18:50:51 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef","deletedDate":1620434015,"scheduledPurgeDate":1628210015,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434011,"updated":1620434011}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec0a7b716ef"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:47 GMT + date: Fri, 06 Aug 2021 18:50:53 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef","deletedDate":1620434027,"scheduledPurgeDate":1628210027,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef/64fd0ad8f66f44898858960fabe768ec","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b716ef/64fd0ad8f66f44898858960fabe768ec","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b716ef/64fd0ad8f66f44898858960fabe768ec","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434012,"updated":1620434012,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434012,"updated":1620434012}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec0a7b716ef"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:47 GMT + date: Fri, 06 Aug 2021 18:50:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg2a7b716ef?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2a7b716ef"}}' + not found: livekvtestcertrec0a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:47 GMT + date: Fri, 06 Aug 2021 18:50:57 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2a7b716ef"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef","deletedDate":1628275840,"scheduledPurgeDate":1636051840,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275831,"updated":1628275831,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275831,"updated":1628275831}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:49 GMT + date: Fri, 06 Aug 2021 18:50:59 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2a7b716ef"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef","deletedDate":1628275859,"scheduledPurgeDate":1636051859,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275832,"updated":1628275832,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275832,"updated":1628275832}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:51 GMT + date: Fri, 06 Aug 2021 18:50:59 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg2a7b716ef"}}' + not found: livekvtestcertrec1a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:53 GMT + date: Fri, 06 Aug 2021 18:50:59 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef","deletedDate":1620434027,"scheduledPurgeDate":1628210027,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef/64fd0ad8f66f44898858960fabe768ec","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b716ef/64fd0ad8f66f44898858960fabe768ec","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b716ef/64fd0ad8f66f44898858960fabe768ec","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434012,"updated":1620434012,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434012,"updated":1620434012}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1a7b716ef"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:55 GMT + date: Fri, 06 Aug 2021 18:51:01 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef","deletedDate":1620434036,"scheduledPurgeDate":1628210036,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434009,"updated":1620434009,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434009,"updated":1620434009}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1a7b716ef"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:55 GMT + date: Fri, 06 Aug 2021 18:51:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef?api-version=7.2 response: @@ -1029,14 +1034,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:55 GMT + date: Fri, 06 Aug 2021 18:51:05 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1048,7 +1053,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef?api-version=7.2 response: @@ -1059,14 +1064,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:57 GMT + date: Fri, 06 Aug 2021 18:51:07 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1078,7 +1083,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef?api-version=7.2 response: @@ -1089,14 +1094,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:33:59 GMT + date: Fri, 06 Aug 2021 18:51:09 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1108,7 +1113,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef?api-version=7.2 response: @@ -1119,14 +1124,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:01 GMT + date: Fri, 06 Aug 2021 18:51:11 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1138,28 +1143,29 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef","deletedDate":1620434036,"scheduledPurgeDate":1628210036,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434009,"updated":1620434009,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434009,"updated":1620434009}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1a7b716ef"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:04 GMT + date: Fri, 06 Aug 2021 18:51:13 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef?api-version=7.2 - request: body: null @@ -1167,660 +1173,577 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef","deletedDate":1620434044,"scheduledPurgeDate":1628210044,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef/69e5f14be47e47a1ac956e9c18d43cbe","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b716ef/69e5f14be47e47a1ac956e9c18d43cbe","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b716ef/69e5f14be47e47a1ac956e9c18d43cbe","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434014,"updated":1620434014,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434014,"updated":1620434014}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec1a7b716ef"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:04 GMT + date: Fri, 06 Aug 2021 18:51:15 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg6a7b716ef?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6a7b716ef"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef","deletedDate":1628275859,"scheduledPurgeDate":1636051859,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275832,"updated":1628275832,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275832,"updated":1628275832}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:04 GMT + date: Fri, 06 Aug 2021 18:51:17 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6a7b716ef"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef","deletedDate":1628275878,"scheduledPurgeDate":1636051878,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275832,"updated":1628275832,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275832,"updated":1628275832}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:06 GMT + date: Fri, 06 Aug 2021 18:51:17 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6a7b716ef"}}' + not found: livekvtestcertrec2a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:08 GMT + date: Fri, 06 Aug 2021 18:51:17 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6a7b716ef"}}' + not found: livekvtestcertrec2a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:10 GMT + date: Fri, 06 Aug 2021 18:51:19 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg6a7b716ef"}}' + not found: livekvtestcertrec2a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:12 GMT + date: Fri, 06 Aug 2021 18:51:21 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef","deletedDate":1620434044,"scheduledPurgeDate":1628210044,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef/69e5f14be47e47a1ac956e9c18d43cbe","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b716ef/69e5f14be47e47a1ac956e9c18d43cbe","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b716ef/69e5f14be47e47a1ac956e9c18d43cbe","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434014,"updated":1620434014,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434014,"updated":1620434014}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec2a7b716ef"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:15 GMT + date: Fri, 06 Aug 2021 18:51:23 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef","deletedDate":1620434055,"scheduledPurgeDate":1628210055,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b716ef/887ef744680f413e86e7829c9758da2f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b716ef/887ef744680f413e86e7829c9758da2f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b716ef/887ef744680f413e86e7829c9758da2f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434013,"updated":1620434013,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434013,"updated":1620434013}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec2a7b716ef"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:15 GMT + date: Fri, 06 Aug 2021 18:51:26 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg3a7b716ef?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3a7b716ef"}}' + not found: livekvtestcertrec2a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:15 GMT + date: Fri, 06 Aug 2021 18:51:28 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3a7b716ef"}}' + not found: livekvtestcertrec2a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:17 GMT + date: Fri, 06 Aug 2021 18:51:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3a7b716ef"}}' + not found: livekvtestcertrec2a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:19 GMT + date: Fri, 06 Aug 2021 18:51:32 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3a7b716ef"}}' + not found: livekvtestcertrec2a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:21 GMT + date: Fri, 06 Aug 2021 18:51:34 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg3a7b716ef"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef","deletedDate":1628275878,"scheduledPurgeDate":1636051878,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275832,"updated":1628275832,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275832,"updated":1628275832}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:23 GMT + date: Fri, 06 Aug 2021 18:51:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef","deletedDate":1620434055,"scheduledPurgeDate":1628210055,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b716ef/887ef744680f413e86e7829c9758da2f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b716ef/887ef744680f413e86e7829c9758da2f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b716ef/887ef744680f413e86e7829c9758da2f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434013,"updated":1620434013,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434013,"updated":1620434013}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef","deletedDate":1628275897,"scheduledPurgeDate":1636051897,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275833,"updated":1628275833,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275833,"updated":1628275833}}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:24 GMT + date: Fri, 06 Aug 2021 18:51:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef?api-version=7.2 - response: - body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef","deletedDate":1620434065,"scheduledPurgeDate":1628210065,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef/52c97de2a835459782a78d9f826a502d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b716ef/52c97de2a835459782a78d9f826a502d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b716ef/52c97de2a835459782a78d9f826a502d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434011,"updated":1620434011}}}' - headers: - cache-control: no-cache - content-length: '2014' - content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:25 GMT - expires: '-1' - pragma: no-cache - strict-transport-security: max-age=31536000;includeSubDomains - x-content-type-options: nosniff - x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 - x-powered-by: ASP.NET - status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg0a7b716ef?api-version=7.2 -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0a7b716ef"}}' + not found: livekvtestcertrec3a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:25 GMT + date: Fri, 06 Aug 2021 18:51:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0a7b716ef"}}' + not found: livekvtestcertrec3a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:27 GMT + date: Fri, 06 Aug 2021 18:51:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0a7b716ef"}}' + not found: livekvtestcertrec3a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:29 GMT + date: Fri, 06 Aug 2021 18:51:41 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0a7b716ef"}}' + not found: livekvtestcertrec3a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:32 GMT + date: Fri, 06 Aug 2021 18:51:43 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg0a7b716ef"}}' + not found: livekvtestcertrec3a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:33 GMT + date: Fri, 06 Aug 2021 18:51:45 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 - response: - body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef","deletedDate":1620434065,"scheduledPurgeDate":1628210065,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef/52c97de2a835459782a78d9f826a502d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b716ef/52c97de2a835459782a78d9f826a502d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b716ef/52c97de2a835459782a78d9f826a502d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434011,"updated":1620434011}}}' - headers: - cache-control: no-cache - content-length: '2014' - content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:35 GMT - expires: '-1' - pragma: no-cache - strict-transport-security: max-age=31536000;includeSubDomains - x-content-type-options: nosniff - x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 - x-powered-by: ASP.NET - status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef?api-version=7.2 - response: - body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef","deletedDate":1620434076,"scheduledPurgeDate":1628210076,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434010,"updated":1620434010,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434010,"updated":1620434010}}}' - headers: - cache-control: no-cache - content-length: '2014' - content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:36 GMT - expires: '-1' - pragma: no-cache - strict-transport-security: max-age=31536000;includeSubDomains - x-content-type-options: nosniff - x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 - x-powered-by: ASP.NET - status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef?api-version=7.2 response: @@ -1831,14 +1754,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:36 GMT + date: Fri, 06 Aug 2021 18:51:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1850,7 +1773,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef?api-version=7.2 response: @@ -1861,14 +1784,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:38 GMT + date: Fri, 06 Aug 2021 18:51:49 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1880,7 +1803,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef?api-version=7.2 response: @@ -1891,14 +1814,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:39 GMT + date: Fri, 06 Aug 2021 18:51:51 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1910,7 +1833,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef?api-version=7.2 response: @@ -1921,14 +1844,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:42 GMT + date: Fri, 06 Aug 2021 18:51:53 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1940,7 +1863,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef?api-version=7.2 response: @@ -1951,14 +1874,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:43 GMT + date: Fri, 06 Aug 2021 18:51:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -1970,24 +1893,25 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef","deletedDate":1620434076,"scheduledPurgeDate":1628210076,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434010,"updated":1620434010,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434010,"updated":1620434010}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef","deletedDate":1628275897,"scheduledPurgeDate":1636051897,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275833,"updated":1628275833,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275833,"updated":1628275833}}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:46 GMT + date: Fri, 06 Aug 2021 18:51:57 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -1999,1404 +1923,1417 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef","deletedDate":1620434086,"scheduledPurgeDate":1628210086,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434009,"updated":1620434009,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434009,"updated":1620434009}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef","deletedDate":1628275917,"scheduledPurgeDate":1636051917,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275833,"updated":1628275833,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275833,"updated":1628275833}}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:46 GMT + date: Fri, 06 Aug 2021 18:51:57 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2a7b716ef"}}' + not found: livekvtestcertrec4a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:46 GMT + date: Fri, 06 Aug 2021 18:51:57 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2a7b716ef"}}' + not found: livekvtestcertrec4a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:48 GMT + date: Fri, 06 Aug 2021 18:51:59 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2a7b716ef"}}' + not found: livekvtestcertrec4a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:50 GMT + date: Fri, 06 Aug 2021 18:52:01 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2a7b716ef"}}' + not found: livekvtestcertrec4a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:52 GMT + date: Fri, 06 Aug 2021 18:52:03 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2a7b716ef"}}' + not found: livekvtestcertrec4a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:55 GMT + date: Fri, 06 Aug 2021 18:52:05 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec2a7b716ef"}}' + not found: livekvtestcertrec4a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:57 GMT + date: Fri, 06 Aug 2021 18:52:07 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef","deletedDate":1620434086,"scheduledPurgeDate":1628210086,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434009,"updated":1620434009,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434009,"updated":1620434009}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4a7b716ef"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:58 GMT + date: Fri, 06 Aug 2021 18:52:10 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef","deletedDate":1620434099,"scheduledPurgeDate":1628210099,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b716ef/9f9bd6de302d4ecc90d62b017f26b7d1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b716ef/9f9bd6de302d4ecc90d62b017f26b7d1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b716ef/9f9bd6de302d4ecc90d62b017f26b7d1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434014,"updated":1620434014,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434014,"updated":1620434014}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec4a7b716ef"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:59 GMT + date: Fri, 06 Aug 2021 18:52:12 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg5a7b716ef?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5a7b716ef"}}' + not found: livekvtestcertrec4a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:34:59 GMT + date: Fri, 06 Aug 2021 18:52:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5a7b716ef"}}' + not found: livekvtestcertrec4a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:01 GMT + date: Fri, 06 Aug 2021 18:52:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5a7b716ef"}}' + not found: livekvtestcertrec4a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:03 GMT + date: Fri, 06 Aug 2021 18:52:18 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg5a7b716ef"}}' + not found: livekvtestcertrec4a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:05 GMT + date: Fri, 06 Aug 2021 18:52:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef","deletedDate":1620434099,"scheduledPurgeDate":1628210099,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b716ef/9f9bd6de302d4ecc90d62b017f26b7d1","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b716ef/9f9bd6de302d4ecc90d62b017f26b7d1","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b716ef/9f9bd6de302d4ecc90d62b017f26b7d1","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434014,"updated":1620434014,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434014,"updated":1620434014}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef","deletedDate":1628275917,"scheduledPurgeDate":1636051917,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275833,"updated":1628275833,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275833,"updated":1628275833}}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:07 GMT + date: Fri, 06 Aug 2021 18:52:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef","deletedDate":1620434107,"scheduledPurgeDate":1628210107,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434011,"updated":1620434011}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef","deletedDate":1628275942,"scheduledPurgeDate":1636051942,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275834,"updated":1628275834,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275834,"updated":1628275834}}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:07 GMT + date: Fri, 06 Aug 2021 18:52:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6a7b716ef"}}' + not found: livekvtestcertrec5a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:07 GMT + date: Fri, 06 Aug 2021 18:52:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6a7b716ef"}}' + not found: livekvtestcertrec5a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:09 GMT + date: Fri, 06 Aug 2021 18:52:24 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6a7b716ef"}}' + not found: livekvtestcertrec5a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:12 GMT + date: Fri, 06 Aug 2021 18:52:26 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec6a7b716ef"}}' + not found: livekvtestcertrec5a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:14 GMT + date: Fri, 06 Aug 2021 18:52:28 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef","deletedDate":1620434107,"scheduledPurgeDate":1628210107,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434011,"updated":1620434011}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5a7b716ef"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:16 GMT + date: Fri, 06 Aug 2021 18:52:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef","deletedDate":1620434116,"scheduledPurgeDate":1628210116,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434010,"updated":1620434010,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434010,"updated":1620434010}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec5a7b716ef"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:16 GMT + date: Fri, 06 Aug 2021 18:52:32 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4a7b716ef"}}' + not found: livekvtestcertrec5a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:16 GMT + date: Fri, 06 Aug 2021 18:52:34 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4a7b716ef"}}' + not found: livekvtestcertrec5a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:18 GMT + date: Fri, 06 Aug 2021 18:52:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4a7b716ef"}}' + not found: livekvtestcertrec5a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:20 GMT + date: Fri, 06 Aug 2021 18:52:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec4a7b716ef"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef","deletedDate":1628275942,"scheduledPurgeDate":1636051942,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275834,"updated":1628275834,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275834,"updated":1628275834}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:22 GMT + date: Fri, 06 Aug 2021 18:52:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef","deletedDate":1620434116,"scheduledPurgeDate":1628210116,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434010,"updated":1620434010,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434010,"updated":1620434010}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef","deletedDate":1628275961,"scheduledPurgeDate":1636051961,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275834,"updated":1628275834,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275834,"updated":1628275834}}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:24 GMT + date: Fri, 06 Aug 2021 18:52:41 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef","deletedDate":1620434124,"scheduledPurgeDate":1628210124,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434008,"updated":1620434008,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434008,"updated":1620434008}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6a7b716ef"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:24 GMT + date: Fri, 06 Aug 2021 18:52:41 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0a7b716ef"}}' + not found: livekvtestcertrec6a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:24 GMT + date: Fri, 06 Aug 2021 18:52:43 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0a7b716ef"}}' + not found: livekvtestcertrec6a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:26 GMT + date: Fri, 06 Aug 2021 18:52:44 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0a7b716ef"}}' + not found: livekvtestcertrec6a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:29 GMT + date: Fri, 06 Aug 2021 18:52:47 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0a7b716ef"}}' + not found: livekvtestcertrec6a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:31 GMT + date: Fri, 06 Aug 2021 18:52:49 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0a7b716ef"}}' + not found: livekvtestcertrec6a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:33 GMT + date: Fri, 06 Aug 2021 18:52:51 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertrec0a7b716ef"}}' + not found: livekvtestcertrec6a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:34 GMT + date: Fri, 06 Aug 2021 18:52:53 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef","deletedDate":1620434124,"scheduledPurgeDate":1628210124,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434008,"updated":1620434008,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434008,"updated":1620434008}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertrec6a7b716ef"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:36 GMT + date: Fri, 06 Aug 2021 18:52:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef","deletedDate":1620434137,"scheduledPurgeDate":1628210137,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b716ef/51dc8404457b4fd895af0bd26470ad5f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b716ef/51dc8404457b4fd895af0bd26470ad5f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b716ef/51dc8404457b4fd895af0bd26470ad5f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434013,"updated":1620434013,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434013,"updated":1620434013}}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef","deletedDate":1628275961,"scheduledPurgeDate":1636051961,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275834,"updated":1628275834,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275834,"updated":1628275834}}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:36 GMT + date: Fri, 06 Aug 2021 18:52:57 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg4a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b716ef"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef","deletedDate":1628275978,"scheduledPurgeDate":1636051978,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef/d75e839e04f64ce499a0cb8078b5634e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b716ef/d75e839e04f64ce499a0cb8078b5634e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b716ef/d75e839e04f64ce499a0cb8078b5634e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275835,"updated":1628275835,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275835,"updated":1628275835}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:37 GMT + date: Fri, 06 Aug 2021 18:52:57 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b716ef"}}' + not found: livekvtestcertprg0a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:38 GMT + date: Fri, 06 Aug 2021 18:52:57 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b716ef"}}' + not found: livekvtestcertprg0a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:40 GMT + date: Fri, 06 Aug 2021 18:53:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b716ef"}}' + not found: livekvtestcertprg0a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:42 GMT + date: Fri, 06 Aug 2021 18:53:02 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg4a7b716ef"}}' + not found: livekvtestcertprg0a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:45 GMT + date: Fri, 06 Aug 2021 18:53:04 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef","deletedDate":1620434137,"scheduledPurgeDate":1628210137,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b716ef/51dc8404457b4fd895af0bd26470ad5f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b716ef/51dc8404457b4fd895af0bd26470ad5f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b716ef/51dc8404457b4fd895af0bd26470ad5f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434013,"updated":1620434013,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434013,"updated":1620434013}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0a7b716ef"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:47 GMT + date: Fri, 06 Aug 2021 18:53:06 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef","deletedDate":1620434147,"scheduledPurgeDate":1628210147,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef/e3c8d6af7481422c8e039c49c59b13d0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b716ef/e3c8d6af7481422c8e039c49c59b13d0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b716ef/e3c8d6af7481422c8e039c49c59b13d0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434012,"updated":1620434012,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434012,"updated":1620434012}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg0a7b716ef"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:47 GMT + date: Fri, 06 Aug 2021 18:53:08 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg1a7b716ef?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1a7b716ef"}}' + not found: livekvtestcertprg0a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:47 GMT + date: Fri, 06 Aug 2021 18:53:09 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1a7b716ef"}}' + not found: livekvtestcertprg0a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:49 GMT + date: Fri, 06 Aug 2021 18:53:12 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1a7b716ef"}}' + not found: livekvtestcertprg0a7b716ef"}}' headers: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:51 GMT + date: Fri, 06 Aug 2021 18:53:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1a7b716ef"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef","deletedDate":1628275978,"scheduledPurgeDate":1636051978,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef/d75e839e04f64ce499a0cb8078b5634e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg0a7b716ef/d75e839e04f64ce499a0cb8078b5634e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg0a7b716ef/d75e839e04f64ce499a0cb8078b5634e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275835,"updated":1628275835,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275835,"updated":1628275835}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:53 GMT + date: Fri, 06 Aug 2021 18:53:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate - not found: livekvtestcertprg1a7b716ef"}}' + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef","deletedDate":1628275997,"scheduledPurgeDate":1636051997,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef/8816802e1b65491faf17e18d2bcd486f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b716ef/8816802e1b65491faf17e18d2bcd486f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b716ef/8816802e1b65491faf17e18d2bcd486f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275835,"updated":1628275835,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275835,"updated":1628275835}}}' headers: cache-control: no-cache - content-length: '110' + content-length: '2457' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:56 GMT + date: Fri, 06 Aug 2021 18:53:17 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg1a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 response: @@ -3407,14 +3344,14 @@ interactions: cache-control: no-cache content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:35:58 GMT + date: Fri, 06 Aug 2021 18:53:17 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 @@ -3426,28 +3363,29 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 response: body: - string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef","deletedDate":1620434147,"scheduledPurgeDate":1628210147,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef/e3c8d6af7481422c8e039c49c59b13d0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b716ef/e3c8d6af7481422c8e039c49c59b13d0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b716ef/e3c8d6af7481422c8e039c49c59b13d0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434012,"updated":1620434012,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434012,"updated":1620434012}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b716ef"}}' headers: cache-control: no-cache - content-length: '2014' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:00 GMT + date: Fri, 06 Aug 2021 18:53:19 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK + code: 404 + message: Not Found url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 - request: body: null @@ -3455,1998 +3393,5250 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcert1cec1cd4","deletedDate":1620434139,"scheduledPurgeDate":1628210139,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1cec1cd4","x5t":"taNHgmtnc4NLdtGvrzYS8ot7nC4","attributes":{"enabled":true,"nbf":1620433534,"exp":1683506134,"created":1620434135,"updated":1620434135,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcert79f91636","deletedDate":1620433848,"scheduledPurgeDate":1628209848,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert79f91636","x5t":"UIHNGBKI6d3gOVWuRU0xanHMMb4","attributes":{"enabled":true,"nbf":1620433246,"exp":1651969846,"created":1620433846,"updated":1620433848,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1620433730,"scheduledPurgeDate":1628209730,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"zoS3gO5weGAuhGwb_cCI3MTBQcQ","attributes":{"enabled":true,"nbf":1620433126,"exp":1651969726,"created":1620433726,"updated":1620433730,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef","deletedDate":1620434065,"scheduledPurgeDate":1628210065,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef","deletedDate":1620434147,"scheduledPurgeDate":1628210147,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434012,"updated":1620434012,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITVVFM1FqY3hOa1ZHTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b716ef"}}' headers: cache-control: no-cache - content-length: '2574' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:00 GMT + date: Fri, 06 Aug 2021 18:53:21 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITVVFM1FqY3hOa1ZHTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef","deletedDate":1620434027,"scheduledPurgeDate":1628210027,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434012,"updated":1620434012,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef","deletedDate":1620434055,"scheduledPurgeDate":1628210055,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434013,"updated":1620434013,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef","deletedDate":1620434137,"scheduledPurgeDate":1628210137,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434013,"updated":1620434013,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef","deletedDate":1620434099,"scheduledPurgeDate":1628210099,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434014,"updated":1620434014,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef","deletedDate":1620434044,"scheduledPurgeDate":1628210044,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434014,"updated":1620434014,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef","deletedDate":1620434124,"scheduledPurgeDate":1628210124,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434008,"updated":1620434008,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef","deletedDate":1620434036,"scheduledPurgeDate":1628210036,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434009,"updated":1620434009,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef","deletedDate":1620434086,"scheduledPurgeDate":1628210086,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434009,"updated":1620434009,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef","deletedDate":1620434076,"scheduledPurgeDate":1628210076,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434010,"updated":1620434010,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef","deletedDate":1620434116,"scheduledPurgeDate":1628210116,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434010,"updated":1620434010,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef","deletedDate":1620434015,"scheduledPurgeDate":1628210015,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef","deletedDate":1620434107,"scheduledPurgeDate":1628210107,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRVeU1ERXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b716ef"}}' headers: cache-control: no-cache - content-length: '5662' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:00 GMT + date: Fri, 06 Aug 2021 18:53:23 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVRkpITVVFM1FqY3hOa1ZHTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRVeU1ERXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 response: body: - string: '{"value":[],"nextLink":null}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b716ef"}}' headers: cache-control: no-cache - content-length: '28' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:00 GMT + date: Fri, 06 Aug 2021 18:53:25 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVEUxTVRVeU1ERXpMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef/recover?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434011,"updated":1620434011}}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b716ef"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:01 GMT + date: Fri, 06 Aug 2021 18:53:27 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef/recover?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b716ef"}}' headers: cache-control: no-cache - content-length: '338' + content-length: '110' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:01 GMT + date: Fri, 06 Aug 2021 18:53:29 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:31 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg1a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:33 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef","deletedDate":1628275997,"scheduledPurgeDate":1636051997,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef/8816802e1b65491faf17e18d2bcd486f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg1a7b716ef/8816802e1b65491faf17e18d2bcd486f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg1a7b716ef/8816802e1b65491faf17e18d2bcd486f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275835,"updated":1628275835,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275835,"updated":1628275835}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:35 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef","deletedDate":1628276015,"scheduledPurgeDate":1636052015,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef/91266c66435f4717a39c62204bf8a636","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b716ef/91266c66435f4717a39c62204bf8a636","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b716ef/91266c66435f4717a39c62204bf8a636","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275835,"updated":1628275835,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275835,"updated":1628275835}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:35 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg2a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:35 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:39 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:41 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:43 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:46 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:48 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:50 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg2a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:52 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef","deletedDate":1628276015,"scheduledPurgeDate":1636052015,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef/91266c66435f4717a39c62204bf8a636","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg2a7b716ef/91266c66435f4717a39c62204bf8a636","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg2a7b716ef/91266c66435f4717a39c62204bf8a636","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275835,"updated":1628275835,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275835,"updated":1628275835}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b716ef?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef","deletedDate":1628276034,"scheduledPurgeDate":1636052034,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b716ef/d964b2a1320f4a56b28ea42fe5539e0a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b716ef/d964b2a1320f4a56b28ea42fe5539e0a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b716ef/d964b2a1320f4a56b28ea42fe5539e0a","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275836,"updated":1628275836,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275836,"updated":1628275836}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg3a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:56 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:53:58 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:00 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:02 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:04 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:06 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:09 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:11 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg3a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:13 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef","deletedDate":1628276034,"scheduledPurgeDate":1636052034,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b716ef/d964b2a1320f4a56b28ea42fe5539e0a","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg3a7b716ef/d964b2a1320f4a56b28ea42fe5539e0a","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg3a7b716ef/d964b2a1320f4a56b28ea42fe5539e0a","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275836,"updated":1628275836,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275836,"updated":1628275836}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:15 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b716ef?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef","deletedDate":1628276055,"scheduledPurgeDate":1636052055,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b716ef/09a88eec761846b085a4a29bd4ee5dcb","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b716ef/09a88eec761846b085a4a29bd4ee5dcb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b716ef/09a88eec761846b085a4a29bd4ee5dcb","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275839,"updated":1628275839,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275839,"updated":1628275839}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:15 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg4a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:15 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:17 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:19 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:21 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:23 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:25 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:32 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg4a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:34 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef","deletedDate":1628276055,"scheduledPurgeDate":1636052055,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b716ef/09a88eec761846b085a4a29bd4ee5dcb","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg4a7b716ef/09a88eec761846b085a4a29bd4ee5dcb","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg4a7b716ef/09a88eec761846b085a4a29bd4ee5dcb","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275839,"updated":1628275839,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275839,"updated":1628275839}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:36 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b716ef?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef","deletedDate":1628276076,"scheduledPurgeDate":1636052076,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b716ef/385f49c207b54a41b7898fe352eca2c7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b716ef/385f49c207b54a41b7898fe352eca2c7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b716ef/385f49c207b54a41b7898fe352eca2c7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275840,"updated":1628275840,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275840,"updated":1628275840}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:36 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg5a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:36 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:38 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:40 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:43 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:44 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:46 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:48 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:50 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:52 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg5a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:54 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef","deletedDate":1628276076,"scheduledPurgeDate":1636052076,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b716ef/385f49c207b54a41b7898fe352eca2c7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg5a7b716ef/385f49c207b54a41b7898fe352eca2c7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg5a7b716ef/385f49c207b54a41b7898fe352eca2c7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275840,"updated":1628275840,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275840,"updated":1628275840}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:57 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef","deletedDate":1628276097,"scheduledPurgeDate":1636052097,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef/593c7184f10a476483aacc6779cf2a09","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b716ef/593c7184f10a476483aacc6779cf2a09","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b716ef/593c7184f10a476483aacc6779cf2a09","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275840,"updated":1628275840,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275840,"updated":1628275840}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:57 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertprg6a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:57 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:54:59 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:00 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:03 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:06 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:08 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:10 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:12 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"Deleted Certificate + not found: livekvtestcertprg6a7b716ef"}}' + headers: + cache-control: no-cache + content-length: '110' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:14 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef","deletedDate":1628276097,"scheduledPurgeDate":1636052097,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef/593c7184f10a476483aacc6779cf2a09","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertprg6a7b716ef/593c7184f10a476483aacc6779cf2a09","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertprg6a7b716ef/593c7184f10a476483aacc6779cf2a09","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275840,"updated":1628275840,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275840,"updated":1628275840}}}' + headers: + cache-control: no-cache + content-length: '2457' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:16 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: no-cache + content-length: '323' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:16 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: no-cache + content-length: '323' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:16 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1628271087,"scheduledPurgeDate":1636047087,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"RC8tFJZPwOeZWUeGE9sGSFTbczM","attributes":{"enabled":true,"nbf":1628270484,"exp":1659807084,"created":1628271084,"updated":1628271087,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef","deletedDate":1628275978,"scheduledPurgeDate":1636051978,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg0a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275835,"updated":1628275835,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef","deletedDate":1628275997,"scheduledPurgeDate":1636051997,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg1a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275835,"updated":1628275835,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef","deletedDate":1628276015,"scheduledPurgeDate":1636052015,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg2a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275835,"updated":1628275835,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef","deletedDate":1628276034,"scheduledPurgeDate":1636052034,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg3a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275836,"updated":1628275836,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef","deletedDate":1628276055,"scheduledPurgeDate":1636052055,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg4a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275839,"updated":1628275839,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef","deletedDate":1628276076,"scheduledPurgeDate":1636052076,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg5a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275840,"updated":1628275840,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef","deletedDate":1628276097,"scheduledPurgeDate":1636052097,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertprg6a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275840,"updated":1628275840,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef","deletedDate":1628275840,"scheduledPurgeDate":1636051840,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275831,"updated":1628275831,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETUVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: no-cache + content-length: '4321' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:16 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETUVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef","deletedDate":1628275859,"scheduledPurgeDate":1636051859,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275832,"updated":1628275832,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef","deletedDate":1628275878,"scheduledPurgeDate":1636051878,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275832,"updated":1628275832,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef","deletedDate":1628275897,"scheduledPurgeDate":1636051897,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275833,"updated":1628275833,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkRJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: no-cache + content-length: '1650' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:16 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETUVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkRJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef","deletedDate":1628275917,"scheduledPurgeDate":1636051917,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275833,"updated":1628275833,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef","deletedDate":1628275942,"scheduledPurgeDate":1636051942,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275834,"updated":1628275834,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef","deletedDate":1628275961,"scheduledPurgeDate":1636051961,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275834,"updated":1628275834,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJURkJOVGt2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + headers: + cache-control: no-cache + content-length: '1650' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:17 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkRJd016a3hORGN3TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJURkJOVGt2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + response: + body: + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVpCUkRBeU1UazBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + headers: + cache-control: no-cache + content-length: '371' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:17 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVWa1ZTTnpNeFJURkJOVGt2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVpCUkRBeU1UazBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + response: + body: + string: '{"value":[],"nextLink":null}' + headers: + cache-control: no-cache + content-length: '28' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:17 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNTIhTURBd01EWTVJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFJRUVZOVFYwOVNSRVZPUTA5RVJVUkRSVkpVU1VaSlEwRlVSVVpCUkRBeU1UazBMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef/recover?api-version=7.2 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275831,"updated":1628275831,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275831,"updated":1628275831}}}' + headers: + cache-control: no-cache + content-length: '2303' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:17 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef/recover?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:17 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:19 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:21 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:23 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:26 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:28 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:32 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec0a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:34 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275831,"updated":1628275831,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275831,"updated":1628275831}}}' + headers: + cache-control: no-cache + content-length: '2303' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:36 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef/recover?api-version=7.2 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275832,"updated":1628275832,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275832,"updated":1628275832}}}' + headers: + cache-control: no-cache + content-length: '2303' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:36 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef/recover?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:36 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:38 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:40 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:42 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:44 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:47 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:49 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:51 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:53 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec1a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:55 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275832,"updated":1628275832,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275832,"updated":1628275832}}}' + headers: + cache-control: no-cache + content-length: '2303' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:57 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef/recover?api-version=7.2 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275832,"updated":1628275832,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275832,"updated":1628275832}}}' + headers: + cache-control: no-cache + content-length: '2303' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:57 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef/recover?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:57 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:55:59 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:56:01 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:56:03 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:56:05 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec2a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:03 GMT + date: Fri, 06 Aug 2021 18:56:07 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:56:10 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:56:12 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:56:14 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec2a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:56:16 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275832,"updated":1628275832,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275832,"updated":1628275832}}}' + headers: + cache-control: no-cache + content-length: '2303' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:56:18 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef/recover?api-version=7.2 + response: + body: + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275833,"updated":1628275833,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275833,"updated":1628275833}}}' + headers: + cache-control: no-cache + content-length: '2303' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:56:18 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef/recover?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:56:18 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:56:20 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + response: + body: + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + headers: + cache-control: no-cache + content-length: '338' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:56:22 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec3a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:05 GMT + date: Fri, 06 Aug 2021 18:56:24 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec3a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:07 GMT + date: Fri, 06 Aug 2021 18:56:26 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434011,"updated":1620434011}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:09 GMT + date: Fri, 06 Aug 2021 18:56:29 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef/recover?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434009,"updated":1620434009,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434009,"updated":1620434009}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec3a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:09 GMT + date: Fri, 06 Aug 2021 18:56:31 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec1a7b716ef/recover?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec3a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:09 GMT + date: Fri, 06 Aug 2021 18:56:33 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b716ef was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275833,"updated":1628275833,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275833,"updated":1628275833}}}' headers: cache-control: no-cache - content-length: '338' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:11 GMT + date: Fri, 06 Aug 2021 18:56:34 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef/recover?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b716ef was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275833,"updated":1628275833,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275833,"updated":1628275833}}}' headers: cache-control: no-cache - content-length: '338' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:13 GMT + date: Fri, 06 Aug 2021 18:56:35 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef/recover?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:15 GMT + date: Fri, 06 Aug 2021 18:56:35 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec1a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:17 GMT + date: Fri, 06 Aug 2021 18:56:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434009,"updated":1620434009,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434009,"updated":1620434009}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:19 GMT + date: Fri, 06 Aug 2021 18:56:38 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef/recover?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434010,"updated":1620434010,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434010,"updated":1620434010}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec4a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:19 GMT + date: Fri, 06 Aug 2021 18:56:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec3a7b716ef/recover?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:19 GMT + date: Fri, 06 Aug 2021 18:56:42 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:21 GMT + date: Fri, 06 Aug 2021 18:56:45 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:23 GMT + date: Fri, 06 Aug 2021 18:56:47 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:26 GMT + date: Fri, 06 Aug 2021 18:56:49 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:28 GMT + date: Fri, 06 Aug 2021 18:56:51 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec4a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:30 GMT + date: Fri, 06 Aug 2021 18:56:53 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b716ef was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275833,"updated":1628275833,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275833,"updated":1628275833}}}' headers: cache-control: no-cache - content-length: '338' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:32 GMT + date: Fri, 06 Aug 2021 18:56:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef/recover?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec3a7b716ef was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275834,"updated":1628275834,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275834,"updated":1628275834}}}' headers: cache-control: no-cache - content-length: '338' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:34 GMT + date: Fri, 06 Aug 2021 18:56:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec5a7b716ef/recover?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434010,"updated":1620434010,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434010,"updated":1620434010}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:35 GMT + date: Fri, 06 Aug 2021 18:56:55 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef/recover?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434009,"updated":1620434009,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434009,"updated":1620434009}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:36 GMT + date: Fri, 06 Aug 2021 18:56:57 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec2a7b716ef/recover?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:36 GMT + date: Fri, 06 Aug 2021 18:57:00 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:39 GMT + date: Fri, 06 Aug 2021 18:57:02 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:40 GMT + date: Fri, 06 Aug 2021 18:57:04 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:42 GMT + date: Fri, 06 Aug 2021 18:57:06 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec2a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:45 GMT + date: Fri, 06 Aug 2021 18:57:08 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434009,"updated":1620434009,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434009,"updated":1620434009}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:46 GMT + date: Fri, 06 Aug 2021 18:57:10 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef/recover?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434011,"updated":1620434011}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:47 GMT + date: Fri, 06 Aug 2021 18:57:12 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef/recover?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:47 GMT + date: Fri, 06 Aug 2021 18:57:14 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:48 GMT + date: Fri, 06 Aug 2021 18:57:16 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:51 GMT + date: Fri, 06 Aug 2021 18:57:18 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:53 GMT + date: Fri, 06 Aug 2021 18:57:20 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:55 GMT + date: Fri, 06 Aug 2021 18:57:22 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec6a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec5a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:58 GMT + date: Fri, 06 Aug 2021 18:57:24 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434011,"updated":1620434011}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275834,"updated":1628275834,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275834,"updated":1628275834}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:36:59 GMT + date: Fri, 06 Aug 2021 18:57:27 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef/recover?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef/recover?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434010,"updated":1620434010,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434010,"updated":1620434010}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275834,"updated":1628275834,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275834,"updated":1628275834}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:37:00 GMT + date: Fri, 06 Aug 2021 18:57:27 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec4a7b716ef/recover?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec6a7b716ef/recover?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec6a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:37:00 GMT + date: Fri, 06 Aug 2021 18:57:27 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec6a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:37:02 GMT + date: Fri, 06 Aug 2021 18:57:29 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec6a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:37:04 GMT + date: Fri, 06 Aug 2021 18:57:31 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec6a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:37:06 GMT + date: Fri, 06 Aug 2021 18:57:33 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec6a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:37:08 GMT + date: Fri, 06 Aug 2021 18:57:35 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec4a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec6a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:37:10 GMT + date: Fri, 06 Aug 2021 18:57:37 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434010,"updated":1620434010,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434010,"updated":1620434010}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec6a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:37:11 GMT + date: Fri, 06 Aug 2021 18:57:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef/recover?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434008,"updated":1620434008,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434008,"updated":1620434008}}}' + string: '{"error":{"code":"CertificateNotFound","message":"A certificate with + (name/id) livekvtestcertrec6a7b716ef was not found in this key vault. If you + recently deleted this certificate you may be able to recover it using the + correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:37:12 GMT + date: Fri, 06 Aug 2021 18:57:42 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertrec0a7b716ef/recover?api-version=7.2 + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec6a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:37:12 GMT + date: Fri, 06 Aug 2021 18:57:44 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 response: body: string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b716ef was not found in this key vault. If you + (name/id) livekvtestcertrec6a7b716ef was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' headers: cache-control: no-cache content-length: '338' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:37:14 GMT + date: Fri, 06 Aug 2021 18:57:46 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b716ef was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275834,"updated":1628275834,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275834,"updated":1628275834}}}' headers: cache-control: no-cache - content-length: '338' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:37:16 GMT + date: Fri, 06 Aug 2021 18:57:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b716ef was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '' headers: cache-control: no-cache - content-length: '338' - content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:37:18 GMT + date: Fri, 06 Aug 2021 18:57:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + code: 204 + message: No Content + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 response: body: - string: '{"error":{"code":"CertificateNotFound","message":"A certificate with - (name/id) livekvtestcertrec0a7b716ef was not found in this key vault. If you - recently deleted this certificate you may be able to recover it using the - correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182"}}' + string: '' headers: cache-control: no-cache - content-length: '338' - content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:37:20 GMT + date: Fri, 06 Aug 2021 18:57:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + code: 204 + message: No Content + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434008,"updated":1620434008,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434008,"updated":1620434008}}}' + string: '' headers: cache-control: no-cache - content-length: '1860' - content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:37:23 GMT + date: Fri, 06 Aug 2021 18:57:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 200 - message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + code: 204 + message: No Content + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 response: body: string: '' headers: cache-control: no-cache - date: Sat, 08 May 2021 00:37:23 GMT + date: Fri, 06 Aug 2021 18:57:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 204 message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg2a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 response: body: string: '' headers: cache-control: no-cache - date: Sat, 08 May 2021 00:37:23 GMT + date: Fri, 06 Aug 2021 18:57:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 204 message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 response: body: string: '' headers: cache-control: no-cache - date: Sat, 08 May 2021 00:37:23 GMT + date: Fri, 06 Aug 2021 18:57:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 204 message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg3a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 + uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 response: body: string: '' headers: cache-control: no-cache - date: Sat, 08 May 2021 00:37:23 GMT + date: Fri, 06 Aug 2021 18:57:48 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 204 message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg0a7b716ef?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg6a7b716ef?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2 response: body: - string: '' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' headers: cache-control: no-cache - date: Sat, 08 May 2021 00:37:24 GMT + content-length: '323' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:58:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 204 - message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg5a7b716ef?api-version=7.2 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedcertificates?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 response: body: - string: '' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' headers: cache-control: no-cache - date: Sat, 08 May 2021 00:37:24 GMT + content-length: '323' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:58:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 204 - message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg4a7b716ef?api-version=7.2 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVNamxHUVVJeE1FRTFMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 response: body: - string: '' + string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1628271087,"scheduledPurgeDate":1636047087,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"RC8tFJZPwOeZWUeGE9sGSFTbczM","attributes":{"enabled":true,"nbf":1628270484,"exp":1659807084,"created":1628271084,"updated":1628271087,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVVFM1FqY3hOa1ZHTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: no-cache - date: Sat, 08 May 2021 00:37:24 GMT + content-length: '793' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:58:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 204 - message: No Content - url: https://mcpatinokv.vault.azure.net/deletedcertificates/livekvtestcertprg1a7b716ef?api-version=7.2 + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXlJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVOakU0TkRneE16SXlMMUJQVEVsRFdTRXdNREF3TWpnaE9UazVPUzB4TWkwek1WUXlNem8xT1RvMU9TNDVPVGs1T1RrNVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/deletedcertificates?api-version=7.2 + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVVFM1FqY3hOa1ZHTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcert-named58b1f43","deletedDate":1620434280,"scheduledPurgeDate":1628210280,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert-named58b1f43","x5t":"1NjI8Uune_QGhYA6QpB-1RbBsbs","attributes":{"enabled":true,"nbf":1620433678,"exp":1683506278,"created":1620434278,"updated":1620434280,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"foo":"updated - tag"}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcert1cec1cd4","deletedDate":1620434139,"scheduledPurgeDate":1628210139,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert1cec1cd4","x5t":"taNHgmtnc4NLdtGvrzYS8ot7nC4","attributes":{"enabled":true,"nbf":1620433534,"exp":1683506134,"created":1620434135,"updated":1620434135,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}},{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcert79f91636","deletedDate":1620433848,"scheduledPurgeDate":1628209848,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcert79f91636","x5t":"UIHNGBKI6d3gOVWuRU0xanHMMb4","attributes":{"enabled":true,"nbf":1620433246,"exp":1651969846,"created":1620433846,"updated":1620433848,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSVEkxTXpFek5ERXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0"}' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: no-cache - content-length: '1693' + content-length: '328' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:38:14 GMT + date: Fri, 06 Aug 2021 18:58:39 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/deletedcertificates?api-version=7.2 + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETVVFM1FqY3hOa1ZHTDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSVEkxTXpFek5ERXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: - string: '{"value":[{"recoveryId":"https://vaultname.vault.azure.net/deletedcertificates/livekvtestcertf76813b9","deletedDate":1620433730,"scheduledPurgeDate":1628209730,"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertf76813b9","x5t":"zoS3gO5weGAuhGwb_cCI3MTBQcQ","attributes":{"enabled":true,"nbf":1620433126,"exp":1651969726,"created":1620433726,"updated":1620433730,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"tag1":"updated_value1"}}],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSVlRrdE9UMWRPU1ZOVFZVVlNRMFZTVkRFd09ERXlNREF4TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' + string: '{"value":[],"nextLink":"https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9"}' headers: cache-control: no-cache - content-length: '809' + content-length: '312' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:38:15 GMT + date: Fri, 06 Aug 2021 18:58:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTYhTURBd01EUXhJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVSVEkxTXpFek5ERXZVRTlNU1VOWklUQXdNREF5T0NFNU9UazVMVEV5TFRNeFZESXpPalU1T2pVNUxqazVPVGs1T1RsYUlRLS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0 + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMjAhTURBd01EUTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSRFJWSlVVa1ZETkVJME9FWXhOVVl6TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSVlRrdE9UMWRPU1ZOVFZVVlNRMFZTVkRFd09ERXlNREF4TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + uri: https://vaultname.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 response: body: string: '{"value":[],"nextLink":null}' @@ -5454,101 +8644,104 @@ interactions: cache-control: no-cache content-length: '28' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:38:15 GMT + date: Fri, 06 Aug 2021 18:58:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzIhTURBd01EVTBJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSVlRrdE9UMWRPU1ZOVFZVVlNRMFZTVkRFd09ERXlNREF4TDFCUFRFbERXU0V3TURBd01qZ2hPVGs1T1MweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrNU9UazVXaUUtIiwiVGFyZ2V0TG9jYXRpb24iOjB9 + url: https://mcpatinokv.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDghTURBd01ETTFJV05sY25ScFptbGpZWFJsTDB4SlZrVkxWbFJGVTFSSlRWQlBVbFF2VUU5TVNVTlpJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b716ef/21654fd9a5c944e5afcbc3cb0ca0582b","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434011,"updated":1620434011}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b716ef/4aa131f13d5f4423bff4cf422862301f","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275831,"updated":1628275831,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275831,"updated":1628275831}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:38:15 GMT + date: Fri, 06 Aug 2021 18:58:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b716ef/6a0ce110e39140bda7e26160490d211f","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434011,"updated":1620434011,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434011,"updated":1620434011}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b716ef/923b08a2b67047adb8cd3e6ebe7d06a4","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275832,"updated":1628275832,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275832,"updated":1628275832}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:38:15 GMT + date: Fri, 06 Aug 2021 18:58:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b716ef/99f424bbb98241a191915f6593153ba0","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434009,"updated":1620434009,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434009,"updated":1620434009}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec2a7b716ef/c60deff820124421a5601f3b245ad02e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275832,"updated":1628275832,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec2a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275832,"updated":1628275832}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:38:15 GMT + date: Fri, 06 Aug 2021 18:58:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -5560,53 +8753,55 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec1a7b716ef/9760b79a89ac425da205681d3261cdb6","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434009,"updated":1620434009,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434009,"updated":1620434009}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b716ef/90818e3867b449bd939a6c413747d047","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275833,"updated":1628275833,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275833,"updated":1628275833}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:38:15 GMT + date: Fri, 06 Aug 2021 18:58:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec1a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b716ef/2fe1c37acb8a4b3b845c78fdff021d39","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434010,"updated":1620434010,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434010,"updated":1620434010}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec4a7b716ef/bbe15a1ef8544e6ea26f28c2cd3c0b6e","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275833,"updated":1628275833,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec4a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275833,"updated":1628275833}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:38:15 GMT + date: Fri, 06 Aug 2021 18:58:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 @@ -5618,56 +8813,58 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec0a7b716ef/81c33beaa786418490c94ee1fb827f9d","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434008,"updated":1620434008,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434008,"updated":1620434008}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec5a7b716ef/9fd5f7d0cd9e4298882ca17fb1cb31a6","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275834,"updated":1628275834,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275834,"updated":1628275834}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:38:15 GMT + date: Fri, 06 Aug 2021 18:58:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec0a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec5a7b716ef/?api-version=7.2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-certificates/4.3.0b1 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-certificates/4.3.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + uri: https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 response: body: - string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec3a7b716ef/a4c2cacdb4934bea90b3aee9e5b35e24","x5t":"fLi3U52HunIVNXubkEnf8tP6Wbo","cer":"MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=","attributes":{"enabled":true,"nbf":1430344421,"exp":2208988799,"created":1620434010,"updated":1620434010,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"CN=KeyVaultTest","ekus":[],"key_usage":[],"validity_months":297,"basic_constraints":{"ca":false}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1620434010,"updated":1620434010}}}' + string: '{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","kid":"https://vaultname.vault.azure.net/keys/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","sid":"https://vaultname.vault.azure.net/secrets/livekvtestcertrec6a7b716ef/a34764d4e06d44d5bfadc5123cc3c4b7","x5t":"7Hd8wjMNV61gvzAY4LfCGxWwi_I","cer":"MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM++kdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s+2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK+sVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o+yFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o+yFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i+nCZurqu4iUI7qvBoH+XvLnU/6GRZsWqPDDM+WE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/+R/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95+9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=","attributes":{"enabled":true,"nbf":1628270437,"exp":4781870437,"created":1628275834,"updated":1628275834,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"policy":{"id":"https://vaultname.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/policy","key_props":{"exportable":true,"kty":"RSA","key_size":2048,"reuse_key":false},"secret_props":{"contentType":"application/x-pkcs12"},"x509_props":{"subject":"O=Internet + Widgits Pty Ltd, S=Some-State, C=AU","ekus":[],"key_usage":[],"validity_months":1200,"basic_constraints":{"ca":true}},"lifetime_actions":[{"trigger":{"lifetime_percentage":80},"action":{"action_type":"AutoRenew"}}],"issuer":{"name":"Self"},"attributes":{"enabled":true,"created":1628275834,"updated":1628275834}}}' headers: cache-control: no-cache - content-length: '1860' + content-length: '2303' content-type: application/json; charset=utf-8 - date: Sat, 08 May 2021 00:38:15 GMT + date: Fri, 06 Aug 2021 18:58:40 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; x-ms-keyvault-region: westus2 - x-ms-keyvault-service-version: 1.2.265.0 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 200 message: OK - url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec3a7b716ef/?api-version=7.2 + url: https://mcpatinokv.vault.azure.net/certificates/livekvtestcertrec6a7b716ef/?api-version=7.2 version: 1 diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client.py b/sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client.py index b2a92458d739..c6d342232467 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client.py +++ b/sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client.py @@ -41,6 +41,10 @@ only_2016_10_01 = get_decorator(api_versions=[ApiVersion.V2016_10_01]) +CERT_CONTENT_PASSWORD_ENCODED = b'0\x82\t\xb1\x02\x01\x030\x82\tw\x06\t*\x86H\x86\xf7\r\x01\x07\x01\xa0\x82\th\x04\x82\td0\x82\t`0\x82\x04\x17\x06\t*\x86H\x86\xf7\r\x01\x07\x06\xa0\x82\x04\x080\x82\x04\x04\x02\x01\x000\x82\x03\xfd\x06\t*\x86H\x86\xf7\r\x01\x07\x010\x1c\x06\n*\x86H\x86\xf7\r\x01\x0c\x01\x060\x0e\x04\x08X\xb2\x8c\xa9\xed\x830\xd7\x02\x02\x08\x00\x80\x82\x03\xd0\xd7\xf2Au\xa4\x18\xcbL\x8c&\xbd\x07\x01\xb6C\xadse\xb6\xc6C \xa85\xee}\xc9<6uU\x9b\x03xK\xb8\xc6\x8e\xc6\xbb\x12\xfb\x96\x03\x89\x15a\xcb\xff5\xe5i\xecKnqG\x88\xee\xd9c}\xea?\x19\x17\xbd\x035\x87\xf2O_\x12-\x1aJ\xc5\xadf\xa4\xf15\x18\xa4Cb\x86\xb1\xf5,\xb8\xb3\'nX\x9c\x18\x19\xce\xbf\xfa\xb0g!\x1a y\xb1;|\xa9@\xe5\x90\x92\xb1\xe0vJD\x06\xf7|\xac\x9a\x11k\x86Jl\xe1K\xdaa\xb0\xb2GY^\xb9>\xdb9`\x1b^~\xd9\xb5\xebx\xe8\x9c\xf8X\xab\xa7\xe4\xdc\x8a!{V\xa6C\xbc\xb2\x0b2\xdbK\xaeBJ\x92\x8den8\xa6\xba\x9c$dg\x98\x98\xfeF\xf7\x02E\x91\xa8\xae\xec\x9c\x1b}\xf7\x806\xd6B\x86\xf1\xf6T\xeb\xbd\x03\xc3[7\xb6,m.Q6X<\x18\x9d\xbd\xdfP\xb2s\x9a\xd4\xd7bL\x9aDV\xd6\xa0RO\x1e\xb3\xcc\xbb\xd2\xbde\x04\xd8\xfde\xd3pT\xa3\xda\xa8\x10R]9I\x03\x81\x88\x9a;n}dU?\x97M:\xc2?\x93\x84,\xed/\xbd\xa2\x14W\xda&3\x0b\x9a\xf6\x85\x1e\x81h\x12\xd0i\x00\x0e\x1b\xdc\xee\r\x8f\x90\x9c9\xba\n\x16\xdbs\x05\xac\xb3\xd4\xec\x9bv0\xb5\xe7\x04]\xdd\x86\xee\xb1\x91\xfe\xcd0`\x9a\xd3}\xf4:}\xa8\x03.+\xbbx\xec"\xa2\xa4\xaf\x1c3\xdb\xab\x91\xac<\xf8g-\x86\xdeU\x1bp\xf6\x8f\xed>\xc8a\xdb\xb8\xe0O\xf5\xdf\xd7M\xc4vo\xa0k\x91\x16\xa5\x88I\xb8\xf9\x9eF9\xa5\xc4\x14\xae\x01\x99:\x93\x9e\xf7(&9\'\x94U\x8e\xdd \x9cE)n\xd7\xd4\xed\xcd\x97\x82\xe9\xa1\xa2\x96\xe3i\xd33\xbcn\xa1T8;\xf1\xa0j\x91\xea\xbe\x0c\x8a\x8e$\xb3/\xdc\xebE\x90\x17\x12\x9a\xca@\x04\x0c\t\xba\xdebk\xb3x\x9a\x17:\xe8*`Op\x1e\x91\'x\xf5\xa9+\xb1\xa9\x03\xed0\x00\x9d\xe0\xb2\xa1Dh\xb4\xba<\x05\x175\xaaW\xe5\xa7\xfdT\xfa\xd9zpA`U\x08\xc4\xf5\'\xe2\xe2s\xfa\x9d\x8f\x18\xc5\x80\xf7A\xf89{\xf8y9P\xdaZ\xaa\x12\xa0\xd8g\x93.\xc2\xd20\xb7\xab\xc7\xd4S\xbb\x87a\xaa\x88\xc6\xd57\xf7$M*d\x14\xa6\x94n\xc8\xaa\x11"\x9f\xcc>\xf5\xd9\x8c\x8d*k\n)M={g7I\xa8\x02\to3">\xe4\x82\xca\xda\r\xc2\xae\xbe\xa3\xaa\x8es\x12^\\h\xf8\xc8\rq\xa62Hp34\xec\x86\xd01\xb9\xfc\xf2s]\x12R\xa2\xa6ijKw:\xc0\xee{/L\xd1J\xf6\xeb\x04,T\xb9R8\x077U}\x11.\xc6o\x8az\xfdih\x04\xb8\xe2\xb72\x81\x1c\xecDj\xfd\x80J\x1e{\xf2:V\x03[\x1a0\x95\xd3\xc1\xfcR!y+O\xd5l\xdfw\xf8KZy\xf3P\x05\xa54|R\xd9Q\xfdg\xc4\xc8-\x812J\xa9M\xa4\xbb\xf7zG\xcd\x81\xff\x82\xd6\x089\xef\\\x00U\t\x0f\xb5Z`y\x8du3\xc1\x80\x05Uq\xea\xa5\x96\xc6tN\xea+\xae\xb7\x19\x1b\xd3\xd0"\r\xd8\\%\x8d\x93\x13\xb5\x83W\t\x03\xbaN[\x1eT\xb5\xfc\n\xb2\xdd\xc4h\xa8&\x89|\xe4\xd5\xab\x8fv\x12\x0f\xff\xe0\x1bp\xec\xd1\x18\x87\xfbG\xd7r\xe3z\xee)\xf6D-\xd6)\xf6\x94\t\xc5\x13\xba\xbe\xf5M\xab\xb6\x7f~\xd2Y\x9fE\xaf3\x87B\xa2U\xa0\xff\xdd)1\xb5P\x9f0\x82\x05A\x06\t*\x86H\x86\xf7\r\x01\x07\x01\xa0\x82\x052\x04\x82\x05.0\x82\x05*0\x82\x05&\x06\x0b*\x86H\x86\xf7\r\x01\x0c\n\x01\x02\xa0\x82\x04\xee0\x82\x04\xea0\x1c\x06\n*\x86H\x86\xf7\r\x01\x0c\x01\x030\x0e\x04\x08\x00\xc9N\x15u\x14D\xf1\x02\x02\x08\x00\x04\x82\x04\xc8V.\xb2P\x8f\xab+k\xd2m\xc0\xbc\x1aS$\xc9\xb7Rk\xfd\xe1x:\xcf\xe9a\x97\xaa\x10\xfc)_W\xb4\xc1iF\xf5\x82\xf35\xdb>\xfe\x85&\xee\xc9\x97\xc5\'\t\xbf\xac\xae\\\xdb\xc0GV\x96K\xe7;\xde\x86xQ\x00\xb8\xed\xeb\xbc\x88\x11XL\x9az\x9eJ\xffO!\x1e\xc5\xd6\xbc\xeb\x18\x11\x97\x95\xed\xe2\xd8\xc0\xb3\r\x00\xf7\xf9\x04C\xfem\xc7P_\xd6\x0f\xd2\xcb\xc7\xd44\xb9\xc5\x1fw>"\xd2\xad;!\xb4@\x0bP\xcf\xff\x19&\x03k\xaa\x8b\xfc\xd6X\x87^s}mv\xa6\xf2G\xbb@\xda\x152]zU\x1b\x96q\xc7!\xee\xc2Q\x05dG\x07\xa6\xc1\xe7\rN4\xe6(x\xe7\xe5\xa1p\x0f\x91\xec#:o\x0c\xcb\xb1\x17\xf5M\x9e\xcb\x8f\x1d\xc5\xc3\xce<\x1bD:\x93\x83\xaf:drZ\xd0\x80?\xfb($#\xef\xb8\xe5\xe7"\xf2W8\x93d\x0e\xdb\xf9\x17*\x10\x17\xecrk\xd8\x1fo\xa6\xbe\xb7\xf9\x1b\xc0qa3^-\xea\xbc\x82g\x9d\xb9\x7f\xce\x8f\x12,\xdc~(\xd3\x0e\xf7D\xd8MD\xa8VenpU\x08|\t\xf5\xe2nr4\xb1^j`\xb2V\xdd\xae\x83Gf\x93\r\x03\xe6\xc3f*\xa0r\x07\x0e\x1c\xf2\xbe1\xa1;(J"D\xa9\t\xed\x0e\x13\xddu\x9f\xac\xba\x83h\x0bE\x9a\x12\r\'\x0e\xc7\x99+\x9e\x96,\x8e\x10\xcfG\xbdQ\xda\xf0"\x80\xd4\x83<\xc5\xd1\x7f\x9e\xbb\x06\x11\x8a\xf0\xfce-=\xa1ueq\x01\xa1\xe1N\xd7!\xfe\xe8\x99\x13\xd9,\x86o7\xa2\xd8\xa0\x02J\x1a\xaef\x91j&\xf1\xfa\x81+qd\xfehh\xe4\xf4P\x816\x10\xac\xfd\xfbj^M\xa8D\xe5r\xf7/\xb5\xe6\xab\xf5*{;\x11(\xe0A\xb1\x1f\xaeM z\xc3\xc7V\x9b\x07\x9ajZ\x010\xbdbF\xc3I,1md\xf2o\x8b\xbc\xd62\xad1\x8dLh/{\xa50\x9f#?o\xee\xd6k\xa6\xd2\\\xa5;n\x88\x16\xa8;W\xbe8\x81+u\x14\xf1\xd1\xebl\xf0\x1bl\xd5\xd9\xbea\xbb_\xe16xWxOJ2\xc7p\xc1\xd7\xcbRG*^\xb3A\x06\xa9\x03\x8c]vK\x8a\xed\xecp\x9a\x02\x1c\\\xbc\xcd\x7ft\xc6\xb1;\xf8]\xe3\x10\x83@-U\xf0\x16*\xc6\xcb\xfa@~\x1do\x13\xa3\xdd\x84\xee\xc4>\xe6ED\x88\xeen A\xb1\xb6\x8c9Ta5\x8ct&\x90\xa3\r\x91\x08\xf0D\xec\x95\xa4\xed\xe7\xef_\xf4p\x92t\x17\x8bn\x93pk\x15\x84\x06t\xff\x94\xdf\xdb\xe2\x8f\xd2\x93\x81g\x96>\xe2\xc4\x1cm H]4*M\x1e>\xa91&N\x8b\x12\x8f\x83\x93\x0c\xe3\xbam/\x9bVy\xach\xd0\t\xf4\xe5Z\xf5\xb3@]#\xa5\xfb\xa5\x8f\x123Q\xdf>6[\xf7\xdd\xfa\xc5$\xd1\x8d\x06S\x86\x1c6 H|\xc3\xe4\x91\t,Vj\x94\xdd\x8d2\xca\xe6\xb3\xad\x99$\xff}\xa4\xa9*\xce5\xfcU\xf4\x96\xe4\x80\xb1\xb0K\x83\xb6,\x10\xc2\xb9\xbcG\xc8\x1a\x1a\x92\xa2\xef\x8f!b{\xf8\xd8\xa7\xb1\xee\xe1\x1e\x97\x11\xf0\xf4\x9a\na\xa3\xa8aXx{\x83.x\xc8\x0f\xd1\x88\xaa\x19g\xb22&\xfdx)\xb1s\xb3G\xfcf\xaa/\xf4\xed\xdc\x86\x8b\xab\x1b\x89\xb0\\\xfb\x88\x8d\x8a=\x1c\x03\xf4\xdff|OR}\xcfr\xbc\x98\x8b\xe7t7\xb1\x9a\xbd\x8fz*\xd5\xb5\x18k[\x9bn\xfd>\xe0X\xf7K\x088\x16cs\xed0\x8d\xee\xcc-o`Q\x9f\x04\xcb\x87\xd0\x917p`Y\xa4O \xecf\t\xea,\x97Q\xb3\xa9k\xfe\xb0\xdf\xc6l\xa7\x89\xf0\xdc\xa5\x9aMM\xcd\xa5^&\r\r\x90\xad\x93\xf6\x19l\xb5W\xe6u\x19\xbe^N\x15\xdfJF\xfcP\xfa\xefnuO[\xe4,!\xcf\xe82r\xb2\x81\x06\xb1\xf8\x92\xd8\xe3>\xff\x1d\xe8\x9c\xcb\xeb\x07\xa4\xfe\x85\xf5&\xb6\xfcJrt;w\x80\xcc~a\xc2\xf7\x08\xffa\x99\x14,\xb6\x08k\xeb\x1d\xf4\xf6\xeb\xd5M\xa6\'\xa9j\xc9k\x0fP\xce\xd7,3\x1f\xcc\xddW:\x02\x03\xbb7\x18\xc54Q\xe50\xe2c(=\x85\x89,0\xd7\xaaJ+\x02\xb3/\xce\x0e\xd3\n\xc2N\xf7\x9bo\xb4\x19\xdb\xc8\x19\xb3\xd0}^\xdc\x80`D\x073}Z\x1d\x81-klf\xadt\xed\x97\xab3M\x97\x99\x11f\xab\xf3\x17\xd16\x8e\xb2eW\x851%0#\x06\t*\x86H\x86\xf7\r\x01\t\x151\x16\x04\x14\xecw|\xc23\rW\xad`\xbf0\x18\xe0\xb7\xc2\x1b\x15\xb0\x8b\xf2010!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14.\xa0\x17\x15I\xbb\xf1\x94;\x08$na\xc4\xb7;\xda\xaa\xdbQ\x04\x08\x9a\xba\x98\xec*6\xda`\x02\x02\x08\x00' +CERT_CONTENT_NOT_PASSWORD_ENCODED = b'0\x82\t\xb1\x02\x01\x030\x82\tw\x06\t*\x86H\x86\xf7\r\x01\x07\x01\xa0\x82\th\x04\x82\td0\x82\t`0\x82\x04\x17\x06\t*\x86H\x86\xf7\r\x01\x07\x06\xa0\x82\x04\x080\x82\x04\x04\x02\x01\x000\x82\x03\xfd\x06\t*\x86H\x86\xf7\r\x01\x07\x010\x1c\x06\n*\x86H\x86\xf7\r\x01\x0c\x01\x060\x0e\x04\x08\x13\xba]\x97\x87\xd3\xaal\x02\x02\x08\x00\x80\x82\x03\xd0\xc0\xe5q\x11PP}\x18\x0f\x1a)\xba\xa5r\xb8Gx8\xb7\xda\xc2\xe7\x04\x03\x11\xafv?~H\xcb7\xe0,\xf5\xb5\\\x99\x81\xf1nS\x830\x94\xb9:p\r]\xa2\x0f"\xc3\xdf\xdf\xf3\xf5e\x03\xac\x12\xd01\xe1\xb2R\xcb\xdc\x9c\xd2\xc5\x9a"\xe8\x94\x10\xd0\x86 \x8df\x88\xbf\x87>\xc1=\x08p\x18\\\xd9D\x88\xdeS\xea\xa2\xa0\x0b\x1b^jr\xcf\x1f\x00JC"\xcb\x14\xa6P\xdc\x98\x0e\xe0-[\xc1\xbf\rn\xb4\x08\xa9\x89\xbf2\xf7r{\xd6\xd2\x08y\xd0\xda\x7fJ@\xb9[\x82\xe8\xadOD\x8d\xc7YY\xd4z\xd0\x9a\x8a\xae\x00[h\x90\xbb\xb7\xf4\xaf\x12U\r\xc2\xaencb\x9cH\xaf\xc9\x18\xb8\xca]\x90\xd6\r\x8e\xc0ij\xc1\x91\x00\x9c\x85\xb4\xda\xe1>\x178\x05\x93\x9dN\x03~{\xbe\xfa(*\'\x1b\xd1\xf7C\xcf\xe8lF\xec\xe5X\xc8l\xd9\xc8\x852\x0e\xf5\x8eP\x94 \xa9\xef\x00\xa5\xc2G\xbdx\xa3\x1f\x8e+\xcaS7R\x90\xcbr\x02\x00\\\xbe\x9b\xa9M\xa6L$\xa37\xd1\xa0\xcc\t\xc9\x11\xad\xe59\xba7\xf9=\x9d\x035\xca\xcb\xb7\xc6\xac7\x84o*\xe2\xca\xc2mhqqJ\xef\xac71\xbdg\xb9C\xc5\x97\xf1)|\x9c\x9e#\xa0\xf6b\xa4\x1cCHB\x98>\xa9=\xaaC\xc5\xf9\x86[\x02h\xdcKy\xb0\xd0\x029W\xcb\xf7\xd5d\x1ak\xf8\xba/\x14\x06\xc0\xa5\x15K(\xc7{\xa6C\xb2D#\xca\x88-Fkz\xd7=L`y\xaf\xf6#n/,\x96\x86\xafp\xee\x15\x7f\x03"\x93\xcd\x0e\xc5\xb1g\n\xda\xf7Md\x906\x96?\x07\xee\xb4\xabb\xd6\x95\x14\xd3\xcc\x073\x9a\xe0\xab\t\x9a\'\xfd\xb3\xd0tW#%_~\xd7\x07[F\x12\xd4fF\xe2m\x03\xe1\x19a\\\xee\xe7B\x7fe\\v@j\xf8\xd0\x8af\xc9\x82\xb0\x07\xa0\x93B\x90D\xd7e\xbdD\xc8\x0c-\x8c\xbe`\x0c\xa4\xad\xecX8\x96\x88\x87\xdc\x1f\xcc\xb8\xbfl\x01\xfc\xb8#S*\xe7\x9eU\x11\'0z\xf3H]q5\x0c\xea[\xca$\xa0C/I\xda\xfa\xfa\xe0\xa3\x1f\x1burdaP\xe7\x06\xbe\x87\x0b|\xd3\xa06\x1c\xfe\xab\x0c\xed.\xbd\xf9A1<\xcd9\xeb\x8e\xf8[\xd0\xd2\x9fO[\xe9\x19\xad\'\\\xfd\xc4\x05\x80\xe8\x95\x1a\x93f\x02\xa5\x1b\xd8\x9c\xba\x90\xc8\xe7\xbc\x036\xe1\xc4\x0f\xf7z\xdd\x18\xbe\xb4&\xec\xddQ~B7\x0f\x04\xef*\xdf\x1c\xf4\x84\xc8\xf7\xf2\x86\x0b\x9cv-\xd6.\x18@\xeb\xd7H7Y-\xce\x1f[\x91\x97\x07W\x15\x98\xffo\xc5\xb34\x97\x10J\x08\xb0\x9b\xd2\xaa\x8ah\xed\xf5\x07\x8d\xcd\xd0\x8dg\x06\xd3\xb7x\xda\xee\xa5\x82B\xf1u\x01\xf6{\xea\xa2\x1d`>\xf4-\xe6k\x009\x01\x85\x80\xea\xc7"\x12\x82\xb3`\xe6d\x97\xb6mZ\x9bi$\x95\x83\xe7\x81\xed!>\xc44i\x073\xac\xb6,\xcf\x85\xc8\xc0\xb4k\x1a\x14\xb0V\xb0\xa0\xe6\xf3q\xb2K_oY~\x88s\xab\xdc\xad\xd7\xafY-\xc2\x83\x0b\\\xe9K\xa4t0\x84D\xe6\xbb8\xefn\xef\x1b\xd9\x89X\xc7\xad\x0e\x92 \xffg\xe4k\x89\xe4\x85\xfa\xf2\xd9j>>\x9f\xf4\xeb\x96\x94I\xf1\xdb@c\x19\xd8\xbc?\xce\x055\x12\x8f\xc1j\xef\x9fDG\xed\xfc4W\xfe\xc6i\x91\xdd.\x94\xf9[\xc6d<\xd1w\xfa!tR\x18>i\xa2\xad\xc1\xd7\xd7I\xa4\xa1\xe6%\xa8\x05&\xedH\x81q(\xbe:^\xc6\xb6\x04\x98@.\xcc\xb6\x87\xd7\x07LL\xc1\x95\x89a\xec\xc6\xef\xa0\xd3\xae\x8b\xb8v\xc1|\x948Ly\xc0:\x9d\r\xd9\xe5$q\xf3\xb7\xa0\x9d\xed\x871\xa7\xbde\xcc\xe2R\x80\x91B\xdc\x9c\x19P\x9ew\xca\x8b`\xabA\x82B$\xc8r"\'\x18b\xcf\xb4\xde\x0cW\xc4\xdc\x10\x8a\x16O\x9buH\xdd\xa9\xffr-h\xb6\x88u\xf5c\xf8\xa2}\xc3\xa9\x9e\n\xc9%>=\x9e9_0\xe0\xd4}4\xfaxrJ\x1c.\xca!a\x0c\xde\x97\xb8\x9d\x15X\x86Y\x12\xfa\x0fE\x8dS\x9a\xdd\xa9\xac\xff\xf5\x07R\xa4\xf7\xe9b\xb2\x1b\xd3$\xa9.gz\xea\x0bV\xe4&*\x08Z\xd7\xb5\x14J$\xb4+sCwUS\to\xcbZ\xf6\xcbU\x8b\xe4\xe4\xdd\x93\xac\x88\x10\xdb\xe6\xf7\xecGJB^\x96Fc[\xe2k\xfc\x1f]\xc9\x9d\xa8\xf7\xea\t\x1a\xe2\xd6\xf0\x9d\xa06,^ru\x89^V\xff\xb4\xfc&/\xb8\xb0.a_3\x9bp\xdb\xb2\xe7`\xeexu\xf5\'\xabM\x06\xe4\x93:\xca #\xf6.\xf7D\xb9\x19\xa3\x89j\xdb\xd1\xce\xb2\x88\xb8O{4\xe8\xaad9Xk"\xe7{V\x13\xc5w5\xad\xa6\xd7\x15\xf6\x06\xe2tr\xad_m=\xa1\x92\x80V\x05\xda\xe7\x7f\x03\xc8\xaa0\x9e\xa1\xf1\xdc\x8f2\x8d{4xYm\xcbP\x89\x8c\x13\xfd~\xe0/\x96\\\x8d\xa5K^\xb9\x9a\x03q.9g\twX\xeaO\xac\xbe}\xe6\x00p\xcb\x9c\x868\x00\xce%p7\xc3\r\xa8\xaa\xf9Sq\x9b\xf5\x97+^*\x08m\xde\x13$J\x0c\xb6\x98\x81\x98\x01\xad}\xbf\xe6J\xd0\xbcJ\xc6\xfc\x02\n@\xbel\xcb\xb2M\xdb\xa2iBf\x1eb;\x93IU"\xdf\xf9X\xfc\xf3\xf5\xc9\xef\t\xa8a\n\x8b\xcd\xff\xe0\xb4,\x8dql\xe4\xd6\xf6p\xe9\xd8W\xecoF\x82\xf5v\x01E\xff\xda\x99\x10\xa2\x1ec3\x07_\x04\xf3\x96\x80\xd3\x98w\x97\xb2\x97=\xd7$\xff\x1a\xca\x11\xe3\xdd\xbf\x87g-lo\x1f\x0e\xbd;\xab#\xb2\xc9\x9dWz\xba\xf9\xc6`a\x82\xd9\x00Iuo"\x1bd\x14\xd0ht\xf4\x1a\x1c\xdc\x98rk[\xbdK\xe9)\x7f\xf51\x1f\x984\xafr\xd1\x04{\x87\x19w\xca6\xf55\xea\xccMt\x92j\xed\xf1\xda\xa8E\xb6"6\xaeB83\xe2\x8a\xd8U\xb4$VB\xed\xda\x16\x82\xe4OJ(XF$\xf8\x85\x94\xeb\xf5\x90\xf2\xba\xbb*Fz\x05\x1f\tW\xad\x08\xddf\xd7-\xe8\xd3\xc9\xa4\xdf\xef\xd5L\xb7\xc9\xb2 D\xf9\x1a4\x9c\xee\xbf\xad[ \xd1\x08w\x14\xdfa\xae\xcb\x0e\xc5\xfb\xd9\xdd\x90\xc9U\xb8\x8e`\x07\xfc\xdf\xae\xc7\xd7\xeaz\x12B|{\xdb!z6\xb22\x84\x95\x9f\xfd\x99w4\xc6\xe7<\xa5\x07\x03\xeb\x19\x9218\xf8|/\x7f\x9c\x96\x921Y\x84\xd7\x8b\xab\xfe it$\xef!\x1dv:\x02\xa4\xdf\xdcZ\xc5c_\xc3qd[\x11.\xcd4\x02\x0f=\xf8\xd0\x1b\x81i+\xd9\xe7\xa3)\xc5\xc1\xf8\x8e\x13du^{\xc2\x0f)\xd1!\xf2\x06\xbaF\xd0\xc3\xf0e}V\x9c!\x9c\xeaC\x1d>J\xd4+n_`\xb2L\xc9|~\x051\xa1\xb6x\x91\xab\xa2F\xbe\x1d\n\x17y\x9f\xd0`\xa7\xb9\xafM\xaa\xe5\xeeM\xa7UzmH\x90\xe6h\xfb\xd9\xd0D\xe1\xb7\xe5\x85\xdb\x8f\x9a\xff\xb5\xeaW\xb7\xf2\x1e\x86\x14\xfdc\xaf\x10c\xd6\xdf\x86\xbb_\xc4yP\x95\x9a;\x06Sr\x9a\xa6~\x9f"\xc1\xaaQ\xb6\x0b\xd0\xa1p\x08K-\xb0+m\x1fKI\xca\xef\xd9\xe5\xaaxi\xe4\xa1\x1du1%0#\x06\t*\x86H\x86\xf7\r\x01\t\x151\x16\x04\x14\xecw|\xc23\rW\xad`\xbf0\x18\xe0\xb7\xc2\x1b\x15\xb0\x8b\xf2010!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14c\xc4?\x00\xdbG35r\x97\x86\xac\xad\x0f\xe5<\xa4cw`\x04\x08\xe0J/\xad\r\xf9F\x8a\x02\x02\x08\x00' + + class RetryAfterReplacer(RecordingProcessor): """Replace the retry after wait time in the replay process to 0.""" @@ -61,16 +65,13 @@ def emit(self, record): class CertificateClientTests(CertificatesTestCase, KeyVaultTestCase): - CERT_CONTENT_PASSWORD_ENODED = b"0\x82\t;\x02\x01\x030\x82\x08\xf7\x06\t*\x86H\x86\xf7\r\x01\x07\x01\xa0\x82\x08\xe8\x04\x82\x08\xe40\x82\x08\xe00\x82\x06\t\x06\t*\x86H\x86\xf7\r\x01\x07\x01\xa0\x82\x05\xfa\x04\x82\x05\xf60\x82\x05\xf20\x82\x05\xee\x06\x0b*\x86H\x86\xf7\r\x01\x0c\n\x01\x02\xa0\x82\x04\xfe0\x82\x04\xfa0\x1c\x06\n*\x86H\x86\xf7\r\x01\x0c\x01\x030\x0e\x04\x08\xf5\xe5\x81\xfd\xa4\xe19\xf0\x02\x02\x07\xd0\x04\x82\x04\xd8.\xb2>H\n\xee\xd9\xd0YE\x04e%\x8e\xd7Cr\xde.F\xa1\xd8W\x11Gw@L;!ght \r\xa8\x06\xb9\x10!\xdb\x0b\xc8\x00\x16g}\xaaa\x1dj\x91lK\x1e\x7f@\xa9x.\xdb\xb0\x04l\xe97\xe7\xeaHM\x96\xa2\xcb\xad\xd8`\x19$\xa5\x1f\xa9\r\xd9\xe0f\xdd}gC\xd6\xacl\x07\x12\xaes\xe8\x11\xd2\xd8b\xf2\xc8\xdf\x12H\xe0\x9bw0\xb3\xed\xb9c\xdf\xee\xc8e\x8a\x0c\x8f\x85\x8e>\x03\xa6\xfe\xd4:S\x8e\x12\x15g\xa4\xe3\xa407l\xde\x03\x88\xbd\xee\xfe\xdf\xb4\xd3g\xb3n\xe6\xb3\x9d\xa3\xa9\xf8N\xbd0=s\xfc2}\x92\x80c\x86\x8a%\xf6\x18Rl\x9c*9\xe7F]5\xdaWR\xdaS\xa4\x01!m\xfa[\xb8@&\xbb\xd8\x86:x\xfbQ\xb9\xd3\xc2\xbel\xd1\xbfjd-\x84\xba\xcfw\x08\xee\x89\x93\xf2q\xcf\xdc<\xa64\xea\x8blZ\xab\xe4\xed\x8c\xd5\x96\x1a,.\xb7C|m\xdd\xe5om\xc3\xe1\xdc\xdd<\x0fXG\x92\x1c\xff(4\xef\x91\x10\x10\xa6\xfa\xd6\xf0\x84\x8a\x9a\x00\xdd\x9b3y\xe4\xf7\xb9\xe7\x11\xdfIa\x81\xee\x03\xf0\xf2\xc6^k\x9e\xc8\xc4\\\xd6\x1d2\xb6\xca\xf4\xec\x96\x8a\x16\xa2\x8b&\x1b\x16\xa7a\x8d\x88\x1b\xf9\xe8\xdcF\xcf9`\xca\x8c\xf6x\x8aV\t{\x92I\xda)\xa6\x97\x13\xf3\xfbg\xb6\x10\xe0\x8a\xa42>\xed\xfc\xd0q\x1c\xf7=7w\x04\xaf\x9b\xb9\xd6|iu\xfcio\xe5:\x02\x92\xf1i\xb1f\x82\xa78\x90MY\xe4\xcdY\x01n\x82i-]\xf7O\x1c\x07q2\x18\xd4^\xa7\x86A\xdf0N\xf6x\x134\r5\xa7\xe8\xbf\t\x08\xec\x85\x7fe\x8a\x1a\xfb\xe4F\xa1\xf5Q\xdd\x96\xd1J M\x17\xa4\xc3\x8f\xfa\x97\x16\xdd07\xf0\x90\x9e\xc1\x80\x99\x00\x066#~\x0f\x89\x98\xee-\xb9v\xd4\xee\xfc\x97;;\x12\xdd\x84\x05\x05\xa4|\x89\xa7*\xd8X\xb7\xef:$\xb9Y\x80^\x101\xe4\x88\xf5\x1a\xff\xc7\x99H\xf071u\x99GTb\xb8;\xee6\xa3#r\xddRK\x07W\x004\xed\x17\xaf%\xfdD\xb5\x92\xc5:\xe7\xbf\x97H/\xba\x97-@\xfe\xeas\xf9~\xf5\xf8.\x07\xa3\xa5\xb4\xef\x9dc\xe5\x93\x13\xeb\x12\xa3\x1a\x1eiy\xee\xccV\xe7n\xc4\x8c\xd7\x8db2\xdd\x84\x9d\xd1\xf2\x13\xddM\x00\xe4\xd2\xc4\xbc\x9fk~Lz&!\xe3D\xbczW[j\xb2\xbbS\xe8\x1b\x06\xb6`\x90GU\x02$\xf2\xea\xb0\xa5C\xbc\x02\r\xc7w\x0f\x03\xf0\x86\xaa\xbeN_`FfP\"\x84i\x8d\xea~\xe0\xbf\xcc8;I4,\xf4\xc0{\x96\x1e~\x05\xcd\xdeoi\x13\xce\xbb7}F\xb4uYh\x9f\xd4V\x00\xcda-\xa3\xba\xc7\x9d\xe2\xbc;\xe9\x95\x8d\xe3V\xa4\xc7d\r\xd0\x94\x9e0\x9a\x87^\xa5s\xe8\x02\x9f\xcf\xc2\x02K\xf7E\x9cA\xb2\x04\xdaW\x88\xc4q\xad\x8f\xd0<\xa8\xbf\xc0\xe3p\xaa\xc6\xc3\xc5\x15\xbb\xbd\x94U*\xce\xfc\xa4\x19\x04\xd2K\x1aJ\x19Y\x93\x91\xa4y\xac\x83X/\xfb\x1e/\xcd\xa9Am\"Z\n\xf5pw\xa5\xa2\xf1\xa3P\xc6\xbb\x9a\xaah]\xf8\x8d\x97d\xb79\x17\xa7K\x99\xaa\x9a~\x15\xf2\x99j*/2;|\x17\xbc\x87\x08\xf9>-\x8aQ\xb1M\x82\xc9\xcfCV\x80\xc0\xea\xb2 \x7f\xeb\x84?\x88\xe9\xa6\x07\xa1\xb3\x1c\x93\xd2RGk\x1d\xad\xf3\xafQ\xda6\x1d\xb1|\x18Qx\xe0\xc0r\x15\xd2\xfa#\xed\xb2X[7\x91\xfdE\xd1r\xf0o\xd6\xdb\x7fm\x8c;\xb59\x88\xc1\x0f'b\x06\xac\xc1\x9f\xc1\xc6\xd44\xa3\xd4\xf8\xdc\xd2G\x7f\xf3gxeM7\xd3\xc2\x85L-\xf2\x19\xc4ZwA\xa7\x10}\x0e\x8bx\x84'\xd1\xdb\xae%\x1b}S\x1b\\\xd1\xce\x17\xe3$\xb5h\x83V\xac\xe7tc\n\x9a\xe2Ru\xf4\xc1*\xf1\x85\xbd\xe8\xc0YS\xb9\x13\x89\xa0.\xfa\x1a2f\xdc\x85\xcd\xc1;\xbb\x0bz\xb6\x87\x9c\x93y\x86\xf3\x01h\xb7\x10#\x7f\r\xf3\xa9\x94}4|\x00\xfe\x80'\xd76\x93\x9dx)\xa0\xcbrY\xb8\xcf\xa2|t\xcc\xfa\xd2u\x1e\xa3\x90\xf7`==\x1b\xa0Z\xbcQ\xf1J\xf2|0]\x0b\xbb\x9c\xce\x171\x1e<4E\x9b\xd9\x87\xf1m\r\xfe\xc1e!\xa6\x1f\x0f\xf1\x96S\xfc8\xe2d.r6\x81\x93\xdeX\xb6\xa3\x86D\x88\xf9\xf2\xd1\x83Z\xbf\"Q\xd1\xf0i\x82\x86\xa9M\xb8\xccg\x91i\xefC\x84U\xcf\xcd\x9b!WVF\xb0\x14\x05E\xaa\x18\x93\"\xc0\xc1\xd2V!t\xe2\xf9\xcd\xfba\xa0\xbc\x15\x14\x84\x9esfK\xbfC\xa2\xedJspo+\x81\x18(\x00\xf6+\x18\xedQ\xe6\xebW^\xf8\x80=\x10\xfb\xd6.'A\x979;)\x06\xf0\x85w\x95S\xd9\x1c9\xcc3k\x03\xf2w\x17\x97\xcc\nN0;0\x1f0\x07\x06\x05+\x0e\x03\x02\x1a\x04\x14\xb1\x82\x1d\xb1\xc8_\xbc\xf1^/\x01\xf7\xc1\x99\x95\xef\xf1A\xf4\x0c\xa1\xde\xd3rj\x85\xbc\xdcW3c\x9d\x137\x17\x80\x01\xb2f\xccFf\x14\xbd\xf9\xbe\xbf\xe1\x9eF\xe7\xaeq\xde\x8c\xa9\x94\x89I2\xb4\xacY\xb4\xd1\x02?\xce\xe0\xf9\x9d\xe7\x8a\xf0\xf1\x8d\xc0\xd5\x8d\x91\xe9P\xcd\xe9\xd4X\x00\xaa\xcdI\t-\xede\xcbT?\xfd\x8b\xa1\xaci0sw(\x1b\xb1\x833\x9fi\x82:9\xb4/ H\x07b\xd3\xf5-\xcbS`\x82\x10\x0b\xd1\x8f\xb8I\xce/\x14\xa20i\xa7\xef\xb8=\xe2Z\x15?z\xa9\x1b\xc2k\x0et\xf1\x18\x16\x07\xd8\x9a\xfd\xea\xe9\xb2Fq\x96\x04r\xcb\x16\xb3v\xfd\xac\xb5*\x07s1\x97\xc9\xe1\xf9I\x18\xe2\xf0{\xce\xa6\xba/\xcd\xf8?\xd2*\x8c\xb3f\xe8\x99h\xa8\x13\x03\xafs,\xa5A\xb3b\x9c#\xb7\xa1\x1b2w\xcd`\xd2\x95\r\xcd\x86\x8aq\xfb?\xfaO\xbe\x9d\xe9B\x9e\x80\xa1\xc2\xb5\\\xad\xf8\xf4i\n\xc8\x80j\x8c\x1a\xe2\x0be\xb1F\xb3{Kj\xed\t\xb9\xb3\xf2\x15\xf9\xd3E<7\xe1\xfb\x8d\x88\xc7\x9c\x81#l\x19\x07\xa5\x05\xdd\xdb\xf8\xc3\x1c\xff\xa7\x94\x9c\xc8]t~\x8e$/q\x10`g\xc1\xa1Q\xea|s\xd7\xaa\x9f\x0f\x9c#Og\x13\x95\xda}\x00\xc4\xf1\xc0S\xb8q\x9a\xddT\xffUY~\x07\x81\xc3]Qc\xe6\x7f\r\xd3bd\x0cG. e\xb2\xae\x80>,C\x81\xad\x83\xe4\xb5\x1f\x8c\xec\x8a$\xe3\x0c\xf2r\xa9\xed\xaf[[\xddL\xdd\x16\xf7\x1d&\x7f\xd8C\x0f\xc72\xcb\xd3J\xb4\x8a\xb9\n(\x86\x95B\xf4\xcd\x1b\xd5\xe4\xab\xb2G\xf1\xce!\x07@\xf0-\x1d\xbf\xcbD\xd3\x89\x07\\%\xe7\xce\x1d\x16z\xa4a\xf2\xedS\xcej\xd9uC]\x84\xa2\x801\xce\xf71\x14-\xc1\r}\xc8\xc6\x03W\xd4$\x9e\xe8QO\xec\xb3\x9e\x83\xa6\x90tu\x15X]\xb8!\x7f\xcaQ&bu\xb0!^\xcd\x99P\xbe\xe46J]\xa1\xa3\x8c\xcd\xc8\xca\xf8\xec\n\xc8\x8c\xc0\xd2\xd2$8\x95\x9d\x81\xdb\x9e\x05\x8f\x84\xaa\xfa\x07ci\xd5\xcb4\x1c\x9b\t\xe6\x02`M\xe1\x8e%P+.BI8\xcd\x94WT\x14~B5\x8fy\xafu\xdd\x10\x8dj"_\x9f\xd8\x84\xc3\xb9\xcb\x19m\x7f\xef`\x11\x06B\xd6g\xea\xe1\xc2\xc3\x19@\x0f\xd59\xf0\x01D\xfe\x08\x9ep~pE\xb1\x81\xd4\x7f\x9f>?_\xb2C\xfc%\x98\xfe,c!\x9c\x96\xaeH\xcc\x1cic(\xe6\x80)\x90W\x07\xfaOmQ:v\x87H[\xaa?\xf4Y\x89\xbaz\x96B\x96\xfbZ\x98\xf9Q\xfe\xe8\x1a\xf8.n\xca*\xc3`\xaa\x91}\xa4\xe7\x87\xf7\xff\xf4^\xf8\x01:r\xc8(\xa8\xfdf|WY[\xa7\xf4w\xfa@\xbc\\^w\xa8\xeb\x82\xe35G\xf7\x06f\xe34\x9aA\xbc\x1e\x88\xa84\xd2]\x95\x9d\xa6%T\xbb\x0bt\x93I\xc0+7\xa31\xa3?9\xb0B>\xd6J\ttT\x8f\xf8\x19\xec`\xab\xc0\xab\xab\x93G;UN)\x1b|\x0b\xde\x1d{\xffPLz\x08\xe4-f\\\xf1\xafM\xb7\x9e$:\xd8\xd2;\xfe\xc1\x02c\xa3\x16\x9c\xc5\x9b\xcdt\xb7\x99!\x02\xddL\xd62\xb9\xe7\xb4\x181\xe1S\xedJ\x83\x0b[\xc0B@\x93\x15\xcf\xb0\xaaS\xdd\xbfp{\x1cW0\xd2\x9d\x8aO\xaa\n\xba\x0e\xecm\x92\xdd\x84\x84\nlN\xd8\xe2n\xc7^\x85\x9c\xca\x0e\x05K\x8f\xb41\x9d\x07A\x812\xd4\xb4\'\x16:\xedG\x9d\xbfY\xd3\x05\xef\xd5hq\xaf\x88\xde\x068)\xca\x8b\xd4\x10pE\xc8e\x04i<\x18^\x1b\x7f\xfdJaP\x1f\xd4R\x10\xc5\xae\xe6Q\x08\x8b\xbcy*\x15\xb8\xb7G\xc1R\\\t\xbb\x93g\x9f\x1e\xdb7j\x02h\xe5\\@\xf0A\xfc^\x84U \xc9\xa7\x92%W\x0ep\x03\xb95gH!N\xfcjG\xb4\xc72\x0eq\x10W\xdd\xe8^Y\xa2p\xab\xd1\xcf\xe4\xd8q\xa9\xce]\xf9\xdbJ\x8e\xe9\xaaS\xed6y\x93~2\x8e\xbbx\x0eIF5\x16\xdco\xd1\xec;\tqm \xd3\x80\x93\xcc\xb38\xe9\x12\x1a\xb1\xbd\x1f\xb5\x80\xef\x8bR@f\'QF\xac\xd1\x1e\x18\x1e-\x80\x85\x82\xe8\x9f\xb6|E\xc1c\xe4\xcc\xd0\x96\x88\xc5\xa0\x83"\xa3\xa69\xfb\x10\xc2XN\x1e9\xe9\xeeB\x01\x00\xe8w\xc3\xb1\xb6\x9e\xbd\x8d\n\x92\x94Vc\x85mjA=\x92?\x12\x17\xa2nJV$\xcd\xea/XO\x00\xf9\x8b\xdc\xf0\xcef\xc8\x06\x94*M\xce\xfb\x0b\xe5/SC\xad\xed\xdfu\x95\x83S\xdc\xa9\xad:\xdc\t\xc8r\x9c\x1f\x16\x85\x0e\x11\xff\xa4\xeeJI\xddK\xf4!e\x9c\xb61\x81\xe90\x13\x06\t*\x86H\x86\xf7\r\x01\t\x151\x06\x04\x04\x01\x00\x00\x000W\x06\t*\x86H\x86\xf7\r\x01\t\x141J\x1eH\x00b\x00d\x008\x003\x007\x009\x00c\x001\x00-\x00a\x006\x005\x00c\x00-\x004\x003\x00e\x00e\x00-\x008\x001\x000\x00a\x00-\x005\x00a\x002\x004\x003\x004\x006\x003\x00f\x00c\x00e\x00c0y\x06\t+\x06\x01\x04\x01\x827\x11\x011l\x1ej\x00M\x00i\x00c\x00r\x00o\x00s\x00o\x00f\x00t\x00 \x00E\x00n\x00h\x00a\x00n\x00c\x00e\x00d\x00 \x00R\x00S\x00A\x00 \x00a\x00n\x00d\x00 \x00A\x00E\x00S\x00 \x00C\x00r\x00y\x00p\x00t\x00o\x00g\x00r\x00a\x00p\x00h\x00i\x00c\x00 \x00P\x00r\x00o\x00v\x00i\x00d\x00e\x00r0\x82\x03\xbf\x06\t*\x86H\x86\xf7\r\x01\x07\x06\xa0\x82\x03\xb00\x82\x03\xac\x02\x01\x000\x82\x03\xa5\x06\t*\x86H\x86\xf7\r\x01\x07\x010\x1c\x06\n*\x86H\x86\xf7\r\x01\x0c\x01\x060\x0e\x04\x08\xd0~p\xe13w{_\x02\x02\x07\xd0\x80\x82\x03x\x1e]uF\xa8\xb8\xdf\xf4\xb0x4\xf4\xe3r\xea\xee\xc7\x83k;\x07.\xde!W\x98b\x0f]\x87v\x06^\xe2\xc4Z\xd9\x16\xee\xe4z\xb5\xa5^R\xf8!V\x01\xcb\x90\xbf\x05\xdfWN\x8c\xe2\x059\xba\x02\xa0\xf3\xb0d\x0f\x94 |\xe89\x07\xa8\xff\x86\xc5\x12\x8c\xb0Pa\xaa\xb2\xb3\xbe\xe7\xd5 \xc7\xf6\xa5\xa0\xe9\x87\x93\x16\xea\xebPV\xc9\xda\x97B\x1e\xa1M)\x1c^\xe7\xfb\xbe\x00q;\x8e\xf4\r\xf3q\x87\xb9)g\xc8\xa1\x07i\x06\xca\xc8\x97S\xd3\xd3ihO\xaf(\xd7\xa0\t\xefo\x10\xb8\xeaE\xfc\xdf\x18\xf0\xd4\xe5\xbc\xbc\x12\x11\xc2p\xb4\xfd\xf8\x1b\x0e\xa8\xa9.N[?\xd2\xf3\x0f\xda\x1cp\x99\x86\xbe\xc3\xa8t\\\xa4\x88?\x90\xb3\xa3qvh\xa5\x06\xf1a\xb6%\x18\x8eqc2\x04\xc7\xc0>i\xdc\x8fI\xbc\xb0\x82\xdc\x87j\xd9\xff\x05e{\xd2\x01\x0e\xf0\x91\x7f\xcb\xf8\xa27\xfb\xd1\x9c\x96\xadS\x97\x17\xb0\xf3F\xb4\xc6\xc3(/\xc4\x88\xdf\xf3M@n\xc4\xd88\xd0%hq\x0c\xae\xab\xbf\x91\xe6\xff\xd4np\xed\x9a\xab\x04\x83^/!\xf7\xf5\x91\xa54\xc9n\xb14\xb6\x8d\xdbQB-\x04\xf8\x98H\x98\xe10Ksw\xac\x0cc@\x92\x10\x1cA\x96\xb39gljl6\xd4cz\xd8it\x1e\xedZ]\xfa\x0c\x93\xce\x97\xcd"\x93e\xf8\xb1\x02b\xb9 \xb5\xc5W\x12\xf5\xe7\x81s\xf9$+\xf4\xee\x13\xdeQ\x02Cq\x15x\xe3\xd8\xbe&\xa4,k0U\xa9\x87\x15\xc7\x86\x82\xb0@Q\xfb\xbb\xf6\xa11\xbf\x1d[,\xec\x16`\xc5\xc2\x0f/\n\x8f\x9f\xebf\xfa\xf3\xcfW\x9d\xedD\xf4\xdf\x8c\x88\xc3{\x89s\xf6\xb20+\xa2J\xffx\xbd\xad\x9a9/\xee\xc2x?\xce\xc2{\xb8\x1b)\x0e\x8ao\xe3\x86{%n.~\x8c\x95\xc9\x85[\xfa\x1a070\x1f0\x07\x06\x05+\x0e\x03\x02\x1a\x04\x14\xc2\xeb\x94\x0bl\xc6q36\x8c\x8b\xfb\x87\xa2N\x0e\xa4\x00\x11.\x04\x14R)\xd7xhz=l\x84,\xcc\x07\xa6\xef\xd7i\xb0\xe9\x13o' - def __init__(self, *args, **kwargs): super(CertificateClientTests, self).__init__( *args, replay_processors=[RetryAfterReplacer(), RequestUrlNormalizer()], **kwargs ) def _import_common_certificate(self, client, cert_name): - cert_password = "123" + cert_password = "1234" cert_policy = CertificatePolicy( issuer_name="Self", subject="CN=DefaultPolicy", @@ -83,7 +84,10 @@ def _import_common_certificate(self, client, cert_name): key_usage=["digitalSignature", "keyEncipherment"], ) return client.import_certificate( - certificate_name=cert_name, certificate_bytes=CertificateClientTests.CERT_CONTENT_PASSWORD_ENODED, policy=cert_policy, password=cert_password + certificate_name=cert_name, + certificate_bytes=CERT_CONTENT_PASSWORD_ENCODED, + policy=cert_policy, + password=cert_password, ) def _validate_certificate_operation(self, pending_cert_operation, vault, cert_name, original_cert_policy): @@ -230,7 +234,7 @@ def test_import_certificate_not_password_encoded_no_policy(self, client, **kwarg # without passing in 'password' certificate = client.import_certificate( certificate_name=self.get_resource_name("importNotPasswordEncodedCertificate"), - certificate_bytes=CertificateClientTests.CERT_CONTENT_NOT_PASSWORD_ENCODED, + certificate_bytes=CERT_CONTENT_NOT_PASSWORD_ENCODED, ) self.assertIsNotNone(certificate.policy) @@ -241,8 +245,8 @@ def test_import_certificate_password_encoded_no_policy(self, client, **kwargs): # when importing the certificate certificate = client.import_certificate( certificate_name=self.get_resource_name("importPasswordEncodedCertificate"), - certificate_bytes=CertificateClientTests.CERT_CONTENT_PASSWORD_ENODED, - password="123" + certificate_bytes=CERT_CONTENT_PASSWORD_ENCODED, + password="1234", ) self.assertIsNotNone(certificate.policy) diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client_async.py b/sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client_async.py index 665d5f17ccb4..9f9c3b6036dd 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client_async.py +++ b/sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client_async.py @@ -32,6 +32,7 @@ from _shared.test_case_async import KeyVaultTestCase from _test_case import client_setup, get_decorator, CertificatesTestCase +from test_certificates_client import CERT_CONTENT_PASSWORD_ENCODED, CERT_CONTENT_NOT_PASSWORD_ENCODED all_api_versions = get_decorator(is_async=True) @@ -62,11 +63,8 @@ def emit(self, record): class CertificateClientTests(CertificatesTestCase, KeyVaultTestCase): - CERT_CONTENT_PASSWORD_ENODED = b"0\x82\t;\x02\x01\x030\x82\x08\xf7\x06\t*\x86H\x86\xf7\r\x01\x07\x01\xa0\x82\x08\xe8\x04\x82\x08\xe40\x82\x08\xe00\x82\x06\t\x06\t*\x86H\x86\xf7\r\x01\x07\x01\xa0\x82\x05\xfa\x04\x82\x05\xf60\x82\x05\xf20\x82\x05\xee\x06\x0b*\x86H\x86\xf7\r\x01\x0c\n\x01\x02\xa0\x82\x04\xfe0\x82\x04\xfa0\x1c\x06\n*\x86H\x86\xf7\r\x01\x0c\x01\x030\x0e\x04\x08\xf5\xe5\x81\xfd\xa4\xe19\xf0\x02\x02\x07\xd0\x04\x82\x04\xd8.\xb2>H\n\xee\xd9\xd0YE\x04e%\x8e\xd7Cr\xde.F\xa1\xd8W\x11Gw@L;!ght \r\xa8\x06\xb9\x10!\xdb\x0b\xc8\x00\x16g}\xaaa\x1dj\x91lK\x1e\x7f@\xa9x.\xdb\xb0\x04l\xe97\xe7\xeaHM\x96\xa2\xcb\xad\xd8`\x19$\xa5\x1f\xa9\r\xd9\xe0f\xdd}gC\xd6\xacl\x07\x12\xaes\xe8\x11\xd2\xd8b\xf2\xc8\xdf\x12H\xe0\x9bw0\xb3\xed\xb9c\xdf\xee\xc8e\x8a\x0c\x8f\x85\x8e>\x03\xa6\xfe\xd4:S\x8e\x12\x15g\xa4\xe3\xa407l\xde\x03\x88\xbd\xee\xfe\xdf\xb4\xd3g\xb3n\xe6\xb3\x9d\xa3\xa9\xf8N\xbd0=s\xfc2}\x92\x80c\x86\x8a%\xf6\x18Rl\x9c*9\xe7F]5\xdaWR\xdaS\xa4\x01!m\xfa[\xb8@&\xbb\xd8\x86:x\xfbQ\xb9\xd3\xc2\xbel\xd1\xbfjd-\x84\xba\xcfw\x08\xee\x89\x93\xf2q\xcf\xdc<\xa64\xea\x8blZ\xab\xe4\xed\x8c\xd5\x96\x1a,.\xb7C|m\xdd\xe5om\xc3\xe1\xdc\xdd<\x0fXG\x92\x1c\xff(4\xef\x91\x10\x10\xa6\xfa\xd6\xf0\x84\x8a\x9a\x00\xdd\x9b3y\xe4\xf7\xb9\xe7\x11\xdfIa\x81\xee\x03\xf0\xf2\xc6^k\x9e\xc8\xc4\\\xd6\x1d2\xb6\xca\xf4\xec\x96\x8a\x16\xa2\x8b&\x1b\x16\xa7a\x8d\x88\x1b\xf9\xe8\xdcF\xcf9`\xca\x8c\xf6x\x8aV\t{\x92I\xda)\xa6\x97\x13\xf3\xfbg\xb6\x10\xe0\x8a\xa42>\xed\xfc\xd0q\x1c\xf7=7w\x04\xaf\x9b\xb9\xd6|iu\xfcio\xe5:\x02\x92\xf1i\xb1f\x82\xa78\x90MY\xe4\xcdY\x01n\x82i-]\xf7O\x1c\x07q2\x18\xd4^\xa7\x86A\xdf0N\xf6x\x134\r5\xa7\xe8\xbf\t\x08\xec\x85\x7fe\x8a\x1a\xfb\xe4F\xa1\xf5Q\xdd\x96\xd1J M\x17\xa4\xc3\x8f\xfa\x97\x16\xdd07\xf0\x90\x9e\xc1\x80\x99\x00\x066#~\x0f\x89\x98\xee-\xb9v\xd4\xee\xfc\x97;;\x12\xdd\x84\x05\x05\xa4|\x89\xa7*\xd8X\xb7\xef:$\xb9Y\x80^\x101\xe4\x88\xf5\x1a\xff\xc7\x99H\xf071u\x99GTb\xb8;\xee6\xa3#r\xddRK\x07W\x004\xed\x17\xaf%\xfdD\xb5\x92\xc5:\xe7\xbf\x97H/\xba\x97-@\xfe\xeas\xf9~\xf5\xf8.\x07\xa3\xa5\xb4\xef\x9dc\xe5\x93\x13\xeb\x12\xa3\x1a\x1eiy\xee\xccV\xe7n\xc4\x8c\xd7\x8db2\xdd\x84\x9d\xd1\xf2\x13\xddM\x00\xe4\xd2\xc4\xbc\x9fk~Lz&!\xe3D\xbczW[j\xb2\xbbS\xe8\x1b\x06\xb6`\x90GU\x02$\xf2\xea\xb0\xa5C\xbc\x02\r\xc7w\x0f\x03\xf0\x86\xaa\xbeN_`FfP\"\x84i\x8d\xea~\xe0\xbf\xcc8;I4,\xf4\xc0{\x96\x1e~\x05\xcd\xdeoi\x13\xce\xbb7}F\xb4uYh\x9f\xd4V\x00\xcda-\xa3\xba\xc7\x9d\xe2\xbc;\xe9\x95\x8d\xe3V\xa4\xc7d\r\xd0\x94\x9e0\x9a\x87^\xa5s\xe8\x02\x9f\xcf\xc2\x02K\xf7E\x9cA\xb2\x04\xdaW\x88\xc4q\xad\x8f\xd0<\xa8\xbf\xc0\xe3p\xaa\xc6\xc3\xc5\x15\xbb\xbd\x94U*\xce\xfc\xa4\x19\x04\xd2K\x1aJ\x19Y\x93\x91\xa4y\xac\x83X/\xfb\x1e/\xcd\xa9Am\"Z\n\xf5pw\xa5\xa2\xf1\xa3P\xc6\xbb\x9a\xaah]\xf8\x8d\x97d\xb79\x17\xa7K\x99\xaa\x9a~\x15\xf2\x99j*/2;|\x17\xbc\x87\x08\xf9>-\x8aQ\xb1M\x82\xc9\xcfCV\x80\xc0\xea\xb2 \x7f\xeb\x84?\x88\xe9\xa6\x07\xa1\xb3\x1c\x93\xd2RGk\x1d\xad\xf3\xafQ\xda6\x1d\xb1|\x18Qx\xe0\xc0r\x15\xd2\xfa#\xed\xb2X[7\x91\xfdE\xd1r\xf0o\xd6\xdb\x7fm\x8c;\xb59\x88\xc1\x0f'b\x06\xac\xc1\x9f\xc1\xc6\xd44\xa3\xd4\xf8\xdc\xd2G\x7f\xf3gxeM7\xd3\xc2\x85L-\xf2\x19\xc4ZwA\xa7\x10}\x0e\x8bx\x84'\xd1\xdb\xae%\x1b}S\x1b\\\xd1\xce\x17\xe3$\xb5h\x83V\xac\xe7tc\n\x9a\xe2Ru\xf4\xc1*\xf1\x85\xbd\xe8\xc0YS\xb9\x13\x89\xa0.\xfa\x1a2f\xdc\x85\xcd\xc1;\xbb\x0bz\xb6\x87\x9c\x93y\x86\xf3\x01h\xb7\x10#\x7f\r\xf3\xa9\x94}4|\x00\xfe\x80'\xd76\x93\x9dx)\xa0\xcbrY\xb8\xcf\xa2|t\xcc\xfa\xd2u\x1e\xa3\x90\xf7`==\x1b\xa0Z\xbcQ\xf1J\xf2|0]\x0b\xbb\x9c\xce\x171\x1e<4E\x9b\xd9\x87\xf1m\r\xfe\xc1e!\xa6\x1f\x0f\xf1\x96S\xfc8\xe2d.r6\x81\x93\xdeX\xb6\xa3\x86D\x88\xf9\xf2\xd1\x83Z\xbf\"Q\xd1\xf0i\x82\x86\xa9M\xb8\xccg\x91i\xefC\x84U\xcf\xcd\x9b!WVF\xb0\x14\x05E\xaa\x18\x93\"\xc0\xc1\xd2V!t\xe2\xf9\xcd\xfba\xa0\xbc\x15\x14\x84\x9esfK\xbfC\xa2\xedJspo+\x81\x18(\x00\xf6+\x18\xedQ\xe6\xebW^\xf8\x80=\x10\xfb\xd6.'A\x979;)\x06\xf0\x85w\x95S\xd9\x1c9\xcc3k\x03\xf2w\x17\x97\xcc\nN0;0\x1f0\x07\x06\x05+\x0e\x03\x02\x1a\x04\x14\xb1\x82\x1d\xb1\xc8_\xbc\xf1^/\x01\xf7\xc1\x99\x95\xef\xf1A\xf4\x0c\xa1\xde\xd3rj\x85\xbc\xdcW3c\x9d\x137\x17\x80\x01\xb2f\xccFf\x14\xbd\xf9\xbe\xbf\xe1\x9eF\xe7\xaeq\xde\x8c\xa9\x94\x89I2\xb4\xacY\xb4\xd1\x02?\xce\xe0\xf9\x9d\xe7\x8a\xf0\xf1\x8d\xc0\xd5\x8d\x91\xe9P\xcd\xe9\xd4X\x00\xaa\xcdI\t-\xede\xcbT?\xfd\x8b\xa1\xaci0sw(\x1b\xb1\x833\x9fi\x82:9\xb4/ H\x07b\xd3\xf5-\xcbS`\x82\x10\x0b\xd1\x8f\xb8I\xce/\x14\xa20i\xa7\xef\xb8=\xe2Z\x15?z\xa9\x1b\xc2k\x0et\xf1\x18\x16\x07\xd8\x9a\xfd\xea\xe9\xb2Fq\x96\x04r\xcb\x16\xb3v\xfd\xac\xb5*\x07s1\x97\xc9\xe1\xf9I\x18\xe2\xf0{\xce\xa6\xba/\xcd\xf8?\xd2*\x8c\xb3f\xe8\x99h\xa8\x13\x03\xafs,\xa5A\xb3b\x9c#\xb7\xa1\x1b2w\xcd`\xd2\x95\r\xcd\x86\x8aq\xfb?\xfaO\xbe\x9d\xe9B\x9e\x80\xa1\xc2\xb5\\\xad\xf8\xf4i\n\xc8\x80j\x8c\x1a\xe2\x0be\xb1F\xb3{Kj\xed\t\xb9\xb3\xf2\x15\xf9\xd3E<7\xe1\xfb\x8d\x88\xc7\x9c\x81#l\x19\x07\xa5\x05\xdd\xdb\xf8\xc3\x1c\xff\xa7\x94\x9c\xc8]t~\x8e$/q\x10`g\xc1\xa1Q\xea|s\xd7\xaa\x9f\x0f\x9c#Og\x13\x95\xda}\x00\xc4\xf1\xc0S\xb8q\x9a\xddT\xffUY~\x07\x81\xc3]Qc\xe6\x7f\r\xd3bd\x0cG. e\xb2\xae\x80>,C\x81\xad\x83\xe4\xb5\x1f\x8c\xec\x8a$\xe3\x0c\xf2r\xa9\xed\xaf[[\xddL\xdd\x16\xf7\x1d&\x7f\xd8C\x0f\xc72\xcb\xd3J\xb4\x8a\xb9\n(\x86\x95B\xf4\xcd\x1b\xd5\xe4\xab\xb2G\xf1\xce!\x07@\xf0-\x1d\xbf\xcbD\xd3\x89\x07\\%\xe7\xce\x1d\x16z\xa4a\xf2\xedS\xcej\xd9uC]\x84\xa2\x801\xce\xf71\x14-\xc1\r}\xc8\xc6\x03W\xd4$\x9e\xe8QO\xec\xb3\x9e\x83\xa6\x90tu\x15X]\xb8!\x7f\xcaQ&bu\xb0!^\xcd\x99P\xbe\xe46J]\xa1\xa3\x8c\xcd\xc8\xca\xf8\xec\n\xc8\x8c\xc0\xd2\xd2$8\x95\x9d\x81\xdb\x9e\x05\x8f\x84\xaa\xfa\x07ci\xd5\xcb4\x1c\x9b\t\xe6\x02`M\xe1\x8e%P+.BI8\xcd\x94WT\x14~B5\x8fy\xafu\xdd\x10\x8dj"_\x9f\xd8\x84\xc3\xb9\xcb\x19m\x7f\xef`\x11\x06B\xd6g\xea\xe1\xc2\xc3\x19@\x0f\xd59\xf0\x01D\xfe\x08\x9ep~pE\xb1\x81\xd4\x7f\x9f>?_\xb2C\xfc%\x98\xfe,c!\x9c\x96\xaeH\xcc\x1cic(\xe6\x80)\x90W\x07\xfaOmQ:v\x87H[\xaa?\xf4Y\x89\xbaz\x96B\x96\xfbZ\x98\xf9Q\xfe\xe8\x1a\xf8.n\xca*\xc3`\xaa\x91}\xa4\xe7\x87\xf7\xff\xf4^\xf8\x01:r\xc8(\xa8\xfdf|WY[\xa7\xf4w\xfa@\xbc\\^w\xa8\xeb\x82\xe35G\xf7\x06f\xe34\x9aA\xbc\x1e\x88\xa84\xd2]\x95\x9d\xa6%T\xbb\x0bt\x93I\xc0+7\xa31\xa3?9\xb0B>\xd6J\ttT\x8f\xf8\x19\xec`\xab\xc0\xab\xab\x93G;UN)\x1b|\x0b\xde\x1d{\xffPLz\x08\xe4-f\\\xf1\xafM\xb7\x9e$:\xd8\xd2;\xfe\xc1\x02c\xa3\x16\x9c\xc5\x9b\xcdt\xb7\x99!\x02\xddL\xd62\xb9\xe7\xb4\x181\xe1S\xedJ\x83\x0b[\xc0B@\x93\x15\xcf\xb0\xaaS\xdd\xbfp{\x1cW0\xd2\x9d\x8aO\xaa\n\xba\x0e\xecm\x92\xdd\x84\x84\nlN\xd8\xe2n\xc7^\x85\x9c\xca\x0e\x05K\x8f\xb41\x9d\x07A\x812\xd4\xb4\'\x16:\xedG\x9d\xbfY\xd3\x05\xef\xd5hq\xaf\x88\xde\x068)\xca\x8b\xd4\x10pE\xc8e\x04i<\x18^\x1b\x7f\xfdJaP\x1f\xd4R\x10\xc5\xae\xe6Q\x08\x8b\xbcy*\x15\xb8\xb7G\xc1R\\\t\xbb\x93g\x9f\x1e\xdb7j\x02h\xe5\\@\xf0A\xfc^\x84U \xc9\xa7\x92%W\x0ep\x03\xb95gH!N\xfcjG\xb4\xc72\x0eq\x10W\xdd\xe8^Y\xa2p\xab\xd1\xcf\xe4\xd8q\xa9\xce]\xf9\xdbJ\x8e\xe9\xaaS\xed6y\x93~2\x8e\xbbx\x0eIF5\x16\xdco\xd1\xec;\tqm \xd3\x80\x93\xcc\xb38\xe9\x12\x1a\xb1\xbd\x1f\xb5\x80\xef\x8bR@f\'QF\xac\xd1\x1e\x18\x1e-\x80\x85\x82\xe8\x9f\xb6|E\xc1c\xe4\xcc\xd0\x96\x88\xc5\xa0\x83"\xa3\xa69\xfb\x10\xc2XN\x1e9\xe9\xeeB\x01\x00\xe8w\xc3\xb1\xb6\x9e\xbd\x8d\n\x92\x94Vc\x85mjA=\x92?\x12\x17\xa2nJV$\xcd\xea/XO\x00\xf9\x8b\xdc\xf0\xcef\xc8\x06\x94*M\xce\xfb\x0b\xe5/SC\xad\xed\xdfu\x95\x83S\xdc\xa9\xad:\xdc\t\xc8r\x9c\x1f\x16\x85\x0e\x11\xff\xa4\xeeJI\xddK\xf4!e\x9c\xb61\x81\xe90\x13\x06\t*\x86H\x86\xf7\r\x01\t\x151\x06\x04\x04\x01\x00\x00\x000W\x06\t*\x86H\x86\xf7\r\x01\t\x141J\x1eH\x00b\x00d\x008\x003\x007\x009\x00c\x001\x00-\x00a\x006\x005\x00c\x00-\x004\x003\x00e\x00e\x00-\x008\x001\x000\x00a\x00-\x005\x00a\x002\x004\x003\x004\x006\x003\x00f\x00c\x00e\x00c0y\x06\t+\x06\x01\x04\x01\x827\x11\x011l\x1ej\x00M\x00i\x00c\x00r\x00o\x00s\x00o\x00f\x00t\x00 \x00E\x00n\x00h\x00a\x00n\x00c\x00e\x00d\x00 \x00R\x00S\x00A\x00 \x00a\x00n\x00d\x00 \x00A\x00E\x00S\x00 \x00C\x00r\x00y\x00p\x00t\x00o\x00g\x00r\x00a\x00p\x00h\x00i\x00c\x00 \x00P\x00r\x00o\x00v\x00i\x00d\x00e\x00r0\x82\x03\xbf\x06\t*\x86H\x86\xf7\r\x01\x07\x06\xa0\x82\x03\xb00\x82\x03\xac\x02\x01\x000\x82\x03\xa5\x06\t*\x86H\x86\xf7\r\x01\x07\x010\x1c\x06\n*\x86H\x86\xf7\r\x01\x0c\x01\x060\x0e\x04\x08\xd0~p\xe13w{_\x02\x02\x07\xd0\x80\x82\x03x\x1e]uF\xa8\xb8\xdf\xf4\xb0x4\xf4\xe3r\xea\xee\xc7\x83k;\x07.\xde!W\x98b\x0f]\x87v\x06^\xe2\xc4Z\xd9\x16\xee\xe4z\xb5\xa5^R\xf8!V\x01\xcb\x90\xbf\x05\xdfWN\x8c\xe2\x059\xba\x02\xa0\xf3\xb0d\x0f\x94 |\xe89\x07\xa8\xff\x86\xc5\x12\x8c\xb0Pa\xaa\xb2\xb3\xbe\xe7\xd5 \xc7\xf6\xa5\xa0\xe9\x87\x93\x16\xea\xebPV\xc9\xda\x97B\x1e\xa1M)\x1c^\xe7\xfb\xbe\x00q;\x8e\xf4\r\xf3q\x87\xb9)g\xc8\xa1\x07i\x06\xca\xc8\x97S\xd3\xd3ihO\xaf(\xd7\xa0\t\xefo\x10\xb8\xeaE\xfc\xdf\x18\xf0\xd4\xe5\xbc\xbc\x12\x11\xc2p\xb4\xfd\xf8\x1b\x0e\xa8\xa9.N[?\xd2\xf3\x0f\xda\x1cp\x99\x86\xbe\xc3\xa8t\\\xa4\x88?\x90\xb3\xa3qvh\xa5\x06\xf1a\xb6%\x18\x8eqc2\x04\xc7\xc0>i\xdc\x8fI\xbc\xb0\x82\xdc\x87j\xd9\xff\x05e{\xd2\x01\x0e\xf0\x91\x7f\xcb\xf8\xa27\xfb\xd1\x9c\x96\xadS\x97\x17\xb0\xf3F\xb4\xc6\xc3(/\xc4\x88\xdf\xf3M@n\xc4\xd88\xd0%hq\x0c\xae\xab\xbf\x91\xe6\xff\xd4np\xed\x9a\xab\x04\x83^/!\xf7\xf5\x91\xa54\xc9n\xb14\xb6\x8d\xdbQB-\x04\xf8\x98H\x98\xe10Ksw\xac\x0cc@\x92\x10\x1cA\x96\xb39gljl6\xd4cz\xd8it\x1e\xedZ]\xfa\x0c\x93\xce\x97\xcd"\x93e\xf8\xb1\x02b\xb9 \xb5\xc5W\x12\xf5\xe7\x81s\xf9$+\xf4\xee\x13\xdeQ\x02Cq\x15x\xe3\xd8\xbe&\xa4,k0U\xa9\x87\x15\xc7\x86\x82\xb0@Q\xfb\xbb\xf6\xa11\xbf\x1d[,\xec\x16`\xc5\xc2\x0f/\n\x8f\x9f\xebf\xfa\xf3\xcfW\x9d\xedD\xf4\xdf\x8c\x88\xc3{\x89s\xf6\xb20+\xa2J\xffx\xbd\xad\x9a9/\xee\xc2x?\xce\xc2{\xb8\x1b)\x0e\x8ao\xe3\x86{%n.~\x8c\x95\xc9\x85[\xfa\x1a070\x1f0\x07\x06\x05+\x0e\x03\x02\x1a\x04\x14\xc2\xeb\x94\x0bl\xc6q36\x8c\x8b\xfb\x87\xa2N\x0e\xa4\x00\x11.\x04\x14R)\xd7xhz=l\x84,\xcc\x07\xa6\xef\xd7i\xb0\xe9\x13o' - async def _import_common_certificate(self, client, cert_name): - cert_password = "123" + cert_password = "1234" cert_policy = CertificatePolicy( issuer_name="Self", subject="CN=DefaultPolicy", @@ -79,7 +77,7 @@ async def _import_common_certificate(self, client, cert_name): key_usage=["digitalSignature", "keyEncipherment"], ) return await client.import_certificate( - cert_name, CertificateClientTests.CERT_CONTENT_PASSWORD_ENODED, policy=cert_policy, password=cert_password + cert_name, CERT_CONTENT_PASSWORD_ENCODED, policy=cert_policy, password=cert_password ) def _validate_certificate_operation(self, pending_cert_operation, vault, cert_name, original_cert_policy): @@ -226,7 +224,7 @@ async def test_import_certificate_not_password_encoded_no_policy(self, client, * # without passing in 'password' certificate = await client.import_certificate( certificate_name=self.get_resource_name("importNotPasswordEncodedCertificate"), - certificate_bytes=CertificateClientTests.CERT_CONTENT_NOT_PASSWORD_ENCODED, + certificate_bytes=CERT_CONTENT_NOT_PASSWORD_ENCODED, ) self.assertIsNotNone(certificate.policy) @@ -237,8 +235,8 @@ async def test_import_certificate_password_encoded_no_policy(self, client, **kwa # when importing the certificate certificate = await client.import_certificate( certificate_name=self.get_resource_name("importPasswordEncodedCertificate"), - certificate_bytes=CertificateClientTests.CERT_CONTENT_PASSWORD_ENODED, - password="123", + certificate_bytes=CERT_CONTENT_PASSWORD_ENCODED, + password="1234", ) self.assertIsNotNone(certificate.policy) From 80b6678c0fd4fb6a572a37deb491fea55f2f1cca Mon Sep 17 00:00:00 2001 From: Rakshith Bhyravabhotla Date: Fri, 6 Aug 2021 15:23:06 -0700 Subject: [PATCH 003/104] Imrprove LogsQuery Request (#20132) * Imrprove docstrings * more docs changes * Apply suggestions from code review Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> --- sdk/monitor/azure-monitor-query/README.md | 38 ++++++ .../azure/monitor/query/_logs_query_client.py | 13 +- .../monitor/query/_metrics_query_client.py | 10 +- .../azure/monitor/query/_models.py | 118 ++++++++++-------- .../query/aio/_logs_query_client_async.py | 1 + 5 files changed, 114 insertions(+), 66 deletions(-) diff --git a/sdk/monitor/azure-monitor-query/README.md b/sdk/monitor/azure-monitor-query/README.md index 3405d1258f58..25bacc3dc438 100644 --- a/sdk/monitor/azure-monitor-query/README.md +++ b/sdk/monitor/azure-monitor-query/README.md @@ -212,6 +212,44 @@ for rsp in response: print(df) ``` +#### Handling the response for Logs Query + +The `query` API returns the `LogsQueryResult` while the `batch_query` API returns the `LogsBatchQueryResult`. + +Here is a heirarchy of the response: + +``` +LogsQueryResult / LogsBatchQueryResult +|---id (this exists in `LogsBatchQueryResult` object only) +|---status (this exists in `LogsBatchQueryResult` object only) +|---statistics +|---render +|---error +|---tables (list of `LogsQueryResultTable` objects) + |---name + |---rows + |---columns (list of `LogsQueryResultColumn` objects) + |---name + |---type +``` + +So, to handle a response with tables and display it using pandas, + +```python +table = response.tables[0] +df = pd.DataFrame(table.rows, columns=[col.name for col in table.columns]) +``` +A full sample can be found [here](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/monitor/azure-monitor-query/samples/sample_log_query_client.py). + +In a very similar fashion, to handle a batch response, + +```python +for result in response: + table = result.tables[0] + df = pd.DataFrame(table.rows, columns=[col.name for col in table.columns]) +``` +A full sample can be found [here](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/monitor/azure-monitor-query/samples/sample_batch_query.py). + ### Query metrics The following example gets metrics for an Event Grid subscription. The resource URI is that of an event grid topic. diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_logs_query_client.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_logs_query_client.py index 0cad4adeecea..3c5b6fa9ada4 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_logs_query_client.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_logs_query_client.py @@ -22,11 +22,6 @@ class LogsQueryClient(object): """LogsQueryClient - :param credential: The credential to authenticate the client - :type credential: ~azure.core.credentials.TokenCredential - :keyword endpoint: The endpoint to connect to. Defaults to 'https://api.loganalytics.io'. - :paramtype endpoint: str - .. admonition:: Example: .. literalinclude:: ../samples/sample_log_query_client.py @@ -35,6 +30,11 @@ class LogsQueryClient(object): :language: python :dedent: 0 :caption: Creating the LogsQueryClient with a TokenCredential. + + :param credential: The credential to authenticate the client. + :type credential: ~azure.core.credentials.TokenCredential + :keyword endpoint: The endpoint to connect to. Defaults to 'https://api.loganalytics.io'. + :paramtype endpoint: str """ def __init__(self, credential, **kwargs): @@ -139,7 +139,7 @@ def batch_query(self, queries, **kwargs): :param queries: The list of queries that should be processed :type queries: list[dict] or list[~azure.monitor.query.LogsBatchQueryRequest] - :return: BatchResponse, or the result of cls(response) + :return: List of LogsBatchQueryResult, or the result of cls(response) :rtype: ~list[~azure.monitor.query.LogsBatchQueryResult] :raises: ~azure.core.exceptions.HttpResponseError @@ -156,6 +156,7 @@ def batch_query(self, queries, **kwargs): queries = [LogsBatchQueryRequest(**q) for q in queries] except (KeyError, TypeError): pass + queries = [q._to_generated() for q in queries] # pylint: disable=protected-access try: request_order = [req.id for req in queries] except AttributeError: diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_metrics_query_client.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_metrics_query_client.py index efa2d6659535..2467b92216f8 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_metrics_query_client.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_metrics_query_client.py @@ -25,11 +25,6 @@ class MetricsQueryClient(object): """MetricsQueryClient - :param credential: The credential to authenticate the client - :type credential: ~azure.core.credentials.TokenCredential - :keyword endpoint: The endpoint to connect to. Defaults to 'https://management.azure.com'. - :paramtype endpoint: str - .. admonition:: Example: .. literalinclude:: ../samples/sample_metrics_query_client.py @@ -38,6 +33,11 @@ class MetricsQueryClient(object): :language: python :dedent: 0 :caption: Creating the MetricsQueryClient with a TokenCredential. + + :param credential: The credential to authenticate the client. + :type credential: ~azure.core.credentials.TokenCredential + :keyword endpoint: The endpoint to connect to. Defaults to 'https://management.azure.com'. + :paramtype endpoint: str """ def __init__(self, credential, **kwargs): diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py index 5bc5cf00cceb..1f6553aa3bb7 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py @@ -25,8 +25,8 @@ class LogsQueryResultTable(object): :type name: str :param columns: Required. The list of columns in this table. :type columns: list[~azure.monitor.query.LogsQueryResultColumn] - :keyword rows: Required. The resulting rows from this query. - :paramtype rows: list[list[str]] + :param rows: Required. The resulting rows from this query. + :type rows: list[list[str]] """ def __init__(self, name, columns, rows): # type: (str, List[LogsQueryResultColumn], List[List[str]]) -> None @@ -46,10 +46,10 @@ def _from_generated(cls, generated): class LogsQueryResultColumn(InternalColumn): """A column in a table. - :keyword name: The name of this column. - :paramtype name: str - :keyword type: The data type of this column. - :paramtype type: str + :ivar name: The name of this column. + :vartype name: str + :ivar type: The data type of this column. + :vartype type: str """ _attribute_map = { @@ -109,22 +109,22 @@ class MetricsResult(object): All required parameters must be populated in order to send to Azure. - :keyword cost: The integer value representing the cost of the query, for data case. - :paramtype cost: int - :keyword timespan: Required. The timespan for which the data was retrieved. Its value consists of + :ivar cost: The integer value representing the cost of the query, for data case. + :vartype cost: int + :ivar timespan: Required. The timespan for which the data was retrieved. Its value consists of two datetimes concatenated, separated by '/'. This may be adjusted in the future and returned back from what was originally requested. - :paramtype timespan: str - :keyword interval: The interval (window size) for which the metric data was returned in. This + :vartype timespan: str + :ivar interval: The interval (window size) for which the metric data was returned in. This may be adjusted in the future and returned back from what was originally requested. This is not present if a metadata request was made. - :paramtype interval: ~datetime.timedelta - :keyword namespace: The namespace of the metrics been queried. - :paramtype namespace: str - :keyword resourceregion: The region of the resource been queried for metrics. - :paramtype resourceregion: str - :keyword metrics: Required. the value of the collection. - :paramtype metrics: list[~monitor_query_client.models.Metric] + :vartype interval: ~datetime.timedelta + :ivar namespace: The namespace of the metrics that has been queried. + :vartype namespace: str + :ivar resourceregion: The region of the resource that has been queried for metrics. + :vartype resourceregion: str + :ivar metrics: Required. The value of the collection. + :vartype metrics: list[~monitor_query_client.models.Metric] """ def __init__(self, **kwargs): # type: (Any) -> None @@ -148,7 +148,7 @@ def _from_generated(cls, generated): metrics=[Metric._from_generated(m) for m in generated.value] # pylint: disable=protected-access ) -class LogsBatchQueryRequest(InternalLogQueryRequest): +class LogsBatchQueryRequest(object): """A single request in a batch. Variables are only populated by the server, and will be ignored when sending a request. @@ -212,6 +212,14 @@ def __init__(self, query, workspace_id, duration=None, **kwargs): #pylint: disab self.headers = headers self.workspace = workspace_id + def _to_generated(self): + return InternalLogQueryRequest( + id=self.id, + body=self.body, + headers=self.headers, + workspace=self.workspace + ) + class LogsBatchQueryResult(object): """The LogsBatchQueryResult. @@ -265,12 +273,12 @@ def _from_generated(cls, generated): class LogsBatchResultError(object): """Error response for a batch request. - :param message: The error message describing the cause of the error. - :type message: str + :ivar message: The error message describing the cause of the error. + :vartype message: str :param code: The error code. - :type code: str + :vartype code: str :param details: The details of the error. - :type inner_error: list[~azure.monitor.query.ErrorDetails] + :vartype inner_error: list[~azure.monitor.query.ErrorDetails] """ def __init__(self, **kwargs): # type: (Any) -> None @@ -299,7 +307,7 @@ class MetricNamespace(object): :keyword name: The name of the namespace. :paramtype name: str :keyword metric_namespace_name: The fully qualified namespace name. - :paramtype properties: str + :paramtype metric_namespace_name: str """ def __init__( self, @@ -399,19 +407,19 @@ class MetricValue(object): All required parameters must be populated in order to send to Azure. - :keyword time_stamp: Required. the timestamp for the metric value in ISO 8601 format. - :paramtype time_stamp: ~datetime.datetime - :keyword average: the average value in the time range. - :paramtype average: float - :keyword minimum: the least value in the time range. - :paramtype minimum: float - :keyword maximum: the greatest value in the time range. - :paramtype maximum: float - :keyword total: the sum of all of the values in the time range. - :paramtype total: float - :keyword count: the number of samples in the time range. Can be used to determine the number of + :ivar time_stamp: Required. The timestamp for the metric value in ISO 8601 format. + :vartype time_stamp: ~datetime.datetime + :ivar average: The average value in the time range. + :vartype average: float + :ivar minimum: The least value in the time range. + :vartype minimum: float + :ivar maximum: The greatest value in the time range. + :vartype maximum: float + :ivar total: The sum of all of the values in the time range. + :vartype total: float + :ivar count: The number of samples in the time range. Can be used to determine the number of values that contributed to the average value. - :paramtype count: float + :vartype count: float """ def __init__( self, @@ -443,18 +451,18 @@ class Metric(object): All required parameters must be populated in order to send to Azure. - :keyword id: Required. the metric Id. - :paramtype id: str - :keyword type: Required. the resource type of the metric resource. - :paramtype type: str - :keyword name: Required. the name of the metric. - :paramtype name: str - :keyword unit: Required. the unit of the metric. Possible values include: "Count", "Bytes", + :ivar id: Required. The metric Id. + :vartype id: str + :ivar type: Required. The resource type of the metric resource. + :vartype type: str + :ivar name: Required. The name of the metric. + :vartype name: str + :ivar unit: Required. The unit of the metric. Possible values include: "Count", "Bytes", "Seconds", "CountPerSecond", "BytesPerSecond", "Percent", "MilliSeconds", "ByteSeconds", "Unspecified", "Cores", "MilliCores", "NanoCores", "BitsPerSecond". - :paramtype unit: str - :keyword timeseries: Required. the time series returned when a data query is performed. - :paramtype timeseries: list[~monitor_query_client.models.TimeSeriesElement] + :vartype unit: str + :ivar timeseries: Required. The time series returned when a data query is performed. + :vartype timeseries: list[~monitor_query_client.models.TimeSeriesElement] """ def __init__( self, @@ -485,11 +493,11 @@ def _from_generated(cls, generated): class TimeSeriesElement(object): """A time series result type. The discriminator value is always TimeSeries in this case. - :keyword metadata_values: the metadata values returned if $filter was specified in the call. - :paramtype metadata_values: list[~monitor_query_client.models.MetadataValue] - :keyword data: An array of data points representing the metric values. This is only returned if + :ivar metadata_values: The metadata values returned if $filter was specified in the call. + :vartype metadata_values: list[~monitor_query_client.models.MetadataValue] + :ivar data: An array of data points representing the metric values. This is only returned if a result type of data is specified. - :paramtype data: list[~monitor_query_client.models.MetricValue] + :vartype data: list[~monitor_query_client.models.MetricValue] """ _attribute_map = { @@ -521,10 +529,10 @@ def _from_generated(cls, generated): class MetricsMetadataValue(object): """Represents a metric metadata value. - :keyword name: the name of the metadata. - :paramtype name: str - :keyword value: the value of the metadata. - :paramtype value: str + :ivar name: The name of the metadata. + :vartype name: str + :ivar value: The value of the metadata. + :vartype value: str """ def __init__( self, @@ -574,7 +582,7 @@ def _from_generated(cls, generated): class AggregationType(str, Enum): - """the aggregation type of the metric. + """The aggregation type of the metric. """ NONE = "None" diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_logs_query_client_async.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_logs_query_client_async.py index 66e7fe6b3fe0..7f1185ec1977 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_logs_query_client_async.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_logs_query_client_async.py @@ -134,6 +134,7 @@ async def batch_query( queries = [LogsBatchQueryRequest(**q) for q in queries] except (KeyError, TypeError): pass + queries = [q._to_generated() for q in queries] # pylint: disable=protected-access try: request_order = [req.id for req in queries] except AttributeError: From c80ba86091e5e00884731639c6bd13321779d391 Mon Sep 17 00:00:00 2001 From: Krista Pratico Date: Fri, 6 Aug 2021 16:27:39 -0700 Subject: [PATCH 004/104] py27 strikes again (#20136) --- .../samples/async_samples/sample_extract_summary_async.py | 2 +- .../azure-ai-textanalytics/samples/sample_extract_summary.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/textanalytics/azure-ai-textanalytics/samples/async_samples/sample_extract_summary_async.py b/sdk/textanalytics/azure-ai-textanalytics/samples/async_samples/sample_extract_summary_async.py index ac0d3428c2d9..039b2d04ee8a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/samples/async_samples/sample_extract_summary_async.py +++ b/sdk/textanalytics/azure-ai-textanalytics/samples/async_samples/sample_extract_summary_async.py @@ -45,7 +45,7 @@ async def sample_extractive_summarization_async(): "Services, I have been working with a team of amazing scientists and engineers to turn this quest into a " "reality. In my role, I enjoy a unique perspective in viewing the relationship among three attributes of " "human cognition: monolingual text (X), audio or visual sensory signals, (Y) and multilingual (Z). At the " - "intersection of all three, there's magic—what we call XYZ-code as illustrated in Figure 1—a joint " + "intersection of all three, there's magic-what we call XYZ-code as illustrated in Figure 1-a joint " "representation to create more powerful AI that can speak, hear, see, and understand humans better. " "We believe XYZ-code will enable us to fulfill our long-term vision: cross-domain transfer learning, " "spanning modalities and languages. The goal is to have pretrained models that can jointly learn " diff --git a/sdk/textanalytics/azure-ai-textanalytics/samples/sample_extract_summary.py b/sdk/textanalytics/azure-ai-textanalytics/samples/sample_extract_summary.py index d89a26120364..4cd606ab304f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/samples/sample_extract_summary.py +++ b/sdk/textanalytics/azure-ai-textanalytics/samples/sample_extract_summary.py @@ -46,7 +46,7 @@ def sample_extractive_summarization(): "Services, I have been working with a team of amazing scientists and engineers to turn this quest into a " "reality. In my role, I enjoy a unique perspective in viewing the relationship among three attributes of " "human cognition: monolingual text (X), audio or visual sensory signals, (Y) and multilingual (Z). At the " - "intersection of all three, there's magic—what we call XYZ-code as illustrated in Figure 1—a joint " + "intersection of all three, there's magic-what we call XYZ-code as illustrated in Figure 1-a joint " "representation to create more powerful AI that can speak, hear, see, and understand humans better. " "We believe XYZ-code will enable us to fulfill our long-term vision: cross-domain transfer learning, " "spanning modalities and languages. The goal is to have pretrained models that can jointly learn " From 62c27956c063c01fdca2880467009dfa5aeefba3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= <39780829+mccoyp@users.noreply.github.com> Date: Fri, 6 Aug 2021 18:05:36 -0700 Subject: [PATCH 005/104] [Key Vault] Implement secure key release (#20048) --- sdk/keyvault/azure-keyvault-keys/CHANGELOG.md | 7 + .../azure/keyvault/keys/__init__.py | 16 +- .../azure/keyvault/keys/_client.py | 115 ++++++++++-- .../azure/keyvault/keys/_enums.py | 19 +- .../azure/keyvault/keys/_models.py | 67 ++++++- .../azure/keyvault/keys/aio/_client.py | 115 ++++++++++-- .../azure-keyvault-keys/tests/_test_case.py | 40 ++++ ...release_policy_error_7_3_preview_mhsm.yaml | 86 +++++++++ ...imported_key_release_7_3_preview_mhsm.yaml | 175 ++++++++++++++++++ ...ent.test_key_release_7_3_preview_mhsm.yaml | 168 +++++++++++++++++ ...not_exportable_error_7_3_preview_mhsm.yaml | 86 +++++++++ ...pdate_release_policy_7_3_preview_mhsm.yaml | 138 ++++++++++++++ ...release_policy_error_7_3_preview_mhsm.yaml | 63 +++++++ ...imported_key_release_7_3_preview_mhsm.yaml | 137 ++++++++++++++ ...ync.test_key_release_7_3_preview_mhsm.yaml | 130 +++++++++++++ ...not_exportable_error_7_3_preview_mhsm.yaml | 63 +++++++ ...pdate_release_policy_7_3_preview_mhsm.yaml | 100 ++++++++++ .../tests/test_key_client.py | 97 ++++++++-- .../tests/test_keys_async.py | 91 ++++++++- sdk/keyvault/test-resources.json | 15 +- 20 files changed, 1671 insertions(+), 57 deletions(-) create mode 100644 sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_exportable_without_release_policy_error_7_3_preview_mhsm.yaml create mode 100644 sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_imported_key_release_7_3_preview_mhsm.yaml create mode 100644 sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_key_release_7_3_preview_mhsm.yaml create mode 100644 sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_release_policy_not_exportable_error_7_3_preview_mhsm.yaml create mode 100644 sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_update_release_policy_7_3_preview_mhsm.yaml create mode 100644 sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_exportable_without_release_policy_error_7_3_preview_mhsm.yaml create mode 100644 sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_imported_key_release_7_3_preview_mhsm.yaml create mode 100644 sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_key_release_7_3_preview_mhsm.yaml create mode 100644 sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_release_policy_not_exportable_error_7_3_preview_mhsm.yaml create mode 100644 sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_update_release_policy_7_3_preview_mhsm.yaml diff --git a/sdk/keyvault/azure-keyvault-keys/CHANGELOG.md b/sdk/keyvault/azure-keyvault-keys/CHANGELOG.md index 84f5b81d9def..9ced373b99d4 100644 --- a/sdk/keyvault/azure-keyvault-keys/CHANGELOG.md +++ b/sdk/keyvault/azure-keyvault-keys/CHANGELOG.md @@ -3,6 +3,13 @@ ## 4.5.0b2 (Unreleased) ### Features Added +- Added support for secure key release from a Managed HSM + ([#19588](https://github.com/Azure/azure-sdk-for-python/issues/19588)) + - Added `release_key` method to `KeyClient` for releasing the private component of a key + - Added `exportable` and `release_policy` keyword-only arguments to key creation and import + methods + - Added `KeyExportEncryptionAlgorithm` enum for specifying an encryption algorithm to be used + in key release ### Breaking Changes > These changes do not impact the API of stable versions such as 4.4.0. diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/__init__.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/__init__.py index 8de4b86600e1..db89d14689a8 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/__init__.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/__init__.py @@ -2,9 +2,18 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------- -from ._enums import KeyCurveName, KeyOperation, KeyType +from ._enums import KeyCurveName, KeyExportEncryptionAlgorithm, KeyOperation, KeyType from ._shared.client_base import ApiVersion -from ._models import DeletedKey, JsonWebKey, KeyProperties, KeyVaultKey, KeyVaultKeyIdentifier, RandomBytes +from ._models import ( + DeletedKey, + JsonWebKey, + KeyProperties, + KeyReleasePolicy, + KeyVaultKey, + KeyVaultKeyIdentifier, + RandomBytes, + ReleaseKeyResult, +) from ._client import KeyClient __all__ = [ @@ -14,11 +23,14 @@ "KeyVaultKey", "KeyVaultKeyIdentifier", "KeyCurveName", + "KeyExportEncryptionAlgorithm", "KeyOperation", "KeyType", "DeletedKey", "KeyProperties", + "KeyReleasePolicy", "RandomBytes", + "ReleaseKeyResult", ] from ._version import VERSION diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_client.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_client.py index cad5ec0c34c7..498d6afb32b2 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_client.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_client.py @@ -8,7 +8,7 @@ from ._shared import KeyVaultClientBase from ._shared.exceptions import error_map as _error_map from ._shared._polling import DeleteRecoverPollingMethod, KeyVaultOperationPoller -from ._models import DeletedKey, KeyVaultKey, KeyProperties, RandomBytes +from ._models import DeletedKey, KeyVaultKey, KeyProperties, RandomBytes, ReleaseKeyResult try: from typing import TYPE_CHECKING @@ -28,6 +28,7 @@ class KeyClient(KeyVaultClientBase): :param str vault_url: URL of the vault the client will access. This is also called the vault's "DNS Name". :param credential: An object which can provide an access token for the vault, such as a credential from :mod:`azure.identity` + :keyword api_version: version of the Key Vault API to use. Defaults to the most recent. :paramtype api_version: ~azure.keyvault.keys.ApiVersion :keyword transport: transport to use. Defaults to :class:`~azure.core.pipeline.transport.RequestsTransport`. @@ -44,6 +45,14 @@ class KeyClient(KeyVaultClientBase): # pylint:disable=protected-access + def _get_attributes(self, enabled, not_before, expires_on, exportable=None): + """Return a KeyAttributes object if none-None attributes are provided, or None otherwise""" + if enabled is not None or not_before is not None or expires_on is not None or exportable is not None: + return self._models.KeyAttributes( + enabled=enabled, not_before=not_before, expires=expires_on, exportable=exportable + ) + return None + @distributed_trace def create_key(self, name, key_type, **kwargs): # type: (str, Union[str, azure.keyvault.keys.KeyType], **Any) -> KeyVaultKey @@ -54,6 +63,7 @@ def create_key(self, name, key_type, **kwargs): :param str name: The name of the new key. :param key_type: The type of key to create :type key_type: ~azure.keyvault.keys.KeyType or str + :keyword int size: Key size in bits. Applies only to RSA and symmetric keys. Consider using :func:`create_rsa_key` or :func:`create_oct_key` instead. :keyword curve: Elliptic curve name. Applies only to elliptic curve keys. Defaults to the NIST P-256 @@ -67,6 +77,10 @@ def create_key(self, name, key_type, **kwargs): :paramtype tags: dict[str, str] :keyword ~datetime.datetime not_before: Not before date of the key in UTC :keyword ~datetime.datetime expires_on: Expiry date of the key in UTC + :keyword bool exportable: Whether the private key can be exported. + :keyword release_policy: The policy rules under which the key can be exported. + :paramtype release_policy: ~azure.keyvault.keys.KeyReleasePolicy + :returns: The created key :rtype: ~azure.keyvault.keys.KeyVaultKey :raises: :class:`~azure.core.exceptions.HttpResponseError` @@ -82,11 +96,14 @@ def create_key(self, name, key_type, **kwargs): enabled = kwargs.pop("enabled", None) not_before = kwargs.pop("not_before", None) expires_on = kwargs.pop("expires_on", None) - if enabled is not None or not_before is not None or expires_on is not None: - attributes = self._models.KeyAttributes(enabled=enabled, not_before=not_before, expires=expires_on) - else: - attributes = None + exportable = kwargs.pop("exportable", None) + attributes = self._get_attributes( + enabled=enabled, not_before=not_before, expires_on=expires_on, exportable=exportable + ) + policy = kwargs.pop("release_policy", None) + if policy is not None: + policy = self._models.KeyReleasePolicy(data=policy.data, content_type=policy.content_type) parameters = self._models.KeyCreateParameters( kty=key_type, key_size=kwargs.pop("size", None), @@ -95,6 +112,7 @@ def create_key(self, name, key_type, **kwargs): tags=kwargs.pop("tags", None), curve=kwargs.pop("curve", None), public_exponent=kwargs.pop("public_exponent", None), + release_policy=policy, ) bundle = self._client.create_key( @@ -114,6 +132,7 @@ def create_rsa_key(self, name, **kwargs): Requires the keys/create permission. :param str name: The name for the new key. + :keyword int size: Key size in bits, for example 2048, 3072, or 4096. :keyword int public_exponent: The RSA public exponent to use. Applies only to RSA keys created in a Managed HSM. :keyword bool hardware_protected: Whether the key should be created in a hardware security module. @@ -125,6 +144,10 @@ def create_rsa_key(self, name, **kwargs): :paramtype tags: dict[str, str] :keyword ~datetime.datetime not_before: Not before date of the key in UTC :keyword ~datetime.datetime expires_on: Expiry date of the key in UTC + :keyword bool exportable: Whether the private key can be exported. + :keyword release_policy: The policy rules under which the key can be exported. + :paramtype release_policy: ~azure.keyvault.keys.KeyReleasePolicy + :returns: The created key :rtype: ~azure.keyvault.keys.KeyVaultKey :raises: :class:`~azure.core.exceptions.HttpResponseError` @@ -148,6 +171,7 @@ def create_ec_key(self, name, **kwargs): Requires the keys/create permission. :param str name: The name for the new key. + :keyword curve: Elliptic curve name. Defaults to the NIST P-256 elliptic curve. :paramtype curve: ~azure.keyvault.keys.KeyCurveName or str :keyword key_operations: Allowed key operations @@ -159,6 +183,10 @@ def create_ec_key(self, name, **kwargs): :paramtype tags: dict[str, str] :keyword ~datetime.datetime not_before: Not before date of the key in UTC :keyword ~datetime.datetime expires_on: Expiry date of the key in UTC + :keyword bool exportable: Whether the private key can be exported. + :keyword release_policy: The policy rules under which the key can be exported. + :paramtype release_policy: ~azure.keyvault.keys.KeyReleasePolicy + :returns: The created key :rtype: ~azure.keyvault.keys.KeyVaultKey :raises: :class:`~azure.core.exceptions.HttpResponseError` @@ -182,6 +210,7 @@ def create_oct_key(self, name, **kwargs): Requires the keys/create permission. :param str name: The name for the new key. + :keyword int size: Key size in bits, for example 128, 192, or 256. :keyword key_operations: Allowed key operations. :paramtype key_operations: list[~azure.keyvault.keys.KeyOperation or str] @@ -192,6 +221,10 @@ def create_oct_key(self, name, **kwargs): :paramtype tags: dict[str, str] :keyword ~datetime.datetime not_before: Not before date of the key in UTC :keyword ~datetime.datetime expires_on: Expiry date of the key in UTC + :keyword bool exportable: Whether the key can be exported. + :keyword release_policy: The policy rules under which the key can be exported. + :paramtype release_policy: ~azure.keyvault.keys.KeyReleasePolicy + :returns: The created key :rtype: ~azure.keyvault.keys.KeyVaultKey :raises: :class:`~azure.core.exceptions.HttpResponseError` @@ -217,6 +250,7 @@ def begin_delete_key(self, name, **kwargs): wait for deletion to complete. :param str name: The name of the key to delete. + :returns: A poller for the delete key operation. The poller's `result` method returns the :class:`~azure.keyvault.keys.DeletedKey` without waiting for deletion to complete. If the vault has soft-delete enabled and you want to permanently delete the key with :func:`purge_deleted_key`, call the @@ -262,6 +296,7 @@ def get_key(self, name, version=None, **kwargs): :param str name: The name of the key to get. :param str version: (optional) A specific version of the key to get. If not specified, gets the latest version of the key. + :rtype: ~azure.keyvault.keys.KeyVaultKey :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` if the key doesn't exist, @@ -286,6 +321,7 @@ def get_deleted_key(self, name, **kwargs): Requires keys/get permission. :param str name: The name of the key + :returns: The deleted key :rtype: ~azure.keyvault.keys.DeletedKey :raises: @@ -363,6 +399,7 @@ def list_properties_of_key_versions(self, name, **kwargs): Requires keys/list permission. :param str name: The name of the key + :returns: An iterator of keys without their cryptographic material :rtype: ~azure.core.paging.ItemPaged[~azure.keyvault.keys.KeyProperties] @@ -397,6 +434,7 @@ def purge_deleted_key(self, name, **kwargs): Requires keys/purge permission. :param str name: The name of the deleted key to purge + :returns: None :raises: :class:`~azure.core.exceptions.HttpResponseError` @@ -422,6 +460,7 @@ def begin_recover_deleted_key(self, name, **kwargs): you want to use the recovered key in another operation immediately. :param str name: The name of the deleted key to recover + :returns: A poller for the recovery operation. The poller's `result` method returns the recovered :class:`~azure.keyvault.keys.KeyVaultKey` without waiting for recovery to complete. If you want to use the recovered key immediately, call the poller's `wait` method, which blocks until the key is ready to use. The @@ -452,7 +491,6 @@ def begin_recover_deleted_key(self, name, **kwargs): return KeyVaultOperationPoller(polling_method) - @distributed_trace def update_key_properties(self, name, version=None, **kwargs): # type: (str, Optional[str], **Any) -> KeyVaultKey @@ -462,6 +500,7 @@ def update_key_properties(self, name, version=None, **kwargs): :param str name: The name of key to update :param str version: (optional) The version of the key to update. If unspecified, the latest version is updated. + :keyword key_operations: Allowed key operations :paramtype key_operations: list[~azure.keyvault.keys.KeyOperation or str] :keyword bool enabled: Whether the key is enabled for use. @@ -469,6 +508,9 @@ def update_key_properties(self, name, version=None, **kwargs): :paramtype tags: dict[str, str] :keyword ~datetime.datetime not_before: Not before date of the key in UTC :keyword ~datetime.datetime expires_on: Expiry date of the key in UTC + :keyword release_policy: The policy rules under which the key can be exported. + :paramtype release_policy: ~azure.keyvault.keys.KeyReleasePolicy + :returns: The updated key :rtype: ~azure.keyvault.keys.KeyVaultKey :raises: @@ -486,15 +528,16 @@ def update_key_properties(self, name, version=None, **kwargs): enabled = kwargs.pop("enabled", None) not_before = kwargs.pop("not_before", None) expires_on = kwargs.pop("expires_on", None) - if enabled is not None or not_before is not None or expires_on is not None: - attributes = self._models.KeyAttributes(enabled=enabled, not_before=not_before, expires=expires_on) - else: - attributes = None + attributes = self._get_attributes(enabled=enabled, not_before=not_before, expires_on=expires_on) + policy = kwargs.pop("release_policy", None) + if policy is not None: + policy = self._models.KeyReleasePolicy(content_type=policy.content_type, data=policy.data) parameters = self._models.KeyUpdateParameters( key_ops=kwargs.pop("key_operations", None), key_attributes=attributes, tags=kwargs.pop("tags", None), + release_policy=policy, ) bundle = self._client.update_key( @@ -519,6 +562,7 @@ def backup_key(self, name, **kwargs): from a vault in a USA region cannot be restored to a vault in an EU region. :param str name: The name of the key to back up + :rtype: bytes :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` if the key doesn't exist, @@ -547,6 +591,7 @@ def restore_key_backup(self, backup, **kwargs): subscription as the source vault. :param bytes backup: A key backup as returned by :func:`backup_key` + :returns: The restored key :rtype: ~azure.keyvault.keys.KeyVaultKey :raises: @@ -579,12 +624,17 @@ def import_key(self, name, key, **kwargs): :param str name: Name for the imported key :param key: The JSON web key to import :type key: ~azure.keyvault.keys.JsonWebKey + :keyword bool hardware_protected: Whether the key should be backed by a hardware security module :keyword bool enabled: Whether the key is enabled for use. :keyword tags: Application specific metadata in the form of key-value pairs. :paramtype tags: dict[str, str] :keyword ~datetime.datetime not_before: Not before date of the key in UTC :keyword ~datetime.datetime expires_on: Expiry date of the key in UTC + :keyword bool exportable: Whether the private key can be exported. + :keyword release_policy: The policy rules under which the key can be exported. + :paramtype release_policy: ~azure.keyvault.keys.KeyReleasePolicy + :returns: The imported key :rtype: ~azure.keyvault.keys.KeyVaultKey :raises: :class:`~azure.core.exceptions.HttpResponseError` @@ -592,16 +642,20 @@ def import_key(self, name, key, **kwargs): enabled = kwargs.pop("enabled", None) not_before = kwargs.pop("not_before", None) expires_on = kwargs.pop("expires_on", None) - if enabled is not None or not_before is not None or expires_on is not None: - attributes = self._models.KeyAttributes(enabled=enabled, not_before=not_before, expires=expires_on) - else: - attributes = None + exportable = kwargs.pop("exportable", None) + attributes = self._get_attributes( + enabled=enabled, not_before=not_before, expires_on=expires_on, exportable=exportable + ) + policy = kwargs.pop("release_policy", None) + if policy is not None: + policy = self._models.KeyReleasePolicy(content_type=policy.content_type, data=policy.data) parameters = self._models.KeyImportParameters( key=key._to_generated_model(), key_attributes=attributes, hsm=kwargs.pop("hardware_protected", None), tags=kwargs.pop("tags", None), + release_policy=policy, ) bundle = self._client.import_key( @@ -613,12 +667,45 @@ def import_key(self, name, key, **kwargs): ) return KeyVaultKey._from_key_bundle(bundle) + @distributed_trace + def release_key(self, name, target, version=None, **kwargs): + # type: (str, str, Optional[str], **Any) -> ReleaseKeyResult + """Releases a key. + + The release key operation is applicable to all key types. The target key must be marked + exportable. This operation requires the keys/release permission. + + :param str name: The name of the key to get. + :param str target: The attestation assertion for the target of the key release. + :param str version: (optional) A specific version of the key to release. If unspecified, the latest version is + released. + + :keyword algorithm: The encryption algorithm to use to protect the released key material. + :paramtype algorithm: ~azure.keyvault.keys.KeyExportEncryptionAlgorithm + :keyword str nonce: A client-provided nonce for freshness. + + :return: The result of the key release. + :rtype: ~azure.keyvault.keys.ReleaseKeyResult + :raises: :class:`~azure.core.exceptions.HttpResponseError` + """ + result = self._client.release( + vault_base_url=self._vault_url, + key_name=name, + key_version=version or "", + parameters=self._models.KeyReleaseParameters( + target=target, nonce=kwargs.pop("nonce", None), enc=kwargs.pop("algorithm", None) + ), + **kwargs + ) + return ReleaseKeyResult(result.value) + @distributed_trace def get_random_bytes(self, count, **kwargs): # type: (int, **Any) -> RandomBytes """Get the requested number of random bytes from a managed HSM. :param int count: The requested number of random bytes. + :return: The random bytes. :rtype: ~azure.keyvault.keys.RandomBytes :raises: diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_enums.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_enums.py index 9de03d93d049..b75eaaa99eb6 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_enums.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_enums.py @@ -2,10 +2,14 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ +# pylint:skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) from enum import Enum +from six import with_metaclass +from azure.core import CaseInsensitiveEnumMeta -class KeyCurveName(str, Enum): + +class KeyCurveName(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): """Supported elliptic curves""" p_256 = "P-256" #: The NIST P-256 elliptic curve, AKA SECG curve SECP256R1. @@ -14,7 +18,15 @@ class KeyCurveName(str, Enum): p_256_k = "P-256K" #: The SECG SECP256K1 elliptic curve. -class KeyOperation(str, Enum): +class KeyExportEncryptionAlgorithm(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): + """Supported algorithms for protecting exported key material""" + + CKM_RSA_AES_KEY_WRAP = "CKM_RSA_AES_KEY_WRAP" + RSA_AES_KEY_WRAP_256 = "RSA_AES_KEY_WRAP_256" + RSA_AES_KEY_WRAP_384 = "RSA_AES_KEY_WRAP_384" + + +class KeyOperation(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): """Supported key operations""" encrypt = "encrypt" @@ -24,9 +36,10 @@ class KeyOperation(str, Enum): verify = "verify" wrap_key = "wrapKey" unwrap_key = "unwrapKey" + export = "export" -class KeyType(str, Enum): +class KeyType(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): """Supported key types""" ec = "EC" #: Elliptic Curve diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_models.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_models.py index 71ccf3a30cda..822cf9d420c6 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_models.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_models.py @@ -71,6 +71,7 @@ def __init__(self, key_id, attributes=None, **kwargs): self._vault_id = KeyVaultKeyIdentifier(key_id) self._managed = kwargs.get("managed", None) self._tags = kwargs.get("tags", None) + self._release_policy = kwargs.pop("release_policy", None) def __repr__(self): # type () -> str @@ -80,8 +81,19 @@ def __repr__(self): def _from_key_bundle(cls, key_bundle): # type: (_models.KeyBundle) -> KeyProperties """Construct a KeyProperties from an autorest-generated KeyBundle""" + # release_policy was added in 7.3-preview + release_policy = None + if hasattr(key_bundle, "release_policy") and key_bundle.release_policy is not None: + release_policy = KeyReleasePolicy( + data=key_bundle.release_policy.data, content_type=key_bundle.release_policy.content_type + ) + return cls( - key_bundle.key.kid, attributes=key_bundle.attributes, managed=key_bundle.managed, tags=key_bundle.tags + key_bundle.key.kid, + attributes=key_bundle.attributes, + managed=key_bundle.managed, + tags=key_bundle.tags, + release_policy=release_policy, ) @classmethod @@ -179,8 +191,8 @@ def recoverable_days(self): :rtype: int """ # recoverable_days was added in 7.1-preview - if self._attributes and hasattr(self._attributes, "recoverable_days"): - return self._attributes.recoverable_days + if self._attributes: + return getattr(self._attributes, "recoverable_days", None) return None @property @@ -210,6 +222,55 @@ def managed(self): """ return self._managed + @property + def exportable(self): + # type: () -> Optional[bool] + """Whether the private key can be exported + + :rtype: bool + """ + # exportable was added in 7.3-preview + if self._attributes: + return getattr(self._attributes, "exportable", None) + return None + + @property + def release_policy(self): + # type: () -> Optional[KeyReleasePolicy] + """The :class:`~azure.keyvault.keys.KeyReleasePolicy` specifying the rules under which the key can be exported. + + :rtype: ~azure.keyvault.keys.KeyReleasePolicy + """ + return self._release_policy + + +class KeyReleasePolicy(object): + """The policy rules under which a key can be exported. + + :param data: Blob encoding the policy rules under which the key can be released. + :type data: bytes + + :keyword content_type: Content type and version of the release policy. Defaults to "application/json; charset=utf-8" + if omitted. + :paramtype content_type: str + """ + + def __init__(self, data, **kwargs): + # type: (bytes, **Any) -> None + self.data = data + self.content_type = kwargs.get("content_type", None) + + +class ReleaseKeyResult(object): + """The result of a key release operation. + + :ivar str value: A signed token containing the released key. + """ + + def __init__(self, value): + # type: (str) -> None + self.value = value + class KeyVaultKey(object): """A key's attributes and cryptographic material. diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/aio/_client.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/aio/_client.py index 38199e20806c..496844d1aa33 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/aio/_client.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/aio/_client.py @@ -11,7 +11,7 @@ from .._shared._polling_async import AsyncDeleteRecoverPollingMethod from .._shared import AsyncKeyVaultClientBase from .._shared.exceptions import error_map as _error_map -from .. import DeletedKey, JsonWebKey, KeyVaultKey, KeyProperties, RandomBytes +from .. import DeletedKey, JsonWebKey, KeyProperties, KeyVaultKey, RandomBytes, ReleaseKeyResult if TYPE_CHECKING: # pylint:disable=ungrouped-imports @@ -26,6 +26,7 @@ class KeyClient(AsyncKeyVaultClientBase): :param str vault_url: URL of the vault the client will access :param credential: An object which can provide an access token for the vault, such as a credential from :mod:`azure.identity.aio` + :keyword api_version: version of the Key Vault API to use. Defaults to the most recent. :paramtype api_version: ~azure.keyvault.keys.ApiVersion :keyword transport: transport to use. Defaults to @@ -43,6 +44,14 @@ class KeyClient(AsyncKeyVaultClientBase): # pylint:disable=protected-access + def _get_attributes(self, enabled, not_before, expires_on, exportable=None): + """Return a KeyAttributes object if none-None attributes are provided, or None otherwise""" + if enabled is not None or not_before is not None or expires_on is not None or exportable is not None: + return self._models.KeyAttributes( + enabled=enabled, not_before=not_before, expires=expires_on, exportable=exportable + ) + return None + @distributed_trace_async async def create_key(self, name: str, key_type: "Union[str, KeyType]", **kwargs: "Any") -> KeyVaultKey: """Create a key or, if ``name`` is already in use, create a new version of the key. @@ -52,6 +61,7 @@ async def create_key(self, name: str, key_type: "Union[str, KeyType]", **kwargs: :param str name: The name of the new key. :param key_type: The type of key to create :type key_type: ~azure.keyvault.keys.KeyType or str + :keyword int size: Key size in bits. Applies only to RSA and symmetric keys. Consider using :func:`create_rsa_key` or :func:`create_oct_key` instead. :keyword curve: Elliptic curve name. Applies only to elliptic curve keys. Defaults to the NIST P-256 @@ -65,6 +75,10 @@ async def create_key(self, name: str, key_type: "Union[str, KeyType]", **kwargs: :paramtype tags: dict[str, str] :keyword ~datetime.datetime not_before: Not before date of the key in UTC :keyword ~datetime.datetime expires_on: Expiry date of the key in UTC + :keyword bool exportable: Whether the private key can be exported. + :keyword release_policy: The policy rules under which the key can be exported. + :paramtype release_policy: ~azure.keyvault.keys.KeyReleasePolicy + :returns: The created key :rtype: ~azure.keyvault.keys.KeyVaultKey :raises: :class:`~azure.core.exceptions.HttpResponseError` @@ -80,11 +94,14 @@ async def create_key(self, name: str, key_type: "Union[str, KeyType]", **kwargs: enabled = kwargs.pop("enabled", None) not_before = kwargs.pop("not_before", None) expires_on = kwargs.pop("expires_on", None) - if enabled is not None or not_before is not None or expires_on is not None: - attributes = self._models.KeyAttributes(enabled=enabled, not_before=not_before, expires=expires_on) - else: - attributes = None + exportable = kwargs.pop("exportable", None) + attributes = self._get_attributes( + enabled=enabled, not_before=not_before, expires_on=expires_on, exportable=exportable + ) + policy = kwargs.pop("release_policy", None) + if policy is not None: + policy = self._models.KeyReleasePolicy(data=policy.data, content_type=policy.content_type) parameters = self._models.KeyCreateParameters( kty=key_type, key_size=kwargs.pop("size", None), @@ -93,6 +110,7 @@ async def create_key(self, name: str, key_type: "Union[str, KeyType]", **kwargs: tags=kwargs.pop("tags", None), curve=kwargs.pop("curve", None), public_exponent=kwargs.pop("public_exponent", None), + release_policy=policy, ) bundle = await self._client.create_key( @@ -111,6 +129,7 @@ async def create_rsa_key(self, name: str, **kwargs: "Any") -> KeyVaultKey: Requires the keys/create permission. :param str name: The name for the new key. + :keyword int size: Key size in bits, for example 2048, 3072, or 4096. :keyword int public_exponent: The RSA public exponent to use. Applies only to RSA keys created in a Managed HSM. :keyword bool hardware_protected: Whether the key should be created in a hardware security module. @@ -122,6 +141,10 @@ async def create_rsa_key(self, name: str, **kwargs: "Any") -> KeyVaultKey: :paramtype tags: dict[str, str] :keyword ~datetime.datetime not_before: Not before date of the key in UTC :keyword ~datetime.datetime expires_on: Expiry date of the key in UTC + :keyword bool exportable: Whether the private key can be exported. + :keyword release_policy: The policy rules under which the key can be exported. + :paramtype release_policy: ~azure.keyvault.keys.KeyReleasePolicy + :returns: The created key :rtype: ~azure.keyvault.keys.KeyVaultKey :raises: :class:`~azure.core.exceptions.HttpResponseError` @@ -144,6 +167,7 @@ async def create_ec_key(self, name: str, **kwargs: "Any") -> KeyVaultKey: Requires the keys/create permission. :param str name: The name for the new key. + :keyword curve: Elliptic curve name. Defaults to the NIST P-256 elliptic curve. :paramtype curve: ~azure.keyvault.keys.KeyCurveName or str :keyword key_operations: Allowed key operations @@ -155,6 +179,10 @@ async def create_ec_key(self, name: str, **kwargs: "Any") -> KeyVaultKey: :paramtype tags: dict[str, str] :keyword ~datetime.datetime not_before: Not before date of the key in UTC :keyword ~datetime.datetime expires_on: Expiry date of the key in UTC + :keyword bool exportable: Whether the private key can be exported. + :keyword release_policy: The policy rules under which the key can be exported. + :paramtype release_policy: ~azure.keyvault.keys.KeyReleasePolicy + :returns: The created key :rtype: ~azure.keyvault.keys.KeyVaultKey :raises: :class:`~azure.core.exceptions.HttpResponseError` @@ -177,6 +205,7 @@ async def create_oct_key(self, name: str, **kwargs: "Any") -> KeyVaultKey: Requires the keys/create permission. :param str name: The name for the new key. + :keyword int size: Key size in bits, for example 128, 192, or 256. :keyword key_operations: Allowed key operations. :paramtype key_operations: list[~azure.keyvault.keys.KeyOperation or str] @@ -187,6 +216,10 @@ async def create_oct_key(self, name: str, **kwargs: "Any") -> KeyVaultKey: :paramtype tags: dict[str, str] :keyword ~datetime.datetime not_before: Not before date of the key in UTC :keyword ~datetime.datetime expires_on: Expiry date of the key in UTC + :keyword bool exportable: Whether the key can be exported. + :keyword release_policy: The policy rules under which the key can be exported. + :paramtype release_policy: ~azure.keyvault.keys.KeyReleasePolicy + :returns: The created key :rtype: ~azure.keyvault.keys.KeyVaultKey :raises: :class:`~azure.core.exceptions.HttpResponseError` @@ -210,6 +243,7 @@ async def delete_key(self, name: str, **kwargs: "Any") -> DeletedKey: complete. :param str name: The name of the key to delete + :returns: The deleted key :rtype: ~azure.keyvault.keys.DeletedKey :raises: @@ -251,6 +285,7 @@ async def get_key(self, name: str, version: "Optional[str]" = None, **kwargs: "A :param str name: The name of the key to get. :param str version: (optional) A specific version of the key to get. If not specified, gets the latest version of the key. + :rtype: ~azure.keyvault.keys.KeyVaultKey :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` if the key doesn't exist, @@ -277,6 +312,7 @@ async def get_deleted_key(self, name: str, **kwargs: "Any") -> DeletedKey: Requires keys/get permission. :param str name: The name of the key + :returns: The deleted key :rtype: ~azure.keyvault.keys.DeletedKey :raises: @@ -351,6 +387,7 @@ def list_properties_of_key_versions(self, name: str, **kwargs: "Any") -> "AsyncI Requires keys/list permission. :param str name: The name of the key + :returns: An iterator of keys without their cryptographic material :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.keyvault.keys.KeyProperties] @@ -384,6 +421,7 @@ async def purge_deleted_key(self, name: str, **kwargs: "Any") -> None: Requires keys/purge permission. :param str name: The name of the deleted key to purge + :returns: None :raises: :class:`~azure.core.exceptions.HttpResponseError` @@ -406,6 +444,7 @@ async def recover_deleted_key(self, name: str, **kwargs: "Any") -> KeyVaultKey: error. :param str name: The name of the deleted key + :returns: The recovered key :rtype: ~azure.keyvault.keys.KeyVaultKey :raises: :class:`~azure.core.exceptions.HttpResponseError` @@ -441,6 +480,7 @@ async def update_key_properties(self, name: str, version: "Optional[str]" = None :param str name: The name of key to update :param str version: (optional) The version of the key to update. If unspecified, the latest version is updated. + :keyword key_operations: Allowed key operations :paramtype key_operations: list[~azure.keyvault.keys.KeyOperation or str] :keyword bool enabled: Whether the key is enabled for use. @@ -448,6 +488,9 @@ async def update_key_properties(self, name: str, version: "Optional[str]" = None :paramtype tags: dict[str, str] :keyword ~datetime.datetime not_before: Not before date of the key in UTC :keyword ~datetime.datetime expires_on: Expiry date of the key in UTC + :keyword release_policy: The policy rules under which the key can be exported. + :paramtype release_policy: ~azure.keyvault.keys.KeyReleasePolicy + :returns: The updated key :rtype: ~azure.keyvault.keys.KeyVaultKey :raises: @@ -465,15 +508,16 @@ async def update_key_properties(self, name: str, version: "Optional[str]" = None enabled = kwargs.pop("enabled", None) not_before = kwargs.pop("not_before", None) expires_on = kwargs.pop("expires_on", None) - if enabled is not None or not_before is not None or expires_on is not None: - attributes = self._models.KeyAttributes(enabled=enabled, not_before=not_before, expires=expires_on) - else: - attributes = None + attributes = self._get_attributes(enabled=enabled, not_before=not_before, expires_on=expires_on) + policy = kwargs.pop("release_policy", None) + if policy is not None: + policy = self._models.KeyReleasePolicy(content_type=policy.content_type, data=policy.data) parameters = self._models.KeyUpdateParameters( key_ops=kwargs.pop("key_operations", None), key_attributes=attributes, tags=kwargs.pop("tags", None), + release_policy=policy, ) bundle = await self._client.update_key( @@ -497,6 +541,7 @@ async def backup_key(self, name: str, **kwargs: "Any") -> bytes: from a vault in a USA region cannot be restored to a vault in an EU region. :param str name: The name of the key to back up + :rtype: bytes :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` if the key doesn't exist, @@ -524,6 +569,7 @@ async def restore_key_backup(self, backup: bytes, **kwargs: "Any") -> KeyVaultKe subscription as the source vault. :param bytes backup: A key backup as returned by :func:`backup_key` + :returns: The restored key :rtype: ~azure.keyvault.keys.KeyVaultKey :raises: @@ -555,12 +601,17 @@ async def import_key(self, name: str, key: JsonWebKey, **kwargs: "Any") -> KeyVa :param str name: Name for the imported key :param key: The JSON web key to import :type key: ~azure.keyvault.keys.JsonWebKey + :keyword bool hardware_protected: Whether the key should be backed by a hardware security module :keyword bool enabled: Whether the key is enabled for use. :keyword tags: Application specific metadata in the form of key-value pairs. :paramtype tags: dict[str, str] :keyword ~datetime.datetime not_before: Not before date of the key in UTC :keyword ~datetime.datetime expires_on: Expiry date of the key in UTC + :keyword bool exportable: Whether the private key can be exported. + :keyword release_policy: The policy rules under which the key can be exported. + :paramtype release_policy: ~azure.keyvault.keys.KeyReleasePolicy + :returns: The imported key :rtype: ~azure.keyvault.keys.KeyVaultKey :raises: :class:`~azure.core.exceptions.HttpResponseError` @@ -568,16 +619,20 @@ async def import_key(self, name: str, key: JsonWebKey, **kwargs: "Any") -> KeyVa enabled = kwargs.pop("enabled", None) not_before = kwargs.pop("not_before", None) expires_on = kwargs.pop("expires_on", None) - if enabled is not None or not_before is not None or expires_on is not None: - attributes = self._models.KeyAttributes(enabled=enabled, not_before=not_before, expires=expires_on) - else: - attributes = None + exportable = kwargs.pop("exportable", None) + attributes = self._get_attributes( + enabled=enabled, not_before=not_before, expires_on=expires_on, exportable=exportable + ) + policy = kwargs.pop("release_policy", None) + if policy is not None: + policy = self._models.KeyReleasePolicy(content_type=policy.content_type, data=policy.data) parameters = self._models.KeyImportParameters( key=key._to_generated_model(), key_attributes=attributes, hsm=kwargs.pop("hardware_protected", None), tags=kwargs.pop("tags", None), + release_policy=policy, ) bundle = await self._client.import_key( @@ -589,11 +644,45 @@ async def import_key(self, name: str, key: JsonWebKey, **kwargs: "Any") -> KeyVa ) return KeyVaultKey._from_key_bundle(bundle) + @distributed_trace_async + async def release_key( + self, name: str, target: str, version: "Optional[str]" = None, **kwargs: "Any" + ) -> ReleaseKeyResult: + """Releases a key. + + The release key operation is applicable to all key types. The target key must be marked + exportable. This operation requires the keys/release permission. + + :param str name: The name of the key to get. + :param str target: The attestation assertion for the target of the key release. + :param str version: (optional) A specific version of the key to release. If unspecified, the latest version is + released. + + :keyword algorithm: The encryption algorithm to use to protect the released key material. + :paramtype algorithm: ~azure.keyvault.keys.KeyExportEncryptionAlgorithm + :keyword str nonce: A client-provided nonce for freshness. + + :return: The result of the key release. + :rtype: ~azure.keyvault.keys.ReleaseKeyResult + :raises: :class:`~azure.core.exceptions.HttpResponseError` + """ + result = await self._client.release( + vault_base_url=self._vault_url, + key_name=name, + key_version=version or "", + parameters=self._models.KeyReleaseParameters( + target=target, nonce=kwargs.pop("nonce", None), enc=kwargs.pop("algorithm", None) + ), + **kwargs + ) + return ReleaseKeyResult(result.value) + @distributed_trace_async async def get_random_bytes(self, count: int, **kwargs: "Any") -> RandomBytes: """Get the requested number of random bytes from a managed HSM. :param int count: The requested number of random bytes. + :return: The random bytes. :rtype: ~azure.keyvault.keys.RandomBytes :raises: diff --git a/sdk/keyvault/azure-keyvault-keys/tests/_test_case.py b/sdk/keyvault/azure-keyvault-keys/tests/_test_case.py index 93dad527b681..25c4a88e2758 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/_test_case.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/_test_case.py @@ -3,8 +3,12 @@ # Licensed under the MIT License. # ------------------------------------ import functools +import json import os +from azure.core.pipeline import Pipeline +from azure.core.pipeline.transport import HttpRequest, RequestsTransport +from azure.keyvault.keys import KeyReleasePolicy from azure.keyvault.keys._shared import HttpChallengeCache from azure.keyvault.keys._shared.client_base import ApiVersion, DEFAULT_VERSION from devtools_testutils import AzureTestCase @@ -34,6 +38,13 @@ def wrapper(test_class_instance, api_version, is_hsm=False, **kwargs): return wrapper +def get_attestation_token(attestation_uri): + request = HttpRequest("GET", "{}/generate-test-token".format(attestation_uri)) + with Pipeline(transport=RequestsTransport()) as pipeline: + response = pipeline.run(request) + return json.loads(response.http_response.text())["token"] + + def get_decorator(only_hsm=False, only_vault=False, api_versions=None, **kwargs): """returns a test decorator for test parameterization""" params = [ @@ -43,6 +54,25 @@ def get_decorator(only_hsm=False, only_vault=False, api_versions=None, **kwargs) return functools.partial(parameterized.expand, params, name_func=suffixed_test_name) +def get_release_policy(attestation_uri): + release_policy_json = { + "anyOf": [ + { + "anyOf": [ + { + "claim": "sdk-test", + "equals": True + } + ], + "authority": attestation_uri.rstrip("/") + "/" + } + ], + "version": "1.0.0" + } + policy_string = json.dumps(release_policy_json).encode() + return KeyReleasePolicy(policy_string) + + def get_test_parameters(only_hsm=False, only_vault=False, api_versions=None): """generates a list of parameter pairs for test case parameterization, where [x, y] = [api_version, is_hsm]""" combinations = [] @@ -111,6 +141,16 @@ def create_crypto_client(self, key, **kwargs): credential = self.get_credential(CryptographyClient) return self.create_client_from_credential(CryptographyClient, credential=credential, key=key, **kwargs) + def _get_attestation_uri(self): + playback_uri = "https://fakeattestation.azurewebsites.net" + if self.is_live: + real_uri = os.environ.get("AZURE_KEYVAULT_ATTESTATION_URI") + if real_uri is None: + pytest.skip("No AZURE_KEYVAULT_ATTESTATION_URI environment variable") + self._scrub_url(real_uri, playback_uri) + return real_uri + return playback_uri + def _scrub_url(self, real_url, playback_url): real = urlparse(real_url) playback = urlparse(playback_url) diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_exportable_without_release_policy_error_7_3_preview_mhsm.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_exportable_without_release_policy_error_7_3_preview_mhsm.yaml new file mode 100644 index 000000000000..c83b43b2e64e --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_exportable_without_release_policy_error_7_3_preview_mhsm.yaml @@ -0,0 +1,86 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-named6b71f92/create?api-version=7.3-preview + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + content-security-policy: + - default-src 'self' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains + www-authenticate: + - Bearer authorization="https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://managedhsm.azure.net" + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-ms-server-latency: + - '0' + status: + code: 401 + message: Unauthorized +- request: + body: '{"kty": "EC", "attributes": {"exportable": true}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '49' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-named6b71f92/create?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"BadParameter","message":"Exportable keys must have + release policy (Activity ID: 1b39c96a-f3e6-11eb-8e05-000d3a3145c5)"}}' + headers: + cache-control: + - no-cache + content-length: + - '138' + content-security-policy: + - default-src 'self' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-ms-server-latency: + - '18' + status: + code: 400 + message: Bad Request +version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_imported_key_release_7_3_preview_mhsm.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_imported_key_release_7_3_preview_mhsm.yaml new file mode 100644 index 000000000000..516efb713d82 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_imported_key_release_7_3_preview_mhsm.yaml @@ -0,0 +1,175 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.24.0 + method: GET + uri: https://fakeattestation.azurewebsites.net/generate-test-token + response: + body: + string: '{"token":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImpfRUZtUTVVQm9lNHJMNUltNmw1cU1rQXN0QXluaE5JQUJ6dFZLQ0RMV1UiLCJqa3UiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0L2tleXMifQ.eyJpc3MiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0LyIsInNkay10ZXN0Ijp0cnVlLCJ4LW1zLWluaXR0aW1lIjp7fSwieC1tcy1ydW50aW1lIjp7ImtleXMiOlt7Imt0eSI6IlJTQSIsImtpZCI6ImZha2UtcmVsZWFzZS1rZXkiLCJ1c2UiOiJlbmMiLCJlIjoiQVFBQiIsIm4iOiJ0WHJMdzJINlRCSHdGYUt3ekdkdG1ZM2hsbHd4bFBEVnhSTVM4Vm4zTU5MQ204ckRGZW5GcmtwSklGNms1T0pXV3p5SDFzQjFyN1FUa0pwWWs0bWNHcVF0aUdocHVQRHRfeTI1RkE0V0gxWkpTc1pqSUM3VFZRTE83QWE3UFM2Uk82NlZPYVozOFlqMWpKRy10Y2Uxa1gwQVU1b04yb0FaRmRVTGdsMExiYlNGZzZtcFJRdkVXWVM0SEZWLU5aeklaLUQxUGdkN0ZBekFoM1JFSXd5cTIyeWJsYmUyVVdpemhXZzRPbDZRMXRBdnk5aXRpblp4Q19ZN3FMYWZSUnlSY1dVdTZtTGRWZW9GYlFzYUVWR3cxdk5GMENqbmRxcHVLaE9vem95TjZBUW0xU254TkZmcWRwVEVTd3M3S2Z1LWYwR1NWa1Vma3FQeUV6UWcwaC16d1EifV19LCJtYWEtZWhkIjoic2RrLXRlc3QiLCJpYXQiOjE2Mjc5NDU1NDAsImV4cCI6MTk0MzUyMTU0MH0.PPMdqb1MWYGa7k7vWMAywC17-G99ngJwKA0_jF4Z1Vgo-EbNvs2CMBb7ay6lrxmG911V7kNLFv0wV4eReprXPXoufrQUHpisByOiIE7D3RDjPjIKQ9dKo1v9v7_4An96zsAl4lRgte0tYmV0vg0U0N8jz4PGaPEsLn66nQje8UgeRz8Ks2xS-Bnz_56qx_03wZJP6Ab_X3hDrRVFK-6G6DGLf3jmPO5aeR5lLpCt-G8bIQCcXwJvKe5dA-OUXaNi3zp4zVjKMdiaAxWlrGVeGaH8KbJEXPnASwxO5zHWJb49Dtb0JSqdKjbtMuIv0RnE1CUWD_MIkPqajitvKk1RVA"}' + headers: + content-length: + - '1305' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 02 Aug 2021 23:05:39 GMT + etag: + - W/"519-nyl3wqks0R2eUhVobnjf8WqBZLU" + set-cookie: + - ARRAffinity=31a267ed7b71ec86982412cc9dc4ad2f31ca2b8f51b692363aa765c405b03b84;Path=/;HttpOnly;Secure;Domain=skrattestation.azurewebsites.net + - ARRAffinitySameSite=31a267ed7b71ec86982412cc9dc4ad2f31ca2b8f51b692363aa765c405b03b84;Path=/;HttpOnly;SameSite=None;Secure;Domain=skrattestation.azurewebsites.net + x-powered-by: + - Express + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: PUT + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestimported-key-nameba2a177d?api-version=7.3-preview + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + content-security-policy: + - default-src 'self' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains + www-authenticate: + - Bearer authorization="https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://managedhsm.azure.net" + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-ms-server-latency: + - '2' + status: + code: 401 + message: Unauthorized +- request: + body: '{"key": {"kty": "RSA-HSM", "key_ops": ["encrypt", "decrypt", "sign", "verify", + "wrapKey", "unwrapKey"], "n": "AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU", + "e": "AQAB", "d": "Ynx9JGaBSP4iUsf6ZJ6opantRNdcdmzaQrKbZg6ZQE8Ohi1FYabJWvaoPSE-CiJEsDzShXZHMhUHN4X7Bn8BXaGQhK3p9HXgiwQKmix7oAJTu4ElUIyd8UC3UWHSZr40el4PaQD-HYu_eMzCXus34MnRiNbh_BUWm6T-Eidhk9d3kNIyaSi9YNDQHW6tjWrEhhq63O7JU1j9ZonFChZxpKk20jdkQKQURVAdpOdL-5j4I70ZxFuU6wHZj8DS8oRQfwGOvZKbgYDb5jgf3UNL_7eACqq92XPVX56vm7iKbqeyjCqAIx5y3hrSRIJtZlWCwjYnYQGd4unxDLi8wmJWSQ", + "dp": "AMmhWb5yZcu6vJr8xJZ-t0_likxJRUMZAtEULaWZt2DgODj4y9JrZDJP6mvckzhQP0WXk2NuWbU2HR5pUeCN2wieG1B76VKoH76vfnaJDqT1NuJVBcP2SLHog3ffwZtMME5zjfygchG3kihqOSpwTQ9ETAqAJTkRC38fEhwAz_Cp", + "dq": "AKC9TAo9n2RDaggjdLXK8kiLrBVoaWFTpqXkzYXRhtsx4vWPAkxhfSnze05rVMl6HiXv7FnE0f0wYawzUJzoyuXBH0zS6D9BqCZPeF543AmWB27iPf38Q9Z8Rjr6oBgMSnGDV_mm8nDVQkeaDyE4cOZh-5UKvKShTKKQVwunmDNH", + "qi": "AJ_nrkLpK8BPzVeARkvSHQyKwMWZ-a8CD95qsKfn0dOZAvXY-2xhQYTEwbED-0bpTNEKbIpA-ZkaHygmnzJkNbbFAnb9pkkzU8ZQqDP3JNgMfVIroWx58Oth9nJza2j7i-MkPRCUPEq3Ao0J52z7WJIiLji8TTVYW_NaiM1oxzsH", + "p": "ANHerI1o3dLB_VLVmZZVss8VZSYN5SaeQ_0qhfOSgOFwj__waCFmy2EG7l6l6f_Z-Y0L7Mn_LNov68lyWSFa2EuQUeVj4UoFHc5Di8ZUGiSsTwFM-XMtNuv8HmGgDYLL5BIJD3eTz71LdgW-Ez38OZH34b7VeG8zfeUDb8Hi30zz", + "q": "AMPcZrZBqbc82DO8Q5zTT8ZXRGWrW36KktMllaIk1W2RHnRiQiW0jBWmcCgqUcQNHa1LwumjyNqwx28QBS37BTvG7ULGUoio6LrOeoiBGEMj-U19sX6m37plEhj5Mak7j3OPPY_T9rohjTW5aGGg9YSwq4jdz0RrmBX00ofYOjI3"}, + "attributes": {"exportable": true}, "release_policy": {"data": "eyJhbnlPZiI6IFt7ImFueU9mIjogW3siY2xhaW0iOiAic2RrLXRlc3QiLCAiY29uZGl0aW9uIjogImVxdWFscyIsICJ2YWx1ZSI6IHRydWV9XSwgImF1dGhvcml0eSI6ICJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0In1dLCAidmVyc2lvbiI6ICIxLjAifQ"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2010' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: PUT + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestimported-key-nameba2a177d?api-version=7.3-preview + response: + body: + string: '{"attributes":{"created":1627945541,"enabled":true,"exportable":true,"recoverableDays":7,"recoveryLevel":"CustomizedRecoverable+Purgeable","updated":1627945541},"key":{"e":"AQAB","key_ops":["decrypt","encrypt","unwrapKey","sign","verify","wrapKey"],"kid":"https://managedhsmname.managedhsm.azure.net/keys/livekvtestimported-key-nameba2a177d/2c4c6c04281946149a8af4e93b41c3f2","kty":"RSA-HSM","n":"oJFNACNKxoOyG0wV1b7Yh73JWcLlevVK5zTo8Acg13XSdeRVIH43hM7rYKUKRlXdcqepTScejuj3lZpmnKbndb8OI7ra6ZG0Up2XhSi0vZBSHTLdJlZ5a6gra7_HZoyPXutQU3R_0ZkxnSmoRA0I9EEtUn_5MR7acYJZILR7HEaxGrPpHXMWQH6Jx_NA97haNAQs5RdDsn1HGEA9NMe0OK9hgb4F5NEeuYXTglPX_pv1P8LxsALSLS15P6eaUEtqtC0EkoBNcHHXJ6Bs86iJOqVCsVA_gyspY3G2cH1NxuNy-P5n2N7RyQj95FzgO8CGpxSH-nXkOqDgZ5qg0g7-NQ"},"release_policy":{"contentType":"application/json; + charset=utf-8","data":"eyJhbnlPZiI6W3siYW55T2YiOlt7ImNsYWltIjoic2RrLXRlc3QiLCJlcXVhbHMiOnRydWV9XSwiYXV0aG9yaXR5IjoiaHR0cHM6Ly9za3JhdHRlc3RhdGlvbi5henVyZXdlYnNpdGVzLm5ldC8ifV0sInZlcnNpb24iOiIxLjAuMCJ9"}}' + headers: + cache-control: + - no-cache + content-length: + - '995' + content-security-policy: + - default-src 'self' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; + x-ms-keyvault-region: + - westus + x-ms-server-latency: + - '1418' + status: + code: 200 + message: OK +- request: + body: '{"target": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImpfRUZtUTVVQm9lNHJMNUltNmw1cU1rQXN0QXluaE5JQUJ6dFZLQ0RMV1UiLCJqa3UiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0L2tleXMifQ.eyJpc3MiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0LyIsInNkay10ZXN0Ijp0cnVlLCJ4LW1zLWluaXR0aW1lIjp7fSwieC1tcy1ydW50aW1lIjp7ImtleXMiOlt7Imt0eSI6IlJTQSIsImtpZCI6ImZha2UtcmVsZWFzZS1rZXkiLCJ1c2UiOiJlbmMiLCJlIjoiQVFBQiIsIm4iOiJ0WHJMdzJINlRCSHdGYUt3ekdkdG1ZM2hsbHd4bFBEVnhSTVM4Vm4zTU5MQ204ckRGZW5GcmtwSklGNms1T0pXV3p5SDFzQjFyN1FUa0pwWWs0bWNHcVF0aUdocHVQRHRfeTI1RkE0V0gxWkpTc1pqSUM3VFZRTE83QWE3UFM2Uk82NlZPYVozOFlqMWpKRy10Y2Uxa1gwQVU1b04yb0FaRmRVTGdsMExiYlNGZzZtcFJRdkVXWVM0SEZWLU5aeklaLUQxUGdkN0ZBekFoM1JFSXd5cTIyeWJsYmUyVVdpemhXZzRPbDZRMXRBdnk5aXRpblp4Q19ZN3FMYWZSUnlSY1dVdTZtTGRWZW9GYlFzYUVWR3cxdk5GMENqbmRxcHVLaE9vem95TjZBUW0xU254TkZmcWRwVEVTd3M3S2Z1LWYwR1NWa1Vma3FQeUV6UWcwaC16d1EifV19LCJtYWEtZWhkIjoic2RrLXRlc3QiLCJpYXQiOjE2Mjc5NDU1NDAsImV4cCI6MTk0MzUyMTU0MH0.PPMdqb1MWYGa7k7vWMAywC17-G99ngJwKA0_jF4Z1Vgo-EbNvs2CMBb7ay6lrxmG911V7kNLFv0wV4eReprXPXoufrQUHpisByOiIE7D3RDjPjIKQ9dKo1v9v7_4An96zsAl4lRgte0tYmV0vg0U0N8jz4PGaPEsLn66nQje8UgeRz8Ks2xS-Bnz_56qx_03wZJP6Ab_X3hDrRVFK-6G6DGLf3jmPO5aeR5lLpCt-G8bIQCcXwJvKe5dA-OUXaNi3zp4zVjKMdiaAxWlrGVeGaH8KbJEXPnASwxO5zHWJb49Dtb0JSqdKjbtMuIv0RnE1CUWD_MIkPqajitvKk1RVA"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1307' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestimported-key-nameba2a177d/release?api-version=7.3-preview + response: + body: + string: '{"value":"eyJhbGciOiJSUzI1NiIsImtpZCI6IjJTd1puaWN4Z0FBZl9uTmpvamtKUUFYNDBZNGRBV1UwZjcwcDVDdHB3VGsiLCJ4NWMiOlsiTUlJSW1UQ0NCb0dnQXdJQkFnSVRNd0FYR0FYdGswSXdxdTVaN3dBQUFCY1lCVEFOQmdrcWhraUc5dzBCQVF3RkFEQlpNUXN3Q1FZRFZRUUdFd0pWVXpFZU1Cd0dBMVVFQ2hNVlRXbGpjbTl6YjJaMElFTnZjbkJ2Y21GMGFXOXVNU293S0FZRFZRUURFeUZOYVdOeWIzTnZablFnUVhwMWNtVWdWRXhUSUVsemMzVnBibWNnUTBFZ01EWXdIaGNOTWpFd09EQXlNakExTmpVMldoY05Nakl3TnpJNE1qQTFOalUyV2pCOU1Rc3dDUVlEVlFRR0V3SlZVekVMTUFrR0ExVUVDQk1DVjBFeEVEQU9CZ05WQkFjVEIxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakV2TUMwR0ExVUVBd3dtS2k1dFkzQmhkR2x1YjNSbGMzUm9jMjB1YldGdVlXZGxaR2h6YlM1aGVuVnlaUzV1WlhRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURTZkVGazc1RTQwQ1hsbk0reVBESU5nS1JQYmN3YVJCYzRVSW1lQzNjUkpJSWxWUEh5d0dHZ3AvQ2kyQUFhYjNVR0JSRnpFbGw3YlBOczU5Rm9kTGx3R2N6MUdtY0ZMZTFld1dDcW5qeGo3K2haa25WNVBmS2FhRzRpeXhnVkpiMStBTDlpZzJEWDk0RFlWWFdKUHFXRXo4VG1DS2dPd2tCLzlCTFNIVzhuQjF4amY0Z1pnVjh0S3pZZG95cDl3VXhYZjVSQWVjTmpyNXZBUHh0TFhPU2lUSGpuaUpnbnlKdUMrMzE0YkVsV0w5UGxIa2I3S3RvN2tlSnNyWHZUU3kybVVDNW5IeDBFVWViV2lDN1A1OXZhZWNTdVh0Y3FhUnJ6Ky9DK0JMcFVvampoWTdyRWExaGJhMGd2RitEZUtzaWNyTDBXZTFSRE0vK0F0cDVXaGZXL0FnTUJBQUdqZ2dRME1JSUVNRENDQVg0R0Npc0dBUVFCMW5rQ0JBSUVnZ0Z1QklJQmFnRm9BSFlBS1htKzhKNDVPU0h3Vm5PZlk2VjM1YjVYZlp4Z0N2ajVUVjBtWENWZHg0UUFBQUY3Q0xEcUJ3QUFCQU1BUnpCRkFpQTFtQ1F0ajh0dGI3SEVNRFVEOFRlZkd3OE1IVXVlWm54RDAvcUVBOG9RaHdJaEFOSHowbk1GQndDUXZFRzJZRUVHUnVZNlgzM0IxQm1OcUV3Q1M0d3dsdlhRQUhjQTdrdTl0M1hPWUxyaFFta2ZxK0dlWnFNUGZsK3djdGlEQU1SN2lYcW8vY3NBQUFGN0NMRHFQUUFBQkFNQVNEQkdBaUVBczZ4ZWxWR3NhZGNna0RpdGxZSjV3M3VYZ0FBVEVReU9YVGhxSDJSaXFrNENJUUNXQ3hpU3kvMHRaaWMxSDNEMzdYRDlZMmt1YlA0TitzbHZtaDNjSk8vVXpBQjFBRUhJeXJIZklrWktFTWFoT2dsQ2gxNU9NWXNiQSt2clM4ZG84SkJpbGdiMkFBQUJld2l3NmpRQUFBUURBRVl3UkFJZ0N5aGhFZW1HeXNiakJFZ0Q5b3FuSG5zYXA3ZEtBNEpBZTJVVSs1NTJsRWdDSUFJSlNvTm41QlVVUVFiRmhOQWtQaCtVaFJMRzhFTU9WWEdOR01kWG9tVUhNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0l3Q2dZSUt3WUJCUVVIQXdFd1BBWUpLd1lCQkFHQ054VUhCQzh3TFFZbEt3WUJCQUdDTnhVSWg3M1hHNEhuNjBhQ2daMHVqdEFNaC9EYUhWMkNoT1ZwZ3ZPblBnSUJaQUlCSXpDQnJnWUlLd1lCQlFVSEFRRUVnYUV3Z1o0d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1FYcDFjbVVsTWpCVVRGTWxNakJKYzNOMWFXNW5KVEl3UTBFbE1qQXdOaVV5TUMwbE1qQjRjMmxuYmk1amNuUXdMUVlJS3dZQkJRVUhNQUdHSVdoMGRIQTZMeTl2Ym1WdlkzTndMbTFwWTNKdmMyOW1kQzVqYjIwdmIyTnpjREFkQmdOVkhRNEVGZ1FVSlVhK1RjY0hTdTdnS3p1T3paajZjQ0FpZFg0d0RnWURWUjBQQVFIL0JBUURBZ1N3TUZjR0ExVWRFUVJRTUU2Q0ppb3ViV053WVhScGJtOTBaWE4wYUhOdExtMWhibUZuWldSb2MyMHVZWHAxY21VdWJtVjBnaVJ0WTNCaGRHbHViM1JsYzNSb2MyMHViV0Z1WVdkbFpHaHpiUzVoZW5WeVpTNXVaWFF3WkFZRFZSMGZCRjB3V3pCWm9GZWdWWVpUYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1FYcDFjbVVsTWpCVVRGTWxNakJKYzNOMWFXNW5KVEl3UTBFbE1qQXdOaTVqY213d1pnWURWUjBnQkY4d1hUQlJCZ3dyQmdFRUFZSTNUSU45QVFFd1FUQS9CZ2dyQmdFRkJRY0NBUll6YUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OUViMk56TDFKbGNHOXphWFJ2Y25rdWFIUnRNQWdHQm1lQkRBRUNBakFmQmdOVkhTTUVHREFXZ0JUVndXYzZ3cU9kOUhkU1cxa1NPQ25tVldpN3BUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBZ1lJS3dZQkJRVUhBd0V3RFFZSktvWklodmNOQVFFTUJRQURnZ0lCQUZMNHdKWE8xYmtieVNQZmVrbDBuUTVYSytFOEFRSzhuK0xBZE4yb0tGbFNVeFcxdytNZVAwdUNQQ25remJnb3BYRENuR2NURlVFMGZLcWVKQm5vc29KZ0c1Uy9qbUxKd1h1ODVwRSt0clJQRTZxejhLcFF0bS82TFp2Q0ZwWlgzekk4UXBhSkZMdmcxekJnSEx0azRiNGI4WGVFbkZIM3ppRFo0Q2xhRXNyajR5Ymp5VGEzZld6N21PVDkwbEdteEpWMjdiNVZuU3c2KzZuUGkybnZ1YTBzeVdxazVIdElFRVhudFNnLzFxTitrdTFjWU1DM0xjOWFuOHFkV0QvNmdlb0JGWmNNSnptWnNBTVphTG5QTHo3L01MUkZKeDdINk1GeHYxZW9HU0pEQmd2ZDNFbnVOYWFaN0pJdHlvSzRMR2l5dVg5RjdmWjBOWmpLekk1NCtMOGFwSlVKWkNJbVMzUnA1L25YbnA1VjRMeUN5OVJtQlBzaDgyRFhXeU05dE82eXJXelVQTHdKZGZQamdNRHQvUkI1TzVMT204azNuTmErcFgyZ2V1Y3hsTC9maXUvT2JOaGhpZU8rWTJtNlRBMElHZnlFVFR1cE1NVVhwcGVVRVBXQTFuZjFYK2ZGcDFyK25OYTgwdHlUZWVrZkIyYkptd0FqeTFmT29HQjhRYlhpYUNYMDFvcU84aEtSTEl4OEQvRGtOSlVQNkl5QlVOdGxaRmJyVVlEbjVoKzZOaWpDa1Y5UlJhWktCbURONURkWml1cklLcVNoWHRmaUlLR0NkcXIrajRodWQzbzg4WXJQL1VudGw3OFVLNDNOcVc5Ulpadkx6bWRPWWF5OW92b1VxclJJbXZDSSsyRkpqSUIwVnNaWGV2OTRyM0lOWlRWWFNWeWh5eGR5IiwiTUlJRjh6Q0NCTnVnQXdJQkFnSVFBdWVSY2Z1QUllay80dG1EZzB4UXdEQU5CZ2txaGtpRzl3MEJBUXdGQURCaE1Rc3dDUVlEVlFRR0V3SlZVekVWTUJNR0ExVUVDaE1NUkdsbmFVTmxjblFnU1c1ak1Sa3dGd1lEVlFRTEV4QjNkM2N1WkdsbmFXTmxjblF1WTI5dE1TQXdIZ1lEVlFRREV4ZEVhV2RwUTJWeWRDQkhiRzlpWVd3Z1VtOXZkQ0JITWpBZUZ3MHlNREEzTWpreE1qTXdNREJhRncweU5EQTJNamN5TXpVNU5UbGFNRmt4Q3pBSkJnTlZCQVlUQWxWVE1SNHdIQVlEVlFRS0V4Vk5hV055YjNOdlpuUWdRMjl5Y0c5eVlYUnBiMjR4S2pBb0JnTlZCQU1USVUxcFkzSnZjMjltZENCQmVuVnlaU0JVVEZNZ1NYTnpkV2x1WnlCRFFTQXdOakNDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFMVkdBUmw1NmJ4M0tCVVNHdVBjNEg1dW9ORmtGSDRlN3B2VEN4Umk0ai8reitYYndqRXorNUNpcERPcWp4OS9qV2pza0w1ZGs3UGFRa3pJdGlkc0FBbkRDVzFsZVpCT0lpNjhMZmYxYmpUZVpnTVlpd2RSZDNZMzliL2xjR3BpdVAyZDIzVzk1WUhrTU1UOElsV29zWUlYMGY0a1liNjJycGh5Zm5BalliLzRPZDk5VGhuaGxBeEd0ZnZTYlhjQlZJS0NZZlpncVJ2Vis1bFJlVW5kMWFOalJZVnpQT29pZmdTeDJmUnl5MStwTzFVemFNTU5uSU9FNzFiVllXMEExaHIxOXc3a09iMEtrSlhvQUxURERqMXVrVUVEcVF1QmZCeFJlTDVtWGl1MU83V0cwdmx0ZzBWWi9TWnpjdEJzZEJseDFCa21XWUJXMjYxS1pnQml2cnFsNUVMVEtLZDhxZ3RIY0xRQTVmbDZKQjBRZ3M1WERhV2VoTjg2R3BzNUpXOEFyakd0amNXQUlQK1g4Q1FhV2ZhQ251Um02QmsvMDNQUVdoZ2RpODRxd0Ewc3NSZkZKd0hVUFROU25FOEVpR1ZrMmZydDB1OFBHMXB3U1FzRnVOSmZjWUlIRXYxdk96UDd1RU91RHlkc21DamhseHVvSzJuNS8yYVZSM0JNVHUrcDQrZ2w4YWxYb0J5Y3lMbWozSi9QVWdxRDhTTDVmVENVZWdHc2RpYS9TYTYwTjJvVjd2UTE3d2pNTitMWGEycmpqL2I0WmxaZ1hWb2pEbUFqRHdJUmREVXVqUXUwUlZzSnFGTE16U0lIcHAyQ1pwN21Jb0xyeVNheTJZWUJ1N1NpTndMOTVYNkhlMmtTOGVlZkJCSGp6d1cvOUZ4R3FyeTU3aTcxYzJjREFnTUJBQUdqZ2dHdE1JSUJxVEFkQmdOVkhRNEVGZ1FVMWNGbk9zS2puZlIzVWx0WkVqZ3A1bFZvdTZVd0h3WURWUjBqQkJnd0ZvQVVUaUpVSUJpVjV1TnU1Zy82K3JrUzdRWVhqemt3RGdZRFZSMFBBUUgvQkFRREFnR0dNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUZCUWNEQWpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1IWUdDQ3NHQVFVRkJ3RUJCR293YURBa0JnZ3JCZ0VGQlFjd0FZWVlhSFIwY0RvdkwyOWpjM0F1WkdsbmFXTmxjblF1WTI5dE1FQUdDQ3NHQVFVRkJ6QUNoalJvZEhSd09pOHZZMkZqWlhKMGN5NWthV2RwWTJWeWRDNWpiMjB2UkdsbmFVTmxjblJIYkc5aVlXeFNiMjkwUnpJdVkzSjBNSHNHQTFVZEh3UjBNSEl3TjZBMW9ET0dNV2gwZEhBNkx5OWpjbXd6TG1ScFoybGpaWEowTG1OdmJTOUVhV2RwUTJWeWRFZHNiMkpoYkZKdmIzUkhNaTVqY213d042QTFvRE9HTVdoMGRIQTZMeTlqY213MExtUnBaMmxqWlhKMExtTnZiUzlFYVdkcFEyVnlkRWRzYjJKaGJGSnZiM1JITWk1amNtd3dIUVlEVlIwZ0JCWXdGREFJQmdabmdRd0JBZ0V3Q0FZR1o0RU1BUUlDTUJBR0NTc0dBUVFCZ2pjVkFRUURBZ0VBTUEwR0NTcUdTSWIzRFFFQkRBVUFBNElCQVFCMm9XYzkzZkI4ZXNjaS84ZXNpeGorK04yMm1laUdEamdGK3JBMkxVSzVJT1FPZ2NVU1RHS1NxRjlsWWZBeFBqcnFQakRDVVBIQ1VSdisyNmFkNVAvQll0WHRibXR4Sld1K2NTNUJoTURQUGVHM29QWndYUkhCSkZBa1k0TzRBRjdSSUFBVVc2RXpEZmxVb0RIS3Y4M3pPaVBmWUdjcEhjOXNreEFJbkNlZGs3UVNnWHZNQVJqak9xZGFrb3IyMURUbU5JVW90eG84a0h2NWh3UmxHaEJKd3BzNmZFVmkxQnQwdHJwTS8zd1l4bHI0NzNXU1BVRlpQZ1AxajUxOWtMcFdPSjh6MDl3eGF5K0JyMjlpclBjQll2MEdNWGxIcVRoeTh5NG0vSHlUUWVJMklNdk1yUW53cVBwWStyTElYeXZpSTJ2TG9JKzR4S0U0Um4zOFpaOG0iLCJNSUlEampDQ0FuYWdBd0lCQWdJUUF6cng1cWNScWFDN0tHU3hIUW42NVRBTkJna3Foa2lHOXcwQkFRc0ZBREJoTVFzd0NRWURWUVFHRXdKVlV6RVZNQk1HQTFVRUNoTU1SR2xuYVVObGNuUWdTVzVqTVJrd0Z3WURWUVFMRXhCM2QzY3VaR2xuYVdObGNuUXVZMjl0TVNBd0hnWURWUVFERXhkRWFXZHBRMlZ5ZENCSGJHOWlZV3dnVW05dmRDQkhNakFlRncweE16QTRNREV4TWpBd01EQmFGdzB6T0RBeE1UVXhNakF3TURCYU1HRXhDekFKQmdOVkJBWVRBbFZUTVJVd0V3WURWUVFLRXd4RWFXZHBRMlZ5ZENCSmJtTXhHVEFYQmdOVkJBc1RFSGQzZHk1a2FXZHBZMlZ5ZEM1amIyMHhJREFlQmdOVkJBTVRGMFJwWjJsRFpYSjBJRWRzYjJKaGJDQlNiMjkwSUVjeU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBdXpmTk5OeDdhOG15YUpDdFNuWC9Scm9oQ2dpTjlSbFV5ZnVJMi9PdThqcUprVHg2NXFzR0dtdlByQzNvWGdra1JMcGltbjdXbzZoKzRGUjFJQVdzVUxlY1l4cHNNTnphSHhteDF4N2UvZGZneTVTRE42N3NIME5PM1hzczByMHVwUy9rcWJpdE90U1pwTFlsNlp0ckFHQ1NZUDlQSVVrWTkyZVFxMkVHbkkveXV1bTA2Wkl5YTdYelYraGRHODJNSGF1VkJKVko4elV0bHVOSmJkMTM0L3RKUzdTc1ZRZXBqNVd6dENPN1RHMUY4UGFwc3BVd3RQMU1WWXduU2xjVWZJS2R6WE9TMHhaS0JneU1VTkdQSGdtK0Y2SG1JY3I5ZytVUXZJT2xDc1JuS1BaekZCUTlSbmJEaHhTSklUUk5ydzlGREtaSm9icTduTVd4TTRNcGhRSURBUUFCbzBJd1FEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BNEdBMVVkRHdFQi93UUVBd0lCaGpBZEJnTlZIUTRFRmdRVVRpSlVJQmlWNXVOdTVnLzYrcmtTN1FZWGp6a3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBR0JuS0pSdkRraGo2ekhkNm1jWTFZbDlQTVdMU24vcHZ0c3JGOSt3WDNOM0tqSVRPWUZuUW9RajhrVm5OZXlJdi9pUHNHRU1OS1N1SUV5RXh0djROZUYyMmQrbVFydkhSQWlHZnpaMEpGcmFiQTBVV1RXOThrbmR0aC9Kc3cxSEtqMlpMN3RjdTdYVUlPR1pYMU5HRmR0b20vRHpNTlUrTWVLTmhKN2ppdHJhbGo0MUU2VmY4UGx3VUhCSFFSRlhHVTdBajY0R3hKVVRGeThiSlo5MThyR09tYUZ2RTdGQmNmNklLc2hQRUNCVjEvTVVSZVhnUlBUcWg1VXlrdzcrVTBiNkxKMy9peUs1UzlrSlJhVGVwTGlhV04wYmZWS2ZqbGxEaUlHa25pYlZiNjNkRGNZM2ZlMERraHZsZDE5MjdqeU54RjFXVzZMWlptNnpOVGZsTXJZPSJdLCJ4NXQjUzI1NiI6IjJTd1puaWN4Z0FBZl9uTmpvamtKUUFYNDBZNGRBV1UwZjcwcDVDdHB3VGsifQ.eyJyZXF1ZXN0Ijp7ImFwaS12ZXJzaW9uIjoiNy4zLXByZXZpZXciLCJlbmMiOiJDS01fUlNBX0FFU19LRVlfV1JBUCIsImtpZCI6Imh0dHBzOi8vbWNwYXRpbm90ZXN0aHNtLm1hbmFnZWRoc20uYXp1cmUubmV0L2tleXMvbGl2ZWt2dGVzdGltcG9ydGVkLWtleS1uYW1lYmEyYTE3N2QifSwicmVzcG9uc2UiOnsia2V5Ijp7ImF0dHJpYnV0ZXMiOnsiY3JlYXRlZCI6MTYyNzk0NTU0MSwiZW5hYmxlZCI6dHJ1ZSwiZXhwb3J0YWJsZSI6dHJ1ZSwicmVjb3ZlcmFibGVEYXlzIjo3LCJyZWNvdmVyeUxldmVsIjoiQ3VzdG9taXplZFJlY292ZXJhYmxlK1B1cmdlYWJsZSIsInVwZGF0ZWQiOjE2Mjc5NDU1NDF9LCJrZXkiOnsiZSI6IkFRQUIiLCJrZXlfaHNtIjoiZXlKamFYQm9aWEowWlhoMElqb2liazB0TWpaSlVscEdMVTVXY1d4alFtbDNRMEphYkVFM1dXTm5WVmRpUTBkM1NXTkJkamhrTVdKU1NsZEhSMmRDWDJkdU5GOUdiMDQxVG1keVUxZGlOMmRyV1daRlFWbDZOR3BpU0VaVVl6Vm1iMlEyTnpZMGIwRkRNSGsxTkhGR2RuSnhVa2hJTUd0SE5WVnBYME5JUkdKbVp6QjZXbFJyVUVwQlIydHNhVjl0T0V0R1ZrTmxORXhGUzNwMVV5MW5ZMFpWT0U1UlRrNWlWVkl3VUhwWlZYaHpkMlp4V21kTE1FSm1SVEJ2U2xSSFpGZG9hMWRRU2t4dVdXaHlRMnBJVWtsUlZ6TjFNbDlDVkc5aWFVeGhiV055VXkxc2RFZFlTbUpvUkVaNmRsVkdRVlIxYTNkclpEQnVXREZNTTNKdVYzUnJaVzlDTUVoRFpISldNbk01ZEhGWGMyUTNiVTFmZHpWMGIwOWtTWEI1ZFU1cFVGTk9UMDAzU25kd1F6TTJaRm80TldGck9HRjJkM04xUlV0YWJ6TkhlVWxYV21sWE5sRjZRbXcxZUVGSVVuRkJlWE5xU1MxdmRtRjFVVGN0VlRSWFpYUkpXRkUwYWxKSWJrdzFTRjlvU1hSS1JFZG1jWFJUTkRSU1ZYUkxOMVJpTTFGUlVXaG5UVmt3ZHpkU1dXeHhRalJHVDNnd05tMXpiVkV5VTBWMlJXRmlaMlV5T1hWMldYUnJjekZQYW5Wdk1HNDVNRTl2VkZjNWVqTndlWFphY2xJeE9GaFlaVmR3WVhoUFprSm9RVFpGWVVZM1VUSjZZMWxFYUc1bk9IWkJiRGt6VjBSdlgxSmhaak4wZEVSNWMxWkhUbkJTWkVkcWMyRnlhVmhKWWpoUlUxcGlNRXc1V1V0VmR6Rk5SMVpOZW5ZMU1sSnpWR1J0WkRSMGIwcEVTM1ZCVHpWVWRWVlVOMjFCVVV0S1dIbDZMVzF3U1cwdFUxSnRWRzFZT0UxRVgwTlhaV1IyY201cVozUk5SMDlPTkd4Zk5IbFFWQzFTT1ZaMlJEZGhiSGN5Tm5GVFdWZDNhR1ExZFRSUVoybHJVMU5KV0VoMWVXNW1kV1poTUZsT1dGSjVSa1I0Wlhnd1JUSlpNRTVRV2taWFRERk5WMHRWYUZOcVpsTlpUbWd6Y25OaWRFaHJNMjB4TWkwelkwTmlhV2czWDBaU1pFOVVTMXBxYkRSb2NrVlhPVWwyWW1Jd00wNXpibVY2VUVoV1IzcHZjV1F3UWxKbFpEWnRNME5KUjB3ME5VOVRURlpLU0ZscGNHVjNXbDlGUzNsRFVsUnhUM0oyV0ZCbldFVnhNWGhTTWtWNmMwOXdWM0ZmU1c5amVsOU1TV1I0VTFCa1dWWlNhRmcxVWtRMUxVTnBNRGw0VEhCemJFcG9VMGROZEVwcWMwZFdaV1JwTUhKRFVFRlhOa28zYWs1WWNGRnlOVkZvTVRFMVoxaDNTSGRVWnpCRU1XbEpVVUZpUmtadk5VUmljMVJQUjJ0SU9GRlZPWGRYUzJ3M1RuQlBjbTR4VWtwQ1pVSjVPSEJZTFd4UFowTlhlRkI2Vms0eFJFMU9RbmgzTTI1aVlWZ3lka2RmZGpocVZVNTVRVTF5WkZoTVMyMUxUMHhJWVRBd1FqWXliR0p2UTFZMmFteFlUbWxGYW1SSkxUbExjMkp3TkdSWk1FTnNla3RWY0hsdk1tc3piRUpoTTJoR05TMXBUVnBXZWxaWU5IWnBhMUZ4YkdWV1UwRmxSV05aWVVkUWVVdG1aM2RSWDFkclpHeFpiMWM0Y2taNWJHaHZabk5YTUhkb1NHbFBNQzFJUkVZNFpISlBjV3RSYlhaM1NsaG1PVmRITms1emJUUnhOVGsxWmtsUGFXWmhlSGgwVkZoVlNXRmxNbTV5WW1oS1VHZFhMVzVKYVdONVRXSmhUVk52TlZSc00wUnFkVEJUWmtab016bENOMjFQV2sxRmVEUlVaM2wwYWtGaFpUSm5ObTVXU25SdGNVcEdOMDlJTXpkc1dESlNXVjh4Wm5WZk9ITXdiRkZTUVRaTFlsUlFWVFZsVjFKRFF6RkVWVzFYY0hwWUxYVmtUMlpXY1ZaZmNGVjFSbEV5VFd4blJVdHdRMUJsUkhsS1prWTJOM0JTVERsTlduWk1TRGxCV1ZZNFluZG5NRUZxUW1kS2NVRkRRM0JOT0doaldITlZTM052VFdGT2NqbGlRWGRxYlhSS04yc3RZWFJ1UTJWak4ybFpNa0YzUjNaRFV6TkdlVEJKTWxKV1MyWlZPVEV6Y1ZSbWVHOURORzFaVnprNFNEWkxOMDFTTmpsTWJ6WTVTMkozU1RsNlEwVnZXak5FZUUxQ1JHSjJZM2hhZEVSMVZFOWxPR05rTVc5emRuaHBhbGx5ZGs5MGNVRktORnAwV1hkd2FraDFYMncxYzJwZlZHWnBaRFpaU0Zad1ZGZzBSMU0wVVZWSVJUUTBXVk5XWlVsb2VqaDFXRjgzT0VaZmExcFlRbFJ5VVV0TGMwOVBjakp6VUdJd1dGTTVObWh6VlROeUxVTjZVM1pSYTFRd01sWlhMWFpTVEZSYVVHaDFOVkJxZW1OeFZXZHNZblU0WlVrd2NVaE1SR1kzVkUxSk1HRTVVRVp6VUVWdWJrdEtjRGRvY0hKTFRtVktjMDVtYzFsNmRXZFNaRkJmUmpaMU0zTkxkRWRUYUdWelpsQmFWM0ZyVkVvdFIySXdheTFNWTFGZmRtcHlia1JIU0dVMVgwNUxOazE0VlZkTlR6UmZRV05aVVVsT2NXUnVlSEpqT1daVVNYWkhNMkpUZEZsTVkyOUxiblV0VkdwUGVFbDBVVlpSVkhGMFdWcHpSaTF3VmpSVmJtbzBTeTFSV0dsMlQza3hORzlaVTNoa2VIcHRTbk5YVGtWa1IwSnhSVWRGWVdreWJIbzRYMHREWjBobWRWUkhaR05DZEhSTmRGSTJPR3hzYzJ0bGRuSnljRkF4Um1nd1RrNHlja1pNZUZZd1VHeExlRlpJVVdsVUxVa3RWM05OWmpneWNEZzBTVGRZVUY5b1J6bFZRWFk0WWtWMmJYVXhObG80V1VOdFVtTllURUUxU1hJMFRGcFRTR2N5TWpOUGFHSXhUM1k0Y0dKYWJIbGlVVzlrZFVKRVdqSnJabGRVZVdSa2VteFZaa04yVEZsU2MyaDZVVE5OTWxwSU1HRjRZVVpvUTNCUlgyeDZOalpxY25adVIwbzNWbVZpVFZBMlgxWnlNbUZ2U0RST2FYZEZNbkIyYTJkWk5sQXhlREpaTUhkNlRubGhOWEpQVERsWWN6RlRVWHB5ZUZaRlJIbERVRVJwZDNwVGNXSTRiek5RT1ZkUGFGQnFhbHBPWXpCRmVsZDBlVzB6VkRGQ2RYVm9TbWMyYUdoak1GWlNja0pKUnpSTmFtVk1WWEZUTWtaV2VVOVlVMjlRZUdKMVkzVmpNblp1T1dRMWJUVjNNbWhDT1d3Mk9WSnNRMlZZWlNJc0ltaGxZV1JsY2lJNmV5SmhiR2NpT2lKa2FYSWlMQ0psYm1NaU9pSkRTMDFmVWxOQlgwRkZVMTlMUlZsZlYxSkJVQ0lzSW10cFpDSTZJbVpoYTJVdGNtVnNaV0Z6WlMxclpYa2lmU3dpYzJOb1pXMWhYM1psY25OcGIyNGlPaUl4TGpBaWZRIiwia2V5X29wcyI6WyJlbmNyeXB0IiwiZGVjcnlwdCIsInVud3JhcEtleSIsInNpZ24iLCJ2ZXJpZnkiLCJ3cmFwS2V5Il0sImtpZCI6Imh0dHBzOi8vbWNwYXRpbm90ZXN0aHNtLm1hbmFnZWRoc20uYXp1cmUubmV0L2tleXMvbGl2ZWt2dGVzdGltcG9ydGVkLWtleS1uYW1lYmEyYTE3N2QvMmM0YzZjMDQyODE5NDYxNDlhOGFmNGU5M2I0MWMzZjIiLCJrdHkiOiJSU0EiLCJuIjoib0pGTkFDTkt4b095RzB3VjFiN1loNzNKV2NMbGV2Vks1elRvOEFjZzEzWFNkZVJWSUg0M2hNN3JZS1VLUmxYZGNxZXBUU2NlanVqM2xacG1uS2JuZGI4T0k3cmE2WkcwVXAyWGhTaTB2WkJTSFRMZEpsWjVhNmdyYTdfSFpveVBYdXRRVTNSXzBaa3huU21vUkEwSTlFRXRVbl81TVI3YWNZSlpJTFI3SEVheEdyUHBIWE1XUUg2SnhfTkE5N2hhTkFRczVSZERzbjFIR0VBOU5NZTBPSzloZ2I0RjVORWV1WVhUZ2xQWF9wdjFQOEx4c0FMU0xTMTVQNmVhVUV0cXRDMEVrb0JOY0hIWEo2QnM4NmlKT3FWQ3NWQV9neXNwWTNHMmNIMU54dU55LVA1bjJON1J5UWo5NUZ6Z084Q0dweFNILW5Ya09xRGdaNXFnMGc3LU5RIn0sInJlbGVhc2VfcG9saWN5Ijp7ImNvbnRlbnRUeXBlIjoiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCIsImRhdGEiOiJleUpoYm5sUFppSTZXM3NpWVc1NVQyWWlPbHQ3SW1Oc1lXbHRJam9pYzJSckxYUmxjM1FpTENKbGNYVmhiSE1pT25SeWRXVjlYU3dpWVhWMGFHOXlhWFI1SWpvaWFIUjBjSE02THk5emEzSmhkSFJsYzNSaGRHbHZiaTVoZW5WeVpYZGxZbk5wZEdWekxtNWxkQzhpZlYwc0luWmxjbk5wYjI0aU9pSXhMakF1TUNKOSJ9fX19.rQAFtvEw5hEZ9YrfqPdIO-gmjhSCXHmv6L45K3wxh_gxYeE_2oci-3-nDoHukmP-A-s8w4CArY4osyrQBCCbV5xmr7AGMok6yB1AYNzwraTcw4PR0oJkFUMOItI64BSdXozirBCjmJ8e88NDjGqgyvKJSVSIUxzIhpW9VDY-QQWHCMzXXzsyo8Q2JM6Dx8lHf7h6_47AkkqkHZnYAMtaP8WFlzrmMwMq5W_JORiAmaCgylAv1nOHUvd5BBPcBBRq-h2gALsU159qzmjOlS4Dn_bCRYBQP-4zXbAD_fqJUCJFl4sYhi4XzKUlw_RcH9ev9Dx6ci3CQLPvUCq3nPyhug"}' + headers: + cache-control: + - no-cache + content-length: + - '14126' + content-security-policy: + - default-src 'self' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; + x-ms-keyvault-region: + - westus + x-ms-server-latency: + - '779' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_key_release_7_3_preview_mhsm.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_key_release_7_3_preview_mhsm.yaml new file mode 100644 index 000000000000..aa1faaf12fe0 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_key_release_7_3_preview_mhsm.yaml @@ -0,0 +1,168 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.24.0 + method: GET + uri: https://fakeattestation.azurewebsites.net/generate-test-token + response: + body: + string: '{"token":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImpfRUZtUTVVQm9lNHJMNUltNmw1cU1rQXN0QXluaE5JQUJ6dFZLQ0RMV1UiLCJqa3UiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0L2tleXMifQ.eyJpc3MiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0LyIsInNkay10ZXN0Ijp0cnVlLCJ4LW1zLWluaXR0aW1lIjp7fSwieC1tcy1ydW50aW1lIjp7ImtleXMiOlt7Imt0eSI6IlJTQSIsImtpZCI6ImZha2UtcmVsZWFzZS1rZXkiLCJ1c2UiOiJlbmMiLCJlIjoiQVFBQiIsIm4iOiJvUThCNWxPMTdBLXJVY0xYVXE1NTExUkNRZ0pNV3A4Y0NLcXpwdS1pY2x3cEpXamRPTzlraWJLYllmb2syQ2U2WmtaYmJ6QTdXck1NNU5Za29oUWhtR2haaENZR0tIZERxbGx2akxlc2lBTlA2N093RkVqTmx4Y29SRVRnR0MtdklxWUZ0cUUzeEtfTTcwS0NieDRvZFhpd2RSb0d5aGp5NXZ1eVdPYTZxSDBaNk1FamdDVDRXXzVGUExuUWdtdXFsZUgtc2hqbE9TamQ3bU9KYXk2YzQ2T3lKaFM2TVlFSnpNeHNOZmZkbXppTWhuLTZDeWRvRExHNzlSNmNtY1BNWXp5eWctbDJ1SnVvZzZodUVvMktwWGFxeEJQOWVEbW1PZlc1cktFRkJRZS1zNC1VQS1BcDByNmJ2YjRIZG9ZZ1JQSERyWW5sMk5PWmpZeWtMMllhT3cifV19LCJtYWEtZWhkIjoic2RrLXRlc3QiLCJpYXQiOjE2Mjc5NDA5NDEsImV4cCI6MTk0MzUxNjk0MX0.EprIoofPyj4ZX3mAr1GLjW6GfYT0nnAJ_tOZaKtC67ngf6epNn-FM3XC3QvkXFinxufFUYJGzqOAABqeApd5-BEPFugIrdGQ95nWNvaBHaxsXnxxMQSvPjh8V3lwmgAFnbtY9KwepcUqRRCBbM9b8-UP970k29SDYgW3UdqG3g5Ho-r0sjUFTKQltNLJEwJRmhH9gAH5djyKmXdCENZELgrc9PxiSZnbnWGJc1kdkV1nIJms6K1Qll3HdbDfLiT8RexiHMGv_VjD9DOENZF6HRJ-1Srs0N5flprpGX-faxbi93BD7Iqknwnyovyq82iWhOotpqtEpu4MFoSZK_euIQ"}' + headers: + content-length: + - '1305' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 02 Aug 2021 21:49:00 GMT + etag: + - W/"519-UqSaw2ZFMF7Crs0FXC1TS0vNO1o" + set-cookie: + - ARRAffinity=31a267ed7b71ec86982412cc9dc4ad2f31ca2b8f51b692363aa765c405b03b84;Path=/;HttpOnly;Secure;Domain=skrattestation.azurewebsites.net + - ARRAffinitySameSite=31a267ed7b71ec86982412cc9dc4ad2f31ca2b8f51b692363aa765c405b03b84;Path=/;HttpOnly;SameSite=None;Secure;Domain=skrattestation.azurewebsites.net + x-powered-by: + - Express + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestrsa-key-namef07013ba/create?api-version=7.3-preview + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + content-security-policy: + - default-src 'self' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains + www-authenticate: + - Bearer authorization="https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://managedhsm.azure.net" + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-ms-server-latency: + - '1' + status: + code: 401 + message: Unauthorized +- request: + body: '{"kty": "RSA-HSM", "attributes": {"exportable": true}, "release_policy": + {"data": "eyJhbnlPZiI6IFt7ImFueU9mIjogW3siY2xhaW0iOiAic2RrLXRlc3QiLCAiY29uZGl0aW9uIjogImVxdWFscyIsICJ2YWx1ZSI6IHRydWV9XSwgImF1dGhvcml0eSI6ICJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0In1dLCAidmVyc2lvbiI6ICIxLjAifQ"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '300' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestrsa-key-namef07013ba/create?api-version=7.3-preview + response: + body: + string: '{"attributes":{"created":1627940944,"enabled":true,"exportable":true,"recoverableDays":7,"recoveryLevel":"CustomizedRecoverable+Purgeable","updated":1627940944},"key":{"e":"AQAB","key_ops":["wrapKey","decrypt","encrypt","unwrapKey","sign","verify"],"kid":"https://managedhsmname.managedhsm.azure.net/keys/livekvtestrsa-key-namef07013ba/d34945b78e8f4c5a14ce9e1dca32aac9","kty":"RSA-HSM","n":"uCvjiJPSzUqDawuItYCkwCdJ_XumtwlfBn_SkuzyQi7Hhddwq6nt7fOAeELHE6VWORmahOgH7wnPAkCL2n0kb7i7vHGRtaNbUX7Im-syV3ap-0Eyv7O1GPaXNBHUrn_ENzDSZ_e66zgYCfE_qr8t4Q950E9POSoaVPEIYNbHf1ej7jsc1e4JiazvzcmMZJZk4UxLiRk7tP9zKH_jCtloUkBhfU66Vky3rurxiHgMYFc-cVdFpfUxLpo94fY7ZLGKwmYXkExvPNKmLFUj-xTtG0IOGDGGx7_EutbDexyH2Z9iDhgkTnauYCdGGQpjw-AQYFS64p0gQfe1yXElYBoThQ"},"release_policy":{"contentType":"application/json; + charset=utf-8","data":"eyJhbnlPZiI6W3siYW55T2YiOlt7ImNsYWltIjoic2RrLXRlc3QiLCJlcXVhbHMiOnRydWV9XSwiYXV0aG9yaXR5IjoiaHR0cHM6Ly9za3JhdHRlc3RhdGlvbi5henVyZXdlYnNpdGVzLm5ldC8ifV0sInZlcnNpb24iOiIxLjAuMCJ9"}}' + headers: + cache-control: + - no-cache + content-length: + - '990' + content-security-policy: + - default-src 'self' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; + x-ms-keyvault-region: + - westus + x-ms-server-latency: + - '981' + status: + code: 200 + message: OK +- request: + body: '{"target": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImpfRUZtUTVVQm9lNHJMNUltNmw1cU1rQXN0QXluaE5JQUJ6dFZLQ0RMV1UiLCJqa3UiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0L2tleXMifQ.eyJpc3MiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0LyIsInNkay10ZXN0Ijp0cnVlLCJ4LW1zLWluaXR0aW1lIjp7fSwieC1tcy1ydW50aW1lIjp7ImtleXMiOlt7Imt0eSI6IlJTQSIsImtpZCI6ImZha2UtcmVsZWFzZS1rZXkiLCJ1c2UiOiJlbmMiLCJlIjoiQVFBQiIsIm4iOiJvUThCNWxPMTdBLXJVY0xYVXE1NTExUkNRZ0pNV3A4Y0NLcXpwdS1pY2x3cEpXamRPTzlraWJLYllmb2syQ2U2WmtaYmJ6QTdXck1NNU5Za29oUWhtR2haaENZR0tIZERxbGx2akxlc2lBTlA2N093RkVqTmx4Y29SRVRnR0MtdklxWUZ0cUUzeEtfTTcwS0NieDRvZFhpd2RSb0d5aGp5NXZ1eVdPYTZxSDBaNk1FamdDVDRXXzVGUExuUWdtdXFsZUgtc2hqbE9TamQ3bU9KYXk2YzQ2T3lKaFM2TVlFSnpNeHNOZmZkbXppTWhuLTZDeWRvRExHNzlSNmNtY1BNWXp5eWctbDJ1SnVvZzZodUVvMktwWGFxeEJQOWVEbW1PZlc1cktFRkJRZS1zNC1VQS1BcDByNmJ2YjRIZG9ZZ1JQSERyWW5sMk5PWmpZeWtMMllhT3cifV19LCJtYWEtZWhkIjoic2RrLXRlc3QiLCJpYXQiOjE2Mjc5NDA5NDEsImV4cCI6MTk0MzUxNjk0MX0.EprIoofPyj4ZX3mAr1GLjW6GfYT0nnAJ_tOZaKtC67ngf6epNn-FM3XC3QvkXFinxufFUYJGzqOAABqeApd5-BEPFugIrdGQ95nWNvaBHaxsXnxxMQSvPjh8V3lwmgAFnbtY9KwepcUqRRCBbM9b8-UP970k29SDYgW3UdqG3g5Ho-r0sjUFTKQltNLJEwJRmhH9gAH5djyKmXdCENZELgrc9PxiSZnbnWGJc1kdkV1nIJms6K1Qll3HdbDfLiT8RexiHMGv_VjD9DOENZF6HRJ-1Srs0N5flprpGX-faxbi93BD7Iqknwnyovyq82iWhOotpqtEpu4MFoSZK_euIQ"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1307' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestrsa-key-namef07013ba/release?api-version=7.3-preview + response: + body: + string: '{"value":"eyJhbGciOiJSUzI1NiIsImtpZCI6InIybUJUWWl3ZnY2ai1EZGgzWUFPRWhOWXVqOVV1VzNnZ0YyN21BUlFOMTgiLCJ4NWMiOlsiTUlJSW1qQ0NCb0tnQXdJQkFnSVRNd0FYeDFSQVFhSGoyZ24yR3dBQUFCZkhWREFOQmdrcWhraUc5dzBCQVF3RkFEQlpNUXN3Q1FZRFZRUUdFd0pWVXpFZU1Cd0dBMVVFQ2hNVlRXbGpjbTl6YjJaMElFTnZjbkJ2Y21GMGFXOXVNU293S0FZRFZRUURFeUZOYVdOeWIzTnZablFnUVhwMWNtVWdWRXhUSUVsemMzVnBibWNnUTBFZ01EVXdIaGNOTWpFd09EQXlNakExTnpBMVdoY05Nakl3TnpJNE1qQTFOekExV2pCOU1Rc3dDUVlEVlFRR0V3SlZVekVMTUFrR0ExVUVDQk1DVjBFeEVEQU9CZ05WQkFjVEIxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakV2TUMwR0ExVUVBd3dtS2k1dFkzQmhkR2x1YjNSbGMzUm9jMjB1YldGdVlXZGxaR2h6YlM1aGVuVnlaUzV1WlhRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUMvWlZ1eXdBcE1SKyt5Tm9iYW9pUkw5OFJ5Zk9mOFV2N2NrZ1k5UkxiZDd2OU4ydTdCK3lQV2kvSzk2ZVlkWHY3SHlFaFZUVGlmTWlTL1ZMQTBBL3k1MldEWDVTY2x0bzMvZUpVOUROMlF6UThnZCtTejFsQlpBdmRYVGphVVBOQmFjV2pQQm1VQTlOR0hReHJyS1dkbkxMWjUxdjFxTUtpZkNnTEV3bGtmN0s4bjdseWIyVy9XczVhdGJIaUEvNzZyaGN1cS9mQnN5UTRZby9jd3VWdFNCVzdnblM4cEpVdmJudnBYKzFoMzRCeFZhUVltcEhZVm9mMXdHTUVmQUpMYVUwVjNJU0FNMEF1TzNnUnJTYkhCd2xiQmxFaWdvcitiajkzTmtiMUJQMXhhdVNZeFpQQVF1VHAwcWJaVEgycytLb0FueTY5WFNSRFpvYm9NVThKL0FnTUJBQUdqZ2dRMU1JSUVNVENDQVg4R0Npc0dBUVFCMW5rQ0JBSUVnZ0Z2QklJQmF3RnBBSFlBN2t1OXQzWE9ZTHJoUW1rZnErR2VacU1QZmwrd2N0aURBTVI3aVhxby9jc0FBQUY3Q0xFUmZRQUFCQU1BUnpCRkFpRUFrMFF2QVBFOURoTjFUWnhFalFSY3MwZFhDYjEyZ3lGVnpJdHFnWUszK2pNQ0lEQkg1aElxakhEdzM2RU1EdGJ6K3BGWVNxVWEzVm9XZDRZSUw5aU1IbDFUQUhZQVFjaktzZDhpUmtvUXhxRTZDVUtIWGs0eGl4c0Q2K3RMeDJqd2tHS1dCdllBQUFGN0NMRVNSUUFBQkFNQVJ6QkZBaUVBcDJiQjFYRXRGQm12bDFOeklXdFh2RmdhbU82T29UYWN4Yi9pRjQwR0pXa0NJSGpaNU92SUppRFQ3dFlsdEtDYUxjTDY1ZjMvU0ZGMG41VWN3dEx1bG15R0FIY0FVYU93OWYwQmVaeFdiYmczZUk4TXBIck1HeWZMOTU2SVFwb04vdFNMQmVVQUFBRjdDTEVSWVFBQUJBTUFTREJHQWlFQStqS3BwMmRINTA1RDlvN0t2K3R2eHVDK3JRY2pqVUk1dnhubTdnNXhxaGtDSVFDUUVLUHR5ejlxTGhvZm84TDlkSEdKMURSdGttYkJBL0hZTm53RWszUVd3VEFuQmdrckJnRUVBWUkzRlFvRUdqQVlNQW9HQ0NzR0FRVUZCd01DTUFvR0NDc0dBUVVGQndNQk1Ed0dDU3NHQVFRQmdqY1ZCd1F2TUMwR0pTc0dBUVFCZ2pjVkNJZTkxeHVCNSt0R2dvR2RMbzdRRElmdzJoMWRnb1RsYVlMenB6NENBV1FDQVNNd2dhNEdDQ3NHQVFVRkJ3RUJCSUdoTUlHZU1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1FRjZkWEpsSlRJd1ZFeFRKVEl3U1hOemRXbHVaeVV5TUVOQkpUSXdNRFVsTWpBdEpUSXdlSE5wWjI0dVkzSjBNQzBHQ0NzR0FRVUZCekFCaGlGb2RIUndPaTh2YjI1bGIyTnpjQzV0YVdOeWIzTnZablF1WTI5dEwyOWpjM0F3SFFZRFZSME9CQllFRkhHbGR4a1FFZXgwOWRCTWhDV0laN2hQaGJTY01BNEdBMVVkRHdFQi93UUVBd0lFc0RCWEJnTlZIUkVFVURCT2dpWXFMbTFqY0dGMGFXNXZkR1Z6ZEdoemJTNXRZVzVoWjJWa2FITnRMbUY2ZFhKbExtNWxkSUlrYldOd1lYUnBibTkwWlhOMGFITnRMbTFoYm1GblpXUm9jMjB1WVhwMWNtVXVibVYwTUdRR0ExVWRId1JkTUZzd1dhQlhvRldHVTJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1FRjZkWEpsSlRJd1ZFeFRKVEl3U1hOemRXbHVaeVV5TUVOQkpUSXdNRFV1WTNKc01HWUdBMVVkSUFSZk1GMHdVUVlNS3dZQkJBR0NOMHlEZlFFQk1FRXdQd1lJS3dZQkJRVUhBZ0VXTTJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZSRzlqY3k5U1pYQnZjMmwwYjNKNUxtaDBiVEFJQmdabmdRd0JBZ0l3SHdZRFZSMGpCQmd3Rm9BVXg3S2NmeHpqdUZydjZXZ2FxRjJVd1NaU2FtZ3dIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0lHQ0NzR0FRVUZCd01CTUEwR0NTcUdTSWIzRFFFQkRBVUFBNElDQVFBODc3K3F1UmgwNStnamtoZXdneTBEMmdLL1Ftc2IzMitOOVpUOUhkZTVHOWNweUo4UXErUTdFV0xibXNuclY5RDdNWURZa004RStoWnFveDFDREdUb0poamRXb1Z3aXo0aHhRQzVDNG9rYWsyTU9ZZTJaeTNvNjRPdWhrZzhWQnhzZTQ0S09wTHNTSG90R0doVG4xTmFpaWxJU2R1Qm9KekRnVnUzUkxodjlwdjAxUEF1MUpZS1duRExseERYK3A5dnJOek53K2lHZjUxSm5DU2xLbFd1ZjRRNWZ6QWREY3hJZDVHQXpvQ1RKZWRWb1cvRDNOUmwzS2k5b0QzTWdnYmVjR0crQ1NrWjE0TUxsb21ZOFRKQTRvS1ZzMlVWSi9EcytuQ0wzQmFNUXYvRndDUjhRcE9jWnk0WnNWcUFLRDBFcmJjMWxNNHpzMzhFbGQ5MnBSbmVTQ3FyM2szS0hXVmM4WEJLZlB0UnZDV3dzZ3RyL0tRcWdHLzFQNWI4ZEF3cFNBRTVUS0tHMTVZbWowSG1uajdSUEkzOURkd1dPLzJ4RmR2VXQvbUtJNU5jbWNvMk5EbkxvOXI0TzUzaUNOZzdLVzlLbzVpMlBYSlN1Njl6ZXQyV2VqaDFVa3FVclE1Q1BrWXlWYVhwMHdaSWRPVzUxQWN5VzhONDJNNjBualZ4ZFRGeElqQ2lGVW41SytLR0ZFWnJ4NG9EdWNPYzVsVml1QmxVbDE1NEd0dlh1Njd2MXI2Y1RTWTZBWElPMkRWUzg0K1hEbTdGZG9yUDl1ZVR2dlluRmpTd1piL1NzL0N0RDJOQVFSNDNXcS96MFRmZGp1bmlmZEIzOEZUVGxWSjBQdWZ3SlVZcUFtV1RrU3VJcG9kTm1MS09sdnMxbTBXWWtLbFUvQ3hwdXc9PSIsIk1JSUY4ekNDQk51Z0F3SUJBZ0lRRFh2dDZYMkNDWlo2VW1NYmk5MFl2VEFOQmdrcWhraUc5dzBCQVF3RkFEQmhNUXN3Q1FZRFZRUUdFd0pWVXpFVk1CTUdBMVVFQ2hNTVJHbG5hVU5sY25RZ1NXNWpNUmt3RndZRFZRUUxFeEIzZDNjdVpHbG5hV05sY25RdVkyOXRNU0F3SGdZRFZRUURFeGRFYVdkcFEyVnlkQ0JIYkc5aVlXd2dVbTl2ZENCSE1qQWVGdzB5TURBM01qa3hNak13TURCYUZ3MHlOREEyTWpjeU16VTVOVGxhTUZreEN6QUpCZ05WQkFZVEFsVlRNUjR3SEFZRFZRUUtFeFZOYVdOeWIzTnZablFnUTI5eWNHOXlZWFJwYjI0eEtqQW9CZ05WQkFNVElVMXBZM0p2YzI5bWRDQkJlblZ5WlNCVVRGTWdTWE56ZFdsdVp5QkRRU0F3TlRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBS3BsRFRtUTlhZndWUFFlbER1dStOa3hOSjA4NENOS25yWjIxQUJld0UrVVU0R0tEbnd5Z1pkSzZhZ05TTXM1VW9jaFVFRHp6OUNwZFY1dGRQekwxNE8vR2VFMmdPNS9hVUZUVU1HOWM2bmV5eGs1dHExV2RLc1BraXRQd3M2VjhNV2E1ZDFML3k0UkZoWkhVc2d4eFV5U2xZbEdwTmNIaGhzeXI3RXZGZWNaR0ExTWZzaXRBV1ZwNmhpV0FOa1dLSU5mUmNkdDNaMkEyM2htTUg5TVJTR0JjY0hpUHV6d3JWc1NtTHd2dDNXbFJEZ09iSmtFNDB0Rll2SjZHWEFRaWFHSENJV1NWT2JnTzN6ajZ4a2RiRUZNbUovenIyV2V0NUtFY1VEdFVCaEE0ZFVVb2FQVno2OXU0NlY1NlZzY3kzbFh1MVlsc2s4NGo1bFVQTGRzQXh0dWx0UDRPUFFvT1Rwblk4a3hXa0g2a2dPNWdUS0UzSFJ2b1ZJalU0eEowSlE3NDZ6eS84R2RRQTM2U2FOaXo0VTN1MTB6RlpnMlJrdjJkTDFMdjU4RVhMMDJyNXE1Qi9uaFZIL00xam9UdnBSdmFlRXBBSmhrSUE5TmtwdmJHRXBTZGNBME9ydE9PZUd0cnNpT3lNQllranBCNW53MGNKWTFRSE9yM25JdkoyT25ZK09LSmJEU3JoRnFXc2s4LzFxNloxV052T056N3RlMXBBdEhlcmRQaTVwQ0hlaVhDTnB2K2ZhZHdQMGs4Y3phZjJWczE5bllzZ1duNXVJeUxRTDhFZWhkQnpDYk9LSnk5c2w4NlM0RnFlNEhHeUF0bXFHbGFXT3NxMkE2Ty9wYU1pM0JTbVdURGJnUExDUEJiUHRlL2JzdUFFRjRhamtQRUVTM0dIUDlBZ01CQUFHamdnR3RNSUlCcVRBZEJnTlZIUTRFRmdRVXg3S2NmeHpqdUZydjZXZ2FxRjJVd1NaU2FtZ3dId1lEVlIwakJCZ3dGb0FVVGlKVUlCaVY1dU51NWcvNitya1M3UVlYanprd0RnWURWUjBQQVFIL0JBUURBZ0dHTUIwR0ExVWRKUVFXTUJRR0NDc0dBUVVGQndNQkJnZ3JCZ0VGQlFjREFqQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNSFlHQ0NzR0FRVUZCd0VCQkdvd2FEQWtCZ2dyQmdFRkJRY3dBWVlZYUhSMGNEb3ZMMjlqYzNBdVpHbG5hV05sY25RdVkyOXRNRUFHQ0NzR0FRVUZCekFDaGpSb2RIUndPaTh2WTJGalpYSjBjeTVrYVdkcFkyVnlkQzVqYjIwdlJHbG5hVU5sY25SSGJHOWlZV3hTYjI5MFJ6SXVZM0owTUhzR0ExVWRId1IwTUhJd042QTFvRE9HTVdoMGRIQTZMeTlqY213ekxtUnBaMmxqWlhKMExtTnZiUzlFYVdkcFEyVnlkRWRzYjJKaGJGSnZiM1JITWk1amNtd3dONkExb0RPR01XaDBkSEE2THk5amNtdzBMbVJwWjJsalpYSjBMbU52YlM5RWFXZHBRMlZ5ZEVkc2IySmhiRkp2YjNSSE1pNWpjbXd3SFFZRFZSMGdCQll3RkRBSUJnWm5nUXdCQWdFd0NBWUdaNEVNQVFJQ01CQUdDU3NHQVFRQmdqY1ZBUVFEQWdFQU1BMEdDU3FHU0liM0RRRUJEQVVBQTRJQkFRQWUrRytHMlJGZFd0WXhMSUtNUjVIL2FWTkZqTlA3SmRldStvWmFLYUl1N1UzTmlkeWtGcjk5NGpTeE1CTVY3Njh1a0o1L2hMU0tzdWovU0xqbUFmd1JBWit3MFJHcWkva092UFlVbEJyL3NLT3dyM3RWa2c5Y2NaQmVibkJWRytETEtUcDJPeDArallCQ1B4bGE1Rk8yNTJxcGs3LzZ3dDhTWmszZGlTVTEySm03aWYvampraGtHQi9lOFVkZnJLb0x5dER2cVZlaXdQQTVGUHpxS29TcU43NWJ5TGpzSUtKRWROaTA3U1k0NWhOL1JVbnNtSW9BZjkzcWxhSFIvU0pXVlJocld0M0ptZW9CSjJSREs0OTJ6RjZUR3UxbW9oNGFFNmUwMFlrd1RQV3JldXd2YUxCMjIwdldtdGdaUHMrRFNJYjJkOWhQQmRDSmd2Y2hvMWM3IiwiTUlJRGpqQ0NBbmFnQXdJQkFnSVFBenJ4NXFjUnFhQzdLR1N4SFFuNjVUQU5CZ2txaGtpRzl3MEJBUXNGQURCaE1Rc3dDUVlEVlFRR0V3SlZVekVWTUJNR0ExVUVDaE1NUkdsbmFVTmxjblFnU1c1ak1Sa3dGd1lEVlFRTEV4QjNkM2N1WkdsbmFXTmxjblF1WTI5dE1TQXdIZ1lEVlFRREV4ZEVhV2RwUTJWeWRDQkhiRzlpWVd3Z1VtOXZkQ0JITWpBZUZ3MHhNekE0TURFeE1qQXdNREJhRncwek9EQXhNVFV4TWpBd01EQmFNR0V4Q3pBSkJnTlZCQVlUQWxWVE1SVXdFd1lEVlFRS0V3eEVhV2RwUTJWeWRDQkpibU14R1RBWEJnTlZCQXNURUhkM2R5NWthV2RwWTJWeWRDNWpiMjB4SURBZUJnTlZCQU1URjBScFoybERaWEowSUVkc2IySmhiQ0JTYjI5MElFY3lNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXV6Zk5OTng3YThteWFKQ3RTblgvUnJvaENnaU45UmxVeWZ1STIvT3U4anFKa1R4NjVxc0dHbXZQckMzb1hna2tSTHBpbW43V282aCs0RlIxSUFXc1VMZWNZeHBzTU56YUh4bXgxeDdlL2RmZ3k1U0RONjdzSDBOTzNYc3MwcjB1cFMva3FiaXRPdFNacExZbDZadHJBR0NTWVA5UElVa1k5MmVRcTJFR25JL3l1dW0wNlpJeWE3WHpWK2hkRzgyTUhhdVZCSlZKOHpVdGx1TkpiZDEzNC90SlM3U3NWUWVwajVXenRDTzdURzFGOFBhcHNwVXd0UDFNVll3blNsY1VmSUtkelhPUzB4WktCZ3lNVU5HUEhnbStGNkhtSWNyOWcrVVF2SU9sQ3NSbktQWnpGQlE5Um5iRGh4U0pJVFJOcnc5RkRLWkpvYnE3bk1XeE00TXBoUUlEQVFBQm8wSXdRREFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQTRHQTFVZER3RUIvd1FFQXdJQmhqQWRCZ05WSFE0RUZnUVVUaUpVSUJpVjV1TnU1Zy82K3JrUzdRWVhqemt3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUdCbktKUnZEa2hqNnpIZDZtY1kxWWw5UE1XTFNuL3B2dHNyRjkrd1gzTjNLaklUT1lGblFvUWo4a1ZuTmV5SXYvaVBzR0VNTktTdUlFeUV4dHY0TmVGMjJkK21RcnZIUkFpR2Z6WjBKRnJhYkEwVVdUVzk4a25kdGgvSnN3MUhLajJaTDd0Y3U3WFVJT0daWDFOR0ZkdG9tL0R6TU5VK01lS05oSjdqaXRyYWxqNDFFNlZmOFBsd1VIQkhRUkZYR1U3QWo2NEd4SlVURnk4YkpaOTE4ckdPbWFGdkU3RkJjZjZJS3NoUEVDQlYxL01VUmVYZ1JQVHFoNVV5a3c3K1UwYjZMSjMvaXlLNVM5a0pSYVRlcExpYVdOMGJmVktmamxsRGlJR2tuaWJWYjYzZERjWTNmZTBEa2h2bGQxOTI3anlOeEYxV1c2TFpabTZ6TlRmbE1yWT0iXSwieDV0I1MyNTYiOiJyMm1CVFlpd2Z2NmotRGRoM1lBT0VoTll1ajlVdVczZ2dGMjdtQVJRTjE4In0.eyJyZXF1ZXN0Ijp7ImFwaS12ZXJzaW9uIjoiNy4zLXByZXZpZXciLCJlbmMiOiJDS01fUlNBX0FFU19LRVlfV1JBUCIsImtpZCI6Imh0dHBzOi8vbWNwYXRpbm90ZXN0aHNtLm1hbmFnZWRoc20uYXp1cmUubmV0L2tleXMvbGl2ZWt2dGVzdHJzYS1rZXktbmFtZWYwNzAxM2JhIn0sInJlc3BvbnNlIjp7ImtleSI6eyJhdHRyaWJ1dGVzIjp7ImNyZWF0ZWQiOjE2Mjc5NDA5NDQsImVuYWJsZWQiOnRydWUsImV4cG9ydGFibGUiOnRydWUsInJlY292ZXJhYmxlRGF5cyI6NywicmVjb3ZlcnlMZXZlbCI6IkN1c3RvbWl6ZWRSZWNvdmVyYWJsZStQdXJnZWFibGUiLCJ1cGRhdGVkIjoxNjI3OTQwOTQ0fSwia2V5Ijp7ImUiOiJBUUFCIiwia2V5X2hzbSI6ImV5SmphWEJvWlhKMFpYaDBJam9pU3pGdmRWWkZYMnh4Y0VWNE1XOUtRM1oyVm1oWWVrNTVaMjVqV1dkMGRVdDNXSFJwYldWNFV6TldWbUp6ZWxFdGRrWldSVkZxYjJoVVdYazRPVjlaU1RaRExUVXRTa1pHYkd4V2FHZEZiakZTVmxBNWExVnlOR1ZQZUdOdWJrdzVhM2x0WVd4RVRYQmFORXBwZFZadFptY3llVEZQTVVOUlZUaDRhWFJGWjJoWmMwb3hhRGN3TVRFNU1IZHRiRGsxZWxCeFQyZDVNV1ZPUms1T1pHOU9XRFoyVFdaUVowVlVUMlEyVGxCSFVtaHNUbVV0Y1dKc2FIVkNWV1ZpVFZad05XWlFjbGxYUmtobmRYTkhVa2R6YjBneFZuazRURFZFZFMxRVdrVm9PV3N0UWtsVE1ucGhXWHB3ZHpOaFlVNVVaVmh5VVV0WWVFRjJNalZWVm1rNGVYbFpTalk0VjJkR1EyMTZZVTlaWkhSSmMzYzVOVTVpVTIxNk5uWkNVMVZhUTJsYVpGaGxabWxWVlRWSVdXMVJOMUpLVUhRM1RFVktNV3d6Y1ZjMlJXZzVlREpTV1ZST2RuRjRiek5TTnpCQloxcHNaMkZxT1UxUFNHaHVVR3hQUW0wMWRGVkJhbGxhU1dsTlZ6WkpOazgyUTBZeGRFTlZjR2xKV0ZsVlJWWkpNRlpCZGxSc1YxUkpXbXRtUzNSSE5IWXRUemc1YmtrNFNrZFFkR05JVm1WRlpuRlpPWE5hZUUxTFowSlZMVmhuU1dKNlJIQlNkR0pEYzJaSFNuSjBUMWxTZUhaMlkxRk5aemRIV2s5WmJDMDBSV3htYTJ0TFdrbHBRbE0yYUhCS2VXbzJiM1pGUlZGaE9TMXhOMGhWZWkxME5XbE1jeTB5UzBocVVtOXZia1JYTkZabWN6UXdlbVF4TXpScWFsWnBYMmcwU1ZFNU1EZ3hjVFZPTWxsd2Qyb3laM2hQU205MVVXNVVhbVZEUVVoMlZqTXlXbEpuUVd4S2IySTVNMkpvWW1KVVZGZGtZV0pMT0VKME9IQkRjazU2WjNRdGFsa3lkVE5tTWpCWE5tYzViazlLWmxGSk16QTVUM1JhTFY5WU1FNTVkWHBMY1Y5SVIzWnhUR05oVTFwWVQyOTRVRlozVTFwb1RFeHdkRTFMVFVkMk1XaG9TRkZTVW0xVVdVdEZZVEpmWmxCWlowbERkVjlsYzJSTE16SmpWRzgwY0VadVNGRkpha056ZFVKMk4xZFFhMUJaYUhRMmRWWlJXRGh6V0RGTU9EUldhMHgwTTFoSU5uVmZOMEY1ZUZkNlUwRjFUVVowWkdOVFpEaElUVjlWVFhSdWJqVlpPV3h2T1RGaFNGWlJOSE42TVhkQ1YwdzViM2xUY2pkRVozcHdhM2hNVkdKcVlXaHFjWGhsWDJzdFdHMUJMVWsxUjA0NVozaE5XRWxrUTBwVmMwaHNRVTQzYWpKck1uTnNYMnR6UjBKU2EyUTVTakJLYm5JMU5rVkllRU5PWm1OSmFWOTBibEpDYlRFeWFXTjFjazFRYjJGTk5sUjVXbEkxYlU1cWNqaEtVelppVlhKSVh5MHlVV2hzVFZSSVVVOU9ZVGRzTFVGcVgxOUpjRXBTV0RCRFpuSktjbXhMVFRKM1UyRmFNSGRSV0dSUFNpMHdUV05CTkdaUlRVRnFVVEI0YWtoNldrRXpialUxZDBrNGFrNHhRakpaVlVWMmJHbGFiVE55YTJGUVNuRllaVWhvU0UxaE5DMDBWRE5pYmpsS2NEZFFObEJ6WmpSV1ZuQmFXRmhDVkc5WFdFdEljVEpYY0d4UVNXcDJXbFZhYUVOb1ZUTndhRk5ITVd4SVNVTnhTVGxrYTJzM2RuVlNUbUpaVGpjeVUwVmFjV3RsTUVKYWJGbE1WMjFuVWtwb1QwcFhZME54YUVWSk1VeDJUR3RIWTBZeVNERndVMHMyUjBGQmR6RXhSVlI1WmpKVk4wSktlRlI0ZUZKbGIwNDFRWEV5VkZoTFdXNVdXVlJyUVdKcVNrUm1ZbkZJUTBoaGJYaE9OMUF3WVZSbVoweHNWWHBXTWxGUWNqbHJhVGt0WkZOd1NpMVJhVzlaU1dKblFVcE9RM2hqVkdsb00xZHdTVTFaWDJ4MWNIQTBVR1ZOZG5ndFVsVm1RMDVhZGt4aWVua3dUbTVVTm5RdFNtRkJlRmhLVjNWMmRYTjVaVVJsUlRORWVub3dPRFZ0VkRjM2FuSjFSM0ZHVDFWWWVVWndNVVl6TTNScmFGUTBPVVl4YWpKamQwWkJibEUyY1dWbE9EUTVkV2hvYm5sV01sVlVkMk5NZVVOaWQwUkhOR1E1VWt4NlFqVnBjR3c1YkUxbWFVMHdWWEIxYm5wVGRtOXBTSFJqT0ZWS2FubHdTVWQwVG5kcFEyeEtiVmxrWTJweGIweHNRMUpJY2tSWFZVNVRSMlU1YUdkNlVXOHpjbkZuUWpaVlFYQkNhbVU0WVRCMGMxRkRXbVJFV21obVVGSjZVVE5IWDBoeGNHMHplRXBIVG1jM1VFTkJjMUl3YVcxMmQyMWhVbTh3VldZMVVuSm9RbFYxVkZoclIzRnhhMHBCVGxOeU5qbEhkMUpIWW1WRFJYRlNSMUJTVURKc05uQnVabG96T0Y5eFFsOTJhbXBtYUVaUVQzQlpSVGxNY1hwMU1sWnljWEZQTFdSdFdITjRXamhsT1VwVVJqSkdVMHRNTVMxRmEyVkdUME5ET0hBeE1IRllSRzVPUnpkQ2RtRkRWekEyVm5CMVgzSXlOa0oyZURjM2JtUjROMUExZGpWVVNEbG9kV3BUWVdsbVYzZGtjRkJxTmpKQ1dXRnplbkZ4VkhoM05FUnpTMjkxV0ZCT2FUZFJjRWszUjFoQlUydzBZMjVzVERkYU0wZFFNMGRLWkZjd1gyWnVhbWQ0V1RKd05qSTRia3RwTmxrNWR6UlVaRk5WUzJ4elpuZEpPRmx2YVhKa2FGZHZNbWw0TTFkMlRXWkZZbkJMWTNFellqWnFXbU5JZWxwc1JXMVFTMDlSWjNaVFpDMDJSaTFYYjIxb1lVRnBUSGxLYWpkWlJVdHZYM2RYVUZkb2VWQkpaSFY0VUhWelNXVlZWemd4Tm5sRmQwTnpZazExTjNReVZGTnlZMnRPVDFFNGEzRlJRVEExZVZsQ1VESXpSRXhXTWxGS2RHVjVZek5vZVhCR2NUSktNM0JNTFc4M05XaHplRmx2ZW1oQ2JIUnBXa2hJTW5vMFZFVTBOakJMUjBOVmNFMWtlbUZDY0ZsV1JWQlFSMGwzZUdWMWJtYzRhRlYwZDJWaFVYSnBXVXA0WmpKNFJ6UkNXV3RsTVVkTlVrdDVWMkowU1VFM04wcFVRbDlHY2xOSmRHTldWVUpHVld0UFNHTm9SM0pTYVUxU1pFbEhXbWwzTTFnd1FrVXhVMGt6TUhSd1RFUXhhSGhuWWtoV2NHWnFiVUZMWkZFdFVYRkNSVzUyZWtjelltaGhWbE54V2tnemR5SXNJbWhsWVdSbGNpSTZleUpoYkdjaU9pSmthWElpTENKbGJtTWlPaUpEUzAxZlVsTkJYMEZGVTE5TFJWbGZWMUpCVUNJc0ltdHBaQ0k2SW1aaGEyVXRjbVZzWldGelpTMXJaWGtpZlN3aWMyTm9aVzFoWDNabGNuTnBiMjRpT2lJeExqQWlmUSIsImtleV9vcHMiOlsid3JhcEtleSIsImRlY3J5cHQiLCJlbmNyeXB0IiwidW53cmFwS2V5Iiwic2lnbiIsInZlcmlmeSJdLCJraWQiOiJodHRwczovL21jcGF0aW5vdGVzdGhzbS5tYW5hZ2VkaHNtLmF6dXJlLm5ldC9rZXlzL2xpdmVrdnRlc3Ryc2Eta2V5LW5hbWVmMDcwMTNiYS9kMzQ5NDViNzhlOGY0YzVhMTRjZTllMWRjYTMyYWFjOSIsImt0eSI6IlJTQSIsIm4iOiJ1Q3ZqaUpQU3pVcURhd3VJdFlDa3dDZEpfWHVtdHdsZkJuX1NrdXp5UWk3SGhkZHdxNm50N2ZPQWVFTEhFNlZXT1JtYWhPZ0g3d25QQWtDTDJuMGtiN2k3dkhHUnRhTmJVWDdJbS1zeVYzYXAtMEV5djdPMUdQYVhOQkhVcm5fRU56RFNaX2U2NnpnWUNmRV9xcjh0NFE5NTBFOVBPU29hVlBFSVlOYkhmMWVqN2pzYzFlNEppYXp2emNtTVpKWms0VXhMaVJrN3RQOXpLSF9qQ3Rsb1VrQmhmVTY2Vmt5M3J1cnhpSGdNWUZjLWNWZEZwZlV4THBvOTRmWTdaTEdLd21ZWGtFeHZQTkttTEZVai14VHRHMElPR0RHR3g3X0V1dGJEZXh5SDJaOWlEaGdrVG5hdVlDZEdHUXBqdy1BUVlGUzY0cDBnUWZlMXlYRWxZQm9UaFEifSwicmVsZWFzZV9wb2xpY3kiOnsiY29udGVudFR5cGUiOiJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04IiwiZGF0YSI6ImV5SmhibmxQWmlJNlczc2lZVzU1VDJZaU9sdDdJbU5zWVdsdElqb2ljMlJyTFhSbGMzUWlMQ0psY1hWaGJITWlPblJ5ZFdWOVhTd2lZWFYwYUc5eWFYUjVJam9pYUhSMGNITTZMeTl6YTNKaGRIUmxjM1JoZEdsdmJpNWhlblZ5WlhkbFluTnBkR1Z6TG01bGRDOGlmVjBzSW5abGNuTnBiMjRpT2lJeExqQXVNQ0o5In19fX0.lS7J-9Hrg_NTARk2y1SRzHTP09MvinIpPcYxOuxCnemFJ2cNr9kIWiyhLDJTMMgOLFYu8qRkzBOQESF7yerDRiAZen13LUeccVos1unw1cdpfncZTR0lp9wdcfzKnOav-03nI_n3d_bG0pnz1X5xibdlh9fUfYo5wq9gP5egisch2rLQganh_hGNbqv4PbdI8jfkn44M6yZdrvi5IBD7j9KVAtzFgJCGTBeuMMO5oMS1nfGu8g3si3jxRpzrQBP6ht2qkZnAd-yqMdY4h_jUD68-TyBuPZLntETnToKxtNwpEOCrue14D0n69XS1jSQiLmCLAsxUOzZMTxODMThtmQ"}' + headers: + cache-control: + - no-cache + content-length: + - '14118' + content-security-policy: + - default-src 'self' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; + x-ms-keyvault-region: + - westus + x-ms-server-latency: + - '803' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_release_policy_not_exportable_error_7_3_preview_mhsm.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_release_policy_not_exportable_error_7_3_preview_mhsm.yaml new file mode 100644 index 000000000000..110d3ac3b625 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_release_policy_not_exportable_error_7_3_preview_mhsm.yaml @@ -0,0 +1,86 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-name54691dcf/create?api-version=7.3-preview + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + content-security-policy: + - default-src 'self' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains + www-authenticate: + - Bearer authorization="https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://managedhsm.azure.net" + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-ms-server-latency: + - '0' + status: + code: 401 + message: Unauthorized +- request: + body: '{"kty": "oct", "release_policy": {"data": "eyJhbnlPZiI6IFt7ImFueU9mIjogW3siY2xhaW0iOiAic2RrLXRlc3QiLCAiY29uZGl0aW9uIjogImVxdWFscyIsICJ2YWx1ZSI6IHRydWV9XSwgImF1dGhvcml0eSI6ICJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0In1dLCAidmVyc2lvbiI6ICIxLjAifQ"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '260' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-name54691dcf/create?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"BadParameter","message":"Non-exportable keys must + not have release policy (Activity ID: 474b6bf6-f3f2-11eb-b2bc-000d3a3145c5)"}}' + headers: + cache-control: + - no-cache + content-length: + - '146' + content-security-policy: + - default-src 'self' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-ms-server-latency: + - '20' + status: + code: 400 + message: Bad Request +version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_update_release_policy_7_3_preview_mhsm.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_update_release_policy_7_3_preview_mhsm.yaml new file mode 100644 index 000000000000..cf16df5c9940 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_update_release_policy_7_3_preview_mhsm.yaml @@ -0,0 +1,138 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-named11d17e3/create?api-version=7.3-preview + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + content-security-policy: + - default-src 'self' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains + www-authenticate: + - Bearer authorization="https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://managedhsm.azure.net" + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-ms-server-latency: + - '0' + status: + code: 401 + message: Unauthorized +- request: + body: '{"kty": "RSA-HSM", "attributes": {"exportable": true}, "release_policy": + {"data": "eyJhbnlPZiI6IFt7ImFueU9mIjogW3siY2xhaW0iOiAic2RrLXRlc3QiLCAiZXF1YWxzIjogdHJ1ZX1dLCAiYXV0aG9yaXR5IjogImh0dHBzOi8vc2tyYXR0ZXN0YXRpb24uYXp1cmV3ZWJzaXRlcy5uZXQvIn1dLCAidmVyc2lvbiI6ICIxLjAuMCJ9"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '274' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-named11d17e3/create?api-version=7.3-preview + response: + body: + string: '{"attributes":{"created":1628112182,"enabled":true,"exportable":true,"recoverableDays":7,"recoveryLevel":"CustomizedRecoverable+Purgeable","updated":1628112182},"key":{"e":"AQAB","key_ops":["wrapKey","sign","verify","encrypt","decrypt","unwrapKey"],"kid":"https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-named11d17e3/ecb5e06bb11a4f031a97100fa4b6c38c","kty":"RSA-HSM","n":"vn4COcpfR--d1RKAe0iv6SlTdrxyO-rmEx-zIPLMFkcLFTw0SZeu3dUmM_h7jHV5-noc44pSvK2UhZW5HqdXM6OabfPJeJQ6mymZZPdmups6LGq_41YWuB2TUZKO2jukYRPT06PlsMDuewfD-Ps1d66vFCh05Hcq4_0IxKKdAeS8JPI0fFvniRLSOXoi6B7A7wLkqq2ijpdCB_GWKAWv0WdagEXtXHXimr-yN2vKq9x8ZbU8hO9uNT6k55fca_woZ5YwnIhuG3PrxNjxm3iJxDiPaLeDfio4CkE5DBdctpCv1H-OqjddVLXyBFLVnk7BHysIK1JsdUyuhCmisor8Uw"},"release_policy":{"contentType":"application/json; + charset=utf-8","data":"eyJhbnlPZiI6W3siYW55T2YiOlt7ImNsYWltIjoic2RrLXRlc3QiLCJlcXVhbHMiOnRydWV9XSwiYXV0aG9yaXR5IjoiaHR0cHM6Ly9za3JhdHRlc3RhdGlvbi5henVyZXdlYnNpdGVzLm5ldC8ifV0sInZlcnNpb24iOiIxLjAuMCJ9"}}' + headers: + cache-control: + - no-cache + content-length: + - '986' + content-security-policy: + - default-src 'self' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; + x-ms-keyvault-region: + - westus + x-ms-server-latency: + - '1026' + status: + code: 200 + message: OK +- request: + body: '{"key_ops": ["decrypt", "encrypt"], "attributes": {"exp": 2524723200}, + "tags": {"foo": "updated tag"}, "release_policy": {"data": "eyJhbnlPZiI6IFt7ImFueU9mIjogW3siY2xhaW0iOiAic2RrLXRlc3QiLCAiZXF1YWxzIjogZmFsc2V9XSwgImF1dGhvcml0eSI6ICJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0LyJ9XSwgInZlcnNpb24iOiAiMS4wLjAifQ"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '324' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: PATCH + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-named11d17e3/?api-version=7.3-preview + response: + body: + string: '{"attributes":{"created":1628112182,"enabled":true,"exp":2524723200,"exportable":true,"recoverableDays":7,"recoveryLevel":"CustomizedRecoverable+Purgeable","updated":1628112183},"key":{"e":"AQAB","key_ops":["decrypt","encrypt"],"kid":"https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-named11d17e3/ecb5e06bb11a4f031a97100fa4b6c38c","kty":"RSA-HSM","n":"vn4COcpfR--d1RKAe0iv6SlTdrxyO-rmEx-zIPLMFkcLFTw0SZeu3dUmM_h7jHV5-noc44pSvK2UhZW5HqdXM6OabfPJeJQ6mymZZPdmups6LGq_41YWuB2TUZKO2jukYRPT06PlsMDuewfD-Ps1d66vFCh05Hcq4_0IxKKdAeS8JPI0fFvniRLSOXoi6B7A7wLkqq2ijpdCB_GWKAWv0WdagEXtXHXimr-yN2vKq9x8ZbU8hO9uNT6k55fca_woZ5YwnIhuG3PrxNjxm3iJxDiPaLeDfio4CkE5DBdctpCv1H-OqjddVLXyBFLVnk7BHysIK1JsdUyuhCmisor8Uw"},"release_policy":{"contentType":"application/json; + charset=utf-8","data":"eyJhbnlPZiI6W3siYW55T2YiOlt7ImNsYWltIjoic2RrLXRlc3QiLCJlcXVhbHMiOmZhbHNlfV0sImF1dGhvcml0eSI6Imh0dHBzOi8vc2tyYXR0ZXN0YXRpb24uYXp1cmV3ZWJzaXRlcy5uZXQvIn1dLCJ2ZXJzaW9uIjoiMS4wLjAifQ"},"tags":{"foo":"updated + tag"}}' + headers: + cache-control: + - no-cache + content-length: + - '996' + content-security-policy: + - default-src 'self' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; + x-ms-keyvault-region: + - westus + x-ms-server-latency: + - '807' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_exportable_without_release_policy_error_7_3_preview_mhsm.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_exportable_without_release_policy_error_7_3_preview_mhsm.yaml new file mode 100644 index 000000000000..4a402b9ab915 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_exportable_without_release_policy_error_7_3_preview_mhsm.yaml @@ -0,0 +1,63 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-namedba31fa4/create?api-version=7.3-preview + response: + body: + string: '' + headers: + cache-control: no-cache + content-length: '0' + content-security-policy: default-src 'self' + content-type: application/json; charset=utf-8 + strict-transport-security: max-age=31536000; includeSubDomains + www-authenticate: Bearer authorization="https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://managedhsm.azure.net" + x-content-type-options: nosniff + x-frame-options: SAMEORIGIN + x-ms-server-latency: '0' + status: + code: 401 + message: Unauthorized + url: https://mcpatinotesthsm.managedhsm.azure.net/keys/livekvtestkey-namedba31fa4/create?api-version=7.3-preview +- request: + body: '{"kty": "EC", "attributes": {"exportable": true}}' + headers: + Accept: + - application/json + Content-Length: + - '49' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-namedba31fa4/create?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"BadParameter","message":"Exportable keys must have + release policy (Activity ID: 0b7e4954-f3e8-11eb-b2bc-000d3a3145c5)"}}' + headers: + cache-control: no-cache + content-length: '138' + content-security-policy: default-src 'self' + content-type: application/json; charset=utf-8 + strict-transport-security: max-age=31536000; includeSubDomains + x-content-type-options: nosniff + x-frame-options: SAMEORIGIN + x-ms-server-latency: '16' + status: + code: 400 + message: Bad Request + url: https://mcpatinotesthsm.managedhsm.azure.net/keys/livekvtestkey-namedba31fa4/create?api-version=7.3-preview +version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_imported_key_release_7_3_preview_mhsm.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_imported_key_release_7_3_preview_mhsm.yaml new file mode 100644 index 000000000000..4cc0d78efd82 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_imported_key_release_7_3_preview_mhsm.yaml @@ -0,0 +1,137 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.24.0 + method: GET + uri: https://fakeattestation.azurewebsites.net/generate-test-token + response: + body: + string: '{"token":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImpfRUZtUTVVQm9lNHJMNUltNmw1cU1rQXN0QXluaE5JQUJ6dFZLQ0RMV1UiLCJqa3UiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0L2tleXMifQ.eyJpc3MiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0LyIsInNkay10ZXN0Ijp0cnVlLCJ4LW1zLWluaXR0aW1lIjp7fSwieC1tcy1ydW50aW1lIjp7ImtleXMiOlt7Imt0eSI6IlJTQSIsImtpZCI6ImZha2UtcmVsZWFzZS1rZXkiLCJ1c2UiOiJlbmMiLCJlIjoiQVFBQiIsIm4iOiIxRjNBWkNIR2xyS2o4dU1zY1FQMFFNQWZHZ1hsNzFfdjhFUHRNUTdnbnZ1Q0xYM1FFNHJrVHBuQ0FoMVZUNFFuSzFlcEpVbXBvTEwtY3FfQXBtVE93UmozTVk2RVBYS0tGTnJQYnNZVHVJVDBwd2dtM1Zwd3dLWEZtdW54cTZYUFJ4UHV4SU1IS1RGZHc1d1JlRzJTa1NVSVdRUFZaSURjWjhLOVFnc3NaZUljVTRvUXFheDMyRVRWa2FLTlFndmRhTnVOcEpGc0RjbWIza3MtTnJTbXZRVlktMjl5b1R3UnJqWUducExRc25EZENTSUxaenhxSG84Z0FsNjRqRWhBT01hczFTWUd5RVFVWEp2UmV5eU9Ka0R6SnRWczlNRlNFU1VrY29pdVh1UFUwNGJyTHAwMThKNy1nMFpiWXVfT0x0aWc5WXVzRERlNmM2MVJGdWJIYVEifV19LCJtYWEtZWhkIjoic2RrLXRlc3QiLCJpYXQiOjE2Mjc5NDYzNzksImV4cCI6MTk0MzUyMjM3OX0.aFT_5AYfAq5J-xIRpuo82AxP5vJdYsx89AnJTQ5m_JQBpGSoKO1F-f5s4y-57ZTgyrpyRRhat4s0YgtVqo2i92d4yBEOt9TNY5MFOj7EW70cmNdho9CFi7zY6qnK810IkvOLEW52t7W_OKazpRIXB1976z6b_A64QOIOuufEU-c21jo5AM1CaHL4ZL6Ai-CkKnAab8asAWHrrkuK8R5p5umZlsx-FPUMRdcpiKxOvD7OgXhPMS2B_qIBVLwyGLMgJ0YUByiUW6Qfa-7NgOI2PwmFqfy4AzFluzVMrxceQ929ail8XQ7_ICTCwTqoPqHwGJzyp9-KV6Zudc_pEy9tuA"}' + headers: + content-length: + - '1305' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 02 Aug 2021 23:19:38 GMT + etag: + - W/"519-82UHcsWh/3zt9fIV7bDKU7y5LMg" + set-cookie: + - ARRAffinity=31a267ed7b71ec86982412cc9dc4ad2f31ca2b8f51b692363aa765c405b03b84;Path=/;HttpOnly;Secure;Domain=skrattestation.azurewebsites.net + - ARRAffinitySameSite=31a267ed7b71ec86982412cc9dc4ad2f31ca2b8f51b692363aa765c405b03b84;Path=/;HttpOnly;SameSite=None;Secure;Domain=skrattestation.azurewebsites.net + x-powered-by: + - Express + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: PUT + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestimported-key-namebdc0178f?api-version=7.3-preview + response: + body: + string: '' + headers: + cache-control: no-cache + content-length: '0' + content-security-policy: default-src 'self' + content-type: application/json; charset=utf-8 + strict-transport-security: max-age=31536000; includeSubDomains + www-authenticate: Bearer authorization="https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://managedhsm.azure.net" + x-content-type-options: nosniff + x-frame-options: SAMEORIGIN + x-ms-server-latency: '2' + status: + code: 401 + message: Unauthorized + url: https://mcpatinotesthsm.managedhsm.azure.net/keys/livekvtestimported-key-namebdc0178f?api-version=7.3-preview +- request: + body: '{"key": {"kty": "RSA-HSM", "key_ops": ["encrypt", "decrypt", "sign", "verify", + "wrapKey", "unwrapKey"], "n": "AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU", + "e": "AQAB", "d": "Ynx9JGaBSP4iUsf6ZJ6opantRNdcdmzaQrKbZg6ZQE8Ohi1FYabJWvaoPSE-CiJEsDzShXZHMhUHN4X7Bn8BXaGQhK3p9HXgiwQKmix7oAJTu4ElUIyd8UC3UWHSZr40el4PaQD-HYu_eMzCXus34MnRiNbh_BUWm6T-Eidhk9d3kNIyaSi9YNDQHW6tjWrEhhq63O7JU1j9ZonFChZxpKk20jdkQKQURVAdpOdL-5j4I70ZxFuU6wHZj8DS8oRQfwGOvZKbgYDb5jgf3UNL_7eACqq92XPVX56vm7iKbqeyjCqAIx5y3hrSRIJtZlWCwjYnYQGd4unxDLi8wmJWSQ", + "dp": "AMmhWb5yZcu6vJr8xJZ-t0_likxJRUMZAtEULaWZt2DgODj4y9JrZDJP6mvckzhQP0WXk2NuWbU2HR5pUeCN2wieG1B76VKoH76vfnaJDqT1NuJVBcP2SLHog3ffwZtMME5zjfygchG3kihqOSpwTQ9ETAqAJTkRC38fEhwAz_Cp", + "dq": "AKC9TAo9n2RDaggjdLXK8kiLrBVoaWFTpqXkzYXRhtsx4vWPAkxhfSnze05rVMl6HiXv7FnE0f0wYawzUJzoyuXBH0zS6D9BqCZPeF543AmWB27iPf38Q9Z8Rjr6oBgMSnGDV_mm8nDVQkeaDyE4cOZh-5UKvKShTKKQVwunmDNH", + "qi": "AJ_nrkLpK8BPzVeARkvSHQyKwMWZ-a8CD95qsKfn0dOZAvXY-2xhQYTEwbED-0bpTNEKbIpA-ZkaHygmnzJkNbbFAnb9pkkzU8ZQqDP3JNgMfVIroWx58Oth9nJza2j7i-MkPRCUPEq3Ao0J52z7WJIiLji8TTVYW_NaiM1oxzsH", + "p": "ANHerI1o3dLB_VLVmZZVss8VZSYN5SaeQ_0qhfOSgOFwj__waCFmy2EG7l6l6f_Z-Y0L7Mn_LNov68lyWSFa2EuQUeVj4UoFHc5Di8ZUGiSsTwFM-XMtNuv8HmGgDYLL5BIJD3eTz71LdgW-Ez38OZH34b7VeG8zfeUDb8Hi30zz", + "q": "AMPcZrZBqbc82DO8Q5zTT8ZXRGWrW36KktMllaIk1W2RHnRiQiW0jBWmcCgqUcQNHa1LwumjyNqwx28QBS37BTvG7ULGUoio6LrOeoiBGEMj-U19sX6m37plEhj5Mak7j3OPPY_T9rohjTW5aGGg9YSwq4jdz0RrmBX00ofYOjI3"}, + "attributes": {"exportable": true}, "release_policy": {"data": "eyJhbnlPZiI6IFt7ImFueU9mIjogW3siY2xhaW0iOiAic2RrLXRlc3QiLCAiY29uZGl0aW9uIjogImVxdWFscyIsICJ2YWx1ZSI6IHRydWV9XSwgImF1dGhvcml0eSI6ICJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0In1dLCAidmVyc2lvbiI6ICIxLjAifQ"}}' + headers: + Accept: + - application/json + Content-Length: + - '2010' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: PUT + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestimported-key-namebdc0178f?api-version=7.3-preview + response: + body: + string: '{"attributes":{"created":1627946379,"enabled":true,"exportable":true,"recoverableDays":7,"recoveryLevel":"CustomizedRecoverable+Purgeable","updated":1627946379},"key":{"e":"AQAB","key_ops":["decrypt","encrypt","unwrapKey","sign","verify","wrapKey"],"kid":"https://managedhsmname.managedhsm.azure.net/keys/livekvtestimported-key-namebdc0178f/a2438938541d0db69273a22359e111a0","kty":"RSA-HSM","n":"oJFNACNKxoOyG0wV1b7Yh73JWcLlevVK5zTo8Acg13XSdeRVIH43hM7rYKUKRlXdcqepTScejuj3lZpmnKbndb8OI7ra6ZG0Up2XhSi0vZBSHTLdJlZ5a6gra7_HZoyPXutQU3R_0ZkxnSmoRA0I9EEtUn_5MR7acYJZILR7HEaxGrPpHXMWQH6Jx_NA97haNAQs5RdDsn1HGEA9NMe0OK9hgb4F5NEeuYXTglPX_pv1P8LxsALSLS15P6eaUEtqtC0EkoBNcHHXJ6Bs86iJOqVCsVA_gyspY3G2cH1NxuNy-P5n2N7RyQj95FzgO8CGpxSH-nXkOqDgZ5qg0g7-NQ"},"release_policy":{"contentType":"application/json; + charset=utf-8","data":"eyJhbnlPZiI6W3siYW55T2YiOlt7ImNsYWltIjoic2RrLXRlc3QiLCJlcXVhbHMiOnRydWV9XSwiYXV0aG9yaXR5IjoiaHR0cHM6Ly9za3JhdHRlc3RhdGlvbi5henVyZXdlYnNpdGVzLm5ldC8ifV0sInZlcnNpb24iOiIxLjAuMCJ9"}}' + headers: + cache-control: no-cache + content-length: '995' + content-security-policy: default-src 'self' + content-type: application/json; charset=utf-8 + strict-transport-security: max-age=31536000; includeSubDomains + x-content-type-options: nosniff + x-frame-options: SAMEORIGIN + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; + x-ms-keyvault-region: westus + x-ms-server-latency: '888' + status: + code: 200 + message: OK + url: https://mcpatinotesthsm.managedhsm.azure.net/keys/livekvtestimported-key-namebdc0178f?api-version=7.3-preview +- request: + body: '{"target": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImpfRUZtUTVVQm9lNHJMNUltNmw1cU1rQXN0QXluaE5JQUJ6dFZLQ0RMV1UiLCJqa3UiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0L2tleXMifQ.eyJpc3MiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0LyIsInNkay10ZXN0Ijp0cnVlLCJ4LW1zLWluaXR0aW1lIjp7fSwieC1tcy1ydW50aW1lIjp7ImtleXMiOlt7Imt0eSI6IlJTQSIsImtpZCI6ImZha2UtcmVsZWFzZS1rZXkiLCJ1c2UiOiJlbmMiLCJlIjoiQVFBQiIsIm4iOiIxRjNBWkNIR2xyS2o4dU1zY1FQMFFNQWZHZ1hsNzFfdjhFUHRNUTdnbnZ1Q0xYM1FFNHJrVHBuQ0FoMVZUNFFuSzFlcEpVbXBvTEwtY3FfQXBtVE93UmozTVk2RVBYS0tGTnJQYnNZVHVJVDBwd2dtM1Zwd3dLWEZtdW54cTZYUFJ4UHV4SU1IS1RGZHc1d1JlRzJTa1NVSVdRUFZaSURjWjhLOVFnc3NaZUljVTRvUXFheDMyRVRWa2FLTlFndmRhTnVOcEpGc0RjbWIza3MtTnJTbXZRVlktMjl5b1R3UnJqWUducExRc25EZENTSUxaenhxSG84Z0FsNjRqRWhBT01hczFTWUd5RVFVWEp2UmV5eU9Ka0R6SnRWczlNRlNFU1VrY29pdVh1UFUwNGJyTHAwMThKNy1nMFpiWXVfT0x0aWc5WXVzRERlNmM2MVJGdWJIYVEifV19LCJtYWEtZWhkIjoic2RrLXRlc3QiLCJpYXQiOjE2Mjc5NDYzNzksImV4cCI6MTk0MzUyMjM3OX0.aFT_5AYfAq5J-xIRpuo82AxP5vJdYsx89AnJTQ5m_JQBpGSoKO1F-f5s4y-57ZTgyrpyRRhat4s0YgtVqo2i92d4yBEOt9TNY5MFOj7EW70cmNdho9CFi7zY6qnK810IkvOLEW52t7W_OKazpRIXB1976z6b_A64QOIOuufEU-c21jo5AM1CaHL4ZL6Ai-CkKnAab8asAWHrrkuK8R5p5umZlsx-FPUMRdcpiKxOvD7OgXhPMS2B_qIBVLwyGLMgJ0YUByiUW6Qfa-7NgOI2PwmFqfy4AzFluzVMrxceQ929ail8XQ7_ICTCwTqoPqHwGJzyp9-KV6Zudc_pEy9tuA"}' + headers: + Accept: + - application/json + Content-Length: + - '1307' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestimported-key-namebdc0178f/release?api-version=7.3-preview + response: + body: + string: '{"value":"eyJhbGciOiJSUzI1NiIsImtpZCI6IjJTd1puaWN4Z0FBZl9uTmpvamtKUUFYNDBZNGRBV1UwZjcwcDVDdHB3VGsiLCJ4NWMiOlsiTUlJSW1UQ0NCb0dnQXdJQkFnSVRNd0FYR0FYdGswSXdxdTVaN3dBQUFCY1lCVEFOQmdrcWhraUc5dzBCQVF3RkFEQlpNUXN3Q1FZRFZRUUdFd0pWVXpFZU1Cd0dBMVVFQ2hNVlRXbGpjbTl6YjJaMElFTnZjbkJ2Y21GMGFXOXVNU293S0FZRFZRUURFeUZOYVdOeWIzTnZablFnUVhwMWNtVWdWRXhUSUVsemMzVnBibWNnUTBFZ01EWXdIaGNOTWpFd09EQXlNakExTmpVMldoY05Nakl3TnpJNE1qQTFOalUyV2pCOU1Rc3dDUVlEVlFRR0V3SlZVekVMTUFrR0ExVUVDQk1DVjBFeEVEQU9CZ05WQkFjVEIxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakV2TUMwR0ExVUVBd3dtS2k1dFkzQmhkR2x1YjNSbGMzUm9jMjB1YldGdVlXZGxaR2h6YlM1aGVuVnlaUzV1WlhRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURTZkVGazc1RTQwQ1hsbk0reVBESU5nS1JQYmN3YVJCYzRVSW1lQzNjUkpJSWxWUEh5d0dHZ3AvQ2kyQUFhYjNVR0JSRnpFbGw3YlBOczU5Rm9kTGx3R2N6MUdtY0ZMZTFld1dDcW5qeGo3K2haa25WNVBmS2FhRzRpeXhnVkpiMStBTDlpZzJEWDk0RFlWWFdKUHFXRXo4VG1DS2dPd2tCLzlCTFNIVzhuQjF4amY0Z1pnVjh0S3pZZG95cDl3VXhYZjVSQWVjTmpyNXZBUHh0TFhPU2lUSGpuaUpnbnlKdUMrMzE0YkVsV0w5UGxIa2I3S3RvN2tlSnNyWHZUU3kybVVDNW5IeDBFVWViV2lDN1A1OXZhZWNTdVh0Y3FhUnJ6Ky9DK0JMcFVvampoWTdyRWExaGJhMGd2RitEZUtzaWNyTDBXZTFSRE0vK0F0cDVXaGZXL0FnTUJBQUdqZ2dRME1JSUVNRENDQVg0R0Npc0dBUVFCMW5rQ0JBSUVnZ0Z1QklJQmFnRm9BSFlBS1htKzhKNDVPU0h3Vm5PZlk2VjM1YjVYZlp4Z0N2ajVUVjBtWENWZHg0UUFBQUY3Q0xEcUJ3QUFCQU1BUnpCRkFpQTFtQ1F0ajh0dGI3SEVNRFVEOFRlZkd3OE1IVXVlWm54RDAvcUVBOG9RaHdJaEFOSHowbk1GQndDUXZFRzJZRUVHUnVZNlgzM0IxQm1OcUV3Q1M0d3dsdlhRQUhjQTdrdTl0M1hPWUxyaFFta2ZxK0dlWnFNUGZsK3djdGlEQU1SN2lYcW8vY3NBQUFGN0NMRHFQUUFBQkFNQVNEQkdBaUVBczZ4ZWxWR3NhZGNna0RpdGxZSjV3M3VYZ0FBVEVReU9YVGhxSDJSaXFrNENJUUNXQ3hpU3kvMHRaaWMxSDNEMzdYRDlZMmt1YlA0TitzbHZtaDNjSk8vVXpBQjFBRUhJeXJIZklrWktFTWFoT2dsQ2gxNU9NWXNiQSt2clM4ZG84SkJpbGdiMkFBQUJld2l3NmpRQUFBUURBRVl3UkFJZ0N5aGhFZW1HeXNiakJFZ0Q5b3FuSG5zYXA3ZEtBNEpBZTJVVSs1NTJsRWdDSUFJSlNvTm41QlVVUVFiRmhOQWtQaCtVaFJMRzhFTU9WWEdOR01kWG9tVUhNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0l3Q2dZSUt3WUJCUVVIQXdFd1BBWUpLd1lCQkFHQ054VUhCQzh3TFFZbEt3WUJCQUdDTnhVSWg3M1hHNEhuNjBhQ2daMHVqdEFNaC9EYUhWMkNoT1ZwZ3ZPblBnSUJaQUlCSXpDQnJnWUlLd1lCQlFVSEFRRUVnYUV3Z1o0d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1FYcDFjbVVsTWpCVVRGTWxNakJKYzNOMWFXNW5KVEl3UTBFbE1qQXdOaVV5TUMwbE1qQjRjMmxuYmk1amNuUXdMUVlJS3dZQkJRVUhNQUdHSVdoMGRIQTZMeTl2Ym1WdlkzTndMbTFwWTNKdmMyOW1kQzVqYjIwdmIyTnpjREFkQmdOVkhRNEVGZ1FVSlVhK1RjY0hTdTdnS3p1T3paajZjQ0FpZFg0d0RnWURWUjBQQVFIL0JBUURBZ1N3TUZjR0ExVWRFUVJRTUU2Q0ppb3ViV053WVhScGJtOTBaWE4wYUhOdExtMWhibUZuWldSb2MyMHVZWHAxY21VdWJtVjBnaVJ0WTNCaGRHbHViM1JsYzNSb2MyMHViV0Z1WVdkbFpHaHpiUzVoZW5WeVpTNXVaWFF3WkFZRFZSMGZCRjB3V3pCWm9GZWdWWVpUYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1FYcDFjbVVsTWpCVVRGTWxNakJKYzNOMWFXNW5KVEl3UTBFbE1qQXdOaTVqY213d1pnWURWUjBnQkY4d1hUQlJCZ3dyQmdFRUFZSTNUSU45QVFFd1FUQS9CZ2dyQmdFRkJRY0NBUll6YUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OUViMk56TDFKbGNHOXphWFJ2Y25rdWFIUnRNQWdHQm1lQkRBRUNBakFmQmdOVkhTTUVHREFXZ0JUVndXYzZ3cU9kOUhkU1cxa1NPQ25tVldpN3BUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBZ1lJS3dZQkJRVUhBd0V3RFFZSktvWklodmNOQVFFTUJRQURnZ0lCQUZMNHdKWE8xYmtieVNQZmVrbDBuUTVYSytFOEFRSzhuK0xBZE4yb0tGbFNVeFcxdytNZVAwdUNQQ25remJnb3BYRENuR2NURlVFMGZLcWVKQm5vc29KZ0c1Uy9qbUxKd1h1ODVwRSt0clJQRTZxejhLcFF0bS82TFp2Q0ZwWlgzekk4UXBhSkZMdmcxekJnSEx0azRiNGI4WGVFbkZIM3ppRFo0Q2xhRXNyajR5Ymp5VGEzZld6N21PVDkwbEdteEpWMjdiNVZuU3c2KzZuUGkybnZ1YTBzeVdxazVIdElFRVhudFNnLzFxTitrdTFjWU1DM0xjOWFuOHFkV0QvNmdlb0JGWmNNSnptWnNBTVphTG5QTHo3L01MUkZKeDdINk1GeHYxZW9HU0pEQmd2ZDNFbnVOYWFaN0pJdHlvSzRMR2l5dVg5RjdmWjBOWmpLekk1NCtMOGFwSlVKWkNJbVMzUnA1L25YbnA1VjRMeUN5OVJtQlBzaDgyRFhXeU05dE82eXJXelVQTHdKZGZQamdNRHQvUkI1TzVMT204azNuTmErcFgyZ2V1Y3hsTC9maXUvT2JOaGhpZU8rWTJtNlRBMElHZnlFVFR1cE1NVVhwcGVVRVBXQTFuZjFYK2ZGcDFyK25OYTgwdHlUZWVrZkIyYkptd0FqeTFmT29HQjhRYlhpYUNYMDFvcU84aEtSTEl4OEQvRGtOSlVQNkl5QlVOdGxaRmJyVVlEbjVoKzZOaWpDa1Y5UlJhWktCbURONURkWml1cklLcVNoWHRmaUlLR0NkcXIrajRodWQzbzg4WXJQL1VudGw3OFVLNDNOcVc5Ulpadkx6bWRPWWF5OW92b1VxclJJbXZDSSsyRkpqSUIwVnNaWGV2OTRyM0lOWlRWWFNWeWh5eGR5IiwiTUlJRjh6Q0NCTnVnQXdJQkFnSVFBdWVSY2Z1QUllay80dG1EZzB4UXdEQU5CZ2txaGtpRzl3MEJBUXdGQURCaE1Rc3dDUVlEVlFRR0V3SlZVekVWTUJNR0ExVUVDaE1NUkdsbmFVTmxjblFnU1c1ak1Sa3dGd1lEVlFRTEV4QjNkM2N1WkdsbmFXTmxjblF1WTI5dE1TQXdIZ1lEVlFRREV4ZEVhV2RwUTJWeWRDQkhiRzlpWVd3Z1VtOXZkQ0JITWpBZUZ3MHlNREEzTWpreE1qTXdNREJhRncweU5EQTJNamN5TXpVNU5UbGFNRmt4Q3pBSkJnTlZCQVlUQWxWVE1SNHdIQVlEVlFRS0V4Vk5hV055YjNOdlpuUWdRMjl5Y0c5eVlYUnBiMjR4S2pBb0JnTlZCQU1USVUxcFkzSnZjMjltZENCQmVuVnlaU0JVVEZNZ1NYTnpkV2x1WnlCRFFTQXdOakNDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFMVkdBUmw1NmJ4M0tCVVNHdVBjNEg1dW9ORmtGSDRlN3B2VEN4Umk0ai8reitYYndqRXorNUNpcERPcWp4OS9qV2pza0w1ZGs3UGFRa3pJdGlkc0FBbkRDVzFsZVpCT0lpNjhMZmYxYmpUZVpnTVlpd2RSZDNZMzliL2xjR3BpdVAyZDIzVzk1WUhrTU1UOElsV29zWUlYMGY0a1liNjJycGh5Zm5BalliLzRPZDk5VGhuaGxBeEd0ZnZTYlhjQlZJS0NZZlpncVJ2Vis1bFJlVW5kMWFOalJZVnpQT29pZmdTeDJmUnl5MStwTzFVemFNTU5uSU9FNzFiVllXMEExaHIxOXc3a09iMEtrSlhvQUxURERqMXVrVUVEcVF1QmZCeFJlTDVtWGl1MU83V0cwdmx0ZzBWWi9TWnpjdEJzZEJseDFCa21XWUJXMjYxS1pnQml2cnFsNUVMVEtLZDhxZ3RIY0xRQTVmbDZKQjBRZ3M1WERhV2VoTjg2R3BzNUpXOEFyakd0amNXQUlQK1g4Q1FhV2ZhQ251Um02QmsvMDNQUVdoZ2RpODRxd0Ewc3NSZkZKd0hVUFROU25FOEVpR1ZrMmZydDB1OFBHMXB3U1FzRnVOSmZjWUlIRXYxdk96UDd1RU91RHlkc21DamhseHVvSzJuNS8yYVZSM0JNVHUrcDQrZ2w4YWxYb0J5Y3lMbWozSi9QVWdxRDhTTDVmVENVZWdHc2RpYS9TYTYwTjJvVjd2UTE3d2pNTitMWGEycmpqL2I0WmxaZ1hWb2pEbUFqRHdJUmREVXVqUXUwUlZzSnFGTE16U0lIcHAyQ1pwN21Jb0xyeVNheTJZWUJ1N1NpTndMOTVYNkhlMmtTOGVlZkJCSGp6d1cvOUZ4R3FyeTU3aTcxYzJjREFnTUJBQUdqZ2dHdE1JSUJxVEFkQmdOVkhRNEVGZ1FVMWNGbk9zS2puZlIzVWx0WkVqZ3A1bFZvdTZVd0h3WURWUjBqQkJnd0ZvQVVUaUpVSUJpVjV1TnU1Zy82K3JrUzdRWVhqemt3RGdZRFZSMFBBUUgvQkFRREFnR0dNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUZCUWNEQWpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1IWUdDQ3NHQVFVRkJ3RUJCR293YURBa0JnZ3JCZ0VGQlFjd0FZWVlhSFIwY0RvdkwyOWpjM0F1WkdsbmFXTmxjblF1WTI5dE1FQUdDQ3NHQVFVRkJ6QUNoalJvZEhSd09pOHZZMkZqWlhKMGN5NWthV2RwWTJWeWRDNWpiMjB2UkdsbmFVTmxjblJIYkc5aVlXeFNiMjkwUnpJdVkzSjBNSHNHQTFVZEh3UjBNSEl3TjZBMW9ET0dNV2gwZEhBNkx5OWpjbXd6TG1ScFoybGpaWEowTG1OdmJTOUVhV2RwUTJWeWRFZHNiMkpoYkZKdmIzUkhNaTVqY213d042QTFvRE9HTVdoMGRIQTZMeTlqY213MExtUnBaMmxqWlhKMExtTnZiUzlFYVdkcFEyVnlkRWRzYjJKaGJGSnZiM1JITWk1amNtd3dIUVlEVlIwZ0JCWXdGREFJQmdabmdRd0JBZ0V3Q0FZR1o0RU1BUUlDTUJBR0NTc0dBUVFCZ2pjVkFRUURBZ0VBTUEwR0NTcUdTSWIzRFFFQkRBVUFBNElCQVFCMm9XYzkzZkI4ZXNjaS84ZXNpeGorK04yMm1laUdEamdGK3JBMkxVSzVJT1FPZ2NVU1RHS1NxRjlsWWZBeFBqcnFQakRDVVBIQ1VSdisyNmFkNVAvQll0WHRibXR4Sld1K2NTNUJoTURQUGVHM29QWndYUkhCSkZBa1k0TzRBRjdSSUFBVVc2RXpEZmxVb0RIS3Y4M3pPaVBmWUdjcEhjOXNreEFJbkNlZGs3UVNnWHZNQVJqak9xZGFrb3IyMURUbU5JVW90eG84a0h2NWh3UmxHaEJKd3BzNmZFVmkxQnQwdHJwTS8zd1l4bHI0NzNXU1BVRlpQZ1AxajUxOWtMcFdPSjh6MDl3eGF5K0JyMjlpclBjQll2MEdNWGxIcVRoeTh5NG0vSHlUUWVJMklNdk1yUW53cVBwWStyTElYeXZpSTJ2TG9JKzR4S0U0Um4zOFpaOG0iLCJNSUlEampDQ0FuYWdBd0lCQWdJUUF6cng1cWNScWFDN0tHU3hIUW42NVRBTkJna3Foa2lHOXcwQkFRc0ZBREJoTVFzd0NRWURWUVFHRXdKVlV6RVZNQk1HQTFVRUNoTU1SR2xuYVVObGNuUWdTVzVqTVJrd0Z3WURWUVFMRXhCM2QzY3VaR2xuYVdObGNuUXVZMjl0TVNBd0hnWURWUVFERXhkRWFXZHBRMlZ5ZENCSGJHOWlZV3dnVW05dmRDQkhNakFlRncweE16QTRNREV4TWpBd01EQmFGdzB6T0RBeE1UVXhNakF3TURCYU1HRXhDekFKQmdOVkJBWVRBbFZUTVJVd0V3WURWUVFLRXd4RWFXZHBRMlZ5ZENCSmJtTXhHVEFYQmdOVkJBc1RFSGQzZHk1a2FXZHBZMlZ5ZEM1amIyMHhJREFlQmdOVkJBTVRGMFJwWjJsRFpYSjBJRWRzYjJKaGJDQlNiMjkwSUVjeU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBdXpmTk5OeDdhOG15YUpDdFNuWC9Scm9oQ2dpTjlSbFV5ZnVJMi9PdThqcUprVHg2NXFzR0dtdlByQzNvWGdra1JMcGltbjdXbzZoKzRGUjFJQVdzVUxlY1l4cHNNTnphSHhteDF4N2UvZGZneTVTRE42N3NIME5PM1hzczByMHVwUy9rcWJpdE90U1pwTFlsNlp0ckFHQ1NZUDlQSVVrWTkyZVFxMkVHbkkveXV1bTA2Wkl5YTdYelYraGRHODJNSGF1VkJKVko4elV0bHVOSmJkMTM0L3RKUzdTc1ZRZXBqNVd6dENPN1RHMUY4UGFwc3BVd3RQMU1WWXduU2xjVWZJS2R6WE9TMHhaS0JneU1VTkdQSGdtK0Y2SG1JY3I5ZytVUXZJT2xDc1JuS1BaekZCUTlSbmJEaHhTSklUUk5ydzlGREtaSm9icTduTVd4TTRNcGhRSURBUUFCbzBJd1FEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BNEdBMVVkRHdFQi93UUVBd0lCaGpBZEJnTlZIUTRFRmdRVVRpSlVJQmlWNXVOdTVnLzYrcmtTN1FZWGp6a3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBR0JuS0pSdkRraGo2ekhkNm1jWTFZbDlQTVdMU24vcHZ0c3JGOSt3WDNOM0tqSVRPWUZuUW9RajhrVm5OZXlJdi9pUHNHRU1OS1N1SUV5RXh0djROZUYyMmQrbVFydkhSQWlHZnpaMEpGcmFiQTBVV1RXOThrbmR0aC9Kc3cxSEtqMlpMN3RjdTdYVUlPR1pYMU5HRmR0b20vRHpNTlUrTWVLTmhKN2ppdHJhbGo0MUU2VmY4UGx3VUhCSFFSRlhHVTdBajY0R3hKVVRGeThiSlo5MThyR09tYUZ2RTdGQmNmNklLc2hQRUNCVjEvTVVSZVhnUlBUcWg1VXlrdzcrVTBiNkxKMy9peUs1UzlrSlJhVGVwTGlhV04wYmZWS2ZqbGxEaUlHa25pYlZiNjNkRGNZM2ZlMERraHZsZDE5MjdqeU54RjFXVzZMWlptNnpOVGZsTXJZPSJdLCJ4NXQjUzI1NiI6IjJTd1puaWN4Z0FBZl9uTmpvamtKUUFYNDBZNGRBV1UwZjcwcDVDdHB3VGsifQ.eyJyZXF1ZXN0Ijp7ImFwaS12ZXJzaW9uIjoiNy4zLXByZXZpZXciLCJlbmMiOiJDS01fUlNBX0FFU19LRVlfV1JBUCIsImtpZCI6Imh0dHBzOi8vbWNwYXRpbm90ZXN0aHNtLm1hbmFnZWRoc20uYXp1cmUubmV0L2tleXMvbGl2ZWt2dGVzdGltcG9ydGVkLWtleS1uYW1lYmRjMDE3OGYifSwicmVzcG9uc2UiOnsia2V5Ijp7ImF0dHJpYnV0ZXMiOnsiY3JlYXRlZCI6MTYyNzk0NjM3OSwiZW5hYmxlZCI6dHJ1ZSwiZXhwb3J0YWJsZSI6dHJ1ZSwicmVjb3ZlcmFibGVEYXlzIjo3LCJyZWNvdmVyeUxldmVsIjoiQ3VzdG9taXplZFJlY292ZXJhYmxlK1B1cmdlYWJsZSIsInVwZGF0ZWQiOjE2Mjc5NDYzNzl9LCJrZXkiOnsiZSI6IkFRQUIiLCJrZXlfaHNtIjoiZXlKamFYQm9aWEowWlhoMElqb2lTMWxOVlZNMFl6UmFWbmhOYUZBd2RFb3RZaTE2Wm5kdmQyZDVRMGRYUkZWMWFUaHpUVUZLVkVsSFdsQkhkSFJxZVc5cFRrWTVha2hYT1VSaVZVNUtWbFJ6WkZkM00zbGZOVmczZEZKaFNqUjJTVFV0Y2paUGFtUnhRalE0VVVaNVh6Y3lUVzFwUmxkNlRuUjZhWG8zZEhkT1QyMUpiVEV3WTNaMFlpMU1Zblp0Ulhsak5raGxiRTFKVm01dFRUWllkRll4YWpnM2VXMWlTWHA1WlZBMFozWjBkbEV5VEdaeE9UUjFhMk55YmtJeGJETXhNalozWWw5VFZHUnlVbGxRUzFOMVgxcHRRVlIzYTJFeVVWaFFPV1F6Y0dKTVpXZFBabWhDU1VkTVJXcGhjRjg0UmpFMGRsRmpOV1owYURKRFYxaHplRVo1VVdadlNtWmFUeTFYYUVWaU1rNXFhMmcwUzNNd09XeDZibXRoU1RoYU1URlZSVGMzVDFSMlEwUnlTR2xwZUZaaWRWYzRVMHh1VVRCaFQybHBRMDVaVUdjNFgzVndhak56ZWkxeFUyWndkMlZTYlhKMFIwUlBjbFJRYUd4Wk9IYzFRME5aYnpacVl6WlhWazlhVGxsdWJtOXFUMHgyWjNaU2NXSjBZVU5KTWkxaldXSnBTVkJCUkRZMlZXUlVWekZqU0ZSNmRYTkVha2MxZHpkNlkzVllNMTlqTWpsRExYbzNkVmxOZVd4TWNIVm5jbXhsY0VKalJVdHVObU5ITnpkcVltbHJYMjV4ZGs1Tk1GOTFaak5KZFZsemRWTk5VV1ZrY201S2FrUkZSVk50YzNRMU1uaEtlamhHUW5oTVZteDRjRWw0UjBac1NuSXhWRzh4TUc5TFdUQTVlVEJEZDBOcFRETnJOVFJVTTNCaVdFNXhXVTVzUmxKelZWY3RVMkZyUmxKb04xRnNiMGxKVTBOS2NqVTJiRlZwWTFsa01YTlJkamxwWjE4dGRtVjBTeTAwUWkwM1JVcGtORU5uWnpWNlRISXRRV3hvTW5KdGVtdHhaMTlFTFU1WlJYUm9PRzVQU0hGcGFYZHZZVXAzVDFSZlVrSkNSbFo2WTI4eWNVUTNlVkJhZUhReU1tZFhiVzFmU1V4NGVrNUNTVmREVkdkeFdHeG5aRTAwVm10M1QxUXhSVEZCZUVaNldITnRhMUZZWlVkelRGcEtOMDkxYkRGWFdrcGFPR2gxTldJdE9WUlVXbUpyYmpaTWFVVldTVTVKY3pkVWJXRnlURzloTTNOME9XdDVaMlpTUkhwNVVYRjVOemxsUzBSaE5IQkNiMGxMUlhkSGIxcFpabVJpWldGTFpHVnpZVmM0YUhoWmVWOVZUUzFqYkRoYWRWOVdNR1J6WW1abmFGZGFPRXBxTWtVellTMVJablJSWjBwZlRYWjZWbmszU0c5SVJXeExiRzFzYWpGaGJtNDRXa2hTZWtGV1lXNVpkbDkwTlZsSlUxUjBVek0yZUdoMlpITmlkV2RuU1RrdFNuUXlXSEIyYTA0eFpWZHhjM2RzZUZKYVYxVmxla2RYY1ROSGFYWk1kREUxVlRkS05WTm5jV2xLVW5wNlkyeGpMVTVoTmxGNGNsSklOa2xKZW00M056YzJWM0l0Y3paRFdESXlVbEJCVjB0eGJXVmxWWEJZUmpSWlZFcE9aWEJYTFY5Mk1HWkVNblpSY0djNVptMWFkV2xyVW5kWk56UlJaV0o1U21abVJtMUJkamh2TnpKbGRrVjZVa3RVWWpoaFpqaFdNRFZRVVZSQlFYVTRRVmhEWlRrMllWb3pURmczTVcxR1pUQmlkaTEyY21WVVNIUXpUVkJZTVVOb01HeG9SblpzVXpJM2EyUmtTbTFoVlZaVmMxVlhNVVJXUldOTmVIUllhRVk0YW5vNVRFUjVWemhZZW5nd01EaHpiR3RQVm1OUlVYSlRlVmRxTUdKUVgySTBORVZ2UXpOdlJtVk9aMlZwY2xseVFWVlhRbGQ2VlVwb2REWXpRbTAwYzJGQlFUUkxVV1JtWjI5b1pqbFJaM2htZWxBeGJsZ3lZbEpKVTNSblJtVXRiVXd0VjBOeFMySmFObWRWUkVoQlpIQnlNR053YTI5T2RVWXdTRnBKZVhOdVpXSnRRV2N0VGpkYVZHWnpXVWRPTFROc09VY3dNa3BvT1dSb1F6WndRM3BtZUhkdFNrZHVVVEpJUlRKME5qa3lMWGRsZDFwd05Va3pMVVZNYTB4RlNqQm1NWE5sU3pWYU1rTm1ObU5aUmxoTE9VVnFOMlZsWjBWWWQyOW1ZMDB6WDE5M1pGcFlla2RMWkhWaVUyWnpNekJVVFRGak5YUlJTWE52WXpSUlZsSmpkRmxKUW1SMVlXTnlOekZ1VW1adlRrbG5OM1ZyWTJwZk9GQnhibDlZUW1aWGVUTkpPRE5rVlZJeVNYSjZZVXRqV0VGUmVtVjBRVUpMWVV0dGRIQjVSMHN5YXpSdVdITkZNVVk1VTNaeFJWQlllRUpTVEdwUGRYcHViRmd5ZWtWdGNIVldUM1phV1hoNVpGOURSWGhhY1Mwd1dXUkplWEYyVm1oTVFtWldVamh0V1ZSM2FVRnpZVVF3YW1aSU0wY3RZM05SWVVsUGRXaEhUbUZGTTJ0QlYycGxXSGh5U25oUldIaEZhekJCUzJ4amNFUndOSGczVXkxa1FsVkZSV2wxWDJOek56bDBWa2hhTmswMGFXeHdiRUp2YjBSdVNVUmZPRGxJUnpsUFJqZGpVSFJwYzJGRWJXeG1ZMlYxUmpVeWNUbFpRMnRXZWtGbWRWOTVXbk53TFRsRFRUSmZha1ZzWlVGMUxUVTRSbFpGVFZoTE5IQm9SWFpaUkZOQmQydHRWamRDWlc5dFVGRjViV2RNWm0xbGNXbHNhVXh1TjBkVlQyTkhVVmMzUjFNdFFtbE9kVU5WUldNemExaDBObFY2UWtGNVZtcHhZMWh1UTFVMU4xaHpMWEpMVVVGcVQzbEdlbUV6VmpBMlNVbGpPSFJQUkdad2VrRlZlVXN3Um1Sd2JETXlWRGxzVVVwTGMyVTJWRmRSVUhCRVRYcHhVSEYyWDJOQk5tbzRORjlGTFMwd1ZGQm9WRXBhWWtGTGRVWXpSaloxVm0xTFJuTTNSbTVCYnpGa1FtWmFjVTFNWTJZd1ZYVlhMWGRuUVdKUU5VdEljSE0wVUhoVU4yVkxXVzlKWlZGU01sOTBOMlZWVTBORllVaFhYMDVvUVRWNmIxQXlSazkxVFhKbFVXZzVSSGRTWW1oQlgxZ3pjRkE1ZGtRM2VVVXRkVmd5UmtWM2VqTnRjMlpDTTNOblVIUm5VMHBuYUVGWlZIbGZkRkZIWHpaVFVUVlhRekZvZFY5bGJXcHZZV2xVY1dWTlMzaFBSMnhKUVZGSVJWTmpZM2xDUzAxNWEyNUdRamxFUzJaaGFFaGxlWGxxTFdwM2EzUmFRbVZhVTJWYVlVUjFRVXBRWkVabFRVZGFPR3hpTXlJc0ltaGxZV1JsY2lJNmV5SmhiR2NpT2lKa2FYSWlMQ0psYm1NaU9pSkRTMDFmVWxOQlgwRkZVMTlMUlZsZlYxSkJVQ0lzSW10cFpDSTZJbVpoYTJVdGNtVnNaV0Z6WlMxclpYa2lmU3dpYzJOb1pXMWhYM1psY25OcGIyNGlPaUl4TGpBaWZRIiwia2V5X29wcyI6WyJlbmNyeXB0IiwiZGVjcnlwdCIsInVud3JhcEtleSIsInNpZ24iLCJ2ZXJpZnkiLCJ3cmFwS2V5Il0sImtpZCI6Imh0dHBzOi8vbWNwYXRpbm90ZXN0aHNtLm1hbmFnZWRoc20uYXp1cmUubmV0L2tleXMvbGl2ZWt2dGVzdGltcG9ydGVkLWtleS1uYW1lYmRjMDE3OGYvYTI0Mzg5Mzg1NDFkMGRiNjkyNzNhMjIzNTllMTExYTAiLCJrdHkiOiJSU0EiLCJuIjoib0pGTkFDTkt4b095RzB3VjFiN1loNzNKV2NMbGV2Vks1elRvOEFjZzEzWFNkZVJWSUg0M2hNN3JZS1VLUmxYZGNxZXBUU2NlanVqM2xacG1uS2JuZGI4T0k3cmE2WkcwVXAyWGhTaTB2WkJTSFRMZEpsWjVhNmdyYTdfSFpveVBYdXRRVTNSXzBaa3huU21vUkEwSTlFRXRVbl81TVI3YWNZSlpJTFI3SEVheEdyUHBIWE1XUUg2SnhfTkE5N2hhTkFRczVSZERzbjFIR0VBOU5NZTBPSzloZ2I0RjVORWV1WVhUZ2xQWF9wdjFQOEx4c0FMU0xTMTVQNmVhVUV0cXRDMEVrb0JOY0hIWEo2QnM4NmlKT3FWQ3NWQV9neXNwWTNHMmNIMU54dU55LVA1bjJON1J5UWo5NUZ6Z084Q0dweFNILW5Ya09xRGdaNXFnMGc3LU5RIn0sInJlbGVhc2VfcG9saWN5Ijp7ImNvbnRlbnRUeXBlIjoiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCIsImRhdGEiOiJleUpoYm5sUFppSTZXM3NpWVc1NVQyWWlPbHQ3SW1Oc1lXbHRJam9pYzJSckxYUmxjM1FpTENKbGNYVmhiSE1pT25SeWRXVjlYU3dpWVhWMGFHOXlhWFI1SWpvaWFIUjBjSE02THk5emEzSmhkSFJsYzNSaGRHbHZiaTVoZW5WeVpYZGxZbk5wZEdWekxtNWxkQzhpZlYwc0luWmxjbk5wYjI0aU9pSXhMakF1TUNKOSJ9fX19.AlXLZH6ppFhTmVjd_DHPnuFgvatgOf1LyRdvA_FN3oTZIt75fM9bREWIPZsggPGi5-g_8gciVa4qF9LamBYhlqBLIDmXYF3yzEzpmn_1M0OTt24SERxGp3zJLRCx-ctEe8LZJtnSG4oIwNCvNA02s9hFQsGxWnuHEolxjqDuwlPFYlPCcfaDgS0THg7UOmRWR6KQGtlcO_6uISlyp8nkYySe1Qgvg0PblYQIQY7iL_DygSwlOrKfwlNomi4ne6cuRkCOSI28_NCfZVvjxcF4x0SXdK9vqFrMyvZrCwY2lmDsDQCzS-GW_Ic0BkwnoK-2OmcmIJIZa5hr2I_XHEhpjQ"}' + headers: + cache-control: no-cache + content-length: '14126' + content-security-policy: default-src 'self' + content-type: application/json; charset=utf-8 + strict-transport-security: max-age=31536000; includeSubDomains + x-content-type-options: nosniff + x-frame-options: SAMEORIGIN + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; + x-ms-keyvault-region: westus + x-ms-server-latency: '847' + status: + code: 200 + message: OK + url: https://mcpatinotesthsm.managedhsm.azure.net/keys/livekvtestimported-key-namebdc0178f//release?api-version=7.3-preview +version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_key_release_7_3_preview_mhsm.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_key_release_7_3_preview_mhsm.yaml new file mode 100644 index 000000000000..f8cd30ba1e29 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_key_release_7_3_preview_mhsm.yaml @@ -0,0 +1,130 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.24.0 + method: GET + uri: https://fakeattestation.azurewebsites.net/generate-test-token + response: + body: + string: '{"token":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImpfRUZtUTVVQm9lNHJMNUltNmw1cU1rQXN0QXluaE5JQUJ6dFZLQ0RMV1UiLCJqa3UiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0L2tleXMifQ.eyJpc3MiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0LyIsInNkay10ZXN0Ijp0cnVlLCJ4LW1zLWluaXR0aW1lIjp7fSwieC1tcy1ydW50aW1lIjp7ImtleXMiOlt7Imt0eSI6IlJTQSIsImtpZCI6ImZha2UtcmVsZWFzZS1rZXkiLCJ1c2UiOiJlbmMiLCJlIjoiQVFBQiIsIm4iOiJ6STBBdHhzRjV0a1BLMDB3QXV4RjNSTVhKeWhnXzZVeWpoR1ZfSnZyWjRPRFlOdjd4LWFsRFhfUU51SmxfLW9IYnRiUkZxMnNiaW1PTUNEblR1YVBFSE5ydnduY3RpbFU5X2VUMTBTU0tiQjdaWE1LNXRyaEZycVRSNXplLVNub1RteWZlM003VzVnVHc5YkF4Vmp1S1BpYUZidnR3TkxkVmRsUUoyVkJUS05QRkdWZFpIQjdPSlNOdHRIVS1Sa1N2QmYtNTljWk4xQ2IyVUtvZVJVTy15M1M5SGF6cFNWaGcya0R2NG1CaDZRYmlkUjM5aTdESTVXQTJObGpMRWgyaTdPQUk1Q3gwQjJOM0lXS0tyWW5ZQWxjY1pxT2xZX19vWU5mdlFxYWp6aTQ1cVZVUXRtb2ViQzdLeVlyZXpXVW5WeFFZbnY3NnZPYUZFbW1TS1RpY3cifV19LCJtYWEtZWhkIjoic2RrLXRlc3QiLCJpYXQiOjE2Mjc5MzkyMDUsImV4cCI6MTk0MzUxNTIwNX0.f2-sJun8WCxsOms7aiN8ImDBvJG5ULDvCHrw1qf5V7YCfGHyFsMmWZnVYJag50imx-SBd6G78sXQUqd9iwaGr1ZPT5OoC_Lm1zzK4AnNCl38O6EHPanCM_PUSGlaKVR7j4mS4HuvHfE2rwcLL-txLBfVQCMR58vQkh9Xg2ElblIj78KN280BLvjWhuURbKXKDxOF611S7F7dMupVh8Vhj0XE0NeLq_xYQjaKjoGorN5wnhLRvwgNjwxxQb0BbvJNUa4_1qtc3d5GVVa9ve9W0A1OS2GCdTEJaqF2s8-cUKLlQ04ro-89sDpJ90bZeLlP7EImysWohh-3PNSWie_KbQ"}' + headers: + content-length: + - '1305' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 02 Aug 2021 21:20:04 GMT + etag: + - W/"519-H+crlljB9Yap257Q4zflV5CKgB0" + set-cookie: + - ARRAffinity=31a267ed7b71ec86982412cc9dc4ad2f31ca2b8f51b692363aa765c405b03b84;Path=/;HttpOnly;Secure;Domain=skrattestation.azurewebsites.net + - ARRAffinitySameSite=31a267ed7b71ec86982412cc9dc4ad2f31ca2b8f51b692363aa765c405b03b84;Path=/;HttpOnly;SameSite=None;Secure;Domain=skrattestation.azurewebsites.net + x-powered-by: + - Express + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestrsa-key-namef36413cc/create?api-version=7.3-preview + response: + body: + string: '' + headers: + cache-control: no-cache + content-length: '0' + content-security-policy: default-src 'self' + content-type: application/json; charset=utf-8 + strict-transport-security: max-age=31536000; includeSubDomains + www-authenticate: Bearer authorization="https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://managedhsm.azure.net" + x-content-type-options: nosniff + x-frame-options: SAMEORIGIN + x-ms-server-latency: '1' + status: + code: 401 + message: Unauthorized + url: https://mcpatinotesthsm.managedhsm.azure.net/keys/livekvtestrsa-key-namef36413cc/create?api-version=7.3-preview +- request: + body: '{"kty": "RSA-HSM", "attributes": {"exportable": true}, "release_policy": + {"data": "eyJhbnlPZiI6IFt7ImFueU9mIjogW3siY2xhaW0iOiAic2RrLXRlc3QiLCAiY29uZGl0aW9uIjogImVxdWFscyIsICJ2YWx1ZSI6IHRydWV9XSwgImF1dGhvcml0eSI6ICJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0In1dLCAidmVyc2lvbiI6ICIxLjAifQ"}}' + headers: + Accept: + - application/json + Content-Length: + - '300' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestrsa-key-namef36413cc/create?api-version=7.3-preview + response: + body: + string: '{"attributes":{"created":1627939207,"enabled":true,"exportable":true,"recoverableDays":7,"recoveryLevel":"CustomizedRecoverable+Purgeable","updated":1627939207},"key":{"e":"AQAB","key_ops":["wrapKey","decrypt","encrypt","unwrapKey","sign","verify"],"kid":"https://managedhsmname.managedhsm.azure.net/keys/livekvtestrsa-key-namef36413cc/8dc88906b6ee41e106d828ef962a7b12","kty":"RSA-HSM","n":"hnIcDDE1KB_N0qfj7mWAk9ZodoAYFdAwnunBnjTbXpYA3vA7tEcgaJARzi4GAmNTJPgytEvds8wZ-8XDJqKxETG-LuM5xz8sg4MFAqSjDmjPOspuX4SuU7pZY3ah9yAdLsn7vW7DxCUK_OTHZhn39HMTIfrL5WL7rV3cYWdSk1bPNu1M1AahaOsbAUnDqLFKFjb7QmTLLI-whQDmDeoL8qdvLtjIgf56hJxHfiZ0azWIMhT3XeSXo3DSKdxu-eSTcsWmfpdR1JdxvlATiE5kX11zyUNASm9nRZEHSU522oOErq-LeDdU_kzTvUS9EvNzFATVYD_zBxIr8W4XbOOXWw"},"release_policy":{"contentType":"application/json; + charset=utf-8","data":"eyJhbnlPZiI6W3siYW55T2YiOlt7ImNsYWltIjoic2RrLXRlc3QiLCJlcXVhbHMiOnRydWV9XSwiYXV0aG9yaXR5IjoiaHR0cHM6Ly9za3JhdHRlc3RhdGlvbi5henVyZXdlYnNpdGVzLm5ldC8ifV0sInZlcnNpb24iOiIxLjAuMCJ9"}}' + headers: + cache-control: no-cache + content-length: '990' + content-security-policy: default-src 'self' + content-type: application/json; charset=utf-8 + strict-transport-security: max-age=31536000; includeSubDomains + x-content-type-options: nosniff + x-frame-options: SAMEORIGIN + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; + x-ms-keyvault-region: westus + x-ms-server-latency: '963' + status: + code: 200 + message: OK + url: https://mcpatinotesthsm.managedhsm.azure.net/keys/livekvtestrsa-key-namef36413cc/create?api-version=7.3-preview +- request: + body: '{"target": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImpfRUZtUTVVQm9lNHJMNUltNmw1cU1rQXN0QXluaE5JQUJ6dFZLQ0RMV1UiLCJqa3UiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0L2tleXMifQ.eyJpc3MiOiJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0LyIsInNkay10ZXN0Ijp0cnVlLCJ4LW1zLWluaXR0aW1lIjp7fSwieC1tcy1ydW50aW1lIjp7ImtleXMiOlt7Imt0eSI6IlJTQSIsImtpZCI6ImZha2UtcmVsZWFzZS1rZXkiLCJ1c2UiOiJlbmMiLCJlIjoiQVFBQiIsIm4iOiJ6STBBdHhzRjV0a1BLMDB3QXV4RjNSTVhKeWhnXzZVeWpoR1ZfSnZyWjRPRFlOdjd4LWFsRFhfUU51SmxfLW9IYnRiUkZxMnNiaW1PTUNEblR1YVBFSE5ydnduY3RpbFU5X2VUMTBTU0tiQjdaWE1LNXRyaEZycVRSNXplLVNub1RteWZlM003VzVnVHc5YkF4Vmp1S1BpYUZidnR3TkxkVmRsUUoyVkJUS05QRkdWZFpIQjdPSlNOdHRIVS1Sa1N2QmYtNTljWk4xQ2IyVUtvZVJVTy15M1M5SGF6cFNWaGcya0R2NG1CaDZRYmlkUjM5aTdESTVXQTJObGpMRWgyaTdPQUk1Q3gwQjJOM0lXS0tyWW5ZQWxjY1pxT2xZX19vWU5mdlFxYWp6aTQ1cVZVUXRtb2ViQzdLeVlyZXpXVW5WeFFZbnY3NnZPYUZFbW1TS1RpY3cifV19LCJtYWEtZWhkIjoic2RrLXRlc3QiLCJpYXQiOjE2Mjc5MzkyMDUsImV4cCI6MTk0MzUxNTIwNX0.f2-sJun8WCxsOms7aiN8ImDBvJG5ULDvCHrw1qf5V7YCfGHyFsMmWZnVYJag50imx-SBd6G78sXQUqd9iwaGr1ZPT5OoC_Lm1zzK4AnNCl38O6EHPanCM_PUSGlaKVR7j4mS4HuvHfE2rwcLL-txLBfVQCMR58vQkh9Xg2ElblIj78KN280BLvjWhuURbKXKDxOF611S7F7dMupVh8Vhj0XE0NeLq_xYQjaKjoGorN5wnhLRvwgNjwxxQb0BbvJNUa4_1qtc3d5GVVa9ve9W0A1OS2GCdTEJaqF2s8-cUKLlQ04ro-89sDpJ90bZeLlP7EImysWohh-3PNSWie_KbQ"}' + headers: + Accept: + - application/json + Content-Length: + - '1307' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestrsa-key-namef36413cc/release?api-version=7.3-preview + response: + body: + string: '{"value":"eyJhbGciOiJSUzI1NiIsImtpZCI6IlJWWkk4RmZPcjU0elIyM0IwSnV3Vno0TFhvaUtZUm1lTWN6UWdldUI2V1UiLCJ4NWMiOlsiTUlJSW1qQ0NCb0tnQXdJQkFnSVRNd0FYR0FhcGVQOTVkSjBnRVFBQUFCY1lCakFOQmdrcWhraUc5dzBCQVF3RkFEQlpNUXN3Q1FZRFZRUUdFd0pWVXpFZU1Cd0dBMVVFQ2hNVlRXbGpjbTl6YjJaMElFTnZjbkJ2Y21GMGFXOXVNU293S0FZRFZRUURFeUZOYVdOeWIzTnZablFnUVhwMWNtVWdWRXhUSUVsemMzVnBibWNnUTBFZ01EWXdIaGNOTWpFd09EQXlNakExTnpFM1doY05Nakl3TnpJNE1qQTFOekUzV2pCOU1Rc3dDUVlEVlFRR0V3SlZVekVMTUFrR0ExVUVDQk1DVjBFeEVEQU9CZ05WQkFjVEIxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakV2TUMwR0ExVUVBd3dtS2k1dFkzQmhkR2x1YjNSbGMzUm9jMjB1YldGdVlXZGxaR2h6YlM1aGVuVnlaUzV1WlhRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUM4aFl2anlpdjNwUFhxVUJkSDN5dEVPamZ4TVdwZDZWUllvbFlLRTdtUU5TdHg3K0dyLzYySVF6bXlLZEdqNmIwMkpOUmovZWpTa3dmR1Z5ejJvaHJjWlVFUmlXMDZsd1ZabWxJMDZ6SVhzYVNyTVEyMlllNkVob1NmcGtaMEtKQXdoVkx2V0xLMjNjVXBna09Ud0E0UzJiaURCWDFsU1VsQ2t4d1dpc2tRSnQ5WDQyaDZMYyswTTJUN201bDViVFF6RDdIR2Q0NzE4YktCMTVQc0ZUTWtaaEFSeWp1MGtpMjMyYzErdDdMQ0tITGtLT2M1dWFvQTdIWjdTSHQvNm9QYW9hdXRoeEZLRWZKcDVDamZjSEdvK2o3QzdDTmgwZnZkd1NUNE83eHhmOTVhR3BWejMyQnlsL1pjS3o5dkNIVDVHOFR0Nnc5Ym40bHZweEpFNjExekFnTUJBQUdqZ2dRMU1JSUVNVENDQVg4R0Npc0dBUVFCMW5rQ0JBSUVnZ0Z2QklJQmF3RnBBSGNBN2t1OXQzWE9ZTHJoUW1rZnErR2VacU1QZmwrd2N0aURBTVI3aVhxby9jc0FBQUY3Q0xFOVNRQUFCQU1BU0RCR0FpRUFwKzhyOUhCWlhLZHE0REJyekNkdGpuT0FnVVNnSytzbUJEc2lDYTFZMi80Q0lRQ09NK2VHVnBXK2ZmTUJlNEdnOE9HWndDYm5ZTlg0QUVmUTZwWGxLQXJJckFCMkFFSEl5ckhmSWtaS0VNYWhPZ2xDaDE1T01Zc2JBK3ZyUzhkbzhKQmlsZ2IyQUFBQmV3aXhQRGdBQUFRREFFY3dSUUloQUo1WGpOVFFrRlFWZ3lxNUJaWWs2OTB5ZXo2aGNlN1kwb0ZoQkxzR0RJMmlBaUFjUmNsL2gvUTZwanpNTXNBT2ZuVW41bmRXSDU2TFB5WTczSzJxYW5vRFhnQjJBRkdqc1BYOUFYbWNWbTI0TjNpUERLUjZ6QnNueS9lZWlFS2FEZjdVaXdYbEFBQUJld2l4UFZRQUFBUURBRWN3UlFJaEFQS1FMUVJNbXdSNWxrS1V3blR4SVFTSFNxTUlUbWRxci9Uem5IZldTSUZxQWlBdUZ5V0pQdUhIVXBSYzI2VnF3bUd2bkhmM3ZYY2t1QVVrVElnV2FOUnllakFuQmdrckJnRUVBWUkzRlFvRUdqQVlNQW9HQ0NzR0FRVUZCd01DTUFvR0NDc0dBUVVGQndNQk1Ed0dDU3NHQVFRQmdqY1ZCd1F2TUMwR0pTc0dBUVFCZ2pjVkNJZTkxeHVCNSt0R2dvR2RMbzdRRElmdzJoMWRnb1RsYVlMenB6NENBV1FDQVNNd2dhNEdDQ3NHQVFVRkJ3RUJCSUdoTUlHZU1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1FRjZkWEpsSlRJd1ZFeFRKVEl3U1hOemRXbHVaeVV5TUVOQkpUSXdNRFlsTWpBdEpUSXdlSE5wWjI0dVkzSjBNQzBHQ0NzR0FRVUZCekFCaGlGb2RIUndPaTh2YjI1bGIyTnpjQzV0YVdOeWIzTnZablF1WTI5dEwyOWpjM0F3SFFZRFZSME9CQllFRkJrTnRlck01ZnM1UUdyNWJGb1hIOEdTQ2lNTU1BNEdBMVVkRHdFQi93UUVBd0lFc0RCWEJnTlZIUkVFVURCT2dpWXFMbTFqY0dGMGFXNXZkR1Z6ZEdoemJTNXRZVzVoWjJWa2FITnRMbUY2ZFhKbExtNWxkSUlrYldOd1lYUnBibTkwWlhOMGFITnRMbTFoYm1GblpXUm9jMjB1WVhwMWNtVXVibVYwTUdRR0ExVWRId1JkTUZzd1dhQlhvRldHVTJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1FRjZkWEpsSlRJd1ZFeFRKVEl3U1hOemRXbHVaeVV5TUVOQkpUSXdNRFl1WTNKc01HWUdBMVVkSUFSZk1GMHdVUVlNS3dZQkJBR0NOMHlEZlFFQk1FRXdQd1lJS3dZQkJRVUhBZ0VXTTJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZSRzlqY3k5U1pYQnZjMmwwYjNKNUxtaDBiVEFJQmdabmdRd0JBZ0l3SHdZRFZSMGpCQmd3Rm9BVTFjRm5Pc0tqbmZSM1VsdFpFamdwNWxWb3U2VXdIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0lHQ0NzR0FRVUZCd01CTUEwR0NTcUdTSWIzRFFFQkRBVUFBNElDQVFCNjRlRDJTTFdqZ2ZxQjdqNUdndndqbWQvcVQvdE1TaVR0eW1PN0RDMWVUcE5mNUZ3b0QwdVFpTVdjdGRqTlo5YUM3RTNSa1kvOU1qaXNlUE9CZDdCK0FDem96ays5NlVvbW5pUnVBR3lJRm1zblQ4SHpsb3RkVlZRUFBScUpCZEVvd2FmYUp1bUhMZHhQMmk4WDdrd1ZxcXcxV3A5STdYK25VL1J2ZVRMdWljMTJsUDdLYU04cFBZVlZ1WHlvVyswOWRWS1ZUQlJmQ2V5VXVybHZnM3orc3YxdXBRY0w3MXVqZVR5RW9pbi9ET0hSRXJnTzBVTzE5UXoyQ1EyZDc5SXVEZnZjNWhKTFFRSmVrYUo5ZE02OGJJdlRCdmNYRVpDVWJUUC9IV2wxR3IxN0tTWndvSXVNTUhvbFlSRldpNy9oYmh6eTRCczhLL3lPUVBwdTlqZlFKMkxQWElEaU8rOFFsNnRJQTBneHdDc2R0R2pQSWtIMXBsaGQ3cVczQTlBOGtXUU9mZTJZeDBSb3JxbDVMVVNweXByR0VqdnRqQ21ZZ3hkQStPSHRIbmd0Njg0aHk5cjFzOW9DWEM5WlJGZGJ3YmNtbVh5MUo0Rm1MNXAybkF4R3lqVk5zMWxqUUF0a3VneGxCd1ZNVU0xNUdtMUl0dzJ0U3A3Rm1XMTlmcmt5SGZkRHgrcjVaOUt2eGxTK3ozOTB0UFBid2JDWXcxU3UyZFNLaWJMTnMzTnNZSE5ZSkFaZHNxL1ZEUThjQ3orRVZvWjQwR1l0eDVkRDFuaTZnQ1dyOGV2cSt4cTkzbnVJQXBOVUdhSEMxNlZsdFVyZGhsUTRBajZCSktodlVTL2NKdllHV0pOLzVXdWV5bkJqeUVMSmVQRzM1SEIwWmtmZ1RyUVlNWnByVFE9PSIsIk1JSUY4ekNDQk51Z0F3SUJBZ0lRQXVlUmNmdUFJZWsvNHRtRGcweFF3REFOQmdrcWhraUc5dzBCQVF3RkFEQmhNUXN3Q1FZRFZRUUdFd0pWVXpFVk1CTUdBMVVFQ2hNTVJHbG5hVU5sY25RZ1NXNWpNUmt3RndZRFZRUUxFeEIzZDNjdVpHbG5hV05sY25RdVkyOXRNU0F3SGdZRFZRUURFeGRFYVdkcFEyVnlkQ0JIYkc5aVlXd2dVbTl2ZENCSE1qQWVGdzB5TURBM01qa3hNak13TURCYUZ3MHlOREEyTWpjeU16VTVOVGxhTUZreEN6QUpCZ05WQkFZVEFsVlRNUjR3SEFZRFZRUUtFeFZOYVdOeWIzTnZablFnUTI5eWNHOXlZWFJwYjI0eEtqQW9CZ05WQkFNVElVMXBZM0p2YzI5bWRDQkJlblZ5WlNCVVRGTWdTWE56ZFdsdVp5QkRRU0F3TmpDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTFZHQVJsNTZieDNLQlVTR3VQYzRINXVvTkZrRkg0ZTdwdlRDeFJpNGovK3orWGJ3akV6KzVDaXBET3FqeDkvaldqc2tMNWRrN1BhUWt6SXRpZHNBQW5EQ1cxbGVaQk9JaTY4TGZmMWJqVGVaZ01ZaXdkUmQzWTM5Yi9sY0dwaXVQMmQyM1c5NVlIa01NVDhJbFdvc1lJWDBmNGtZYjYycnBoeWZuQWpZYi80T2Q5OVRobmhsQXhHdGZ2U2JYY0JWSUtDWWZaZ3FSdlYrNWxSZVVuZDFhTmpSWVZ6UE9vaWZnU3gyZlJ5eTErcE8xVXphTU1ObklPRTcxYlZZVzBBMWhyMTl3N2tPYjBLa0pYb0FMVEREajF1a1VFRHFRdUJmQnhSZUw1bVhpdTFPN1dHMHZsdGcwVlovU1p6Y3RCc2RCbHgxQmttV1lCVzI2MUtaZ0JpdnJxbDVFTFRLS2Q4cWd0SGNMUUE1Zmw2SkIwUWdzNVhEYVdlaE44NkdwczVKVzhBcmpHdGpjV0FJUCtYOENRYVdmYUNudVJtNkJrLzAzUFFXaGdkaTg0cXdBMHNzUmZGSndIVVBUTlNuRThFaUdWazJmcnQwdThQRzFwd1NRc0Z1TkpmY1lJSEV2MXZPelA3dUVPdUR5ZHNtQ2pobHh1b0sybjUvMmFWUjNCTVR1K3A0K2dsOGFsWG9CeWN5TG1qM0ovUFVncUQ4U0w1ZlRDVWVnR3NkaWEvU2E2ME4yb1Y3dlExN3dqTU4rTFhhMnJqai9iNFpsWmdYVm9qRG1BakR3SVJkRFV1alF1MFJWc0pxRkxNelNJSHBwMkNacDdtSW9McnlTYXkyWVlCdTdTaU53TDk1WDZIZTJrUzhlZWZCQkhqendXLzlGeEdxcnk1N2k3MWMyY0RBZ01CQUFHamdnR3RNSUlCcVRBZEJnTlZIUTRFRmdRVTFjRm5Pc0tqbmZSM1VsdFpFamdwNWxWb3U2VXdId1lEVlIwakJCZ3dGb0FVVGlKVUlCaVY1dU51NWcvNitya1M3UVlYanprd0RnWURWUjBQQVFIL0JBUURBZ0dHTUIwR0ExVWRKUVFXTUJRR0NDc0dBUVVGQndNQkJnZ3JCZ0VGQlFjREFqQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNSFlHQ0NzR0FRVUZCd0VCQkdvd2FEQWtCZ2dyQmdFRkJRY3dBWVlZYUhSMGNEb3ZMMjlqYzNBdVpHbG5hV05sY25RdVkyOXRNRUFHQ0NzR0FRVUZCekFDaGpSb2RIUndPaTh2WTJGalpYSjBjeTVrYVdkcFkyVnlkQzVqYjIwdlJHbG5hVU5sY25SSGJHOWlZV3hTYjI5MFJ6SXVZM0owTUhzR0ExVWRId1IwTUhJd042QTFvRE9HTVdoMGRIQTZMeTlqY213ekxtUnBaMmxqWlhKMExtTnZiUzlFYVdkcFEyVnlkRWRzYjJKaGJGSnZiM1JITWk1amNtd3dONkExb0RPR01XaDBkSEE2THk5amNtdzBMbVJwWjJsalpYSjBMbU52YlM5RWFXZHBRMlZ5ZEVkc2IySmhiRkp2YjNSSE1pNWpjbXd3SFFZRFZSMGdCQll3RkRBSUJnWm5nUXdCQWdFd0NBWUdaNEVNQVFJQ01CQUdDU3NHQVFRQmdqY1ZBUVFEQWdFQU1BMEdDU3FHU0liM0RRRUJEQVVBQTRJQkFRQjJvV2M5M2ZCOGVzY2kvOGVzaXhqKytOMjJtZWlHRGpnRityQTJMVUs1SU9RT2djVVNUR0tTcUY5bFlmQXhQanJxUGpEQ1VQSENVUnYrMjZhZDVQL0JZdFh0Ym10eEpXdStjUzVCaE1EUFBlRzNvUFp3WFJIQkpGQWtZNE80QUY3UklBQVVXNkV6RGZsVW9ESEt2ODN6T2lQZllHY3BIYzlza3hBSW5DZWRrN1FTZ1h2TUFSampPcWRha29yMjFEVG1OSVVvdHhvOGtIdjVod1JsR2hCSndwczZmRVZpMUJ0MHRycE0vM3dZeGxyNDczV1NQVUZaUGdQMWo1MTlrTHBXT0o4ejA5d3hheStCcjI5aXJQY0JZdjBHTVhsSHFUaHk4eTRtL0h5VFFlSTJJTXZNclFud3FQcFkrckxJWHl2aUkydkxvSSs0eEtFNFJuMzhaWjhtIiwiTUlJRGpqQ0NBbmFnQXdJQkFnSVFBenJ4NXFjUnFhQzdLR1N4SFFuNjVUQU5CZ2txaGtpRzl3MEJBUXNGQURCaE1Rc3dDUVlEVlFRR0V3SlZVekVWTUJNR0ExVUVDaE1NUkdsbmFVTmxjblFnU1c1ak1Sa3dGd1lEVlFRTEV4QjNkM2N1WkdsbmFXTmxjblF1WTI5dE1TQXdIZ1lEVlFRREV4ZEVhV2RwUTJWeWRDQkhiRzlpWVd3Z1VtOXZkQ0JITWpBZUZ3MHhNekE0TURFeE1qQXdNREJhRncwek9EQXhNVFV4TWpBd01EQmFNR0V4Q3pBSkJnTlZCQVlUQWxWVE1SVXdFd1lEVlFRS0V3eEVhV2RwUTJWeWRDQkpibU14R1RBWEJnTlZCQXNURUhkM2R5NWthV2RwWTJWeWRDNWpiMjB4SURBZUJnTlZCQU1URjBScFoybERaWEowSUVkc2IySmhiQ0JTYjI5MElFY3lNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXV6Zk5OTng3YThteWFKQ3RTblgvUnJvaENnaU45UmxVeWZ1STIvT3U4anFKa1R4NjVxc0dHbXZQckMzb1hna2tSTHBpbW43V282aCs0RlIxSUFXc1VMZWNZeHBzTU56YUh4bXgxeDdlL2RmZ3k1U0RONjdzSDBOTzNYc3MwcjB1cFMva3FiaXRPdFNacExZbDZadHJBR0NTWVA5UElVa1k5MmVRcTJFR25JL3l1dW0wNlpJeWE3WHpWK2hkRzgyTUhhdVZCSlZKOHpVdGx1TkpiZDEzNC90SlM3U3NWUWVwajVXenRDTzdURzFGOFBhcHNwVXd0UDFNVll3blNsY1VmSUtkelhPUzB4WktCZ3lNVU5HUEhnbStGNkhtSWNyOWcrVVF2SU9sQ3NSbktQWnpGQlE5Um5iRGh4U0pJVFJOcnc5RkRLWkpvYnE3bk1XeE00TXBoUUlEQVFBQm8wSXdRREFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQTRHQTFVZER3RUIvd1FFQXdJQmhqQWRCZ05WSFE0RUZnUVVUaUpVSUJpVjV1TnU1Zy82K3JrUzdRWVhqemt3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUdCbktKUnZEa2hqNnpIZDZtY1kxWWw5UE1XTFNuL3B2dHNyRjkrd1gzTjNLaklUT1lGblFvUWo4a1ZuTmV5SXYvaVBzR0VNTktTdUlFeUV4dHY0TmVGMjJkK21RcnZIUkFpR2Z6WjBKRnJhYkEwVVdUVzk4a25kdGgvSnN3MUhLajJaTDd0Y3U3WFVJT0daWDFOR0ZkdG9tL0R6TU5VK01lS05oSjdqaXRyYWxqNDFFNlZmOFBsd1VIQkhRUkZYR1U3QWo2NEd4SlVURnk4YkpaOTE4ckdPbWFGdkU3RkJjZjZJS3NoUEVDQlYxL01VUmVYZ1JQVHFoNVV5a3c3K1UwYjZMSjMvaXlLNVM5a0pSYVRlcExpYVdOMGJmVktmamxsRGlJR2tuaWJWYjYzZERjWTNmZTBEa2h2bGQxOTI3anlOeEYxV1c2TFpabTZ6TlRmbE1yWT0iXSwieDV0I1MyNTYiOiJSVlpJOEZmT3I1NHpSMjNCMEp1d1Z6NExYb2lLWVJtZU1jelFnZXVCNldVIn0.eyJyZXF1ZXN0Ijp7ImFwaS12ZXJzaW9uIjoiNy4zLXByZXZpZXciLCJlbmMiOiJDS01fUlNBX0FFU19LRVlfV1JBUCIsImtpZCI6Imh0dHBzOi8vbWNwYXRpbm90ZXN0aHNtLm1hbmFnZWRoc20uYXp1cmUubmV0L2tleXMvbGl2ZWt2dGVzdHJzYS1rZXktbmFtZWYzNjQxM2NjIn0sInJlc3BvbnNlIjp7ImtleSI6eyJhdHRyaWJ1dGVzIjp7ImNyZWF0ZWQiOjE2Mjc5MzkyMDcsImVuYWJsZWQiOnRydWUsImV4cG9ydGFibGUiOnRydWUsInJlY292ZXJhYmxlRGF5cyI6NywicmVjb3ZlcnlMZXZlbCI6IkN1c3RvbWl6ZWRSZWNvdmVyYWJsZStQdXJnZWFibGUiLCJ1cGRhdGVkIjoxNjI3OTM5MjA3fSwia2V5Ijp7ImUiOiJBUUFCIiwia2V5X2hzbSI6ImV5SmphWEJvWlhKMFpYaDBJam9pY1dReFNrMU9jVGhuVkVWM2FsWnZiVTlSY25oMFR6Vm5RMUUxUjBSbWIyRkRaVmxRTjNOZlVtVmpjamh4YkZCdFUxQkpPWFJ1TW5Kc05GZDFYME5TTVV4RU1HMUxXWEJhUmkxZlJWbG5hVjlCZEUxbFpVeG5WRXBSVXpKWVlWZFBRblJFWjNJemFIVXhlR010Wld4dVRXUlNhRGxGYkZocFpHeDJSRzVrVEdWQ1gwNDNPSGhMYlRRek1GYzVVbkkxTUVkWVVEVkhabTl4U0U5aE9GOHliVkZNTVZsYVVYbHZUR295TW1ZM1RrOTZlRVZ5UkhOa01qbDRkV3RrY0dKaU9GWTRlRGxmYmtzd1pVRkhMVmt6WjJKRVNXdENORXd3WVZWZldsZFdhRVpTY2pBeFRIWkJNVEJxUzNWVU9WZHFkWGwwUm1seFRHVmZkVWxXZFdKa056QndXWGw0VmxGcU1sazNSMVI2ZHpack5GWlFlV1IzVEhCM05HOXpUWEpwVWpSWU9HODJSR1ZFUVdkeWFYbG5RWEZUVlVJeE1VaHhXbFIyY0ZOWFoxazRORjltVlZSVE5VbEVjVXhXVldwaE5qSm5Wa2cwVEZWMk1rMUxNbXAwUTJobU5HUlFTMUZ4TUZOa1NHbDNkamxXYnpCNE0wVlJUMU5zZW0xWmVEWjVSa0p5UmpWSFVqVjBVbkIwTnpRMVVXeElOVjk0WVhkRlJtbHdjM2hqYlVaeFozWjFWR2RwU1dVeGVqQkRTMDF3U205YU1GWTVRMWxTUVhSTU5FWkVkbWd5VFc1RVJ6ZEZiVTF5YkhSeFFsWjBaRkZTTFZkT1JHSTJlUzFsVkU5T2RUTnJhV3hmV0Rac1EwdHhabE4yWlhBelF6VnlOak5RYkdkV1VYUlJaRzlhU2pVdFFreFdhbGxwVlV0WVUyWmpkMDR4VlZVM00wZDFPWFZIVFZSbk5VOW5ZUzFvYm5SRWIzTnRWakUxWjJ0d2VuRlFaMUozVnpGSVpESkNTekpXT1U1YU1uWnNhR1ZxZURJMVQzcFViMUpYVGkxTlgxQmFTRXhqUTNCTFRIWlNRbVJYVFRscFVtZDZWSHBMVGpWclIyMTBSMlZoTVZGTWEweDJSMXBvWlVKSldtSjRSRFZ0VDJoNGQxSlhhMmg2YlZCbGRWcDVWMWxaYzI1UVpqZGxWMGx4YjFwUVVHUnNPSFJWYjFjMGEwRlFiRGhyUm1oSlVFWnRSRnBvZEY5ck0ycHJUME4wU0ZGRFkzWkZRWEU1T1U5U1lVeEJXVlY2UnpCMVh6TjFNSE5PZDFRMlFuVkNMVkpTV2tOTFNESmZOR1p6ZWs5cWVHNXJjRXBPWW5oUVZsUm5WMGxwWm1aVWIzcFVVR3d5UWtOQldXMUphVVoxVmkxZkxUZG1hWHBuYVZwUllWOVFWRFEwU1hwdFRVMXdkRWN6TkVZd1JYUnFhSFZ0UTNaUU0xbHhNek5ZZFc5NWFucFdiWEI2Y0drMFpFOUtNRU10UmpWVGEyNDVMVGhpUjJWUVVWQm1UVGhFYzB4a0xVeG9XV2cwUTBWM1dIZzVlR0ZCT0RJNU0yWjRjMWt4YmtkWmRVNVNVWFl6VFVwelptOVhPVE4zYzA0d1JucHVkWFZmYW5KNmVGbEZSa05vVkMxek5XWmtNM05qWTFSRWJVSmpUbk0yUjJKM1ExSlRlbWxrWlhwUWNETmlVbEZCWkVWRFdFWkJRMWszYTBweFJsUjJVSHAxVDBWRWIydFdTbFZ5ZUhWNFN6RkpaRVZhUVhWeFV5MXZWVW81T0ROMU1qTkdablV3WkVnd2JYSTJhME5zYkZsa1RtVXhhWFJZWm1JM04wVnZhV0pHTVRnNVZXaEZXSG8wYUdGeGVXSjBXakprTUU1eVVVaHhTM05OUVdKMWFFeFVlRUpzY2sxTGRVeG5Ua0pFWWtKM1JWVmlTR05VWTE5Q1IzUjVaVEZJZFUxc1RuWnZXbU5zTWtoWlpWQlJWMGhsWkZoME5XOXFjbk5wY1hkRmEwSnNjMVpYVW1kRFIyUlVZM051YVdrM1pXWktUaTFEZUZndFRWVlJXbmhvYlVwc1dFaHBPRXhSYWtSdlh6RkVhak0yY2sxaWR5MXNSV1kyYkU1WlprSkxiRUkwWDFGM1dVcHZZVzVPY0dGUWNFSmhjVVZUY0VKblRUbHhVMFZpYjFOVFNIbHhXa0ZvVGtGTVRtbGxaVkpYY0daMVkybGphekJFVDFjME1HdElZbkpLWWtVMVpXZHdRV0ZDVm5aTFVrUnhaMHhvTjJzME1HeElhVzFSTW1SR1JHNU5RbXh3ZUVWdmVHcGlaVXBsWW1aWFFWcDZkR3RmVURab1NVdEhkVmQzY0VWUE1IVTBWR2RTTVZacFkzUjNlR1ZaYVVGV2FFZGhiSEpCT0RkTWMweE1PRzlvU0ZWb1UxZzFNMk5MYkVOeU1rZFFSakZsVFdOT2NucFlZM3BPYWtOTmFYaFZUeTF4TXpGVmNrVnVWM2gyWTFWNmNrUmFhVVZ2UWtscFFWRlVUMHBIZURoUVlqa3pVVEpWZDFWRk0xQktUMDl3TWxWRWFWOUphalpwVlVzM1dtZFFZMlJXWTBKcFJ6Um5UbEp3VjFCcFRIZHZOMWxHVjA0dFZHMVNSRVpyVWpsWVRESnVNVW95YlRGSmVrTkxTQzF5UTJVMWJYTm1SbXcxYmpndGFtZFpka1pOVFdsV2RsaE5XVUkzWWswM1Nra3RiekUwUVZSYVFVRnBWblF0VEZZMlpWOHdYMVJyVTBWbk1GcERjMUZZU2xGTVpVNVlibXR5U0MxVk9EQkRaMjVNY2pobWNVWmtTRVJvVEhOaE1sRnZNblZ0UVRadFNGVjZaMlJTZEZGdFFUWmpjSEppVFhweWFYVjFkVTl1TkZSSmVIRXhZbVZ0Ynpoa1ZtSjFaVkZhZWtkQk0xbEhSbWg2VURCbWRVb3pOVU00VlhSNVZXNWhRV2R1VGsxb01VMURielZrY0dWMk5VZzJOSEZhWlU5WFlWSnpYMjlhY3pSdVJYZHhNa0pXWVdkeldVZzBjMUp2ZUZGTFdUZG5UV1ZUWlc1QmJWOVpaMGRzVUVSbGJqZG1SMDh6VFZaQmEySldXamhQUldrdE5WTkxjRTVtVXpZMlFYbHlRMnRRTnkxS2NTMTRTSHBtWWtkNExXcEpSekpJYzNaT2RURnZXRzFmVEhaNFdETjBSVXRuVjI4NFdtcFFiM1JETFdSRFNIUTJlbkZNYm5ac1VqUldZbTVET0dsTlNYUkpkbUZIY1ZGdlVGOVdla2RmU0ZwME1uTnRlblZvTm5GSWEzRkhUVTVZT0d4bUxUTnBTVXR3YXpONGNWUm1WWGg2WmpGTFVXMVplR013UlU5bk1HODJaRFZLV0ZKRFZsaFNkbk15WVdNNFdtWTVhM1ZQVTJGVGNIWlBNVzVCVjJ0NGFtRmhWbFV0V2t0VWRpMWZTREl5ZEZWdlYwZ3RjR1YyUnpCeVdDSXNJbWhsWVdSbGNpSTZleUpoYkdjaU9pSmthWElpTENKbGJtTWlPaUpEUzAxZlVsTkJYMEZGVTE5TFJWbGZWMUpCVUNJc0ltdHBaQ0k2SW1aaGEyVXRjbVZzWldGelpTMXJaWGtpZlN3aWMyTm9aVzFoWDNabGNuTnBiMjRpT2lJeExqQWlmUSIsImtleV9vcHMiOlsid3JhcEtleSIsImRlY3J5cHQiLCJlbmNyeXB0IiwidW53cmFwS2V5Iiwic2lnbiIsInZlcmlmeSJdLCJraWQiOiJodHRwczovL21jcGF0aW5vdGVzdGhzbS5tYW5hZ2VkaHNtLmF6dXJlLm5ldC9rZXlzL2xpdmVrdnRlc3Ryc2Eta2V5LW5hbWVmMzY0MTNjYy84ZGM4ODkwNmI2ZWU0MWUxMDZkODI4ZWY5NjJhN2IxMiIsImt0eSI6IlJTQSIsIm4iOiJobkljRERFMUtCX04wcWZqN21XQWs5Wm9kb0FZRmRBd251bkJualRiWHBZQTN2QTd0RWNnYUpBUnppNEdBbU5USlBneXRFdmRzOHdaLThYREpxS3hFVEctTHVNNXh6OHNnNE1GQXFTakRtalBPc3B1WDRTdVU3cFpZM2FoOXlBZExzbjd2VzdEeENVS19PVEhaaG4zOUhNVElmckw1V0w3clYzY1lXZFNrMWJQTnUxTTFBYWhhT3NiQVVuRHFMRktGamI3UW1UTExJLXdoUURtRGVvTDhxZHZMdGpJZ2Y1NmhKeEhmaVowYXpXSU1oVDNYZVNYbzNEU0tkeHUtZVNUY3NXbWZwZFIxSmR4dmxBVGlFNWtYMTF6eVVOQVNtOW5SWkVIU1U1MjJvT0VycS1MZURkVV9relR2VVM5RXZOekZBVFZZRF96QnhJcjhXNFhiT09YV3cifSwicmVsZWFzZV9wb2xpY3kiOnsiY29udGVudFR5cGUiOiJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04IiwiZGF0YSI6ImV5SmhibmxQWmlJNlczc2lZVzU1VDJZaU9sdDdJbU5zWVdsdElqb2ljMlJyTFhSbGMzUWlMQ0psY1hWaGJITWlPblJ5ZFdWOVhTd2lZWFYwYUc5eWFYUjVJam9pYUhSMGNITTZMeTl6YTNKaGRIUmxjM1JoZEdsdmJpNWhlblZ5WlhkbFluTnBkR1Z6TG01bGRDOGlmVjBzSW5abGNuTnBiMjRpT2lJeExqQXVNQ0o5In19fX0.CRvjDl4riYgAsSVxhBl76rdufjy7gG5-0lUWmPRESK0K7tuackBSwIQC0goIkmhmoVsYyAg7Yr-ys_Razc7cFJccOENWg3NE4kcrcHmcqtoACvlOq-iOBvXtTLxA-ph4yyIeSIccwhheDyqihe2nAThodMbzZE9O18N6_sOvMWVAcyED8hmsDXCIfGypB5lJom-VgElby5Jg4AhC5nRlcGxottCoRd7v_hu_eTcTzTFxpfirHvy0IdzmI6MF9DHvmjNrpRQcaBuzqk6Wt2yTUj26YRQ6hZ2qKRr_-6RrIV2FHUeX8a42G3CHzXQsC6p5Og54s0f4CFRnhVjviBRr-g"}' + headers: + cache-control: no-cache + content-length: '14118' + content-security-policy: default-src 'self' + content-type: application/json; charset=utf-8 + strict-transport-security: max-age=31536000; includeSubDomains + x-content-type-options: nosniff + x-frame-options: SAMEORIGIN + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; + x-ms-keyvault-region: westus + x-ms-server-latency: '707' + status: + code: 200 + message: OK + url: https://mcpatinotesthsm.managedhsm.azure.net/keys/livekvtestrsa-key-namef36413cc//release?api-version=7.3-preview +version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_release_policy_not_exportable_error_7_3_preview_mhsm.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_release_policy_not_exportable_error_7_3_preview_mhsm.yaml new file mode 100644 index 000000000000..869af89a1dbe --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_release_policy_not_exportable_error_7_3_preview_mhsm.yaml @@ -0,0 +1,63 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-name590d1de1/create?api-version=7.3-preview + response: + body: + string: '' + headers: + cache-control: no-cache + content-length: '0' + content-security-policy: default-src 'self' + content-type: application/json; charset=utf-8 + strict-transport-security: max-age=31536000; includeSubDomains + www-authenticate: Bearer authorization="https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://managedhsm.azure.net" + x-content-type-options: nosniff + x-frame-options: SAMEORIGIN + x-ms-server-latency: '1' + status: + code: 401 + message: Unauthorized + url: https://mcpatinotesthsm.managedhsm.azure.net/keys/livekvtestkey-name590d1de1/create?api-version=7.3-preview +- request: + body: '{"kty": "oct", "release_policy": {"data": "eyJhbnlPZiI6IFt7ImFueU9mIjogW3siY2xhaW0iOiAic2RrLXRlc3QiLCAiY29uZGl0aW9uIjogImVxdWFscyIsICJ2YWx1ZSI6IHRydWV9XSwgImF1dGhvcml0eSI6ICJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0In1dLCAidmVyc2lvbiI6ICIxLjAifQ"}}' + headers: + Accept: + - application/json + Content-Length: + - '260' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-name590d1de1/create?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"BadParameter","message":"Non-exportable keys must + not have release policy (Activity ID: 1533a6ba-f3e8-11eb-a1e3-000d3a3145c5)"}}' + headers: + cache-control: no-cache + content-length: '146' + content-security-policy: default-src 'self' + content-type: application/json; charset=utf-8 + strict-transport-security: max-age=31536000; includeSubDomains + x-content-type-options: nosniff + x-frame-options: SAMEORIGIN + x-ms-server-latency: '17' + status: + code: 400 + message: Bad Request + url: https://mcpatinotesthsm.managedhsm.azure.net/keys/livekvtestkey-name590d1de1/create?api-version=7.3-preview +version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_update_release_policy_7_3_preview_mhsm.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_update_release_policy_7_3_preview_mhsm.yaml new file mode 100644 index 000000000000..10289f8758ec --- /dev/null +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_update_release_policy_7_3_preview_mhsm.yaml @@ -0,0 +1,100 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-named4c517f5/create?api-version=7.3-preview + response: + body: + string: '' + headers: + cache-control: no-cache + content-length: '0' + content-security-policy: default-src 'self' + content-type: application/json; charset=utf-8 + strict-transport-security: max-age=31536000; includeSubDomains + www-authenticate: Bearer authorization="https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://managedhsm.azure.net" + x-content-type-options: nosniff + x-frame-options: SAMEORIGIN + x-ms-server-latency: '0' + status: + code: 401 + message: Unauthorized + url: https://mcpatinotesthsm.managedhsm.azure.net/keys/livekvtestkey-named4c517f5/create?api-version=7.3-preview +- request: + body: '{"kty": "RSA-HSM", "attributes": {"exportable": true}, "release_policy": + {"data": "eyJhbnlPZiI6IFt7ImFueU9mIjogW3siY2xhaW0iOiAic2RrLXRlc3QiLCAiZXF1YWxzIjogdHJ1ZX1dLCAiYXV0aG9yaXR5IjogImh0dHBzOi8vc2tyYXR0ZXN0YXRpb24uYXp1cmV3ZWJzaXRlcy5uZXQvIn1dLCAidmVyc2lvbiI6ICIxLjAuMCJ9"}}' + headers: + Accept: + - application/json + Content-Length: + - '274' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-named4c517f5/create?api-version=7.3-preview + response: + body: + string: '{"attributes":{"created":1628108364,"enabled":true,"exportable":true,"recoverableDays":7,"recoveryLevel":"CustomizedRecoverable+Purgeable","updated":1628108364},"key":{"e":"AQAB","key_ops":["wrapKey","decrypt","encrypt","unwrapKey","sign","verify"],"kid":"https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-named4c517f5/6e738db2a7c60f432fb8befd069f2ab2","kty":"RSA-HSM","n":"oDdi5cXpMWJpMv9R8xWyFfezI8_Pnt8mWXnhsjNROc8YaLZzdAUwYfCa4kS8QjUWYxxOgYXSsX8bISrHRAJiZqnopfUruSCrMqBVE8PotgOdVn_D-EIOIPHB--nwf1bRACC3wANiKuMsXI2dCRnOZVgWP-CoaMeMxuOplLp08g8SlYDzdXAqRjj2na8zA152DHz5tZVIqI6kAQVjGxYeb6DnFSqRsLrcR-UJXtdKT6G4wGupDgchhwK9D3zhEE78qtarsDNr0x9fxbTKtwtFVFAJIyLbsAhXQ0vUXLO1V2FalIr4SMPuah3sbw4UiFKLVt4lwGmub3rixicA1acFww"},"release_policy":{"contentType":"application/json; + charset=utf-8","data":"eyJhbnlPZiI6W3siYW55T2YiOlt7ImNsYWltIjoic2RrLXRlc3QiLCJlcXVhbHMiOnRydWV9XSwiYXV0aG9yaXR5IjoiaHR0cHM6Ly9za3JhdHRlc3RhdGlvbi5henVyZXdlYnNpdGVzLm5ldC8ifV0sInZlcnNpb24iOiIxLjAuMCJ9"}}' + headers: + cache-control: no-cache + content-length: '986' + content-security-policy: default-src 'self' + content-type: application/json; charset=utf-8 + strict-transport-security: max-age=31536000; includeSubDomains + x-content-type-options: nosniff + x-frame-options: SAMEORIGIN + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; + x-ms-keyvault-region: westus + x-ms-server-latency: '873' + status: + code: 200 + message: OK + url: https://mcpatinotesthsm.managedhsm.azure.net/keys/livekvtestkey-named4c517f5/create?api-version=7.3-preview +- request: + body: '{"attributes": {"exp": 2524723200}, "tags": {"foo": "updated tag"}, "release_policy": + {"data": "eyJhbnlPZiI6IFt7ImFueU9mIjogW3siY2xhaW0iOiAic2RrLXRlc3QiLCAiZXF1YWxzIjogZmFsc2V9XSwgImF1dGhvcml0eSI6ICJodHRwczovL3NrcmF0dGVzdGF0aW9uLmF6dXJld2Vic2l0ZXMubmV0LyJ9XSwgInZlcnNpb24iOiAiMS4wLjAifQ"}}' + headers: + Accept: + - application/json + Content-Length: + - '289' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: PATCH + uri: https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-named4c517f5/?api-version=7.3-preview + response: + body: + string: '{"attributes":{"created":1628108364,"enabled":true,"exp":2524723200,"exportable":true,"recoverableDays":7,"recoveryLevel":"CustomizedRecoverable+Purgeable","updated":1628108365},"key":{"e":"AQAB","key_ops":["wrapKey","verify","sign","unwrapKey","encrypt","decrypt"],"kid":"https://managedhsmname.managedhsm.azure.net/keys/livekvtestkey-named4c517f5/6e738db2a7c60f432fb8befd069f2ab2","kty":"RSA-HSM","n":"oDdi5cXpMWJpMv9R8xWyFfezI8_Pnt8mWXnhsjNROc8YaLZzdAUwYfCa4kS8QjUWYxxOgYXSsX8bISrHRAJiZqnopfUruSCrMqBVE8PotgOdVn_D-EIOIPHB--nwf1bRACC3wANiKuMsXI2dCRnOZVgWP-CoaMeMxuOplLp08g8SlYDzdXAqRjj2na8zA152DHz5tZVIqI6kAQVjGxYeb6DnFSqRsLrcR-UJXtdKT6G4wGupDgchhwK9D3zhEE78qtarsDNr0x9fxbTKtwtFVFAJIyLbsAhXQ0vUXLO1V2FalIr4SMPuah3sbw4UiFKLVt4lwGmub3rixicA1acFww"},"release_policy":{"contentType":"application/json; + charset=utf-8","data":"eyJhbnlPZiI6W3siYW55T2YiOlt7ImNsYWltIjoic2RrLXRlc3QiLCJlcXVhbHMiOmZhbHNlfV0sImF1dGhvcml0eSI6Imh0dHBzOi8vc2tyYXR0ZXN0YXRpb24uYXp1cmV3ZWJzaXRlcy5uZXQvIn1dLCJ2ZXJzaW9uIjoiMS4wLjAifQ"},"tags":{"foo":"updated + tag"}}' + headers: + cache-control: no-cache + content-length: '1034' + content-security-policy: default-src 'self' + content-type: application/json; charset=utf-8 + strict-transport-security: max-age=31536000; includeSubDomains + x-content-type-options: nosniff + x-frame-options: SAMEORIGIN + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; + x-ms-keyvault-region: westus + x-ms-server-latency: '738' + status: + code: 200 + message: OK + url: https://mcpatinotesthsm.managedhsm.azure.net/keys/livekvtestkey-named4c517f5/?api-version=7.3-preview +version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/test_key_client.py b/sdk/keyvault/azure-keyvault-keys/tests/test_key_client.py index 251fbb13ae0b..32bdac2d91bc 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_key_client.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_key_client.py @@ -5,18 +5,18 @@ import codecs from dateutil import parser as date_parse import functools -import time -import logging import json +import logging +import time from azure.core.exceptions import ResourceExistsError, ResourceNotFoundError from azure.core.pipeline.policies import SansIOHTTPPolicy -from azure.keyvault.keys import ApiVersion, JsonWebKey, KeyClient +from azure.keyvault.keys import ApiVersion, JsonWebKey, KeyClient, KeyReleasePolicy import pytest from six import byte2int from _shared.test_case import KeyVaultTestCase -from _test_case import client_setup, get_decorator, KeysTestCase +from _test_case import client_setup, get_attestation_token, get_decorator, get_release_policy, KeysTestCase all_api_versions = get_decorator() @@ -38,6 +38,9 @@ def emit(self, record): class KeyClientTests(KeysTestCase, KeyVaultTestCase): + def __init__(self, *args, **kwargs): + super(KeyClientTests, self).__init__(*args, match_body=False, **kwargs) + def _assert_key_attributes_equal(self, k1, k2): self.assertEqual(k1.name, k2.name) self.assertEqual(k1.vault_url, k2.vault_url) @@ -96,18 +99,22 @@ def _validate_rsa_key_bundle(self, key_attributes, vault, key_name, kty, key_ops "Missing required date attributes.", ) - def _update_key_properties(self, client, key): + def _update_key_properties(self, client, key, release_policy=None): expires = date_parse.parse("2050-01-02T08:00:00.000Z") tags = {"foo": "updated tag"} key_ops = ["decrypt", "encrypt"] - key_bundle = client.update_key_properties(key.name, key_operations=key_ops, expires_on=expires, tags=tags) - self.assertEqual(tags, key_bundle.properties.tags) - self.assertEqual(key.id, key_bundle.id) - self.assertNotEqual(key.properties.updated_on, key_bundle.properties.updated_on) - self.assertEqual(sorted(key_ops), sorted(key_bundle.key_operations)) + key_bundle = client.update_key_properties( + key.name, key_operations=key_ops, expires_on=expires, tags=tags, release_policy=release_policy + ) + assert tags == key_bundle.properties.tags + assert key.id == key_bundle.id + assert key.properties.updated_on != key_bundle.properties.updated_on + assert sorted(key_ops) == sorted(key_bundle.key_operations) + if release_policy: + assert key.properties.release_policy.data != key_bundle.properties.release_policy.data return key_bundle - def _import_test_key(self, client, name, hardware_protected=False): + def _import_test_key(self, client, name, hardware_protected=False, **kwargs): def _to_bytes(hex): if len(hex) % 2: hex = "0{}".format(hex) @@ -139,7 +146,7 @@ def _to_bytes(hex): "009fe7ae42e92bc04fcd5780464bd21d0c8ac0c599f9af020fde6ab0a7e7d1d39902f5d8fb6c614184c4c1b103fb46e94cd10a6c8a40f9991a1f28269f326435b6c50276fda6493353c650a833f724d80c7d522ba16c79f0eb61f672736b68fb8be3243d10943c4ab7028d09e76cfb5892222e38bc4d35585bf35a88cd68c73b07" ), ) - imported_key = client.import_key(name, key) + imported_key = client.import_key(name, key, **kwargs) self._validate_rsa_key_bundle(imported_key, client.vault_url, name, key.kty, key.key_ops) return imported_key @@ -432,6 +439,72 @@ def test_get_random_bytes(self, client, **kwargs): assert all(random_bytes != rb for rb in generated_random_bytes) generated_random_bytes.append(random_bytes) + @only_hsm_7_3_preview() + @client_setup + def test_key_release(self, client, **kwargs): + attestation_uri = self._get_attestation_uri() + attestation = get_attestation_token(attestation_uri) + release_policy = get_release_policy(attestation_uri) + + rsa_key_name = self.get_resource_name("rsa-key-name") + key = self._create_rsa_key( + client, rsa_key_name, hardware_protected=True, exportable=True, release_policy=release_policy + ) + assert key.properties.release_policy + assert key.properties.release_policy.data + assert key.properties.exportable + + release_result = client.release_key(rsa_key_name, attestation) + assert release_result.value + + @only_hsm_7_3_preview() + @client_setup + def test_imported_key_release(self, client, **kwargs): + attestation_uri = self._get_attestation_uri() + attestation = get_attestation_token(attestation_uri) + release_policy = get_release_policy(attestation_uri) + + imported_key_name = self.get_resource_name("imported-key-name") + key = self._import_test_key( + client, imported_key_name, hardware_protected=True, exportable=True, release_policy=release_policy + ) + assert key.properties.release_policy + assert key.properties.release_policy.data + assert key.properties.exportable + + release_result = client.release_key(imported_key_name, attestation) + assert release_result.value + + @only_hsm_7_3_preview() + @client_setup + def test_update_release_policy(self, client, **kwargs): + attestation_uri = self._get_attestation_uri() + release_policy = get_release_policy(attestation_uri) + key_name = self.get_resource_name("key-name") + key = self._create_rsa_key( + client, key_name, hardware_protected=True, exportable=True, release_policy=release_policy + ) + assert key.properties.release_policy.data + + new_release_policy_json = { + "anyOf": [ + { + "anyOf": [ + { + "claim": "sdk-test", + "equals": False + } + ], + "authority": attestation_uri.rstrip("/") + "/" + } + ], + "version": "1.0.0" + } + policy_string = json.dumps(new_release_policy_json).encode() + new_release_policy = KeyReleasePolicy(policy_string) + + self._update_key_properties(client, key, new_release_policy) + def test_positive_bytes_count_required(): client = KeyClient("...", object()) diff --git a/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py b/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py index a82a6622cb63..2b881c6f11c7 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py @@ -11,13 +11,13 @@ from azure.core.exceptions import ResourceExistsError, ResourceNotFoundError from azure.core.pipeline.policies import SansIOHTTPPolicy -from azure.keyvault.keys import ApiVersion, JsonWebKey +from azure.keyvault.keys import ApiVersion, JsonWebKey, KeyReleasePolicy from azure.keyvault.keys.aio import KeyClient import pytest from six import byte2int from _shared.test_case_async import KeyVaultTestCase -from _test_case import client_setup, get_decorator, KeysTestCase +from _test_case import client_setup, get_attestation_token, get_decorator, get_release_policy, KeysTestCase all_api_versions = get_decorator(is_async=True) @@ -38,6 +38,9 @@ def emit(self, record): class KeyVaultKeyTest(KeysTestCase, KeyVaultTestCase): + def __init__(self, *args, **kwargs): + super().__init__(*args, match_body=False, **kwargs) + def _assert_jwks_equal(self, jwk1, jwk2): assert jwk1.kid == jwk2.kid assert jwk1.kty == jwk2.kty @@ -114,13 +117,17 @@ def _validate_rsa_key_bundle(self, key_attributes, vault, key_name, kty, key_ops "Missing required date attributes.", ) - async def _update_key_properties(self, client, key): + async def _update_key_properties(self, client, key, release_policy=None): expires = date_parse.parse("2050-01-02T08:00:00.000Z") tags = {"foo": "updated tag"} - key_bundle = await client.update_key_properties(key.name, expires_on=expires, tags=tags) - self.assertEqual(tags, key_bundle.properties.tags) - self.assertEqual(key.id, key_bundle.id) - self.assertNotEqual(key.properties.updated_on, key_bundle.properties.updated_on) + key_bundle = await client.update_key_properties( + key.name, expires_on=expires, tags=tags, release_policy=release_policy + ) + assert tags == key_bundle.properties.tags + assert key.id == key_bundle.id + assert key.properties.updated_on != key_bundle.properties.updated_on + if release_policy: + assert key.properties.release_policy.data != key_bundle.properties.release_policy.data return key_bundle async def _validate_key_list(self, keys, expected): @@ -130,7 +137,7 @@ async def _validate_key_list(self, keys, expected): del expected[key.name] self.assertEqual(len(expected), 0) - async def _import_test_key(self, client, name, hardware_protected=False): + async def _import_test_key(self, client, name, hardware_protected=False, **kwargs): def _to_bytes(hex): if len(hex) % 2: hex = "0{}".format(hex) @@ -162,7 +169,7 @@ def _to_bytes(hex): "009fe7ae42e92bc04fcd5780464bd21d0c8ac0c599f9af020fde6ab0a7e7d1d39902f5d8fb6c614184c4c1b103fb46e94cd10a6c8a40f9991a1f28269f326435b6c50276fda6493353c650a833f724d80c7d522ba16c79f0eb61f672736b68fb8be3243d10943c4ab7028d09e76cfb5892222e38bc4d35585bf35a88cd68c73b07" ), ) - imported_key = await client.import_key(name, key) + imported_key = await client.import_key(name, key, **kwargs) self._validate_rsa_key_bundle(imported_key, client.vault_url, name, key.kty, key.key_ops) return imported_key @@ -462,6 +469,72 @@ async def test_get_random_bytes(self, client, **kwargs): assert all(random_bytes != rb for rb in generated_random_bytes) generated_random_bytes.append(random_bytes) + @only_hsm_7_3_preview() + @client_setup + async def test_key_release(self, client, **kwargs): + attestation_uri = self._get_attestation_uri() + attestation = get_attestation_token(attestation_uri) + release_policy = get_release_policy(attestation_uri) + + rsa_key_name = self.get_resource_name("rsa-key-name") + key = await self._create_rsa_key( + client, rsa_key_name, hardware_protected=True, exportable=True, release_policy=release_policy + ) + assert key.properties.release_policy + assert key.properties.release_policy.data + assert key.properties.exportable + + release_result = await client.release_key(rsa_key_name, attestation) + assert release_result.value + + @only_hsm_7_3_preview() + @client_setup + async def test_imported_key_release(self, client, **kwargs): + attestation_uri = self._get_attestation_uri() + attestation = get_attestation_token(attestation_uri) + release_policy = get_release_policy(attestation_uri) + + imported_key_name = self.get_resource_name("imported-key-name") + key = await self._import_test_key( + client, imported_key_name, hardware_protected=True, exportable=True, release_policy=release_policy + ) + assert key.properties.release_policy + assert key.properties.release_policy.data + assert key.properties.exportable + + release_result = await client.release_key(imported_key_name, attestation) + assert release_result.value + + @only_hsm_7_3_preview() + @client_setup + async def test_update_release_policy(self, client, **kwargs): + attestation_uri = self._get_attestation_uri() + release_policy = get_release_policy(attestation_uri) + key_name = self.get_resource_name("key-name") + key = await self._create_rsa_key( + client, key_name, hardware_protected=True, exportable=True, release_policy=release_policy + ) + assert key.properties.release_policy.data + + new_release_policy_json = { + "anyOf": [ + { + "anyOf": [ + { + "claim": "sdk-test", + "equals": False + } + ], + "authority": attestation_uri.rstrip("/") + "/" + } + ], + "version": "1.0.0" + } + policy_string = json.dumps(new_release_policy_json).encode() + new_release_policy = KeyReleasePolicy(policy_string) + + await self._update_key_properties(client, key, new_release_policy) + @pytest.mark.asyncio async def test_positive_bytes_count_required(): diff --git a/sdk/keyvault/test-resources.json b/sdk/keyvault/test-resources.json index e40bb34d8844..d22bd550fd57 100644 --- a/sdk/keyvault/test-resources.json +++ b/sdk/keyvault/test-resources.json @@ -73,6 +73,13 @@ "metadata": { "description": "Key Vault SKU to deploy. The default is 'premium'" } + }, + "attestationUri": { + "type": "string", + "defaultValue": "https://skrattestation.azurewebsites.net/", + "metadata": { + "description": "Test attestation service for Secure Key Release." + } } }, "variables": { @@ -187,7 +194,8 @@ "enablePurgeProtection": false, "enableSoftDelete": true, "publicNetworkAccess": "Enabled", - "networkAcls": "[variables('networkAcls')]" + "networkAcls": "[variables('networkAcls')]", + "softDeleteRetentionInDays": 7 } }, { @@ -269,6 +277,11 @@ "BLOB_CONTAINER_NAME" : { "type": "string", "value": "[variables('blobContainerName')]" + }, + "AZURE_KEYVAULT_ATTESTATION_URI": { + "type": "string", + "condition": "[parameters('enableHsm')]", + "value": "[parameters('attestationUri')]" } } } From a9e6633b99fa70ed0148fdff40fa1783c594973b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= <39780829+mccoyp@users.noreply.github.com> Date: Fri, 6 Aug 2021 18:21:13 -0700 Subject: [PATCH 006/104] [Key Vault] Fix administration readme typo (#20139) --- sdk/keyvault/azure-keyvault-administration/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/keyvault/azure-keyvault-administration/README.md b/sdk/keyvault/azure-keyvault-administration/README.md index 400fe326435a..0823efc6fba1 100644 --- a/sdk/keyvault/azure-keyvault-administration/README.md +++ b/sdk/keyvault/azure-keyvault-administration/README.md @@ -158,7 +158,7 @@ A `KeyVaultAccessControlClient` manages role definitions and role assignments. A `KeyVaultBackupClient` performs full key backups, full key restores, and selective key restores. ## Examples -This section conntains code snippets covering common tasks: +This section contains code snippets covering common tasks: * Access Control * [List all role definitions](#list-all-role-definitions "List all role definitions") * [Set, Get, and Delete a role definition](#set-get-and-delete-a-role-defintion "Set, Get, and Delete a role definition") From 3386082de43a60a85deb523b94f3af3ed1ec3792 Mon Sep 17 00:00:00 2001 From: "Adam Ling (MSFT)" Date: Sat, 7 Aug 2021 12:31:02 +0800 Subject: [PATCH 007/104] [ServiceBus] Improve auto lock renewer implementation (#20071) * imrpove auto lock renewer implementation * small fixes * fix bug * update renewer so that it would not be blocking the main thread * update changelog and test * update code to infer max worker * detect max worker * small fix * update comment * improvement max_workers value infering * fix pylint * revert time setting in test * review feedback * small fix * PR review feedback --- sdk/servicebus/azure-servicebus/CHANGELOG.md | 1 + .../servicebus/_common/auto_lock_renewer.py | 110 +++++++++++++++--- .../azure-servicebus/tests/mocks.py | 3 +- .../azure-servicebus/tests/test_queues.py | 65 +++++++++++ 4 files changed, 159 insertions(+), 20 deletions(-) diff --git a/sdk/servicebus/azure-servicebus/CHANGELOG.md b/sdk/servicebus/azure-servicebus/CHANGELOG.md index 19e5f7eb9134..f5dc972aa803 100644 --- a/sdk/servicebus/azure-servicebus/CHANGELOG.md +++ b/sdk/servicebus/azure-servicebus/CHANGELOG.md @@ -8,6 +8,7 @@ ### Bugs Fixed - Fixed a bug that `azure.servicebus.aio.AutoLockRenewer` crashes on disposal if no messages have been registered (#19642). +- Fixed a bug that `azure.servicebus.AutoLockRenewer` only supports auto lock renewal for `max_workers` amount of messages/sessions at a time (#19362). ### Other Changes diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_common/auto_lock_renewer.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_common/auto_lock_renewer.py index 66a1cc0b5c0e..c714aad6b4b0 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_common/auto_lock_renewer.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/_common/auto_lock_renewer.py @@ -8,7 +8,7 @@ import logging import threading import time -from concurrent.futures import ThreadPoolExecutor +from concurrent.futures import ThreadPoolExecutor, TimeoutError as FuturesTimeoutError from typing import TYPE_CHECKING from .._servicebus_receiver import ServiceBusReceiver @@ -23,6 +23,11 @@ Renewable = Union[ServiceBusSession, ServiceBusReceivedMessage] LockRenewFailureCallback = Callable[[Renewable, Optional[Exception]], None] +try: + import queue +except ImportError: + import Queue as queue # type: ignore + _log = logging.getLogger(__name__) SHORT_RENEW_OFFSET = 0.5 # Seconds that if a renew period is longer than lock duration + offset, it's "too long" @@ -31,7 +36,7 @@ ) -class AutoLockRenewer(object): +class AutoLockRenewer(object): # pylint:disable=too-many-instance-attributes """Auto renew locks for messages and sessions using a background thread pool. :param max_lock_renewal_duration: A time in seconds that locks registered to this renewer @@ -74,10 +79,12 @@ def __init__( max_workers=None, ): # type: (float, Optional[LockRenewFailureCallback], Optional[ThreadPoolExecutor], Optional[int]) -> None - """Auto renew locks for messages and sessions using a background thread pool. + """Auto renew locks for messages and sessions using a background thread pool. It is recommended + setting max_worker to a large number or passing ThreadPoolExecutor of large max_workers number when + AutoLockRenewer is supposed to deal with multiple messages or sessions simultaneously. :param max_lock_renewal_duration: A time in seconds that locks registered to this renewer - should be maintained for. Default value is 300 (5 minutes). + should be maintained for. Default value is 300 (5 minutes). :type max_lock_renewal_duration: float :param on_lock_renew_failure: A callback may be specified to be called when the lock is lost on the renewable that is being registered. Default value is None (no callback). @@ -91,11 +98,18 @@ def __init__( :type max_workers: Optional[int] """ self._executor = executor or ThreadPoolExecutor(max_workers=max_workers) + # None indicates it's unknown whether the provided executor has max workers > 1 + self._is_max_workers_greater_than_one = None if executor else (max_workers is None or max_workers > 1) self._shutdown = threading.Event() - self._sleep_time = 1 + self._sleep_time = 0.5 self._renew_period = 10 + self._running_dispatcher = threading.Event() # indicate whether the dispatcher is running + self._last_activity_timestamp = None # the last timestamp when the dispatcher is active dealing with tasks + self._dispatcher_timeout = 5 # the idle time that dispatcher should exit if there's no activity self._max_lock_renewal_duration = max_lock_renewal_duration self._on_lock_renew_failure = on_lock_renew_failure + self._renew_tasks = queue.Queue() # type: ignore + self._infer_max_workers_time = 1 def __enter__(self): if self._shutdown.is_set(): @@ -103,11 +117,35 @@ def __enter__(self): "The AutoLockRenewer has already been shutdown. Please create a new instance for" " auto lock renewing." ) + + self._init_workers() return self def __exit__(self, *args): self.close() + def _init_workers(self): + if not self._running_dispatcher.is_set(): + self._infer_max_workers_greater_than_one_if_needed() + self._running_dispatcher.set() + self._executor.submit(self._dispatch_worker) + + def _infer_max_workers_greater_than_one_if_needed(self): + # infer max_workers value if executor is passed in + if self._is_max_workers_greater_than_one is None: + max_wokers_checker = self._executor.submit(self._infer_max_workers_value_worker) + max_wokers_checker.result() + + def _infer_max_workers_value_worker(self): + max_workers_checker = self._executor.submit(pow, 1, 1) + # This will never complete because there is only one worker thread and + # it is executing this function. + try: + max_workers_checker.result(timeout=self._infer_max_workers_time) + self._is_max_workers_greater_than_one = True + except FuturesTimeoutError: + self._is_max_workers_greater_than_one = False + def _renewable(self, renewable): # pylint: disable=protected-access if self._shutdown.is_set(): @@ -120,7 +158,26 @@ def _renewable(self, renewable): return False return True - def _auto_lock_renew( + def _dispatch_worker(self): + self._last_activity_timestamp = time.time() + while not self._shutdown.is_set() and self._running_dispatcher.is_set(): + while not self._renew_tasks.empty(): + renew_task = self._renew_tasks.get() + if self._is_max_workers_greater_than_one: + self._executor.submit(self._auto_lock_renew_task, *renew_task) + else: + self._auto_lock_renew_task(*renew_task) + self._renew_tasks.task_done() + self._last_activity_timestamp = time.time() + # If there's no activity in the past self._idle_timeout seconds, exit the method + # This ensures the dispatching thread could exit, not blocking the main python thread + # the main worker thread could be started again if new tasks get registered + if time.time() - self._last_activity_timestamp >= self._dispatcher_timeout: + self._running_dispatcher.clear() + self._last_activity_timestamp = None + return + + def _auto_lock_renew_task( self, receiver, renewable, @@ -130,14 +187,11 @@ def _auto_lock_renew( renew_period_override=None, ): # pylint: disable=protected-access - _log.debug( - "Running lock auto-renew thread for %r seconds", max_lock_renewal_duration - ) error = None clean_shutdown = False # Only trigger the on_lock_renew_failure if halting was not expected (shutdown, etc) renew_period = renew_period_override or self._renew_period try: - while self._renewable(renewable): + if self._renewable(renewable): if (utc_now() - starttime) >= datetime.timedelta( seconds=max_lock_renewal_duration ): @@ -163,6 +217,18 @@ def _auto_lock_renew( # Renewable is a message receiver.renew_message_lock(renewable) # type: ignore time.sleep(self._sleep_time) + # enqueue a new task, keeping renewing the renewable + if self._renewable(renewable): + self._renew_tasks.put( + ( + receiver, + renewable, + starttime, + max_lock_renewal_duration, + on_lock_renew_failure, + renew_period_override + ) + ) clean_shutdown = not renewable._lock_expired except AutoLockRenewTimeout as e: error = e @@ -231,14 +297,21 @@ def register( time_until_expiry.seconds * SHORT_RENEW_SCALING_FACTOR ) - self._executor.submit( - self._auto_lock_renew, - receiver, - renewable, - starttime, - max_lock_renewal_duration or self._max_lock_renewal_duration, - on_lock_renew_failure or self._on_lock_renew_failure, - renew_period_override, + _log.debug( + "Running lock auto-renew for %r for %r seconds", renewable, max_lock_renewal_duration + ) + + self._init_workers() + + self._renew_tasks.put( + ( + receiver, + renewable, + starttime, + max_lock_renewal_duration or self._max_lock_renewal_duration, + on_lock_renew_failure or self._on_lock_renew_failure, + renew_period_override + ) ) def close(self, wait=True): @@ -249,5 +322,6 @@ def close(self, wait=True): :rtype: None """ + self._running_dispatcher.clear() self._shutdown.set() self._executor.shutdown(wait=wait) diff --git a/sdk/servicebus/azure-servicebus/tests/mocks.py b/sdk/servicebus/azure-servicebus/tests/mocks.py index 04bffbb607d7..67d81d704058 100644 --- a/sdk/servicebus/azure-servicebus/tests/mocks.py +++ b/sdk/servicebus/azure-servicebus/tests/mocks.py @@ -18,7 +18,7 @@ def renew_message_lock(self, message): class MockReceivedMessage(ServiceBusReceivedMessage): def __init__(self, prevent_renew_lock=False, exception_on_renew_lock=False): self._lock_duration = 2 - + self._raw_amqp_message = None self._received_timestamp_utc = utc_now() self.locked_until_utc = self._received_timestamp_utc + timedelta(seconds=self._lock_duration) self._settled = False @@ -27,7 +27,6 @@ def __init__(self, prevent_renew_lock=False, exception_on_renew_lock=False): self._prevent_renew_lock = prevent_renew_lock self._exception_on_renew_lock = exception_on_renew_lock - @property def _lock_expired(self): if self.locked_until_utc and self.locked_until_utc <= utc_now(): diff --git a/sdk/servicebus/azure-servicebus/tests/test_queues.py b/sdk/servicebus/azure-servicebus/tests/test_queues.py index 9f9f837d38ff..e77012d58070 100644 --- a/sdk/servicebus/azure-servicebus/tests/test_queues.py +++ b/sdk/servicebus/azure-servicebus/tests/test_queues.py @@ -7,6 +7,7 @@ import logging import sys import os +from concurrent.futures import ThreadPoolExecutor import types import pytest import time @@ -1002,6 +1003,70 @@ def test_queue_by_queue_client_conn_str_receive_handler_with_autolockrenew(self, renewer.close() assert len(messages) == 11 + renewer = AutoLockRenewer(max_workers=8) + with sb_client.get_queue_sender(servicebus_queue.name) as sender: + for i in range(10): + message = ServiceBusMessage("{}".format(i)) + sender.send_messages(message) + + with sb_client.get_queue_receiver(servicebus_queue.name, + max_wait_time=5, + receive_mode=ServiceBusReceiveMode.PEEK_LOCK, + prefetch_count=10) as receiver: + received_msgs = receiver.receive_messages(max_message_count=10, max_wait_time=5) + for msg in received_msgs: + renewer.register(receiver, msg, max_lock_renewal_duration=10) + time.sleep(10) + + for msg in received_msgs: + receiver.complete_message(msg) + assert len(received_msgs) == 10 + renewer.close() + + executor = ThreadPoolExecutor(max_workers=1) + renewer = AutoLockRenewer(executor=executor) + with sb_client.get_queue_sender(servicebus_queue.name) as sender: + for i in range(2): + message = ServiceBusMessage("{}".format(i)) + sender.send_messages(message) + + with sb_client.get_queue_receiver(servicebus_queue.name, + max_wait_time=5, + receive_mode=ServiceBusReceiveMode.PEEK_LOCK, + prefetch_count=3) as receiver: + received_msgs = receiver.receive_messages(max_message_count=3, max_wait_time=5) + for msg in received_msgs: + renewer.register(receiver, msg, max_lock_renewal_duration=10) + time.sleep(10) + + for msg in received_msgs: + receiver.complete_message(msg) + assert len(received_msgs) == 2 + assert not renewer._is_max_workers_greater_than_one + renewer.close() + + executor = ThreadPoolExecutor(max_workers=2) + renewer = AutoLockRenewer(executor=executor) + with sb_client.get_queue_sender(servicebus_queue.name) as sender: + for i in range(3): + message = ServiceBusMessage("{}".format(i)) + sender.send_messages(message) + + with sb_client.get_queue_receiver(servicebus_queue.name, + max_wait_time=5, + receive_mode=ServiceBusReceiveMode.PEEK_LOCK, + prefetch_count=3) as receiver: + received_msgs = receiver.receive_messages(max_message_count=3, max_wait_time=5) + for msg in received_msgs: + renewer.register(receiver, msg, max_lock_renewal_duration=10) + time.sleep(10) + + for msg in received_msgs: + receiver.complete_message(msg) + assert len(received_msgs) == 3 + assert renewer._is_max_workers_greater_than_one + renewer.close() + @pytest.mark.liveTest @pytest.mark.live_test_only @CachedResourceGroupPreparer(name_prefix='servicebustest') From de74032f559d0c274b673727de0936e7b5a57351 Mon Sep 17 00:00:00 2001 From: Azure CLI Bot Date: Mon, 9 Aug 2021 09:41:03 +0800 Subject: [PATCH 008/104] [AutoRelease] t2-datafactory-2021-07-27-66404 (#19950) * CodeGen from PR 14589 in Azure/azure-rest-api-specs Support UAMI in ADF IR/LS/Activity (#14589) * Enable excel in public swagger * update * rollback dataflow change * Support UAMI in ADF IR/LS/Activity * update * update 0609 * update * update * solve spell issue * Update custom-words.txt Co-authored-by: zhanyu2014 Co-authored-by: Lei Ni <7233663+leni-msft@users.noreply.github.com> * version,CHANGELOG Co-authored-by: SDKAuto Co-authored-by: zhanyu2014 Co-authored-by: Lei Ni <7233663+leni-msft@users.noreply.github.com> Co-authored-by: PythonSdkPipelines Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com> --- .../azure-mgmt-datafactory/CHANGELOG.md | 193 + .../azure-mgmt-datafactory/MANIFEST.in | 1 + .../azure-mgmt-datafactory/_meta.json | 11 + .../_data_factory_management_client.py | 35 + .../azure/mgmt/datafactory/_metadata.json | 122 + .../azure/mgmt/datafactory/_version.py | 2 +- .../aio/_data_factory_management_client.py | 34 + .../datafactory/aio/operations/__init__.py | 6 + .../operations/_activity_runs_operations.py | 2 +- .../_data_flow_debug_session_operations.py | 22 +- .../aio/operations/_data_flows_operations.py | 8 +- .../aio/operations/_datasets_operations.py | 8 +- .../_exposure_control_operations.py | 6 +- .../aio/operations/_factories_operations.py | 18 +- .../_integration_runtime_nodes_operations.py | 8 +- ...tion_runtime_object_metadata_operations.py | 10 +- .../_integration_runtimes_operations.py | 44 +- .../operations/_linked_services_operations.py | 8 +- .../_managed_private_endpoints_operations.py | 8 +- .../_managed_virtual_networks_operations.py | 6 +- .../datafactory/aio/operations/_operations.py | 2 +- .../operations/_pipeline_runs_operations.py | 6 +- .../aio/operations/_pipelines_operations.py | 14 +- ...rivate_end_point_connections_operations.py | 116 + ..._private_endpoint_connection_operations.py | 245 + .../_private_link_resources_operations.py | 99 + .../operations/_trigger_runs_operations.py | 6 +- .../aio/operations/_triggers_operations.py | 44 +- .../azure/mgmt/datafactory/models/__init__.py | 70 +- .../_data_factory_management_client_enums.py | 45 +- .../azure/mgmt/datafactory/models/_models.py | 7451 +++++---- .../mgmt/datafactory/models/_models_py3.py | 13608 +++++++++------- .../mgmt/datafactory/operations/__init__.py | 6 + .../_data_flow_debug_session_operations.py | 8 +- ...tion_runtime_object_metadata_operations.py | 4 +- .../_integration_runtimes_operations.py | 8 +- .../operations/_pipelines_operations.py | 4 +- ...rivate_end_point_connections_operations.py | 121 + ..._private_endpoint_connection_operations.py | 252 + .../_private_link_resources_operations.py | 104 + .../operations/_triggers_operations.py | 16 +- .../azure-mgmt-datafactory/setup.py | 2 +- shared_requirements.txt | 1 + 43 files changed, 13682 insertions(+), 9102 deletions(-) create mode 100644 sdk/datafactory/azure-mgmt-datafactory/_meta.json create mode 100644 sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/_metadata.json create mode 100644 sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_private_end_point_connections_operations.py create mode 100644 sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_private_endpoint_connection_operations.py create mode 100644 sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_private_link_resources_operations.py create mode 100644 sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_private_end_point_connections_operations.py create mode 100644 sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_private_endpoint_connection_operations.py create mode 100644 sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_private_link_resources_operations.py diff --git a/sdk/datafactory/azure-mgmt-datafactory/CHANGELOG.md b/sdk/datafactory/azure-mgmt-datafactory/CHANGELOG.md index c2f6baa0d25c..d1d513c41378 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/CHANGELOG.md +++ b/sdk/datafactory/azure-mgmt-datafactory/CHANGELOG.md @@ -1,5 +1,198 @@ # Release History +## 2.0.0 (2021-07-27) + +**Features** + + - Model QuickBooksSource has a new parameter disable_metrics_collection + - Model AzureFileStorageWriteSettings has a new parameter disable_metrics_collection + - Model AzureBlobStorageWriteSettings has a new parameter disable_metrics_collection + - Model AzureKeyVaultLinkedService has a new parameter credential + - Model CosmosDbSqlApiSource has a new parameter disable_metrics_collection + - Model OracleCloudStorageReadSettings has a new parameter disable_metrics_collection + - Model TeradataSource has a new parameter disable_metrics_collection + - Model ODataSource has a new parameter disable_metrics_collection + - Model SqlSink has a new parameter disable_metrics_collection + - Model AzureFunctionLinkedService has a new parameter resource_id + - Model AzureFunctionLinkedService has a new parameter credential + - Model AzureFunctionLinkedService has a new parameter authentication + - Model AzureBlobFSSink has a new parameter metadata + - Model AzureBlobFSSink has a new parameter disable_metrics_collection + - Model RestSource has a new parameter disable_metrics_collection + - Model MagentoSource has a new parameter disable_metrics_collection + - Model CosmosDbMongoDbApiSink has a new parameter disable_metrics_collection + - Model TabularSource has a new parameter disable_metrics_collection + - Model PhoenixSource has a new parameter disable_metrics_collection + - Model DrillSource has a new parameter disable_metrics_collection + - Model SapBwSource has a new parameter disable_metrics_collection + - Model AzureMySqlSink has a new parameter disable_metrics_collection + - Model NetezzaSource has a new parameter disable_metrics_collection + - Model MicrosoftAccessSource has a new parameter disable_metrics_collection + - Model SqlDWSource has a new parameter disable_metrics_collection + - Model SparkSource has a new parameter disable_metrics_collection + - Model AzureDataExplorerLinkedService has a new parameter credential + - Model Office365Source has a new parameter disable_metrics_collection + - Model AzureDataExplorerSink has a new parameter disable_metrics_collection + - Model InformixSource has a new parameter disable_metrics_collection + - Model SapTableSource has a new parameter disable_metrics_collection + - Model AzureDataExplorerSource has a new parameter disable_metrics_collection + - Model SharePointOnlineListSource has a new parameter disable_metrics_collection + - Model SqlDWSink has a new parameter disable_metrics_collection + - Model ShopifySource has a new parameter disable_metrics_collection + - Model GitHubAccessTokenRequest has a new parameter git_hub_client_secret + - Model ParquetSink has a new parameter disable_metrics_collection + - Model SapHanaSource has a new parameter disable_metrics_collection + - Model RelationalSource has a new parameter disable_metrics_collection + - Model AzureFileStorageReadSettings has a new parameter disable_metrics_collection + - Model SqlMISink has a new parameter disable_metrics_collection + - Model FileServerReadSettings has a new parameter disable_metrics_collection + - Model OracleServiceCloudSource has a new parameter disable_metrics_collection + - Model CassandraSource has a new parameter disable_metrics_collection + - Model JsonSink has a new parameter disable_metrics_collection + - Model AzureDatabricksDeltaLakeSink has a new parameter disable_metrics_collection + - Model PostgreSqlSource has a new parameter disable_metrics_collection + - Model AzureDatabricksLinkedService has a new parameter credential + - Model SybaseSource has a new parameter disable_metrics_collection + - Model OdbcSource has a new parameter disable_metrics_collection + - Model XmlSource has a new parameter disable_metrics_collection + - Model FileSystemSource has a new parameter disable_metrics_collection + - Model JiraSource has a new parameter disable_metrics_collection + - Model HdfsSource has a new parameter disable_metrics_collection + - Model CosmosDbSqlApiSink has a new parameter disable_metrics_collection + - Model ImpalaSource has a new parameter disable_metrics_collection + - Model HdfsReadSettings has a new parameter disable_metrics_collection + - Model AzureSearchIndexSink has a new parameter disable_metrics_collection + - Model EloquaSource has a new parameter disable_metrics_collection + - Model PipelineRunInvokedBy has a new parameter pipeline_name + - Model PipelineRunInvokedBy has a new parameter pipeline_run_id + - Model SqlSource has a new parameter disable_metrics_collection + - Model DynamicsSource has a new parameter disable_metrics_collection + - Model AzureTableSink has a new parameter disable_metrics_collection + - Model AzureDataLakeStoreSink has a new parameter disable_metrics_collection + - Model RestSink has a new parameter disable_metrics_collection + - Model VerticaSource has a new parameter disable_metrics_collection + - Model HttpReadSettings has a new parameter disable_metrics_collection + - Model HBaseSource has a new parameter disable_metrics_collection + - Model AzureBlobFSReadSettings has a new parameter disable_metrics_collection + - Model JsonSource has a new parameter disable_metrics_collection + - Model DynamicsCrmSource has a new parameter disable_metrics_collection + - Model SalesforceSink has a new parameter disable_metrics_collection + - Model AzureDataLakeStoreLinkedService has a new parameter credential + - Model OrcSink has a new parameter disable_metrics_collection + - Model AvroSource has a new parameter disable_metrics_collection + - Model MicrosoftAccessSink has a new parameter disable_metrics_collection + - Model FileSystemSink has a new parameter disable_metrics_collection + - Model OdbcSink has a new parameter disable_metrics_collection + - Model AzureDataLakeStoreSource has a new parameter disable_metrics_collection + - Model SftpWriteSettings has a new parameter disable_metrics_collection + - Model CouchbaseSource has a new parameter disable_metrics_collection + - Model AmazonS3CompatibleReadSettings has a new parameter disable_metrics_collection + - Model SquareSource has a new parameter disable_metrics_collection + - Model SapCloudForCustomerSink has a new parameter disable_metrics_collection + - Model SalesforceMarketingCloudSource has a new parameter disable_metrics_collection + - Model HiveSource has a new parameter disable_metrics_collection + - Model AzureBlobStorageLinkedService has a new parameter credential + - Model SapCloudForCustomerSource has a new parameter disable_metrics_collection + - Model HDInsightOnDemandLinkedService has a new parameter credential + - Model AzureSqlDWLinkedService has a new parameter credential + - Model MariaDBSource has a new parameter disable_metrics_collection + - Model AmazonRedshiftSource has a new parameter disable_metrics_collection + - Model OracleSink has a new parameter disable_metrics_collection + - Model StoreReadSettings has a new parameter disable_metrics_collection + - Model AzureMLLinkedService has a new parameter authentication + - Model SapEccSource has a new parameter disable_metrics_collection + - Model SqlServerSource has a new parameter disable_metrics_collection + - Model BlobSink has a new parameter metadata + - Model BlobSink has a new parameter disable_metrics_collection + - Model PaypalSource has a new parameter disable_metrics_collection + - Model AzureMySqlSource has a new parameter disable_metrics_collection + - Model WebSource has a new parameter disable_metrics_collection + - Model AmazonMWSSource has a new parameter disable_metrics_collection + - Model OracleSource has a new parameter disable_metrics_collection + - Model IntegrationRuntimeSsisProperties has a new parameter credential + - Model MySqlSource has a new parameter disable_metrics_collection + - Model AzureQueueSink has a new parameter disable_metrics_collection + - Model BinarySource has a new parameter disable_metrics_collection + - Model MongoDbV2Source has a new parameter disable_metrics_collection + - Model CopySource has a new parameter disable_metrics_collection + - Model ConcurSource has a new parameter disable_metrics_collection + - Model SalesforceSource has a new parameter disable_metrics_collection + - Model DynamicsCrmSink has a new parameter disable_metrics_collection + - Model DynamicsSink has a new parameter disable_metrics_collection + - Model AzureBatchLinkedService has a new parameter credential + - Model PrestoSource has a new parameter disable_metrics_collection + - Model AvroSink has a new parameter disable_metrics_collection + - Model ExcelDataset has a new parameter sheet_index + - Model MongoDbSource has a new parameter disable_metrics_collection + - Model AzureBlobStorageReadSettings has a new parameter disable_metrics_collection + - Model AzureSqlSink has a new parameter disable_metrics_collection + - Model SftpReadSettings has a new parameter disable_metrics_collection + - Model HttpSource has a new parameter disable_metrics_collection + - Model AzureDataLakeStoreWriteSettings has a new parameter disable_metrics_collection + - Model AzureSqlMILinkedService has a new parameter credential + - Model AzureSqlMILinkedService has a new parameter always_encrypted_settings + - Model DocumentDbCollectionSink has a new parameter disable_metrics_collection + - Model AzureBlobFSLinkedService has a new parameter credential + - Model AzureMariaDBSource has a new parameter disable_metrics_collection + - Model AzureBlobFSWriteSettings has a new parameter disable_metrics_collection + - Model Db2Source has a new parameter disable_metrics_collection + - Model AzureDatabricksDeltaLakeSource has a new parameter disable_metrics_collection + - Model FileServerWriteSettings has a new parameter disable_metrics_collection + - Model CommonDataServiceForAppsSource has a new parameter disable_metrics_collection + - Model InformixSink has a new parameter disable_metrics_collection + - Model SqlMISource has a new parameter disable_metrics_collection + - Model FtpReadSettings has a new parameter disable_metrics_collection + - Model ServiceNowSource has a new parameter disable_metrics_collection + - Model AzurePostgreSqlSink has a new parameter disable_metrics_collection + - Model StoreWriteSettings has a new parameter disable_metrics_collection + - Model CopySink has a new parameter disable_metrics_collection + - Model DelimitedTextSink has a new parameter disable_metrics_collection + - Model MongoDbAtlasSource has a new parameter disable_metrics_collection + - Model SalesforceServiceCloudSource has a new parameter disable_metrics_collection + - Model AzureSqlDatabaseLinkedService has a new parameter credential + - Model AzureSqlDatabaseLinkedService has a new parameter always_encrypted_settings + - Model XeroSource has a new parameter disable_metrics_collection + - Model SqlServerSink has a new parameter disable_metrics_collection + - Model OrcSource has a new parameter disable_metrics_collection + - Model DynamicsAXSource has a new parameter disable_metrics_collection + - Model AzureSqlSource has a new parameter disable_metrics_collection + - Model GreenplumSource has a new parameter disable_metrics_collection + - Model GoogleBigQuerySource has a new parameter disable_metrics_collection + - Model BlobSource has a new parameter disable_metrics_collection + - Model HubspotSource has a new parameter disable_metrics_collection + - Model CommonDataServiceForAppsSink has a new parameter disable_metrics_collection + - Model CosmosDbMongoDbApiSource has a new parameter disable_metrics_collection + - Model DelimitedTextSource has a new parameter disable_metrics_collection + - Model MarketoSource has a new parameter disable_metrics_collection + - Model GoogleAdWordsSource has a new parameter disable_metrics_collection + - Model ResponsysSource has a new parameter disable_metrics_collection + - Model RestServiceLinkedService has a new parameter credential + - Model AzurePostgreSqlSource has a new parameter disable_metrics_collection + - Model DocumentDbCollectionSource has a new parameter disable_metrics_collection + - Model SalesforceServiceCloudSink has a new parameter disable_metrics_collection + - Model AzureBlobFSSource has a new parameter disable_metrics_collection + - Model BinarySink has a new parameter disable_metrics_collection + - Model AzureDataLakeStoreReadSettings has a new parameter disable_metrics_collection + - Model SnowflakeSource has a new parameter disable_metrics_collection + - Model AzureTableSource has a new parameter disable_metrics_collection + - Model SapOpenHubSource has a new parameter disable_metrics_collection + - Model ParquetSource has a new parameter disable_metrics_collection + - Model ZohoSource has a new parameter disable_metrics_collection + - Model AmazonS3ReadSettings has a new parameter disable_metrics_collection + - Model ExcelSource has a new parameter disable_metrics_collection + - Model WebActivityAuthentication has a new parameter credential + - Model SnowflakeSink has a new parameter disable_metrics_collection + - Model SqlServerLinkedService has a new parameter always_encrypted_settings + - Model GoogleCloudStorageReadSettings has a new parameter disable_metrics_collection + - Added operation group PrivateEndpointConnectionOperations + - Added operation group PrivateLinkResourcesOperations + - Added operation group PrivateEndPointConnectionsOperations + +**Breaking changes** + + - Parameter type of model DataFlow is now required + - Parameter type of model MappingDataFlow is now required + ## 1.1.0 (2021-03-12) **Features** diff --git a/sdk/datafactory/azure-mgmt-datafactory/MANIFEST.in b/sdk/datafactory/azure-mgmt-datafactory/MANIFEST.in index a3cb07df8765..3a9b6517412b 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/MANIFEST.in +++ b/sdk/datafactory/azure-mgmt-datafactory/MANIFEST.in @@ -1,3 +1,4 @@ +include _meta.json recursive-include tests *.py *.yaml include *.md include azure/__init__.py diff --git a/sdk/datafactory/azure-mgmt-datafactory/_meta.json b/sdk/datafactory/azure-mgmt-datafactory/_meta.json new file mode 100644 index 000000000000..ca4e1b09611d --- /dev/null +++ b/sdk/datafactory/azure-mgmt-datafactory/_meta.json @@ -0,0 +1,11 @@ +{ + "autorest": "3.4.5", + "use": [ + "@autorest/python@5.8.4", + "@autorest/modelerfour@4.19.2" + ], + "commit": "406474c3807f2dec010af72286f22aa7a9a54920", + "repository_url": "https://github.com/Azure/azure-rest-api-specs", + "autorest_command": "autorest specification/datafactory/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.8.4 --use=@autorest/modelerfour@4.19.2 --version=3.4.5", + "readme": "specification/datafactory/resource-manager/readme.md" +} \ No newline at end of file diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/_data_factory_management_client.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/_data_factory_management_client.py index ad3cab87fd33..8d4043c2530d 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/_data_factory_management_client.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/_data_factory_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 DataFactoryManagementClientConfiguration from .operations import Operations @@ -35,6 +36,9 @@ from .operations import DataFlowDebugSessionOperations from .operations import ManagedVirtualNetworksOperations from .operations import ManagedPrivateEndpointsOperations +from .operations import PrivateEndPointConnectionsOperations +from .operations import PrivateEndpointConnectionOperations +from .operations import PrivateLinkResourcesOperations from . import models @@ -75,6 +79,12 @@ class DataFactoryManagementClient(object): :vartype managed_virtual_networks: azure.mgmt.datafactory.operations.ManagedVirtualNetworksOperations :ivar managed_private_endpoints: ManagedPrivateEndpointsOperations operations :vartype managed_private_endpoints: azure.mgmt.datafactory.operations.ManagedPrivateEndpointsOperations + :ivar private_end_point_connections: PrivateEndPointConnectionsOperations operations + :vartype private_end_point_connections: azure.mgmt.datafactory.operations.PrivateEndPointConnectionsOperations + :ivar private_endpoint_connection: PrivateEndpointConnectionOperations operations + :vartype private_endpoint_connection: azure.mgmt.datafactory.operations.PrivateEndpointConnectionOperations + :ivar private_link_resources: PrivateLinkResourcesOperations operations + :vartype private_link_resources: azure.mgmt.datafactory.operations.PrivateLinkResourcesOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials.TokenCredential :param subscription_id: The subscription identifier. @@ -98,6 +108,7 @@ def __init__( client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False self._deserialize = Deserializer(client_models) self.operations = Operations( @@ -134,6 +145,30 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.managed_private_endpoints = ManagedPrivateEndpointsOperations( self._client, self._config, self._serialize, self._deserialize) + self.private_end_point_connections = PrivateEndPointConnectionsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.private_endpoint_connection = PrivateEndpointConnectionOperations( + self._client, self._config, self._serialize, self._deserialize) + self.private_link_resources = PrivateLinkResourcesOperations( + 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'), + } + 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/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/_metadata.json b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/_metadata.json new file mode 100644 index 000000000000..dd5e00735108 --- /dev/null +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/_metadata.json @@ -0,0 +1,122 @@ +{ + "chosen_version": "2018-06-01", + "total_api_version_list": ["2018-06-01"], + "client": { + "name": "DataFactoryManagementClient", + "filename": "_data_factory_management_client", + "description": "The Azure Data Factory V2 management API provides a RESTful set of web services that interact with Azure Data Factory V2 services.", + "base_url": "\u0027https://management.azure.com\u0027", + "custom_base_url": null, + "azure_arm": true, + "has_lro_operations": true, + "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\": [\"DataFactoryManagementClientConfiguration\"]}}, \"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\": [\"DataFactoryManagementClientConfiguration\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Optional\"]}, \"azurecore\": {\"azure.core.pipeline.transport\": [\"AsyncHttpResponse\", \"HttpRequest\"]}}}" + }, + "global_parameters": { + "sync": { + "credential": { + "signature": "credential, # type: \"TokenCredential\"", + "description": "Credential needed for the client to connect to Azure.", + "docstring_type": "~azure.core.credentials.TokenCredential", + "required": true + }, + "subscription_id": { + "signature": "subscription_id, # type: str", + "description": "The subscription identifier.", + "docstring_type": "str", + "required": true + } + }, + "async": { + "credential": { + "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: str,", + "description": "The subscription identifier.", + "docstring_type": "str", + "required": true + } + }, + "constant": { + }, + "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, + "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": { + "operations": "Operations", + "factories": "FactoriesOperations", + "exposure_control": "ExposureControlOperations", + "integration_runtimes": "IntegrationRuntimesOperations", + "integration_runtime_object_metadata": "IntegrationRuntimeObjectMetadataOperations", + "integration_runtime_nodes": "IntegrationRuntimeNodesOperations", + "linked_services": "LinkedServicesOperations", + "datasets": "DatasetsOperations", + "pipelines": "PipelinesOperations", + "pipeline_runs": "PipelineRunsOperations", + "activity_runs": "ActivityRunsOperations", + "triggers": "TriggersOperations", + "trigger_runs": "TriggerRunsOperations", + "data_flows": "DataFlowsOperations", + "data_flow_debug_session": "DataFlowDebugSessionOperations", + "managed_virtual_networks": "ManagedVirtualNetworksOperations", + "managed_private_endpoints": "ManagedPrivateEndpointsOperations", + "private_end_point_connections": "PrivateEndPointConnectionsOperations", + "private_endpoint_connection": "PrivateEndpointConnectionOperations", + "private_link_resources": "PrivateLinkResourcesOperations" + } +} \ No newline at end of file diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/_version.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/_version.py index 59deb8c7263b..48944bf3938a 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/_version.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "1.1.0" +VERSION = "2.0.0" diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/_data_factory_management_client.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/_data_factory_management_client.py index b7e631bb8c8f..b0adc1172540 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/_data_factory_management_client.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/_data_factory_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 @@ -33,6 +34,9 @@ from .operations import DataFlowDebugSessionOperations from .operations import ManagedVirtualNetworksOperations from .operations import ManagedPrivateEndpointsOperations +from .operations import PrivateEndPointConnectionsOperations +from .operations import PrivateEndpointConnectionOperations +from .operations import PrivateLinkResourcesOperations from .. import models @@ -73,6 +77,12 @@ class DataFactoryManagementClient(object): :vartype managed_virtual_networks: azure.mgmt.datafactory.aio.operations.ManagedVirtualNetworksOperations :ivar managed_private_endpoints: ManagedPrivateEndpointsOperations operations :vartype managed_private_endpoints: azure.mgmt.datafactory.aio.operations.ManagedPrivateEndpointsOperations + :ivar private_end_point_connections: PrivateEndPointConnectionsOperations operations + :vartype private_end_point_connections: azure.mgmt.datafactory.aio.operations.PrivateEndPointConnectionsOperations + :ivar private_endpoint_connection: PrivateEndpointConnectionOperations operations + :vartype private_endpoint_connection: azure.mgmt.datafactory.aio.operations.PrivateEndpointConnectionOperations + :ivar private_link_resources: PrivateLinkResourcesOperations operations + :vartype private_link_resources: azure.mgmt.datafactory.aio.operations.PrivateLinkResourcesOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials_async.AsyncTokenCredential :param subscription_id: The subscription identifier. @@ -95,6 +105,7 @@ def __init__( client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False self._deserialize = Deserializer(client_models) self.operations = Operations( @@ -131,6 +142,29 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.managed_private_endpoints = ManagedPrivateEndpointsOperations( self._client, self._config, self._serialize, self._deserialize) + self.private_end_point_connections = PrivateEndPointConnectionsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.private_endpoint_connection = PrivateEndpointConnectionOperations( + self._client, self._config, self._serialize, self._deserialize) + self.private_link_resources = PrivateLinkResourcesOperations( + 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'), + } + 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/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/__init__.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/__init__.py index 95d268579097..c1da8c996a37 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/__init__.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/__init__.py @@ -23,6 +23,9 @@ from ._data_flow_debug_session_operations import DataFlowDebugSessionOperations from ._managed_virtual_networks_operations import ManagedVirtualNetworksOperations from ._managed_private_endpoints_operations import ManagedPrivateEndpointsOperations +from ._private_end_point_connections_operations import PrivateEndPointConnectionsOperations +from ._private_endpoint_connection_operations import PrivateEndpointConnectionOperations +from ._private_link_resources_operations import PrivateLinkResourcesOperations __all__ = [ 'Operations', @@ -42,4 +45,7 @@ 'DataFlowDebugSessionOperations', 'ManagedVirtualNetworksOperations', 'ManagedPrivateEndpointsOperations', + 'PrivateEndPointConnectionsOperations', + 'PrivateEndpointConnectionOperations', + 'PrivateLinkResourcesOperations', ] diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_activity_runs_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_activity_runs_operations.py index 1e1a2747cead..218ae0a7fe2a 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_activity_runs_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_activity_runs_operations.py @@ -46,7 +46,7 @@ async def query_by_pipeline_run( factory_name: str, run_id: str, filter_parameters: "_models.RunFilterParameters", - **kwargs + **kwargs: Any ) -> "_models.ActivityRunsQueryResponse": """Query activity runs based on input filter conditions. diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_data_flow_debug_session_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_data_flow_debug_session_operations.py index 3501e1ba3e8b..db31ffe70764 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_data_flow_debug_session_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_data_flow_debug_session_operations.py @@ -48,7 +48,7 @@ async def _create_initial( resource_group_name: str, factory_name: str, request: "_models.CreateDataFlowDebugSessionRequest", - **kwargs + **kwargs: Any ) -> Optional["_models.CreateDataFlowDebugSessionResponse"]: cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.CreateDataFlowDebugSessionResponse"]] error_map = { @@ -107,7 +107,7 @@ async def begin_create( resource_group_name: str, factory_name: str, request: "_models.CreateDataFlowDebugSessionRequest", - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.CreateDataFlowDebugSessionResponse"]: """Creates a data flow debug session. @@ -119,8 +119,8 @@ async def begin_create( :type request: ~azure.mgmt.datafactory.models.CreateDataFlowDebugSessionRequest :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 CreateDataFlowDebugSessionResponse or the result of cls(response) @@ -177,7 +177,7 @@ def query_by_factory( self, resource_group_name: str, factory_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.QueryDataFlowDebugSessionsResponse"]: """Query all active data flow debug sessions. @@ -252,7 +252,7 @@ async def add_data_flow( resource_group_name: str, factory_name: str, request: "_models.DataFlowDebugPackage", - **kwargs + **kwargs: Any ) -> "_models.AddDataFlowToDebugSessionResponse": """Add a data flow into debug session. @@ -318,7 +318,7 @@ async def delete( resource_group_name: str, factory_name: str, request: "_models.DeleteDataFlowDebugSessionRequest", - **kwargs + **kwargs: Any ) -> None: """Deletes a data flow debug session. @@ -381,7 +381,7 @@ async def _execute_command_initial( resource_group_name: str, factory_name: str, request: "_models.DataFlowDebugCommandRequest", - **kwargs + **kwargs: Any ) -> Optional["_models.DataFlowDebugCommandResponse"]: cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.DataFlowDebugCommandResponse"]] error_map = { @@ -440,7 +440,7 @@ async def begin_execute_command( resource_group_name: str, factory_name: str, request: "_models.DataFlowDebugCommandRequest", - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.DataFlowDebugCommandResponse"]: """Execute a data flow debug command. @@ -452,8 +452,8 @@ async def begin_execute_command( :type request: ~azure.mgmt.datafactory.models.DataFlowDebugCommandRequest :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 DataFlowDebugCommandResponse or the result of cls(response) diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_data_flows_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_data_flows_operations.py index 543b927eddd3..e1ef45dc21e9 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_data_flows_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_data_flows_operations.py @@ -48,7 +48,7 @@ async def create_or_update( data_flow_name: str, data_flow: "_models.DataFlowResource", if_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> "_models.DataFlowResource": """Creates or updates a data flow. @@ -123,7 +123,7 @@ async def get( factory_name: str, data_flow_name: str, if_none_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> "_models.DataFlowResource": """Gets a data flow. @@ -190,7 +190,7 @@ async def delete( resource_group_name: str, factory_name: str, data_flow_name: str, - **kwargs + **kwargs: Any ) -> None: """Deletes a data flow. @@ -248,7 +248,7 @@ def list_by_factory( self, resource_group_name: str, factory_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.DataFlowListResponse"]: """Lists data flows. diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_datasets_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_datasets_operations.py index d624050ab9a4..4e5c8c3a5b7e 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_datasets_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_datasets_operations.py @@ -45,7 +45,7 @@ def list_by_factory( self, resource_group_name: str, factory_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.DatasetListResponse"]: """Lists datasets. @@ -122,7 +122,7 @@ async def create_or_update( dataset_name: str, dataset: "_models.DatasetResource", if_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> "_models.DatasetResource": """Creates or updates a dataset. @@ -197,7 +197,7 @@ async def get( factory_name: str, dataset_name: str, if_none_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> Optional["_models.DatasetResource"]: """Gets a dataset. @@ -266,7 +266,7 @@ async def delete( resource_group_name: str, factory_name: str, dataset_name: str, - **kwargs + **kwargs: Any ) -> None: """Deletes a dataset. diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_exposure_control_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_exposure_control_operations.py index 31c30d97f79b..9ea521937af2 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_exposure_control_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_exposure_control_operations.py @@ -44,7 +44,7 @@ async def get_feature_value( self, location_id: str, exposure_control_request: "_models.ExposureControlRequest", - **kwargs + **kwargs: Any ) -> "_models.ExposureControlResponse": """Get exposure control feature for specific location. @@ -107,7 +107,7 @@ async def get_feature_value_by_factory( resource_group_name: str, factory_name: str, exposure_control_request: "_models.ExposureControlRequest", - **kwargs + **kwargs: Any ) -> "_models.ExposureControlResponse": """Get exposure control feature for specific factory. @@ -173,7 +173,7 @@ async def query_feature_values_by_factory( resource_group_name: str, factory_name: str, exposure_control_batch_request: "_models.ExposureControlBatchRequest", - **kwargs + **kwargs: Any ) -> "_models.ExposureControlBatchResponse": """Get list of exposure control features for specific factory. diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_factories_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_factories_operations.py index c4bde5d0d9de..04705d6abc97 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_factories_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_factories_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.FactoryListResponse"]: """Lists factories under the specified subscription. @@ -111,7 +111,7 @@ async def configure_factory_repo( self, location_id: str, factory_repo_update: "_models.FactoryRepoUpdate", - **kwargs + **kwargs: Any ) -> "_models.Factory": """Updates a factory's repo information. @@ -172,7 +172,7 @@ async def configure_factory_repo( def list_by_resource_group( self, resource_group_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.FactoryListResponse"]: """Lists factories. @@ -245,7 +245,7 @@ async def create_or_update( factory_name: str, factory: "_models.Factory", if_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> "_models.Factory": """Creates or updates a factory. @@ -316,7 +316,7 @@ async def update( resource_group_name: str, factory_name: str, factory_update_parameters: "_models.FactoryUpdateParameters", - **kwargs + **kwargs: Any ) -> "_models.Factory": """Updates a factory. @@ -382,7 +382,7 @@ async def get( resource_group_name: str, factory_name: str, if_none_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> Optional["_models.Factory"]: """Gets a factory. @@ -447,7 +447,7 @@ async def delete( self, resource_group_name: str, factory_name: str, - **kwargs + **kwargs: Any ) -> None: """Deletes a factory. @@ -503,7 +503,7 @@ async def get_git_hub_access_token( resource_group_name: str, factory_name: str, git_hub_access_token_request: "_models.GitHubAccessTokenRequest", - **kwargs + **kwargs: Any ) -> "_models.GitHubAccessTokenResponse": """Get GitHub Access Token. @@ -569,7 +569,7 @@ async def get_data_plane_access( resource_group_name: str, factory_name: str, policy: "_models.UserAccessPolicy", - **kwargs + **kwargs: Any ) -> "_models.AccessPolicyResponse": """Get Data Plane access. diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_integration_runtime_nodes_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_integration_runtime_nodes_operations.py index c1f343c1d878..ad2c99d99edb 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_integration_runtime_nodes_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_integration_runtime_nodes_operations.py @@ -46,7 +46,7 @@ async def get( factory_name: str, integration_runtime_name: str, node_name: str, - **kwargs + **kwargs: Any ) -> "_models.SelfHostedIntegrationRuntimeNode": """Gets a self-hosted integration runtime node. @@ -112,7 +112,7 @@ async def delete( factory_name: str, integration_runtime_name: str, node_name: str, - **kwargs + **kwargs: Any ) -> None: """Deletes a self-hosted integration runtime node. @@ -176,7 +176,7 @@ async def update( integration_runtime_name: str, node_name: str, update_integration_runtime_node_request: "_models.UpdateIntegrationRuntimeNodeRequest", - **kwargs + **kwargs: Any ) -> "_models.SelfHostedIntegrationRuntimeNode": """Updates a self-hosted integration runtime node. @@ -250,7 +250,7 @@ async def get_ip_address( factory_name: str, integration_runtime_name: str, node_name: str, - **kwargs + **kwargs: Any ) -> "_models.IntegrationRuntimeNodeIpAddress": """Get the IP address of self-hosted integration runtime node. diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_integration_runtime_object_metadata_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_integration_runtime_object_metadata_operations.py index a89e3d327ed9..c121228898d3 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_integration_runtime_object_metadata_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_integration_runtime_object_metadata_operations.py @@ -47,7 +47,7 @@ async def _refresh_initial( resource_group_name: str, factory_name: str, integration_runtime_name: str, - **kwargs + **kwargs: Any ) -> Optional["_models.SsisObjectMetadataStatusResponse"]: cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.SsisObjectMetadataStatusResponse"]] error_map = { @@ -98,7 +98,7 @@ async def begin_refresh( resource_group_name: str, factory_name: str, integration_runtime_name: str, - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.SsisObjectMetadataStatusResponse"]: """Refresh a SSIS integration runtime object metadata. @@ -110,8 +110,8 @@ async def begin_refresh( :type integration_runtime_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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 SsisObjectMetadataStatusResponse or the result of cls(response) @@ -171,7 +171,7 @@ async def get( factory_name: str, integration_runtime_name: str, get_metadata_request: Optional["_models.GetSsisObjectMetadataRequest"] = None, - **kwargs + **kwargs: Any ) -> "_models.SsisObjectMetadataListResponse": """Get a SSIS integration runtime object metadata by specified path. The return is pageable metadata list. diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_integration_runtimes_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_integration_runtimes_operations.py index 1797baefb011..cfe891bfaed7 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_integration_runtimes_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_integration_runtimes_operations.py @@ -47,7 +47,7 @@ def list_by_factory( self, resource_group_name: str, factory_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.IntegrationRuntimeListResponse"]: """Lists integration runtimes. @@ -124,7 +124,7 @@ async def create_or_update( integration_runtime_name: str, integration_runtime: "_models.IntegrationRuntimeResource", if_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> "_models.IntegrationRuntimeResource": """Creates or updates an integration runtime. @@ -199,7 +199,7 @@ async def get( factory_name: str, integration_runtime_name: str, if_none_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> Optional["_models.IntegrationRuntimeResource"]: """Gets an integration runtime. @@ -270,7 +270,7 @@ async def update( factory_name: str, integration_runtime_name: str, update_integration_runtime_request: "_models.UpdateIntegrationRuntimeRequest", - **kwargs + **kwargs: Any ) -> "_models.IntegrationRuntimeResource": """Updates an integration runtime. @@ -339,7 +339,7 @@ async def delete( resource_group_name: str, factory_name: str, integration_runtime_name: str, - **kwargs + **kwargs: Any ) -> None: """Deletes an integration runtime. @@ -398,7 +398,7 @@ async def get_status( resource_group_name: str, factory_name: str, integration_runtime_name: str, - **kwargs + **kwargs: Any ) -> "_models.IntegrationRuntimeStatusResponse": """Gets detailed status information for an integration runtime. @@ -460,7 +460,7 @@ async def get_connection_info( resource_group_name: str, factory_name: str, integration_runtime_name: str, - **kwargs + **kwargs: Any ) -> "_models.IntegrationRuntimeConnectionInfo": """Gets the on-premises integration runtime connection information for encrypting the on-premises data source credentials. @@ -524,7 +524,7 @@ async def regenerate_auth_key( factory_name: str, integration_runtime_name: str, regenerate_key_parameters: "_models.IntegrationRuntimeRegenerateKeyParameters", - **kwargs + **kwargs: Any ) -> "_models.IntegrationRuntimeAuthKeys": """Regenerates the authentication key for an integration runtime. @@ -594,7 +594,7 @@ async def list_auth_keys( resource_group_name: str, factory_name: str, integration_runtime_name: str, - **kwargs + **kwargs: Any ) -> "_models.IntegrationRuntimeAuthKeys": """Retrieves the authentication keys for an integration runtime. @@ -656,7 +656,7 @@ async def _start_initial( resource_group_name: str, factory_name: str, integration_runtime_name: str, - **kwargs + **kwargs: Any ) -> Optional["_models.IntegrationRuntimeStatusResponse"]: cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.IntegrationRuntimeStatusResponse"]] error_map = { @@ -707,7 +707,7 @@ async def begin_start( resource_group_name: str, factory_name: str, integration_runtime_name: str, - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.IntegrationRuntimeStatusResponse"]: """Starts a ManagedReserved type integration runtime. @@ -719,8 +719,8 @@ async def begin_start( :type integration_runtime_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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 IntegrationRuntimeStatusResponse or the result of cls(response) @@ -779,7 +779,7 @@ async def _stop_initial( resource_group_name: str, factory_name: str, integration_runtime_name: str, - **kwargs + **kwargs: Any ) -> None: cls = kwargs.pop('cls', None) # type: ClsType[None] error_map = { @@ -825,7 +825,7 @@ async def begin_stop( resource_group_name: str, factory_name: str, integration_runtime_name: str, - **kwargs + **kwargs: Any ) -> AsyncLROPoller[None]: """Stops a ManagedReserved type integration runtime. @@ -837,8 +837,8 @@ async def begin_stop( :type integration_runtime_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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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) @@ -894,7 +894,7 @@ async def sync_credentials( resource_group_name: str, factory_name: str, integration_runtime_name: str, - **kwargs + **kwargs: Any ) -> None: """Force the integration runtime to synchronize credentials across integration runtime nodes, and this will override the credentials across all worker nodes with those available on the @@ -956,7 +956,7 @@ async def get_monitoring_data( resource_group_name: str, factory_name: str, integration_runtime_name: str, - **kwargs + **kwargs: Any ) -> "_models.IntegrationRuntimeMonitoringData": """Get the integration runtime monitoring data, which includes the monitor data for all the nodes under this integration runtime. @@ -1019,7 +1019,7 @@ async def upgrade( resource_group_name: str, factory_name: str, integration_runtime_name: str, - **kwargs + **kwargs: Any ) -> None: """Upgrade self-hosted integration runtime to latest version if availability. @@ -1079,7 +1079,7 @@ async def remove_links( factory_name: str, integration_runtime_name: str, linked_integration_runtime_request: "_models.LinkedIntegrationRuntimeRequest", - **kwargs + **kwargs: Any ) -> None: """Remove all linked integration runtimes under specific data factory in a self-hosted integration runtime. @@ -1148,7 +1148,7 @@ async def create_linked_integration_runtime( factory_name: str, integration_runtime_name: str, create_linked_integration_runtime_request: "_models.CreateLinkedIntegrationRuntimeRequest", - **kwargs + **kwargs: Any ) -> "_models.IntegrationRuntimeStatusResponse": """Create a linked integration runtime entry in a shared integration runtime. diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_linked_services_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_linked_services_operations.py index ebc43b4155e2..d174417dc70e 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_linked_services_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_linked_services_operations.py @@ -45,7 +45,7 @@ def list_by_factory( self, resource_group_name: str, factory_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.LinkedServiceListResponse"]: """Lists linked services. @@ -122,7 +122,7 @@ async def create_or_update( linked_service_name: str, linked_service: "_models.LinkedServiceResource", if_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> "_models.LinkedServiceResource": """Creates or updates a linked service. @@ -197,7 +197,7 @@ async def get( factory_name: str, linked_service_name: str, if_none_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> Optional["_models.LinkedServiceResource"]: """Gets a linked service. @@ -267,7 +267,7 @@ async def delete( resource_group_name: str, factory_name: str, linked_service_name: str, - **kwargs + **kwargs: Any ) -> None: """Deletes a linked service. diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_managed_private_endpoints_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_managed_private_endpoints_operations.py index 7a11548e216d..944fbb103654 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_managed_private_endpoints_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_managed_private_endpoints_operations.py @@ -46,7 +46,7 @@ def list_by_factory( resource_group_name: str, factory_name: str, managed_virtual_network_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.ManagedPrivateEndpointListResponse"]: """Lists managed private endpoints. @@ -127,7 +127,7 @@ async def create_or_update( managed_private_endpoint_name: str, managed_private_endpoint: "_models.ManagedPrivateEndpointResource", if_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> "_models.ManagedPrivateEndpointResource": """Creates or updates a managed private endpoint. @@ -206,7 +206,7 @@ async def get( managed_virtual_network_name: str, managed_private_endpoint_name: str, if_none_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> "_models.ManagedPrivateEndpointResource": """Gets a managed private endpoint. @@ -278,7 +278,7 @@ async def delete( factory_name: str, managed_virtual_network_name: str, managed_private_endpoint_name: str, - **kwargs + **kwargs: Any ) -> None: """Deletes a managed private endpoint. diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_managed_virtual_networks_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_managed_virtual_networks_operations.py index 78249f180b75..4a760a88b537 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_managed_virtual_networks_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_managed_virtual_networks_operations.py @@ -45,7 +45,7 @@ def list_by_factory( self, resource_group_name: str, factory_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.ManagedVirtualNetworkListResponse"]: """Lists managed Virtual Networks. @@ -122,7 +122,7 @@ async def create_or_update( managed_virtual_network_name: str, managed_virtual_network: "_models.ManagedVirtualNetworkResource", if_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> "_models.ManagedVirtualNetworkResource": """Creates or updates a managed Virtual Network. @@ -197,7 +197,7 @@ async def get( factory_name: str, managed_virtual_network_name: str, if_none_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> "_models.ManagedVirtualNetworkResource": """Gets a managed Virtual Network. diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_operations.py index 4db0a04c5770..a829cafd0bfa 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.OperationListResponse"]: """Lists the available Azure Data Factory API operations. diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_pipeline_runs_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_pipeline_runs_operations.py index cf4320c7e29e..a6c0ff7add0a 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_pipeline_runs_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_pipeline_runs_operations.py @@ -45,7 +45,7 @@ async def query_by_factory( resource_group_name: str, factory_name: str, filter_parameters: "_models.RunFilterParameters", - **kwargs + **kwargs: Any ) -> "_models.PipelineRunsQueryResponse": """Query pipeline runs in the factory based on input filter conditions. @@ -111,7 +111,7 @@ async def get( resource_group_name: str, factory_name: str, run_id: str, - **kwargs + **kwargs: Any ) -> "_models.PipelineRun": """Get a pipeline run by its run ID. @@ -174,7 +174,7 @@ async def cancel( factory_name: str, run_id: str, is_recursive: Optional[bool] = None, - **kwargs + **kwargs: Any ) -> None: """Cancel a pipeline run by its run ID. diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_pipelines_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_pipelines_operations.py index 0a2ecc0e072c..fb22ca9c161e 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_pipelines_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_pipelines_operations.py @@ -45,7 +45,7 @@ def list_by_factory( self, resource_group_name: str, factory_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.PipelineListResponse"]: """Lists pipelines. @@ -122,7 +122,7 @@ async def create_or_update( pipeline_name: str, pipeline: "_models.PipelineResource", if_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> "_models.PipelineResource": """Creates or updates a pipeline. @@ -197,7 +197,7 @@ async def get( factory_name: str, pipeline_name: str, if_none_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> Optional["_models.PipelineResource"]: """Gets a pipeline. @@ -266,7 +266,7 @@ async def delete( resource_group_name: str, factory_name: str, pipeline_name: str, - **kwargs + **kwargs: Any ) -> None: """Deletes a pipeline. @@ -329,8 +329,8 @@ async def create_run( is_recovery: Optional[bool] = None, start_activity_name: Optional[str] = None, start_from_failure: Optional[bool] = None, - parameters: Optional[Dict[str, object]] = None, - **kwargs + parameters: Optional[Dict[str, Any]] = None, + **kwargs: Any ) -> "_models.CreateRunResponse": """Creates a run of a pipeline. @@ -354,7 +354,7 @@ async def create_run( :type start_from_failure: bool :param parameters: Parameters of the pipeline run. These parameters will be used only if the runId is not specified. - :type parameters: dict[str, object] + :type parameters: dict[str, any] :keyword callable cls: A custom type or function that will be passed the direct response :return: CreateRunResponse, or the result of cls(response) :rtype: ~azure.mgmt.datafactory.models.CreateRunResponse diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_private_end_point_connections_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_private_end_point_connections_operations.py new file mode 100644 index 000000000000..e49a3ca3e19e --- /dev/null +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_private_end_point_connections_operations.py @@ -0,0 +1,116 @@ +# 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 PrivateEndPointConnectionsOperations: + """PrivateEndPointConnectionsOperations 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.datafactory.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_factory( + self, + resource_group_name: str, + factory_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.PrivateEndpointConnectionListResponse"]: + """Lists Private endpoint connections. + + :param resource_group_name: The resource group name. + :type resource_group_name: str + :param factory_name: The factory name. + :type factory_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PrivateEndpointConnectionListResponse or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.datafactory.models.PrivateEndpointConnectionListResponse] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionListResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + 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_factory.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'factoryName': self._serialize.url("factory_name", factory_name, 'str', max_length=63, min_length=3, 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('PrivateEndpointConnectionListResponse', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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_factory.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/privateEndPointConnections'} # type: ignore diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_private_endpoint_connection_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_private_endpoint_connection_operations.py new file mode 100644 index 000000000000..db02fd36b659 --- /dev/null +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_private_endpoint_connection_operations.py @@ -0,0 +1,245 @@ +# 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, Callable, Dict, Generic, Optional, TypeVar +import warnings + +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 PrivateEndpointConnectionOperations: + """PrivateEndpointConnectionOperations 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.datafactory.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 + + async def create_or_update( + self, + resource_group_name: str, + factory_name: str, + private_endpoint_connection_name: str, + private_endpoint_wrapper: "_models.PrivateLinkConnectionApprovalRequestResource", + if_match: Optional[str] = None, + **kwargs: Any + ) -> "_models.PrivateEndpointConnectionResource": + """Approves or rejects a private endpoint connection. + + :param resource_group_name: The resource group name. + :type resource_group_name: str + :param factory_name: The factory name. + :type factory_name: str + :param private_endpoint_connection_name: The private endpoint connection name. + :type private_endpoint_connection_name: str + :param private_endpoint_wrapper: + :type private_endpoint_wrapper: ~azure.mgmt.datafactory.models.PrivateLinkConnectionApprovalRequestResource + :param if_match: ETag of the private endpoint connection entity. Should only be specified for + update, for which it should match existing entity or can be * for unconditional update. + :type if_match: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateEndpointConnectionResource, or the result of cls(response) + :rtype: ~azure.mgmt.datafactory.models.PrivateEndpointConnectionResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'factoryName': self._serialize.url("factory_name", factory_name, 'str', max_length=63, min_length=3, pattern=r'^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_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] + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + 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(private_endpoint_wrapper, 'PrivateLinkConnectionApprovalRequestResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateEndpointConnectionResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def get( + self, + resource_group_name: str, + factory_name: str, + private_endpoint_connection_name: str, + if_none_match: Optional[str] = None, + **kwargs: Any + ) -> "_models.PrivateEndpointConnectionResource": + """Gets a private endpoint connection. + + :param resource_group_name: The resource group name. + :type resource_group_name: str + :param factory_name: The factory name. + :type factory_name: str + :param private_endpoint_connection_name: The private endpoint connection name. + :type private_endpoint_connection_name: str + :param if_none_match: ETag of the private endpoint connection entity. Should only be specified + for get. If the ETag matches the existing entity tag, or if * was provided, then no content + will be returned. + :type if_none_match: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateEndpointConnectionResource, or the result of cls(response) + :rtype: ~azure.mgmt.datafactory.models.PrivateEndpointConnectionResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'factoryName': self._serialize.url("factory_name", factory_name, 'str', max_length=63, min_length=3, pattern=r'^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_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] + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + 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('PrivateEndpointConnectionResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def delete( + self, + resource_group_name: str, + factory_name: str, + private_endpoint_connection_name: str, + **kwargs: Any + ) -> None: + """Deletes a private endpoint connection. + + :param resource_group_name: The resource group name. + :type resource_group_name: str + :param factory_name: The factory name. + :type factory_name: str + :param private_endpoint_connection_name: The private endpoint connection name. + :type private_endpoint_connection_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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 = "2018-06-01" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'factoryName': self._serialize.url("factory_name", factory_name, 'str', max_length=63, min_length=3, pattern=r'^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_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['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, 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_private_link_resources_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_private_link_resources_operations.py new file mode 100644 index 000000000000..17f1abad0051 --- /dev/null +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_private_link_resources_operations.py @@ -0,0 +1,99 @@ +# 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, Callable, Dict, Generic, Optional, TypeVar +import warnings + +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 PrivateLinkResourcesOperations: + """PrivateLinkResourcesOperations 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.datafactory.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 + + async def get( + self, + resource_group_name: str, + factory_name: str, + **kwargs: Any + ) -> "_models.PrivateLinkResourcesWrapper": + """Gets the private link resources. + + :param resource_group_name: The resource group name. + :type resource_group_name: str + :param factory_name: The factory name. + :type factory_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateLinkResourcesWrapper, or the result of cls(response) + :rtype: ~azure.mgmt.datafactory.models.PrivateLinkResourcesWrapper + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourcesWrapper"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'factoryName': self._serialize.url("factory_name", factory_name, 'str', max_length=63, min_length=3, 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('PrivateLinkResourcesWrapper', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/privateLinkResources'} # type: ignore diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_trigger_runs_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_trigger_runs_operations.py index c16445e23e02..c43e180febb9 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_trigger_runs_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_trigger_runs_operations.py @@ -46,7 +46,7 @@ async def rerun( factory_name: str, trigger_name: str, run_id: str, - **kwargs + **kwargs: Any ) -> None: """Rerun single trigger instance by runId. @@ -109,7 +109,7 @@ async def cancel( factory_name: str, trigger_name: str, run_id: str, - **kwargs + **kwargs: Any ) -> None: """Cancel a single trigger instance by runId. @@ -171,7 +171,7 @@ async def query_by_factory( resource_group_name: str, factory_name: str, filter_parameters: "_models.RunFilterParameters", - **kwargs + **kwargs: Any ) -> "_models.TriggerRunsQueryResponse": """Query trigger runs. diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_triggers_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_triggers_operations.py index 24512c88bbbd..1a2c6cc2a22f 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_triggers_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/aio/operations/_triggers_operations.py @@ -47,7 +47,7 @@ def list_by_factory( self, resource_group_name: str, factory_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.TriggerListResponse"]: """Lists triggers. @@ -122,7 +122,7 @@ async def query_by_factory( resource_group_name: str, factory_name: str, filter_parameters: "_models.TriggerFilterParameters", - **kwargs + **kwargs: Any ) -> "_models.TriggerQueryResponse": """Query triggers. @@ -190,7 +190,7 @@ async def create_or_update( trigger_name: str, trigger: "_models.TriggerResource", if_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> "_models.TriggerResource": """Creates or updates a trigger. @@ -265,7 +265,7 @@ async def get( factory_name: str, trigger_name: str, if_none_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> Optional["_models.TriggerResource"]: """Gets a trigger. @@ -334,7 +334,7 @@ async def delete( resource_group_name: str, factory_name: str, trigger_name: str, - **kwargs + **kwargs: Any ) -> None: """Deletes a trigger. @@ -393,7 +393,7 @@ async def _subscribe_to_events_initial( resource_group_name: str, factory_name: str, trigger_name: str, - **kwargs + **kwargs: Any ) -> Optional["_models.TriggerSubscriptionOperationStatus"]: cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.TriggerSubscriptionOperationStatus"]] error_map = { @@ -444,7 +444,7 @@ async def begin_subscribe_to_events( resource_group_name: str, factory_name: str, trigger_name: str, - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.TriggerSubscriptionOperationStatus"]: """Subscribe event trigger to events. @@ -456,8 +456,8 @@ async def begin_subscribe_to_events( :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 TriggerSubscriptionOperationStatus or the result of cls(response) @@ -516,7 +516,7 @@ async def get_event_subscription_status( resource_group_name: str, factory_name: str, trigger_name: str, - **kwargs + **kwargs: Any ) -> "_models.TriggerSubscriptionOperationStatus": """Get a trigger's event subscription status. @@ -578,7 +578,7 @@ async def _unsubscribe_from_events_initial( resource_group_name: str, factory_name: str, trigger_name: str, - **kwargs + **kwargs: Any ) -> Optional["_models.TriggerSubscriptionOperationStatus"]: cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.TriggerSubscriptionOperationStatus"]] error_map = { @@ -629,7 +629,7 @@ async def begin_unsubscribe_from_events( resource_group_name: str, factory_name: str, trigger_name: str, - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.TriggerSubscriptionOperationStatus"]: """Unsubscribe event trigger from events. @@ -641,8 +641,8 @@ async def begin_unsubscribe_from_events( :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 TriggerSubscriptionOperationStatus or the result of cls(response) @@ -701,7 +701,7 @@ async def _start_initial( resource_group_name: str, factory_name: str, trigger_name: str, - **kwargs + **kwargs: Any ) -> None: cls = kwargs.pop('cls', None) # type: ClsType[None] error_map = { @@ -747,7 +747,7 @@ async def begin_start( resource_group_name: str, factory_name: str, trigger_name: str, - **kwargs + **kwargs: Any ) -> AsyncLROPoller[None]: """Starts a trigger. @@ -759,8 +759,8 @@ async def begin_start( :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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) @@ -816,7 +816,7 @@ async def _stop_initial( resource_group_name: str, factory_name: str, trigger_name: str, - **kwargs + **kwargs: Any ) -> None: cls = kwargs.pop('cls', None) # type: ClsType[None] error_map = { @@ -862,7 +862,7 @@ async def begin_stop( resource_group_name: str, factory_name: str, trigger_name: str, - **kwargs + **kwargs: Any ) -> AsyncLROPoller[None]: """Stops a trigger. @@ -874,8 +874,8 @@ async def begin_stop( :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/models/__init__.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/models/__init__.py index e6903a32cddc..ff60f03feff6 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/models/__init__.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/models/__init__.py @@ -29,6 +29,7 @@ from ._models_py3 import AmazonS3Location from ._models_py3 import AmazonS3ReadSettings from ._models_py3 import AppendVariableActivity + from ._models_py3 import ArmIdWrapper from ._models_py3 import AvroDataset from ._models_py3 import AvroFormat from ._models_py3 import AvroSink @@ -156,6 +157,9 @@ from ._models_py3 import CreateDataFlowDebugSessionResponse from ._models_py3 import CreateLinkedIntegrationRuntimeRequest from ._models_py3 import CreateRunResponse + from ._models_py3 import Credential + from ._models_py3 import CredentialReference + from ._models_py3 import CredentialResource from ._models_py3 import CustomActivity from ._models_py3 import CustomActivityReferenceObject from ._models_py3 import CustomDataSourceLinkedService @@ -276,6 +280,7 @@ from ._models_py3 import GetSsisObjectMetadataRequest from ._models_py3 import GitHubAccessTokenRequest from ._models_py3 import GitHubAccessTokenResponse + from ._models_py3 import GitHubClientSecret from ._models_py3 import GlobalParameterSpecification from ._models_py3 import GoogleAdWordsLinkedService from ._models_py3 import GoogleAdWordsObjectDataset @@ -370,6 +375,7 @@ from ._models_py3 import MagentoLinkedService from ._models_py3 import MagentoObjectDataset from ._models_py3 import MagentoSource + from ._models_py3 import ManagedIdentityCredential from ._models_py3 import ManagedIntegrationRuntime from ._models_py3 import ManagedIntegrationRuntimeError from ._models_py3 import ManagedIntegrationRuntimeNode @@ -389,12 +395,14 @@ from ._models_py3 import MarketoLinkedService from ._models_py3 import MarketoObjectDataset from ._models_py3 import MarketoSource + from ._models_py3 import MetadataItem from ._models_py3 import MicrosoftAccessLinkedService from ._models_py3 import MicrosoftAccessSink from ._models_py3 import MicrosoftAccessSource from ._models_py3 import MicrosoftAccessTableDataset from ._models_py3 import MongoDbAtlasCollectionDataset from ._models_py3 import MongoDbAtlasLinkedService + from ._models_py3 import MongoDbAtlasSink from ._models_py3 import MongoDbAtlasSource from ._models_py3 import MongoDbCollectionDataset from ._models_py3 import MongoDbCursorMethodsProperties @@ -402,6 +410,7 @@ from ._models_py3 import MongoDbSource from ._models_py3 import MongoDbV2CollectionDataset from ._models_py3 import MongoDbV2LinkedService + from ._models_py3 import MongoDbV2Sink from ._models_py3 import MongoDbV2Source from ._models_py3 import MultiplePipelineTrigger from ._models_py3 import MySqlLinkedService @@ -474,6 +483,14 @@ from ._models_py3 import PrestoLinkedService from ._models_py3 import PrestoObjectDataset from ._models_py3 import PrestoSource + from ._models_py3 import PrivateEndpointConnectionListResponse + from ._models_py3 import PrivateEndpointConnectionResource + from ._models_py3 import PrivateLinkConnectionApprovalRequest + from ._models_py3 import PrivateLinkConnectionApprovalRequestResource + from ._models_py3 import PrivateLinkConnectionState + from ._models_py3 import PrivateLinkResource + from ._models_py3 import PrivateLinkResourceProperties + from ._models_py3 import PrivateLinkResourcesWrapper from ._models_py3 import QueryDataFlowDebugSessionsResponse from ._models_py3 import QuickBooksLinkedService from ._models_py3 import QuickBooksObjectDataset @@ -484,6 +501,7 @@ from ._models_py3 import RedshiftUnloadSettings from ._models_py3 import RelationalSource from ._models_py3 import RelationalTableDataset + from ._models_py3 import RemotePrivateEndpointConnection from ._models_py3 import RerunTumblingWindowTrigger from ._models_py3 import Resource from ._models_py3 import ResponsysLinkedService @@ -548,6 +566,7 @@ from ._models_py3 import ServiceNowLinkedService from ._models_py3 import ServiceNowObjectDataset from ._models_py3 import ServiceNowSource + from ._models_py3 import ServicePrincipalCredential from ._models_py3 import SetVariableActivity from ._models_py3 import SftpLocation from ._models_py3 import SftpReadSettings @@ -569,6 +588,7 @@ from ._models_py3 import SparkLinkedService from ._models_py3 import SparkObjectDataset from ._models_py3 import SparkSource + from ._models_py3 import SqlAlwaysEncryptedProperties from ._models_py3 import SqlDWSink from ._models_py3 import SqlDWSource from ._models_py3 import SqlMISink @@ -683,6 +703,7 @@ from ._models import AmazonS3Location # type: ignore from ._models import AmazonS3ReadSettings # type: ignore from ._models import AppendVariableActivity # type: ignore + from ._models import ArmIdWrapper # type: ignore from ._models import AvroDataset # type: ignore from ._models import AvroFormat # type: ignore from ._models import AvroSink # type: ignore @@ -810,6 +831,9 @@ from ._models import CreateDataFlowDebugSessionResponse # type: ignore from ._models import CreateLinkedIntegrationRuntimeRequest # type: ignore from ._models import CreateRunResponse # type: ignore + from ._models import Credential # type: ignore + from ._models import CredentialReference # type: ignore + from ._models import CredentialResource # type: ignore from ._models import CustomActivity # type: ignore from ._models import CustomActivityReferenceObject # type: ignore from ._models import CustomDataSourceLinkedService # type: ignore @@ -930,6 +954,7 @@ from ._models import GetSsisObjectMetadataRequest # type: ignore from ._models import GitHubAccessTokenRequest # type: ignore from ._models import GitHubAccessTokenResponse # type: ignore + from ._models import GitHubClientSecret # type: ignore from ._models import GlobalParameterSpecification # type: ignore from ._models import GoogleAdWordsLinkedService # type: ignore from ._models import GoogleAdWordsObjectDataset # type: ignore @@ -1024,6 +1049,7 @@ from ._models import MagentoLinkedService # type: ignore from ._models import MagentoObjectDataset # type: ignore from ._models import MagentoSource # type: ignore + from ._models import ManagedIdentityCredential # type: ignore from ._models import ManagedIntegrationRuntime # type: ignore from ._models import ManagedIntegrationRuntimeError # type: ignore from ._models import ManagedIntegrationRuntimeNode # type: ignore @@ -1043,12 +1069,14 @@ from ._models import MarketoLinkedService # type: ignore from ._models import MarketoObjectDataset # type: ignore from ._models import MarketoSource # type: ignore + from ._models import MetadataItem # type: ignore from ._models import MicrosoftAccessLinkedService # type: ignore from ._models import MicrosoftAccessSink # type: ignore from ._models import MicrosoftAccessSource # type: ignore from ._models import MicrosoftAccessTableDataset # type: ignore from ._models import MongoDbAtlasCollectionDataset # type: ignore from ._models import MongoDbAtlasLinkedService # type: ignore + from ._models import MongoDbAtlasSink # type: ignore from ._models import MongoDbAtlasSource # type: ignore from ._models import MongoDbCollectionDataset # type: ignore from ._models import MongoDbCursorMethodsProperties # type: ignore @@ -1056,6 +1084,7 @@ from ._models import MongoDbSource # type: ignore from ._models import MongoDbV2CollectionDataset # type: ignore from ._models import MongoDbV2LinkedService # type: ignore + from ._models import MongoDbV2Sink # type: ignore from ._models import MongoDbV2Source # type: ignore from ._models import MultiplePipelineTrigger # type: ignore from ._models import MySqlLinkedService # type: ignore @@ -1128,6 +1157,14 @@ from ._models import PrestoLinkedService # type: ignore from ._models import PrestoObjectDataset # type: ignore from ._models import PrestoSource # type: ignore + from ._models import PrivateEndpointConnectionListResponse # type: ignore + from ._models import PrivateEndpointConnectionResource # type: ignore + from ._models import PrivateLinkConnectionApprovalRequest # type: ignore + from ._models import PrivateLinkConnectionApprovalRequestResource # type: ignore + from ._models import PrivateLinkConnectionState # type: ignore + from ._models import PrivateLinkResource # type: ignore + from ._models import PrivateLinkResourceProperties # type: ignore + from ._models import PrivateLinkResourcesWrapper # type: ignore from ._models import QueryDataFlowDebugSessionsResponse # type: ignore from ._models import QuickBooksLinkedService # type: ignore from ._models import QuickBooksObjectDataset # type: ignore @@ -1138,6 +1175,7 @@ from ._models import RedshiftUnloadSettings # type: ignore from ._models import RelationalSource # type: ignore from ._models import RelationalTableDataset # type: ignore + from ._models import RemotePrivateEndpointConnection # type: ignore from ._models import RerunTumblingWindowTrigger # type: ignore from ._models import Resource # type: ignore from ._models import ResponsysLinkedService # type: ignore @@ -1202,6 +1240,7 @@ from ._models import ServiceNowLinkedService # type: ignore from ._models import ServiceNowObjectDataset # type: ignore from ._models import ServiceNowSource # type: ignore + from ._models import ServicePrincipalCredential # type: ignore from ._models import SetVariableActivity # type: ignore from ._models import SftpLocation # type: ignore from ._models import SftpReadSettings # type: ignore @@ -1223,6 +1262,7 @@ from ._models import SparkLinkedService # type: ignore from ._models import SparkObjectDataset # type: ignore from ._models import SparkSource # type: ignore + from ._models import SqlAlwaysEncryptedProperties # type: ignore from ._models import SqlDWSink # type: ignore from ._models import SqlDWSource # type: ignore from ._models import SqlMISink # type: ignore @@ -1319,7 +1359,7 @@ AvroCompressionCodec, AzureFunctionActivityMethod, AzureSearchIndexWriteBehaviorType, - BlobEventTypesEnum, + BlobEventTypes, CassandraSourceReadConsistencyLevels, CompressionCodec, CopyBehaviorType, @@ -1334,7 +1374,6 @@ DependencyCondition, DynamicsAuthenticationType, DynamicsDeploymentType, - DynamicsServicePrincipalCredentialType, DynamicsSinkWriteBehavior, EventSubscriptionStatus, FactoryIdentityType, @@ -1388,10 +1427,12 @@ SapTablePartitionOption, SelfHostedIntegrationRuntimeNodeStatus, ServiceNowAuthenticationType, + ServicePrincipalCredentialType, SftpAuthenticationType, SparkAuthenticationType, SparkServerType, SparkThriftTransportProtocol, + SqlAlwaysEncryptedAkvAuthType, SqlPartitionOption, SsisLogLocationType, SsisObjectMetadataType, @@ -1432,6 +1473,7 @@ 'AmazonS3Location', 'AmazonS3ReadSettings', 'AppendVariableActivity', + 'ArmIdWrapper', 'AvroDataset', 'AvroFormat', 'AvroSink', @@ -1559,6 +1601,9 @@ 'CreateDataFlowDebugSessionResponse', 'CreateLinkedIntegrationRuntimeRequest', 'CreateRunResponse', + 'Credential', + 'CredentialReference', + 'CredentialResource', 'CustomActivity', 'CustomActivityReferenceObject', 'CustomDataSourceLinkedService', @@ -1679,6 +1724,7 @@ 'GetSsisObjectMetadataRequest', 'GitHubAccessTokenRequest', 'GitHubAccessTokenResponse', + 'GitHubClientSecret', 'GlobalParameterSpecification', 'GoogleAdWordsLinkedService', 'GoogleAdWordsObjectDataset', @@ -1773,6 +1819,7 @@ 'MagentoLinkedService', 'MagentoObjectDataset', 'MagentoSource', + 'ManagedIdentityCredential', 'ManagedIntegrationRuntime', 'ManagedIntegrationRuntimeError', 'ManagedIntegrationRuntimeNode', @@ -1792,12 +1839,14 @@ 'MarketoLinkedService', 'MarketoObjectDataset', 'MarketoSource', + 'MetadataItem', 'MicrosoftAccessLinkedService', 'MicrosoftAccessSink', 'MicrosoftAccessSource', 'MicrosoftAccessTableDataset', 'MongoDbAtlasCollectionDataset', 'MongoDbAtlasLinkedService', + 'MongoDbAtlasSink', 'MongoDbAtlasSource', 'MongoDbCollectionDataset', 'MongoDbCursorMethodsProperties', @@ -1805,6 +1854,7 @@ 'MongoDbSource', 'MongoDbV2CollectionDataset', 'MongoDbV2LinkedService', + 'MongoDbV2Sink', 'MongoDbV2Source', 'MultiplePipelineTrigger', 'MySqlLinkedService', @@ -1877,6 +1927,14 @@ 'PrestoLinkedService', 'PrestoObjectDataset', 'PrestoSource', + 'PrivateEndpointConnectionListResponse', + 'PrivateEndpointConnectionResource', + 'PrivateLinkConnectionApprovalRequest', + 'PrivateLinkConnectionApprovalRequestResource', + 'PrivateLinkConnectionState', + 'PrivateLinkResource', + 'PrivateLinkResourceProperties', + 'PrivateLinkResourcesWrapper', 'QueryDataFlowDebugSessionsResponse', 'QuickBooksLinkedService', 'QuickBooksObjectDataset', @@ -1887,6 +1945,7 @@ 'RedshiftUnloadSettings', 'RelationalSource', 'RelationalTableDataset', + 'RemotePrivateEndpointConnection', 'RerunTumblingWindowTrigger', 'Resource', 'ResponsysLinkedService', @@ -1951,6 +2010,7 @@ 'ServiceNowLinkedService', 'ServiceNowObjectDataset', 'ServiceNowSource', + 'ServicePrincipalCredential', 'SetVariableActivity', 'SftpLocation', 'SftpReadSettings', @@ -1972,6 +2032,7 @@ 'SparkLinkedService', 'SparkObjectDataset', 'SparkSource', + 'SqlAlwaysEncryptedProperties', 'SqlDWSink', 'SqlDWSource', 'SqlMISink', @@ -2066,7 +2127,7 @@ 'AvroCompressionCodec', 'AzureFunctionActivityMethod', 'AzureSearchIndexWriteBehaviorType', - 'BlobEventTypesEnum', + 'BlobEventTypes', 'CassandraSourceReadConsistencyLevels', 'CompressionCodec', 'CopyBehaviorType', @@ -2081,7 +2142,6 @@ 'DependencyCondition', 'DynamicsAuthenticationType', 'DynamicsDeploymentType', - 'DynamicsServicePrincipalCredentialType', 'DynamicsSinkWriteBehavior', 'EventSubscriptionStatus', 'FactoryIdentityType', @@ -2135,10 +2195,12 @@ 'SapTablePartitionOption', 'SelfHostedIntegrationRuntimeNodeStatus', 'ServiceNowAuthenticationType', + 'ServicePrincipalCredentialType', 'SftpAuthenticationType', 'SparkAuthenticationType', 'SparkServerType', 'SparkThriftTransportProtocol', + 'SqlAlwaysEncryptedAkvAuthType', 'SqlPartitionOption', 'SsisLogLocationType', 'SsisObjectMetadataType', diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/models/_data_factory_management_client_enums.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/models/_data_factory_management_client_enums.py index 9d920189dda8..466aea7a8f74 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/models/_data_factory_management_client_enums.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/models/_data_factory_management_client_enums.py @@ -53,7 +53,7 @@ class AzureSearchIndexWriteBehaviorType(with_metaclass(_CaseInsensitiveEnumMeta, MERGE = "Merge" UPLOAD = "Upload" -class BlobEventTypesEnum(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class BlobEventTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): MICROSOFT_STORAGE_BLOB_CREATED = "Microsoft.Storage.BlobCreated" MICROSOFT_STORAGE_BLOB_DELETED = "Microsoft.Storage.BlobDeleted" @@ -77,14 +77,16 @@ class CassandraSourceReadConsistencyLevels(with_metaclass(_CaseInsensitiveEnumMe LOCAL_SERIAL = "LOCAL_SERIAL" class CompressionCodec(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """All available compressionCodec values. + """ NONE = "none" - GZIP = "gzip" - SNAPPY = "snappy" LZO = "lzo" BZIP2 = "bzip2" + GZIP = "gzip" DEFLATE = "deflate" ZIP_DEFLATE = "zipDeflate" + SNAPPY = "snappy" LZ4 = "lz4" TAR = "tar" TAR_G_ZIP = "tarGZip" @@ -174,9 +176,7 @@ class DependencyCondition(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): COMPLETED = "Completed" class DynamicsAuthenticationType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """The authentication type to connect to Dynamics server. 'Office365' for online scenario, 'Ifd' - for on-premises with Ifd scenario, 'AADServicePrincipal' for Server-To-Server authentication in - online scenario. Type: string (or Expression with resultType string). + """All available dynamicsAuthenticationType values. """ OFFICE365 = "Office365" @@ -184,23 +184,12 @@ class DynamicsAuthenticationType(with_metaclass(_CaseInsensitiveEnumMeta, str, E AAD_SERVICE_PRINCIPAL = "AADServicePrincipal" class DynamicsDeploymentType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """The deployment type of the Dynamics instance. 'Online' for Dynamics Online and - 'OnPremisesWithIfd' for Dynamics on-premises with Ifd. Type: string (or Expression with - resultType string). + """All available dynamicsDeploymentType values. """ ONLINE = "Online" ON_PREMISES_WITH_IFD = "OnPremisesWithIfd" -class DynamicsServicePrincipalCredentialType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """The service principal credential type to use in Server-To-Server authentication. - 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' for certificate. Type: string (or - Expression with resultType string). - """ - - SERVICE_PRINCIPAL_KEY = "ServicePrincipalKey" - SERVICE_PRINCIPAL_CERT = "ServicePrincipalCert" - class DynamicsSinkWriteBehavior(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Defines values for DynamicsSinkWriteBehavior. """ @@ -267,7 +256,7 @@ class HBaseAuthenticationType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum BASIC = "Basic" class HdiNodeTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """The node types on which the script action should be executed. + """All available HdiNodeTypes values. """ HEADNODE = "Headnode" @@ -417,8 +406,7 @@ class JsonFormatFilePattern(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)) ARRAY_OF_OBJECTS = "arrayOfObjects" class JsonWriteFilePattern(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """File pattern of JSON. This setting controls the way a collection of JSON objects will be - treated. The default value is 'setOfObjects'. It is case-sensitive. + """All available filePatterns. """ SET_OF_OBJECTS = "setOfObjects" @@ -661,6 +649,13 @@ class ServiceNowAuthenticationType(with_metaclass(_CaseInsensitiveEnumMeta, str, BASIC = "Basic" O_AUTH2 = "OAuth2" +class ServicePrincipalCredentialType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """All available servicePrincipalCredentialType values. + """ + + SERVICE_PRINCIPAL_KEY = "ServicePrincipalKey" + SERVICE_PRINCIPAL_CERT = "ServicePrincipalCert" + class SftpAuthenticationType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The authentication type to be used to connect to the FTP server. """ @@ -694,6 +689,14 @@ class SparkThriftTransportProtocol(with_metaclass(_CaseInsensitiveEnumMeta, str, SASL = "SASL" HTTP = "HTTP " +class SqlAlwaysEncryptedAkvAuthType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Sql always encrypted AKV authentication type. Type: string (or Expression with resultType + string). + """ + + SERVICE_PRINCIPAL = "ServicePrincipal" + MANAGED_IDENTITY = "ManagedIdentity" + class SqlPartitionOption(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The partition mechanism that will be used for Sql read in parallel. """ diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/models/_models.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/models/_models.py index 500676c7ed11..98d8bc411749 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/models/_models.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/models/_models.py @@ -40,13 +40,13 @@ class Activity(msrest.serialization.Model): """A pipeline activity. You probably want to use the sub-classes and not this class directly. Known - sub-classes are: AppendVariableActivity, ControlActivity, ExecutePipelineActivity, ExecutionActivity, FilterActivity, ForEachActivity, IfConditionActivity, SetVariableActivity, SwitchActivity, UntilActivity, ValidationActivity, WaitActivity, WebHookActivity. + sub-classes are: ControlActivity, ExecutionActivity. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -74,7 +74,7 @@ class Activity(msrest.serialization.Model): } _subtype_map = { - 'type': {'AppendVariable': 'AppendVariableActivity', 'Container': 'ControlActivity', 'ExecutePipeline': 'ExecutePipelineActivity', 'Execution': 'ExecutionActivity', 'Filter': 'FilterActivity', 'ForEach': 'ForEachActivity', 'IfCondition': 'IfConditionActivity', 'SetVariable': 'SetVariableActivity', 'Switch': 'SwitchActivity', 'Until': 'UntilActivity', 'Validation': 'ValidationActivity', 'Wait': 'WaitActivity', 'WebHook': 'WebHookActivity'} + 'type': {'Container': 'ControlActivity', 'Execution': 'ExecutionActivity'} } def __init__( @@ -97,7 +97,7 @@ class ActivityDependency(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param activity: Required. Activity name. :type activity: str :param dependency_conditions: Required. Match-Condition for the dependency. @@ -130,14 +130,14 @@ class ActivityPolicy(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param timeout: Specifies the timeout for the activity to run. The default timeout is 7 days. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type timeout: object + :type timeout: any :param retry: Maximum ordinary retry attempts. Default is 0. Type: integer (or Expression with resultType integer), minimum: 0. - :type retry: object + :type retry: any :param retry_interval_in_seconds: Interval between each retry attempt (in seconds). The default is 30 sec. :type retry_interval_in_seconds: int @@ -182,7 +182,7 @@ class ActivityRun(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar pipeline_name: The name of the pipeline. :vartype pipeline_name: str :ivar pipeline_run_id: The id of the pipeline run. @@ -204,11 +204,11 @@ class ActivityRun(msrest.serialization.Model): :ivar duration_in_ms: The duration of the activity run. :vartype duration_in_ms: int :ivar input: The input for the activity. - :vartype input: object + :vartype input: any :ivar output: The output for the activity. - :vartype output: object + :vartype output: any :ivar error: The error if any from the activity run. - :vartype error: object + :vartype error: any """ _validation = { @@ -318,9 +318,9 @@ class AdditionalColumns(msrest.serialization.Model): """Specify the column name and value of additional columns. :param name: Additional column name. Type: string (or Expression with resultType string). - :type name: object + :type name: any :param value: Additional column value. Type: string (or Expression with resultType string). - :type value: object + :type value: any """ _attribute_map = { @@ -347,7 +347,7 @@ class LinkedService(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -357,7 +357,7 @@ class LinkedService(msrest.serialization.Model): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] """ _validation = { @@ -397,7 +397,7 @@ class AmazonMWSLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -407,36 +407,36 @@ class AmazonMWSLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param endpoint: Required. The endpoint of the Amazon MWS server, (i.e. mws.amazonservices.com). - :type endpoint: object + :type endpoint: any :param marketplace_id: Required. The Amazon Marketplace ID you want to retrieve data from. To retrieve data from multiple Marketplace IDs, separate them with a comma (,). (i.e. A2EUQ1WTGCTBG2). - :type marketplace_id: object + :type marketplace_id: any :param seller_id: Required. The Amazon seller ID. - :type seller_id: object + :type seller_id: any :param mws_auth_token: The Amazon MWS authentication token. :type mws_auth_token: ~azure.mgmt.datafactory.models.SecretBase :param access_key_id: Required. The access key id used to access data. - :type access_key_id: object + :type access_key_id: any :param secret_key: The secret key used to access data. :type secret_key: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -494,23 +494,23 @@ class Dataset(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder @@ -560,28 +560,28 @@ class AmazonMWSObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -621,18 +621,21 @@ class CopySource(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any """ _validation = { @@ -645,6 +648,7 @@ class CopySource(msrest.serialization.Model): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, } _subtype_map = { @@ -661,6 +665,7 @@ def __init__( self.source_retry_count = kwargs.get('source_retry_count', None) self.source_retry_wait = kwargs.get('source_retry_wait', None) self.max_concurrent_connections = kwargs.get('max_concurrent_connections', None) + self.disable_metrics_collection = kwargs.get('disable_metrics_collection', None) class TabularSource(CopySource): @@ -673,21 +678,24 @@ class TabularSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -703,6 +711,7 @@ class TabularSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -728,27 +737,30 @@ class AmazonMWSSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -761,6 +773,7 @@ class AmazonMWSSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -782,7 +795,7 @@ class AmazonRedshiftLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -792,25 +805,25 @@ class AmazonRedshiftLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param server: Required. The name of the Amazon Redshift server. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param username: The username of the Amazon Redshift source. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: The password of the Amazon Redshift source. :type password: ~azure.mgmt.datafactory.models.SecretBase :param database: Required. The database name of the Amazon Redshift source. Type: string (or Expression with resultType string). - :type database: object + :type database: any :param port: The TCP port number that the Amazon Redshift server uses to listen for client connections. The default value is 5439. Type: integer (or Expression with resultType integer). - :type port: object + :type port: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -855,26 +868,29 @@ class AmazonRedshiftSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param redshift_unload_settings: The Amazon S3 settings needed for the interim Amazon S3 when copying from Amazon Redshift with unload. With this, data from Amazon Redshift source will be unloaded into S3 first and then copied into the targeted sink from the interim S3. @@ -891,6 +907,7 @@ class AmazonRedshiftSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -914,35 +931,35 @@ class AmazonRedshiftTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The Amazon Redshift table name. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The Amazon Redshift schema name. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -983,7 +1000,7 @@ class AmazonS3CompatibleLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -993,10 +1010,10 @@ class AmazonS3CompatibleLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param access_key_id: The access key identifier of the Amazon S3 Compatible Identity and Access Management (IAM) user. Type: string (or Expression with resultType string). - :type access_key_id: object + :type access_key_id: any :param secret_access_key: The secret access key of the Amazon S3 Compatible Identity and Access Management (IAM) user. :type secret_access_key: ~azure.mgmt.datafactory.models.SecretBase @@ -1004,14 +1021,14 @@ class AmazonS3CompatibleLinkedService(LinkedService): Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string). - :type service_url: object + :type service_url: any :param force_path_style: If true, use S3 path-style access instead of virtual hosted-style access. Default value is false. Type: boolean (or Expression with resultType boolean). - :type force_path_style: object + :type force_path_style: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -1055,15 +1072,15 @@ class DatasetLocation(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any """ _validation = { @@ -1099,21 +1116,21 @@ class AmazonS3CompatibleLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param bucket_name: Specify the bucketName of Amazon S3 Compatible. Type: string (or Expression with resultType string). - :type bucket_name: object + :type bucket_name: any :param version: Specify the version of Amazon S3 Compatible. Type: string (or Expression with resultType string). - :type version: object + :type version: any """ _validation = { @@ -1149,12 +1166,15 @@ class StoreReadSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any """ _validation = { @@ -1165,6 +1185,7 @@ class StoreReadSettings(msrest.serialization.Model): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, } _subtype_map = { @@ -1179,6 +1200,7 @@ def __init__( self.additional_properties = kwargs.get('additional_properties', None) self.type = 'StoreReadSettings' # type: str self.max_concurrent_connections = kwargs.get('max_concurrent_connections', None) + self.disable_metrics_collection = kwargs.get('disable_metrics_collection', None) class AmazonS3CompatibleReadSettings(StoreReadSettings): @@ -1188,42 +1210,45 @@ class AmazonS3CompatibleReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: Amazon S3 Compatible wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: Amazon S3 Compatible wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param prefix: The prefix filter for the S3 Compatible object name. Type: string (or Expression with resultType string). - :type prefix: object + :type prefix: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -1234,6 +1259,7 @@ class AmazonS3CompatibleReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -1271,44 +1297,44 @@ class AmazonS3Dataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param bucket_name: Required. The name of the Amazon S3 bucket. Type: string (or Expression with resultType string). - :type bucket_name: object + :type bucket_name: any :param key: The key of the Amazon S3 object. Type: string (or Expression with resultType string). - :type key: object + :type key: any :param prefix: The prefix filter for the S3 object name. Type: string (or Expression with resultType string). - :type prefix: object + :type prefix: any :param version: The version for the S3 object. Type: string (or Expression with resultType string). - :type version: object + :type version: any :param modified_datetime_start: The start of S3 object's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of S3 object's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any :param format: The format of files. :type format: ~azure.mgmt.datafactory.models.DatasetStorageFormat :param compression: The data compression method used for the Amazon S3 object. @@ -1364,7 +1390,7 @@ class AmazonS3LinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -1374,26 +1400,26 @@ class AmazonS3LinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param authentication_type: The authentication type of S3. Allowed value: AccessKey (default) or TemporarySecurityCredentials. Type: string (or Expression with resultType string). - :type authentication_type: object + :type authentication_type: any :param access_key_id: The access key identifier of the Amazon S3 Identity and Access Management (IAM) user. Type: string (or Expression with resultType string). - :type access_key_id: object + :type access_key_id: any :param secret_access_key: The secret access key of the Amazon S3 Identity and Access Management (IAM) user. :type secret_access_key: ~azure.mgmt.datafactory.models.SecretBase :param service_url: This value specifies the endpoint to access with the S3 Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string). - :type service_url: object + :type service_url: any :param session_token: The session token for the S3 temporary security credential. :type session_token: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -1436,21 +1462,21 @@ class AmazonS3Location(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param bucket_name: Specify the bucketName of amazon S3. Type: string (or Expression with resultType string). - :type bucket_name: object + :type bucket_name: any :param version: Specify the version of amazon S3. Type: string (or Expression with resultType string). - :type version: object + :type version: any """ _validation = { @@ -1483,42 +1509,45 @@ class AmazonS3ReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: AmazonS3 wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: AmazonS3 wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param prefix: The prefix filter for the S3 object name. Type: string (or Expression with resultType string). - :type prefix: object + :type prefix: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -1529,6 +1558,7 @@ class AmazonS3ReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -1559,14 +1589,63 @@ def __init__( self.modified_datetime_end = kwargs.get('modified_datetime_end', None) -class AppendVariableActivity(Activity): +class ControlActivity(Activity): + """Base class for all control activities like IfCondition, ForEach , Until. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: AppendVariableActivity, ExecutePipelineActivity, FilterActivity, ForEachActivity, IfConditionActivity, SetVariableActivity, SwitchActivity, UntilActivity, ValidationActivity, WaitActivity, WebHookActivity. + + 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, any] + :param name: Required. Activity name. + :type name: str + :param type: Required. Type of activity.Constant filled by server. + :type type: str + :param description: Activity description. + :type description: str + :param depends_on: Activity depends on condition. + :type depends_on: list[~azure.mgmt.datafactory.models.ActivityDependency] + :param user_properties: Activity user properties. + :type user_properties: list[~azure.mgmt.datafactory.models.UserProperty] + """ + + _validation = { + 'name': {'required': True}, + 'type': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'depends_on': {'key': 'dependsOn', 'type': '[ActivityDependency]'}, + 'user_properties': {'key': 'userProperties', 'type': '[UserProperty]'}, + } + + _subtype_map = { + 'type': {'AppendVariable': 'AppendVariableActivity', 'ExecutePipeline': 'ExecutePipelineActivity', 'Filter': 'FilterActivity', 'ForEach': 'ForEachActivity', 'IfCondition': 'IfConditionActivity', 'SetVariable': 'SetVariableActivity', 'Switch': 'SwitchActivity', 'Until': 'UntilActivity', 'Validation': 'ValidationActivity', 'Wait': 'WaitActivity', 'WebHook': 'WebHookActivity'} + } + + def __init__( + self, + **kwargs + ): + super(ControlActivity, self).__init__(**kwargs) + self.type = 'Container' # type: str + + +class AppendVariableActivity(ControlActivity): """Append value for a Variable of type Array. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -1580,7 +1659,7 @@ class AppendVariableActivity(Activity): :param variable_name: Name of the variable whose value needs to be appended to. :type variable_name: str :param value: Value to be appended. Could be a static value or Expression. - :type value: object + :type value: any """ _validation = { @@ -1609,6 +1688,31 @@ def __init__( self.value = kwargs.get('value', None) +class ArmIdWrapper(msrest.serialization.Model): + """A wrapper for an ARM resource id. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: + :vartype id: str + """ + + _validation = { + 'id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ArmIdWrapper, self).__init__(**kwargs) + self.id = None + + class AvroDataset(Dataset): """Avro dataset. @@ -1616,31 +1720,31 @@ class AvroDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param location: The location of the avro storage. :type location: ~azure.mgmt.datafactory.models.DatasetLocation - :param avro_compression_codec: Possible values include: "none", "deflate", "snappy", "xz", - "bzip2". - :type avro_compression_codec: str or ~azure.mgmt.datafactory.models.AvroCompressionCodec + :param avro_compression_codec: The data avroCompressionCodec. Type: string (or Expression with + resultType string). + :type avro_compression_codec: any :param avro_compression_level: :type avro_compression_level: int """ @@ -1662,7 +1766,7 @@ class AvroDataset(Dataset): 'annotations': {'key': 'annotations', 'type': '[object]'}, 'folder': {'key': 'folder', 'type': 'DatasetFolder'}, 'location': {'key': 'typeProperties.location', 'type': 'DatasetLocation'}, - 'avro_compression_codec': {'key': 'typeProperties.avroCompressionCodec', 'type': 'str'}, + 'avro_compression_codec': {'key': 'typeProperties.avroCompressionCodec', 'type': 'object'}, 'avro_compression_level': {'key': 'typeProperties.avroCompressionLevel', 'type': 'int'}, } @@ -1687,13 +1791,13 @@ class DatasetStorageFormat(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage format.Constant filled by server. :type type: str :param serializer: Serializer. Type: string (or Expression with resultType string). - :type serializer: object + :type serializer: any :param deserializer: Deserializer. Type: string (or Expression with resultType string). - :type deserializer: object + :type deserializer: any """ _validation = { @@ -1729,13 +1833,13 @@ class AvroFormat(DatasetStorageFormat): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage format.Constant filled by server. :type type: str :param serializer: Serializer. Type: string (or Expression with resultType string). - :type serializer: object + :type serializer: any :param deserializer: Deserializer. Type: string (or Expression with resultType string). - :type deserializer: object + :type deserializer: any """ _validation = { @@ -1761,30 +1865,33 @@ class CopySink(msrest.serialization.Model): """A copy activity sink. You probably want to use the sub-classes and not this class directly. Known - sub-classes are: AvroSink, AzureBlobFSSink, AzureDataExplorerSink, AzureDataLakeStoreSink, AzureDatabricksDeltaLakeSink, AzureMySqlSink, AzurePostgreSqlSink, AzureQueueSink, AzureSearchIndexSink, AzureSqlSink, AzureTableSink, BinarySink, BlobSink, CommonDataServiceForAppsSink, CosmosDbMongoDbApiSink, CosmosDbSqlApiSink, DelimitedTextSink, DocumentDbCollectionSink, DynamicsCrmSink, DynamicsSink, FileSystemSink, InformixSink, JsonSink, MicrosoftAccessSink, OdbcSink, OracleSink, OrcSink, ParquetSink, RestSink, SalesforceServiceCloudSink, SalesforceSink, SapCloudForCustomerSink, SnowflakeSink, SqlDWSink, SqlMISink, SqlServerSink, SqlSink. + sub-classes are: AvroSink, AzureBlobFSSink, AzureDataExplorerSink, AzureDataLakeStoreSink, AzureDatabricksDeltaLakeSink, AzureMySqlSink, AzurePostgreSqlSink, AzureQueueSink, AzureSearchIndexSink, AzureSqlSink, AzureTableSink, BinarySink, BlobSink, CommonDataServiceForAppsSink, CosmosDbMongoDbApiSink, CosmosDbSqlApiSink, DelimitedTextSink, DocumentDbCollectionSink, DynamicsCrmSink, DynamicsSink, FileSystemSink, InformixSink, JsonSink, MicrosoftAccessSink, MongoDbAtlasSink, MongoDbV2Sink, OdbcSink, OracleSink, OrcSink, ParquetSink, RestSink, SalesforceServiceCloudSink, SalesforceSink, SapCloudForCustomerSink, SnowflakeSink, SqlDWSink, SqlMISink, SqlServerSink, SqlSink. 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] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any """ _validation = { @@ -1799,10 +1906,11 @@ class CopySink(msrest.serialization.Model): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, } _subtype_map = { - 'type': {'AvroSink': 'AvroSink', 'AzureBlobFSSink': 'AzureBlobFSSink', 'AzureDataExplorerSink': 'AzureDataExplorerSink', 'AzureDataLakeStoreSink': 'AzureDataLakeStoreSink', 'AzureDatabricksDeltaLakeSink': 'AzureDatabricksDeltaLakeSink', 'AzureMySqlSink': 'AzureMySqlSink', 'AzurePostgreSqlSink': 'AzurePostgreSqlSink', 'AzureQueueSink': 'AzureQueueSink', 'AzureSearchIndexSink': 'AzureSearchIndexSink', 'AzureSqlSink': 'AzureSqlSink', 'AzureTableSink': 'AzureTableSink', 'BinarySink': 'BinarySink', 'BlobSink': 'BlobSink', 'CommonDataServiceForAppsSink': 'CommonDataServiceForAppsSink', 'CosmosDbMongoDbApiSink': 'CosmosDbMongoDbApiSink', 'CosmosDbSqlApiSink': 'CosmosDbSqlApiSink', 'DelimitedTextSink': 'DelimitedTextSink', 'DocumentDbCollectionSink': 'DocumentDbCollectionSink', 'DynamicsCrmSink': 'DynamicsCrmSink', 'DynamicsSink': 'DynamicsSink', 'FileSystemSink': 'FileSystemSink', 'InformixSink': 'InformixSink', 'JsonSink': 'JsonSink', 'MicrosoftAccessSink': 'MicrosoftAccessSink', 'OdbcSink': 'OdbcSink', 'OracleSink': 'OracleSink', 'OrcSink': 'OrcSink', 'ParquetSink': 'ParquetSink', 'RestSink': 'RestSink', 'SalesforceServiceCloudSink': 'SalesforceServiceCloudSink', 'SalesforceSink': 'SalesforceSink', 'SapCloudForCustomerSink': 'SapCloudForCustomerSink', 'SnowflakeSink': 'SnowflakeSink', 'SqlDWSink': 'SqlDWSink', 'SqlMISink': 'SqlMISink', 'SqlServerSink': 'SqlServerSink', 'SqlSink': 'SqlSink'} + 'type': {'AvroSink': 'AvroSink', 'AzureBlobFSSink': 'AzureBlobFSSink', 'AzureDataExplorerSink': 'AzureDataExplorerSink', 'AzureDataLakeStoreSink': 'AzureDataLakeStoreSink', 'AzureDatabricksDeltaLakeSink': 'AzureDatabricksDeltaLakeSink', 'AzureMySqlSink': 'AzureMySqlSink', 'AzurePostgreSqlSink': 'AzurePostgreSqlSink', 'AzureQueueSink': 'AzureQueueSink', 'AzureSearchIndexSink': 'AzureSearchIndexSink', 'AzureSqlSink': 'AzureSqlSink', 'AzureTableSink': 'AzureTableSink', 'BinarySink': 'BinarySink', 'BlobSink': 'BlobSink', 'CommonDataServiceForAppsSink': 'CommonDataServiceForAppsSink', 'CosmosDbMongoDbApiSink': 'CosmosDbMongoDbApiSink', 'CosmosDbSqlApiSink': 'CosmosDbSqlApiSink', 'DelimitedTextSink': 'DelimitedTextSink', 'DocumentDbCollectionSink': 'DocumentDbCollectionSink', 'DynamicsCrmSink': 'DynamicsCrmSink', 'DynamicsSink': 'DynamicsSink', 'FileSystemSink': 'FileSystemSink', 'InformixSink': 'InformixSink', 'JsonSink': 'JsonSink', 'MicrosoftAccessSink': 'MicrosoftAccessSink', 'MongoDbAtlasSink': 'MongoDbAtlasSink', 'MongoDbV2Sink': 'MongoDbV2Sink', 'OdbcSink': 'OdbcSink', 'OracleSink': 'OracleSink', 'OrcSink': 'OrcSink', 'ParquetSink': 'ParquetSink', 'RestSink': 'RestSink', 'SalesforceServiceCloudSink': 'SalesforceServiceCloudSink', 'SalesforceSink': 'SalesforceSink', 'SapCloudForCustomerSink': 'SapCloudForCustomerSink', 'SnowflakeSink': 'SnowflakeSink', 'SqlDWSink': 'SqlDWSink', 'SqlMISink': 'SqlMISink', 'SqlServerSink': 'SqlServerSink', 'SqlSink': 'SqlSink'} } def __init__( @@ -1817,6 +1925,7 @@ def __init__( self.sink_retry_count = kwargs.get('sink_retry_count', None) self.sink_retry_wait = kwargs.get('sink_retry_wait', None) self.max_concurrent_connections = kwargs.get('max_concurrent_connections', None) + self.disable_metrics_collection = kwargs.get('disable_metrics_collection', None) class AvroSink(CopySink): @@ -1826,24 +1935,27 @@ class AvroSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Avro store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreWriteSettings :param format_settings: Avro format settings. @@ -1862,6 +1974,7 @@ class AvroSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreWriteSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'AvroWriteSettings'}, } @@ -1883,18 +1996,21 @@ class AvroSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Avro store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param additional_columns: Specifies the additional columns to be added to source data. Type: @@ -1912,6 +2028,7 @@ class AvroSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreReadSettings'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -1936,7 +2053,7 @@ class FormatWriteSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str """ @@ -1970,7 +2087,7 @@ class AvroWriteSettings(FormatWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param record_name: Top level record name in write result, which is required in AVRO spec. @@ -1979,11 +2096,11 @@ class AvroWriteSettings(FormatWriteSettings): :type record_namespace: str :param max_rows_per_file: Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer). - :type max_rows_per_file: object + :type max_rows_per_file: any :param file_name_prefix: Specifies the file name pattern :code:``_:code:``.:code:`` when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string). - :type file_name_prefix: object + :type file_name_prefix: any """ _validation = { @@ -2080,7 +2197,7 @@ class AzureBatchLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -2090,24 +2207,26 @@ class AzureBatchLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param account_name: Required. The Azure Batch account name. Type: string (or Expression with resultType string). - :type account_name: object + :type account_name: any :param access_key: The Azure Batch account access key. :type access_key: ~azure.mgmt.datafactory.models.SecretBase :param batch_uri: Required. The Azure Batch URI. Type: string (or Expression with resultType string). - :type batch_uri: object + :type batch_uri: any :param pool_name: Required. The Azure Batch pool name. Type: string (or Expression with resultType string). - :type pool_name: object + :type pool_name: any :param linked_service_name: Required. The Azure Storage linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -2131,6 +2250,7 @@ class AzureBatchLinkedService(LinkedService): 'pool_name': {'key': 'typeProperties.poolName', 'type': 'object'}, 'linked_service_name': {'key': 'typeProperties.linkedServiceName', 'type': 'LinkedServiceReference'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( @@ -2145,6 +2265,7 @@ def __init__( self.pool_name = kwargs['pool_name'] self.linked_service_name = kwargs['linked_service_name'] self.encrypted_credential = kwargs.get('encrypted_credential', None) + self.credential = kwargs.get('credential', None) class AzureBlobDataset(Dataset): @@ -2154,41 +2275,41 @@ class AzureBlobDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param folder_path: The path of the Azure Blob storage. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param table_root_location: The root of blob path. Type: string (or Expression with resultType string). - :type table_root_location: object + :type table_root_location: any :param file_name: The name of the Azure Blob. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param modified_datetime_start: The start of Azure Blob's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of Azure Blob's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any :param format: The format of the Azure Blob storage. :type format: ~azure.mgmt.datafactory.models.DatasetStorageFormat :param compression: The data compression method used for the blob storage. @@ -2241,32 +2362,32 @@ class AzureBlobFSDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param folder_path: The path of the Azure Data Lake Storage Gen2 storage. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: The name of the Azure Data Lake Storage Gen2. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param format: The format of the Azure Data Lake Storage Gen2 storage. :type format: ~azure.mgmt.datafactory.models.DatasetStorageFormat :param compression: The data compression method used for the blob storage. @@ -2313,7 +2434,7 @@ class AzureBlobFSLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -2323,30 +2444,32 @@ class AzureBlobFSLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. Endpoint for the Azure Data Lake Storage Gen2 service. Type: string (or Expression with resultType string). - :type url: object + :type url: any :param account_key: Account key for the Azure Data Lake Storage Gen2 service. Type: string (or Expression with resultType string). - :type account_key: object + :type account_key: any :param service_principal_id: The ID of the application used to authenticate against the Azure Data Lake Storage Gen2 account. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The Key of the application used to authenticate against the Azure Data Lake Storage Gen2 account. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -2368,6 +2491,7 @@ class AzureBlobFSLinkedService(LinkedService): 'tenant': {'key': 'typeProperties.tenant', 'type': 'object'}, 'azure_cloud_type': {'key': 'typeProperties.azureCloudType', 'type': 'object'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( @@ -2383,6 +2507,7 @@ def __init__( self.tenant = kwargs.get('tenant', None) self.azure_cloud_type = kwargs.get('azure_cloud_type', None) self.encrypted_credential = kwargs.get('encrypted_credential', None) + self.credential = kwargs.get('credential', None) class AzureBlobFSLocation(DatasetLocation): @@ -2392,18 +2517,18 @@ class AzureBlobFSLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param file_system: Specify the fileSystem of azure blobFS. Type: string (or Expression with resultType string). - :type file_system: object + :type file_system: any """ _validation = { @@ -2434,39 +2559,42 @@ class AzureBlobFSReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: Azure blobFS wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: Azure blobFS wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -2477,6 +2605,7 @@ class AzureBlobFSReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -2512,26 +2641,32 @@ class AzureBlobFSSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any + :param metadata: Specify the custom metadata to be added to sink data. Type: array of objects + (or Expression with resultType array of objects). + :type metadata: list[~azure.mgmt.datafactory.models.MetadataItem] """ _validation = { @@ -2546,7 +2681,9 @@ class AzureBlobFSSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, } def __init__( @@ -2556,6 +2693,7 @@ def __init__( super(AzureBlobFSSink, self).__init__(**kwargs) self.type = 'AzureBlobFSSink' # type: str self.copy_behavior = kwargs.get('copy_behavior', None) + self.metadata = kwargs.get('metadata', None) class AzureBlobFSSource(CopySource): @@ -2565,27 +2703,30 @@ class AzureBlobFSSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param treat_empty_as_null: Treat empty as null. Type: boolean (or Expression with resultType boolean). - :type treat_empty_as_null: object + :type treat_empty_as_null: any :param skip_header_line_count: Number of header lines to skip from each blob. Type: integer (or Expression with resultType integer). - :type skip_header_line_count: object + :type skip_header_line_count: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any """ _validation = { @@ -2598,6 +2739,7 @@ class AzureBlobFSSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'treat_empty_as_null': {'key': 'treatEmptyAsNull', 'type': 'object'}, 'skip_header_line_count': {'key': 'skipHeaderLineCount', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, @@ -2624,14 +2766,17 @@ class StoreWriteSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any """ _validation = { @@ -2642,6 +2787,7 @@ class StoreWriteSettings(msrest.serialization.Model): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, } @@ -2657,6 +2803,7 @@ def __init__( self.additional_properties = kwargs.get('additional_properties', None) self.type = 'StoreWriteSettings' # type: str self.max_concurrent_connections = kwargs.get('max_concurrent_connections', None) + self.disable_metrics_collection = kwargs.get('disable_metrics_collection', None) self.copy_behavior = kwargs.get('copy_behavior', None) @@ -2667,17 +2814,20 @@ class AzureBlobFSWriteSettings(StoreWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any :param block_size_in_mb: Indicates the block size(MB) when writing data to blob. Type: integer (or Expression with resultType integer). - :type block_size_in_mb: object + :type block_size_in_mb: any """ _validation = { @@ -2688,6 +2838,7 @@ class AzureBlobFSWriteSettings(StoreWriteSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, 'block_size_in_mb': {'key': 'blockSizeInMB', 'type': 'object'}, } @@ -2708,7 +2859,7 @@ class AzureBlobStorageLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -2718,16 +2869,16 @@ class AzureBlobStorageLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: The connection string. It is mutually exclusive with sasUri, serviceEndpoint property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param account_key: The Azure key vault secret reference of accountKey in connection string. :type account_key: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param sas_uri: SAS URI of the Azure Blob Storage resource. It is mutually exclusive with connectionString, serviceEndpoint property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type sas_uri: object + :type sas_uri: any :param sas_token: The Azure key vault secret reference of sasToken in sas uri. :type sas_token: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param service_endpoint: Blob service endpoint of the Azure Blob Storage resource. It is @@ -2735,17 +2886,17 @@ class AzureBlobStorageLinkedService(LinkedService): :type service_endpoint: str :param service_principal_id: The ID of the service principal used to authenticate against Azure SQL Data Warehouse. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The key of the service principal used to authenticate against Azure SQL Data Warehouse. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param account_kind: Specify the kind of your storage account. Allowed values are: Storage (general purpose v1), StorageV2 (general purpose v2), BlobStorage, or BlockBlobStorage. Type: string (or Expression with resultType string). @@ -2754,6 +2905,8 @@ class AzureBlobStorageLinkedService(LinkedService): encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). :type encrypted_credential: str + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -2778,6 +2931,7 @@ class AzureBlobStorageLinkedService(LinkedService): 'azure_cloud_type': {'key': 'typeProperties.azureCloudType', 'type': 'object'}, 'account_kind': {'key': 'typeProperties.accountKind', 'type': 'str'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'str'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( @@ -2797,6 +2951,7 @@ def __init__( self.azure_cloud_type = kwargs.get('azure_cloud_type', None) self.account_kind = kwargs.get('account_kind', None) self.encrypted_credential = kwargs.get('encrypted_credential', None) + self.credential = kwargs.get('credential', None) class AzureBlobStorageLocation(DatasetLocation): @@ -2806,18 +2961,18 @@ class AzureBlobStorageLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param container: Specify the container of azure blob. Type: string (or Expression with resultType string). - :type container: object + :type container: any """ _validation = { @@ -2848,42 +3003,45 @@ class AzureBlobStorageReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: Azure blob wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: Azure blob wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param prefix: The prefix filter for the Azure Blob name. Type: string (or Expression with resultType string). - :type prefix: object + :type prefix: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -2894,6 +3052,7 @@ class AzureBlobStorageReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -2931,17 +3090,20 @@ class AzureBlobStorageWriteSettings(StoreWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any :param block_size_in_mb: Indicates the block size(MB) when writing data to blob. Type: integer (or Expression with resultType integer). - :type block_size_in_mb: object + :type block_size_in_mb: any """ _validation = { @@ -2952,6 +3114,7 @@ class AzureBlobStorageWriteSettings(StoreWriteSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, 'block_size_in_mb': {'key': 'blockSizeInMB', 'type': 'object'}, } @@ -2972,31 +3135,31 @@ class AzureDatabricksDeltaLakeDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table: The name of delta table. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param database: The database name of delta table. Type: string (or Expression with resultType string). - :type database: object + :type database: any """ _validation = { @@ -3038,7 +3201,7 @@ class ExportSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The export setting type.Constant filled by server. :type type: str """ @@ -3072,15 +3235,15 @@ class AzureDatabricksDeltaLakeExportCommand(ExportSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The export setting type.Constant filled by server. :type type: str :param date_format: Specify the date format for the csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string). - :type date_format: object + :type date_format: any :param timestamp_format: Specify the timestamp format for the csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string). - :type timestamp_format: object + :type timestamp_format: any """ _validation = { @@ -3114,7 +3277,7 @@ class ImportSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The import setting type.Constant filled by server. :type type: str """ @@ -3148,15 +3311,15 @@ class AzureDatabricksDeltaLakeImportCommand(ImportSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The import setting type.Constant filled by server. :type type: str :param date_format: Specify the date format for csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string). - :type date_format: object + :type date_format: any :param timestamp_format: Specify the timestamp format for csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string). - :type timestamp_format: object + :type timestamp_format: any """ _validation = { @@ -3187,7 +3350,7 @@ class AzureDatabricksDeltaLakeLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -3197,21 +3360,21 @@ class AzureDatabricksDeltaLakeLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param domain: Required. :code:``.azuredatabricks.net, domain name of your Databricks deployment. Type: string (or Expression with resultType string). - :type domain: object + :type domain: any :param access_token: Access token for databricks REST API. Refer to https://docs.azuredatabricks.net/api/latest/authentication.html. Type: string, SecureString or AzureKeyVaultSecretReference. :type access_token: ~azure.mgmt.datafactory.models.SecretBase :param cluster_id: The id of an existing interactive cluster that will be used for all runs of this job. Type: string (or Expression with resultType string). - :type cluster_id: object + :type cluster_id: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -3251,27 +3414,30 @@ class AzureDatabricksDeltaLakeSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any :param import_settings: Azure Databricks Delta Lake import settings. :type import_settings: ~azure.mgmt.datafactory.models.AzureDatabricksDeltaLakeImportCommand """ @@ -3288,6 +3454,7 @@ class AzureDatabricksDeltaLakeSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, 'import_settings': {'key': 'importSettings', 'type': 'AzureDatabricksDeltaLakeImportCommand'}, } @@ -3309,21 +3476,24 @@ class AzureDatabricksDeltaLakeSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: Azure Databricks Delta Lake Sql query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param export_settings: Azure Databricks Delta Lake export settings. :type export_settings: ~azure.mgmt.datafactory.models.AzureDatabricksDeltaLakeExportCommand """ @@ -3338,6 +3508,7 @@ class AzureDatabricksDeltaLakeSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'export_settings': {'key': 'exportSettings', 'type': 'AzureDatabricksDeltaLakeExportCommand'}, } @@ -3359,7 +3530,7 @@ class AzureDatabricksLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -3369,72 +3540,74 @@ class AzureDatabricksLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param domain: Required. :code:``.azuredatabricks.net, domain name of your Databricks deployment. Type: string (or Expression with resultType string). - :type domain: object + :type domain: any :param access_token: Access token for databricks REST API. Refer to https://docs.azuredatabricks.net/api/latest/authentication.html. Type: string (or Expression with resultType string). :type access_token: ~azure.mgmt.datafactory.models.SecretBase :param authentication: Required to specify MSI, if using Workspace resource id for databricks REST API. Type: string (or Expression with resultType string). - :type authentication: object + :type authentication: any :param workspace_resource_id: Workspace resource id for databricks REST API. Type: string (or Expression with resultType string). - :type workspace_resource_id: object + :type workspace_resource_id: any :param existing_cluster_id: The id of an existing interactive cluster that will be used for all runs of this activity. Type: string (or Expression with resultType string). - :type existing_cluster_id: object + :type existing_cluster_id: any :param instance_pool_id: The id of an existing instance pool that will be used for all runs of this activity. Type: string (or Expression with resultType string). - :type instance_pool_id: object + :type instance_pool_id: any :param new_cluster_version: If not using an existing interactive cluster, this specifies the Spark version of a new job cluster or instance pool nodes created for each run of this activity. Required if instancePoolId is specified. Type: string (or Expression with resultType string). - :type new_cluster_version: object + :type new_cluster_version: any :param new_cluster_num_of_worker: If not using an existing interactive cluster, this specifies the number of worker nodes to use for the new job cluster or instance pool. For new job - clusters, this a string-formatted Int32, like '1' means numOfWorker is 1 or '1:10' means auto- - scale from 1 (min) to 10 (max). For instance pools, this is a string-formatted Int32, and can - only specify a fixed number of worker nodes, such as '2'. Required if newClusterVersion is + clusters, this a string-formatted Int32, like '1' means numOfWorker is 1 or '1:10' means + auto-scale from 1 (min) to 10 (max). For instance pools, this is a string-formatted Int32, and + can only specify a fixed number of worker nodes, such as '2'. Required if newClusterVersion is specified. Type: string (or Expression with resultType string). - :type new_cluster_num_of_worker: object + :type new_cluster_num_of_worker: any :param new_cluster_node_type: The node type of the new job cluster. This property is required if newClusterVersion is specified and instancePoolId is not specified. If instancePoolId is specified, this property is ignored. Type: string (or Expression with resultType string). - :type new_cluster_node_type: object + :type new_cluster_node_type: any :param new_cluster_spark_conf: A set of optional, user-specified Spark configuration key-value pairs. - :type new_cluster_spark_conf: dict[str, object] + :type new_cluster_spark_conf: dict[str, any] :param new_cluster_spark_env_vars: A set of optional, user-specified Spark environment variables key-value pairs. - :type new_cluster_spark_env_vars: dict[str, object] + :type new_cluster_spark_env_vars: dict[str, any] :param new_cluster_custom_tags: Additional tags for cluster resources. This property is ignored in instance pool configurations. - :type new_cluster_custom_tags: dict[str, object] + :type new_cluster_custom_tags: dict[str, any] :param new_cluster_log_destination: Specify a location to deliver Spark driver, worker, and event logs. Type: string (or Expression with resultType string). - :type new_cluster_log_destination: object + :type new_cluster_log_destination: any :param new_cluster_driver_node_type: The driver node type for the new job cluster. This property is ignored in instance pool configurations. Type: string (or Expression with resultType string). - :type new_cluster_driver_node_type: object + :type new_cluster_driver_node_type: any :param new_cluster_init_scripts: User-defined initialization scripts for the new cluster. Type: array of strings (or Expression with resultType array of strings). - :type new_cluster_init_scripts: object + :type new_cluster_init_scripts: any :param new_cluster_enable_elastic_disk: Enable the elastic disk on the new cluster. This property is now ignored, and takes the default elastic disk behavior in Databricks (elastic disks are always enabled). Type: boolean (or Expression with resultType boolean). - :type new_cluster_enable_elastic_disk: object + :type new_cluster_enable_elastic_disk: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any :param policy_id: The policy id for limiting the ability to configure clusters based on a user defined set of rules. Type: string (or Expression with resultType string). - :type policy_id: object + :type policy_id: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -3467,6 +3640,7 @@ class AzureDatabricksLinkedService(LinkedService): 'new_cluster_enable_elastic_disk': {'key': 'typeProperties.newClusterEnableElasticDisk', 'type': 'object'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, 'policy_id': {'key': 'typeProperties.policyId', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( @@ -3493,6 +3667,7 @@ def __init__( self.new_cluster_enable_elastic_disk = kwargs.get('new_cluster_enable_elastic_disk', None) self.encrypted_credential = kwargs.get('encrypted_credential', None) self.policy_id = kwargs.get('policy_id', None) + self.credential = kwargs.get('credential', None) class ExecutionActivity(Activity): @@ -3505,7 +3680,7 @@ class ExecutionActivity(Activity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -3559,7 +3734,7 @@ class AzureDataExplorerCommandActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -3576,10 +3751,10 @@ class AzureDataExplorerCommandActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param command: Required. A control command, according to the Azure Data Explorer command syntax. Type: string (or Expression with resultType string). - :type command: object + :type command: any :param command_timeout: Control command timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9]))..). - :type command_timeout: object + :type command_timeout: any """ _validation = { @@ -3618,7 +3793,7 @@ class AzureDataExplorerLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -3628,23 +3803,25 @@ class AzureDataExplorerLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param endpoint: Required. The endpoint of Azure Data Explorer (the engine's endpoint). URL will be in the format https://:code:``.:code:``.kusto.windows.net. Type: string (or Expression with resultType string). - :type endpoint: object + :type endpoint: any :param service_principal_id: The ID of the service principal used to authenticate against Azure Data Explorer. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The key of the service principal used to authenticate against Kusto. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param database: Required. Database name for connection. Type: string (or Expression with resultType string). - :type database: object + :type database: any :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -3665,6 +3842,7 @@ class AzureDataExplorerLinkedService(LinkedService): 'service_principal_key': {'key': 'typeProperties.servicePrincipalKey', 'type': 'SecretBase'}, 'database': {'key': 'typeProperties.database', 'type': 'object'}, 'tenant': {'key': 'typeProperties.tenant', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( @@ -3678,6 +3856,7 @@ def __init__( self.service_principal_key = kwargs.get('service_principal_key', None) self.database = kwargs['database'] self.tenant = kwargs.get('tenant', None) + self.credential = kwargs.get('credential', None) class AzureDataExplorerSink(CopySink): @@ -3687,33 +3866,36 @@ class AzureDataExplorerSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param ingestion_mapping_name: A name of a pre-created csv mapping that was defined on the target Kusto table. Type: string. - :type ingestion_mapping_name: object + :type ingestion_mapping_name: any :param ingestion_mapping_as_json: An explicit column mapping description provided in a json format. Type: string. - :type ingestion_mapping_as_json: object + :type ingestion_mapping_as_json: any :param flush_immediately: If set to true, any aggregation will be skipped. Default is false. Type: boolean. - :type flush_immediately: object + :type flush_immediately: any """ _validation = { @@ -3728,6 +3910,7 @@ class AzureDataExplorerSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'ingestion_mapping_name': {'key': 'ingestionMappingName', 'type': 'object'}, 'ingestion_mapping_as_json': {'key': 'ingestionMappingAsJson', 'type': 'object'}, 'flush_immediately': {'key': 'flushImmediately', 'type': 'object'}, @@ -3751,27 +3934,30 @@ class AzureDataExplorerSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: Required. Database query. Should be a Kusto Query Language (KQL) query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param no_truncation: The name of the Boolean option that controls whether truncation is applied to result-sets that go beyond a certain row-count limit. - :type no_truncation: object + :type no_truncation: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).. - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -3788,6 +3974,7 @@ class AzureDataExplorerSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'no_truncation': {'key': 'noTruncation', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, @@ -3813,29 +4000,29 @@ class AzureDataExplorerTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table: The table name of the Azure Data Explorer database. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -3872,7 +4059,7 @@ class AzureDataLakeAnalyticsLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -3882,32 +4069,32 @@ class AzureDataLakeAnalyticsLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param account_name: Required. The Azure Data Lake Analytics account name. Type: string (or Expression with resultType string). - :type account_name: object + :type account_name: any :param service_principal_id: The ID of the application used to authenticate against the Azure Data Lake Analytics account. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The Key of the application used to authenticate against the Azure Data Lake Analytics account. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: Required. The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param subscription_id: Data Lake Analytics account subscription ID (if different from Data Factory account). Type: string (or Expression with resultType string). - :type subscription_id: object + :type subscription_id: any :param resource_group_name: Data Lake Analytics account resource group name (if different from Data Factory account). Type: string (or Expression with resultType string). - :type resource_group_name: object + :type resource_group_name: any :param data_lake_analytics_uri: Azure Data Lake Analytics URI Type: string (or Expression with resultType string). - :type data_lake_analytics_uri: object + :type data_lake_analytics_uri: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -3956,32 +4143,32 @@ class AzureDataLakeStoreDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param folder_path: Path to the folder in the Azure Data Lake Store. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: The name of the file in the Azure Data Lake Store. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param format: The format of the Data Lake Store. :type format: ~azure.mgmt.datafactory.models.DatasetStorageFormat :param compression: The data compression method used for the item(s) in the Azure Data Lake @@ -4029,7 +4216,7 @@ class AzureDataLakeStoreLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -4039,36 +4226,38 @@ class AzureDataLakeStoreLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param data_lake_store_uri: Required. Data Lake Store service URI. Type: string (or Expression with resultType string). - :type data_lake_store_uri: object + :type data_lake_store_uri: any :param service_principal_id: The ID of the application used to authenticate against the Azure Data Lake Store account. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The Key of the application used to authenticate against the Azure Data Lake Store account. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param account_name: Data Lake Store account name. Type: string (or Expression with resultType string). - :type account_name: object + :type account_name: any :param subscription_id: Data Lake Store account subscription ID (if different from Data Factory account). Type: string (or Expression with resultType string). - :type subscription_id: object + :type subscription_id: any :param resource_group_name: Data Lake Store account resource group name (if different from Data Factory account). Type: string (or Expression with resultType string). - :type resource_group_name: object + :type resource_group_name: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -4092,6 +4281,7 @@ class AzureDataLakeStoreLinkedService(LinkedService): 'subscription_id': {'key': 'typeProperties.subscriptionId', 'type': 'object'}, 'resource_group_name': {'key': 'typeProperties.resourceGroupName', 'type': 'object'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( @@ -4109,6 +4299,7 @@ def __init__( self.subscription_id = kwargs.get('subscription_id', None) self.resource_group_name = kwargs.get('resource_group_name', None) self.encrypted_credential = kwargs.get('encrypted_credential', None) + self.credential = kwargs.get('credential', None) class AzureDataLakeStoreLocation(DatasetLocation): @@ -4118,15 +4309,15 @@ class AzureDataLakeStoreLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any """ _validation = { @@ -4155,47 +4346,50 @@ class AzureDataLakeStoreReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: ADLS wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: ADLS wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param list_after: Lists files after the value (exclusive) based on file/folder names’ lexicographical order. Applies under the folderPath in data set, and filter files/sub-folders under the folderPath. Type: string (or Expression with resultType string). - :type list_after: object + :type list_after: any :param list_before: Lists files before the value (inclusive) based on file/folder names’ lexicographical order. Applies under the folderPath in data set, and filter files/sub-folders under the folderPath. Type: string (or Expression with resultType string). - :type list_before: object + :type list_before: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -4206,6 +4400,7 @@ class AzureDataLakeStoreReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -4245,28 +4440,31 @@ class AzureDataLakeStoreSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any :param enable_adls_single_file_parallel: Single File Parallel. - :type enable_adls_single_file_parallel: object + :type enable_adls_single_file_parallel: any """ _validation = { @@ -4281,6 +4479,7 @@ class AzureDataLakeStoreSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, 'enable_adls_single_file_parallel': {'key': 'enableAdlsSingleFileParallel', 'type': 'object'}, } @@ -4302,21 +4501,24 @@ class AzureDataLakeStoreSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any """ _validation = { @@ -4329,6 +4531,7 @@ class AzureDataLakeStoreSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, } @@ -4348,18 +4551,21 @@ class AzureDataLakeStoreWriteSettings(StoreWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any :param expiry_date_time: Specifies the expiry time of the written files. The time is applied to the UTC time zone in the format of "2018-12-01T05:00:00Z". Default value is NULL. Type: integer (or Expression with resultType integer). - :type expiry_date_time: object + :type expiry_date_time: any """ _validation = { @@ -4370,6 +4576,7 @@ class AzureDataLakeStoreWriteSettings(StoreWriteSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, 'expiry_date_time': {'key': 'expiryDateTime', 'type': 'object'}, } @@ -4390,7 +4597,7 @@ class AzureFileStorageLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -4400,34 +4607,34 @@ class AzureFileStorageLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Host name of the server. Type: string (or Expression with resultType string). - :type host: object + :type host: any :param user_id: User ID to logon the server. Type: string (or Expression with resultType string). - :type user_id: object + :type user_id: any :param password: Password to logon the server. :type password: ~azure.mgmt.datafactory.models.SecretBase :param connection_string: The connection string. It is mutually exclusive with sasUri property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param account_key: The Azure key vault secret reference of accountKey in connection string. :type account_key: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param sas_uri: SAS URI of the Azure File resource. It is mutually exclusive with connectionString property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type sas_uri: object + :type sas_uri: any :param sas_token: The Azure key vault secret reference of sasToken in sas uri. :type sas_token: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param file_share: The azure file share name. It is required when auth with accountKey/sasToken. Type: string (or Expression with resultType string). - :type file_share: object + :type file_share: any :param snapshot: The azure file share snapshot version. Type: string (or Expression with resultType string). - :type snapshot: object + :type snapshot: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -4478,15 +4685,15 @@ class AzureFileStorageLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any """ _validation = { @@ -4515,42 +4722,45 @@ class AzureFileStorageReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: Azure File Storage wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: Azure File Storage wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param prefix: The prefix filter for the Azure File name starting from root path. Type: string (or Expression with resultType string). - :type prefix: object + :type prefix: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -4561,6 +4771,7 @@ class AzureFileStorageReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -4598,14 +4809,17 @@ class AzureFileStorageWriteSettings(StoreWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any """ _validation = { @@ -4616,6 +4830,7 @@ class AzureFileStorageWriteSettings(StoreWriteSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, } @@ -4634,7 +4849,7 @@ class AzureFunctionActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -4654,14 +4869,14 @@ class AzureFunctionActivity(ExecutionActivity): :type method: str or ~azure.mgmt.datafactory.models.AzureFunctionActivityMethod :param function_name: Required. Name of the Function that the Azure Function Activity will call. Type: string (or Expression with resultType string). - :type function_name: object + :type function_name: any :param headers: Represents the headers that will be sent to the request. For example, to set the language and type on a request: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Type: string (or Expression with resultType string). - :type headers: object + :type headers: any :param body: Represents the payload that will be sent to the endpoint. Required for POST/PUT method, not allowed for GET method Type: string (or Expression with resultType string). - :type body: object + :type body: any """ _validation = { @@ -4705,7 +4920,7 @@ class AzureFunctionLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -4715,16 +4930,23 @@ class AzureFunctionLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param function_app_url: Required. The endpoint of the Azure Function App. URL will be in the format https://:code:``.azurewebsites.net. - :type function_app_url: object + :type function_app_url: any :param function_key: Function or Host key for Azure Function App. :type function_key: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference + :param resource_id: Allowed token audiences for azure function. + :type resource_id: any + :param authentication: Type of authentication (Required to specify MSI) used to connect to + AzureFunction. Type: string (or Expression with resultType string). + :type authentication: any """ _validation = { @@ -4742,6 +4964,9 @@ class AzureFunctionLinkedService(LinkedService): 'function_app_url': {'key': 'typeProperties.functionAppUrl', 'type': 'object'}, 'function_key': {'key': 'typeProperties.functionKey', 'type': 'SecretBase'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, + 'resource_id': {'key': 'typeProperties.resourceId', 'type': 'object'}, + 'authentication': {'key': 'typeProperties.authentication', 'type': 'object'}, } def __init__( @@ -4753,6 +4978,9 @@ def __init__( self.function_app_url = kwargs['function_app_url'] self.function_key = kwargs.get('function_key', None) self.encrypted_credential = kwargs.get('encrypted_credential', None) + self.credential = kwargs.get('credential', None) + self.resource_id = kwargs.get('resource_id', None) + self.authentication = kwargs.get('authentication', None) class AzureKeyVaultLinkedService(LinkedService): @@ -4762,7 +4990,7 @@ class AzureKeyVaultLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -4772,10 +5000,12 @@ class AzureKeyVaultLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param base_url: Required. The base URL of the Azure Key Vault. e.g. https://myakv.vault.azure.net Type: string (or Expression with resultType string). - :type base_url: object + :type base_url: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -4791,6 +5021,7 @@ class AzureKeyVaultLinkedService(LinkedService): 'parameters': {'key': 'parameters', 'type': '{ParameterSpecification}'}, 'annotations': {'key': 'annotations', 'type': '[object]'}, 'base_url': {'key': 'typeProperties.baseUrl', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( @@ -4800,6 +5031,7 @@ def __init__( super(AzureKeyVaultLinkedService, self).__init__(**kwargs) self.type = 'AzureKeyVault' # type: str self.base_url = kwargs['base_url'] + self.credential = kwargs.get('credential', None) class SecretBase(msrest.serialization.Model): @@ -4845,10 +5077,10 @@ class AzureKeyVaultSecretReference(SecretBase): :type store: ~azure.mgmt.datafactory.models.LinkedServiceReference :param secret_name: Required. The name of the secret in Azure Key Vault. Type: string (or Expression with resultType string). - :type secret_name: object + :type secret_name: any :param secret_version: The version of the secret in Azure Key Vault. The default value is the latest version of the secret. Type: string (or Expression with resultType string). - :type secret_version: object + :type secret_version: any """ _validation = { @@ -4882,7 +5114,7 @@ class AzureMariaDBLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -4892,16 +5124,16 @@ class AzureMariaDBLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param pwd: The Azure key vault secret reference of password in connection string. :type pwd: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -4938,27 +5170,30 @@ class AzureMariaDBSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -4971,6 +5206,7 @@ class AzureMariaDBSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -4992,28 +5228,28 @@ class AzureMariaDBTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -5050,7 +5286,7 @@ class AzureMLBatchExecutionActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -5069,7 +5305,7 @@ class AzureMLBatchExecutionActivity(ExecutionActivity): endpoint. Keys must match the names of web service parameters defined in the published Azure ML web service. Values will be passed in the GlobalParameters property of the Azure ML batch execution request. - :type global_parameters: dict[str, object] + :type global_parameters: dict[str, any] :param web_service_outputs: Key,Value pairs, mapping the names of Azure ML endpoint's Web Service Outputs to AzureMLWebServiceFile objects specifying the output Blob locations. This information will be passed in the WebServiceOutputs property of the Azure ML batch execution @@ -5119,7 +5355,7 @@ class AzureMLExecutePipelineActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -5136,35 +5372,35 @@ class AzureMLExecutePipelineActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param ml_pipeline_id: ID of the published Azure ML pipeline. Type: string (or Expression with resultType string). - :type ml_pipeline_id: object + :type ml_pipeline_id: any :param ml_pipeline_endpoint_id: ID of the published Azure ML pipeline endpoint. Type: string (or Expression with resultType string). - :type ml_pipeline_endpoint_id: object + :type ml_pipeline_endpoint_id: any :param version: Version of the published Azure ML pipeline endpoint. Type: string (or Expression with resultType string). - :type version: object + :type version: any :param experiment_name: Run history experiment name of the pipeline run. This information will be passed in the ExperimentName property of the published pipeline execution request. Type: string (or Expression with resultType string). - :type experiment_name: object + :type experiment_name: any :param ml_pipeline_parameters: Key,Value pairs to be passed to the published Azure ML pipeline endpoint. Keys must match the names of pipeline parameters defined in the published pipeline. Values will be passed in the ParameterAssignments property of the published pipeline execution request. Type: object with key value pairs (or Expression with resultType object). - :type ml_pipeline_parameters: object + :type ml_pipeline_parameters: any :param data_path_assignments: Dictionary used for changing data path assignments without retraining. Values will be passed in the dataPathAssignments property of the published pipeline execution request. Type: object with key value pairs (or Expression with resultType object). - :type data_path_assignments: object + :type data_path_assignments: any :param ml_parent_run_id: The parent Azure ML Service pipeline run id. This information will be passed in the ParentRunId property of the published pipeline execution request. Type: string (or Expression with resultType string). - :type ml_parent_run_id: object + :type ml_parent_run_id: any :param continue_on_step_failure: Whether to continue execution of other steps in the PipelineRun if a step fails. This information will be passed in the continueOnStepFailure property of the published pipeline execution request. Type: boolean (or Expression with resultType boolean). - :type continue_on_step_failure: object + :type continue_on_step_failure: any """ _validation = { @@ -5214,7 +5450,7 @@ class AzureMLLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -5224,29 +5460,32 @@ class AzureMLLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param ml_endpoint: Required. The Batch Execution REST URL for an Azure ML Studio Web Service endpoint. Type: string (or Expression with resultType string). - :type ml_endpoint: object + :type ml_endpoint: any :param api_key: Required. The API key for accessing the Azure ML model endpoint. :type api_key: ~azure.mgmt.datafactory.models.SecretBase :param update_resource_endpoint: The Update Resource REST URL for an Azure ML Studio Web Service endpoint. Type: string (or Expression with resultType string). - :type update_resource_endpoint: object + :type update_resource_endpoint: any :param service_principal_id: The ID of the service principal used to authenticate against the ARM-based updateResourceEndpoint of an Azure ML Studio web service. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The key of the service principal used to authenticate against the ARM-based updateResourceEndpoint of an Azure ML Studio web service. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param authentication: Type of authentication (Required to specify MSI) used to connect to + AzureML. Type: string (or Expression with resultType string). + :type authentication: any """ _validation = { @@ -5269,6 +5508,7 @@ class AzureMLLinkedService(LinkedService): 'service_principal_key': {'key': 'typeProperties.servicePrincipalKey', 'type': 'SecretBase'}, 'tenant': {'key': 'typeProperties.tenant', 'type': 'object'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'authentication': {'key': 'typeProperties.authentication', 'type': 'object'}, } def __init__( @@ -5284,6 +5524,7 @@ def __init__( self.service_principal_key = kwargs.get('service_principal_key', None) self.tenant = kwargs.get('tenant', None) self.encrypted_credential = kwargs.get('encrypted_credential', None) + self.authentication = kwargs.get('authentication', None) class AzureMLServiceLinkedService(LinkedService): @@ -5293,7 +5534,7 @@ class AzureMLServiceLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -5303,30 +5544,30 @@ class AzureMLServiceLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param subscription_id: Required. Azure ML Service workspace subscription ID. Type: string (or Expression with resultType string). - :type subscription_id: object + :type subscription_id: any :param resource_group_name: Required. Azure ML Service workspace resource group name. Type: string (or Expression with resultType string). - :type resource_group_name: object + :type resource_group_name: any :param ml_workspace_name: Required. Azure ML Service workspace name. Type: string (or Expression with resultType string). - :type ml_workspace_name: object + :type ml_workspace_name: any :param service_principal_id: The ID of the service principal used to authenticate against the endpoint of a published Azure ML Service pipeline. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The key of the service principal used to authenticate against the endpoint of a published Azure ML Service pipeline. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -5374,7 +5615,7 @@ class AzureMLUpdateResourceActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -5391,14 +5632,14 @@ class AzureMLUpdateResourceActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param trained_model_name: Required. Name of the Trained Model module in the Web Service experiment to be updated. Type: string (or Expression with resultType string). - :type trained_model_name: object + :type trained_model_name: any :param trained_model_linked_service_name: Required. Name of Azure Storage linked service holding the .ilearner file that will be uploaded by the update operation. :type trained_model_linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param trained_model_file_path: Required. The relative file path in trainedModelLinkedService to represent the .ilearner file that will be uploaded by the update operation. Type: string (or Expression with resultType string). - :type trained_model_file_path: object + :type trained_model_file_path: any """ _validation = { @@ -5441,7 +5682,7 @@ class AzureMLWebServiceFile(msrest.serialization.Model): :param file_path: Required. The relative file path, including container name, in the Azure Blob Storage specified by the LinkedService. Type: string (or Expression with resultType string). - :type file_path: object + :type file_path: any :param linked_service_name: Required. Reference to an Azure Storage LinkedService, where Azure ML WebService Input/Output file located. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference @@ -5473,7 +5714,7 @@ class AzureMySqlLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -5483,16 +5724,16 @@ class AzureMySqlLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -5530,27 +5771,30 @@ class AzureMySqlSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: A query to execute before starting the copy. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any """ _validation = { @@ -5565,6 +5809,7 @@ class AzureMySqlSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, } @@ -5584,26 +5829,29 @@ class AzureMySqlSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -5616,6 +5864,7 @@ class AzureMySqlSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -5637,32 +5886,32 @@ class AzureMySqlTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The Azure MySQL database table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any :param table: The name of Azure MySQL database table. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -5701,7 +5950,7 @@ class AzurePostgreSqlLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -5711,16 +5960,16 @@ class AzurePostgreSqlLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -5757,27 +6006,30 @@ class AzurePostgreSqlSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: A query to execute before starting the copy. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any """ _validation = { @@ -5792,6 +6044,7 @@ class AzurePostgreSqlSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, } @@ -5811,27 +6064,30 @@ class AzurePostgreSqlSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -5844,6 +6100,7 @@ class AzurePostgreSqlSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -5865,35 +6122,35 @@ class AzurePostgreSqlTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name of the Azure PostgreSQL database which includes both schema and table. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any :param table: The table name of the Azure PostgreSQL database. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Azure PostgreSQL database. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -5934,24 +6191,27 @@ class AzureQueueSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any """ _validation = { @@ -5966,6 +6226,7 @@ class AzureQueueSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, } def __init__( @@ -5983,29 +6244,29 @@ class AzureSearchIndexDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param index_name: Required. The name of the Azure Search Index. Type: string (or Expression with resultType string). - :type index_name: object + :type index_name: any """ _validation = { @@ -6043,24 +6304,27 @@ class AzureSearchIndexSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: Specify the write behavior when upserting documents into Azure Search Index. Possible values include: "Merge", "Upload". :type write_behavior: str or ~azure.mgmt.datafactory.models.AzureSearchIndexWriteBehaviorType @@ -6078,6 +6342,7 @@ class AzureSearchIndexSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'str'}, } @@ -6097,7 +6362,7 @@ class AzureSearchLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -6107,16 +6372,16 @@ class AzureSearchLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. URL for Azure Search service. Type: string (or Expression with resultType string). - :type url: object + :type url: any :param key: Admin Key for Azure Search service. :type key: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -6154,7 +6419,7 @@ class AzureSqlDatabaseLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -6164,29 +6429,33 @@ class AzureSqlDatabaseLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param service_principal_id: The ID of the service principal used to authenticate against Azure SQL Database. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The key of the service principal used to authenticate against Azure SQL Database. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param always_encrypted_settings: Sql always encrypted properties. + :type always_encrypted_settings: ~azure.mgmt.datafactory.models.SqlAlwaysEncryptedProperties + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -6208,6 +6477,8 @@ class AzureSqlDatabaseLinkedService(LinkedService): 'tenant': {'key': 'typeProperties.tenant', 'type': 'object'}, 'azure_cloud_type': {'key': 'typeProperties.azureCloudType', 'type': 'object'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'always_encrypted_settings': {'key': 'typeProperties.alwaysEncryptedSettings', 'type': 'SqlAlwaysEncryptedProperties'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( @@ -6223,6 +6494,8 @@ def __init__( self.tenant = kwargs.get('tenant', None) self.azure_cloud_type = kwargs.get('azure_cloud_type', None) self.encrypted_credential = kwargs.get('encrypted_credential', None) + self.always_encrypted_settings = kwargs.get('always_encrypted_settings', None) + self.credential = kwargs.get('credential', None) class AzureSqlDWLinkedService(LinkedService): @@ -6232,7 +6505,7 @@ class AzureSqlDWLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -6242,29 +6515,31 @@ class AzureSqlDWLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string. Type: string, SecureString or AzureKeyVaultSecretReference. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param service_principal_id: The ID of the service principal used to authenticate against Azure SQL Data Warehouse. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The key of the service principal used to authenticate against Azure SQL Data Warehouse. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -6286,6 +6561,7 @@ class AzureSqlDWLinkedService(LinkedService): 'tenant': {'key': 'typeProperties.tenant', 'type': 'object'}, 'azure_cloud_type': {'key': 'typeProperties.azureCloudType', 'type': 'object'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( @@ -6301,6 +6577,7 @@ def __init__( self.tenant = kwargs.get('tenant', None) self.azure_cloud_type = kwargs.get('azure_cloud_type', None) self.encrypted_credential = kwargs.get('encrypted_credential', None) + self.credential = kwargs.get('credential', None) class AzureSqlDWTableDataset(Dataset): @@ -6310,35 +6587,35 @@ class AzureSqlDWTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param schema_type_properties_schema: The schema name of the Azure SQL Data Warehouse. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any :param table: The table name of the Azure SQL Data Warehouse. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -6379,7 +6656,7 @@ class AzureSqlMILinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -6389,29 +6666,33 @@ class AzureSqlMILinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param service_principal_id: The ID of the service principal used to authenticate against Azure SQL Managed Instance. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The key of the service principal used to authenticate against Azure SQL Managed Instance. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param always_encrypted_settings: Sql always encrypted properties. + :type always_encrypted_settings: ~azure.mgmt.datafactory.models.SqlAlwaysEncryptedProperties + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -6433,6 +6714,8 @@ class AzureSqlMILinkedService(LinkedService): 'tenant': {'key': 'typeProperties.tenant', 'type': 'object'}, 'azure_cloud_type': {'key': 'typeProperties.azureCloudType', 'type': 'object'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'always_encrypted_settings': {'key': 'typeProperties.alwaysEncryptedSettings', 'type': 'SqlAlwaysEncryptedProperties'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( @@ -6448,6 +6731,8 @@ def __init__( self.tenant = kwargs.get('tenant', None) self.azure_cloud_type = kwargs.get('azure_cloud_type', None) self.encrypted_credential = kwargs.get('encrypted_credential', None) + self.always_encrypted_settings = kwargs.get('always_encrypted_settings', None) + self.credential = kwargs.get('credential', None) class AzureSqlMITableDataset(Dataset): @@ -6457,35 +6742,35 @@ class AzureSqlMITableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param schema_type_properties_schema: The schema name of the Azure SQL Managed Instance. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any :param table: The table name of the Azure SQL Managed Instance dataset. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -6526,42 +6811,45 @@ class AzureSqlSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param sql_writer_stored_procedure_name: SQL writer stored procedure name. Type: string (or Expression with resultType string). - :type sql_writer_stored_procedure_name: object + :type sql_writer_stored_procedure_name: any :param sql_writer_table_type: SQL writer table type. Type: string (or Expression with resultType string). - :type sql_writer_table_type: object + :type sql_writer_table_type: any :param pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any :param stored_procedure_parameters: SQL stored procedure parameters. :type stored_procedure_parameters: dict[str, ~azure.mgmt.datafactory.models.StoredProcedureParameter] :param stored_procedure_table_type_parameter_name: The stored procedure parameter name of the table type. Type: string (or Expression with resultType string). - :type stored_procedure_table_type_parameter_name: object + :type stored_procedure_table_type_parameter_name: any :param table_option: The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string). - :type table_option: object + :type table_option: any """ _validation = { @@ -6576,6 +6864,7 @@ class AzureSqlSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'sql_writer_stored_procedure_name': {'key': 'sqlWriterStoredProcedureName', 'type': 'object'}, 'sql_writer_table_type': {'key': 'sqlWriterTableType', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, @@ -6605,39 +6894,42 @@ class AzureSqlSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param sql_reader_query: SQL reader query. Type: string (or Expression with resultType string). - :type sql_reader_query: object + :type sql_reader_query: any :param sql_reader_stored_procedure_name: Name of the stored procedure for a SQL Database source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string). - :type sql_reader_stored_procedure_name: object + :type sql_reader_stored_procedure_name: any :param stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}". :type stored_procedure_parameters: dict[str, ~azure.mgmt.datafactory.models.StoredProcedureParameter] :param produce_additional_types: Which additional types to produce. - :type produce_additional_types: object + :type produce_additional_types: any :param partition_option: The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for Sql source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.SqlPartitionSettings """ @@ -6652,6 +6944,7 @@ class AzureSqlSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'sql_reader_query': {'key': 'sqlReaderQuery', 'type': 'object'}, @@ -6683,35 +6976,35 @@ class AzureSqlTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param schema_type_properties_schema: The schema name of the Azure SQL database. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any :param table: The table name of the Azure SQL database. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -6752,7 +7045,7 @@ class AzureStorageLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -6762,15 +7055,15 @@ class AzureStorageLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: The connection string. It is mutually exclusive with sasUri property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param account_key: The Azure key vault secret reference of accountKey in connection string. :type account_key: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param sas_uri: SAS URI of the Azure Storage resource. It is mutually exclusive with connectionString property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type sas_uri: object + :type sas_uri: any :param sas_token: The Azure key vault secret reference of sasToken in sas uri. :type sas_token: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are @@ -6817,29 +7110,29 @@ class AzureTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: Required. The table name of the Azure Table storage. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -6877,36 +7170,39 @@ class AzureTableSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param azure_table_default_partition_key_value: Azure Table default partition key value. Type: string (or Expression with resultType string). - :type azure_table_default_partition_key_value: object + :type azure_table_default_partition_key_value: any :param azure_table_partition_key_name: Azure Table partition key name. Type: string (or Expression with resultType string). - :type azure_table_partition_key_name: object + :type azure_table_partition_key_name: any :param azure_table_row_key_name: Azure Table row key name. Type: string (or Expression with resultType string). - :type azure_table_row_key_name: object + :type azure_table_row_key_name: any :param azure_table_insert_type: Azure Table insert type. Type: string (or Expression with resultType string). - :type azure_table_insert_type: object + :type azure_table_insert_type: any """ _validation = { @@ -6921,6 +7217,7 @@ class AzureTableSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'azure_table_default_partition_key_value': {'key': 'azureTableDefaultPartitionKeyValue', 'type': 'object'}, 'azure_table_partition_key_name': {'key': 'azureTablePartitionKeyName', 'type': 'object'}, 'azure_table_row_key_name': {'key': 'azureTableRowKeyName', 'type': 'object'}, @@ -6946,30 +7243,33 @@ class AzureTableSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param azure_table_source_query: Azure Table source query. Type: string (or Expression with resultType string). - :type azure_table_source_query: object + :type azure_table_source_query: any :param azure_table_source_ignore_table_not_found: Azure Table source ignore table not found. Type: boolean (or Expression with resultType boolean). - :type azure_table_source_ignore_table_not_found: object + :type azure_table_source_ignore_table_not_found: any """ _validation = { @@ -6982,6 +7282,7 @@ class AzureTableSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'azure_table_source_query': {'key': 'azureTableSourceQuery', 'type': 'object'}, @@ -7005,7 +7306,7 @@ class AzureTableStorageLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -7015,15 +7316,15 @@ class AzureTableStorageLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: The connection string. It is mutually exclusive with sasUri property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param account_key: The Azure key vault secret reference of accountKey in connection string. :type account_key: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param sas_uri: SAS URI of the Azure Storage resource. It is mutually exclusive with connectionString property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type sas_uri: object + :type sas_uri: any :param sas_token: The Azure key vault secret reference of sasToken in sas uri. :type sas_token: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are @@ -7070,23 +7371,23 @@ class BinaryDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder @@ -7135,7 +7436,7 @@ class FormatReadSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str """ @@ -7169,7 +7470,7 @@ class BinaryReadSettings(FormatReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param compression_properties: Compression settings. @@ -7202,24 +7503,27 @@ class BinarySink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Binary store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreWriteSettings """ @@ -7236,6 +7540,7 @@ class BinarySink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreWriteSettings'}, } @@ -7255,18 +7560,21 @@ class BinarySource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Binary store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param format_settings: Binary format settings. @@ -7283,6 +7591,7 @@ class BinarySource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreReadSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'BinaryReadSettings'}, } @@ -7309,7 +7618,7 @@ class Trigger(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -7318,7 +7627,7 @@ class Trigger(msrest.serialization.Model): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] """ _validation = { @@ -7362,7 +7671,7 @@ class MultiplePipelineTrigger(Trigger): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -7371,7 +7680,7 @@ class MultiplePipelineTrigger(Trigger): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] :param pipelines: Pipelines that need to be started. :type pipelines: list[~azure.mgmt.datafactory.models.TriggerPipelineReference] """ @@ -7412,7 +7721,7 @@ class BlobEventsTrigger(MultiplePipelineTrigger): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -7421,7 +7730,7 @@ class BlobEventsTrigger(MultiplePipelineTrigger): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] :param pipelines: Pipelines that need to be started. :type pipelines: list[~azure.mgmt.datafactory.models.TriggerPipelineReference] :param blob_path_begins_with: The blob path must begin with the pattern provided for trigger to @@ -7436,7 +7745,7 @@ class BlobEventsTrigger(MultiplePipelineTrigger): :param ignore_empty_blobs: If set to true, blobs with zero bytes will be ignored. :type ignore_empty_blobs: bool :param events: Required. The type of events that cause this trigger to fire. - :type events: list[str or ~azure.mgmt.datafactory.models.BlobEventTypesEnum] + :type events: list[str or ~azure.mgmt.datafactory.models.BlobEventTypes] :param scope: Required. The ARM resource ID of the Storage Account. :type scope: str """ @@ -7482,35 +7791,41 @@ class BlobSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param blob_writer_overwrite_files: Blob writer overwrite files. Type: boolean (or Expression with resultType boolean). - :type blob_writer_overwrite_files: object + :type blob_writer_overwrite_files: any :param blob_writer_date_time_format: Blob writer date time format. Type: string (or Expression with resultType string). - :type blob_writer_date_time_format: object + :type blob_writer_date_time_format: any :param blob_writer_add_header: Blob writer add header. Type: boolean (or Expression with resultType boolean). - :type blob_writer_add_header: object + :type blob_writer_add_header: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any + :param metadata: Specify the custom metadata to be added to sink data. Type: array of objects + (or Expression with resultType array of objects). + :type metadata: list[~azure.mgmt.datafactory.models.MetadataItem] """ _validation = { @@ -7525,10 +7840,12 @@ class BlobSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'blob_writer_overwrite_files': {'key': 'blobWriterOverwriteFiles', 'type': 'object'}, 'blob_writer_date_time_format': {'key': 'blobWriterDateTimeFormat', 'type': 'object'}, 'blob_writer_add_header': {'key': 'blobWriterAddHeader', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, } def __init__( @@ -7541,6 +7858,7 @@ def __init__( self.blob_writer_date_time_format = kwargs.get('blob_writer_date_time_format', None) self.blob_writer_add_header = kwargs.get('blob_writer_add_header', None) self.copy_behavior = kwargs.get('copy_behavior', None) + self.metadata = kwargs.get('metadata', None) class BlobSource(CopySource): @@ -7550,27 +7868,30 @@ class BlobSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param treat_empty_as_null: Treat empty as null. Type: boolean (or Expression with resultType boolean). - :type treat_empty_as_null: object + :type treat_empty_as_null: any :param skip_header_line_count: Number of header lines to skip from each blob. Type: integer (or Expression with resultType integer). - :type skip_header_line_count: object + :type skip_header_line_count: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any """ _validation = { @@ -7583,6 +7904,7 @@ class BlobSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'treat_empty_as_null': {'key': 'treatEmptyAsNull', 'type': 'object'}, 'skip_header_line_count': {'key': 'skipHeaderLineCount', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, @@ -7608,7 +7930,7 @@ class BlobTrigger(MultiplePipelineTrigger): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -7617,7 +7939,7 @@ class BlobTrigger(MultiplePipelineTrigger): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] :param pipelines: Pipelines that need to be started. :type pipelines: list[~azure.mgmt.datafactory.models.TriggerPipelineReference] :param folder_path: Required. The path of the container/folder that will trigger the pipeline. @@ -7667,7 +7989,7 @@ class CassandraLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -7677,25 +7999,25 @@ class CassandraLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. Host name for connection. Type: string (or Expression with resultType string). - :type host: object + :type host: any :param authentication_type: AuthenticationType to be used for connection. Type: string (or Expression with resultType string). - :type authentication_type: object + :type authentication_type: any :param port: The port for the connection. Type: integer (or Expression with resultType integer). - :type port: object + :type port: any :param username: Username for authentication. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password for authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -7739,27 +8061,30 @@ class CassandraSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Should be a SQL-92 query expression or Cassandra Query Language (CQL) command. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param consistency_level: The consistency level specifies how many Cassandra servers must respond to a read request before returning data to the client application. Cassandra checks the specified number of Cassandra servers for data to satisfy the read request. Must be one of @@ -7780,6 +8105,7 @@ class CassandraSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -7803,32 +8129,32 @@ class CassandraTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name of the Cassandra database. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any :param keyspace: The keyspace of the Cassandra database. Type: string (or Expression with resultType string). - :type keyspace: object + :type keyspace: any """ _validation = { @@ -7869,7 +8195,7 @@ class ChainingTrigger(Trigger): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -7878,7 +8204,7 @@ class ChainingTrigger(Trigger): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] :param pipeline: Required. Pipeline for which runs are created when all upstream pipelines complete successfully. :type pipeline: ~azure.mgmt.datafactory.models.TriggerPipelineReference @@ -7965,9 +8291,9 @@ class CmdkeySetup(CustomSetupBase): :param type: Required. The type of custom setup.Constant filled by server. :type type: str :param target_name: Required. The server name of data source access. - :type target_name: object + :type target_name: any :param user_name: Required. The user name of data source access. - :type user_name: object + :type user_name: any :param password: Required. The password of data source access. :type password: ~azure.mgmt.datafactory.models.SecretBase """ @@ -8024,29 +8350,29 @@ class CommonDataServiceForAppsEntityDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param entity_name: The logical name of the entity. Type: string (or Expression with resultType string). - :type entity_name: object + :type entity_name: any """ _validation = { @@ -8083,7 +8409,7 @@ class CommonDataServiceForAppsLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -8093,49 +8419,46 @@ class CommonDataServiceForAppsLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param deployment_type: Required. The deployment type of the Common Data Service for Apps instance. 'Online' for Common Data Service for Apps Online and 'OnPremisesWithIfd' for Common Data Service for Apps on-premises with Ifd. Type: string (or Expression with resultType - string). Possible values include: "Online", "OnPremisesWithIfd". - :type deployment_type: str or ~azure.mgmt.datafactory.models.DynamicsDeploymentType + string). + :type deployment_type: any :param host_name: The host name of the on-premises Common Data Service for Apps server. The property is required for on-prem and not allowed for online. Type: string (or Expression with resultType string). - :type host_name: object + :type host_name: any :param port: The port of on-premises Common Data Service for Apps server. The property is required for on-prem and not allowed for online. Default is 443. Type: integer (or Expression with resultType integer), minimum: 0. - :type port: object + :type port: any :param service_uri: The URL to the Microsoft Common Data Service for Apps server. The property is required for on-line and not allowed for on-prem. Type: string (or Expression with resultType string). - :type service_uri: object + :type service_uri: any :param organization_name: The organization name of the Common Data Service for Apps instance. The property is required for on-prem and required for online when there are more than one Common Data Service for Apps instances associated with the user. Type: string (or Expression with resultType string). - :type organization_name: object + :type organization_name: any :param authentication_type: Required. The authentication type to connect to Common Data Service for Apps server. 'Office365' for online scenario, 'Ifd' for on-premises with Ifd scenario. 'AADServicePrincipal' for Server-To-Server authentication in online scenario. Type: string (or - Expression with resultType string). Possible values include: "Office365", "Ifd", - "AADServicePrincipal". - :type authentication_type: str or ~azure.mgmt.datafactory.models.DynamicsAuthenticationType + Expression with resultType string). + :type authentication_type: any :param username: User name to access the Common Data Service for Apps instance. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password to access the Common Data Service for Apps instance. :type password: ~azure.mgmt.datafactory.models.SecretBase :param service_principal_id: The client ID of the application in Azure Active Directory used for Server-To-Server authentication. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_credential_type: The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' - for certificate. Type: string (or Expression with resultType string). Possible values include: - "ServicePrincipalKey", "ServicePrincipalCert". - :type service_principal_credential_type: str or - ~azure.mgmt.datafactory.models.DynamicsServicePrincipalCredentialType + for certificate. Type: string (or Expression with resultType string). + :type service_principal_credential_type: any :param service_principal_credential: The credential of the service principal object in Azure Active Directory. If servicePrincipalCredentialType is 'ServicePrincipalKey', servicePrincipalCredential can be SecureString or AzureKeyVaultSecretReference. If @@ -8145,7 +8468,7 @@ class CommonDataServiceForAppsLinkedService(LinkedService): :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -8161,16 +8484,16 @@ class CommonDataServiceForAppsLinkedService(LinkedService): 'description': {'key': 'description', 'type': 'str'}, 'parameters': {'key': 'parameters', 'type': '{ParameterSpecification}'}, 'annotations': {'key': 'annotations', 'type': '[object]'}, - 'deployment_type': {'key': 'typeProperties.deploymentType', 'type': 'str'}, + 'deployment_type': {'key': 'typeProperties.deploymentType', 'type': 'object'}, 'host_name': {'key': 'typeProperties.hostName', 'type': 'object'}, 'port': {'key': 'typeProperties.port', 'type': 'object'}, 'service_uri': {'key': 'typeProperties.serviceUri', 'type': 'object'}, 'organization_name': {'key': 'typeProperties.organizationName', 'type': 'object'}, - 'authentication_type': {'key': 'typeProperties.authenticationType', 'type': 'str'}, + 'authentication_type': {'key': 'typeProperties.authenticationType', 'type': 'object'}, 'username': {'key': 'typeProperties.username', 'type': 'object'}, 'password': {'key': 'typeProperties.password', 'type': 'SecretBase'}, 'service_principal_id': {'key': 'typeProperties.servicePrincipalId', 'type': 'object'}, - 'service_principal_credential_type': {'key': 'typeProperties.servicePrincipalCredentialType', 'type': 'str'}, + 'service_principal_credential_type': {'key': 'typeProperties.servicePrincipalCredentialType', 'type': 'object'}, 'service_principal_credential': {'key': 'typeProperties.servicePrincipalCredential', 'type': 'SecretBase'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, } @@ -8202,34 +8525,37 @@ class CommonDataServiceForAppsSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: Required. The write behavior for the operation. Possible values include: "Upsert". :type write_behavior: str or ~azure.mgmt.datafactory.models.DynamicsSinkWriteBehavior :param ignore_null_values: The flag indicating whether to ignore null values from input dataset (except key fields) during write operation. Default is false. Type: boolean (or Expression with resultType boolean). - :type ignore_null_values: object + :type ignore_null_values: any :param alternate_key_name: The logical name of the alternate key which will be used when upserting records. Type: string (or Expression with resultType string). - :type alternate_key_name: object + :type alternate_key_name: any """ _validation = { @@ -8245,6 +8571,7 @@ class CommonDataServiceForAppsSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'str'}, 'ignore_null_values': {'key': 'ignoreNullValues', 'type': 'object'}, 'alternate_key_name': {'key': 'alternateKeyName', 'type': 'object'}, @@ -8268,21 +8595,24 @@ class CommonDataServiceForAppsSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: FetchXML is a proprietary query language that is used in Microsoft Common Data Service for Apps (online & on-premises). Type: string (or Expression with resultType string). - :type query: object + :type query: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -8298,6 +8628,7 @@ class CommonDataServiceForAppsSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -8356,7 +8687,7 @@ class CompressionReadSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The Compression setting type.Constant filled by server. :type type: str """ @@ -8390,7 +8721,7 @@ class ConcurLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -8400,31 +8731,31 @@ class ConcurLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_properties: Properties used to connect to Concur. It is mutually exclusive with any other properties in the linked service. Type: object. - :type connection_properties: object + :type connection_properties: any :param client_id: Required. Application client_id supplied by Concur App Management. - :type client_id: object + :type client_id: any :param username: Required. The user name that you use to access Concur Service. - :type username: object + :type username: any :param password: The password corresponding to the user name that you provided in the username field. :type password: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -8473,28 +8804,28 @@ class ConcurObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -8531,27 +8862,30 @@ class ConcurSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -8564,6 +8898,7 @@ class ConcurSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -8613,48 +8948,6 @@ def __init__( self.status = None -class ControlActivity(Activity): - """Base class for all control activities like IfCondition, ForEach , Until. - - 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] - :param name: Required. Activity name. - :type name: str - :param type: Required. Type of activity.Constant filled by server. - :type type: str - :param description: Activity description. - :type description: str - :param depends_on: Activity depends on condition. - :type depends_on: list[~azure.mgmt.datafactory.models.ActivityDependency] - :param user_properties: Activity user properties. - :type user_properties: list[~azure.mgmt.datafactory.models.UserProperty] - """ - - _validation = { - 'name': {'required': True}, - 'type': {'required': True}, - } - - _attribute_map = { - 'additional_properties': {'key': '', 'type': '{object}'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - 'depends_on': {'key': 'dependsOn', 'type': '[ActivityDependency]'}, - 'user_properties': {'key': 'userProperties', 'type': '[UserProperty]'}, - } - - def __init__( - self, - **kwargs - ): - super(ControlActivity, self).__init__(**kwargs) - self.type = 'Container' # type: str - - class CopyActivity(ExecutionActivity): """Copy activity. @@ -8662,7 +8955,7 @@ class CopyActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -8686,22 +8979,22 @@ class CopyActivity(ExecutionActivity): :param sink: Required. Copy activity sink. :type sink: ~azure.mgmt.datafactory.models.CopySink :param translator: Copy activity translator. If not specified, tabular translator is used. - :type translator: object + :type translator: any :param enable_staging: Specifies whether to copy data via an interim staging. Default value is false. Type: boolean (or Expression with resultType boolean). - :type enable_staging: object + :type enable_staging: any :param staging_settings: Specifies interim staging settings when EnableStaging is true. :type staging_settings: ~azure.mgmt.datafactory.models.StagingSettings :param parallel_copies: Maximum number of concurrent sessions opened on the source or sink to avoid overloading the data store. Type: integer (or Expression with resultType integer), minimum: 0. - :type parallel_copies: object + :type parallel_copies: any :param data_integration_units: Maximum number of data integration units that can be used to perform this data movement. Type: integer (or Expression with resultType integer), minimum: 0. - :type data_integration_units: object + :type data_integration_units: any :param enable_skip_incompatible_row: Whether to skip incompatible row. Default value is false. Type: boolean (or Expression with resultType boolean). - :type enable_skip_incompatible_row: object + :type enable_skip_incompatible_row: any :param redirect_incompatible_row_settings: Redirect incompatible row settings when EnableSkipIncompatibleRow is true. :type redirect_incompatible_row_settings: @@ -8712,12 +9005,12 @@ class CopyActivity(ExecutionActivity): :param log_settings: Log settings customer needs provide when enabling log. :type log_settings: ~azure.mgmt.datafactory.models.LogSettings :param preserve_rules: Preserve Rules. - :type preserve_rules: list[object] + :type preserve_rules: list[any] :param preserve: Preserve rules. - :type preserve: list[object] + :type preserve: list[any] :param validate_data_consistency: Whether to enable Data Consistency validation. Type: boolean (or Expression with resultType boolean). - :type validate_data_consistency: object + :type validate_data_consistency: any :param skip_error_file: Specify the fault tolerance for data consistency. :type skip_error_file: ~azure.mgmt.datafactory.models.SkipErrorFile """ @@ -8787,10 +9080,10 @@ class CopyActivityLogSettings(msrest.serialization.Model): :param log_level: Gets or sets the log level, support: Info, Warning. Type: string (or Expression with resultType string). - :type log_level: object + :type log_level: any :param enable_reliable_logging: Specifies whether to enable reliable logging. Type: boolean (or Expression with resultType boolean). - :type enable_reliable_logging: object + :type enable_reliable_logging: any """ _attribute_map = { @@ -8817,7 +9110,7 @@ class CopyTranslator(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy translator type.Constant filled by server. :type type: str """ @@ -8851,7 +9144,7 @@ class CosmosDbLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -8861,21 +9154,21 @@ class CosmosDbLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: The connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param account_endpoint: The endpoint of the Azure CosmosDB account. Type: string (or Expression with resultType string). - :type account_endpoint: object + :type account_endpoint: any :param database: The name of the database. Type: string (or Expression with resultType string). - :type database: object + :type database: any :param account_key: The account key of the Azure CosmosDB account. Type: SecureString or AzureKeyVaultSecretReference. :type account_key: ~azure.mgmt.datafactory.models.SecretBase :param service_principal_id: The client ID of the application in Azure Active Directory used for Server-To-Server authentication. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_credential_type: The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' for certificate. Type: string (or Expression with resultType string). Possible values include: @@ -8890,18 +9183,18 @@ class CosmosDbLinkedService(LinkedService): :type service_principal_credential: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param connection_mode: The connection mode used to access CosmosDB account. Type: string (or Expression with resultType string). Possible values include: "Gateway", "Direct". :type connection_mode: str or ~azure.mgmt.datafactory.models.CosmosDbConnectionMode :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -8954,29 +9247,29 @@ class CosmosDbMongoDbApiCollectionDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param collection: Required. The collection name of the CosmosDB (MongoDB API) database. Type: string (or Expression with resultType string). - :type collection: object + :type collection: any """ _validation = { @@ -9014,7 +9307,7 @@ class CosmosDbMongoDbApiLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -9024,14 +9317,14 @@ class CosmosDbMongoDbApiLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The CosmosDB (MongoDB API) connection string. Type: string, SecureString or AzureKeyVaultSecretReference. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param database: Required. The name of the CosmosDB (MongoDB API) database that you want to access. Type: string (or Expression with resultType string). - :type database: object + :type database: any """ _validation = { @@ -9068,28 +9361,31 @@ class CosmosDbMongoDbApiSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: Specifies whether the document with same key to be overwritten (upsert) rather than throw exception (insert). The default value is "insert". Type: string (or Expression with resultType string). Type: string (or Expression with resultType string). - :type write_behavior: object + :type write_behavior: any """ _validation = { @@ -9104,6 +9400,7 @@ class CosmosDbMongoDbApiSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'object'}, } @@ -9123,32 +9420,35 @@ class CosmosDbMongoDbApiSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param filter: Specifies selection filter using query operators. To return all documents in a collection, omit this parameter or pass an empty document ({}). Type: string (or Expression with resultType string). - :type filter: object + :type filter: any :param cursor_methods: Cursor methods for Mongodb query. :type cursor_methods: ~azure.mgmt.datafactory.models.MongoDbCursorMethodsProperties :param batch_size: Specifies the number of documents to return in each batch of the response from MongoDB instance. In most cases, modifying the batch size will not affect the user or the application. This property's main purpose is to avoid hit the limitation of response size. Type: integer (or Expression with resultType integer). - :type batch_size: object + :type batch_size: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -9164,6 +9464,7 @@ class CosmosDbMongoDbApiSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'filter': {'key': 'filter', 'type': 'object'}, 'cursor_methods': {'key': 'cursorMethods', 'type': 'MongoDbCursorMethodsProperties'}, 'batch_size': {'key': 'batchSize', 'type': 'object'}, @@ -9191,29 +9492,29 @@ class CosmosDbSqlApiCollectionDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param collection_name: Required. CosmosDB (SQL API) collection name. Type: string (or Expression with resultType string). - :type collection_name: object + :type collection_name: any """ _validation = { @@ -9251,27 +9552,30 @@ class CosmosDbSqlApiSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: Describes how to write data to Azure Cosmos DB. Type: string (or Expression with resultType string). Allowed values: insert and upsert. - :type write_behavior: object + :type write_behavior: any """ _validation = { @@ -9286,6 +9590,7 @@ class CosmosDbSqlApiSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'object'}, } @@ -9305,29 +9610,32 @@ class CosmosDbSqlApiSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: SQL API query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param page_size: Page size of the result. Type: integer (or Expression with resultType integer). - :type page_size: object + :type page_size: any :param preferred_regions: Preferred regions. Type: array of strings (or Expression with resultType array of strings). - :type preferred_regions: object + :type preferred_regions: any :param detect_datetime: Whether detect primitive values as datetime values. Type: boolean (or Expression with resultType boolean). - :type detect_datetime: object + :type detect_datetime: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -9343,6 +9651,7 @@ class CosmosDbSqlApiSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'page_size': {'key': 'pageSize', 'type': 'object'}, 'preferred_regions': {'key': 'preferredRegions', 'type': 'object'}, @@ -9370,7 +9679,7 @@ class CouchbaseLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -9380,16 +9689,16 @@ class CouchbaseLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param cred_string: The Azure key vault secret reference of credString in connection string. :type cred_string: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -9426,27 +9735,30 @@ class CouchbaseSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -9459,6 +9771,7 @@ class CouchbaseSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -9480,28 +9793,28 @@ class CouchbaseTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -9646,6 +9959,172 @@ def __init__( self.run_id = kwargs['run_id'] +class Credential(msrest.serialization.Model): + """The Azure Data Factory nested object which contains the information and credential which can be used to connect with related store or compute resource. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: ManagedIdentityCredential, ServicePrincipalCredential. + + 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, any] + :param type: Required. Type of credential.Constant filled by server. + :type type: str + :param description: Credential description. + :type description: str + :param annotations: List of tags that can be used for describing the Credential. + :type annotations: list[any] + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'type': {'key': 'type', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'annotations': {'key': 'annotations', 'type': '[object]'}, + } + + _subtype_map = { + 'type': {'ManagedIdentity': 'ManagedIdentityCredential', 'ServicePrincipal': 'ServicePrincipalCredential'} + } + + def __init__( + self, + **kwargs + ): + super(Credential, self).__init__(**kwargs) + self.additional_properties = kwargs.get('additional_properties', None) + self.type = 'Credential' # type: str + self.description = kwargs.get('description', None) + self.annotations = kwargs.get('annotations', None) + + +class CredentialReference(msrest.serialization.Model): + """Credential reference type. + + 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, any] + :ivar type: Credential reference type. Has constant value: "CredentialReference". + :vartype type: str + :param reference_name: Required. Reference credential name. + :type reference_name: str + """ + + _validation = { + 'type': {'required': True, 'constant': True}, + 'reference_name': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'type': {'key': 'type', 'type': 'str'}, + 'reference_name': {'key': 'referenceName', 'type': 'str'}, + } + + type = "CredentialReference" + + def __init__( + self, + **kwargs + ): + super(CredentialReference, self).__init__(**kwargs) + self.additional_properties = kwargs.get('additional_properties', None) + self.reference_name = kwargs['reference_name'] + + +class SubResource(msrest.serialization.Model): + """Azure Data Factory nested resource, which belongs to a factory. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The resource identifier. + :vartype id: str + :ivar name: The resource name. + :vartype name: str + :ivar type: The resource type. + :vartype type: str + :ivar etag: Etag identifies change in the resource. + :vartype etag: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SubResource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.etag = None + + +class CredentialResource(SubResource): + """Credential resource type. + + 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 resource identifier. + :vartype id: str + :ivar name: The resource name. + :vartype name: str + :ivar type: The resource type. + :vartype type: str + :ivar etag: Etag identifies change in the resource. + :vartype etag: str + :param properties: Required. Properties of credentials. + :type properties: ~azure.mgmt.datafactory.models.Credential + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'Credential'}, + } + + def __init__( + self, + **kwargs + ): + super(CredentialResource, self).__init__(**kwargs) + self.properties = kwargs['properties'] + + class CustomActivity(ExecutionActivity): """Custom activity type. @@ -9653,7 +10132,7 @@ class CustomActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -9670,24 +10149,24 @@ class CustomActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param command: Required. Command for custom activity Type: string (or Expression with resultType string). - :type command: object + :type command: any :param resource_linked_service: Resource linked service reference. :type resource_linked_service: ~azure.mgmt.datafactory.models.LinkedServiceReference :param folder_path: Folder path for resource files Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param reference_objects: Reference objects. :type reference_objects: ~azure.mgmt.datafactory.models.CustomActivityReferenceObject :param extended_properties: User defined property bag. There is no restriction on the keys or values that can be used. The user specified custom activity has the full responsibility to consume and interpret the content defined. - :type extended_properties: dict[str, object] + :type extended_properties: dict[str, any] :param retention_time_in_days: The retention time for the files submitted for custom activity. Type: double (or Expression with resultType double). - :type retention_time_in_days: object + :type retention_time_in_days: any :param auto_user_specification: Elevation level and scope for the user, default is nonadmin task. Type: string (or Expression with resultType double). - :type auto_user_specification: object + :type auto_user_specification: any """ _validation = { @@ -9759,28 +10238,28 @@ class CustomDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param type_properties: Custom dataset properties. - :type type_properties: object + :type type_properties: any """ _validation = { @@ -9817,7 +10296,7 @@ class CustomDataSourceLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -9827,9 +10306,9 @@ class CustomDataSourceLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param type_properties: Required. Custom linked service properties. - :type type_properties: object + :type type_properties: any """ _validation = { @@ -9865,7 +10344,7 @@ class CustomEventsTrigger(MultiplePipelineTrigger): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -9874,7 +10353,7 @@ class CustomEventsTrigger(MultiplePipelineTrigger): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] :param pipelines: Pipelines that need to be started. :type pipelines: list[~azure.mgmt.datafactory.models.TriggerPipelineReference] :param subject_begins_with: The event subject must begin with the pattern provided for trigger @@ -9884,7 +10363,7 @@ class CustomEventsTrigger(MultiplePipelineTrigger): fire. At least one of these must be provided: subjectBeginsWith, subjectEndsWith. :type subject_ends_with: str :param events: Required. The list of event types that cause this trigger to fire. - :type events: list[object] + :type events: list[any] :param scope: Required. The ARM resource ID of the Azure Event Grid Topic. :type scope: str """ @@ -9928,7 +10407,7 @@ class DatabricksNotebookActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -9946,12 +10425,12 @@ class DatabricksNotebookActivity(ExecutionActivity): :param notebook_path: Required. The absolute path of the notebook to be run in the Databricks Workspace. This path must begin with a slash. Type: string (or Expression with resultType string). - :type notebook_path: object + :type notebook_path: any :param base_parameters: Base parameters to be used for each run of this job.If the notebook takes a parameter that is not specified, the default value from the notebook will be used. - :type base_parameters: dict[str, object] + :type base_parameters: dict[str, any] :param libraries: A list of libraries to be installed on the cluster that will execute the job. - :type libraries: list[dict[str, object]] + :type libraries: list[dict[str, any]] """ _validation = { @@ -9992,7 +10471,7 @@ class DatabricksSparkJarActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -10010,11 +10489,11 @@ class DatabricksSparkJarActivity(ExecutionActivity): :param main_class_name: Required. The full name of the class containing the main method to be executed. This class must be contained in a JAR provided as a library. Type: string (or Expression with resultType string). - :type main_class_name: object + :type main_class_name: any :param parameters: Parameters that will be passed to the main method. - :type parameters: list[object] + :type parameters: list[any] :param libraries: A list of libraries to be installed on the cluster that will execute the job. - :type libraries: list[dict[str, object]] + :type libraries: list[dict[str, any]] """ _validation = { @@ -10055,7 +10534,7 @@ class DatabricksSparkPythonActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -10072,11 +10551,11 @@ class DatabricksSparkPythonActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param python_file: Required. The URI of the Python file to be executed. DBFS paths are supported. Type: string (or Expression with resultType string). - :type python_file: object + :type python_file: any :param parameters: Command line parameters that will be passed to the Python file. - :type parameters: list[object] + :type parameters: list[any] :param libraries: A list of libraries to be installed on the cluster that will execute the job. - :type libraries: list[dict[str, object]] + :type libraries: list[dict[str, any]] """ _validation = { @@ -10116,17 +10595,23 @@ class DataFlow(msrest.serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: MappingDataFlow. - :param type: Type of data flow.Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Type of data flow.Constant filled by server. :type type: str :param description: The description of the data flow. :type description: str :param annotations: List of tags that can be used for describing the data flow. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this data flow is in. If not specified, Data flow will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DataFlowFolder """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str'}, 'description': {'key': 'description', 'type': 'str'}, @@ -10242,7 +10727,7 @@ class DataFlowDebugPackage(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param session_id: The ID of data flow debug session. :type session_id: str :param data_flow: Data flow instance. @@ -10287,9 +10772,9 @@ class DataFlowDebugPackageDebugSettings(msrest.serialization.Model): :param source_settings: Source setting for data flow debug. :type source_settings: list[~azure.mgmt.datafactory.models.DataFlowSourceSetting] :param parameters: Data flow parameters. - :type parameters: dict[str, object] + :type parameters: dict[str, any] :param dataset_parameters: Parameters for dataset. - :type dataset_parameters: object + :type dataset_parameters: any """ _attribute_map = { @@ -10360,7 +10845,7 @@ class DataFlowDebugSessionInfo(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param data_flow_name: The name of the data flow. :type data_flow_name: str :param compute_type: Compute type of the cluster. @@ -10468,13 +10953,13 @@ class DataFlowReference(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] - :ivar type: Required. Data flow reference type. Default value: "DataFlowReference". + :type additional_properties: dict[str, any] + :ivar type: Data flow reference type. Has constant value: "DataFlowReference". :vartype type: str :param reference_name: Required. Reference data flow name. :type reference_name: str :param dataset_parameters: Reference data flow parameters from dataset. - :type dataset_parameters: object + :type dataset_parameters: any """ _validation = { @@ -10501,46 +10986,6 @@ def __init__( self.dataset_parameters = kwargs.get('dataset_parameters', None) -class SubResource(msrest.serialization.Model): - """Azure Data Factory nested resource, which belongs to a factory. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: The resource identifier. - :vartype id: str - :ivar name: The resource name. - :vartype name: str - :ivar type: The resource type. - :vartype type: str - :ivar etag: Etag identifies change in the resource. - :vartype etag: str - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'etag': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'etag': {'key': 'etag', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(SubResource, self).__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.etag = None - - class DataFlowResource(SubResource): """Data flow resource type. @@ -10696,7 +11141,7 @@ class DataFlowSourceSetting(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param source_name: The data flow source name. :type source_name: str :param row_limit: Defines the row limit of data flow source in debug. @@ -10726,7 +11171,7 @@ class DataFlowStagingInfo(msrest.serialization.Model): :type linked_service: ~azure.mgmt.datafactory.models.LinkedServiceReference :param folder_path: Folder path for staging blob. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any """ _attribute_map = { @@ -10750,7 +11195,7 @@ class DataLakeAnalyticsUSQLActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -10767,24 +11212,24 @@ class DataLakeAnalyticsUSQLActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param script_path: Required. Case-sensitive path to folder that contains the U-SQL script. Type: string (or Expression with resultType string). - :type script_path: object + :type script_path: any :param script_linked_service: Required. Script linked service reference. :type script_linked_service: ~azure.mgmt.datafactory.models.LinkedServiceReference :param degree_of_parallelism: The maximum number of nodes simultaneously used to run the job. Default value is 1. Type: integer (or Expression with resultType integer), minimum: 1. - :type degree_of_parallelism: object + :type degree_of_parallelism: any :param priority: Determines which jobs out of all that are queued should be selected to run first. The lower the number, the higher the priority. Default value is 1000. Type: integer (or Expression with resultType integer), minimum: 1. - :type priority: object + :type priority: any :param parameters: Parameters for U-SQL job request. - :type parameters: dict[str, object] + :type parameters: dict[str, any] :param runtime_version: Runtime version of the U-SQL engine to use. Type: string (or Expression with resultType string). - :type runtime_version: object + :type runtime_version: any :param compilation_mode: Compilation mode of U-SQL. Must be one of these values : Semantic, Full and SingleBox. Type: string (or Expression with resultType string). - :type compilation_mode: object + :type compilation_mode: any """ _validation = { @@ -10837,7 +11282,7 @@ class DatasetCompression(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset compression.Constant filled by server. :type type: str """ @@ -10871,7 +11316,7 @@ class DatasetBZip2Compression(DatasetCompression): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset compression.Constant filled by server. :type type: str """ @@ -10897,9 +11342,9 @@ class DatasetDataElement(msrest.serialization.Model): """Columns that define the structure of the dataset. :param name: Name of the column. Type: string (or Expression with resultType string). - :type name: object + :type name: any :param type: Type of the column. Type: string (or Expression with resultType string). - :type type: object + :type type: any """ _attribute_map = { @@ -10951,11 +11396,11 @@ class DatasetDeflateCompression(DatasetCompression): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset compression.Constant filled by server. :type type: str - :param level: The Deflate compression level. Possible values include: "Optimal", "Fastest". - :type level: str or ~azure.mgmt.datafactory.models.DatasetCompressionLevel + :param level: The Deflate compression level. + :type level: any """ _validation = { @@ -10965,7 +11410,7 @@ class DatasetDeflateCompression(DatasetCompression): _attribute_map = { 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, - 'level': {'key': 'level', 'type': 'str'}, + 'level': {'key': 'level', 'type': 'object'}, } def __init__( @@ -11003,11 +11448,11 @@ class DatasetGZipCompression(DatasetCompression): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset compression.Constant filled by server. :type type: str - :param level: The GZip compression level. Possible values include: "Optimal", "Fastest". - :type level: str or ~azure.mgmt.datafactory.models.DatasetCompressionLevel + :param level: The GZip compression level. + :type level: any """ _validation = { @@ -11017,7 +11462,7 @@ class DatasetGZipCompression(DatasetCompression): _attribute_map = { 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, - 'level': {'key': 'level', 'type': 'str'}, + 'level': {'key': 'level', 'type': 'object'}, } def __init__( @@ -11065,12 +11510,12 @@ class DatasetReference(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar type: Required. Dataset reference type. Default value: "DatasetReference". + :ivar type: Dataset reference type. Has constant value: "DatasetReference". :vartype type: str :param reference_name: Required. Reference dataset name. :type reference_name: str :param parameters: Arguments for dataset. - :type parameters: dict[str, object] + :type parameters: dict[str, any] """ _validation = { @@ -11143,11 +11588,11 @@ class DatasetSchemaDataElement(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Name of the schema column. Type: string (or Expression with resultType string). - :type name: object + :type name: any :param type: Type of the schema column. Type: string (or Expression with resultType string). - :type type: object + :type type: any """ _attribute_map = { @@ -11173,7 +11618,7 @@ class DatasetTarCompression(DatasetCompression): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset compression.Constant filled by server. :type type: str """ @@ -11202,11 +11647,11 @@ class DatasetTarGZipCompression(DatasetCompression): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset compression.Constant filled by server. :type type: str - :param level: The TarGZip compression level. Possible values include: "Optimal", "Fastest". - :type level: str or ~azure.mgmt.datafactory.models.DatasetCompressionLevel + :param level: The TarGZip compression level. + :type level: any """ _validation = { @@ -11216,7 +11661,7 @@ class DatasetTarGZipCompression(DatasetCompression): _attribute_map = { 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, - 'level': {'key': 'level', 'type': 'str'}, + 'level': {'key': 'level', 'type': 'object'}, } def __init__( @@ -11235,11 +11680,11 @@ class DatasetZipDeflateCompression(DatasetCompression): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset compression.Constant filled by server. :type type: str - :param level: The ZipDeflate compression level. Possible values include: "Optimal", "Fastest". - :type level: str or ~azure.mgmt.datafactory.models.DatasetCompressionLevel + :param level: The ZipDeflate compression level. + :type level: any """ _validation = { @@ -11249,7 +11694,7 @@ class DatasetZipDeflateCompression(DatasetCompression): _attribute_map = { 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, - 'level': {'key': 'level', 'type': 'str'}, + 'level': {'key': 'level', 'type': 'object'}, } def __init__( @@ -11268,7 +11713,7 @@ class Db2LinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -11278,36 +11723,36 @@ class Db2LinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: The connection string. It is mutually exclusive with server, database, authenticationType, userName, packageCollection and certificateCommonName property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param server: Server name for connection. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param database: Database name for connection. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string). - :type database: object + :type database: any :param authentication_type: AuthenticationType to be used for connection. It is mutually exclusive with connectionString property. Possible values include: "Basic". :type authentication_type: str or ~azure.mgmt.datafactory.models.Db2AuthenticationType :param username: Username for authentication. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password for authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param package_collection: Under where packages are created when querying database. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string). - :type package_collection: object + :type package_collection: any :param certificate_common_name: Certificate Common Name when TLS is enabled. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string). - :type certificate_common_name: object + :type certificate_common_name: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -11356,26 +11801,29 @@ class Db2Source(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -11388,6 +11836,7 @@ class Db2Source(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -11409,34 +11858,34 @@ class Db2TableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param schema_type_properties_schema: The Db2 schema name. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any :param table: The Db2 table name. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -11477,7 +11926,7 @@ class DeleteActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -11494,13 +11943,13 @@ class DeleteActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param recursive: If true, files or sub-folders under current folder path will be deleted recursively. Default is false. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param max_concurrent_connections: The max concurrent connections to connect data source at the same time. :type max_concurrent_connections: int :param enable_logging: Whether to record detailed logs of delete-activity execution. Default value is false. Type: boolean (or Expression with resultType boolean). - :type enable_logging: object + :type enable_logging: any :param log_storage_settings: Log storage settings customer need to provide when enableLogging is true. :type log_storage_settings: ~azure.mgmt.datafactory.models.LogStorageSettings @@ -11574,23 +12023,23 @@ class DelimitedTextDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder @@ -11598,31 +12047,30 @@ class DelimitedTextDataset(Dataset): :type location: ~azure.mgmt.datafactory.models.DatasetLocation :param column_delimiter: The column delimiter. Type: string (or Expression with resultType string). - :type column_delimiter: object + :type column_delimiter: any :param row_delimiter: The row delimiter. Type: string (or Expression with resultType string). - :type row_delimiter: object + :type row_delimiter: any :param encoding_name: The code page name of the preferred encoding. If miss, the default value is UTF-8, unless BOM denotes another Unicode encoding. Refer to the name column of the table in the following link to set supported values: https://msdn.microsoft.com/library/system.text.encoding.aspx. Type: string (or Expression with resultType string). - :type encoding_name: object - :param compression_codec: Possible values include: "none", "gzip", "snappy", "lzo", "bzip2", - "deflate", "zipDeflate", "lz4", "tar", "tarGZip". - :type compression_codec: str or ~azure.mgmt.datafactory.models.CompressionCodec - :param compression_level: The data compression method used for DelimitedText. Possible values - include: "Optimal", "Fastest". - :type compression_level: str or ~azure.mgmt.datafactory.models.DatasetCompressionLevel + :type encoding_name: any + :param compression_codec: The data compressionCodec. Type: string (or Expression with + resultType string). + :type compression_codec: any + :param compression_level: The data compression method used for DelimitedText. + :type compression_level: any :param quote_char: The quote character. Type: string (or Expression with resultType string). - :type quote_char: object + :type quote_char: any :param escape_char: The escape character. Type: string (or Expression with resultType string). - :type escape_char: object + :type escape_char: any :param first_row_as_header: When used as input, treat the first row of data as headers. When used as output,write the headers into the output as the first row of data. The default value is false. Type: boolean (or Expression with resultType boolean). - :type first_row_as_header: object + :type first_row_as_header: any :param null_value: The null value string. Type: string (or Expression with resultType string). - :type null_value: object + :type null_value: any """ _validation = { @@ -11644,8 +12092,8 @@ class DelimitedTextDataset(Dataset): 'column_delimiter': {'key': 'typeProperties.columnDelimiter', 'type': 'object'}, 'row_delimiter': {'key': 'typeProperties.rowDelimiter', 'type': 'object'}, 'encoding_name': {'key': 'typeProperties.encodingName', 'type': 'object'}, - 'compression_codec': {'key': 'typeProperties.compressionCodec', 'type': 'str'}, - 'compression_level': {'key': 'typeProperties.compressionLevel', 'type': 'str'}, + 'compression_codec': {'key': 'typeProperties.compressionCodec', 'type': 'object'}, + 'compression_level': {'key': 'typeProperties.compressionLevel', 'type': 'object'}, 'quote_char': {'key': 'typeProperties.quoteChar', 'type': 'object'}, 'escape_char': {'key': 'typeProperties.escapeChar', 'type': 'object'}, 'first_row_as_header': {'key': 'typeProperties.firstRowAsHeader', 'type': 'object'}, @@ -11677,12 +12125,12 @@ class DelimitedTextReadSettings(FormatReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param skip_line_count: Indicates the number of non-empty rows to skip when reading data from input files. Type: integer (or Expression with resultType integer). - :type skip_line_count: object + :type skip_line_count: any :param compression_properties: Compression settings. :type compression_properties: ~azure.mgmt.datafactory.models.CompressionReadSettings """ @@ -11715,24 +12163,27 @@ class DelimitedTextSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: DelimitedText store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreWriteSettings :param format_settings: DelimitedText format settings. @@ -11751,6 +12202,7 @@ class DelimitedTextSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreWriteSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'DelimitedTextWriteSettings'}, } @@ -11772,18 +12224,21 @@ class DelimitedTextSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: DelimitedText store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param format_settings: DelimitedText format settings. @@ -11803,6 +12258,7 @@ class DelimitedTextSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreReadSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'DelimitedTextReadSettings'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, @@ -11826,22 +12282,22 @@ class DelimitedTextWriteSettings(FormatWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param quote_all_text: Indicates whether string values should always be enclosed with quotes. Type: boolean (or Expression with resultType boolean). - :type quote_all_text: object + :type quote_all_text: any :param file_extension: Required. The file extension used to create the files. Type: string (or Expression with resultType string). - :type file_extension: object + :type file_extension: any :param max_rows_per_file: Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer). - :type max_rows_per_file: object + :type max_rows_per_file: any :param file_name_prefix: Specifies the file name pattern :code:``_:code:``.:code:`` when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string). - :type file_name_prefix: object + :type file_name_prefix: any """ _validation = { @@ -11909,14 +12365,14 @@ class DistcpSettings(msrest.serialization.Model): :param resource_manager_endpoint: Required. Specifies the Yarn ResourceManager endpoint. Type: string (or Expression with resultType string). - :type resource_manager_endpoint: object + :type resource_manager_endpoint: any :param temp_script_path: Required. Specifies an existing folder path which will be used to store temp Distcp command script. The script file is generated by ADF and will be removed after Copy job finished. Type: string (or Expression with resultType string). - :type temp_script_path: object + :type temp_script_path: any :param distcp_options: Specifies the Distcp options. Type: string (or Expression with resultType string). - :type distcp_options: object + :type distcp_options: any """ _validation = { @@ -11947,29 +12403,29 @@ class DocumentDbCollectionDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param collection_name: Required. Document Database collection name. Type: string (or Expression with resultType string). - :type collection_name: object + :type collection_name: any """ _validation = { @@ -12007,30 +12463,33 @@ class DocumentDbCollectionSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param nesting_separator: Nested properties separator. Default is . (dot). Type: string (or Expression with resultType string). - :type nesting_separator: object + :type nesting_separator: any :param write_behavior: Describes how to write data to Azure Cosmos DB. Type: string (or Expression with resultType string). Allowed values: insert and upsert. - :type write_behavior: object + :type write_behavior: any """ _validation = { @@ -12045,6 +12504,7 @@ class DocumentDbCollectionSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'nesting_separator': {'key': 'nestingSeparator', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'object'}, } @@ -12066,26 +12526,29 @@ class DocumentDbCollectionSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: Documents query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param nesting_separator: Nested properties separator. Type: string (or Expression with resultType string). - :type nesting_separator: object + :type nesting_separator: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -12101,6 +12564,7 @@ class DocumentDbCollectionSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'nesting_separator': {'key': 'nestingSeparator', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, @@ -12126,7 +12590,7 @@ class DrillLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -12136,16 +12600,16 @@ class DrillLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param pwd: The Azure key vault secret reference of password in connection string. :type pwd: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -12182,27 +12646,30 @@ class DrillSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -12215,6 +12682,7 @@ class DrillSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -12236,34 +12704,34 @@ class DrillTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Drill. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Drill. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -12301,10 +12769,10 @@ class DWCopyCommandDefaultValue(msrest.serialization.Model): """Default value. :param column_name: Column name. Type: object (or Expression with resultType string). - :type column_name: object + :type column_name: any :param default_value: The default value of the column. Type: object (or Expression with resultType string). - :type default_value: object + :type default_value: any """ _attribute_map = { @@ -12356,7 +12824,7 @@ class DynamicsAXLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -12366,13 +12834,13 @@ class DynamicsAXLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. The Dynamics AX (or Dynamics 365 Finance and Operations) instance OData endpoint. - :type url: object + :type url: any :param service_principal_id: Required. Specify the application's client ID. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: Required. Specify the application's key. Mark this field as a SecureString to store it securely in Data Factory, or reference a secret stored in Azure Key Vault. Type: string (or Expression with resultType string). @@ -12380,14 +12848,14 @@ class DynamicsAXLinkedService(LinkedService): :param tenant: Required. Specify the tenant information (domain name or tenant ID) under which your application resides. Retrieve it by hovering the mouse in the top-right corner of the Azure portal. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param aad_resource_id: Required. Specify the resource you are requesting authorization. Type: string (or Expression with resultType string). - :type aad_resource_id: object + :type aad_resource_id: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -12435,29 +12903,29 @@ class DynamicsAXResourceDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param path: Required. The path of the Dynamics AX OData entity. Type: string (or Expression with resultType string). - :type path: object + :type path: any """ _validation = { @@ -12495,32 +12963,35 @@ class DynamicsAXSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any """ _validation = { @@ -12533,6 +13004,7 @@ class DynamicsAXSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -12556,29 +13028,29 @@ class DynamicsCrmEntityDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param entity_name: The logical name of the entity. Type: string (or Expression with resultType string). - :type entity_name: object + :type entity_name: any """ _validation = { @@ -12615,7 +13087,7 @@ class DynamicsCrmLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -12625,47 +13097,43 @@ class DynamicsCrmLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param deployment_type: Required. The deployment type of the Dynamics CRM instance. 'Online' for Dynamics CRM Online and 'OnPremisesWithIfd' for Dynamics CRM on-premises with Ifd. Type: - string (or Expression with resultType string). Possible values include: "Online", - "OnPremisesWithIfd". - :type deployment_type: str or ~azure.mgmt.datafactory.models.DynamicsDeploymentType + string (or Expression with resultType string). + :type deployment_type: any :param host_name: The host name of the on-premises Dynamics CRM server. The property is required for on-prem and not allowed for online. Type: string (or Expression with resultType string). - :type host_name: object + :type host_name: any :param port: The port of on-premises Dynamics CRM server. The property is required for on-prem and not allowed for online. Default is 443. Type: integer (or Expression with resultType integer), minimum: 0. - :type port: object + :type port: any :param service_uri: The URL to the Microsoft Dynamics CRM server. The property is required for on-line and not allowed for on-prem. Type: string (or Expression with resultType string). - :type service_uri: object + :type service_uri: any :param organization_name: The organization name of the Dynamics CRM instance. The property is required for on-prem and required for online when there are more than one Dynamics CRM instances associated with the user. Type: string (or Expression with resultType string). - :type organization_name: object + :type organization_name: any :param authentication_type: Required. The authentication type to connect to Dynamics CRM server. 'Office365' for online scenario, 'Ifd' for on-premises with Ifd scenario, 'AADServicePrincipal' for Server-To-Server authentication in online scenario. Type: string (or - Expression with resultType string). Possible values include: "Office365", "Ifd", - "AADServicePrincipal". - :type authentication_type: str or ~azure.mgmt.datafactory.models.DynamicsAuthenticationType + Expression with resultType string). + :type authentication_type: any :param username: User name to access the Dynamics CRM instance. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password to access the Dynamics CRM instance. :type password: ~azure.mgmt.datafactory.models.SecretBase :param service_principal_id: The client ID of the application in Azure Active Directory used for Server-To-Server authentication. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_credential_type: The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' - for certificate. Type: string (or Expression with resultType string). Possible values include: - "ServicePrincipalKey", "ServicePrincipalCert". - :type service_principal_credential_type: str or - ~azure.mgmt.datafactory.models.DynamicsServicePrincipalCredentialType + for certificate. Type: string (or Expression with resultType string). + :type service_principal_credential_type: any :param service_principal_credential: The credential of the service principal object in Azure Active Directory. If servicePrincipalCredentialType is 'ServicePrincipalKey', servicePrincipalCredential can be SecureString or AzureKeyVaultSecretReference. If @@ -12675,7 +13143,7 @@ class DynamicsCrmLinkedService(LinkedService): :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -12691,16 +13159,16 @@ class DynamicsCrmLinkedService(LinkedService): 'description': {'key': 'description', 'type': 'str'}, 'parameters': {'key': 'parameters', 'type': '{ParameterSpecification}'}, 'annotations': {'key': 'annotations', 'type': '[object]'}, - 'deployment_type': {'key': 'typeProperties.deploymentType', 'type': 'str'}, + 'deployment_type': {'key': 'typeProperties.deploymentType', 'type': 'object'}, 'host_name': {'key': 'typeProperties.hostName', 'type': 'object'}, 'port': {'key': 'typeProperties.port', 'type': 'object'}, 'service_uri': {'key': 'typeProperties.serviceUri', 'type': 'object'}, 'organization_name': {'key': 'typeProperties.organizationName', 'type': 'object'}, - 'authentication_type': {'key': 'typeProperties.authenticationType', 'type': 'str'}, + 'authentication_type': {'key': 'typeProperties.authenticationType', 'type': 'object'}, 'username': {'key': 'typeProperties.username', 'type': 'object'}, 'password': {'key': 'typeProperties.password', 'type': 'SecretBase'}, 'service_principal_id': {'key': 'typeProperties.servicePrincipalId', 'type': 'object'}, - 'service_principal_credential_type': {'key': 'typeProperties.servicePrincipalCredentialType', 'type': 'str'}, + 'service_principal_credential_type': {'key': 'typeProperties.servicePrincipalCredentialType', 'type': 'object'}, 'service_principal_credential': {'key': 'typeProperties.servicePrincipalCredential', 'type': 'SecretBase'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, } @@ -12732,34 +13200,37 @@ class DynamicsCrmSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: Required. The write behavior for the operation. Possible values include: "Upsert". :type write_behavior: str or ~azure.mgmt.datafactory.models.DynamicsSinkWriteBehavior :param ignore_null_values: The flag indicating whether to ignore null values from input dataset (except key fields) during write operation. Default is false. Type: boolean (or Expression with resultType boolean). - :type ignore_null_values: object + :type ignore_null_values: any :param alternate_key_name: The logical name of the alternate key which will be used when upserting records. Type: string (or Expression with resultType string). - :type alternate_key_name: object + :type alternate_key_name: any """ _validation = { @@ -12775,6 +13246,7 @@ class DynamicsCrmSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'str'}, 'ignore_null_values': {'key': 'ignoreNullValues', 'type': 'object'}, 'alternate_key_name': {'key': 'alternateKeyName', 'type': 'object'}, @@ -12798,21 +13270,24 @@ class DynamicsCrmSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: FetchXML is a proprietary query language that is used in Microsoft Dynamics CRM (online & on-premises). Type: string (or Expression with resultType string). - :type query: object + :type query: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -12828,6 +13303,7 @@ class DynamicsCrmSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -12849,29 +13325,29 @@ class DynamicsEntityDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param entity_name: The logical name of the entity. Type: string (or Expression with resultType string). - :type entity_name: object + :type entity_name: any """ _validation = { @@ -12908,7 +13384,7 @@ class DynamicsLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -12918,44 +13394,42 @@ class DynamicsLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param deployment_type: Required. The deployment type of the Dynamics instance. 'Online' for Dynamics Online and 'OnPremisesWithIfd' for Dynamics on-premises with Ifd. Type: string (or - Expression with resultType string). Possible values include: "Online", "OnPremisesWithIfd". - :type deployment_type: str or ~azure.mgmt.datafactory.models.DynamicsDeploymentType + Expression with resultType string). + :type deployment_type: any :param host_name: The host name of the on-premises Dynamics server. The property is required for on-prem and not allowed for online. Type: string (or Expression with resultType string). - :type host_name: object + :type host_name: any :param port: The port of on-premises Dynamics server. The property is required for on-prem and not allowed for online. Default is 443. Type: integer (or Expression with resultType integer), minimum: 0. - :type port: object - :param service_uri: The URL to the Microsoft Dynamics server. The property is required for on- - line and not allowed for on-prem. Type: string (or Expression with resultType string). - :type service_uri: object + :type port: any + :param service_uri: The URL to the Microsoft Dynamics server. The property is required for + on-line and not allowed for on-prem. Type: string (or Expression with resultType string). + :type service_uri: any :param organization_name: The organization name of the Dynamics instance. The property is required for on-prem and required for online when there are more than one Dynamics instances associated with the user. Type: string (or Expression with resultType string). - :type organization_name: object + :type organization_name: any :param authentication_type: Required. The authentication type to connect to Dynamics server. 'Office365' for online scenario, 'Ifd' for on-premises with Ifd scenario, 'AADServicePrincipal' for Server-To-Server authentication in online scenario. Type: string (or Expression with - resultType string). Possible values include: "Office365", "Ifd", "AADServicePrincipal". - :type authentication_type: str or ~azure.mgmt.datafactory.models.DynamicsAuthenticationType + resultType string). + :type authentication_type: any :param username: User name to access the Dynamics instance. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password to access the Dynamics instance. :type password: ~azure.mgmt.datafactory.models.SecretBase :param service_principal_id: The client ID of the application in Azure Active Directory used for Server-To-Server authentication. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_credential_type: The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' - for certificate. Type: string (or Expression with resultType string). Possible values include: - "ServicePrincipalKey", "ServicePrincipalCert". - :type service_principal_credential_type: str or - ~azure.mgmt.datafactory.models.DynamicsServicePrincipalCredentialType + for certificate. Type: string (or Expression with resultType string). + :type service_principal_credential_type: str :param service_principal_credential: The credential of the service principal object in Azure Active Directory. If servicePrincipalCredentialType is 'ServicePrincipalKey', servicePrincipalCredential can be SecureString or AzureKeyVaultSecretReference. If @@ -12965,7 +13439,7 @@ class DynamicsLinkedService(LinkedService): :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -12981,12 +13455,12 @@ class DynamicsLinkedService(LinkedService): 'description': {'key': 'description', 'type': 'str'}, 'parameters': {'key': 'parameters', 'type': '{ParameterSpecification}'}, 'annotations': {'key': 'annotations', 'type': '[object]'}, - 'deployment_type': {'key': 'typeProperties.deploymentType', 'type': 'str'}, + 'deployment_type': {'key': 'typeProperties.deploymentType', 'type': 'object'}, 'host_name': {'key': 'typeProperties.hostName', 'type': 'object'}, 'port': {'key': 'typeProperties.port', 'type': 'object'}, 'service_uri': {'key': 'typeProperties.serviceUri', 'type': 'object'}, 'organization_name': {'key': 'typeProperties.organizationName', 'type': 'object'}, - 'authentication_type': {'key': 'typeProperties.authenticationType', 'type': 'str'}, + 'authentication_type': {'key': 'typeProperties.authenticationType', 'type': 'object'}, 'username': {'key': 'typeProperties.username', 'type': 'object'}, 'password': {'key': 'typeProperties.password', 'type': 'SecretBase'}, 'service_principal_id': {'key': 'typeProperties.servicePrincipalId', 'type': 'object'}, @@ -13022,34 +13496,37 @@ class DynamicsSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: Required. The write behavior for the operation. Possible values include: "Upsert". :type write_behavior: str or ~azure.mgmt.datafactory.models.DynamicsSinkWriteBehavior :param ignore_null_values: The flag indicating whether ignore null values from input dataset (except key fields) during write operation. Default is false. Type: boolean (or Expression with resultType boolean). - :type ignore_null_values: object + :type ignore_null_values: any :param alternate_key_name: The logical name of the alternate key which will be used when upserting records. Type: string (or Expression with resultType string). - :type alternate_key_name: object + :type alternate_key_name: any """ _validation = { @@ -13065,6 +13542,7 @@ class DynamicsSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'str'}, 'ignore_null_values': {'key': 'ignoreNullValues', 'type': 'object'}, 'alternate_key_name': {'key': 'alternateKeyName', 'type': 'object'}, @@ -13088,21 +13566,24 @@ class DynamicsSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: FetchXML is a proprietary query language that is used in Microsoft Dynamics (online & on-premises). Type: string (or Expression with resultType string). - :type query: object + :type query: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -13118,6 +13599,7 @@ class DynamicsSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -13139,7 +13621,7 @@ class EloquaLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -13149,28 +13631,28 @@ class EloquaLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param endpoint: Required. The endpoint of the Eloqua server. (i.e. eloqua.example.com). - :type endpoint: object + :type endpoint: any :param username: Required. The site name and user name of your Eloqua account in the form: sitename/username. (i.e. Eloqua/Alice). - :type username: object + :type username: any :param password: The password corresponding to the user name. :type password: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -13217,28 +13699,28 @@ class EloquaObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -13275,27 +13757,30 @@ class EloquaSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -13308,6 +13793,7 @@ class EloquaSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -13429,42 +13915,45 @@ class ExcelDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param location: The location of the excel storage. :type location: ~azure.mgmt.datafactory.models.DatasetLocation - :param sheet_name: The sheet of excel file. Type: string (or Expression with resultType + :param sheet_name: The sheet name of excel file. Type: string (or Expression with resultType string). - :type sheet_name: object + :type sheet_name: any + :param sheet_index: The sheet index of excel file and default value is 0. Type: integer (or + Expression with resultType integer). + :type sheet_index: any :param range: The partial data of one sheet. Type: string (or Expression with resultType string). - :type range: object + :type range: any :param first_row_as_header: When used as input, treat the first row of data as headers. When used as output,write the headers into the output as the first row of data. The default value is false. Type: boolean (or Expression with resultType boolean). - :type first_row_as_header: object + :type first_row_as_header: any :param compression: The data compression method used for the json dataset. :type compression: ~azure.mgmt.datafactory.models.DatasetCompression :param null_value: The null value string. Type: string (or Expression with resultType string). - :type null_value: object + :type null_value: any """ _validation = { @@ -13484,6 +13973,7 @@ class ExcelDataset(Dataset): 'folder': {'key': 'folder', 'type': 'DatasetFolder'}, 'location': {'key': 'typeProperties.location', 'type': 'DatasetLocation'}, 'sheet_name': {'key': 'typeProperties.sheetName', 'type': 'object'}, + 'sheet_index': {'key': 'typeProperties.sheetIndex', 'type': 'object'}, 'range': {'key': 'typeProperties.range', 'type': 'object'}, 'first_row_as_header': {'key': 'typeProperties.firstRowAsHeader', 'type': 'object'}, 'compression': {'key': 'typeProperties.compression', 'type': 'DatasetCompression'}, @@ -13498,6 +13988,7 @@ def __init__( self.type = 'Excel' # type: str self.location = kwargs.get('location', None) self.sheet_name = kwargs.get('sheet_name', None) + self.sheet_index = kwargs.get('sheet_index', None) self.range = kwargs.get('range', None) self.first_row_as_header = kwargs.get('first_row_as_header', None) self.compression = kwargs.get('compression', None) @@ -13511,18 +14002,21 @@ class ExcelSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Excel store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param additional_columns: Specifies the additional columns to be added to source data. Type: @@ -13540,6 +14034,7 @@ class ExcelSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreReadSettings'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -13561,7 +14056,7 @@ class ExecuteDataFlowActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -13586,14 +14081,14 @@ class ExecuteDataFlowActivity(ExecutionActivity): :type compute: ~azure.mgmt.datafactory.models.ExecuteDataFlowActivityTypePropertiesCompute :param trace_level: Trace level setting used for data flow monitoring output. Supported values are: 'coarse', 'fine', and 'none'. Type: string (or Expression with resultType string). - :type trace_level: object + :type trace_level: any :param continue_on_error: Continue on error setting used for data flow execution. Enables processing to continue if a sink fails. Type: boolean (or Expression with resultType boolean). - :type continue_on_error: object + :type continue_on_error: any :param run_concurrently: Concurrent run setting used for data flow execution. Allows sinks with the same save order to be processed concurrently. Type: boolean (or Expression with resultType boolean). - :type run_concurrently: object + :type run_concurrently: any """ _validation = { @@ -13641,10 +14136,10 @@ class ExecuteDataFlowActivityTypePropertiesCompute(msrest.serialization.Model): :param compute_type: Compute type of the cluster which will execute data flow job. Possible values include: 'General', 'MemoryOptimized', 'ComputeOptimized'. Type: string (or Expression with resultType string). - :type compute_type: object + :type compute_type: any :param core_count: Core count of the cluster which will execute data flow job. Supported values are: 8, 16, 32, 48, 80, 144 and 272. Type: integer (or Expression with resultType integer). - :type core_count: object + :type core_count: any """ _attribute_map = { @@ -13661,14 +14156,14 @@ def __init__( self.core_count = kwargs.get('core_count', None) -class ExecutePipelineActivity(Activity): +class ExecutePipelineActivity(ControlActivity): """Execute pipeline activity. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -13682,7 +14177,7 @@ class ExecutePipelineActivity(Activity): :param pipeline: Required. Pipeline reference. :type pipeline: ~azure.mgmt.datafactory.models.PipelineReference :param parameters: Pipeline parameters. - :type parameters: dict[str, object] + :type parameters: dict[str, any] :param wait_on_completion: Defines whether activity execution will wait for the dependent pipeline execution to finish. Default is false. :type wait_on_completion: bool @@ -13724,7 +14219,7 @@ class ExecuteSSISPackageActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -13743,13 +14238,13 @@ class ExecuteSSISPackageActivity(ExecutionActivity): :type package_location: ~azure.mgmt.datafactory.models.SSISPackageLocation :param runtime: Specifies the runtime to execute SSIS package. The value should be "x86" or "x64". Type: string (or Expression with resultType string). - :type runtime: object + :type runtime: any :param logging_level: The logging level of SSIS package execution. Type: string (or Expression with resultType string). - :type logging_level: object + :type logging_level: any :param environment_path: The environment path to execute the SSIS package. Type: string (or Expression with resultType string). - :type environment_path: object + :type environment_path: any :param execution_credential: The package execution credential. :type execution_credential: ~azure.mgmt.datafactory.models.SSISExecutionCredential :param connect_via: Required. The integration runtime reference. @@ -13760,10 +14255,12 @@ class ExecuteSSISPackageActivity(ExecutionActivity): :type package_parameters: dict[str, ~azure.mgmt.datafactory.models.SSISExecutionParameter] :param project_connection_managers: The project level connection managers to execute the SSIS package. - :type project_connection_managers: dict[str, object] + :type project_connection_managers: dict[str, dict[str, + ~azure.mgmt.datafactory.models.SSISExecutionParameter]] :param package_connection_managers: The package level connection managers to execute the SSIS package. - :type package_connection_managers: dict[str, object] + :type package_connection_managers: dict[str, dict[str, + ~azure.mgmt.datafactory.models.SSISExecutionParameter]] :param property_overrides: The property overrides to execute the SSIS package. :type property_overrides: dict[str, ~azure.mgmt.datafactory.models.SSISPropertyOverride] :param log_location: SSIS package execution log location. @@ -13794,8 +14291,8 @@ class ExecuteSSISPackageActivity(ExecutionActivity): 'connect_via': {'key': 'typeProperties.connectVia', 'type': 'IntegrationRuntimeReference'}, 'project_parameters': {'key': 'typeProperties.projectParameters', 'type': '{SSISExecutionParameter}'}, 'package_parameters': {'key': 'typeProperties.packageParameters', 'type': '{SSISExecutionParameter}'}, - 'project_connection_managers': {'key': 'typeProperties.projectConnectionManagers', 'type': '{object}'}, - 'package_connection_managers': {'key': 'typeProperties.packageConnectionManagers', 'type': '{object}'}, + 'project_connection_managers': {'key': 'typeProperties.projectConnectionManagers', 'type': '{{SSISExecutionParameter}}'}, + 'package_connection_managers': {'key': 'typeProperties.packageConnectionManagers', 'type': '{{SSISExecutionParameter}}'}, 'property_overrides': {'key': 'typeProperties.propertyOverrides', 'type': '{SSISPropertyOverride}'}, 'log_location': {'key': 'typeProperties.logLocation', 'type': 'SSISLogLocation'}, } @@ -13930,7 +14427,7 @@ class Expression(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar type: Required. Expression type. Default value: "Expression". + :ivar type: Expression type. Has constant value: "Expression". :vartype type: str :param value: Required. Expression value. :type value: str @@ -14023,7 +14520,7 @@ class Factory(Resource): :vartype e_tag: str :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param identity: Managed service identity of the factory. :type identity: ~azure.mgmt.datafactory.models.FactoryIdentity :ivar provisioning_state: Factory provisioning state, example Succeeded. @@ -14206,7 +14703,7 @@ class FactoryIdentity(msrest.serialization.Model): :ivar tenant_id: The client tenant id of the identity. :vartype tenant_id: str :param user_assigned_identities: List of user assigned identities for the factory. - :type user_assigned_identities: dict[str, object] + :type user_assigned_identities: dict[str, any] """ _validation = { @@ -14368,7 +14865,7 @@ class FileServerLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -14378,19 +14875,19 @@ class FileServerLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. Host name of the server. Type: string (or Expression with resultType string). - :type host: object + :type host: any :param user_id: User ID to logon the server. Type: string (or Expression with resultType string). - :type user_id: object + :type user_id: any :param password: Password to logon the server. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -14430,15 +14927,15 @@ class FileServerLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any """ _validation = { @@ -14467,42 +14964,45 @@ class FileServerReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: FileServer wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: FileServer wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any :param file_filter: Specify a filter to be used to select a subset of files in the folderPath rather than all files. Type: string (or Expression with resultType string). - :type file_filter: object + :type file_filter: any """ _validation = { @@ -14513,6 +15013,7 @@ class FileServerReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -14550,14 +15051,17 @@ class FileServerWriteSettings(StoreWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any """ _validation = { @@ -14568,6 +15072,7 @@ class FileServerWriteSettings(StoreWriteSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, } @@ -14586,43 +15091,43 @@ class FileShareDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param folder_path: The path of the on-premises file system. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: The name of the on-premises file system. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any :param format: The format of the files. :type format: ~azure.mgmt.datafactory.models.DatasetStorageFormat :param file_filter: Specify a filter to be used to select a subset of files in the folderPath rather than all files. Type: string (or Expression with resultType string). - :type file_filter: object + :type file_filter: any :param compression: The data compression method used for the file system. :type compression: ~azure.mgmt.datafactory.models.DatasetCompression """ @@ -14673,26 +15178,29 @@ class FileSystemSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any """ _validation = { @@ -14707,6 +15215,7 @@ class FileSystemSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, } @@ -14726,21 +15235,24 @@ class FileSystemSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -14756,6 +15268,7 @@ class FileSystemSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -14770,14 +15283,14 @@ def __init__( self.additional_columns = kwargs.get('additional_columns', None) -class FilterActivity(Activity): +class FilterActivity(ControlActivity): """Filter and return results from input array based on the conditions. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -14822,14 +15335,14 @@ def __init__( self.condition = kwargs['condition'] -class ForEachActivity(Activity): +class ForEachActivity(ControlActivity): """This activity is used for iterating over a collection and execute given activities. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -14891,33 +15404,36 @@ class FtpReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: Ftp wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: Ftp wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param use_binary_transfer: Specify whether to use binary transfer mode for FTP stores. :type use_binary_transfer: bool """ @@ -14930,6 +15446,7 @@ class FtpReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -14963,7 +15480,7 @@ class FtpServerLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -14973,32 +15490,32 @@ class FtpServerLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. Host name of the FTP server. Type: string (or Expression with resultType string). - :type host: object + :type host: any :param port: The TCP port number that the FTP server uses to listen for client connections. Default value is 21. Type: integer (or Expression with resultType integer), minimum: 0. - :type port: object + :type port: any :param authentication_type: The authentication type to be used to connect to the FTP server. Possible values include: "Basic", "Anonymous". :type authentication_type: str or ~azure.mgmt.datafactory.models.FtpAuthenticationType :param user_name: Username to logon the FTP server. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password to logon the FTP server. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any :param enable_ssl: If true, connect to the FTP server over SSL/TLS channel. Default value is true. Type: boolean (or Expression with resultType boolean). - :type enable_ssl: object + :type enable_ssl: any :param enable_server_certificate_validation: If true, validate the FTP server SSL certificate when connect over SSL/TLS channel. Default value is true. Type: boolean (or Expression with resultType boolean). - :type enable_server_certificate_validation: object + :type enable_server_certificate_validation: any """ _validation = { @@ -15046,15 +15563,15 @@ class FtpServerLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any """ _validation = { @@ -15081,7 +15598,7 @@ class GetDataFactoryOperationStatusResponse(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param status: Status of the operation. :type status: str """ @@ -15107,7 +15624,7 @@ class GetMetadataActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -15125,7 +15642,7 @@ class GetMetadataActivity(ExecutionActivity): :param dataset: Required. GetMetadata activity dataset reference. :type dataset: ~azure.mgmt.datafactory.models.DatasetReference :param field_list: Fields of metadata to get from dataset. - :type field_list: list[object] + :type field_list: list[any] :param store_settings: GetMetadata activity store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param format_settings: GetMetadata activity format settings. @@ -15193,6 +15710,8 @@ class GitHubAccessTokenRequest(msrest.serialization.Model): :type git_hub_access_code: str :param git_hub_client_id: GitHub application client ID. :type git_hub_client_id: str + :param git_hub_client_secret: GitHub bring your own app client secret information. + :type git_hub_client_secret: ~azure.mgmt.datafactory.models.GitHubClientSecret :param git_hub_access_token_base_url: Required. GitHub access token base URL. :type git_hub_access_token_base_url: str """ @@ -15205,6 +15724,7 @@ class GitHubAccessTokenRequest(msrest.serialization.Model): _attribute_map = { 'git_hub_access_code': {'key': 'gitHubAccessCode', 'type': 'str'}, 'git_hub_client_id': {'key': 'gitHubClientId', 'type': 'str'}, + 'git_hub_client_secret': {'key': 'gitHubClientSecret', 'type': 'GitHubClientSecret'}, 'git_hub_access_token_base_url': {'key': 'gitHubAccessTokenBaseUrl', 'type': 'str'}, } @@ -15215,6 +15735,7 @@ def __init__( super(GitHubAccessTokenRequest, self).__init__(**kwargs) self.git_hub_access_code = kwargs['git_hub_access_code'] self.git_hub_client_id = kwargs.get('git_hub_client_id', None) + self.git_hub_client_secret = kwargs.get('git_hub_client_secret', None) self.git_hub_access_token_base_url = kwargs['git_hub_access_token_base_url'] @@ -15237,6 +15758,29 @@ def __init__( self.git_hub_access_token = kwargs.get('git_hub_access_token', None) +class GitHubClientSecret(msrest.serialization.Model): + """Client secret information for factory's bring your own app repository configuration. + + :param byoa_secret_akv_url: Bring your own app client secret AKV URL. + :type byoa_secret_akv_url: str + :param byoa_secret_name: Bring your own app client secret name in AKV. + :type byoa_secret_name: str + """ + + _attribute_map = { + 'byoa_secret_akv_url': {'key': 'byoaSecretAkvUrl', 'type': 'str'}, + 'byoa_secret_name': {'key': 'byoaSecretName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(GitHubClientSecret, self).__init__(**kwargs) + self.byoa_secret_akv_url = kwargs.get('byoa_secret_akv_url', None) + self.byoa_secret_name = kwargs.get('byoa_secret_name', None) + + class GlobalParameterSpecification(msrest.serialization.Model): """Definition of a single parameter for an entity. @@ -15246,7 +15790,7 @@ class GlobalParameterSpecification(msrest.serialization.Model): "Int", "Float", "Bool", "Array". :type type: str or ~azure.mgmt.datafactory.models.GlobalParameterType :param value: Required. Value of parameter. - :type value: object + :type value: any """ _validation = { @@ -15275,7 +15819,7 @@ class GoogleAdWordsLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -15285,10 +15829,10 @@ class GoogleAdWordsLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param client_customer_id: Required. The Client customer ID of the AdWords account that you want to fetch report data for. - :type client_customer_id: object + :type client_customer_id: any :param developer_token: Required. The developer token associated with the manager account that you use to grant access to the AdWords API. :type developer_token: ~azure.mgmt.datafactory.models.SecretBase @@ -15302,27 +15846,27 @@ class GoogleAdWordsLinkedService(LinkedService): :type refresh_token: ~azure.mgmt.datafactory.models.SecretBase :param client_id: The client id of the google application used to acquire the refresh token. Type: string (or Expression with resultType string). - :type client_id: object + :type client_id: any :param client_secret: The client secret of the google application used to acquire the refresh token. :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param email: The service account email ID that is used for ServiceAuthentication and can only be used on self-hosted IR. - :type email: object + :type email: any :param key_file_path: The full path to the .p12 key file that is used to authenticate the service account email address and can only be used on self-hosted IR. - :type key_file_path: object + :type key_file_path: any :param trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. - :type trusted_cert_path: object + :type trusted_cert_path: any :param use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. - :type use_system_trust_store: object + :type use_system_trust_store: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -15378,28 +15922,28 @@ class GoogleAdWordsObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -15436,27 +15980,30 @@ class GoogleAdWordsSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -15469,6 +16016,7 @@ class GoogleAdWordsSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -15490,7 +16038,7 @@ class GoogleBigQueryLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -15500,15 +16048,15 @@ class GoogleBigQueryLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param project: Required. The default BigQuery project to query against. - :type project: object + :type project: any :param additional_projects: A comma-separated list of public BigQuery projects to access. - :type additional_projects: object + :type additional_projects: any :param request_google_drive_scope: Whether to request access to Google Drive. Allowing Google Drive access enables support for federated tables that combine BigQuery data with data from Google Drive. The default value is false. - :type request_google_drive_scope: object + :type request_google_drive_scope: any :param authentication_type: Required. The OAuth 2.0 authentication mechanism used for authentication. ServiceAuthentication can only be used on self-hosted IR. Possible values include: "ServiceAuthentication", "UserAuthentication". @@ -15519,27 +16067,27 @@ class GoogleBigQueryLinkedService(LinkedService): :type refresh_token: ~azure.mgmt.datafactory.models.SecretBase :param client_id: The client id of the google application used to acquire the refresh token. Type: string (or Expression with resultType string). - :type client_id: object + :type client_id: any :param client_secret: The client secret of the google application used to acquire the refresh token. :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param email: The service account email ID that is used for ServiceAuthentication and can only be used on self-hosted IR. - :type email: object + :type email: any :param key_file_path: The full path to the .p12 key file that is used to authenticate the service account email address and can only be used on self-hosted IR. - :type key_file_path: object + :type key_file_path: any :param trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. - :type trusted_cert_path: object + :type trusted_cert_path: any :param use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. - :type use_system_trust_store: object + :type use_system_trust_store: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -15596,35 +16144,35 @@ class GoogleBigQueryObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using database + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Google BigQuery. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param dataset: The database name of the Google BigQuery. Type: string (or Expression with resultType string). - :type dataset: object + :type dataset: any """ _validation = { @@ -15665,27 +16213,30 @@ class GoogleBigQuerySource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -15698,6 +16249,7 @@ class GoogleBigQuerySource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -15719,7 +16271,7 @@ class GoogleCloudStorageLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -15729,10 +16281,10 @@ class GoogleCloudStorageLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param access_key_id: The access key identifier of the Google Cloud Storage Identity and Access Management (IAM) user. Type: string (or Expression with resultType string). - :type access_key_id: object + :type access_key_id: any :param secret_access_key: The secret access key of the Google Cloud Storage Identity and Access Management (IAM) user. :type secret_access_key: ~azure.mgmt.datafactory.models.SecretBase @@ -15740,11 +16292,11 @@ class GoogleCloudStorageLinkedService(LinkedService): Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string). - :type service_url: object + :type service_url: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -15783,21 +16335,21 @@ class GoogleCloudStorageLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param bucket_name: Specify the bucketName of Google Cloud Storage. Type: string (or Expression with resultType string). - :type bucket_name: object + :type bucket_name: any :param version: Specify the version of Google Cloud Storage. Type: string (or Expression with resultType string). - :type version: object + :type version: any """ _validation = { @@ -15830,42 +16382,45 @@ class GoogleCloudStorageReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: Google Cloud Storage wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: Google Cloud Storage wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param prefix: The prefix filter for the Google Cloud Storage object name. Type: string (or Expression with resultType string). - :type prefix: object + :type prefix: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -15876,6 +16431,7 @@ class GoogleCloudStorageReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -15913,7 +16469,7 @@ class GreenplumLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -15923,16 +16479,16 @@ class GreenplumLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param pwd: The Azure key vault secret reference of password in connection string. :type pwd: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -15969,27 +16525,30 @@ class GreenplumSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -16002,6 +16561,7 @@ class GreenplumSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -16023,34 +16583,34 @@ class GreenplumTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of Greenplum. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of Greenplum. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -16091,7 +16651,7 @@ class HBaseLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -16101,39 +16661,39 @@ class HBaseLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The IP address or host name of the HBase server. (i.e. 192.168.222.160). - :type host: object + :type host: any :param port: The TCP port that the HBase instance uses to listen for client connections. The default value is 9090. - :type port: object + :type port: any :param http_path: The partial URL corresponding to the HBase server. (i.e. /gateway/sandbox/hbase/version). - :type http_path: object + :type http_path: any :param authentication_type: Required. The authentication mechanism to use to connect to the HBase server. Possible values include: "Anonymous", "Basic". :type authentication_type: str or ~azure.mgmt.datafactory.models.HBaseAuthenticationType :param username: The user name used to connect to the HBase instance. - :type username: object + :type username: any :param password: The password corresponding to the user name. :type password: ~azure.mgmt.datafactory.models.SecretBase :param enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false. - :type enable_ssl: object + :type enable_ssl: any :param trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. - :type trusted_cert_path: object + :type trusted_cert_path: any :param allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false. - :type allow_host_name_cn_mismatch: object + :type allow_host_name_cn_mismatch: any :param allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false. - :type allow_self_signed_server_cert: object + :type allow_self_signed_server_cert: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -16188,28 +16748,28 @@ class HBaseObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -16246,27 +16806,30 @@ class HBaseSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -16279,6 +16842,7 @@ class HBaseSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -16300,7 +16864,7 @@ class HdfsLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -16310,20 +16874,20 @@ class HdfsLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. The URL of the HDFS service endpoint, e.g. http://myhostname:50070/webhdfs/v1 . Type: string (or Expression with resultType string). - :type url: object + :type url: any :param authentication_type: Type of authentication used to connect to the HDFS. Possible values are: Anonymous and Windows. Type: string (or Expression with resultType string). - :type authentication_type: object + :type authentication_type: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any :param user_name: User name for Windows authentication. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password for Windows authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase """ @@ -16367,15 +16931,15 @@ class HdfsLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any """ _validation = { @@ -16404,41 +16968,44 @@ class HdfsReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: HDFS wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: HDFS wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any :param distcp_settings: Specifies Distcp-related settings. :type distcp_settings: ~azure.mgmt.datafactory.models.DistcpSettings :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any """ _validation = { @@ -16449,6 +17016,7 @@ class HdfsReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -16486,21 +17054,24 @@ class HdfsSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param distcp_settings: Specifies Distcp-related settings. :type distcp_settings: ~azure.mgmt.datafactory.models.DistcpSettings """ @@ -16515,6 +17086,7 @@ class HdfsSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'distcp_settings': {'key': 'distcpSettings', 'type': 'DistcpSettings'}, } @@ -16536,7 +17108,7 @@ class HDInsightHiveActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -16554,17 +17126,17 @@ class HDInsightHiveActivity(ExecutionActivity): :param storage_linked_services: Storage linked service references. :type storage_linked_services: list[~azure.mgmt.datafactory.models.LinkedServiceReference] :param arguments: User specified arguments to HDInsightActivity. - :type arguments: list[object] + :type arguments: list[any] :param get_debug_info: Debug info option. Possible values include: "None", "Always", "Failure". :type get_debug_info: str or ~azure.mgmt.datafactory.models.HDInsightActivityDebugInfoOption :param script_path: Script path. Type: string (or Expression with resultType string). - :type script_path: object + :type script_path: any :param script_linked_service: Script linked service reference. :type script_linked_service: ~azure.mgmt.datafactory.models.LinkedServiceReference :param defines: Allows user to specify defines for Hive job request. - :type defines: dict[str, object] + :type defines: dict[str, any] :param variables: User specified arguments under hivevar namespace. - :type variables: list[object] + :type variables: list[any] :param query_timeout: Query timeout value (in minutes). Effective when the HDInsight cluster is with ESP (Enterprise Security Package). :type query_timeout: int @@ -16617,7 +17189,7 @@ class HDInsightLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -16627,13 +17199,13 @@ class HDInsightLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param cluster_uri: Required. HDInsight cluster URI. Type: string (or Expression with resultType string). - :type cluster_uri: object + :type cluster_uri: any :param user_name: HDInsight cluster user name. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: HDInsight cluster password. :type password: ~azure.mgmt.datafactory.models.SecretBase :param linked_service_name: The Azure Storage linked service reference. @@ -16644,13 +17216,13 @@ class HDInsightLinkedService(LinkedService): :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any :param is_esp_enabled: Specify if the HDInsight is created with ESP (Enterprise Security Package). Type: Boolean. - :type is_esp_enabled: object + :type is_esp_enabled: any :param file_system: Specify the FileSystem if the main storage for the HDInsight is ADLS Gen2. Type: string (or Expression with resultType string). - :type file_system: object + :type file_system: any """ _validation = { @@ -16698,7 +17270,7 @@ class HDInsightMapReduceActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -16716,19 +17288,19 @@ class HDInsightMapReduceActivity(ExecutionActivity): :param storage_linked_services: Storage linked service references. :type storage_linked_services: list[~azure.mgmt.datafactory.models.LinkedServiceReference] :param arguments: User specified arguments to HDInsightActivity. - :type arguments: list[object] + :type arguments: list[any] :param get_debug_info: Debug info option. Possible values include: "None", "Always", "Failure". :type get_debug_info: str or ~azure.mgmt.datafactory.models.HDInsightActivityDebugInfoOption :param class_name: Required. Class name. Type: string (or Expression with resultType string). - :type class_name: object + :type class_name: any :param jar_file_path: Required. Jar path. Type: string (or Expression with resultType string). - :type jar_file_path: object + :type jar_file_path: any :param jar_linked_service: Jar linked service reference. :type jar_linked_service: ~azure.mgmt.datafactory.models.LinkedServiceReference :param jar_libs: Jar libs. - :type jar_libs: list[object] + :type jar_libs: list[any] :param defines: Allows user to specify defines for the MapReduce job request. - :type defines: dict[str, object] + :type defines: dict[str, any] """ _validation = { @@ -16780,7 +17352,7 @@ class HDInsightOnDemandLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -16790,46 +17362,46 @@ class HDInsightOnDemandLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param cluster_size: Required. Number of worker/data nodes in the cluster. Suggestion value: 4. Type: string (or Expression with resultType string). - :type cluster_size: object + :type cluster_size: any :param time_to_live: Required. The allowed idle time for the on-demand HDInsight cluster. Specifies how long the on-demand HDInsight cluster stays alive after completion of an activity run if there are no other active jobs in the cluster. The minimum value is 5 mins. Type: string (or Expression with resultType string). - :type time_to_live: object + :type time_to_live: any :param version: Required. Version of the HDInsight cluster.  Type: string (or Expression with resultType string). - :type version: object + :type version: any :param linked_service_name: Required. Azure Storage linked service to be used by the on-demand cluster for storing and processing data. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param host_subscription_id: Required. The customer’s subscription to host the cluster. Type: string (or Expression with resultType string). - :type host_subscription_id: object + :type host_subscription_id: any :param service_principal_id: The service principal id for the hostSubscriptionId. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The key for the service principal id. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: Required. The Tenant id/name to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param cluster_resource_group: Required. The resource group where the cluster belongs. Type: string (or Expression with resultType string). - :type cluster_resource_group: object + :type cluster_resource_group: any :param cluster_name_prefix: The prefix of cluster name, postfix will be distinct with timestamp. Type: string (or Expression with resultType string). - :type cluster_name_prefix: object + :type cluster_name_prefix: any :param cluster_user_name: The username to access the cluster. Type: string (or Expression with resultType string). - :type cluster_user_name: object + :type cluster_user_name: any :param cluster_password: The password to access the cluster. :type cluster_password: ~azure.mgmt.datafactory.models.SecretBase :param cluster_ssh_user_name: The username to SSH remotely connect to cluster’s node (for Linux). Type: string (or Expression with resultType string). - :type cluster_ssh_user_name: object + :type cluster_ssh_user_name: any :param cluster_ssh_password: The password to SSH remotely connect cluster’s node (for Linux). :type cluster_ssh_password: ~azure.mgmt.datafactory.models.SecretBase :param additional_linked_service_names: Specifies additional storage accounts for the HDInsight @@ -16841,56 +17413,57 @@ class HDInsightOnDemandLinkedService(LinkedService): as the metastore. :type hcatalog_linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param cluster_type: The cluster type. Type: string (or Expression with resultType string). - :type cluster_type: object + :type cluster_type: any :param spark_version: The version of spark if the cluster type is 'spark'. Type: string (or Expression with resultType string). - :type spark_version: object + :type spark_version: any :param core_configuration: Specifies the core configuration parameters (as in core-site.xml) for the HDInsight cluster to be created. - :type core_configuration: object + :type core_configuration: any :param h_base_configuration: Specifies the HBase configuration parameters (hbase-site.xml) for the HDInsight cluster. - :type h_base_configuration: object + :type h_base_configuration: any :param hdfs_configuration: Specifies the HDFS configuration parameters (hdfs-site.xml) for the HDInsight cluster. - :type hdfs_configuration: object + :type hdfs_configuration: any :param hive_configuration: Specifies the hive configuration parameters (hive-site.xml) for the HDInsight cluster. - :type hive_configuration: object - :param map_reduce_configuration: Specifies the MapReduce configuration parameters (mapred- - site.xml) for the HDInsight cluster. - :type map_reduce_configuration: object + :type hive_configuration: any + :param map_reduce_configuration: Specifies the MapReduce configuration parameters + (mapred-site.xml) for the HDInsight cluster. + :type map_reduce_configuration: any :param oozie_configuration: Specifies the Oozie configuration parameters (oozie-site.xml) for the HDInsight cluster. - :type oozie_configuration: object + :type oozie_configuration: any :param storm_configuration: Specifies the Storm configuration parameters (storm-site.xml) for the HDInsight cluster. - :type storm_configuration: object + :type storm_configuration: any :param yarn_configuration: Specifies the Yarn configuration parameters (yarn-site.xml) for the HDInsight cluster. - :type yarn_configuration: object + :type yarn_configuration: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any :param head_node_size: Specifies the size of the head node for the HDInsight cluster. - :type head_node_size: object + :type head_node_size: any :param data_node_size: Specifies the size of the data node for the HDInsight cluster. - :type data_node_size: object + :type data_node_size: any :param zookeeper_node_size: Specifies the size of the Zoo Keeper node for the HDInsight cluster. - :type zookeeper_node_size: object + :type zookeeper_node_size: any :param script_actions: Custom script actions to run on HDI ondemand cluster once it's up. - Please refer to https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-hadoop-customize- - cluster-linux?toc=%2Fen-us%2Fazure%2Fhdinsight%2Fr-server%2FTOC.json&bc=%2Fen- - us%2Fazure%2Fbread%2Ftoc.json#understanding-script-actions. + Please refer to + https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-hadoop-customize-cluster-linux?toc=%2Fen-us%2Fazure%2Fhdinsight%2Fr-server%2FTOC.json&bc=%2Fen-us%2Fazure%2Fbread%2Ftoc.json#understanding-script-actions. :type script_actions: list[~azure.mgmt.datafactory.models.ScriptAction] :param virtual_network_id: The ARM resource ID for the vNet to which the cluster should be joined after creation. Type: string (or Expression with resultType string). - :type virtual_network_id: object + :type virtual_network_id: any :param subnet_name: The ARM resource ID for the subnet in the vNet. If virtualNetworkId was specified, then this property is required. Type: string (or Expression with resultType string). - :type subnet_name: object + :type subnet_name: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -16944,6 +17517,7 @@ class HDInsightOnDemandLinkedService(LinkedService): 'script_actions': {'key': 'typeProperties.scriptActions', 'type': '[ScriptAction]'}, 'virtual_network_id': {'key': 'typeProperties.virtualNetworkId', 'type': 'object'}, 'subnet_name': {'key': 'typeProperties.subnetName', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( @@ -16985,6 +17559,7 @@ def __init__( self.script_actions = kwargs.get('script_actions', None) self.virtual_network_id = kwargs.get('virtual_network_id', None) self.subnet_name = kwargs.get('subnet_name', None) + self.credential = kwargs.get('credential', None) class HDInsightPigActivity(ExecutionActivity): @@ -16994,7 +17569,7 @@ class HDInsightPigActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -17013,15 +17588,15 @@ class HDInsightPigActivity(ExecutionActivity): :type storage_linked_services: list[~azure.mgmt.datafactory.models.LinkedServiceReference] :param arguments: User specified arguments to HDInsightActivity. Type: array (or Expression with resultType array). - :type arguments: object + :type arguments: any :param get_debug_info: Debug info option. Possible values include: "None", "Always", "Failure". :type get_debug_info: str or ~azure.mgmt.datafactory.models.HDInsightActivityDebugInfoOption :param script_path: Script path. Type: string (or Expression with resultType string). - :type script_path: object + :type script_path: any :param script_linked_service: Script linked service reference. :type script_linked_service: ~azure.mgmt.datafactory.models.LinkedServiceReference :param defines: Allows user to specify defines for Pig job request. - :type defines: dict[str, object] + :type defines: dict[str, any] """ _validation = { @@ -17067,7 +17642,7 @@ class HDInsightSparkActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -17084,12 +17659,12 @@ class HDInsightSparkActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param root_path: Required. The root path in 'sparkJobLinkedService' for all the job’s files. Type: string (or Expression with resultType string). - :type root_path: object + :type root_path: any :param entry_file_path: Required. The relative path to the root folder of the code/package to be executed. Type: string (or Expression with resultType string). - :type entry_file_path: object + :type entry_file_path: any :param arguments: The user-specified arguments to HDInsightSparkActivity. - :type arguments: list[object] + :type arguments: list[any] :param get_debug_info: Debug info option. Possible values include: "None", "Always", "Failure". :type get_debug_info: str or ~azure.mgmt.datafactory.models.HDInsightActivityDebugInfoOption :param spark_job_linked_service: The storage linked service for uploading the entry file and @@ -17099,9 +17674,9 @@ class HDInsightSparkActivity(ExecutionActivity): :type class_name: str :param proxy_user: The user to impersonate that will execute the job. Type: string (or Expression with resultType string). - :type proxy_user: object + :type proxy_user: any :param spark_config: Spark configuration property. - :type spark_config: dict[str, object] + :type spark_config: dict[str, any] """ _validation = { @@ -17153,7 +17728,7 @@ class HDInsightStreamingActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -17171,29 +17746,29 @@ class HDInsightStreamingActivity(ExecutionActivity): :param storage_linked_services: Storage linked service references. :type storage_linked_services: list[~azure.mgmt.datafactory.models.LinkedServiceReference] :param arguments: User specified arguments to HDInsightActivity. - :type arguments: list[object] + :type arguments: list[any] :param get_debug_info: Debug info option. Possible values include: "None", "Always", "Failure". :type get_debug_info: str or ~azure.mgmt.datafactory.models.HDInsightActivityDebugInfoOption :param mapper: Required. Mapper executable name. Type: string (or Expression with resultType string). - :type mapper: object + :type mapper: any :param reducer: Required. Reducer executable name. Type: string (or Expression with resultType string). - :type reducer: object + :type reducer: any :param input: Required. Input blob path. Type: string (or Expression with resultType string). - :type input: object + :type input: any :param output: Required. Output blob path. Type: string (or Expression with resultType string). - :type output: object + :type output: any :param file_paths: Required. Paths to streaming job files. Can be directories. - :type file_paths: list[object] + :type file_paths: list[any] :param file_linked_service: Linked service reference where the files are located. :type file_linked_service: ~azure.mgmt.datafactory.models.LinkedServiceReference :param combiner: Combiner executable name. Type: string (or Expression with resultType string). - :type combiner: object + :type combiner: any :param command_environment: Command line environment values. - :type command_environment: list[object] + :type command_environment: list[any] :param defines: Allows user to specify defines for streaming job request. - :type defines: dict[str, object] + :type defines: dict[str, any] """ _validation = { @@ -17256,7 +17831,7 @@ class HiveLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -17266,12 +17841,12 @@ class HiveLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. IP address or host name of the Hive server, separated by ';' for multiple hosts (only when serviceDiscoveryMode is enable). - :type host: object + :type host: any :param port: The TCP port that the Hive server uses to listen for client connections. - :type port: object + :type port: any :param server_type: The type of Hive server. Possible values include: "HiveServer1", "HiveServer2", "HiveThriftServer". :type server_type: str or ~azure.mgmt.datafactory.models.HiveServerType @@ -17284,40 +17859,40 @@ class HiveLinkedService(LinkedService): "WindowsAzureHDInsightService". :type authentication_type: str or ~azure.mgmt.datafactory.models.HiveAuthenticationType :param service_discovery_mode: true to indicate using the ZooKeeper service, false not. - :type service_discovery_mode: object + :type service_discovery_mode: any :param zoo_keeper_name_space: The namespace on ZooKeeper under which Hive Server 2 nodes are added. - :type zoo_keeper_name_space: object + :type zoo_keeper_name_space: any :param use_native_query: Specifies whether the driver uses native HiveQL queries,or converts them into an equivalent form in HiveQL. - :type use_native_query: object + :type use_native_query: any :param username: The user name that you use to access Hive Server. - :type username: object + :type username: any :param password: The password corresponding to the user name that you provided in the Username field. :type password: ~azure.mgmt.datafactory.models.SecretBase :param http_path: The partial URL corresponding to the Hive server. - :type http_path: object + :type http_path: any :param enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false. - :type enable_ssl: object + :type enable_ssl: any :param trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. - :type trusted_cert_path: object + :type trusted_cert_path: any :param use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. - :type use_system_trust_store: object + :type use_system_trust_store: any :param allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false. - :type allow_host_name_cn_mismatch: object + :type allow_host_name_cn_mismatch: any :param allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false. - :type allow_self_signed_server_cert: object + :type allow_self_signed_server_cert: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -17384,34 +17959,34 @@ class HiveObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Hive. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Hive. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -17452,27 +18027,30 @@ class HiveSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -17485,6 +18063,7 @@ class HiveSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -17506,41 +18085,41 @@ class HttpDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param relative_url: The relative URL based on the URL in the HttpLinkedService refers to an HTTP file Type: string (or Expression with resultType string). - :type relative_url: object + :type relative_url: any :param request_method: The HTTP method for the HTTP request. Type: string (or Expression with resultType string). - :type request_method: object + :type request_method: any :param request_body: The body for the HTTP request. Type: string (or Expression with resultType string). - :type request_body: object - :param additional_headers: The headers for the HTTP Request. e.g. request-header- - name-1:request-header-value-1 + :type request_body: any + :param additional_headers: The headers for the HTTP Request. e.g. + request-header-name-1:request-header-value-1 ... request-header-name-n:request-header-value-n Type: string (or Expression with resultType string). - :type additional_headers: object + :type additional_headers: any :param format: The format of files. :type format: ~azure.mgmt.datafactory.models.DatasetStorageFormat :param compression: The data compression method used on files. @@ -17591,7 +18170,7 @@ class HttpLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -17601,39 +18180,39 @@ class HttpLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. The base URL of the HTTP endpoint, e.g. http://www.microsoft.com. Type: string (or Expression with resultType string). - :type url: object + :type url: any :param authentication_type: The authentication type to be used to connect to the HTTP server. Possible values include: "Basic", "Anonymous", "Digest", "Windows", "ClientCertificate". :type authentication_type: str or ~azure.mgmt.datafactory.models.HttpAuthenticationType :param user_name: User name for Basic, Digest, or Windows authentication. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password for Basic, Digest, Windows, or ClientCertificate with EmbeddedCertData authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param auth_headers: The additional HTTP headers in the request to RESTful API used for authorization. Type: object (or Expression with resultType object). - :type auth_headers: object + :type auth_headers: any :param embedded_cert_data: Base64 encoded certificate data for ClientCertificate authentication. For on-premises copy with ClientCertificate authentication, either CertThumbprint or EmbeddedCertData/Password should be specified. Type: string (or Expression with resultType string). - :type embedded_cert_data: object + :type embedded_cert_data: any :param cert_thumbprint: Thumbprint of certificate for ClientCertificate authentication. Only valid for on-premises copy. For on-premises copy with ClientCertificate authentication, either CertThumbprint or EmbeddedCertData/Password should be specified. Type: string (or Expression with resultType string). - :type cert_thumbprint: object + :type cert_thumbprint: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any :param enable_server_certificate_validation: If true, validate the HTTPS server SSL certificate. Default value is true. Type: boolean (or Expression with resultType boolean). - :type enable_server_certificate_validation: object + :type enable_server_certificate_validation: any """ _validation = { @@ -17683,29 +18262,32 @@ class HttpReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param request_method: The HTTP method used to call the RESTful API. The default is GET. Type: string (or Expression with resultType string). - :type request_method: object + :type request_method: any :param request_body: The HTTP request body to the RESTful API if requestMethod is POST. Type: string (or Expression with resultType string). - :type request_body: object + :type request_body: any :param additional_headers: The additional HTTP headers in the request to the RESTful API. Type: string (or Expression with resultType string). - :type additional_headers: object + :type additional_headers: any :param request_timeout: Specifies the timeout for a HTTP client to get HTTP response from HTTP server. - :type request_timeout: object + :type request_timeout: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any """ _validation = { @@ -17716,6 +18298,7 @@ class HttpReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'request_method': {'key': 'requestMethod', 'type': 'object'}, 'request_body': {'key': 'requestBody', 'type': 'object'}, 'additional_headers': {'key': 'additionalHeaders', 'type': 'object'}, @@ -17745,18 +18328,18 @@ class HttpServerLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param relative_url: Specify the relativeUrl of http server. Type: string (or Expression with resultType string). - :type relative_url: object + :type relative_url: any """ _validation = { @@ -17787,23 +18370,26 @@ class HttpSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param http_request_timeout: Specifies the timeout for a HTTP client to get HTTP response from HTTP server. The default value is equivalent to System.Net.HttpWebRequest.Timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any """ _validation = { @@ -17816,6 +18402,7 @@ class HttpSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'http_request_timeout': {'key': 'httpRequestTimeout', 'type': 'object'}, } @@ -17835,7 +18422,7 @@ class HubspotLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -17845,9 +18432,9 @@ class HubspotLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param client_id: Required. The client ID associated with your Hubspot application. - :type client_id: object + :type client_id: any :param client_secret: The client secret associated with your Hubspot application. :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param access_token: The access token obtained when initially authenticating your OAuth @@ -17858,18 +18445,18 @@ class HubspotLinkedService(LinkedService): :type refresh_token: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -17917,28 +18504,28 @@ class HubspotObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -17975,27 +18562,30 @@ class HubspotSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -18008,6 +18598,7 @@ class HubspotSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -18022,14 +18613,14 @@ def __init__( self.query = kwargs.get('query', None) -class IfConditionActivity(Activity): +class IfConditionActivity(ControlActivity): """This activity evaluates a boolean expression and executes either the activities under the ifTrueActivities property or the ifFalseActivities property depending on the result of the expression. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -18088,7 +18679,7 @@ class ImpalaLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -18098,41 +18689,41 @@ class ImpalaLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The IP address or host name of the Impala server. (i.e. 192.168.222.160). - :type host: object + :type host: any :param port: The TCP port that the Impala server uses to listen for client connections. The default value is 21050. - :type port: object + :type port: any :param authentication_type: Required. The authentication type to use. Possible values include: "Anonymous", "SASLUsername", "UsernameAndPassword". :type authentication_type: str or ~azure.mgmt.datafactory.models.ImpalaAuthenticationType :param username: The user name used to access the Impala server. The default value is anonymous when using SASLUsername. - :type username: object + :type username: any :param password: The password corresponding to the user name when using UsernameAndPassword. :type password: ~azure.mgmt.datafactory.models.SecretBase :param enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false. - :type enable_ssl: object + :type enable_ssl: any :param trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. - :type trusted_cert_path: object + :type trusted_cert_path: any :param use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. - :type use_system_trust_store: object + :type use_system_trust_store: any :param allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false. - :type allow_host_name_cn_mismatch: object + :type allow_host_name_cn_mismatch: any :param allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false. - :type allow_self_signed_server_cert: object + :type allow_self_signed_server_cert: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -18187,35 +18778,35 @@ class ImpalaObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Impala. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Impala. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -18256,27 +18847,30 @@ class ImpalaSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -18289,6 +18883,7 @@ class ImpalaSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -18310,7 +18905,7 @@ class InformixLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -18320,27 +18915,27 @@ class InformixLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The non-access credential portion of the connection string as well as an optional encrypted credential. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param authentication_type: Type of authentication used to connect to the Informix as ODBC data store. Possible values are: Anonymous and Basic. Type: string (or Expression with resultType string). - :type authentication_type: object - :param credential: The access credential portion of the connection string specified in driver- - specific property-value format. + :type authentication_type: any + :param credential: The access credential portion of the connection string specified in + driver-specific property-value format. :type credential: ~azure.mgmt.datafactory.models.SecretBase :param user_name: User name for Basic authentication. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password for Basic authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -18384,27 +18979,30 @@ class InformixSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: A query to execute before starting the copy. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any """ _validation = { @@ -18419,6 +19017,7 @@ class InformixSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, } @@ -18438,26 +19037,29 @@ class InformixSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -18470,6 +19072,7 @@ class InformixSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -18491,29 +19094,29 @@ class InformixTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The Informix table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -18553,7 +19156,7 @@ class IntegrationRuntime(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of integration runtime.Constant filled by server. Possible values include: "Managed", "SelfHosted". :type type: str or ~azure.mgmt.datafactory.models.IntegrationRuntimeType @@ -18613,10 +19216,10 @@ class IntegrationRuntimeComputeProperties(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param location: The location for managed integration runtime. The supported regions could be - found on https://docs.microsoft.com/en-us/azure/data-factory/data-factory-data-movement- - activities. + found on + https://docs.microsoft.com/en-us/azure/data-factory/data-factory-data-movement-activities. :type location: str :param node_size: The node size requirement to managed integration runtime. :type node_size: str @@ -18667,7 +19270,7 @@ class IntegrationRuntimeConnectionInfo(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar service_token: The token generated in service. Callers use this token to authenticate to integration runtime. :vartype service_token: str @@ -18747,7 +19350,7 @@ class IntegrationRuntimeDataFlowProperties(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param compute_type: Compute type of the cluster which will execute data flow job. Possible values include: "General", "MemoryOptimized", "ComputeOptimized". :type compute_type: str or ~azure.mgmt.datafactory.models.DataFlowComputeType @@ -18920,7 +19523,7 @@ class IntegrationRuntimeNodeMonitoringData(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar node_name: Name of the integration runtime node. :vartype node_name: str :ivar available_memory_in_mb: Available memory (MB) on the integration runtime node. @@ -18986,13 +19589,12 @@ class IntegrationRuntimeReference(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar type: Required. Type of integration runtime. Default value: - "IntegrationRuntimeReference". + :ivar type: Type of integration runtime. Has constant value: "IntegrationRuntimeReference". :vartype type: str :param reference_name: Required. Reference integration runtime name. :type reference_name: str :param parameters: Arguments for integration runtime. - :type parameters: dict[str, object] + :type parameters: dict[str, any] """ _validation = { @@ -19085,7 +19687,7 @@ class IntegrationRuntimeSsisCatalogInfo(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param catalog_server_endpoint: The catalog database server URL. :type catalog_server_endpoint: str :param catalog_admin_user_name: The administrator user name of catalog database. @@ -19134,7 +19736,7 @@ class IntegrationRuntimeSsisProperties(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param catalog_info: Catalog information for managed dedicated integration runtime. :type catalog_info: ~azure.mgmt.datafactory.models.IntegrationRuntimeSsisCatalogInfo :param license_type: License type for bringing your own license scenario. Possible values @@ -19156,6 +19758,8 @@ class IntegrationRuntimeSsisProperties(msrest.serialization.Model): :type express_custom_setup_properties: list[~azure.mgmt.datafactory.models.CustomSetupBase] :param package_stores: Package stores for the SSIS Integration Runtime. :type package_stores: list[~azure.mgmt.datafactory.models.PackageStore] + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _attribute_map = { @@ -19167,6 +19771,7 @@ class IntegrationRuntimeSsisProperties(msrest.serialization.Model): 'edition': {'key': 'edition', 'type': 'str'}, 'express_custom_setup_properties': {'key': 'expressCustomSetupProperties', 'type': '[CustomSetupBase]'}, 'package_stores': {'key': 'packageStores', 'type': '[PackageStore]'}, + 'credential': {'key': 'credential', 'type': 'CredentialReference'}, } def __init__( @@ -19182,6 +19787,7 @@ def __init__( self.edition = kwargs.get('edition', None) self.express_custom_setup_properties = kwargs.get('express_custom_setup_properties', None) self.package_stores = kwargs.get('package_stores', None) + self.credential = kwargs.get('credential', None) class IntegrationRuntimeStatus(msrest.serialization.Model): @@ -19196,7 +19802,7 @@ class IntegrationRuntimeStatus(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of integration runtime.Constant filled by server. Possible values include: "Managed", "SelfHosted". :type type: str or ~azure.mgmt.datafactory.models.IntegrationRuntimeType @@ -19302,7 +19908,7 @@ class IntegrationRuntimeVNetProperties(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param v_net_id: The ID of the VNet that this integration runtime will join. :type v_net_id: str :param subnet: The name of the subnet this integration runtime will join. @@ -19337,7 +19943,7 @@ class JiraLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -19347,32 +19953,32 @@ class JiraLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The IP address or host name of the Jira service. (e.g. jira.example.com). - :type host: object + :type host: any :param port: The TCP port that the Jira server uses to listen for client connections. The default value is 443 if connecting through HTTPS, or 8080 if connecting through HTTP. - :type port: object + :type port: any :param username: Required. The user name that you use to access Jira Service. - :type username: object + :type username: any :param password: The password corresponding to the user name that you provided in the username field. :type password: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -19421,28 +20027,28 @@ class JiraObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -19479,27 +20085,30 @@ class JiraSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -19512,6 +20121,7 @@ class JiraSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -19533,23 +20143,23 @@ class JsonDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder @@ -19560,7 +20170,7 @@ class JsonDataset(Dataset): of the table in the following link to set supported values: https://msdn.microsoft.com/library/system.text.encoding.aspx. Type: string (or Expression with resultType string). - :type encoding_name: object + :type encoding_name: any :param compression: The data compression method used for the json dataset. :type compression: ~azure.mgmt.datafactory.models.DatasetCompression """ @@ -19603,35 +20213,34 @@ class JsonFormat(DatasetStorageFormat): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage format.Constant filled by server. :type type: str :param serializer: Serializer. Type: string (or Expression with resultType string). - :type serializer: object + :type serializer: any :param deserializer: Deserializer. Type: string (or Expression with resultType string). - :type deserializer: object + :type deserializer: any :param file_pattern: File pattern of JSON. To be more specific, the way of separating a - collection of JSON objects. The default value is 'setOfObjects'. It is case-sensitive. Possible - values include: "setOfObjects", "arrayOfObjects". - :type file_pattern: str or ~azure.mgmt.datafactory.models.JsonFormatFilePattern + collection of JSON objects. The default value is 'setOfObjects'. It is case-sensitive. + :type file_pattern: any :param nesting_separator: The character used to separate nesting levels. Default value is '.' (dot). Type: string (or Expression with resultType string). - :type nesting_separator: object + :type nesting_separator: any :param encoding_name: The code page name of the preferred encoding. If not provided, the default value is 'utf-8', unless the byte order mark (BOM) denotes another Unicode encoding. The full list of supported values can be found in the 'Name' column of the table of encodings in the following reference: https://go.microsoft.com/fwlink/?linkid=861078. Type: string (or Expression with resultType string). - :type encoding_name: object + :type encoding_name: any :param json_node_reference: The JSONPath of the JSON array element to be flattened. Example: "$.ArrayPath". Type: string (or Expression with resultType string). - :type json_node_reference: object + :type json_node_reference: any :param json_path_definition: The JSONPath definition for each column mapping with a customized column name to extract data from JSON file. For fields under root object, start with "$"; for fields inside the array chosen by jsonNodeReference property, start from the array element. Example: {"Column1": "$.Column1Path", "Column2": "Column2PathInArray"}. Type: object (or Expression with resultType object). - :type json_path_definition: object + :type json_path_definition: any """ _validation = { @@ -19643,7 +20252,7 @@ class JsonFormat(DatasetStorageFormat): 'type': {'key': 'type', 'type': 'str'}, 'serializer': {'key': 'serializer', 'type': 'object'}, 'deserializer': {'key': 'deserializer', 'type': 'object'}, - 'file_pattern': {'key': 'filePattern', 'type': 'str'}, + 'file_pattern': {'key': 'filePattern', 'type': 'object'}, 'nesting_separator': {'key': 'nestingSeparator', 'type': 'object'}, 'encoding_name': {'key': 'encodingName', 'type': 'object'}, 'json_node_reference': {'key': 'jsonNodeReference', 'type': 'object'}, @@ -19670,7 +20279,7 @@ class JsonReadSettings(FormatReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param compression_properties: Compression settings. @@ -19703,24 +20312,27 @@ class JsonSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Json store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreWriteSettings :param format_settings: Json format settings. @@ -19739,6 +20351,7 @@ class JsonSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreWriteSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'JsonWriteSettings'}, } @@ -19760,18 +20373,21 @@ class JsonSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Json store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param format_settings: Json format settings. @@ -19791,6 +20407,7 @@ class JsonSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreReadSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'JsonReadSettings'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, @@ -19814,13 +20431,12 @@ class JsonWriteSettings(FormatWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param file_pattern: File pattern of JSON. This setting controls the way a collection of JSON - objects will be treated. The default value is 'setOfObjects'. It is case-sensitive. Possible - values include: "setOfObjects", "arrayOfObjects". - :type file_pattern: str or ~azure.mgmt.datafactory.models.JsonWriteFilePattern + objects will be treated. The default value is 'setOfObjects'. It is case-sensitive. + :type file_pattern: any """ _validation = { @@ -19830,7 +20446,7 @@ class JsonWriteSettings(FormatWriteSettings): _attribute_map = { 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, - 'file_pattern': {'key': 'filePattern', 'type': 'str'}, + 'file_pattern': {'key': 'filePattern', 'type': 'object'}, } def __init__( @@ -20073,12 +20689,12 @@ class LinkedServiceReference(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar type: Required. Linked service reference type. Default value: "LinkedServiceReference". + :ivar type: Linked service reference type. Has constant value: "LinkedServiceReference". :vartype type: str :param reference_name: Required. Reference LinkedService name. :type reference_name: str :param parameters: Arguments for LinkedService. - :type parameters: dict[str, object] + :type parameters: dict[str, any] """ _validation = { @@ -20155,7 +20771,7 @@ class LogLocationSettings(msrest.serialization.Model): :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param path: The path to storage for storing detailed logs of activity execution. Type: string (or Expression with resultType string). - :type path: object + :type path: any """ _validation = { @@ -20183,7 +20799,7 @@ class LogSettings(msrest.serialization.Model): :param enable_copy_activity_log: Specifies whether to enable copy activity log. Type: boolean (or Expression with resultType boolean). - :type enable_copy_activity_log: object + :type enable_copy_activity_log: any :param copy_activity_log_settings: Specifies settings for copy activity log. :type copy_activity_log_settings: ~azure.mgmt.datafactory.models.CopyActivityLogSettings :param log_location_settings: Required. Log location settings customer needs to provide when @@ -20218,18 +20834,18 @@ class LogStorageSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param linked_service_name: Required. Log storage linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param path: The path to storage for storing detailed logs of activity execution. Type: string (or Expression with resultType string). - :type path: object + :type path: any :param log_level: Gets or sets the log level, support: Info, Warning. Type: string (or Expression with resultType string). - :type log_level: object + :type log_level: any :param enable_reliable_logging: Specifies whether to enable reliable logging. Type: boolean (or Expression with resultType boolean). - :type enable_reliable_logging: object + :type enable_reliable_logging: any """ _validation = { @@ -20263,7 +20879,7 @@ class LookupActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -20284,7 +20900,7 @@ class LookupActivity(ExecutionActivity): :type dataset: ~azure.mgmt.datafactory.models.DatasetReference :param first_row_only: Whether to return first row or all rows. Default value is true. Type: boolean (or Expression with resultType boolean). - :type first_row_only: object + :type first_row_only: any """ _validation = { @@ -20326,7 +20942,7 @@ class MagentoLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -20336,25 +20952,25 @@ class MagentoLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The URL of the Magento instance. (i.e. 192.168.222.110/magento3). - :type host: object + :type host: any :param access_token: The access token from Magento. :type access_token: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -20398,28 +21014,28 @@ class MagentoObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -20456,27 +21072,30 @@ class MagentoSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -20489,6 +21108,7 @@ class MagentoSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -20503,6 +21123,45 @@ def __init__( self.query = kwargs.get('query', None) +class ManagedIdentityCredential(Credential): + """Managed identity credential. + + 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, any] + :param type: Required. Type of credential.Constant filled by server. + :type type: str + :param description: Credential description. + :type description: str + :param annotations: List of tags that can be used for describing the Credential. + :type annotations: list[any] + :param resource_id: The resource id of user assigned managed identity. + :type resource_id: str + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'type': {'key': 'type', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'annotations': {'key': 'annotations', 'type': '[object]'}, + 'resource_id': {'key': 'typeProperties.resourceId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedIdentityCredential, self).__init__(**kwargs) + self.type = 'ManagedIdentity' # type: str + self.resource_id = kwargs.get('resource_id', None) + + class ManagedIntegrationRuntime(IntegrationRuntime): """Managed integration runtime, including managed elastic and managed dedicated integration runtimes. @@ -20512,7 +21171,7 @@ class ManagedIntegrationRuntime(IntegrationRuntime): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of integration runtime.Constant filled by server. Possible values include: "Managed", "SelfHosted". :type type: str or ~azure.mgmt.datafactory.models.IntegrationRuntimeType @@ -20564,7 +21223,7 @@ class ManagedIntegrationRuntimeError(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar time: The time when the error occurred. :vartype time: ~datetime.datetime :ivar code: Error code. @@ -20609,7 +21268,7 @@ class ManagedIntegrationRuntimeNode(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar node_id: The managed integration runtime node id. :vartype node_id: str :ivar status: The managed integration runtime node status. Possible values include: "Starting", @@ -20649,7 +21308,7 @@ class ManagedIntegrationRuntimeOperationResult(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar type: The operation type. Could be start or stop. :vartype type: str :ivar start_time: The start time of the operation. @@ -20706,7 +21365,7 @@ class ManagedIntegrationRuntimeStatus(IntegrationRuntimeStatus): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of integration runtime.Constant filled by server. Possible values include: "Managed", "SelfHosted". :type type: str or ~azure.mgmt.datafactory.models.IntegrationRuntimeType @@ -20767,7 +21426,7 @@ class ManagedPrivateEndpoint(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param connection_state: The managed private endpoint connection state. :type connection_state: ~azure.mgmt.datafactory.models.ConnectionStateProperties :param fqdns: Fully qualified domain names. @@ -20891,7 +21550,7 @@ class ManagedVirtualNetwork(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar v_net_id: Managed Virtual Network ID. :vartype v_net_id: str :ivar alias: Managed Virtual Network alias. @@ -20955,7 +21614,7 @@ class ManagedVirtualNetworkReference(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar type: Required. Managed Virtual Network reference type. Default value: + :ivar type: Managed Virtual Network reference type. Has constant value: "ManagedVirtualNetworkReference". :vartype type: str :param reference_name: Required. Reference ManagedVirtualNetwork name. @@ -21028,12 +21687,14 @@ def __init__( class MappingDataFlow(DataFlow): """Mapping data flow. - :param type: Type of data flow.Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Type of data flow.Constant filled by server. :type type: str :param description: The description of the data flow. :type description: str :param annotations: List of tags that can be used for describing the data flow. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this data flow is in. If not specified, Data flow will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DataFlowFolder @@ -21047,6 +21708,10 @@ class MappingDataFlow(DataFlow): :type script: str """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str'}, 'description': {'key': 'description', 'type': 'str'}, @@ -21077,7 +21742,7 @@ class MariaDBLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -21087,16 +21752,16 @@ class MariaDBLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param pwd: The Azure key vault secret reference of password in connection string. :type pwd: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -21133,27 +21798,30 @@ class MariaDBSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -21166,6 +21834,7 @@ class MariaDBSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -21187,28 +21856,28 @@ class MariaDBTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -21245,7 +21914,7 @@ class MarketoLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -21255,27 +21924,27 @@ class MarketoLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param endpoint: Required. The endpoint of the Marketo server. (i.e. 123-ABC-321.mktorest.com). - :type endpoint: object + :type endpoint: any :param client_id: Required. The client Id of your Marketo service. - :type client_id: object + :type client_id: any :param client_secret: The client secret of your Marketo service. :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -21322,28 +21991,28 @@ class MarketoObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -21380,27 +22049,30 @@ class MarketoSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -21413,6 +22085,7 @@ class MarketoSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -21427,6 +22100,29 @@ def __init__( self.query = kwargs.get('query', None) +class MetadataItem(msrest.serialization.Model): + """Specify the name and value of custom metadata item. + + :param name: Metadata item key name. Type: string (or Expression with resultType string). + :type name: any + :param value: Metadata item value. Type: string (or Expression with resultType string). + :type value: any + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'object'}, + 'value': {'key': 'value', 'type': 'object'}, + } + + def __init__( + self, + **kwargs + ): + super(MetadataItem, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.value = kwargs.get('value', None) + + class MicrosoftAccessLinkedService(LinkedService): """Microsoft Access linked service. @@ -21434,7 +22130,7 @@ class MicrosoftAccessLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -21444,27 +22140,27 @@ class MicrosoftAccessLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The non-access credential portion of the connection string as well as an optional encrypted credential. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param authentication_type: Type of authentication used to connect to the Microsoft Access as ODBC data store. Possible values are: Anonymous and Basic. Type: string (or Expression with resultType string). - :type authentication_type: object - :param credential: The access credential portion of the connection string specified in driver- - specific property-value format. + :type authentication_type: any + :param credential: The access credential portion of the connection string specified in + driver-specific property-value format. :type credential: ~azure.mgmt.datafactory.models.SecretBase :param user_name: User name for Basic authentication. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password for Basic authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -21508,27 +22204,30 @@ class MicrosoftAccessSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: A query to execute before starting the copy. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any """ _validation = { @@ -21543,6 +22242,7 @@ class MicrosoftAccessSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, } @@ -21562,20 +22262,23 @@ class MicrosoftAccessSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -21591,6 +22294,7 @@ class MicrosoftAccessSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -21612,29 +22316,29 @@ class MicrosoftAccessTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The Microsoft Access table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -21671,29 +22375,29 @@ class MongoDbAtlasCollectionDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param collection: Required. The collection name of the MongoDB Atlas database. Type: string (or Expression with resultType string). - :type collection: object + :type collection: any """ _validation = { @@ -21731,7 +22435,7 @@ class MongoDbAtlasLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -21741,14 +22445,14 @@ class MongoDbAtlasLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The MongoDB Atlas connection string. Type: string, SecureString or AzureKeyVaultSecretReference. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param database: Required. The name of the MongoDB Atlas database that you want to access. Type: string (or Expression with resultType string). - :type database: object + :type database: any """ _validation = { @@ -21778,6 +22482,65 @@ def __init__( self.database = kwargs['database'] +class MongoDbAtlasSink(CopySink): + """A copy activity MongoDB Atlas sink. + + 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, any] + :param type: Required. Copy sink type.Constant filled by server. + :type type: str + :param write_batch_size: Write batch size. Type: integer (or Expression with resultType + integer), minimum: 0. + :type write_batch_size: any + :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType + string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). + :type write_batch_timeout: any + :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType + integer). + :type sink_retry_count: any + :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), + pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). + :type sink_retry_wait: any + :param max_concurrent_connections: The maximum concurrent connection count for the sink data + store. Type: integer (or Expression with resultType integer). + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any + :param write_behavior: Specifies whether the document with same key to be overwritten (upsert) + rather than throw exception (insert). The default value is "insert". Type: string (or + Expression with resultType string). Type: string (or Expression with resultType string). + :type write_behavior: any + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'type': {'key': 'type', 'type': 'str'}, + 'write_batch_size': {'key': 'writeBatchSize', 'type': 'object'}, + 'write_batch_timeout': {'key': 'writeBatchTimeout', 'type': 'object'}, + 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, + 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, + 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, + 'write_behavior': {'key': 'writeBehavior', 'type': 'object'}, + } + + def __init__( + self, + **kwargs + ): + super(MongoDbAtlasSink, self).__init__(**kwargs) + self.type = 'MongoDbAtlasSink' # type: str + self.write_behavior = kwargs.get('write_behavior', None) + + class MongoDbAtlasSource(CopySource): """A copy activity source for a MongoDB Atlas database. @@ -21785,32 +22548,35 @@ class MongoDbAtlasSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param filter: Specifies selection filter using query operators. To return all documents in a collection, omit this parameter or pass an empty document ({}). Type: string (or Expression with resultType string). - :type filter: object + :type filter: any :param cursor_methods: Cursor methods for Mongodb query. :type cursor_methods: ~azure.mgmt.datafactory.models.MongoDbCursorMethodsProperties :param batch_size: Specifies the number of documents to return in each batch of the response from MongoDB Atlas instance. In most cases, modifying the batch size will not affect the user or the application. This property's main purpose is to avoid hit the limitation of response size. Type: integer (or Expression with resultType integer). - :type batch_size: object + :type batch_size: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -21826,6 +22592,7 @@ class MongoDbAtlasSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'filter': {'key': 'filter', 'type': 'object'}, 'cursor_methods': {'key': 'cursorMethods', 'type': 'MongoDbCursorMethodsProperties'}, 'batch_size': {'key': 'batchSize', 'type': 'object'}, @@ -21853,29 +22620,29 @@ class MongoDbCollectionDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param collection_name: Required. The table name of the MongoDB database. Type: string (or Expression with resultType string). - :type collection_name: object + :type collection_name: any """ _validation = { @@ -21911,22 +22678,22 @@ class MongoDbCursorMethodsProperties(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param project: Specifies the fields to return in the documents that match the query filter. To return all fields in the matching documents, omit this parameter. Type: string (or Expression with resultType string). - :type project: object + :type project: any :param sort: Specifies the order in which the query returns matching documents. Type: string (or Expression with resultType string). Type: string (or Expression with resultType string). - :type sort: object + :type sort: any :param skip: Specifies the how many documents skipped and where MongoDB begins returning results. This approach may be useful in implementing paginated results. Type: integer (or Expression with resultType integer). - :type skip: object + :type skip: any :param limit: Specifies the maximum number of documents the server returns. limit() is analogous to the LIMIT statement in a SQL database. Type: integer (or Expression with resultType integer). - :type limit: object + :type limit: any """ _attribute_map = { @@ -21956,7 +22723,7 @@ class MongoDbLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -21966,37 +22733,37 @@ class MongoDbLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param server: Required. The IP address or server name of the MongoDB server. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param authentication_type: The authentication type to be used to connect to the MongoDB database. Possible values include: "Basic", "Anonymous". :type authentication_type: str or ~azure.mgmt.datafactory.models.MongoDbAuthenticationType :param database_name: Required. The name of the MongoDB database that you want to access. Type: string (or Expression with resultType string). - :type database_name: object + :type database_name: any :param username: Username for authentication. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password for authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param auth_source: Database to verify the username and password. Type: string (or Expression with resultType string). - :type auth_source: object + :type auth_source: any :param port: The TCP port number that the MongoDB server uses to listen for client connections. The default value is 27017. Type: integer (or Expression with resultType integer), minimum: 0. - :type port: object + :type port: any :param enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false. Type: boolean (or Expression with resultType boolean). - :type enable_ssl: object + :type enable_ssl: any :param allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false. Type: boolean (or Expression with resultType boolean). - :type allow_self_signed_server_cert: object + :type allow_self_signed_server_cert: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -22049,21 +22816,24 @@ class MongoDbSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: Database query. Should be a SQL-92 query expression. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -22079,6 +22849,7 @@ class MongoDbSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -22100,29 +22871,29 @@ class MongoDbV2CollectionDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param collection: Required. The collection name of the MongoDB database. Type: string (or Expression with resultType string). - :type collection: object + :type collection: any """ _validation = { @@ -22160,7 +22931,7 @@ class MongoDbV2LinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -22170,13 +22941,13 @@ class MongoDbV2LinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The MongoDB connection string. Type: string, SecureString or AzureKeyVaultSecretReference. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param database: Required. The name of the MongoDB database that you want to access. Type: string (or Expression with resultType string). - :type database: object + :type database: any """ _validation = { @@ -22206,6 +22977,65 @@ def __init__( self.database = kwargs['database'] +class MongoDbV2Sink(CopySink): + """A copy activity MongoDB sink. + + 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, any] + :param type: Required. Copy sink type.Constant filled by server. + :type type: str + :param write_batch_size: Write batch size. Type: integer (or Expression with resultType + integer), minimum: 0. + :type write_batch_size: any + :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType + string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). + :type write_batch_timeout: any + :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType + integer). + :type sink_retry_count: any + :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), + pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). + :type sink_retry_wait: any + :param max_concurrent_connections: The maximum concurrent connection count for the sink data + store. Type: integer (or Expression with resultType integer). + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any + :param write_behavior: Specifies whether the document with same key to be overwritten (upsert) + rather than throw exception (insert). The default value is "insert". Type: string (or + Expression with resultType string). Type: string (or Expression with resultType string). + :type write_behavior: any + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'type': {'key': 'type', 'type': 'str'}, + 'write_batch_size': {'key': 'writeBatchSize', 'type': 'object'}, + 'write_batch_timeout': {'key': 'writeBatchTimeout', 'type': 'object'}, + 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, + 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, + 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, + 'write_behavior': {'key': 'writeBehavior', 'type': 'object'}, + } + + def __init__( + self, + **kwargs + ): + super(MongoDbV2Sink, self).__init__(**kwargs) + self.type = 'MongoDbV2Sink' # type: str + self.write_behavior = kwargs.get('write_behavior', None) + + class MongoDbV2Source(CopySource): """A copy activity source for a MongoDB database. @@ -22213,32 +23043,35 @@ class MongoDbV2Source(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param filter: Specifies selection filter using query operators. To return all documents in a collection, omit this parameter or pass an empty document ({}). Type: string (or Expression with resultType string). - :type filter: object + :type filter: any :param cursor_methods: Cursor methods for Mongodb query. :type cursor_methods: ~azure.mgmt.datafactory.models.MongoDbCursorMethodsProperties :param batch_size: Specifies the number of documents to return in each batch of the response from MongoDB instance. In most cases, modifying the batch size will not affect the user or the application. This property's main purpose is to avoid hit the limitation of response size. Type: integer (or Expression with resultType integer). - :type batch_size: object + :type batch_size: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -22254,6 +23087,7 @@ class MongoDbV2Source(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'filter': {'key': 'filter', 'type': 'object'}, 'cursor_methods': {'key': 'cursorMethods', 'type': 'MongoDbCursorMethodsProperties'}, 'batch_size': {'key': 'batchSize', 'type': 'object'}, @@ -22281,7 +23115,7 @@ class MySqlLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -22291,15 +23125,15 @@ class MySqlLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -22337,26 +23171,29 @@ class MySqlSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -22369,6 +23206,7 @@ class MySqlSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -22390,28 +23228,28 @@ class MySqlTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The MySQL table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -22448,7 +23286,7 @@ class NetezzaLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -22458,16 +23296,16 @@ class NetezzaLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param pwd: The Azure key vault secret reference of password in connection string. :type pwd: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -22502,15 +23340,15 @@ class NetezzaPartitionSettings(msrest.serialization.Model): :param partition_column_name: The name of the column in integer type that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_column_name: object + :type partition_column_name: any :param partition_upper_bound: The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_upper_bound: object + :type partition_upper_bound: any :param partition_lower_bound: The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_lower_bound: object + :type partition_lower_bound: any """ _attribute_map = { @@ -22536,30 +23374,33 @@ class NetezzaSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param partition_option: The partition mechanism that will be used for Netezza read in parallel. Possible values include: "None", "DataSlice", "DynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for Netezza source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.NetezzaPartitionSettings """ @@ -22574,6 +23415,7 @@ class NetezzaSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -22599,35 +23441,35 @@ class NetezzaTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Netezza. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Netezza. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -22668,7 +23510,7 @@ class ODataLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -22678,35 +23520,35 @@ class ODataLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. The URL of the OData service endpoint. Type: string (or Expression with resultType string). - :type url: object + :type url: any :param authentication_type: Type of authentication used to connect to the OData service. Possible values include: "Basic", "Anonymous", "Windows", "AadServicePrincipal", "ManagedServiceIdentity". :type authentication_type: str or ~azure.mgmt.datafactory.models.ODataAuthenticationType :param user_name: User name of the OData service. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password of the OData service. :type password: ~azure.mgmt.datafactory.models.SecretBase :param auth_headers: The additional HTTP headers in the request to RESTful API used for authorization. Type: object (or Expression with resultType object). - :type auth_headers: object + :type auth_headers: any :param tenant: Specify the tenant information (domain name or tenant ID) under which your application resides. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param service_principal_id: Specify the application id of your application registered in Azure Active Directory. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param aad_resource_id: Specify the resource you are requesting authorization to use Directory. Type: string (or Expression with resultType string). - :type aad_resource_id: object + :type aad_resource_id: any :param aad_service_principal_credential_type: Specify the credential type (key or cert) is used for service principal. Possible values include: "ServicePrincipalKey", "ServicePrincipalCert". :type aad_service_principal_credential_type: str or @@ -22725,7 +23567,7 @@ class ODataLinkedService(LinkedService): :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -22785,28 +23627,28 @@ class ODataResourceDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param path: The OData resource path. Type: string (or Expression with resultType string). - :type path: object + :type path: any """ _validation = { @@ -22843,26 +23685,29 @@ class ODataSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: OData query. For example, "$top=1". Type: string (or Expression with resultType string). - :type query: object + :type query: any :param http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -22878,6 +23723,7 @@ class ODataSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'http_request_timeout': {'key': 'httpRequestTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, @@ -22901,7 +23747,7 @@ class OdbcLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -22911,26 +23757,26 @@ class OdbcLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The non-access credential portion of the connection string as well as an optional encrypted credential. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param authentication_type: Type of authentication used to connect to the ODBC data store. Possible values are: Anonymous and Basic. Type: string (or Expression with resultType string). - :type authentication_type: object - :param credential: The access credential portion of the connection string specified in driver- - specific property-value format. + :type authentication_type: any + :param credential: The access credential portion of the connection string specified in + driver-specific property-value format. :type credential: ~azure.mgmt.datafactory.models.SecretBase :param user_name: User name for Basic authentication. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password for Basic authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -22974,27 +23820,30 @@ class OdbcSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: A query to execute before starting the copy. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any """ _validation = { @@ -23009,6 +23858,7 @@ class OdbcSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, } @@ -23028,26 +23878,29 @@ class OdbcSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -23060,6 +23913,7 @@ class OdbcSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -23081,28 +23935,28 @@ class OdbcTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The ODBC table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -23139,32 +23993,32 @@ class Office365Dataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: Required. Name of the dataset to extract from Office 365. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any :param predicate: A predicate expression that can be used to filter the specific rows to extract from Office 365. Type: string (or Expression with resultType string). - :type predicate: object + :type predicate: any """ _validation = { @@ -23204,7 +24058,7 @@ class Office365LinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -23214,22 +24068,22 @@ class Office365LinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param office365_tenant_id: Required. Azure tenant ID to which the Office 365 account belongs. Type: string (or Expression with resultType string). - :type office365_tenant_id: object + :type office365_tenant_id: any :param service_principal_tenant_id: Required. Specify the tenant information under which your Azure AD web application resides. Type: string (or Expression with resultType string). - :type service_principal_tenant_id: object + :type service_principal_tenant_id: any :param service_principal_id: Required. Specify the application's client ID. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: Required. Specify the application's key. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -23274,37 +24128,40 @@ class Office365Source(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param allowed_groups: The groups containing all the users. Type: array of strings (or Expression with resultType array of strings). - :type allowed_groups: object + :type allowed_groups: any :param user_scope_filter_uri: The user scope uri. Type: string (or Expression with resultType string). - :type user_scope_filter_uri: object + :type user_scope_filter_uri: any :param date_filter_column: The Column to apply the :code:`` and :code:``. Type: string (or Expression with resultType string). - :type date_filter_column: object + :type date_filter_column: any :param start_time: Start time of the requested range for this dataset. Type: string (or Expression with resultType string). - :type start_time: object + :type start_time: any :param end_time: End time of the requested range for this dataset. Type: string (or Expression with resultType string). - :type end_time: object + :type end_time: any :param output_columns: The columns to be read out from the Office 365 table. Type: array of objects (or Expression with resultType array of objects). Example: [ { "name": "Id" }, { "name": "CreatedDateTime" } ]. - :type output_columns: object + :type output_columns: any """ _validation = { @@ -23317,6 +24174,7 @@ class Office365Source(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'allowed_groups': {'key': 'allowedGroups', 'type': 'object'}, 'user_scope_filter_uri': {'key': 'userScopeFilterUri', 'type': 'object'}, 'date_filter_column': {'key': 'dateFilterColumn', 'type': 'object'}, @@ -23586,7 +24444,7 @@ class OracleCloudStorageLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -23596,10 +24454,10 @@ class OracleCloudStorageLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param access_key_id: The access key identifier of the Oracle Cloud Storage Identity and Access Management (IAM) user. Type: string (or Expression with resultType string). - :type access_key_id: object + :type access_key_id: any :param secret_access_key: The secret access key of the Oracle Cloud Storage Identity and Access Management (IAM) user. :type secret_access_key: ~azure.mgmt.datafactory.models.SecretBase @@ -23607,11 +24465,11 @@ class OracleCloudStorageLinkedService(LinkedService): Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string). - :type service_url: object + :type service_url: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -23650,21 +24508,21 @@ class OracleCloudStorageLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param bucket_name: Specify the bucketName of Oracle Cloud Storage. Type: string (or Expression with resultType string). - :type bucket_name: object + :type bucket_name: any :param version: Specify the version of Oracle Cloud Storage. Type: string (or Expression with resultType string). - :type version: object + :type version: any """ _validation = { @@ -23697,42 +24555,45 @@ class OracleCloudStorageReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: Oracle Cloud Storage wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: Oracle Cloud Storage wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param prefix: The prefix filter for the Oracle Cloud Storage object name. Type: string (or Expression with resultType string). - :type prefix: object + :type prefix: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -23743,6 +24604,7 @@ class OracleCloudStorageReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -23780,7 +24642,7 @@ class OracleLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -23790,16 +24652,16 @@ class OracleLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -23834,18 +24696,18 @@ class OraclePartitionSettings(msrest.serialization.Model): """The settings that will be leveraged for Oracle source partitioning. :param partition_names: Names of the physical partitions of Oracle table. - :type partition_names: object + :type partition_names: any :param partition_column_name: The name of the column in integer type that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_column_name: object + :type partition_column_name: any :param partition_upper_bound: The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_upper_bound: object + :type partition_upper_bound: any :param partition_lower_bound: The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_lower_bound: object + :type partition_lower_bound: any """ _attribute_map = { @@ -23873,7 +24735,7 @@ class OracleServiceCloudLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -23883,29 +24745,29 @@ class OracleServiceCloudLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The URL of the Oracle Service Cloud instance. - :type host: object + :type host: any :param username: Required. The user name that you use to access Oracle Service Cloud server. - :type username: object + :type username: any :param password: Required. The password corresponding to the user name that you provided in the username key. :type password: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -23953,28 +24815,28 @@ class OracleServiceCloudObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -24011,27 +24873,30 @@ class OracleServiceCloudSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -24044,6 +24909,7 @@ class OracleServiceCloudSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -24065,27 +24931,30 @@ class OracleSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any """ _validation = { @@ -24100,6 +24969,7 @@ class OracleSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, } @@ -24119,27 +24989,30 @@ class OracleSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param oracle_reader_query: Oracle reader query. Type: string (or Expression with resultType string). - :type oracle_reader_query: object + :type oracle_reader_query: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param partition_option: The partition mechanism that will be used for Oracle read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for Oracle source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.OraclePartitionSettings :param additional_columns: Specifies the additional columns to be added to source data. Type: @@ -24157,6 +25030,7 @@ class OracleSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'oracle_reader_query': {'key': 'oracleReaderQuery', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'partition_option': {'key': 'partitionOption', 'type': 'object'}, @@ -24184,35 +25058,35 @@ class OracleTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param schema_type_properties_schema: The schema name of the on-premises Oracle database. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any :param table: The table name of the on-premises Oracle database. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -24253,30 +25127,31 @@ class OrcDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param location: The location of the ORC data storage. :type location: ~azure.mgmt.datafactory.models.DatasetLocation - :param orc_compression_codec: Possible values include: "none", "zlib", "snappy", "lzo". - :type orc_compression_codec: str or ~azure.mgmt.datafactory.models.OrcCompressionCodec + :param orc_compression_codec: The data orcCompressionCodec. Type: string (or Expression with + resultType string). + :type orc_compression_codec: any """ _validation = { @@ -24295,7 +25170,7 @@ class OrcDataset(Dataset): 'annotations': {'key': 'annotations', 'type': '[object]'}, 'folder': {'key': 'folder', 'type': 'DatasetFolder'}, 'location': {'key': 'typeProperties.location', 'type': 'DatasetLocation'}, - 'orc_compression_codec': {'key': 'typeProperties.orcCompressionCodec', 'type': 'str'}, + 'orc_compression_codec': {'key': 'typeProperties.orcCompressionCodec', 'type': 'object'}, } def __init__( @@ -24315,13 +25190,13 @@ class OrcFormat(DatasetStorageFormat): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage format.Constant filled by server. :type type: str :param serializer: Serializer. Type: string (or Expression with resultType string). - :type serializer: object + :type serializer: any :param deserializer: Deserializer. Type: string (or Expression with resultType string). - :type deserializer: object + :type deserializer: any """ _validation = { @@ -24350,24 +25225,27 @@ class OrcSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: ORC store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreWriteSettings :param format_settings: ORC format settings. @@ -24386,6 +25264,7 @@ class OrcSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreWriteSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'OrcWriteSettings'}, } @@ -24407,18 +25286,21 @@ class OrcSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: ORC store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param additional_columns: Specifies the additional columns to be added to source data. Type: @@ -24436,6 +25318,7 @@ class OrcSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreReadSettings'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -24457,16 +25340,16 @@ class OrcWriteSettings(FormatWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_rows_per_file: Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer). - :type max_rows_per_file: object + :type max_rows_per_file: any :param file_name_prefix: Specifies the file name pattern :code:``_:code:``.:code:`` when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string). - :type file_name_prefix: object + :type file_name_prefix: any """ _validation = { @@ -24529,7 +25412,7 @@ class ParameterSpecification(msrest.serialization.Model): "Float", "Bool", "Array", "SecureString". :type type: str or ~azure.mgmt.datafactory.models.ParameterType :param default_value: Default value of parameter. - :type default_value: object + :type default_value: any """ _validation = { @@ -24557,31 +25440,31 @@ class ParquetDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param location: The location of the parquet storage. :type location: ~azure.mgmt.datafactory.models.DatasetLocation - :param compression_codec: Possible values include: "none", "gzip", "snappy", "lzo", "bzip2", - "deflate", "zipDeflate", "lz4", "tar", "tarGZip". - :type compression_codec: str or ~azure.mgmt.datafactory.models.CompressionCodec + :param compression_codec: The data compressionCodec. Type: string (or Expression with + resultType string). + :type compression_codec: any """ _validation = { @@ -24600,7 +25483,7 @@ class ParquetDataset(Dataset): 'annotations': {'key': 'annotations', 'type': '[object]'}, 'folder': {'key': 'folder', 'type': 'DatasetFolder'}, 'location': {'key': 'typeProperties.location', 'type': 'DatasetLocation'}, - 'compression_codec': {'key': 'typeProperties.compressionCodec', 'type': 'str'}, + 'compression_codec': {'key': 'typeProperties.compressionCodec', 'type': 'object'}, } def __init__( @@ -24620,13 +25503,13 @@ class ParquetFormat(DatasetStorageFormat): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage format.Constant filled by server. :type type: str :param serializer: Serializer. Type: string (or Expression with resultType string). - :type serializer: object + :type serializer: any :param deserializer: Deserializer. Type: string (or Expression with resultType string). - :type deserializer: object + :type deserializer: any """ _validation = { @@ -24655,24 +25538,27 @@ class ParquetSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Parquet store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreWriteSettings :param format_settings: Parquet format settings. @@ -24691,6 +25577,7 @@ class ParquetSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreWriteSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'ParquetWriteSettings'}, } @@ -24712,18 +25599,21 @@ class ParquetSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Parquet store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param additional_columns: Specifies the additional columns to be added to source data. Type: @@ -24741,6 +25631,7 @@ class ParquetSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreReadSettings'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -24762,16 +25653,16 @@ class ParquetWriteSettings(FormatWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_rows_per_file: Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer). - :type max_rows_per_file: object + :type max_rows_per_file: any :param file_name_prefix: Specifies the file name pattern :code:``_:code:``.:code:`` when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string). - :type file_name_prefix: object + :type file_name_prefix: any """ _validation = { @@ -24802,7 +25693,7 @@ class PaypalLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -24812,27 +25703,27 @@ class PaypalLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The URL of the PayPal instance. (i.e. api.sandbox.paypal.com). - :type host: object + :type host: any :param client_id: Required. The client ID associated with your PayPal application. - :type client_id: object + :type client_id: any :param client_secret: The client secret associated with your PayPal application. :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -24879,28 +25770,28 @@ class PaypalObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -24937,27 +25828,30 @@ class PaypalSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -24970,6 +25864,7 @@ class PaypalSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -24991,7 +25886,7 @@ class PhoenixLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -25001,45 +25896,45 @@ class PhoenixLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The IP address or host name of the Phoenix server. (i.e. 192.168.222.160). - :type host: object + :type host: any :param port: The TCP port that the Phoenix server uses to listen for client connections. The default value is 8765. - :type port: object + :type port: any :param http_path: The partial URL corresponding to the Phoenix server. (i.e. /gateway/sandbox/phoenix/version). The default value is hbasephoenix if using WindowsAzureHDInsightService. - :type http_path: object + :type http_path: any :param authentication_type: Required. The authentication mechanism used to connect to the Phoenix server. Possible values include: "Anonymous", "UsernameAndPassword", "WindowsAzureHDInsightService". :type authentication_type: str or ~azure.mgmt.datafactory.models.PhoenixAuthenticationType :param username: The user name used to connect to the Phoenix server. - :type username: object + :type username: any :param password: The password corresponding to the user name. :type password: ~azure.mgmt.datafactory.models.SecretBase :param enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false. - :type enable_ssl: object + :type enable_ssl: any :param trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. - :type trusted_cert_path: object + :type trusted_cert_path: any :param use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. - :type use_system_trust_store: object + :type use_system_trust_store: any :param allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false. - :type allow_host_name_cn_mismatch: object + :type allow_host_name_cn_mismatch: any :param allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false. - :type allow_self_signed_server_cert: object + :type allow_self_signed_server_cert: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -25096,35 +25991,35 @@ class PhoenixObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Phoenix. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Phoenix. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -25165,27 +26060,30 @@ class PhoenixSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -25198,6 +26096,7 @@ class PhoenixSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -25216,7 +26115,7 @@ class PipelineElapsedTimeMetricPolicy(msrest.serialization.Model): """Pipeline ElapsedTime Metric Policy. :param duration: TimeSpan value, after which an Azure Monitoring Metric is fired. - :type duration: object + :type duration: any """ _attribute_map = { @@ -25305,7 +26204,7 @@ class PipelineReference(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar type: Required. Pipeline reference type. Default value: "PipelineReference". + :ivar type: Pipeline reference type. Has constant value: "PipelineReference". :vartype type: str :param reference_name: Required. Reference pipeline name. :type reference_name: str @@ -25350,7 +26249,7 @@ class PipelineResource(SubResource): :vartype etag: str :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param description: The description of the pipeline. :type description: str :param activities: List of activities in pipeline. @@ -25362,9 +26261,9 @@ class PipelineResource(SubResource): :param concurrency: The max number of concurrent runs for the pipeline. :type concurrency: int :param annotations: List of tags that can be used for describing the Pipeline. - :type annotations: list[object] + :type annotations: list[any] :param run_dimensions: Dimensions emitted by Pipeline. - :type run_dimensions: dict[str, object] + :type run_dimensions: dict[str, any] :param folder: The folder that this Pipeline is in. If not specified, Pipeline will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.PipelineFolder @@ -25421,7 +26320,7 @@ class PipelineRun(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar run_id: Identifier of a run. :vartype run_id: str :ivar run_group_id: Identifier that correlates all the recovery runs of a pipeline run. @@ -25516,18 +26415,26 @@ class PipelineRunInvokedBy(msrest.serialization.Model): :vartype id: str :ivar invoked_by_type: The type of the entity that started the run. :vartype invoked_by_type: str + :ivar pipeline_name: The name of the pipeline that triggered the run, if any. + :vartype pipeline_name: str + :ivar pipeline_run_id: The run id of the pipeline that triggered the run, if any. + :vartype pipeline_run_id: str """ _validation = { 'name': {'readonly': True}, 'id': {'readonly': True}, 'invoked_by_type': {'readonly': True}, + 'pipeline_name': {'readonly': True}, + 'pipeline_run_id': {'readonly': True}, } _attribute_map = { 'name': {'key': 'name', 'type': 'str'}, 'id': {'key': 'id', 'type': 'str'}, 'invoked_by_type': {'key': 'invokedByType', 'type': 'str'}, + 'pipeline_name': {'key': 'pipelineName', 'type': 'str'}, + 'pipeline_run_id': {'key': 'pipelineRunId', 'type': 'str'}, } def __init__( @@ -25538,6 +26445,8 @@ def __init__( self.name = None self.id = None self.invoked_by_type = None + self.pipeline_name = None + self.pipeline_run_id = None class PipelineRunsQueryResponse(msrest.serialization.Model): @@ -25575,20 +26484,20 @@ class PolybaseSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param reject_type: Reject type. Possible values include: "value", "percentage". :type reject_type: str or ~azure.mgmt.datafactory.models.PolybaseSettingsRejectType :param reject_value: Specifies the value or the percentage of rows that can be rejected before the query fails. Type: number (or Expression with resultType number), minimum: 0. - :type reject_value: object + :type reject_value: any :param reject_sample_value: Determines the number of rows to attempt to retrieve before the PolyBase recalculates the percentage of rejected rows. Type: integer (or Expression with resultType integer), minimum: 0. - :type reject_sample_value: object + :type reject_sample_value: any :param use_type_default: Specifies how to handle missing values in delimited text files when PolyBase retrieves data from the text file. Type: boolean (or Expression with resultType boolean). - :type use_type_default: object + :type use_type_default: any """ _attribute_map = { @@ -25618,7 +26527,7 @@ class PostgreSqlLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -25628,15 +26537,15 @@ class PostgreSqlLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -25674,26 +26583,29 @@ class PostgreSqlSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -25706,6 +26618,7 @@ class PostgreSqlSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -25727,34 +26640,34 @@ class PostgreSqlTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The PostgreSQL table name. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The PostgreSQL schema name. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -25795,7 +26708,7 @@ class PrestoLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -25805,47 +26718,47 @@ class PrestoLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The IP address or host name of the Presto server. (i.e. 192.168.222.160). - :type host: object + :type host: any :param server_version: Required. The version of the Presto server. (i.e. 0.148-t). - :type server_version: object + :type server_version: any :param catalog: Required. The catalog context for all request against the server. - :type catalog: object + :type catalog: any :param port: The TCP port that the Presto server uses to listen for client connections. The default value is 8080. - :type port: object + :type port: any :param authentication_type: Required. The authentication mechanism used to connect to the Presto server. Possible values include: "Anonymous", "LDAP". :type authentication_type: str or ~azure.mgmt.datafactory.models.PrestoAuthenticationType :param username: The user name used to connect to the Presto server. - :type username: object + :type username: any :param password: The password corresponding to the user name. :type password: ~azure.mgmt.datafactory.models.SecretBase :param enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false. - :type enable_ssl: object + :type enable_ssl: any :param trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. - :type trusted_cert_path: object + :type trusted_cert_path: any :param use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. - :type use_system_trust_store: object + :type use_system_trust_store: any :param allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false. - :type allow_host_name_cn_mismatch: object + :type allow_host_name_cn_mismatch: any :param allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false. - :type allow_self_signed_server_cert: object + :type allow_self_signed_server_cert: any :param time_zone_id: The local time zone used by the connection. Valid values for this option are specified in the IANA Time Zone Database. The default value is the system time zone. - :type time_zone_id: object + :type time_zone_id: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -25908,35 +26821,35 @@ class PrestoObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Presto. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Presto. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -25977,27 +26890,30 @@ class PrestoSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -26010,6 +26926,7 @@ class PrestoSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -26024,6 +26941,262 @@ def __init__( self.query = kwargs.get('query', None) +class PrivateEndpointConnectionListResponse(msrest.serialization.Model): + """A list of linked service resources. + + All required parameters must be populated in order to send to Azure. + + :param value: Required. List of Private Endpoint Connections. + :type value: list[~azure.mgmt.datafactory.models.PrivateEndpointConnectionResource] + :param next_link: The link to the next page of results, if any remaining results exist. + :type next_link: str + """ + + _validation = { + 'value': {'required': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PrivateEndpointConnectionResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateEndpointConnectionListResponse, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = kwargs.get('next_link', None) + + +class PrivateEndpointConnectionResource(SubResource): + """Private Endpoint Connection ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The resource identifier. + :vartype id: str + :ivar name: The resource name. + :vartype name: str + :ivar type: The resource type. + :vartype type: str + :ivar etag: Etag identifies change in the resource. + :vartype etag: str + :param properties: Core resource properties. + :type properties: ~azure.mgmt.datafactory.models.RemotePrivateEndpointConnection + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'RemotePrivateEndpointConnection'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateEndpointConnectionResource, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) + + +class PrivateLinkConnectionApprovalRequest(msrest.serialization.Model): + """A request to approve or reject a private endpoint connection. + + :param private_link_service_connection_state: The state of a private link connection. + :type private_link_service_connection_state: + ~azure.mgmt.datafactory.models.PrivateLinkConnectionState + """ + + _attribute_map = { + 'private_link_service_connection_state': {'key': 'privateLinkServiceConnectionState', 'type': 'PrivateLinkConnectionState'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkConnectionApprovalRequest, self).__init__(**kwargs) + self.private_link_service_connection_state = kwargs.get('private_link_service_connection_state', None) + + +class PrivateLinkConnectionApprovalRequestResource(SubResource): + """Private Endpoint Connection Approval ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The resource identifier. + :vartype id: str + :ivar name: The resource name. + :vartype name: str + :ivar type: The resource type. + :vartype type: str + :ivar etag: Etag identifies change in the resource. + :vartype etag: str + :param properties: Core resource properties. + :type properties: ~azure.mgmt.datafactory.models.PrivateLinkConnectionApprovalRequest + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'PrivateLinkConnectionApprovalRequest'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkConnectionApprovalRequestResource, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) + + +class PrivateLinkConnectionState(msrest.serialization.Model): + """The state of a private link connection. + + :param status: Status of a private link connection. + :type status: str + :param description: Description of a private link connection. + :type description: str + :param actions_required: ActionsRequired for a private link connection. + :type actions_required: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'actions_required': {'key': 'actionsRequired', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkConnectionState, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.description = kwargs.get('description', None) + self.actions_required = kwargs.get('actions_required', None) + + +class PrivateLinkResource(SubResource): + """A private link resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The resource identifier. + :vartype id: str + :ivar name: The resource name. + :vartype name: str + :ivar type: The resource type. + :vartype type: str + :ivar etag: Etag identifies change in the resource. + :vartype etag: str + :param properties: Core resource properties. + :type properties: ~azure.mgmt.datafactory.models.PrivateLinkResourceProperties + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'PrivateLinkResourceProperties'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkResource, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) + + +class PrivateLinkResourceProperties(msrest.serialization.Model): + """Properties of a private link resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar group_id: GroupId of a private link resource. + :vartype group_id: str + :ivar required_members: RequiredMembers of a private link resource. + :vartype required_members: list[str] + :ivar required_zone_names: RequiredZoneNames of a private link resource. + :vartype required_zone_names: list[str] + """ + + _validation = { + 'group_id': {'readonly': True}, + 'required_members': {'readonly': True}, + 'required_zone_names': {'readonly': True}, + } + + _attribute_map = { + 'group_id': {'key': 'groupId', 'type': 'str'}, + 'required_members': {'key': 'requiredMembers', 'type': '[str]'}, + 'required_zone_names': {'key': 'requiredZoneNames', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkResourceProperties, self).__init__(**kwargs) + self.group_id = None + self.required_members = None + self.required_zone_names = None + + +class PrivateLinkResourcesWrapper(msrest.serialization.Model): + """Wrapper for a collection of private link resources. + + All required parameters must be populated in order to send to Azure. + + :param value: Required. + :type value: list[~azure.mgmt.datafactory.models.PrivateLinkResource] + """ + + _validation = { + 'value': {'required': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PrivateLinkResource]'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkResourcesWrapper, self).__init__(**kwargs) + self.value = kwargs['value'] + + class QueryDataFlowDebugSessionsResponse(msrest.serialization.Model): """A list of active debug sessions. @@ -26054,7 +27227,7 @@ class QuickBooksLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -26064,16 +27237,16 @@ class QuickBooksLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_properties: Properties used to connect to QuickBooks. It is mutually exclusive with any other properties in the linked service. Type: object. - :type connection_properties: object + :type connection_properties: any :param endpoint: The endpoint of the QuickBooks server. (i.e. quickbooks.api.intuit.com). - :type endpoint: object + :type endpoint: any :param company_id: The company ID of the QuickBooks company to authorize. - :type company_id: object + :type company_id: any :param consumer_key: The consumer key for OAuth 1.0 authentication. - :type consumer_key: object + :type consumer_key: any :param consumer_secret: The consumer secret for OAuth 1.0 authentication. :type consumer_secret: ~azure.mgmt.datafactory.models.SecretBase :param access_token: The access token for OAuth 1.0 authentication. @@ -26082,11 +27255,11 @@ class QuickBooksLinkedService(LinkedService): :type access_token_secret: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -26135,28 +27308,28 @@ class QuickBooksObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -26193,27 +27366,30 @@ class QuickBooksSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -26226,6 +27402,7 @@ class QuickBooksSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -26245,7 +27422,7 @@ class RecurrenceSchedule(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param minutes: The minutes. :type minutes: list[int] :param hours: The hours. @@ -26285,7 +27462,7 @@ class RecurrenceScheduleOccurrence(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param day: The day of the week. Possible values include: "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday". :type day: str or ~azure.mgmt.datafactory.models.DayOfWeek @@ -26316,15 +27493,15 @@ class RedirectIncompatibleRowSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param linked_service_name: Required. Name of the Azure Storage, Storage SAS, or Azure Data Lake Store linked service used for redirecting incompatible row. Must be specified if redirectIncompatibleRowSettings is specified. Type: string (or Expression with resultType string). - :type linked_service_name: object + :type linked_service_name: any :param path: The path for storing the redirect incompatible row data. Type: string (or Expression with resultType string). - :type path: object + :type path: any """ _validation = { @@ -26358,7 +27535,7 @@ class RedshiftUnloadSettings(msrest.serialization.Model): :param bucket_name: Required. The bucket of the interim Amazon S3 which will be used to store the unloaded data from Amazon Redshift source. The bucket must be in the same region as the Amazon Redshift source. Type: string (or Expression with resultType string). - :type bucket_name: object + :type bucket_name: any """ _validation = { @@ -26387,20 +27564,23 @@ class RelationalSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -26416,6 +27596,7 @@ class RelationalSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -26437,29 +27618,29 @@ class RelationalTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The relational table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -26489,6 +27670,40 @@ def __init__( self.table_name = kwargs.get('table_name', None) +class RemotePrivateEndpointConnection(msrest.serialization.Model): + """A remote private endpoint connection. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar provisioning_state: + :vartype provisioning_state: str + :param private_endpoint: PrivateEndpoint of a remote private endpoint connection. + :type private_endpoint: ~azure.mgmt.datafactory.models.ArmIdWrapper + :param private_link_service_connection_state: The state of a private link connection. + :type private_link_service_connection_state: + ~azure.mgmt.datafactory.models.PrivateLinkConnectionState + """ + + _validation = { + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'private_endpoint': {'key': 'privateEndpoint', 'type': 'ArmIdWrapper'}, + 'private_link_service_connection_state': {'key': 'privateLinkServiceConnectionState', 'type': 'PrivateLinkConnectionState'}, + } + + def __init__( + self, + **kwargs + ): + super(RemotePrivateEndpointConnection, self).__init__(**kwargs) + self.provisioning_state = None + self.private_endpoint = kwargs.get('private_endpoint', None) + self.private_link_service_connection_state = kwargs.get('private_link_service_connection_state', None) + + class RerunTumblingWindowTrigger(Trigger): """Trigger that schedules pipeline reruns for all fixed time interval windows from a requested start time to requested end time. @@ -26498,7 +27713,7 @@ class RerunTumblingWindowTrigger(Trigger): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -26507,9 +27722,9 @@ class RerunTumblingWindowTrigger(Trigger): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] :param parent_trigger: Required. The parent trigger reference. - :type parent_trigger: object + :type parent_trigger: any :param requested_start_time: Required. The start time for the time period for which restatement is initiated. Only UTC time is currently supported. :type requested_start_time: ~datetime.datetime @@ -26561,7 +27776,7 @@ class ResponsysLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -26571,30 +27786,30 @@ class ResponsysLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param endpoint: Required. The endpoint of the Responsys server. - :type endpoint: object + :type endpoint: any :param client_id: Required. The client ID associated with the Responsys application. Type: string (or Expression with resultType string). - :type client_id: object + :type client_id: any :param client_secret: The client secret associated with the Responsys application. Type: string (or Expression with resultType string). :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -26641,28 +27856,28 @@ class ResponsysObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -26699,27 +27914,30 @@ class ResponsysSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -26732,6 +27950,7 @@ class ResponsysSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -26753,41 +27972,41 @@ class RestResourceDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param relative_url: The relative URL to the resource that the RESTful API provides. Type: string (or Expression with resultType string). - :type relative_url: object + :type relative_url: any :param request_method: The HTTP method used to call the RESTful API. The default is GET. Type: string (or Expression with resultType string). - :type request_method: object + :type request_method: any :param request_body: The HTTP request body to the RESTful API if requestMethod is POST. Type: string (or Expression with resultType string). - :type request_body: object + :type request_body: any :param additional_headers: The additional HTTP headers in the request to the RESTful API. Type: string (or Expression with resultType string). - :type additional_headers: object + :type additional_headers: any :param pagination_rules: The pagination rules to compose next page requests. Type: string (or Expression with resultType string). - :type pagination_rules: object + :type pagination_rules: any """ _validation = { @@ -26832,7 +28051,7 @@ class RestServiceLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -26842,43 +28061,45 @@ class RestServiceLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. The base URL of the REST service. - :type url: object + :type url: any :param enable_server_certificate_validation: Whether to validate server side SSL certificate when connecting to the endpoint.The default value is true. Type: boolean (or Expression with resultType boolean). - :type enable_server_certificate_validation: object + :type enable_server_certificate_validation: any :param authentication_type: Required. Type of authentication used to connect to the REST service. Possible values include: "Anonymous", "Basic", "AadServicePrincipal", "ManagedServiceIdentity". :type authentication_type: str or ~azure.mgmt.datafactory.models.RestServiceAuthenticationType :param user_name: The user name used in Basic authentication type. - :type user_name: object + :type user_name: any :param password: The password used in Basic authentication type. :type password: ~azure.mgmt.datafactory.models.SecretBase :param auth_headers: The additional HTTP headers in the request to RESTful API used for authorization. Type: object (or Expression with resultType object). - :type auth_headers: object + :type auth_headers: any :param service_principal_id: The application's client ID used in AadServicePrincipal authentication type. - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The application's key used in AadServicePrincipal authentication type. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The tenant information (domain name or tenant ID) used in AadServicePrincipal authentication type under which your application resides. - :type tenant: object + :type tenant: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param aad_resource_id: The resource you are requesting authorization to use. - :type aad_resource_id: object + :type aad_resource_id: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -26906,6 +28127,7 @@ class RestServiceLinkedService(LinkedService): 'azure_cloud_type': {'key': 'typeProperties.azureCloudType', 'type': 'object'}, 'aad_resource_id': {'key': 'typeProperties.aadResourceId', 'type': 'object'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( @@ -26926,6 +28148,7 @@ def __init__( self.azure_cloud_type = kwargs.get('azure_cloud_type', None) self.aad_resource_id = kwargs.get('aad_resource_id', None) self.encrypted_credential = kwargs.get('encrypted_credential', None) + self.credential = kwargs.get('credential', None) class RestSink(CopySink): @@ -26935,40 +28158,43 @@ class RestSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param request_method: The HTTP method used to call the RESTful API. The default is POST. Type: string (or Expression with resultType string). - :type request_method: object + :type request_method: any :param additional_headers: The additional HTTP headers in the request to the RESTful API. Type: string (or Expression with resultType string). - :type additional_headers: object + :type additional_headers: any :param http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:01:40. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any :param request_interval: The time to await before sending next request, in milliseconds. - :type request_interval: object + :type request_interval: any :param http_compression_type: Http Compression Type to Send data in compressed format with Optimal Compression Level, Default is None. And The Only Supported option is Gzip. - :type http_compression_type: object + :type http_compression_type: any """ _validation = { @@ -26983,6 +28209,7 @@ class RestSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'request_method': {'key': 'requestMethod', 'type': 'object'}, 'additional_headers': {'key': 'additionalHeaders', 'type': 'object'}, 'http_request_timeout': {'key': 'httpRequestTimeout', 'type': 'object'}, @@ -27010,37 +28237,40 @@ class RestSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param request_method: The HTTP method used to call the RESTful API. The default is GET. Type: string (or Expression with resultType string). - :type request_method: object + :type request_method: any :param request_body: The HTTP request body to the RESTful API if requestMethod is POST. Type: string (or Expression with resultType string). - :type request_body: object + :type request_body: any :param additional_headers: The additional HTTP headers in the request to the RESTful API. Type: string (or Expression with resultType string). - :type additional_headers: object + :type additional_headers: any :param pagination_rules: The pagination rules to compose next page requests. Type: string (or Expression with resultType string). - :type pagination_rules: object + :type pagination_rules: any :param http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:01:40. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any :param request_interval: The time to await before sending next page request. - :type request_interval: object + :type request_interval: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -27056,6 +28286,7 @@ class RestSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'request_method': {'key': 'requestMethod', 'type': 'object'}, 'request_body': {'key': 'requestBody', 'type': 'object'}, 'additional_headers': {'key': 'additionalHeaders', 'type': 'object'}, @@ -27085,7 +28316,7 @@ class RetryPolicy(msrest.serialization.Model): :param count: Maximum ordinary retry attempts. Default is 0. Type: integer (or Expression with resultType integer), minimum: 0. - :type count: object + :type count: any :param interval_in_seconds: Interval between retries in seconds. Default is 30. :type interval_in_seconds: int """ @@ -27236,7 +28467,7 @@ class SalesforceLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -27246,26 +28477,26 @@ class SalesforceLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param environment_url: The URL of Salesforce instance. Default is 'https://login.salesforce.com'. To copy data from sandbox, specify 'https://test.salesforce.com'. To copy data from custom domain, specify, for example, 'https://[domain].my.salesforce.com'. Type: string (or Expression with resultType string). - :type environment_url: object + :type environment_url: any :param username: The username for Basic authentication of the Salesforce instance. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: The password for Basic authentication of the Salesforce instance. :type password: ~azure.mgmt.datafactory.models.SecretBase :param security_token: The security token is optional to remotely access Salesforce instance. :type security_token: ~azure.mgmt.datafactory.models.SecretBase :param api_version: The Salesforce API version used in ADF. Type: string (or Expression with resultType string). - :type api_version: object + :type api_version: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -27308,7 +28539,7 @@ class SalesforceMarketingCloudLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -27318,31 +28549,31 @@ class SalesforceMarketingCloudLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_properties: Properties used to connect to Salesforce Marketing Cloud. It is mutually exclusive with any other properties in the linked service. Type: object. - :type connection_properties: object + :type connection_properties: any :param client_id: The client ID associated with the Salesforce Marketing Cloud application. Type: string (or Expression with resultType string). - :type client_id: object + :type client_id: any :param client_secret: The client secret associated with the Salesforce Marketing Cloud application. Type: string (or Expression with resultType string). :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -27387,28 +28618,28 @@ class SalesforceMarketingCloudObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -27445,27 +28676,30 @@ class SalesforceMarketingCloudSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -27478,6 +28712,7 @@ class SalesforceMarketingCloudSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -27499,29 +28734,29 @@ class SalesforceObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param object_api_name: The Salesforce object API name. Type: string (or Expression with resultType string). - :type object_api_name: object + :type object_api_name: any """ _validation = { @@ -27558,7 +28793,7 @@ class SalesforceServiceCloudLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -27568,29 +28803,29 @@ class SalesforceServiceCloudLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param environment_url: The URL of Salesforce Service Cloud instance. Default is 'https://login.salesforce.com'. To copy data from sandbox, specify 'https://test.salesforce.com'. To copy data from custom domain, specify, for example, 'https://[domain].my.salesforce.com'. Type: string (or Expression with resultType string). - :type environment_url: object + :type environment_url: any :param username: The username for Basic authentication of the Salesforce instance. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: The password for Basic authentication of the Salesforce instance. :type password: ~azure.mgmt.datafactory.models.SecretBase :param security_token: The security token is optional to remotely access Salesforce instance. :type security_token: ~azure.mgmt.datafactory.models.SecretBase :param api_version: The Salesforce API version used in ADF. Type: string (or Expression with resultType string). - :type api_version: object + :type api_version: any :param extended_properties: Extended properties appended to the connection string. Type: string (or Expression with resultType string). - :type extended_properties: object + :type extended_properties: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -27635,29 +28870,29 @@ class SalesforceServiceCloudObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param object_api_name: The Salesforce Service Cloud object API name. Type: string (or Expression with resultType string). - :type object_api_name: object + :type object_api_name: any """ _validation = { @@ -27694,37 +28929,40 @@ class SalesforceServiceCloudSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: The write behavior for the operation. Default is Insert. Possible values include: "Insert", "Upsert". :type write_behavior: str or ~azure.mgmt.datafactory.models.SalesforceSinkWriteBehavior :param external_id_field_name: The name of the external ID field for upsert operation. Default value is 'Id' column. Type: string (or Expression with resultType string). - :type external_id_field_name: object + :type external_id_field_name: any :param ignore_null_values: The flag indicating whether or not to ignore null values from input dataset (except key fields) during write operation. Default value is false. If set it to true, it means ADF will leave the data in the destination object unchanged when doing upsert/update operation and insert defined default value when doing insert operation, versus ADF will update the data in the destination object to NULL when doing upsert/update operation and insert NULL value when doing insert operation. Type: boolean (or Expression with resultType boolean). - :type ignore_null_values: object + :type ignore_null_values: any """ _validation = { @@ -27739,6 +28977,7 @@ class SalesforceServiceCloudSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'str'}, 'external_id_field_name': {'key': 'externalIdFieldName', 'type': 'object'}, 'ignore_null_values': {'key': 'ignoreNullValues', 'type': 'object'}, @@ -27762,20 +29001,23 @@ class SalesforceServiceCloudSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param read_behavior: The read behavior for the operation. Default is Query. Possible values include: "Query", "QueryAll". :type read_behavior: str or ~azure.mgmt.datafactory.models.SalesforceSourceReadBehavior @@ -27794,6 +29036,7 @@ class SalesforceServiceCloudSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'read_behavior': {'key': 'readBehavior', 'type': 'str'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, @@ -27817,37 +29060,40 @@ class SalesforceSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: The write behavior for the operation. Default is Insert. Possible values include: "Insert", "Upsert". :type write_behavior: str or ~azure.mgmt.datafactory.models.SalesforceSinkWriteBehavior :param external_id_field_name: The name of the external ID field for upsert operation. Default value is 'Id' column. Type: string (or Expression with resultType string). - :type external_id_field_name: object + :type external_id_field_name: any :param ignore_null_values: The flag indicating whether or not to ignore null values from input dataset (except key fields) during write operation. Default value is false. If set it to true, it means ADF will leave the data in the destination object unchanged when doing upsert/update operation and insert defined default value when doing insert operation, versus ADF will update the data in the destination object to NULL when doing upsert/update operation and insert NULL value when doing insert operation. Type: boolean (or Expression with resultType boolean). - :type ignore_null_values: object + :type ignore_null_values: any """ _validation = { @@ -27862,6 +29108,7 @@ class SalesforceSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'str'}, 'external_id_field_name': {'key': 'externalIdFieldName', 'type': 'object'}, 'ignore_null_values': {'key': 'ignoreNullValues', 'type': 'object'}, @@ -27885,26 +29132,29 @@ class SalesforceSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param read_behavior: The read behavior for the operation. Default is Query. Possible values include: "Query", "QueryAll". :type read_behavior: str or ~azure.mgmt.datafactory.models.SalesforceSourceReadBehavior @@ -27920,6 +29170,7 @@ class SalesforceSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -27943,23 +29194,23 @@ class SapBwCubeDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder @@ -27997,7 +29248,7 @@ class SapBWLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -28007,25 +29258,25 @@ class SapBWLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param server: Required. Host name of the SAP BW instance. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param system_number: Required. System number of the BW system. (Usually a two-digit decimal number represented as a string.) Type: string (or Expression with resultType string). - :type system_number: object + :type system_number: any :param client_id: Required. Client ID of the client on the BW system. (Usually a three-digit decimal number represented as a string) Type: string (or Expression with resultType string). - :type client_id: object + :type client_id: any :param user_name: Username to access the SAP BW server. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password to access the SAP BW server. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -28071,26 +29322,29 @@ class SapBwSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: MDX query. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -28103,6 +29357,7 @@ class SapBwSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -28124,7 +29379,7 @@ class SapCloudForCustomerLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -28134,20 +29389,20 @@ class SapCloudForCustomerLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. The URL of SAP Cloud for Customer OData API. For example, '[https://[tenantname].crm.ondemand.com/sap/c4c/odata/v1]'. Type: string (or Expression with resultType string). - :type url: object + :type url: any :param username: The username for Basic authentication. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: The password for Basic authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Either encryptedCredential or username/password must be provided. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -28187,29 +29442,29 @@ class SapCloudForCustomerResourceDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param path: Required. The path of the SAP Cloud for Customer OData entity. Type: string (or Expression with resultType string). - :type path: object + :type path: any """ _validation = { @@ -28247,24 +29502,27 @@ class SapCloudForCustomerSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: The write behavior for the operation. Default is 'Insert'. Possible values include: "Insert", "Update". :type write_behavior: str or @@ -28273,7 +29531,7 @@ class SapCloudForCustomerSink(CopySink): to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any """ _validation = { @@ -28288,6 +29546,7 @@ class SapCloudForCustomerSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'str'}, 'http_request_timeout': {'key': 'httpRequestTimeout', 'type': 'object'}, } @@ -28309,32 +29568,35 @@ class SapCloudForCustomerSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: SAP Cloud for Customer OData query. For example, "$top=1". Type: string (or Expression with resultType string). - :type query: object + :type query: any :param http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any """ _validation = { @@ -28347,6 +29609,7 @@ class SapCloudForCustomerSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -28370,7 +29633,7 @@ class SapEccLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -28380,7 +29643,7 @@ class SapEccLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. The URL of SAP ECC OData API. For example, '[https://hostname:port/sap/opu/odata/sap/servicename/]'. Type: string (or Expression with resultType string). @@ -28433,29 +29696,29 @@ class SapEccResourceDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param path: Required. The path of the SAP ECC OData entity. Type: string (or Expression with resultType string). - :type path: object + :type path: any """ _validation = { @@ -28493,32 +29756,35 @@ class SapEccSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: SAP ECC OData query. For example, "$top=1". Type: string (or Expression with resultType string). - :type query: object + :type query: any :param http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any """ _validation = { @@ -28531,6 +29797,7 @@ class SapEccSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -28554,7 +29821,7 @@ class SapHanaLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -28564,25 +29831,25 @@ class SapHanaLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: SAP HANA ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param server: Host name of the SAP HANA server. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param authentication_type: The authentication type to be used to connect to the SAP HANA server. Possible values include: "Basic", "Windows". :type authentication_type: str or ~azure.mgmt.datafactory.models.SapHanaAuthenticationType :param user_name: Username to access the SAP HANA server. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password to access the SAP HANA server. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -28623,7 +29890,7 @@ class SapHanaPartitionSettings(msrest.serialization.Model): :param partition_column_name: The name of the column that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_column_name: object + :type partition_column_name: any """ _attribute_map = { @@ -28645,32 +29912,35 @@ class SapHanaSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: SAP HANA Sql query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param packet_size: The packet size of data read from SAP HANA. Type: integer(or Expression with resultType integer). - :type packet_size: object + :type packet_size: any :param partition_option: The partition mechanism that will be used for SAP HANA read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "SapHanaDynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for SAP HANA source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.SapHanaPartitionSettings @@ -28686,6 +29956,7 @@ class SapHanaSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -28713,31 +29984,31 @@ class SapHanaTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param schema_type_properties_schema: The schema name of SAP HANA. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any :param table: The table name of SAP HANA. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -28776,7 +30047,7 @@ class SapOpenHubLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -28786,43 +30057,43 @@ class SapOpenHubLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param server: Host name of the SAP BW instance where the open hub destination is located. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param system_number: System number of the BW system where the open hub destination is located. (Usually a two-digit decimal number represented as a string.) Type: string (or Expression with resultType string). - :type system_number: object + :type system_number: any :param client_id: Client ID of the client on the BW system where the open hub destination is located. (Usually a three-digit decimal number represented as a string) Type: string (or Expression with resultType string). - :type client_id: object + :type client_id: any :param language: Language of the BW system where the open hub destination is located. The default value is EN. Type: string (or Expression with resultType string). - :type language: object + :type language: any :param system_id: SystemID of the SAP system where the table is located. Type: string (or Expression with resultType string). - :type system_id: object + :type system_id: any :param user_name: Username to access the SAP BW server where the open hub destination is located. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password to access the SAP BW server where the open hub destination is located. :type password: ~azure.mgmt.datafactory.models.SecretBase :param message_server: The hostname of the SAP Message Server. Type: string (or Expression with resultType string). - :type message_server: object + :type message_server: any :param message_server_service: The service name or port number of the Message Server. Type: string (or Expression with resultType string). - :type message_server_service: object + :type message_server_service: any :param logon_group: The Logon Group for the SAP System. Type: string (or Expression with resultType string). - :type logon_group: object + :type logon_group: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -28875,38 +30146,41 @@ class SapOpenHubSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param exclude_last_request: Whether to exclude the records of the last request. The default value is true. Type: boolean (or Expression with resultType boolean). - :type exclude_last_request: object + :type exclude_last_request: any :param base_request_id: The ID of request for delta loading. Once it is set, only data with requestId larger than the value of this property will be retrieved. The default value is 0. Type: integer (or Expression with resultType integer ). - :type base_request_id: object + :type base_request_id: any :param custom_rfc_read_table_function_module: Specifies the custom RFC function module that will be used to read data from SAP Table. Type: string (or Expression with resultType string). - :type custom_rfc_read_table_function_module: object + :type custom_rfc_read_table_function_module: any :param sap_data_column_delimiter: The single character that will be used as delimiter passed to SAP RFC as well as splitting the output data retrieved. Type: string (or Expression with resultType string). - :type sap_data_column_delimiter: object + :type sap_data_column_delimiter: any """ _validation = { @@ -28919,6 +30193,7 @@ class SapOpenHubSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'exclude_last_request': {'key': 'excludeLastRequest', 'type': 'object'}, @@ -28946,36 +30221,36 @@ class SapOpenHubTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param open_hub_destination_name: Required. The name of the Open Hub Destination with destination type as Database Table. Type: string (or Expression with resultType string). - :type open_hub_destination_name: object + :type open_hub_destination_name: any :param exclude_last_request: Whether to exclude the records of the last request. The default value is true. Type: boolean (or Expression with resultType boolean). - :type exclude_last_request: object + :type exclude_last_request: any :param base_request_id: The ID of request for delta loading. Once it is set, only data with requestId larger than the value of this property will be retrieved. The default value is 0. Type: integer (or Expression with resultType integer ). - :type base_request_id: object + :type base_request_id: any """ _validation = { @@ -29017,7 +30292,7 @@ class SapTableLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -29027,57 +30302,57 @@ class SapTableLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param server: Host name of the SAP instance where the table is located. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param system_number: System number of the SAP system where the table is located. (Usually a two-digit decimal number represented as a string.) Type: string (or Expression with resultType string). - :type system_number: object + :type system_number: any :param client_id: Client ID of the client on the SAP system where the table is located. (Usually a three-digit decimal number represented as a string) Type: string (or Expression with resultType string). - :type client_id: object + :type client_id: any :param language: Language of the SAP system where the table is located. The default value is EN. Type: string (or Expression with resultType string). - :type language: object + :type language: any :param system_id: SystemID of the SAP system where the table is located. Type: string (or Expression with resultType string). - :type system_id: object + :type system_id: any :param user_name: Username to access the SAP server where the table is located. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password to access the SAP server where the table is located. :type password: ~azure.mgmt.datafactory.models.SecretBase :param message_server: The hostname of the SAP Message Server. Type: string (or Expression with resultType string). - :type message_server: object + :type message_server: any :param message_server_service: The service name or port number of the Message Server. Type: string (or Expression with resultType string). - :type message_server_service: object + :type message_server_service: any :param snc_mode: SNC activation indicator to access the SAP server where the table is located. Must be either 0 (off) or 1 (on). Type: string (or Expression with resultType string). - :type snc_mode: object + :type snc_mode: any :param snc_my_name: Initiator's SNC name to access the SAP server where the table is located. Type: string (or Expression with resultType string). - :type snc_my_name: object + :type snc_my_name: any :param snc_partner_name: Communication partner's SNC name to access the SAP server where the table is located. Type: string (or Expression with resultType string). - :type snc_partner_name: object + :type snc_partner_name: any :param snc_library_path: External security product's library to access the SAP server where the table is located. Type: string (or Expression with resultType string). - :type snc_library_path: object + :type snc_library_path: any :param snc_qop: SNC Quality of Protection. Allowed value include: 1, 2, 3, 8, 9. Type: string (or Expression with resultType string). - :type snc_qop: object + :type snc_qop: any :param logon_group: The Logon Group for the SAP System. Type: string (or Expression with resultType string). - :type logon_group: object + :type logon_group: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -29138,18 +30413,18 @@ class SapTablePartitionSettings(msrest.serialization.Model): :param partition_column_name: The name of the column that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_column_name: object + :type partition_column_name: any :param partition_upper_bound: The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_upper_bound: object + :type partition_upper_bound: any :param partition_lower_bound: The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_lower_bound: object + :type partition_lower_bound: any :param max_partitions_number: The maximum value of partitions the table will be split into. Type: integer (or Expression with resultType string). - :type max_partitions_number: object + :type max_partitions_number: any """ _attribute_map = { @@ -29177,29 +30452,29 @@ class SapTableResourceDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: Required. The name of the SAP Table. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -29237,50 +30512,53 @@ class SapTableSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param row_count: The number of rows to be retrieved. Type: integer(or Expression with resultType integer). - :type row_count: object + :type row_count: any :param row_skips: The number of rows that will be skipped. Type: integer (or Expression with resultType integer). - :type row_skips: object + :type row_skips: any :param rfc_table_fields: The fields of the SAP table that will be retrieved. For example, column0, column1. Type: string (or Expression with resultType string). - :type rfc_table_fields: object + :type rfc_table_fields: any :param rfc_table_options: The options for the filtering of the SAP Table. For example, COLUMN0 EQ SOME VALUE. Type: string (or Expression with resultType string). - :type rfc_table_options: object + :type rfc_table_options: any :param batch_size: Specifies the maximum number of rows that will be retrieved at a time when retrieving data from SAP Table. Type: integer (or Expression with resultType integer). - :type batch_size: object + :type batch_size: any :param custom_rfc_read_table_function_module: Specifies the custom RFC function module that will be used to read data from SAP Table. Type: string (or Expression with resultType string). - :type custom_rfc_read_table_function_module: object + :type custom_rfc_read_table_function_module: any :param sap_data_column_delimiter: The single character that will be used as delimiter passed to SAP RFC as well as splitting the output data retrieved. Type: string (or Expression with resultType string). - :type sap_data_column_delimiter: object + :type sap_data_column_delimiter: any :param partition_option: The partition mechanism that will be used for SAP table read in parallel. Possible values include: "None", "PartitionOnInt", "PartitionOnCalendarYear", "PartitionOnCalendarMonth", "PartitionOnCalendarDate", "PartitionOnTime". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for SAP table source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.SapTablePartitionSettings @@ -29296,6 +30574,7 @@ class SapTableSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'row_count': {'key': 'rowCount', 'type': 'object'}, @@ -29335,7 +30614,7 @@ class ScheduleTrigger(MultiplePipelineTrigger): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -29344,7 +30623,7 @@ class ScheduleTrigger(MultiplePipelineTrigger): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] :param pipelines: Pipelines that need to be started. :type pipelines: list[~azure.mgmt.datafactory.models.TriggerPipelineReference] :param recurrence: Required. Recurrence schedule configuration. @@ -29381,7 +30660,7 @@ class ScheduleTriggerRecurrence(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param frequency: The frequency. Possible values include: "NotSpecified", "Minute", "Hour", "Day", "Week", "Month", "Year". :type frequency: str or ~azure.mgmt.datafactory.models.RecurrenceFrequency @@ -29430,9 +30709,8 @@ class ScriptAction(msrest.serialization.Model): :type name: str :param uri: Required. The URI for the script action. :type uri: str - :param roles: Required. The node types on which the script action should be executed. Possible - values include: "Headnode", "Workernode", "Zookeeper". - :type roles: str or ~azure.mgmt.datafactory.models.HdiNodeTypes + :param roles: Required. The node types on which the script action should be executed. + :type roles: str :param parameters: The parameters for the script action. :type parameters: str """ @@ -29535,7 +30813,7 @@ class SelfHostedIntegrationRuntime(IntegrationRuntime): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of integration runtime.Constant filled by server. Possible values include: "Managed", "SelfHosted". :type type: str or ~azure.mgmt.datafactory.models.IntegrationRuntimeType @@ -29572,7 +30850,7 @@ class SelfHostedIntegrationRuntimeNode(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar node_name: Name of the integration runtime node. :vartype node_name: str :ivar machine_name: Machine name of the integration runtime node. @@ -29696,7 +30974,7 @@ class SelfHostedIntegrationRuntimeStatus(IntegrationRuntimeStatus): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of integration runtime.Constant filled by server. Possible values include: "Managed", "SelfHosted". :type type: str or ~azure.mgmt.datafactory.models.IntegrationRuntimeType @@ -29822,7 +31100,7 @@ class ServiceNowLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -29832,37 +31110,37 @@ class ServiceNowLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param endpoint: Required. The endpoint of the ServiceNow server. (i.e. :code:``.service-now.com). - :type endpoint: object + :type endpoint: any :param authentication_type: Required. The authentication type to use. Possible values include: "Basic", "OAuth2". :type authentication_type: str or ~azure.mgmt.datafactory.models.ServiceNowAuthenticationType :param username: The user name used to connect to the ServiceNow server for Basic and OAuth2 authentication. - :type username: object + :type username: any :param password: The password corresponding to the user name for Basic and OAuth2 authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param client_id: The client id for OAuth2 authentication. - :type client_id: object + :type client_id: any :param client_secret: The client secret for OAuth2 authentication. :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -29915,28 +31193,28 @@ class ServiceNowObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -29973,27 +31251,30 @@ class ServiceNowSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -30006,6 +31287,7 @@ class ServiceNowSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -30020,14 +31302,61 @@ def __init__( self.query = kwargs.get('query', None) -class SetVariableActivity(Activity): +class ServicePrincipalCredential(Credential): + """Service principal credential. + + 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, any] + :param type: Required. Type of credential.Constant filled by server. + :type type: str + :param description: Credential description. + :type description: str + :param annotations: List of tags that can be used for describing the Credential. + :type annotations: list[any] + :param service_principal_id: The app ID of the service principal used to authenticate. + :type service_principal_id: any + :param service_principal_key: The key of the service principal used to authenticate. + :type service_principal_key: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference + :param tenant: The ID of the tenant to which the service principal belongs. + :type tenant: any + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'type': {'key': 'type', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'annotations': {'key': 'annotations', 'type': '[object]'}, + 'service_principal_id': {'key': 'typeProperties.servicePrincipalId', 'type': 'object'}, + 'service_principal_key': {'key': 'typeProperties.servicePrincipalKey', 'type': 'AzureKeyVaultSecretReference'}, + 'tenant': {'key': 'typeProperties.tenant', 'type': 'object'}, + } + + def __init__( + self, + **kwargs + ): + super(ServicePrincipalCredential, self).__init__(**kwargs) + self.type = 'ServicePrincipal' # type: str + self.service_principal_id = kwargs.get('service_principal_id', None) + self.service_principal_key = kwargs.get('service_principal_key', None) + self.tenant = kwargs.get('tenant', None) + + +class SetVariableActivity(ControlActivity): """Set value for a Variable. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -30041,7 +31370,7 @@ class SetVariableActivity(Activity): :param variable_name: Name of the variable whose value needs to be set. :type variable_name: str :param value: Value to be set. Could be a static value or Expression. - :type value: object + :type value: any """ _validation = { @@ -30077,15 +31406,15 @@ class SftpLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any """ _validation = { @@ -30114,39 +31443,42 @@ class SftpReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: Sftp wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: Sftp wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -30157,6 +31489,7 @@ class SftpReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -30192,7 +31525,7 @@ class SftpServerLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -30202,30 +31535,30 @@ class SftpServerLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The SFTP server host name. Type: string (or Expression with resultType string). - :type host: object + :type host: any :param port: The TCP port number that the SFTP server uses to listen for client connections. Default value is 22. Type: integer (or Expression with resultType integer), minimum: 0. - :type port: object + :type port: any :param authentication_type: The authentication type to be used to connect to the FTP server. Possible values include: "Basic", "SshPublicKey", "MultiFactor". :type authentication_type: str or ~azure.mgmt.datafactory.models.SftpAuthenticationType :param user_name: The username used to log on to the SFTP server. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password to logon the SFTP server for Basic authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any :param private_key_path: The SSH private key file path for SshPublicKey authentication. Only valid for on-premises copy. For on-premises copy with SshPublicKey authentication, either PrivateKeyPath or PrivateKeyContent should be specified. SSH private key should be OpenSSH format. Type: string (or Expression with resultType string). - :type private_key_path: object + :type private_key_path: any :param private_key_content: Base64 encoded SSH private key content for SshPublicKey authentication. For on-premises copy with SshPublicKey authentication, either PrivateKeyPath or PrivateKeyContent should be specified. SSH private key should be OpenSSH format. @@ -30235,11 +31568,11 @@ class SftpServerLinkedService(LinkedService): :type pass_phrase: ~azure.mgmt.datafactory.models.SecretBase :param skip_host_key_validation: If true, skip the SSH host key validation. Default value is false. Type: boolean (or Expression with resultType boolean). - :type skip_host_key_validation: object + :type skip_host_key_validation: any :param host_key_fingerprint: The host key finger-print of the SFTP server. When SkipHostKeyValidation is false, HostKeyFingerprint should be specified. Type: string (or Expression with resultType string). - :type host_key_fingerprint: object + :type host_key_fingerprint: any """ _validation = { @@ -30293,21 +31626,24 @@ class SftpWriteSettings(StoreWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any :param operation_timeout: Specifies the timeout for writing each chunk to SFTP server. Default value: 01:00:00 (one hour). Type: string (or Expression with resultType string). - :type operation_timeout: object + :type operation_timeout: any :param use_temp_file_rename: Upload to temporary file(s) and rename. Disable this option if your SFTP server doesn't support rename operation. Type: boolean (or Expression with resultType boolean). - :type use_temp_file_rename: object + :type use_temp_file_rename: any """ _validation = { @@ -30318,6 +31654,7 @@ class SftpWriteSettings(StoreWriteSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, 'operation_timeout': {'key': 'operationTimeout', 'type': 'object'}, 'use_temp_file_rename': {'key': 'useTempFileRename', 'type': 'object'}, @@ -30340,7 +31677,7 @@ class SharePointOnlineListLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -30350,26 +31687,26 @@ class SharePointOnlineListLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param site_url: Required. The URL of the SharePoint Online site. For example, https://contoso.sharepoint.com/sites/siteName. Type: string (or Expression with resultType string). - :type site_url: object + :type site_url: any :param tenant_id: Required. The tenant ID under which your application resides. You can find it from Azure portal Active Directory overview page. Type: string (or Expression with resultType string). - :type tenant_id: object + :type tenant_id: any :param service_principal_id: Required. The application (client) ID of your application registered in Azure Active Directory. Make sure to grant SharePoint site permission to this application. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: Required. The client secret of your application registered in Azure Active Directory. Type: string (or Expression with resultType string). :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -30414,29 +31751,29 @@ class SharePointOnlineListResourceDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param list_name: The name of the SharePoint Online list. Type: string (or Expression with resultType string). - :type list_name: object + :type list_name: any """ _validation = { @@ -30473,25 +31810,28 @@ class SharePointOnlineListSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: The OData query to filter the data in SharePoint Online list. For example, "$top=1". Type: string (or Expression with resultType string). - :type query: object + :type query: any :param http_request_timeout: The wait time to get a response from SharePoint Online. Default value is 5 minutes (00:05:00). Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any """ _validation = { @@ -30504,6 +31844,7 @@ class SharePointOnlineListSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'http_request_timeout': {'key': 'httpRequestTimeout', 'type': 'object'}, } @@ -30525,7 +31866,7 @@ class ShopifyLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -30535,26 +31876,26 @@ class ShopifyLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The endpoint of the Shopify server. (i.e. mystore.myshopify.com). - :type host: object + :type host: any :param access_token: The API access token that can be used to access Shopify’s data. The token won't expire if it is offline mode. :type access_token: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -30598,28 +31939,28 @@ class ShopifyObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -30656,27 +31997,30 @@ class ShopifySource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -30689,6 +32033,7 @@ class ShopifySource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -30708,10 +32053,10 @@ class SkipErrorFile(msrest.serialization.Model): :param file_missing: Skip if file is deleted by other client during copy. Default is true. Type: boolean (or Expression with resultType boolean). - :type file_missing: object + :type file_missing: any :param data_inconsistency: Skip if source/sink file changed by other concurrent write. Default is false. Type: boolean (or Expression with resultType boolean). - :type data_inconsistency: object + :type data_inconsistency: any """ _attribute_map = { @@ -30735,32 +32080,32 @@ class SnowflakeDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param schema_type_properties_schema: The schema name of the Snowflake database. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any :param table: The table name of the Snowflake database. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -30799,19 +32144,19 @@ class SnowflakeExportCopyCommand(ExportSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The export setting type.Constant filled by server. :type type: str :param additional_copy_options: Additional copy options directly passed to snowflake Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalCopyOptions": { "DATE_FORMAT": "MM/DD/YYYY", "TIME_FORMAT": "'HH24:MI:SS.FF'" }. - :type additional_copy_options: dict[str, object] + :type additional_copy_options: dict[str, any] :param additional_format_options: Additional format options directly passed to snowflake Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalFormatOptions": { "OVERWRITE": "TRUE", "MAX_FILE_SIZE": "'FALSE'" }. - :type additional_format_options: dict[str, object] + :type additional_format_options: dict[str, any] """ _validation = { @@ -30842,19 +32187,19 @@ class SnowflakeImportCopyCommand(ImportSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The import setting type.Constant filled by server. :type type: str :param additional_copy_options: Additional copy options directly passed to snowflake Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalCopyOptions": { "DATE_FORMAT": "MM/DD/YYYY", "TIME_FORMAT": "'HH24:MI:SS.FF'" }. - :type additional_copy_options: dict[str, object] + :type additional_copy_options: dict[str, any] :param additional_format_options: Additional format options directly passed to snowflake Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalFormatOptions": { "FORCE": "TRUE", "LOAD_UNCERTAIN_FILES": "'FALSE'" }. - :type additional_format_options: dict[str, object] + :type additional_format_options: dict[str, any] """ _validation = { @@ -30885,7 +32230,7 @@ class SnowflakeLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -30895,16 +32240,16 @@ class SnowflakeLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string of snowflake. Type: string, SecureString. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -30942,27 +32287,30 @@ class SnowflakeSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any :param import_settings: Snowflake import settings. :type import_settings: ~azure.mgmt.datafactory.models.SnowflakeImportCopyCommand """ @@ -30979,6 +32327,7 @@ class SnowflakeSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, 'import_settings': {'key': 'importSettings', 'type': 'SnowflakeImportCopyCommand'}, } @@ -31000,20 +32349,23 @@ class SnowflakeSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: Snowflake Sql query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param export_settings: Snowflake export settings. :type export_settings: ~azure.mgmt.datafactory.models.SnowflakeExportCopyCommand """ @@ -31028,6 +32380,7 @@ class SnowflakeSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'export_settings': {'key': 'exportSettings', 'type': 'SnowflakeExportCopyCommand'}, } @@ -31049,7 +32402,7 @@ class SparkLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -31059,12 +32412,12 @@ class SparkLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. IP address or host name of the Spark server. - :type host: object + :type host: any :param port: Required. The TCP port that the Spark server uses to listen for client connections. - :type port: object + :type port: any :param server_type: The type of Spark server. Possible values include: "SharkServer", "SharkServer2", "SparkThriftServer". :type server_type: str or ~azure.mgmt.datafactory.models.SparkServerType @@ -31077,32 +32430,32 @@ class SparkLinkedService(LinkedService): "WindowsAzureHDInsightService". :type authentication_type: str or ~azure.mgmt.datafactory.models.SparkAuthenticationType :param username: The user name that you use to access Spark Server. - :type username: object + :type username: any :param password: The password corresponding to the user name that you provided in the Username field. :type password: ~azure.mgmt.datafactory.models.SecretBase :param http_path: The partial URL corresponding to the Spark server. - :type http_path: object + :type http_path: any :param enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false. - :type enable_ssl: object + :type enable_ssl: any :param trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. - :type trusted_cert_path: object + :type trusted_cert_path: any :param use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. - :type use_system_trust_store: object + :type use_system_trust_store: any :param allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false. - :type allow_host_name_cn_mismatch: object + :type allow_host_name_cn_mismatch: any :param allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false. - :type allow_self_signed_server_cert: object + :type allow_self_signed_server_cert: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -31164,34 +32517,34 @@ class SparkObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Spark. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Spark. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -31232,27 +32585,30 @@ class SparkSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -31265,6 +32621,7 @@ class SparkSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -31279,6 +32636,44 @@ def __init__( self.query = kwargs.get('query', None) +class SqlAlwaysEncryptedProperties(msrest.serialization.Model): + """Sql always encrypted properties. + + All required parameters must be populated in order to send to Azure. + + :param always_encrypted_akv_auth_type: Required. Sql always encrypted AKV authentication type. + Type: string (or Expression with resultType string). Possible values include: + "ServicePrincipal", "ManagedIdentity". + :type always_encrypted_akv_auth_type: str or + ~azure.mgmt.datafactory.models.SqlAlwaysEncryptedAkvAuthType + :param service_principal_id: The client ID of the application in Azure Active Directory used + for Azure Key Vault authentication. Type: string (or Expression with resultType string). + :type service_principal_id: any + :param service_principal_key: The key of the service principal used to authenticate against + Azure Key Vault. + :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase + """ + + _validation = { + 'always_encrypted_akv_auth_type': {'required': True}, + } + + _attribute_map = { + 'always_encrypted_akv_auth_type': {'key': 'alwaysEncryptedAkvAuthType', 'type': 'str'}, + 'service_principal_id': {'key': 'servicePrincipalId', 'type': 'object'}, + 'service_principal_key': {'key': 'servicePrincipalKey', 'type': 'SecretBase'}, + } + + def __init__( + self, + **kwargs + ): + super(SqlAlwaysEncryptedProperties, self).__init__(**kwargs) + self.always_encrypted_akv_auth_type = kwargs['always_encrypted_akv_auth_type'] + self.service_principal_id = kwargs.get('service_principal_id', None) + self.service_principal_key = kwargs.get('service_principal_key', None) + + class SqlDWSink(CopySink): """A copy activity SQL Data Warehouse sink. @@ -31286,41 +32681,44 @@ class SqlDWSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any :param allow_poly_base: Indicates to use PolyBase to copy data into SQL Data Warehouse when applicable. Type: boolean (or Expression with resultType boolean). - :type allow_poly_base: object + :type allow_poly_base: any :param poly_base_settings: Specifies PolyBase-related settings when allowPolyBase is true. :type poly_base_settings: ~azure.mgmt.datafactory.models.PolybaseSettings :param allow_copy_command: Indicates to use Copy Command to copy data into SQL Data Warehouse. Type: boolean (or Expression with resultType boolean). - :type allow_copy_command: object + :type allow_copy_command: any :param copy_command_settings: Specifies Copy Command related settings when allowCopyCommand is true. :type copy_command_settings: ~azure.mgmt.datafactory.models.DWCopyCommandSettings :param table_option: The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string). - :type table_option: object + :type table_option: any """ _validation = { @@ -31335,6 +32733,7 @@ class SqlDWSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, 'allow_poly_base': {'key': 'allowPolyBase', 'type': 'object'}, 'poly_base_settings': {'key': 'polyBaseSettings', 'type': 'PolybaseSettings'}, @@ -31364,38 +32763,41 @@ class SqlDWSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param sql_reader_query: SQL Data Warehouse reader query. Type: string (or Expression with resultType string). - :type sql_reader_query: object + :type sql_reader_query: any :param sql_reader_stored_procedure_name: Name of the stored procedure for a SQL Data Warehouse source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string). - :type sql_reader_stored_procedure_name: object + :type sql_reader_stored_procedure_name: any :param stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}". Type: object (or Expression with resultType object), itemType: StoredProcedureParameter. - :type stored_procedure_parameters: object + :type stored_procedure_parameters: any :param partition_option: The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for Sql source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.SqlPartitionSettings """ @@ -31410,6 +32812,7 @@ class SqlDWSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'sql_reader_query': {'key': 'sqlReaderQuery', 'type': 'object'}, @@ -31439,42 +32842,45 @@ class SqlMISink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param sql_writer_stored_procedure_name: SQL writer stored procedure name. Type: string (or Expression with resultType string). - :type sql_writer_stored_procedure_name: object + :type sql_writer_stored_procedure_name: any :param sql_writer_table_type: SQL writer table type. Type: string (or Expression with resultType string). - :type sql_writer_table_type: object + :type sql_writer_table_type: any :param pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any :param stored_procedure_parameters: SQL stored procedure parameters. :type stored_procedure_parameters: dict[str, ~azure.mgmt.datafactory.models.StoredProcedureParameter] :param stored_procedure_table_type_parameter_name: The stored procedure parameter name of the table type. Type: string (or Expression with resultType string). - :type stored_procedure_table_type_parameter_name: object + :type stored_procedure_table_type_parameter_name: any :param table_option: The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string). - :type table_option: object + :type table_option: any """ _validation = { @@ -31489,6 +32895,7 @@ class SqlMISink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'sql_writer_stored_procedure_name': {'key': 'sqlWriterStoredProcedureName', 'type': 'object'}, 'sql_writer_table_type': {'key': 'sqlWriterTableType', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, @@ -31518,39 +32925,42 @@ class SqlMISource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param sql_reader_query: SQL reader query. Type: string (or Expression with resultType string). - :type sql_reader_query: object + :type sql_reader_query: any :param sql_reader_stored_procedure_name: Name of the stored procedure for a Azure SQL Managed Instance source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string). - :type sql_reader_stored_procedure_name: object + :type sql_reader_stored_procedure_name: any :param stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}". :type stored_procedure_parameters: dict[str, ~azure.mgmt.datafactory.models.StoredProcedureParameter] :param produce_additional_types: Which additional types to produce. - :type produce_additional_types: object + :type produce_additional_types: any :param partition_option: The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for Sql source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.SqlPartitionSettings """ @@ -31565,6 +32975,7 @@ class SqlMISource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'sql_reader_query': {'key': 'sqlReaderQuery', 'type': 'object'}, @@ -31593,19 +33004,20 @@ class SqlPartitionSettings(msrest.serialization.Model): """The settings that will be leveraged for Sql source partitioning. :param partition_column_name: The name of the column in integer or datetime type that will be - used for proceeding partitioning. If not specified, the primary key of the table is auto- - detected and used as the partition column. Type: string (or Expression with resultType string). - :type partition_column_name: object + used for proceeding partitioning. If not specified, the primary key of the table is + auto-detected and used as the partition column. Type: string (or Expression with resultType + string). + :type partition_column_name: any :param partition_upper_bound: The maximum value of the partition column for partition range splitting. This value is used to decide the partition stride, not for filtering the rows in table. All rows in the table or query result will be partitioned and copied. Type: string (or Expression with resultType string). - :type partition_upper_bound: object + :type partition_upper_bound: any :param partition_lower_bound: The minimum value of the partition column for partition range splitting. This value is used to decide the partition stride, not for filtering the rows in table. All rows in the table or query result will be partitioned and copied. Type: string (or Expression with resultType string). - :type partition_lower_bound: object + :type partition_lower_bound: any """ _attribute_map = { @@ -31631,7 +33043,7 @@ class SqlServerLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -31641,19 +33053,21 @@ class SqlServerLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param user_name: The on-premises Windows authentication user name. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: The on-premises Windows authentication password. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param always_encrypted_settings: Sql always encrypted properties. + :type always_encrypted_settings: ~azure.mgmt.datafactory.models.SqlAlwaysEncryptedProperties """ _validation = { @@ -31672,6 +33086,7 @@ class SqlServerLinkedService(LinkedService): 'user_name': {'key': 'typeProperties.userName', 'type': 'object'}, 'password': {'key': 'typeProperties.password', 'type': 'SecretBase'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'always_encrypted_settings': {'key': 'typeProperties.alwaysEncryptedSettings', 'type': 'SqlAlwaysEncryptedProperties'}, } def __init__( @@ -31684,6 +33099,7 @@ def __init__( self.user_name = kwargs.get('user_name', None) self.password = kwargs.get('password', None) self.encrypted_credential = kwargs.get('encrypted_credential', None) + self.always_encrypted_settings = kwargs.get('always_encrypted_settings', None) class SqlServerSink(CopySink): @@ -31693,42 +33109,45 @@ class SqlServerSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param sql_writer_stored_procedure_name: SQL writer stored procedure name. Type: string (or Expression with resultType string). - :type sql_writer_stored_procedure_name: object + :type sql_writer_stored_procedure_name: any :param sql_writer_table_type: SQL writer table type. Type: string (or Expression with resultType string). - :type sql_writer_table_type: object + :type sql_writer_table_type: any :param pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any :param stored_procedure_parameters: SQL stored procedure parameters. :type stored_procedure_parameters: dict[str, ~azure.mgmt.datafactory.models.StoredProcedureParameter] :param stored_procedure_table_type_parameter_name: The stored procedure parameter name of the table type. Type: string (or Expression with resultType string). - :type stored_procedure_table_type_parameter_name: object + :type stored_procedure_table_type_parameter_name: any :param table_option: The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string). - :type table_option: object + :type table_option: any """ _validation = { @@ -31743,6 +33162,7 @@ class SqlServerSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'sql_writer_stored_procedure_name': {'key': 'sqlWriterStoredProcedureName', 'type': 'object'}, 'sql_writer_table_type': {'key': 'sqlWriterTableType', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, @@ -31772,39 +33192,42 @@ class SqlServerSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param sql_reader_query: SQL reader query. Type: string (or Expression with resultType string). - :type sql_reader_query: object + :type sql_reader_query: any :param sql_reader_stored_procedure_name: Name of the stored procedure for a SQL Database source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string). - :type sql_reader_stored_procedure_name: object + :type sql_reader_stored_procedure_name: any :param stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}". :type stored_procedure_parameters: dict[str, ~azure.mgmt.datafactory.models.StoredProcedureParameter] :param produce_additional_types: Which additional types to produce. - :type produce_additional_types: object + :type produce_additional_types: any :param partition_option: The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for Sql source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.SqlPartitionSettings """ @@ -31819,6 +33242,7 @@ class SqlServerSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'sql_reader_query': {'key': 'sqlReaderQuery', 'type': 'object'}, @@ -31850,7 +33274,7 @@ class SqlServerStoredProcedureActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -31867,7 +33291,7 @@ class SqlServerStoredProcedureActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param stored_procedure_name: Required. Stored procedure name. Type: string (or Expression with resultType string). - :type stored_procedure_name: object + :type stored_procedure_name: any :param stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}". :type stored_procedure_parameters: dict[str, @@ -31910,35 +33334,35 @@ class SqlServerTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param schema_type_properties_schema: The schema name of the SQL Server dataset. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any :param table: The table name of the SQL Server dataset. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -31979,42 +33403,45 @@ class SqlSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param sql_writer_stored_procedure_name: SQL writer stored procedure name. Type: string (or Expression with resultType string). - :type sql_writer_stored_procedure_name: object + :type sql_writer_stored_procedure_name: any :param sql_writer_table_type: SQL writer table type. Type: string (or Expression with resultType string). - :type sql_writer_table_type: object + :type sql_writer_table_type: any :param pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any :param stored_procedure_parameters: SQL stored procedure parameters. :type stored_procedure_parameters: dict[str, ~azure.mgmt.datafactory.models.StoredProcedureParameter] :param stored_procedure_table_type_parameter_name: The stored procedure parameter name of the table type. Type: string (or Expression with resultType string). - :type stored_procedure_table_type_parameter_name: object + :type stored_procedure_table_type_parameter_name: any :param table_option: The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string). - :type table_option: object + :type table_option: any """ _validation = { @@ -32029,6 +33456,7 @@ class SqlSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'sql_writer_stored_procedure_name': {'key': 'sqlWriterStoredProcedureName', 'type': 'object'}, 'sql_writer_table_type': {'key': 'sqlWriterTableType', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, @@ -32058,30 +33486,33 @@ class SqlSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param sql_reader_query: SQL reader query. Type: string (or Expression with resultType string). - :type sql_reader_query: object + :type sql_reader_query: any :param sql_reader_stored_procedure_name: Name of the stored procedure for a SQL Database source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string). - :type sql_reader_stored_procedure_name: object + :type sql_reader_stored_procedure_name: any :param stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}". :type stored_procedure_parameters: dict[str, @@ -32089,10 +33520,10 @@ class SqlSource(TabularSource): :param isolation_level: Specifies the transaction locking behavior for the SQL source. Allowed values: ReadCommitted/ReadUncommitted/RepeatableRead/Serializable/Snapshot. The default value is ReadCommitted. Type: string (or Expression with resultType string). - :type isolation_level: object + :type isolation_level: any :param partition_option: The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for Sql source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.SqlPartitionSettings """ @@ -32107,6 +33538,7 @@ class SqlSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'sql_reader_query': {'key': 'sqlReaderQuery', 'type': 'object'}, @@ -32138,7 +33570,7 @@ class SquareLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -32148,33 +33580,33 @@ class SquareLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_properties: Properties used to connect to Square. It is mutually exclusive with any other properties in the linked service. Type: object. - :type connection_properties: object + :type connection_properties: any :param host: The URL of the Square instance. (i.e. mystore.mysquare.com). - :type host: object + :type host: any :param client_id: The client ID associated with your Square application. - :type client_id: object + :type client_id: any :param client_secret: The client secret associated with your Square application. :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param redirect_uri: The redirect URL assigned in the Square application dashboard. (i.e. http://localhost:2500). - :type redirect_uri: object + :type redirect_uri: any :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -32223,28 +33655,28 @@ class SquareObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -32281,27 +33713,30 @@ class SquareSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -32314,6 +33749,7 @@ class SquareSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -32334,9 +33770,9 @@ class SSISAccessCredential(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param domain: Required. Domain for windows authentication. - :type domain: object + :type domain: any :param user_name: Required. UseName for windows authentication. - :type user_name: object + :type user_name: any :param password: Required. Password for windows authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase """ @@ -32370,12 +33806,12 @@ class SSISChildPackage(msrest.serialization.Model): :param package_path: Required. Path for embedded child package. Type: string (or Expression with resultType string). - :type package_path: object + :type package_path: any :param package_name: Name for embedded child package. :type package_name: str :param package_content: Required. Content for embedded child package. Type: string (or Expression with resultType string). - :type package_content: object + :type package_content: any :param package_last_modified_date: Last modified date for embedded child package. :type package_last_modified_date: str """ @@ -32528,9 +33964,9 @@ class SSISExecutionCredential(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param domain: Required. Domain for windows authentication. - :type domain: object + :type domain: any :param user_name: Required. UseName for windows authentication. - :type user_name: object + :type user_name: any :param password: Required. Password for windows authentication. :type password: ~azure.mgmt.datafactory.models.SecureString """ @@ -32564,7 +34000,7 @@ class SSISExecutionParameter(msrest.serialization.Model): :param value: Required. SSIS package execution parameter value. Type: string (or Expression with resultType string). - :type value: object + :type value: any """ _validation = { @@ -32625,7 +34061,7 @@ class SSISLogLocation(msrest.serialization.Model): :param log_path: Required. The SSIS package execution log path. Type: string (or Expression with resultType string). - :type log_path: object + :type log_path: any :param type: Required. The type of SSIS log location. Possible values include: "File". :type type: str or ~azure.mgmt.datafactory.models.SsisLogLocationType :param access_credential: The package execution log access credential. @@ -32633,7 +34069,7 @@ class SSISLogLocation(msrest.serialization.Model): :param log_refresh_interval: Specifies the interval to refresh log. The default interval is 5 minutes. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type log_refresh_interval: object + :type log_refresh_interval: any """ _validation = { @@ -32769,7 +34205,7 @@ class SSISPackageLocation(msrest.serialization.Model): :param package_path: The SSIS package path. Type: string (or Expression with resultType string). - :type package_path: object + :type package_path: any :param type: The type of SSIS package location. Possible values include: "SSISDB", "File", "InlinePackage", "PackageStore". :type type: str or ~azure.mgmt.datafactory.models.SsisPackageLocationType @@ -32779,14 +34215,14 @@ class SSISPackageLocation(msrest.serialization.Model): :type access_credential: ~azure.mgmt.datafactory.models.SSISAccessCredential :param configuration_path: The configuration file of the package execution. Type: string (or Expression with resultType string). - :type configuration_path: object + :type configuration_path: any :param configuration_access_credential: The configuration file access credential. :type configuration_access_credential: ~azure.mgmt.datafactory.models.SSISAccessCredential :param package_name: The package name. :type package_name: str :param package_content: The embedded package content. Type: string (or Expression with resultType string). - :type package_content: object + :type package_content: any :param package_last_modified_date: The embedded package last modified date. :type package_last_modified_date: str :param child_packages: The embedded child package list. @@ -32944,7 +34380,7 @@ class SSISPropertyOverride(msrest.serialization.Model): :param value: Required. SSIS package property override value. Type: string (or Expression with resultType string). - :type value: object + :type value: any :param is_sensitive: Whether SSIS package property override value is sensitive data. Value will be encrypted in SSISDB if it is true. :type is_sensitive: bool @@ -33018,15 +34454,15 @@ class StagingSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param linked_service_name: Required. Staging linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param path: The path to storage for storing the interim data. Type: string (or Expression with resultType string). - :type path: object + :type path: any :param enable_compression: Specifies whether to use compression when copying data via an interim staging. Default value is false. Type: boolean (or Expression with resultType boolean). - :type enable_compression: object + :type enable_compression: any """ _validation = { @@ -33056,7 +34492,7 @@ class StoredProcedureParameter(msrest.serialization.Model): :param value: Stored procedure parameter value. Type: string (or Expression with resultType string). - :type value: object + :type value: any :param type: Stored procedure parameter type. Possible values include: "String", "Int", "Int64", "Decimal", "Guid", "Boolean", "Date". :type type: str or ~azure.mgmt.datafactory.models.StoredProcedureParameterType @@ -33076,14 +34512,14 @@ def __init__( self.type = kwargs.get('type', None) -class SwitchActivity(Activity): +class SwitchActivity(ControlActivity): """This activity evaluates an expression and executes activities under the cases property that correspond to the expression evaluation expected in the equals property. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -33165,7 +34601,7 @@ class SybaseLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -33175,27 +34611,27 @@ class SybaseLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param server: Required. Server name for connection. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param database: Required. Database name for connection. Type: string (or Expression with resultType string). - :type database: object + :type database: any :param schema: Schema name for connection. Type: string (or Expression with resultType string). - :type schema: object + :type schema: any :param authentication_type: AuthenticationType to be used for connection. Possible values include: "Basic", "Windows". :type authentication_type: str or ~azure.mgmt.datafactory.models.SybaseAuthenticationType :param username: Username for authentication. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password for authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -33242,26 +34678,29 @@ class SybaseSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -33274,6 +34713,7 @@ class SybaseSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -33295,28 +34735,28 @@ class SybaseTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The Sybase table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -33353,33 +34793,33 @@ class TabularTranslator(CopyTranslator): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy translator type.Constant filled by server. :type type: str :param column_mappings: Column mappings. Example: "UserId: MyUserId, Group: MyGroup, Name: MyName" Type: string (or Expression with resultType string). This property will be retired. Please use mappings property. - :type column_mappings: object + :type column_mappings: any :param schema_mapping: The schema mapping to map between tabular data and hierarchical data. Example: {"Column1": "$.Column1", "Column2": "$.Column2.Property1", "Column3": "$.Column2.Property2"}. Type: object (or Expression with resultType object). This property will be retired. Please use mappings property. - :type schema_mapping: object + :type schema_mapping: any :param collection_reference: The JSON Path of the Nested Array that is going to do cross-apply. Type: object (or Expression with resultType object). - :type collection_reference: object + :type collection_reference: any :param map_complex_values_to_string: Whether to map complex (array and object) values to simple strings in json format. Type: boolean (or Expression with resultType boolean). - :type map_complex_values_to_string: object + :type map_complex_values_to_string: any :param mappings: Column mappings with logical types. Tabular->tabular example: [{"source":{"name":"CustomerName","type":"String"},"sink":{"name":"ClientName","type":"String"}},{"source":{"name":"CustomerAddress","type":"String"},"sink":{"name":"ClientAddress","type":"String"}}]. Hierarchical->tabular example: [{"source":{"path":"$.CustomerName","type":"String"},"sink":{"name":"ClientName","type":"String"}},{"source":{"path":"$.CustomerAddress","type":"String"},"sink":{"name":"ClientAddress","type":"String"}}]. Type: object (or Expression with resultType object). - :type mappings: object + :type mappings: any :param type_conversion: Whether to enable the advanced type conversion feature in the Copy activity. Type: boolean (or Expression with resultType boolean). - :type type_conversion: object + :type type_conversion: any :param type_conversion_settings: Type conversion settings. :type type_conversion_settings: ~azure.mgmt.datafactory.models.TypeConversionSettings """ @@ -33422,12 +34862,12 @@ class TarGZipReadSettings(CompressionReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The Compression setting type.Constant filled by server. :type type: str :param preserve_compression_file_name_as_folder: Preserve the compression file name as folder path. Type: boolean (or Expression with resultType boolean). - :type preserve_compression_file_name_as_folder: object + :type preserve_compression_file_name_as_folder: any """ _validation = { @@ -33456,12 +34896,12 @@ class TarReadSettings(CompressionReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The Compression setting type.Constant filled by server. :type type: str :param preserve_compression_file_name_as_folder: Preserve the compression file name as folder path. Type: boolean (or Expression with resultType boolean). - :type preserve_compression_file_name_as_folder: object + :type preserve_compression_file_name_as_folder: any """ _validation = { @@ -33490,7 +34930,7 @@ class TeradataLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -33500,24 +34940,24 @@ class TeradataLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Teradata ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param server: Server name for connection. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param authentication_type: AuthenticationType to be used for connection. Possible values include: "Basic", "Windows". :type authentication_type: str or ~azure.mgmt.datafactory.models.TeradataAuthenticationType :param username: Username for authentication. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password for authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -33558,15 +34998,15 @@ class TeradataPartitionSettings(msrest.serialization.Model): :param partition_column_name: The name of the column that will be used for proceeding range or hash partitioning. Type: string (or Expression with resultType string). - :type partition_column_name: object + :type partition_column_name: any :param partition_upper_bound: The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_upper_bound: object + :type partition_upper_bound: any :param partition_lower_bound: The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_lower_bound: object + :type partition_lower_bound: any """ _attribute_map = { @@ -33592,29 +35032,32 @@ class TeradataSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Teradata query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param partition_option: The partition mechanism that will be used for teradata read in parallel. Possible values include: "None", "Hash", "DynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for teradata source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.TeradataPartitionSettings @@ -33630,6 +35073,7 @@ class TeradataSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -33655,31 +35099,31 @@ class TeradataTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param database: The database name of Teradata. Type: string (or Expression with resultType string). - :type database: object + :type database: any :param table: The table name of Teradata. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -33718,40 +35162,40 @@ class TextFormat(DatasetStorageFormat): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage format.Constant filled by server. :type type: str :param serializer: Serializer. Type: string (or Expression with resultType string). - :type serializer: object + :type serializer: any :param deserializer: Deserializer. Type: string (or Expression with resultType string). - :type deserializer: object + :type deserializer: any :param column_delimiter: The column delimiter. Type: string (or Expression with resultType string). - :type column_delimiter: object + :type column_delimiter: any :param row_delimiter: The row delimiter. Type: string (or Expression with resultType string). - :type row_delimiter: object + :type row_delimiter: any :param escape_char: The escape character. Type: string (or Expression with resultType string). - :type escape_char: object + :type escape_char: any :param quote_char: The quote character. Type: string (or Expression with resultType string). - :type quote_char: object + :type quote_char: any :param null_value: The null value string. Type: string (or Expression with resultType string). - :type null_value: object + :type null_value: any :param encoding_name: The code page name of the preferred encoding. If miss, the default value is ΓÇ£utf-8ΓÇ¥, unless BOM denotes another Unicode encoding. Refer to the ΓÇ£NameΓÇ¥ column of the table in the following link to set supported values: https://msdn.microsoft.com/library/system.text.encoding.aspx. Type: string (or Expression with resultType string). - :type encoding_name: object + :type encoding_name: any :param treat_empty_as_null: Treat empty column values in the text file as null. The default value is true. Type: boolean (or Expression with resultType boolean). - :type treat_empty_as_null: object + :type treat_empty_as_null: any :param skip_line_count: The number of lines/rows to be skipped when parsing text files. The default value is 0. Type: integer (or Expression with resultType integer). - :type skip_line_count: object + :type skip_line_count: any :param first_row_as_header: When used as input, treat the first row of data as headers. When used as output,write the headers into the output as the first row of data. The default value is false. Type: boolean (or Expression with resultType boolean). - :type first_row_as_header: object + :type first_row_as_header: any """ _validation = { @@ -33888,7 +35332,7 @@ class TriggerPipelineReference(msrest.serialization.Model): :param pipeline_reference: Pipeline reference. :type pipeline_reference: ~azure.mgmt.datafactory.models.PipelineReference :param parameters: Pipeline parameters. - :type parameters: dict[str, object] + :type parameters: dict[str, any] """ _attribute_map = { @@ -33942,7 +35386,7 @@ class TriggerReference(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar type: Required. Trigger reference type. Default value: "TriggerReference". + :ivar type: Trigger reference type. Has constant value: "TriggerReference". :vartype type: str :param reference_name: Required. Reference trigger name. :type reference_name: str @@ -34018,7 +35462,7 @@ class TriggerRun(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar trigger_run_id: Trigger run id. :vartype trigger_run_id: str :ivar trigger_name: Trigger name. @@ -34039,7 +35483,7 @@ class TriggerRun(msrest.serialization.Model): :ivar run_dimension: Run dimension for which trigger was fired. :vartype run_dimension: dict[str, str] :ivar dependency_status: Status of the upstream pipelines. - :vartype dependency_status: dict[str, object] + :vartype dependency_status: dict[str, any] """ _validation = { @@ -34157,7 +35601,7 @@ class TumblingWindowTrigger(Trigger): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -34166,7 +35610,7 @@ class TumblingWindowTrigger(Trigger): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] :param pipeline: Required. Pipeline for which runs are created when an event is fired for trigger window that is ready. :type pipeline: ~azure.mgmt.datafactory.models.TriggerPipelineReference @@ -34185,7 +35629,7 @@ class TumblingWindowTrigger(Trigger): :param delay: Specifies how long the trigger waits past due time before triggering new run. It doesn't alter window start and end time. The default is 0. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type delay: object + :type delay: any :param max_concurrency: Required. The max number of parallel time windows (ready for execution) for which a new run is triggered. :type max_concurrency: int @@ -34286,22 +35730,22 @@ class TypeConversionSettings(msrest.serialization.Model): :param allow_data_truncation: Whether to allow data truncation when converting the data. Type: boolean (or Expression with resultType boolean). - :type allow_data_truncation: object + :type allow_data_truncation: any :param treat_boolean_as_number: Whether to treat boolean values as numbers. Type: boolean (or Expression with resultType boolean). - :type treat_boolean_as_number: object + :type treat_boolean_as_number: any :param date_time_format: The format for DateTime values. Type: string (or Expression with resultType string). - :type date_time_format: object + :type date_time_format: any :param date_time_offset_format: The format for DateTimeOffset values. Type: string (or Expression with resultType string). - :type date_time_offset_format: object + :type date_time_offset_format: any :param time_span_format: The format for TimeSpan values. Type: string (or Expression with resultType string). - :type time_span_format: object + :type time_span_format: any :param culture: The culture used to convert data from/to string. Type: string (or Expression with resultType string). - :type culture: object + :type culture: any """ _attribute_map = { @@ -34326,14 +35770,14 @@ def __init__( self.culture = kwargs.get('culture', None) -class UntilActivity(Activity): +class UntilActivity(ControlActivity): """This activity executes inner activities until the specified boolean expression results to true or timeout is reached, whichever is earlier. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -34352,7 +35796,7 @@ class UntilActivity(Activity): Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type timeout: object + :type timeout: any :param activities: Required. List of activities to execute. :type activities: list[~azure.mgmt.datafactory.models.Activity] """ @@ -34485,7 +35929,7 @@ class UserProperty(msrest.serialization.Model): :type name: str :param value: Required. User property value. Type: string (or Expression with resultType string). - :type value: object + :type value: any """ _validation = { @@ -34507,14 +35951,14 @@ def __init__( self.value = kwargs['value'] -class ValidationActivity(Activity): +class ValidationActivity(ControlActivity): """This activity verifies that an external resource exists. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -34529,17 +35973,17 @@ class ValidationActivity(Activity): it takes the value of TimeSpan.FromDays(7) which is 1 week as default. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type timeout: object + :type timeout: any :param sleep: A delay in seconds between validation attempts. If no value is specified, 10 seconds will be used as the default. Type: integer (or Expression with resultType integer). - :type sleep: object + :type sleep: any :param minimum_size: Can be used if dataset points to a file. The file must be greater than or equal in size to the value specified. Type: integer (or Expression with resultType integer). - :type minimum_size: object + :type minimum_size: any :param child_items: Can be used if dataset points to a folder. If set to true, the folder must have at least one file. If set to false, the folder must be empty. Type: boolean (or Expression with resultType boolean). - :type child_items: object + :type child_items: any :param dataset: Required. Validation activity dataset reference. :type dataset: ~azure.mgmt.datafactory.models.DatasetReference """ @@ -34585,7 +36029,7 @@ class VariableSpecification(msrest.serialization.Model): :param type: Required. Variable type. Possible values include: "String", "Bool", "Array". :type type: str or ~azure.mgmt.datafactory.models.VariableType :param default_value: Default value of variable. - :type default_value: object + :type default_value: any """ _validation = { @@ -34613,7 +36057,7 @@ class VerticaLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -34623,16 +36067,16 @@ class VerticaLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param pwd: The Azure key vault secret reference of password in connection string. :type pwd: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -34669,27 +36113,30 @@ class VerticaSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -34702,6 +36149,7 @@ class VerticaSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -34723,35 +36171,35 @@ class VerticaTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Vertica. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Vertica. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -34785,14 +36233,14 @@ def __init__( self.schema_type_properties_schema = kwargs.get('schema_type_properties_schema', None) -class WaitActivity(Activity): +class WaitActivity(ControlActivity): """This activity suspends pipeline execution for the specified interval. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -34804,7 +36252,7 @@ class WaitActivity(Activity): :param user_properties: Activity user properties. :type user_properties: list[~azure.mgmt.datafactory.models.UserProperty] :param wait_time_in_seconds: Required. Duration in seconds. - :type wait_time_in_seconds: object + :type wait_time_in_seconds: any """ _validation = { @@ -34839,7 +36287,7 @@ class WebActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -34859,14 +36307,14 @@ class WebActivity(ExecutionActivity): :type method: str or ~azure.mgmt.datafactory.models.WebActivityMethod :param url: Required. Web activity target endpoint and path. Type: string (or Expression with resultType string). - :type url: object + :type url: any :param headers: Represents the headers that will be sent to the request. For example, to set the language and type on a request: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Type: string (or Expression with resultType string). - :type headers: object + :type headers: any :param body: Represents the payload that will be sent to the endpoint. Required for POST/PUT method, not allowed for GET method Type: string (or Expression with resultType string). - :type body: object + :type body: any :param authentication: Authentication method used for calling the endpoint. :type authentication: ~azure.mgmt.datafactory.models.WebActivityAuthentication :param datasets: List of datasets passed to web endpoint. @@ -34922,32 +36370,27 @@ def __init__( class WebActivityAuthentication(msrest.serialization.Model): """Web activity authentication properties. - All required parameters must be populated in order to send to Azure. - - :param type: Required. Web activity authentication - (Basic/ClientCertificate/MSI/ServicePrincipal). + :param type: Web activity authentication (Basic/ClientCertificate/MSI/ServicePrincipal). :type type: str :param pfx: Base64-encoded contents of a PFX file or Certificate when used for ServicePrincipal. :type pfx: ~azure.mgmt.datafactory.models.SecretBase :param username: Web activity authentication user name for basic authentication or ClientID when used for ServicePrincipal. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password for the PFX file or basic authentication / Secret when used for ServicePrincipal. :type password: ~azure.mgmt.datafactory.models.SecretBase :param resource: Resource for which Azure Auth token will be requested when using MSI Authentication. Type: string (or Expression with resultType string). - :type resource: object + :type resource: any :param user_tenant: TenantId for which Azure Auth token will be requested when using ServicePrincipal Authentication. Type: string (or Expression with resultType string). - :type user_tenant: object + :type user_tenant: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ - _validation = { - 'type': {'required': True}, - } - _attribute_map = { 'type': {'key': 'type', 'type': 'str'}, 'pfx': {'key': 'pfx', 'type': 'SecretBase'}, @@ -34955,6 +36398,7 @@ class WebActivityAuthentication(msrest.serialization.Model): 'password': {'key': 'password', 'type': 'SecretBase'}, 'resource': {'key': 'resource', 'type': 'object'}, 'user_tenant': {'key': 'userTenant', 'type': 'object'}, + 'credential': {'key': 'credential', 'type': 'CredentialReference'}, } def __init__( @@ -34962,12 +36406,13 @@ def __init__( **kwargs ): super(WebActivityAuthentication, self).__init__(**kwargs) - self.type = kwargs['type'] + self.type = kwargs.get('type', None) self.pfx = kwargs.get('pfx', None) self.username = kwargs.get('username', None) self.password = kwargs.get('password', None) self.resource = kwargs.get('resource', None) self.user_tenant = kwargs.get('user_tenant', None) + self.credential = kwargs.get('credential', None) class WebLinkedServiceTypeProperties(msrest.serialization.Model): @@ -34980,7 +36425,7 @@ class WebLinkedServiceTypeProperties(msrest.serialization.Model): :param url: Required. The URL of the web service endpoint, e.g. http://www.microsoft.com . Type: string (or Expression with resultType string). - :type url: object + :type url: any :param authentication_type: Required. Type of authentication used to connect to the web table source.Constant filled by server. Possible values include: "Basic", "Anonymous", "ClientCertificate". @@ -35017,7 +36462,7 @@ class WebAnonymousAuthentication(WebLinkedServiceTypeProperties): :param url: Required. The URL of the web service endpoint, e.g. http://www.microsoft.com . Type: string (or Expression with resultType string). - :type url: object + :type url: any :param authentication_type: Required. Type of authentication used to connect to the web table source.Constant filled by server. Possible values include: "Basic", "Anonymous", "ClientCertificate". @@ -35049,14 +36494,14 @@ class WebBasicAuthentication(WebLinkedServiceTypeProperties): :param url: Required. The URL of the web service endpoint, e.g. http://www.microsoft.com . Type: string (or Expression with resultType string). - :type url: object + :type url: any :param authentication_type: Required. Type of authentication used to connect to the web table source.Constant filled by server. Possible values include: "Basic", "Anonymous", "ClientCertificate". :type authentication_type: str or ~azure.mgmt.datafactory.models.WebAuthenticationType :param username: Required. User name for Basic authentication. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Required. The password for Basic authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase """ @@ -35092,7 +36537,7 @@ class WebClientCertificateAuthentication(WebLinkedServiceTypeProperties): :param url: Required. The URL of the web service endpoint, e.g. http://www.microsoft.com . Type: string (or Expression with resultType string). - :type url: object + :type url: any :param authentication_type: Required. Type of authentication used to connect to the web table source.Constant filled by server. Possible values include: "Basic", "Anonymous", "ClientCertificate". @@ -35127,14 +36572,14 @@ def __init__( self.password = kwargs['password'] -class WebHookActivity(Activity): +class WebHookActivity(ControlActivity): """WebHook activity. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -35149,7 +36594,7 @@ class WebHookActivity(Activity): :type method: str or ~azure.mgmt.datafactory.models.WebHookActivityMethod :param url: Required. WebHook activity target endpoint and path. Type: string (or Expression with resultType string). - :type url: object + :type url: any :param timeout: The timeout within which the webhook should be called back. If there is no value specified, it defaults to 10 minutes. Type: string. Pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). @@ -35157,17 +36602,17 @@ class WebHookActivity(Activity): :param headers: Represents the headers that will be sent to the request. For example, to set the language and type on a request: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Type: string (or Expression with resultType string). - :type headers: object + :type headers: any :param body: Represents the payload that will be sent to the endpoint. Required for POST/PUT method, not allowed for GET method Type: string (or Expression with resultType string). - :type body: object + :type body: any :param authentication: Authentication method used for calling the endpoint. :type authentication: ~azure.mgmt.datafactory.models.WebActivityAuthentication :param report_status_on_call_back: When set to true, statusCode, output and error in callback request body will be consumed by activity. The activity can be marked as failed by setting statusCode >= 400 in callback request. Default is false. Type: boolean (or Expression with resultType boolean). - :type report_status_on_call_back: object + :type report_status_on_call_back: any """ _validation = { @@ -35215,7 +36660,7 @@ class WebLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -35225,7 +36670,7 @@ class WebLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param type_properties: Required. Web linked service properties. :type type_properties: ~azure.mgmt.datafactory.models.WebLinkedServiceTypeProperties """ @@ -35261,18 +36706,21 @@ class WebSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -35288,6 +36736,7 @@ class WebSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -35307,32 +36756,32 @@ class WebTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param index: Required. The zero-based index of the table in the web page. Type: integer (or Expression with resultType integer), minimum: 0. - :type index: object + :type index: any :param path: The relative URL to the web page from the linked service URL. Type: string (or Expression with resultType string). - :type path: object + :type path: any """ _validation = { @@ -35372,7 +36821,7 @@ class XeroLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -35382,12 +36831,12 @@ class XeroLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_properties: Properties used to connect to Xero. It is mutually exclusive with any other properties in the linked service. Type: object. - :type connection_properties: object + :type connection_properties: any :param host: The endpoint of the Xero server. (i.e. api.xero.com). - :type host: object + :type host: any :param consumer_key: The consumer key associated with the Xero application. :type consumer_key: ~azure.mgmt.datafactory.models.SecretBase :param private_key: The private key from the .pem file that was generated for your Xero private @@ -35396,18 +36845,18 @@ class XeroLinkedService(LinkedService): :type private_key: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -35454,28 +36903,28 @@ class XeroObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -35512,27 +36961,30 @@ class XeroSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -35545,6 +36997,7 @@ class XeroSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -35566,23 +37019,23 @@ class XmlDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder @@ -35593,9 +37046,9 @@ class XmlDataset(Dataset): of the table in the following link to set supported values: https://msdn.microsoft.com/library/system.text.encoding.aspx. Type: string (or Expression with resultType string). - :type encoding_name: object + :type encoding_name: any :param null_value: The null value string. Type: string (or Expression with resultType string). - :type null_value: object + :type null_value: any :param compression: The data compression method used for the json dataset. :type compression: ~azure.mgmt.datafactory.models.DatasetCompression """ @@ -35640,25 +37093,25 @@ class XmlReadSettings(FormatReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param compression_properties: Compression settings. :type compression_properties: ~azure.mgmt.datafactory.models.CompressionReadSettings :param validation_mode: Indicates what validation method is used when reading the xml files. Allowed values: 'none', 'xsd', or 'dtd'. Type: string (or Expression with resultType string). - :type validation_mode: object + :type validation_mode: any :param detect_data_type: Indicates whether type detection is enabled when reading the xml files. Type: boolean (or Expression with resultType boolean). - :type detect_data_type: object + :type detect_data_type: any :param namespaces: Indicates whether namespace is enabled when reading the xml files. Type: boolean (or Expression with resultType boolean). - :type namespaces: object + :type namespaces: any :param namespace_prefixes: Namespace uri to prefix mappings to override the prefixes in column names when namespace is enabled, if no prefix is defined for a namespace uri, the prefix of xml element/attribute name in the xml data file will be used. Example: "{"http://www.example.com/xml":"prefix"}" Type: object (or Expression with resultType object). - :type namespace_prefixes: object + :type namespace_prefixes: any """ _validation = { @@ -35695,18 +37148,21 @@ class XmlSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Xml store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param format_settings: Xml format settings. @@ -35726,6 +37182,7 @@ class XmlSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreReadSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'XmlReadSettings'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, @@ -35749,12 +37206,12 @@ class ZipDeflateReadSettings(CompressionReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The Compression setting type.Constant filled by server. :type type: str :param preserve_zip_file_name_as_folder: Preserve the zip file name as folder path. Type: boolean (or Expression with resultType boolean). - :type preserve_zip_file_name_as_folder: object + :type preserve_zip_file_name_as_folder: any """ _validation = { @@ -35783,7 +37240,7 @@ class ZohoLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -35793,28 +37250,28 @@ class ZohoLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_properties: Properties used to connect to Zoho. It is mutually exclusive with any other properties in the linked service. Type: object. - :type connection_properties: object + :type connection_properties: any :param endpoint: The endpoint of the Zoho server. (i.e. crm.zoho.com/crm/private). - :type endpoint: object + :type endpoint: any :param access_token: The access token for Zoho authentication. :type access_token: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -35859,28 +37316,28 @@ class ZohoObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -35917,27 +37374,30 @@ class ZohoSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -35950,6 +37410,7 @@ class ZohoSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/models/_models_py3.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/models/_models_py3.py index 2041a2bb0ac5..3fce09934332 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/models/_models_py3.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/models/_models_py3.py @@ -7,7 +7,7 @@ # -------------------------------------------------------------------------- import datetime -from typing import Dict, List, Optional, Union +from typing import Any, Dict, List, Optional, Union import msrest.serialization @@ -49,13 +49,13 @@ class Activity(msrest.serialization.Model): """A pipeline activity. You probably want to use the sub-classes and not this class directly. Known - sub-classes are: AppendVariableActivity, ControlActivity, ExecutePipelineActivity, ExecutionActivity, FilterActivity, ForEachActivity, IfConditionActivity, SetVariableActivity, SwitchActivity, UntilActivity, ValidationActivity, WaitActivity, WebHookActivity. + sub-classes are: ControlActivity, ExecutionActivity. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -83,14 +83,14 @@ class Activity(msrest.serialization.Model): } _subtype_map = { - 'type': {'AppendVariable': 'AppendVariableActivity', 'Container': 'ControlActivity', 'ExecutePipeline': 'ExecutePipelineActivity', 'Execution': 'ExecutionActivity', 'Filter': 'FilterActivity', 'ForEach': 'ForEachActivity', 'IfCondition': 'IfConditionActivity', 'SetVariable': 'SetVariableActivity', 'Switch': 'SwitchActivity', 'Until': 'UntilActivity', 'Validation': 'ValidationActivity', 'Wait': 'WaitActivity', 'WebHook': 'WebHookActivity'} + 'type': {'Container': 'ControlActivity', 'Execution': 'ExecutionActivity'} } def __init__( self, *, name: str, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, @@ -112,7 +112,7 @@ class ActivityDependency(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param activity: Required. Activity name. :type activity: str :param dependency_conditions: Required. Match-Condition for the dependency. @@ -135,7 +135,7 @@ def __init__( *, activity: str, dependency_conditions: List[Union[str, "DependencyCondition"]], - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(ActivityDependency, self).__init__(**kwargs) @@ -149,14 +149,14 @@ class ActivityPolicy(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param timeout: Specifies the timeout for the activity to run. The default timeout is 7 days. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type timeout: object + :type timeout: any :param retry: Maximum ordinary retry attempts. Default is 0. Type: integer (or Expression with resultType integer), minimum: 0. - :type retry: object + :type retry: any :param retry_interval_in_seconds: Interval between each retry attempt (in seconds). The default is 30 sec. :type retry_interval_in_seconds: int @@ -184,9 +184,9 @@ class ActivityPolicy(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - timeout: Optional[object] = None, - retry: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + timeout: Optional[Any] = None, + retry: Optional[Any] = None, retry_interval_in_seconds: Optional[int] = None, secure_input: Optional[bool] = None, secure_output: Optional[bool] = None, @@ -208,7 +208,7 @@ class ActivityRun(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar pipeline_name: The name of the pipeline. :vartype pipeline_name: str :ivar pipeline_run_id: The id of the pipeline run. @@ -230,11 +230,11 @@ class ActivityRun(msrest.serialization.Model): :ivar duration_in_ms: The duration of the activity run. :vartype duration_in_ms: int :ivar input: The input for the activity. - :vartype input: object + :vartype input: any :ivar output: The output for the activity. - :vartype output: object + :vartype output: any :ivar error: The error if any from the activity run. - :vartype error: object + :vartype error: any """ _validation = { @@ -273,7 +273,7 @@ class ActivityRun(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(ActivityRun, self).__init__(**kwargs) @@ -351,9 +351,9 @@ class AdditionalColumns(msrest.serialization.Model): """Specify the column name and value of additional columns. :param name: Additional column name. Type: string (or Expression with resultType string). - :type name: object + :type name: any :param value: Additional column value. Type: string (or Expression with resultType string). - :type value: object + :type value: any """ _attribute_map = { @@ -364,8 +364,8 @@ class AdditionalColumns(msrest.serialization.Model): def __init__( self, *, - name: Optional[object] = None, - value: Optional[object] = None, + name: Optional[Any] = None, + value: Optional[Any] = None, **kwargs ): super(AdditionalColumns, self).__init__(**kwargs) @@ -383,7 +383,7 @@ class LinkedService(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -393,7 +393,7 @@ class LinkedService(msrest.serialization.Model): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] """ _validation = { @@ -416,11 +416,11 @@ class LinkedService(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, **kwargs ): super(LinkedService, self).__init__(**kwargs) @@ -439,7 +439,7 @@ class AmazonMWSLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -449,36 +449,36 @@ class AmazonMWSLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param endpoint: Required. The endpoint of the Amazon MWS server, (i.e. mws.amazonservices.com). - :type endpoint: object + :type endpoint: any :param marketplace_id: Required. The Amazon Marketplace ID you want to retrieve data from. To retrieve data from multiple Marketplace IDs, separate them with a comma (,). (i.e. A2EUQ1WTGCTBG2). - :type marketplace_id: object + :type marketplace_id: any :param seller_id: Required. The Amazon seller ID. - :type seller_id: object + :type seller_id: any :param mws_auth_token: The Amazon MWS authentication token. :type mws_auth_token: ~azure.mgmt.datafactory.models.SecretBase :param access_key_id: Required. The access key id used to access data. - :type access_key_id: object + :type access_key_id: any :param secret_key: The secret key used to access data. :type secret_key: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -511,21 +511,21 @@ class AmazonMWSLinkedService(LinkedService): def __init__( self, *, - endpoint: object, - marketplace_id: object, - seller_id: object, - access_key_id: object, - additional_properties: Optional[Dict[str, object]] = None, + endpoint: Any, + marketplace_id: Any, + seller_id: Any, + access_key_id: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, mws_auth_token: Optional["SecretBase"] = None, secret_key: Optional["SecretBase"] = None, - use_encrypted_endpoints: Optional[object] = None, - use_host_verification: Optional[object] = None, - use_peer_verification: Optional[object] = None, - encrypted_credential: Optional[object] = None, + use_encrypted_endpoints: Optional[Any] = None, + use_host_verification: Optional[Any] = None, + use_peer_verification: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(AmazonMWSLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -552,23 +552,23 @@ class Dataset(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder @@ -599,12 +599,12 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, **kwargs ): @@ -627,28 +627,28 @@ class AmazonMWSObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -673,14 +673,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(AmazonMWSObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -698,18 +698,21 @@ class CopySource(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any """ _validation = { @@ -722,6 +725,7 @@ class CopySource(msrest.serialization.Model): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, } _subtype_map = { @@ -731,10 +735,11 @@ class CopySource(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, **kwargs ): super(CopySource, self).__init__(**kwargs) @@ -743,6 +748,7 @@ def __init__( self.source_retry_count = source_retry_count self.source_retry_wait = source_retry_wait self.max_concurrent_connections = max_concurrent_connections + self.disable_metrics_collection = disable_metrics_collection class TabularSource(CopySource): @@ -755,21 +761,24 @@ class TabularSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -785,6 +794,7 @@ class TabularSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -796,15 +806,16 @@ class TabularSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(TabularSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(TabularSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'TabularSource' # type: str self.query_timeout = query_timeout self.additional_columns = additional_columns @@ -817,27 +828,30 @@ class AmazonMWSSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -850,6 +864,7 @@ class AmazonMWSSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -858,16 +873,17 @@ class AmazonMWSSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(AmazonMWSSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(AmazonMWSSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'AmazonMWSSource' # type: str self.query = query @@ -879,7 +895,7 @@ class AmazonRedshiftLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -889,25 +905,25 @@ class AmazonRedshiftLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param server: Required. The name of the Amazon Redshift server. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param username: The username of the Amazon Redshift source. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: The password of the Amazon Redshift source. :type password: ~azure.mgmt.datafactory.models.SecretBase :param database: Required. The database name of the Amazon Redshift source. Type: string (or Expression with resultType string). - :type database: object + :type database: any :param port: The TCP port number that the Amazon Redshift server uses to listen for client connections. The default value is 5439. Type: integer (or Expression with resultType integer). - :type port: object + :type port: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -934,17 +950,17 @@ class AmazonRedshiftLinkedService(LinkedService): def __init__( self, *, - server: object, - database: object, - additional_properties: Optional[Dict[str, object]] = None, + server: Any, + database: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - username: Optional[object] = None, + annotations: Optional[List[Any]] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - port: Optional[object] = None, - encrypted_credential: Optional[object] = None, + port: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(AmazonRedshiftLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -964,26 +980,29 @@ class AmazonRedshiftSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param redshift_unload_settings: The Amazon S3 settings needed for the interim Amazon S3 when copying from Amazon Redshift with unload. With this, data from Amazon Redshift source will be unloaded into S3 first and then copied into the targeted sink from the interim S3. @@ -1000,6 +1019,7 @@ class AmazonRedshiftSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -1009,17 +1029,18 @@ class AmazonRedshiftSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, redshift_unload_settings: Optional["RedshiftUnloadSettings"] = None, **kwargs ): - super(AmazonRedshiftSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(AmazonRedshiftSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'AmazonRedshiftSource' # type: str self.query = query self.redshift_unload_settings = redshift_unload_settings @@ -1032,35 +1053,35 @@ class AmazonRedshiftTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The Amazon Redshift table name. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The Amazon Redshift schema name. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -1087,16 +1108,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - table: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, + table_name: Optional[Any] = None, + table: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, **kwargs ): super(AmazonRedshiftTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -1113,7 +1134,7 @@ class AmazonS3CompatibleLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -1123,10 +1144,10 @@ class AmazonS3CompatibleLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param access_key_id: The access key identifier of the Amazon S3 Compatible Identity and Access Management (IAM) user. Type: string (or Expression with resultType string). - :type access_key_id: object + :type access_key_id: any :param secret_access_key: The secret access key of the Amazon S3 Compatible Identity and Access Management (IAM) user. :type secret_access_key: ~azure.mgmt.datafactory.models.SecretBase @@ -1134,14 +1155,14 @@ class AmazonS3CompatibleLinkedService(LinkedService): Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string). - :type service_url: object + :type service_url: any :param force_path_style: If true, use S3 path-style access instead of virtual hosted-style access. Default value is false. Type: boolean (or Expression with resultType boolean). - :type force_path_style: object + :type force_path_style: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -1165,16 +1186,16 @@ class AmazonS3CompatibleLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - access_key_id: Optional[object] = None, + annotations: Optional[List[Any]] = None, + access_key_id: Optional[Any] = None, secret_access_key: Optional["SecretBase"] = None, - service_url: Optional[object] = None, - force_path_style: Optional[object] = None, - encrypted_credential: Optional[object] = None, + service_url: Optional[Any] = None, + force_path_style: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(AmazonS3CompatibleLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -1196,15 +1217,15 @@ class DatasetLocation(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any """ _validation = { @@ -1225,9 +1246,9 @@ class DatasetLocation(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - folder_path: Optional[object] = None, - file_name: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + folder_path: Optional[Any] = None, + file_name: Optional[Any] = None, **kwargs ): super(DatasetLocation, self).__init__(**kwargs) @@ -1244,21 +1265,21 @@ class AmazonS3CompatibleLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param bucket_name: Specify the bucketName of Amazon S3 Compatible. Type: string (or Expression with resultType string). - :type bucket_name: object + :type bucket_name: any :param version: Specify the version of Amazon S3 Compatible. Type: string (or Expression with resultType string). - :type version: object + :type version: any """ _validation = { @@ -1277,11 +1298,11 @@ class AmazonS3CompatibleLocation(DatasetLocation): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - folder_path: Optional[object] = None, - file_name: Optional[object] = None, - bucket_name: Optional[object] = None, - version: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + folder_path: Optional[Any] = None, + file_name: Optional[Any] = None, + bucket_name: Optional[Any] = None, + version: Optional[Any] = None, **kwargs ): super(AmazonS3CompatibleLocation, self).__init__(additional_properties=additional_properties, folder_path=folder_path, file_name=file_name, **kwargs) @@ -1300,12 +1321,15 @@ class StoreReadSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any """ _validation = { @@ -1316,6 +1340,7 @@ class StoreReadSettings(msrest.serialization.Model): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, } _subtype_map = { @@ -1325,14 +1350,16 @@ class StoreReadSettings(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, **kwargs ): super(StoreReadSettings, self).__init__(**kwargs) self.additional_properties = additional_properties self.type = 'StoreReadSettings' # type: str self.max_concurrent_connections = max_concurrent_connections + self.disable_metrics_collection = disable_metrics_collection class AmazonS3CompatibleReadSettings(StoreReadSettings): @@ -1342,42 +1369,45 @@ class AmazonS3CompatibleReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: Amazon S3 Compatible wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: Amazon S3 Compatible wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param prefix: The prefix filter for the S3 Compatible object name. Type: string (or Expression with resultType string). - :type prefix: object + :type prefix: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -1388,6 +1418,7 @@ class AmazonS3CompatibleReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -1403,21 +1434,22 @@ class AmazonS3CompatibleReadSettings(StoreReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - recursive: Optional[object] = None, - wildcard_folder_path: Optional[object] = None, - wildcard_file_name: Optional[object] = None, - prefix: Optional[object] = None, - file_list_path: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + recursive: Optional[Any] = None, + wildcard_folder_path: Optional[Any] = None, + wildcard_file_name: Optional[Any] = None, + prefix: Optional[Any] = None, + file_list_path: Optional[Any] = None, enable_partition_discovery: Optional[bool] = None, - partition_root_path: Optional[object] = None, - delete_files_after_completion: Optional[object] = None, - modified_datetime_start: Optional[object] = None, - modified_datetime_end: Optional[object] = None, + partition_root_path: Optional[Any] = None, + delete_files_after_completion: Optional[Any] = None, + modified_datetime_start: Optional[Any] = None, + modified_datetime_end: Optional[Any] = None, **kwargs ): - super(AmazonS3CompatibleReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AmazonS3CompatibleReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AmazonS3CompatibleReadSettings' # type: str self.recursive = recursive self.wildcard_folder_path = wildcard_folder_path @@ -1438,44 +1470,44 @@ class AmazonS3Dataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param bucket_name: Required. The name of the Amazon S3 bucket. Type: string (or Expression with resultType string). - :type bucket_name: object + :type bucket_name: any :param key: The key of the Amazon S3 object. Type: string (or Expression with resultType string). - :type key: object + :type key: any :param prefix: The prefix filter for the S3 object name. Type: string (or Expression with resultType string). - :type prefix: object + :type prefix: any :param version: The version for the S3 object. Type: string (or Expression with resultType string). - :type version: object + :type version: any :param modified_datetime_start: The start of S3 object's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of S3 object's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any :param format: The format of files. :type format: ~azure.mgmt.datafactory.models.DatasetStorageFormat :param compression: The data compression method used for the Amazon S3 object. @@ -1512,19 +1544,19 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - bucket_name: object, - additional_properties: Optional[Dict[str, object]] = None, + bucket_name: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - key: Optional[object] = None, - prefix: Optional[object] = None, - version: Optional[object] = None, - modified_datetime_start: Optional[object] = None, - modified_datetime_end: Optional[object] = None, + key: Optional[Any] = None, + prefix: Optional[Any] = None, + version: Optional[Any] = None, + modified_datetime_start: Optional[Any] = None, + modified_datetime_end: Optional[Any] = None, format: Optional["DatasetStorageFormat"] = None, compression: Optional["DatasetCompression"] = None, **kwargs @@ -1548,7 +1580,7 @@ class AmazonS3LinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -1558,26 +1590,26 @@ class AmazonS3LinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param authentication_type: The authentication type of S3. Allowed value: AccessKey (default) or TemporarySecurityCredentials. Type: string (or Expression with resultType string). - :type authentication_type: object + :type authentication_type: any :param access_key_id: The access key identifier of the Amazon S3 Identity and Access Management (IAM) user. Type: string (or Expression with resultType string). - :type access_key_id: object + :type access_key_id: any :param secret_access_key: The secret access key of the Amazon S3 Identity and Access Management (IAM) user. :type secret_access_key: ~azure.mgmt.datafactory.models.SecretBase :param service_url: This value specifies the endpoint to access with the S3 Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string). - :type service_url: object + :type service_url: any :param session_token: The session token for the S3 temporary security credential. :type session_token: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -1602,17 +1634,17 @@ class AmazonS3LinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - authentication_type: Optional[object] = None, - access_key_id: Optional[object] = None, + annotations: Optional[List[Any]] = None, + authentication_type: Optional[Any] = None, + access_key_id: Optional[Any] = None, secret_access_key: Optional["SecretBase"] = None, - service_url: Optional[object] = None, + service_url: Optional[Any] = None, session_token: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(AmazonS3LinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -1632,21 +1664,21 @@ class AmazonS3Location(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param bucket_name: Specify the bucketName of amazon S3. Type: string (or Expression with resultType string). - :type bucket_name: object + :type bucket_name: any :param version: Specify the version of amazon S3. Type: string (or Expression with resultType string). - :type version: object + :type version: any """ _validation = { @@ -1665,11 +1697,11 @@ class AmazonS3Location(DatasetLocation): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - folder_path: Optional[object] = None, - file_name: Optional[object] = None, - bucket_name: Optional[object] = None, - version: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + folder_path: Optional[Any] = None, + file_name: Optional[Any] = None, + bucket_name: Optional[Any] = None, + version: Optional[Any] = None, **kwargs ): super(AmazonS3Location, self).__init__(additional_properties=additional_properties, folder_path=folder_path, file_name=file_name, **kwargs) @@ -1685,42 +1717,45 @@ class AmazonS3ReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: AmazonS3 wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: AmazonS3 wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param prefix: The prefix filter for the S3 object name. Type: string (or Expression with resultType string). - :type prefix: object + :type prefix: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -1731,6 +1766,7 @@ class AmazonS3ReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -1746,21 +1782,22 @@ class AmazonS3ReadSettings(StoreReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - recursive: Optional[object] = None, - wildcard_folder_path: Optional[object] = None, - wildcard_file_name: Optional[object] = None, - prefix: Optional[object] = None, - file_list_path: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + recursive: Optional[Any] = None, + wildcard_folder_path: Optional[Any] = None, + wildcard_file_name: Optional[Any] = None, + prefix: Optional[Any] = None, + file_list_path: Optional[Any] = None, enable_partition_discovery: Optional[bool] = None, - partition_root_path: Optional[object] = None, - delete_files_after_completion: Optional[object] = None, - modified_datetime_start: Optional[object] = None, - modified_datetime_end: Optional[object] = None, + partition_root_path: Optional[Any] = None, + delete_files_after_completion: Optional[Any] = None, + modified_datetime_start: Optional[Any] = None, + modified_datetime_end: Optional[Any] = None, **kwargs ): - super(AmazonS3ReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AmazonS3ReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AmazonS3ReadSettings' # type: str self.recursive = recursive self.wildcard_folder_path = wildcard_folder_path @@ -1774,14 +1811,69 @@ def __init__( self.modified_datetime_end = modified_datetime_end -class AppendVariableActivity(Activity): +class ControlActivity(Activity): + """Base class for all control activities like IfCondition, ForEach , Until. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: AppendVariableActivity, ExecutePipelineActivity, FilterActivity, ForEachActivity, IfConditionActivity, SetVariableActivity, SwitchActivity, UntilActivity, ValidationActivity, WaitActivity, WebHookActivity. + + 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, any] + :param name: Required. Activity name. + :type name: str + :param type: Required. Type of activity.Constant filled by server. + :type type: str + :param description: Activity description. + :type description: str + :param depends_on: Activity depends on condition. + :type depends_on: list[~azure.mgmt.datafactory.models.ActivityDependency] + :param user_properties: Activity user properties. + :type user_properties: list[~azure.mgmt.datafactory.models.UserProperty] + """ + + _validation = { + 'name': {'required': True}, + 'type': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'depends_on': {'key': 'dependsOn', 'type': '[ActivityDependency]'}, + 'user_properties': {'key': 'userProperties', 'type': '[UserProperty]'}, + } + + _subtype_map = { + 'type': {'AppendVariable': 'AppendVariableActivity', 'ExecutePipeline': 'ExecutePipelineActivity', 'Filter': 'FilterActivity', 'ForEach': 'ForEachActivity', 'IfCondition': 'IfConditionActivity', 'SetVariable': 'SetVariableActivity', 'Switch': 'SwitchActivity', 'Until': 'UntilActivity', 'Validation': 'ValidationActivity', 'Wait': 'WaitActivity', 'WebHook': 'WebHookActivity'} + } + + def __init__( + self, + *, + name: str, + additional_properties: Optional[Dict[str, Any]] = None, + description: Optional[str] = None, + depends_on: Optional[List["ActivityDependency"]] = None, + user_properties: Optional[List["UserProperty"]] = None, + **kwargs + ): + super(ControlActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, **kwargs) + self.type = 'Container' # type: str + + +class AppendVariableActivity(ControlActivity): """Append value for a Variable of type Array. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -1795,7 +1887,7 @@ class AppendVariableActivity(Activity): :param variable_name: Name of the variable whose value needs to be appended to. :type variable_name: str :param value: Value to be appended. Could be a static value or Expression. - :type value: object + :type value: any """ _validation = { @@ -1818,12 +1910,12 @@ def __init__( self, *, name: str, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, variable_name: Optional[str] = None, - value: Optional[object] = None, + value: Optional[Any] = None, **kwargs ): super(AppendVariableActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, **kwargs) @@ -1832,6 +1924,31 @@ def __init__( self.value = value +class ArmIdWrapper(msrest.serialization.Model): + """A wrapper for an ARM resource id. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: + :vartype id: str + """ + + _validation = { + 'id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ArmIdWrapper, self).__init__(**kwargs) + self.id = None + + class AvroDataset(Dataset): """Avro dataset. @@ -1839,31 +1956,31 @@ class AvroDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param location: The location of the avro storage. :type location: ~azure.mgmt.datafactory.models.DatasetLocation - :param avro_compression_codec: Possible values include: "none", "deflate", "snappy", "xz", - "bzip2". - :type avro_compression_codec: str or ~azure.mgmt.datafactory.models.AvroCompressionCodec + :param avro_compression_codec: The data avroCompressionCodec. Type: string (or Expression with + resultType string). + :type avro_compression_codec: any :param avro_compression_level: :type avro_compression_level: int """ @@ -1885,7 +2002,7 @@ class AvroDataset(Dataset): 'annotations': {'key': 'annotations', 'type': '[object]'}, 'folder': {'key': 'folder', 'type': 'DatasetFolder'}, 'location': {'key': 'typeProperties.location', 'type': 'DatasetLocation'}, - 'avro_compression_codec': {'key': 'typeProperties.avroCompressionCodec', 'type': 'str'}, + 'avro_compression_codec': {'key': 'typeProperties.avroCompressionCodec', 'type': 'object'}, 'avro_compression_level': {'key': 'typeProperties.avroCompressionLevel', 'type': 'int'}, } @@ -1893,15 +2010,15 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, location: Optional["DatasetLocation"] = None, - avro_compression_codec: Optional[Union[str, "AvroCompressionCodec"]] = None, + avro_compression_codec: Optional[Any] = None, avro_compression_level: Optional[int] = None, **kwargs ): @@ -1922,13 +2039,13 @@ class DatasetStorageFormat(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage format.Constant filled by server. :type type: str :param serializer: Serializer. Type: string (or Expression with resultType string). - :type serializer: object + :type serializer: any :param deserializer: Deserializer. Type: string (or Expression with resultType string). - :type deserializer: object + :type deserializer: any """ _validation = { @@ -1949,9 +2066,9 @@ class DatasetStorageFormat(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - serializer: Optional[object] = None, - deserializer: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + serializer: Optional[Any] = None, + deserializer: Optional[Any] = None, **kwargs ): super(DatasetStorageFormat, self).__init__(**kwargs) @@ -1968,13 +2085,13 @@ class AvroFormat(DatasetStorageFormat): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage format.Constant filled by server. :type type: str :param serializer: Serializer. Type: string (or Expression with resultType string). - :type serializer: object + :type serializer: any :param deserializer: Deserializer. Type: string (or Expression with resultType string). - :type deserializer: object + :type deserializer: any """ _validation = { @@ -1991,9 +2108,9 @@ class AvroFormat(DatasetStorageFormat): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - serializer: Optional[object] = None, - deserializer: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + serializer: Optional[Any] = None, + deserializer: Optional[Any] = None, **kwargs ): super(AvroFormat, self).__init__(additional_properties=additional_properties, serializer=serializer, deserializer=deserializer, **kwargs) @@ -2004,30 +2121,33 @@ class CopySink(msrest.serialization.Model): """A copy activity sink. You probably want to use the sub-classes and not this class directly. Known - sub-classes are: AvroSink, AzureBlobFSSink, AzureDataExplorerSink, AzureDataLakeStoreSink, AzureDatabricksDeltaLakeSink, AzureMySqlSink, AzurePostgreSqlSink, AzureQueueSink, AzureSearchIndexSink, AzureSqlSink, AzureTableSink, BinarySink, BlobSink, CommonDataServiceForAppsSink, CosmosDbMongoDbApiSink, CosmosDbSqlApiSink, DelimitedTextSink, DocumentDbCollectionSink, DynamicsCrmSink, DynamicsSink, FileSystemSink, InformixSink, JsonSink, MicrosoftAccessSink, OdbcSink, OracleSink, OrcSink, ParquetSink, RestSink, SalesforceServiceCloudSink, SalesforceSink, SapCloudForCustomerSink, SnowflakeSink, SqlDWSink, SqlMISink, SqlServerSink, SqlSink. + sub-classes are: AvroSink, AzureBlobFSSink, AzureDataExplorerSink, AzureDataLakeStoreSink, AzureDatabricksDeltaLakeSink, AzureMySqlSink, AzurePostgreSqlSink, AzureQueueSink, AzureSearchIndexSink, AzureSqlSink, AzureTableSink, BinarySink, BlobSink, CommonDataServiceForAppsSink, CosmosDbMongoDbApiSink, CosmosDbSqlApiSink, DelimitedTextSink, DocumentDbCollectionSink, DynamicsCrmSink, DynamicsSink, FileSystemSink, InformixSink, JsonSink, MicrosoftAccessSink, MongoDbAtlasSink, MongoDbV2Sink, OdbcSink, OracleSink, OrcSink, ParquetSink, RestSink, SalesforceServiceCloudSink, SalesforceSink, SapCloudForCustomerSink, SnowflakeSink, SqlDWSink, SqlMISink, SqlServerSink, SqlSink. 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] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any """ _validation = { @@ -2042,21 +2162,23 @@ class CopySink(msrest.serialization.Model): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, } _subtype_map = { - 'type': {'AvroSink': 'AvroSink', 'AzureBlobFSSink': 'AzureBlobFSSink', 'AzureDataExplorerSink': 'AzureDataExplorerSink', 'AzureDataLakeStoreSink': 'AzureDataLakeStoreSink', 'AzureDatabricksDeltaLakeSink': 'AzureDatabricksDeltaLakeSink', 'AzureMySqlSink': 'AzureMySqlSink', 'AzurePostgreSqlSink': 'AzurePostgreSqlSink', 'AzureQueueSink': 'AzureQueueSink', 'AzureSearchIndexSink': 'AzureSearchIndexSink', 'AzureSqlSink': 'AzureSqlSink', 'AzureTableSink': 'AzureTableSink', 'BinarySink': 'BinarySink', 'BlobSink': 'BlobSink', 'CommonDataServiceForAppsSink': 'CommonDataServiceForAppsSink', 'CosmosDbMongoDbApiSink': 'CosmosDbMongoDbApiSink', 'CosmosDbSqlApiSink': 'CosmosDbSqlApiSink', 'DelimitedTextSink': 'DelimitedTextSink', 'DocumentDbCollectionSink': 'DocumentDbCollectionSink', 'DynamicsCrmSink': 'DynamicsCrmSink', 'DynamicsSink': 'DynamicsSink', 'FileSystemSink': 'FileSystemSink', 'InformixSink': 'InformixSink', 'JsonSink': 'JsonSink', 'MicrosoftAccessSink': 'MicrosoftAccessSink', 'OdbcSink': 'OdbcSink', 'OracleSink': 'OracleSink', 'OrcSink': 'OrcSink', 'ParquetSink': 'ParquetSink', 'RestSink': 'RestSink', 'SalesforceServiceCloudSink': 'SalesforceServiceCloudSink', 'SalesforceSink': 'SalesforceSink', 'SapCloudForCustomerSink': 'SapCloudForCustomerSink', 'SnowflakeSink': 'SnowflakeSink', 'SqlDWSink': 'SqlDWSink', 'SqlMISink': 'SqlMISink', 'SqlServerSink': 'SqlServerSink', 'SqlSink': 'SqlSink'} + 'type': {'AvroSink': 'AvroSink', 'AzureBlobFSSink': 'AzureBlobFSSink', 'AzureDataExplorerSink': 'AzureDataExplorerSink', 'AzureDataLakeStoreSink': 'AzureDataLakeStoreSink', 'AzureDatabricksDeltaLakeSink': 'AzureDatabricksDeltaLakeSink', 'AzureMySqlSink': 'AzureMySqlSink', 'AzurePostgreSqlSink': 'AzurePostgreSqlSink', 'AzureQueueSink': 'AzureQueueSink', 'AzureSearchIndexSink': 'AzureSearchIndexSink', 'AzureSqlSink': 'AzureSqlSink', 'AzureTableSink': 'AzureTableSink', 'BinarySink': 'BinarySink', 'BlobSink': 'BlobSink', 'CommonDataServiceForAppsSink': 'CommonDataServiceForAppsSink', 'CosmosDbMongoDbApiSink': 'CosmosDbMongoDbApiSink', 'CosmosDbSqlApiSink': 'CosmosDbSqlApiSink', 'DelimitedTextSink': 'DelimitedTextSink', 'DocumentDbCollectionSink': 'DocumentDbCollectionSink', 'DynamicsCrmSink': 'DynamicsCrmSink', 'DynamicsSink': 'DynamicsSink', 'FileSystemSink': 'FileSystemSink', 'InformixSink': 'InformixSink', 'JsonSink': 'JsonSink', 'MicrosoftAccessSink': 'MicrosoftAccessSink', 'MongoDbAtlasSink': 'MongoDbAtlasSink', 'MongoDbV2Sink': 'MongoDbV2Sink', 'OdbcSink': 'OdbcSink', 'OracleSink': 'OracleSink', 'OrcSink': 'OrcSink', 'ParquetSink': 'ParquetSink', 'RestSink': 'RestSink', 'SalesforceServiceCloudSink': 'SalesforceServiceCloudSink', 'SalesforceSink': 'SalesforceSink', 'SapCloudForCustomerSink': 'SapCloudForCustomerSink', 'SnowflakeSink': 'SnowflakeSink', 'SqlDWSink': 'SqlDWSink', 'SqlMISink': 'SqlMISink', 'SqlServerSink': 'SqlServerSink', 'SqlSink': 'SqlSink'} } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, **kwargs ): super(CopySink, self).__init__(**kwargs) @@ -2067,6 +2189,7 @@ def __init__( self.sink_retry_count = sink_retry_count self.sink_retry_wait = sink_retry_wait self.max_concurrent_connections = max_concurrent_connections + self.disable_metrics_collection = disable_metrics_collection class AvroSink(CopySink): @@ -2076,24 +2199,27 @@ class AvroSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Avro store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreWriteSettings :param format_settings: Avro format settings. @@ -2112,6 +2238,7 @@ class AvroSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreWriteSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'AvroWriteSettings'}, } @@ -2119,17 +2246,18 @@ class AvroSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, store_settings: Optional["StoreWriteSettings"] = None, format_settings: Optional["AvroWriteSettings"] = None, **kwargs ): - super(AvroSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AvroSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AvroSink' # type: str self.store_settings = store_settings self.format_settings = format_settings @@ -2142,18 +2270,21 @@ class AvroSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Avro store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param additional_columns: Specifies the additional columns to be added to source data. Type: @@ -2171,6 +2302,7 @@ class AvroSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreReadSettings'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -2178,15 +2310,16 @@ class AvroSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, store_settings: Optional["StoreReadSettings"] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(AvroSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AvroSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AvroSource' # type: str self.store_settings = store_settings self.additional_columns = additional_columns @@ -2202,7 +2335,7 @@ class FormatWriteSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str """ @@ -2223,7 +2356,7 @@ class FormatWriteSettings(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(FormatWriteSettings, self).__init__(**kwargs) @@ -2238,7 +2371,7 @@ class AvroWriteSettings(FormatWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param record_name: Top level record name in write result, which is required in AVRO spec. @@ -2247,11 +2380,11 @@ class AvroWriteSettings(FormatWriteSettings): :type record_namespace: str :param max_rows_per_file: Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer). - :type max_rows_per_file: object + :type max_rows_per_file: any :param file_name_prefix: Specifies the file name pattern :code:``_:code:``.:code:`` when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string). - :type file_name_prefix: object + :type file_name_prefix: any """ _validation = { @@ -2270,11 +2403,11 @@ class AvroWriteSettings(FormatWriteSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, record_name: Optional[str] = None, record_namespace: Optional[str] = None, - max_rows_per_file: Optional[object] = None, - file_name_prefix: Optional[object] = None, + max_rows_per_file: Optional[Any] = None, + file_name_prefix: Optional[Any] = None, **kwargs ): super(AvroWriteSettings, self).__init__(additional_properties=additional_properties, **kwargs) @@ -2356,7 +2489,7 @@ class AzureBatchLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -2366,24 +2499,26 @@ class AzureBatchLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param account_name: Required. The Azure Batch account name. Type: string (or Expression with resultType string). - :type account_name: object + :type account_name: any :param access_key: The Azure Batch account access key. :type access_key: ~azure.mgmt.datafactory.models.SecretBase :param batch_uri: Required. The Azure Batch URI. Type: string (or Expression with resultType string). - :type batch_uri: object + :type batch_uri: any :param pool_name: Required. The Azure Batch pool name. Type: string (or Expression with resultType string). - :type pool_name: object + :type pool_name: any :param linked_service_name: Required. The Azure Storage linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -2407,22 +2542,24 @@ class AzureBatchLinkedService(LinkedService): 'pool_name': {'key': 'typeProperties.poolName', 'type': 'object'}, 'linked_service_name': {'key': 'typeProperties.linkedServiceName', 'type': 'LinkedServiceReference'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( self, *, - account_name: object, - batch_uri: object, - pool_name: object, + account_name: Any, + batch_uri: Any, + pool_name: Any, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, access_key: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, + credential: Optional["CredentialReference"] = None, **kwargs ): super(AzureBatchLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -2433,6 +2570,7 @@ def __init__( self.pool_name = pool_name self.linked_service_name = linked_service_name self.encrypted_credential = encrypted_credential + self.credential = credential class AzureBlobDataset(Dataset): @@ -2442,41 +2580,41 @@ class AzureBlobDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param folder_path: The path of the Azure Blob storage. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param table_root_location: The root of blob path. Type: string (or Expression with resultType string). - :type table_root_location: object + :type table_root_location: any :param file_name: The name of the Azure Blob. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param modified_datetime_start: The start of Azure Blob's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of Azure Blob's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any :param format: The format of the Azure Blob storage. :type format: ~azure.mgmt.datafactory.models.DatasetStorageFormat :param compression: The data compression method used for the blob storage. @@ -2511,18 +2649,18 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - folder_path: Optional[object] = None, - table_root_location: Optional[object] = None, - file_name: Optional[object] = None, - modified_datetime_start: Optional[object] = None, - modified_datetime_end: Optional[object] = None, + folder_path: Optional[Any] = None, + table_root_location: Optional[Any] = None, + file_name: Optional[Any] = None, + modified_datetime_start: Optional[Any] = None, + modified_datetime_end: Optional[Any] = None, format: Optional["DatasetStorageFormat"] = None, compression: Optional["DatasetCompression"] = None, **kwargs @@ -2545,32 +2683,32 @@ class AzureBlobFSDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param folder_path: The path of the Azure Data Lake Storage Gen2 storage. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: The name of the Azure Data Lake Storage Gen2. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param format: The format of the Azure Data Lake Storage Gen2 storage. :type format: ~azure.mgmt.datafactory.models.DatasetStorageFormat :param compression: The data compression method used for the blob storage. @@ -2602,15 +2740,15 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - folder_path: Optional[object] = None, - file_name: Optional[object] = None, + folder_path: Optional[Any] = None, + file_name: Optional[Any] = None, format: Optional["DatasetStorageFormat"] = None, compression: Optional["DatasetCompression"] = None, **kwargs @@ -2630,7 +2768,7 @@ class AzureBlobFSLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -2640,30 +2778,32 @@ class AzureBlobFSLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. Endpoint for the Azure Data Lake Storage Gen2 service. Type: string (or Expression with resultType string). - :type url: object + :type url: any :param account_key: Account key for the Azure Data Lake Storage Gen2 service. Type: string (or Expression with resultType string). - :type account_key: object + :type account_key: any :param service_principal_id: The ID of the application used to authenticate against the Azure Data Lake Storage Gen2 account. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The Key of the application used to authenticate against the Azure Data Lake Storage Gen2 account. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -2685,23 +2825,25 @@ class AzureBlobFSLinkedService(LinkedService): 'tenant': {'key': 'typeProperties.tenant', 'type': 'object'}, 'azure_cloud_type': {'key': 'typeProperties.azureCloudType', 'type': 'object'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( self, *, - url: object, - additional_properties: Optional[Dict[str, object]] = None, + url: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - account_key: Optional[object] = None, - service_principal_id: Optional[object] = None, + annotations: Optional[List[Any]] = None, + account_key: Optional[Any] = None, + service_principal_id: Optional[Any] = None, service_principal_key: Optional["SecretBase"] = None, - tenant: Optional[object] = None, - azure_cloud_type: Optional[object] = None, - encrypted_credential: Optional[object] = None, + tenant: Optional[Any] = None, + azure_cloud_type: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, + credential: Optional["CredentialReference"] = None, **kwargs ): super(AzureBlobFSLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -2713,6 +2855,7 @@ def __init__( self.tenant = tenant self.azure_cloud_type = azure_cloud_type self.encrypted_credential = encrypted_credential + self.credential = credential class AzureBlobFSLocation(DatasetLocation): @@ -2722,18 +2865,18 @@ class AzureBlobFSLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param file_system: Specify the fileSystem of azure blobFS. Type: string (or Expression with resultType string). - :type file_system: object + :type file_system: any """ _validation = { @@ -2751,10 +2894,10 @@ class AzureBlobFSLocation(DatasetLocation): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - folder_path: Optional[object] = None, - file_name: Optional[object] = None, - file_system: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + folder_path: Optional[Any] = None, + file_name: Optional[Any] = None, + file_system: Optional[Any] = None, **kwargs ): super(AzureBlobFSLocation, self).__init__(additional_properties=additional_properties, folder_path=folder_path, file_name=file_name, **kwargs) @@ -2769,39 +2912,42 @@ class AzureBlobFSReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: Azure blobFS wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: Azure blobFS wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -2812,6 +2958,7 @@ class AzureBlobFSReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -2826,20 +2973,21 @@ class AzureBlobFSReadSettings(StoreReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - recursive: Optional[object] = None, - wildcard_folder_path: Optional[object] = None, - wildcard_file_name: Optional[object] = None, - file_list_path: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + recursive: Optional[Any] = None, + wildcard_folder_path: Optional[Any] = None, + wildcard_file_name: Optional[Any] = None, + file_list_path: Optional[Any] = None, enable_partition_discovery: Optional[bool] = None, - partition_root_path: Optional[object] = None, - delete_files_after_completion: Optional[object] = None, - modified_datetime_start: Optional[object] = None, - modified_datetime_end: Optional[object] = None, + partition_root_path: Optional[Any] = None, + delete_files_after_completion: Optional[Any] = None, + modified_datetime_start: Optional[Any] = None, + modified_datetime_end: Optional[Any] = None, **kwargs ): - super(AzureBlobFSReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzureBlobFSReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzureBlobFSReadSettings' # type: str self.recursive = recursive self.wildcard_folder_path = wildcard_folder_path @@ -2859,26 +3007,32 @@ class AzureBlobFSSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any + :param metadata: Specify the custom metadata to be added to sink data. Type: array of objects + (or Expression with resultType array of objects). + :type metadata: list[~azure.mgmt.datafactory.models.MetadataItem] """ _validation = { @@ -2893,24 +3047,29 @@ class AzureBlobFSSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - copy_behavior: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + copy_behavior: Optional[Any] = None, + metadata: Optional[List["MetadataItem"]] = None, **kwargs ): - super(AzureBlobFSSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzureBlobFSSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzureBlobFSSink' # type: str self.copy_behavior = copy_behavior + self.metadata = metadata class AzureBlobFSSource(CopySource): @@ -2920,27 +3079,30 @@ class AzureBlobFSSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param treat_empty_as_null: Treat empty as null. Type: boolean (or Expression with resultType boolean). - :type treat_empty_as_null: object + :type treat_empty_as_null: any :param skip_header_line_count: Number of header lines to skip from each blob. Type: integer (or Expression with resultType integer). - :type skip_header_line_count: object + :type skip_header_line_count: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any """ _validation = { @@ -2953,6 +3115,7 @@ class AzureBlobFSSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'treat_empty_as_null': {'key': 'treatEmptyAsNull', 'type': 'object'}, 'skip_header_line_count': {'key': 'skipHeaderLineCount', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, @@ -2961,16 +3124,17 @@ class AzureBlobFSSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - treat_empty_as_null: Optional[object] = None, - skip_header_line_count: Optional[object] = None, - recursive: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + treat_empty_as_null: Optional[Any] = None, + skip_header_line_count: Optional[Any] = None, + recursive: Optional[Any] = None, **kwargs ): - super(AzureBlobFSSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzureBlobFSSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzureBlobFSSource' # type: str self.treat_empty_as_null = treat_empty_as_null self.skip_header_line_count = skip_header_line_count @@ -2987,14 +3151,17 @@ class StoreWriteSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any """ _validation = { @@ -3005,6 +3172,7 @@ class StoreWriteSettings(msrest.serialization.Model): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, } @@ -3015,15 +3183,17 @@ class StoreWriteSettings(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - copy_behavior: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + copy_behavior: Optional[Any] = None, **kwargs ): super(StoreWriteSettings, self).__init__(**kwargs) self.additional_properties = additional_properties self.type = 'StoreWriteSettings' # type: str self.max_concurrent_connections = max_concurrent_connections + self.disable_metrics_collection = disable_metrics_collection self.copy_behavior = copy_behavior @@ -3034,17 +3204,20 @@ class AzureBlobFSWriteSettings(StoreWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any :param block_size_in_mb: Indicates the block size(MB) when writing data to blob. Type: integer (or Expression with resultType integer). - :type block_size_in_mb: object + :type block_size_in_mb: any """ _validation = { @@ -3055,6 +3228,7 @@ class AzureBlobFSWriteSettings(StoreWriteSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, 'block_size_in_mb': {'key': 'blockSizeInMB', 'type': 'object'}, } @@ -3062,13 +3236,14 @@ class AzureBlobFSWriteSettings(StoreWriteSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - copy_behavior: Optional[object] = None, - block_size_in_mb: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + copy_behavior: Optional[Any] = None, + block_size_in_mb: Optional[Any] = None, **kwargs ): - super(AzureBlobFSWriteSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, copy_behavior=copy_behavior, **kwargs) + super(AzureBlobFSWriteSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, copy_behavior=copy_behavior, **kwargs) self.type = 'AzureBlobFSWriteSettings' # type: str self.block_size_in_mb = block_size_in_mb @@ -3080,7 +3255,7 @@ class AzureBlobStorageLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -3090,16 +3265,16 @@ class AzureBlobStorageLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: The connection string. It is mutually exclusive with sasUri, serviceEndpoint property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param account_key: The Azure key vault secret reference of accountKey in connection string. :type account_key: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param sas_uri: SAS URI of the Azure Blob Storage resource. It is mutually exclusive with connectionString, serviceEndpoint property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type sas_uri: object + :type sas_uri: any :param sas_token: The Azure key vault secret reference of sasToken in sas uri. :type sas_token: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param service_endpoint: Blob service endpoint of the Azure Blob Storage resource. It is @@ -3107,17 +3282,17 @@ class AzureBlobStorageLinkedService(LinkedService): :type service_endpoint: str :param service_principal_id: The ID of the service principal used to authenticate against Azure SQL Data Warehouse. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The key of the service principal used to authenticate against Azure SQL Data Warehouse. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param account_kind: Specify the kind of your storage account. Allowed values are: Storage (general purpose v1), StorageV2 (general purpose v2), BlobStorage, or BlockBlobStorage. Type: string (or Expression with resultType string). @@ -3126,6 +3301,8 @@ class AzureBlobStorageLinkedService(LinkedService): encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). :type encrypted_credential: str + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -3150,27 +3327,29 @@ class AzureBlobStorageLinkedService(LinkedService): 'azure_cloud_type': {'key': 'typeProperties.azureCloudType', 'type': 'object'}, 'account_kind': {'key': 'typeProperties.accountKind', 'type': 'str'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'str'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_string: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_string: Optional[Any] = None, account_key: Optional["AzureKeyVaultSecretReference"] = None, - sas_uri: Optional[object] = None, + sas_uri: Optional[Any] = None, sas_token: Optional["AzureKeyVaultSecretReference"] = None, service_endpoint: Optional[str] = None, - service_principal_id: Optional[object] = None, + service_principal_id: Optional[Any] = None, service_principal_key: Optional["SecretBase"] = None, - tenant: Optional[object] = None, - azure_cloud_type: Optional[object] = None, + tenant: Optional[Any] = None, + azure_cloud_type: Optional[Any] = None, account_kind: Optional[str] = None, encrypted_credential: Optional[str] = None, + credential: Optional["CredentialReference"] = None, **kwargs ): super(AzureBlobStorageLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -3186,6 +3365,7 @@ def __init__( self.azure_cloud_type = azure_cloud_type self.account_kind = account_kind self.encrypted_credential = encrypted_credential + self.credential = credential class AzureBlobStorageLocation(DatasetLocation): @@ -3195,18 +3375,18 @@ class AzureBlobStorageLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param container: Specify the container of azure blob. Type: string (or Expression with resultType string). - :type container: object + :type container: any """ _validation = { @@ -3224,10 +3404,10 @@ class AzureBlobStorageLocation(DatasetLocation): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - folder_path: Optional[object] = None, - file_name: Optional[object] = None, - container: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + folder_path: Optional[Any] = None, + file_name: Optional[Any] = None, + container: Optional[Any] = None, **kwargs ): super(AzureBlobStorageLocation, self).__init__(additional_properties=additional_properties, folder_path=folder_path, file_name=file_name, **kwargs) @@ -3242,42 +3422,45 @@ class AzureBlobStorageReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: Azure blob wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: Azure blob wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param prefix: The prefix filter for the Azure Blob name. Type: string (or Expression with resultType string). - :type prefix: object + :type prefix: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -3288,6 +3471,7 @@ class AzureBlobStorageReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -3303,21 +3487,22 @@ class AzureBlobStorageReadSettings(StoreReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - recursive: Optional[object] = None, - wildcard_folder_path: Optional[object] = None, - wildcard_file_name: Optional[object] = None, - prefix: Optional[object] = None, - file_list_path: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + recursive: Optional[Any] = None, + wildcard_folder_path: Optional[Any] = None, + wildcard_file_name: Optional[Any] = None, + prefix: Optional[Any] = None, + file_list_path: Optional[Any] = None, enable_partition_discovery: Optional[bool] = None, - partition_root_path: Optional[object] = None, - delete_files_after_completion: Optional[object] = None, - modified_datetime_start: Optional[object] = None, - modified_datetime_end: Optional[object] = None, + partition_root_path: Optional[Any] = None, + delete_files_after_completion: Optional[Any] = None, + modified_datetime_start: Optional[Any] = None, + modified_datetime_end: Optional[Any] = None, **kwargs ): - super(AzureBlobStorageReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzureBlobStorageReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzureBlobStorageReadSettings' # type: str self.recursive = recursive self.wildcard_folder_path = wildcard_folder_path @@ -3338,17 +3523,20 @@ class AzureBlobStorageWriteSettings(StoreWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any :param block_size_in_mb: Indicates the block size(MB) when writing data to blob. Type: integer (or Expression with resultType integer). - :type block_size_in_mb: object + :type block_size_in_mb: any """ _validation = { @@ -3359,6 +3547,7 @@ class AzureBlobStorageWriteSettings(StoreWriteSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, 'block_size_in_mb': {'key': 'blockSizeInMB', 'type': 'object'}, } @@ -3366,13 +3555,14 @@ class AzureBlobStorageWriteSettings(StoreWriteSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - copy_behavior: Optional[object] = None, - block_size_in_mb: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + copy_behavior: Optional[Any] = None, + block_size_in_mb: Optional[Any] = None, **kwargs ): - super(AzureBlobStorageWriteSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, copy_behavior=copy_behavior, **kwargs) + super(AzureBlobStorageWriteSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, copy_behavior=copy_behavior, **kwargs) self.type = 'AzureBlobStorageWriteSettings' # type: str self.block_size_in_mb = block_size_in_mb @@ -3384,31 +3574,31 @@ class AzureDatabricksDeltaLakeDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table: The name of delta table. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param database: The database name of delta table. Type: string (or Expression with resultType string). - :type database: object + :type database: any """ _validation = { @@ -3434,15 +3624,15 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table: Optional[object] = None, - database: Optional[object] = None, + table: Optional[Any] = None, + database: Optional[Any] = None, **kwargs ): super(AzureDatabricksDeltaLakeDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -3461,7 +3651,7 @@ class ExportSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The export setting type.Constant filled by server. :type type: str """ @@ -3482,7 +3672,7 @@ class ExportSettings(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(ExportSettings, self).__init__(**kwargs) @@ -3497,15 +3687,15 @@ class AzureDatabricksDeltaLakeExportCommand(ExportSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The export setting type.Constant filled by server. :type type: str :param date_format: Specify the date format for the csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string). - :type date_format: object + :type date_format: any :param timestamp_format: Specify the timestamp format for the csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string). - :type timestamp_format: object + :type timestamp_format: any """ _validation = { @@ -3522,9 +3712,9 @@ class AzureDatabricksDeltaLakeExportCommand(ExportSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - date_format: Optional[object] = None, - timestamp_format: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + date_format: Optional[Any] = None, + timestamp_format: Optional[Any] = None, **kwargs ): super(AzureDatabricksDeltaLakeExportCommand, self).__init__(additional_properties=additional_properties, **kwargs) @@ -3543,7 +3733,7 @@ class ImportSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The import setting type.Constant filled by server. :type type: str """ @@ -3564,7 +3754,7 @@ class ImportSettings(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(ImportSettings, self).__init__(**kwargs) @@ -3579,15 +3769,15 @@ class AzureDatabricksDeltaLakeImportCommand(ImportSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The import setting type.Constant filled by server. :type type: str :param date_format: Specify the date format for csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string). - :type date_format: object + :type date_format: any :param timestamp_format: Specify the timestamp format for csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string). - :type timestamp_format: object + :type timestamp_format: any """ _validation = { @@ -3604,9 +3794,9 @@ class AzureDatabricksDeltaLakeImportCommand(ImportSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - date_format: Optional[object] = None, - timestamp_format: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + date_format: Optional[Any] = None, + timestamp_format: Optional[Any] = None, **kwargs ): super(AzureDatabricksDeltaLakeImportCommand, self).__init__(additional_properties=additional_properties, **kwargs) @@ -3622,7 +3812,7 @@ class AzureDatabricksDeltaLakeLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -3632,21 +3822,21 @@ class AzureDatabricksDeltaLakeLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param domain: Required. :code:``.azuredatabricks.net, domain name of your Databricks deployment. Type: string (or Expression with resultType string). - :type domain: object + :type domain: any :param access_token: Access token for databricks REST API. Refer to https://docs.azuredatabricks.net/api/latest/authentication.html. Type: string, SecureString or AzureKeyVaultSecretReference. :type access_token: ~azure.mgmt.datafactory.models.SecretBase :param cluster_id: The id of an existing interactive cluster that will be used for all runs of this job. Type: string (or Expression with resultType string). - :type cluster_id: object + :type cluster_id: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -3670,15 +3860,15 @@ class AzureDatabricksDeltaLakeLinkedService(LinkedService): def __init__( self, *, - domain: object, - additional_properties: Optional[Dict[str, object]] = None, + domain: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, access_token: Optional["SecretBase"] = None, - cluster_id: Optional[object] = None, - encrypted_credential: Optional[object] = None, + cluster_id: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(AzureDatabricksDeltaLakeLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -3696,27 +3886,30 @@ class AzureDatabricksDeltaLakeSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any :param import_settings: Azure Databricks Delta Lake import settings. :type import_settings: ~azure.mgmt.datafactory.models.AzureDatabricksDeltaLakeImportCommand """ @@ -3733,6 +3926,7 @@ class AzureDatabricksDeltaLakeSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, 'import_settings': {'key': 'importSettings', 'type': 'AzureDatabricksDeltaLakeImportCommand'}, } @@ -3740,17 +3934,18 @@ class AzureDatabricksDeltaLakeSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - pre_copy_script: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + pre_copy_script: Optional[Any] = None, import_settings: Optional["AzureDatabricksDeltaLakeImportCommand"] = None, **kwargs ): - super(AzureDatabricksDeltaLakeSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzureDatabricksDeltaLakeSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzureDatabricksDeltaLakeSink' # type: str self.pre_copy_script = pre_copy_script self.import_settings = import_settings @@ -3763,21 +3958,24 @@ class AzureDatabricksDeltaLakeSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: Azure Databricks Delta Lake Sql query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param export_settings: Azure Databricks Delta Lake export settings. :type export_settings: ~azure.mgmt.datafactory.models.AzureDatabricksDeltaLakeExportCommand """ @@ -3792,6 +3990,7 @@ class AzureDatabricksDeltaLakeSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'export_settings': {'key': 'exportSettings', 'type': 'AzureDatabricksDeltaLakeExportCommand'}, } @@ -3799,15 +3998,16 @@ class AzureDatabricksDeltaLakeSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query: Optional[Any] = None, export_settings: Optional["AzureDatabricksDeltaLakeExportCommand"] = None, **kwargs ): - super(AzureDatabricksDeltaLakeSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzureDatabricksDeltaLakeSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzureDatabricksDeltaLakeSource' # type: str self.query = query self.export_settings = export_settings @@ -3820,7 +4020,7 @@ class AzureDatabricksLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -3830,72 +4030,74 @@ class AzureDatabricksLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param domain: Required. :code:``.azuredatabricks.net, domain name of your Databricks deployment. Type: string (or Expression with resultType string). - :type domain: object + :type domain: any :param access_token: Access token for databricks REST API. Refer to https://docs.azuredatabricks.net/api/latest/authentication.html. Type: string (or Expression with resultType string). :type access_token: ~azure.mgmt.datafactory.models.SecretBase :param authentication: Required to specify MSI, if using Workspace resource id for databricks REST API. Type: string (or Expression with resultType string). - :type authentication: object + :type authentication: any :param workspace_resource_id: Workspace resource id for databricks REST API. Type: string (or Expression with resultType string). - :type workspace_resource_id: object + :type workspace_resource_id: any :param existing_cluster_id: The id of an existing interactive cluster that will be used for all runs of this activity. Type: string (or Expression with resultType string). - :type existing_cluster_id: object + :type existing_cluster_id: any :param instance_pool_id: The id of an existing instance pool that will be used for all runs of this activity. Type: string (or Expression with resultType string). - :type instance_pool_id: object + :type instance_pool_id: any :param new_cluster_version: If not using an existing interactive cluster, this specifies the Spark version of a new job cluster or instance pool nodes created for each run of this activity. Required if instancePoolId is specified. Type: string (or Expression with resultType string). - :type new_cluster_version: object + :type new_cluster_version: any :param new_cluster_num_of_worker: If not using an existing interactive cluster, this specifies the number of worker nodes to use for the new job cluster or instance pool. For new job - clusters, this a string-formatted Int32, like '1' means numOfWorker is 1 or '1:10' means auto- - scale from 1 (min) to 10 (max). For instance pools, this is a string-formatted Int32, and can - only specify a fixed number of worker nodes, such as '2'. Required if newClusterVersion is + clusters, this a string-formatted Int32, like '1' means numOfWorker is 1 or '1:10' means + auto-scale from 1 (min) to 10 (max). For instance pools, this is a string-formatted Int32, and + can only specify a fixed number of worker nodes, such as '2'. Required if newClusterVersion is specified. Type: string (or Expression with resultType string). - :type new_cluster_num_of_worker: object + :type new_cluster_num_of_worker: any :param new_cluster_node_type: The node type of the new job cluster. This property is required if newClusterVersion is specified and instancePoolId is not specified. If instancePoolId is specified, this property is ignored. Type: string (or Expression with resultType string). - :type new_cluster_node_type: object + :type new_cluster_node_type: any :param new_cluster_spark_conf: A set of optional, user-specified Spark configuration key-value pairs. - :type new_cluster_spark_conf: dict[str, object] + :type new_cluster_spark_conf: dict[str, any] :param new_cluster_spark_env_vars: A set of optional, user-specified Spark environment variables key-value pairs. - :type new_cluster_spark_env_vars: dict[str, object] + :type new_cluster_spark_env_vars: dict[str, any] :param new_cluster_custom_tags: Additional tags for cluster resources. This property is ignored in instance pool configurations. - :type new_cluster_custom_tags: dict[str, object] + :type new_cluster_custom_tags: dict[str, any] :param new_cluster_log_destination: Specify a location to deliver Spark driver, worker, and event logs. Type: string (or Expression with resultType string). - :type new_cluster_log_destination: object + :type new_cluster_log_destination: any :param new_cluster_driver_node_type: The driver node type for the new job cluster. This property is ignored in instance pool configurations. Type: string (or Expression with resultType string). - :type new_cluster_driver_node_type: object + :type new_cluster_driver_node_type: any :param new_cluster_init_scripts: User-defined initialization scripts for the new cluster. Type: array of strings (or Expression with resultType array of strings). - :type new_cluster_init_scripts: object + :type new_cluster_init_scripts: any :param new_cluster_enable_elastic_disk: Enable the elastic disk on the new cluster. This property is now ignored, and takes the default elastic disk behavior in Databricks (elastic disks are always enabled). Type: boolean (or Expression with resultType boolean). - :type new_cluster_enable_elastic_disk: object + :type new_cluster_enable_elastic_disk: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any :param policy_id: The policy id for limiting the ability to configure clusters based on a user defined set of rules. Type: string (or Expression with resultType string). - :type policy_id: object + :type policy_id: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -3928,34 +4130,36 @@ class AzureDatabricksLinkedService(LinkedService): 'new_cluster_enable_elastic_disk': {'key': 'typeProperties.newClusterEnableElasticDisk', 'type': 'object'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, 'policy_id': {'key': 'typeProperties.policyId', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( self, *, - domain: object, - additional_properties: Optional[Dict[str, object]] = None, + domain: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, access_token: Optional["SecretBase"] = None, - authentication: Optional[object] = None, - workspace_resource_id: Optional[object] = None, - existing_cluster_id: Optional[object] = None, - instance_pool_id: Optional[object] = None, - new_cluster_version: Optional[object] = None, - new_cluster_num_of_worker: Optional[object] = None, - new_cluster_node_type: Optional[object] = None, - new_cluster_spark_conf: Optional[Dict[str, object]] = None, - new_cluster_spark_env_vars: Optional[Dict[str, object]] = None, - new_cluster_custom_tags: Optional[Dict[str, object]] = None, - new_cluster_log_destination: Optional[object] = None, - new_cluster_driver_node_type: Optional[object] = None, - new_cluster_init_scripts: Optional[object] = None, - new_cluster_enable_elastic_disk: Optional[object] = None, - encrypted_credential: Optional[object] = None, - policy_id: Optional[object] = None, + authentication: Optional[Any] = None, + workspace_resource_id: Optional[Any] = None, + existing_cluster_id: Optional[Any] = None, + instance_pool_id: Optional[Any] = None, + new_cluster_version: Optional[Any] = None, + new_cluster_num_of_worker: Optional[Any] = None, + new_cluster_node_type: Optional[Any] = None, + new_cluster_spark_conf: Optional[Dict[str, Any]] = None, + new_cluster_spark_env_vars: Optional[Dict[str, Any]] = None, + new_cluster_custom_tags: Optional[Dict[str, Any]] = None, + new_cluster_log_destination: Optional[Any] = None, + new_cluster_driver_node_type: Optional[Any] = None, + new_cluster_init_scripts: Optional[Any] = None, + new_cluster_enable_elastic_disk: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, + policy_id: Optional[Any] = None, + credential: Optional["CredentialReference"] = None, **kwargs ): super(AzureDatabricksLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -3978,6 +4182,7 @@ def __init__( self.new_cluster_enable_elastic_disk = new_cluster_enable_elastic_disk self.encrypted_credential = encrypted_credential self.policy_id = policy_id + self.credential = credential class ExecutionActivity(Activity): @@ -3990,7 +4195,7 @@ class ExecutionActivity(Activity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -4031,7 +4236,7 @@ def __init__( self, *, name: str, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, @@ -4052,7 +4257,7 @@ class AzureDataExplorerCommandActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -4069,10 +4274,10 @@ class AzureDataExplorerCommandActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param command: Required. A control command, according to the Azure Data Explorer command syntax. Type: string (or Expression with resultType string). - :type command: object + :type command: any :param command_timeout: Control command timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9]))..). - :type command_timeout: object + :type command_timeout: any """ _validation = { @@ -4098,14 +4303,14 @@ def __init__( self, *, name: str, - command: object, - additional_properties: Optional[Dict[str, object]] = None, + command: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, - command_timeout: Optional[object] = None, + command_timeout: Optional[Any] = None, **kwargs ): super(AzureDataExplorerCommandActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, linked_service_name=linked_service_name, policy=policy, **kwargs) @@ -4121,7 +4326,7 @@ class AzureDataExplorerLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -4131,23 +4336,25 @@ class AzureDataExplorerLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param endpoint: Required. The endpoint of Azure Data Explorer (the engine's endpoint). URL will be in the format https://:code:``.:code:``.kusto.windows.net. Type: string (or Expression with resultType string). - :type endpoint: object + :type endpoint: any :param service_principal_id: The ID of the service principal used to authenticate against Azure Data Explorer. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The key of the service principal used to authenticate against Kusto. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param database: Required. Database name for connection. Type: string (or Expression with resultType string). - :type database: object + :type database: any :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -4168,21 +4375,23 @@ class AzureDataExplorerLinkedService(LinkedService): 'service_principal_key': {'key': 'typeProperties.servicePrincipalKey', 'type': 'SecretBase'}, 'database': {'key': 'typeProperties.database', 'type': 'object'}, 'tenant': {'key': 'typeProperties.tenant', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( self, *, - endpoint: object, - database: object, - additional_properties: Optional[Dict[str, object]] = None, + endpoint: Any, + database: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - service_principal_id: Optional[object] = None, + annotations: Optional[List[Any]] = None, + service_principal_id: Optional[Any] = None, service_principal_key: Optional["SecretBase"] = None, - tenant: Optional[object] = None, + tenant: Optional[Any] = None, + credential: Optional["CredentialReference"] = None, **kwargs ): super(AzureDataExplorerLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -4192,6 +4401,7 @@ def __init__( self.service_principal_key = service_principal_key self.database = database self.tenant = tenant + self.credential = credential class AzureDataExplorerSink(CopySink): @@ -4201,33 +4411,36 @@ class AzureDataExplorerSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param ingestion_mapping_name: A name of a pre-created csv mapping that was defined on the target Kusto table. Type: string. - :type ingestion_mapping_name: object + :type ingestion_mapping_name: any :param ingestion_mapping_as_json: An explicit column mapping description provided in a json format. Type: string. - :type ingestion_mapping_as_json: object + :type ingestion_mapping_as_json: any :param flush_immediately: If set to true, any aggregation will be skipped. Default is false. Type: boolean. - :type flush_immediately: object + :type flush_immediately: any """ _validation = { @@ -4242,6 +4455,7 @@ class AzureDataExplorerSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'ingestion_mapping_name': {'key': 'ingestionMappingName', 'type': 'object'}, 'ingestion_mapping_as_json': {'key': 'ingestionMappingAsJson', 'type': 'object'}, 'flush_immediately': {'key': 'flushImmediately', 'type': 'object'}, @@ -4250,18 +4464,19 @@ class AzureDataExplorerSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - ingestion_mapping_name: Optional[object] = None, - ingestion_mapping_as_json: Optional[object] = None, - flush_immediately: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + ingestion_mapping_name: Optional[Any] = None, + ingestion_mapping_as_json: Optional[Any] = None, + flush_immediately: Optional[Any] = None, **kwargs ): - super(AzureDataExplorerSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzureDataExplorerSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzureDataExplorerSink' # type: str self.ingestion_mapping_name = ingestion_mapping_name self.ingestion_mapping_as_json = ingestion_mapping_as_json @@ -4275,27 +4490,30 @@ class AzureDataExplorerSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: Required. Database query. Should be a Kusto Query Language (KQL) query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param no_truncation: The name of the Boolean option that controls whether truncation is applied to result-sets that go beyond a certain row-count limit. - :type no_truncation: object + :type no_truncation: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])).. - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -4312,6 +4530,7 @@ class AzureDataExplorerSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'no_truncation': {'key': 'noTruncation', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, @@ -4321,17 +4540,18 @@ class AzureDataExplorerSource(CopySource): def __init__( self, *, - query: object, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - no_truncation: Optional[object] = None, - query_timeout: Optional[object] = None, + query: Any, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + no_truncation: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(AzureDataExplorerSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzureDataExplorerSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzureDataExplorerSource' # type: str self.query = query self.no_truncation = no_truncation @@ -4346,29 +4566,29 @@ class AzureDataExplorerTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table: The table name of the Azure Data Explorer database. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -4393,14 +4613,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table: Optional[object] = None, + table: Optional[Any] = None, **kwargs ): super(AzureDataExplorerTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -4415,7 +4635,7 @@ class AzureDataLakeAnalyticsLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -4425,32 +4645,32 @@ class AzureDataLakeAnalyticsLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param account_name: Required. The Azure Data Lake Analytics account name. Type: string (or Expression with resultType string). - :type account_name: object + :type account_name: any :param service_principal_id: The ID of the application used to authenticate against the Azure Data Lake Analytics account. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The Key of the application used to authenticate against the Azure Data Lake Analytics account. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: Required. The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param subscription_id: Data Lake Analytics account subscription ID (if different from Data Factory account). Type: string (or Expression with resultType string). - :type subscription_id: object + :type subscription_id: any :param resource_group_name: Data Lake Analytics account resource group name (if different from Data Factory account). Type: string (or Expression with resultType string). - :type resource_group_name: object + :type resource_group_name: any :param data_lake_analytics_uri: Azure Data Lake Analytics URI Type: string (or Expression with resultType string). - :type data_lake_analytics_uri: object + :type data_lake_analytics_uri: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -4479,19 +4699,19 @@ class AzureDataLakeAnalyticsLinkedService(LinkedService): def __init__( self, *, - account_name: object, - tenant: object, - additional_properties: Optional[Dict[str, object]] = None, + account_name: Any, + tenant: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - service_principal_id: Optional[object] = None, + annotations: Optional[List[Any]] = None, + service_principal_id: Optional[Any] = None, service_principal_key: Optional["SecretBase"] = None, - subscription_id: Optional[object] = None, - resource_group_name: Optional[object] = None, - data_lake_analytics_uri: Optional[object] = None, - encrypted_credential: Optional[object] = None, + subscription_id: Optional[Any] = None, + resource_group_name: Optional[Any] = None, + data_lake_analytics_uri: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(AzureDataLakeAnalyticsLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -4513,32 +4733,32 @@ class AzureDataLakeStoreDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param folder_path: Path to the folder in the Azure Data Lake Store. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: The name of the file in the Azure Data Lake Store. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param format: The format of the Data Lake Store. :type format: ~azure.mgmt.datafactory.models.DatasetStorageFormat :param compression: The data compression method used for the item(s) in the Azure Data Lake @@ -4571,15 +4791,15 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - folder_path: Optional[object] = None, - file_name: Optional[object] = None, + folder_path: Optional[Any] = None, + file_name: Optional[Any] = None, format: Optional["DatasetStorageFormat"] = None, compression: Optional["DatasetCompression"] = None, **kwargs @@ -4599,7 +4819,7 @@ class AzureDataLakeStoreLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -4609,36 +4829,38 @@ class AzureDataLakeStoreLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param data_lake_store_uri: Required. Data Lake Store service URI. Type: string (or Expression with resultType string). - :type data_lake_store_uri: object + :type data_lake_store_uri: any :param service_principal_id: The ID of the application used to authenticate against the Azure Data Lake Store account. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The Key of the application used to authenticate against the Azure Data Lake Store account. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param account_name: Data Lake Store account name. Type: string (or Expression with resultType string). - :type account_name: object + :type account_name: any :param subscription_id: Data Lake Store account subscription ID (if different from Data Factory account). Type: string (or Expression with resultType string). - :type subscription_id: object + :type subscription_id: any :param resource_group_name: Data Lake Store account resource group name (if different from Data Factory account). Type: string (or Expression with resultType string). - :type resource_group_name: object + :type resource_group_name: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -4662,25 +4884,27 @@ class AzureDataLakeStoreLinkedService(LinkedService): 'subscription_id': {'key': 'typeProperties.subscriptionId', 'type': 'object'}, 'resource_group_name': {'key': 'typeProperties.resourceGroupName', 'type': 'object'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( self, *, - data_lake_store_uri: object, - additional_properties: Optional[Dict[str, object]] = None, + data_lake_store_uri: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - service_principal_id: Optional[object] = None, + annotations: Optional[List[Any]] = None, + service_principal_id: Optional[Any] = None, service_principal_key: Optional["SecretBase"] = None, - tenant: Optional[object] = None, - azure_cloud_type: Optional[object] = None, - account_name: Optional[object] = None, - subscription_id: Optional[object] = None, - resource_group_name: Optional[object] = None, - encrypted_credential: Optional[object] = None, + tenant: Optional[Any] = None, + azure_cloud_type: Optional[Any] = None, + account_name: Optional[Any] = None, + subscription_id: Optional[Any] = None, + resource_group_name: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, + credential: Optional["CredentialReference"] = None, **kwargs ): super(AzureDataLakeStoreLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -4694,6 +4918,7 @@ def __init__( self.subscription_id = subscription_id self.resource_group_name = resource_group_name self.encrypted_credential = encrypted_credential + self.credential = credential class AzureDataLakeStoreLocation(DatasetLocation): @@ -4703,15 +4928,15 @@ class AzureDataLakeStoreLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any """ _validation = { @@ -4728,9 +4953,9 @@ class AzureDataLakeStoreLocation(DatasetLocation): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - folder_path: Optional[object] = None, - file_name: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + folder_path: Optional[Any] = None, + file_name: Optional[Any] = None, **kwargs ): super(AzureDataLakeStoreLocation, self).__init__(additional_properties=additional_properties, folder_path=folder_path, file_name=file_name, **kwargs) @@ -4744,47 +4969,50 @@ class AzureDataLakeStoreReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: ADLS wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: ADLS wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param list_after: Lists files after the value (exclusive) based on file/folder names’ lexicographical order. Applies under the folderPath in data set, and filter files/sub-folders under the folderPath. Type: string (or Expression with resultType string). - :type list_after: object + :type list_after: any :param list_before: Lists files before the value (inclusive) based on file/folder names’ lexicographical order. Applies under the folderPath in data set, and filter files/sub-folders under the folderPath. Type: string (or Expression with resultType string). - :type list_before: object + :type list_before: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -4795,6 +5023,7 @@ class AzureDataLakeStoreReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -4811,22 +5040,23 @@ class AzureDataLakeStoreReadSettings(StoreReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - recursive: Optional[object] = None, - wildcard_folder_path: Optional[object] = None, - wildcard_file_name: Optional[object] = None, - file_list_path: Optional[object] = None, - list_after: Optional[object] = None, - list_before: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + recursive: Optional[Any] = None, + wildcard_folder_path: Optional[Any] = None, + wildcard_file_name: Optional[Any] = None, + file_list_path: Optional[Any] = None, + list_after: Optional[Any] = None, + list_before: Optional[Any] = None, enable_partition_discovery: Optional[bool] = None, - partition_root_path: Optional[object] = None, - delete_files_after_completion: Optional[object] = None, - modified_datetime_start: Optional[object] = None, - modified_datetime_end: Optional[object] = None, + partition_root_path: Optional[Any] = None, + delete_files_after_completion: Optional[Any] = None, + modified_datetime_start: Optional[Any] = None, + modified_datetime_end: Optional[Any] = None, **kwargs ): - super(AzureDataLakeStoreReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzureDataLakeStoreReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzureDataLakeStoreReadSettings' # type: str self.recursive = recursive self.wildcard_folder_path = wildcard_folder_path @@ -4848,28 +5078,31 @@ class AzureDataLakeStoreSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any :param enable_adls_single_file_parallel: Single File Parallel. - :type enable_adls_single_file_parallel: object + :type enable_adls_single_file_parallel: any """ _validation = { @@ -4884,6 +5117,7 @@ class AzureDataLakeStoreSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, 'enable_adls_single_file_parallel': {'key': 'enableAdlsSingleFileParallel', 'type': 'object'}, } @@ -4891,17 +5125,18 @@ class AzureDataLakeStoreSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - copy_behavior: Optional[object] = None, - enable_adls_single_file_parallel: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + copy_behavior: Optional[Any] = None, + enable_adls_single_file_parallel: Optional[Any] = None, **kwargs ): - super(AzureDataLakeStoreSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzureDataLakeStoreSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzureDataLakeStoreSink' # type: str self.copy_behavior = copy_behavior self.enable_adls_single_file_parallel = enable_adls_single_file_parallel @@ -4914,21 +5149,24 @@ class AzureDataLakeStoreSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any """ _validation = { @@ -4941,20 +5179,22 @@ class AzureDataLakeStoreSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - recursive: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + recursive: Optional[Any] = None, **kwargs ): - super(AzureDataLakeStoreSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzureDataLakeStoreSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzureDataLakeStoreSource' # type: str self.recursive = recursive @@ -4966,18 +5206,21 @@ class AzureDataLakeStoreWriteSettings(StoreWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any :param expiry_date_time: Specifies the expiry time of the written files. The time is applied to the UTC time zone in the format of "2018-12-01T05:00:00Z". Default value is NULL. Type: integer (or Expression with resultType integer). - :type expiry_date_time: object + :type expiry_date_time: any """ _validation = { @@ -4988,6 +5231,7 @@ class AzureDataLakeStoreWriteSettings(StoreWriteSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, 'expiry_date_time': {'key': 'expiryDateTime', 'type': 'object'}, } @@ -4995,13 +5239,14 @@ class AzureDataLakeStoreWriteSettings(StoreWriteSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - copy_behavior: Optional[object] = None, - expiry_date_time: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + copy_behavior: Optional[Any] = None, + expiry_date_time: Optional[Any] = None, **kwargs ): - super(AzureDataLakeStoreWriteSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, copy_behavior=copy_behavior, **kwargs) + super(AzureDataLakeStoreWriteSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, copy_behavior=copy_behavior, **kwargs) self.type = 'AzureDataLakeStoreWriteSettings' # type: str self.expiry_date_time = expiry_date_time @@ -5013,7 +5258,7 @@ class AzureFileStorageLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -5023,34 +5268,34 @@ class AzureFileStorageLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Host name of the server. Type: string (or Expression with resultType string). - :type host: object + :type host: any :param user_id: User ID to logon the server. Type: string (or Expression with resultType string). - :type user_id: object + :type user_id: any :param password: Password to logon the server. :type password: ~azure.mgmt.datafactory.models.SecretBase :param connection_string: The connection string. It is mutually exclusive with sasUri property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param account_key: The Azure key vault secret reference of accountKey in connection string. :type account_key: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param sas_uri: SAS URI of the Azure File resource. It is mutually exclusive with connectionString property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type sas_uri: object + :type sas_uri: any :param sas_token: The Azure key vault secret reference of sasToken in sas uri. :type sas_token: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param file_share: The azure file share name. It is required when auth with accountKey/sasToken. Type: string (or Expression with resultType string). - :type file_share: object + :type file_share: any :param snapshot: The azure file share snapshot version. Type: string (or Expression with resultType string). - :type snapshot: object + :type snapshot: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -5079,21 +5324,21 @@ class AzureFileStorageLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - host: Optional[object] = None, - user_id: Optional[object] = None, + annotations: Optional[List[Any]] = None, + host: Optional[Any] = None, + user_id: Optional[Any] = None, password: Optional["SecretBase"] = None, - connection_string: Optional[object] = None, + connection_string: Optional[Any] = None, account_key: Optional["AzureKeyVaultSecretReference"] = None, - sas_uri: Optional[object] = None, + sas_uri: Optional[Any] = None, sas_token: Optional["AzureKeyVaultSecretReference"] = None, - file_share: Optional[object] = None, - snapshot: Optional[object] = None, - encrypted_credential: Optional[object] = None, + file_share: Optional[Any] = None, + snapshot: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(AzureFileStorageLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -5117,15 +5362,15 @@ class AzureFileStorageLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any """ _validation = { @@ -5142,9 +5387,9 @@ class AzureFileStorageLocation(DatasetLocation): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - folder_path: Optional[object] = None, - file_name: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + folder_path: Optional[Any] = None, + file_name: Optional[Any] = None, **kwargs ): super(AzureFileStorageLocation, self).__init__(additional_properties=additional_properties, folder_path=folder_path, file_name=file_name, **kwargs) @@ -5158,42 +5403,45 @@ class AzureFileStorageReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: Azure File Storage wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: Azure File Storage wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param prefix: The prefix filter for the Azure File name starting from root path. Type: string (or Expression with resultType string). - :type prefix: object + :type prefix: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -5204,6 +5452,7 @@ class AzureFileStorageReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -5219,21 +5468,22 @@ class AzureFileStorageReadSettings(StoreReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - recursive: Optional[object] = None, - wildcard_folder_path: Optional[object] = None, - wildcard_file_name: Optional[object] = None, - prefix: Optional[object] = None, - file_list_path: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + recursive: Optional[Any] = None, + wildcard_folder_path: Optional[Any] = None, + wildcard_file_name: Optional[Any] = None, + prefix: Optional[Any] = None, + file_list_path: Optional[Any] = None, enable_partition_discovery: Optional[bool] = None, - partition_root_path: Optional[object] = None, - delete_files_after_completion: Optional[object] = None, - modified_datetime_start: Optional[object] = None, - modified_datetime_end: Optional[object] = None, + partition_root_path: Optional[Any] = None, + delete_files_after_completion: Optional[Any] = None, + modified_datetime_start: Optional[Any] = None, + modified_datetime_end: Optional[Any] = None, **kwargs ): - super(AzureFileStorageReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzureFileStorageReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzureFileStorageReadSettings' # type: str self.recursive = recursive self.wildcard_folder_path = wildcard_folder_path @@ -5254,14 +5504,17 @@ class AzureFileStorageWriteSettings(StoreWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any """ _validation = { @@ -5272,18 +5525,20 @@ class AzureFileStorageWriteSettings(StoreWriteSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - copy_behavior: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + copy_behavior: Optional[Any] = None, **kwargs ): - super(AzureFileStorageWriteSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, copy_behavior=copy_behavior, **kwargs) + super(AzureFileStorageWriteSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, copy_behavior=copy_behavior, **kwargs) self.type = 'AzureFileStorageWriteSettings' # type: str @@ -5294,7 +5549,7 @@ class AzureFunctionActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -5314,14 +5569,14 @@ class AzureFunctionActivity(ExecutionActivity): :type method: str or ~azure.mgmt.datafactory.models.AzureFunctionActivityMethod :param function_name: Required. Name of the Function that the Azure Function Activity will call. Type: string (or Expression with resultType string). - :type function_name: object + :type function_name: any :param headers: Represents the headers that will be sent to the request. For example, to set the language and type on a request: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Type: string (or Expression with resultType string). - :type headers: object + :type headers: any :param body: Represents the payload that will be sent to the endpoint. Required for POST/PUT method, not allowed for GET method Type: string (or Expression with resultType string). - :type body: object + :type body: any """ _validation = { @@ -5351,15 +5606,15 @@ def __init__( *, name: str, method: Union[str, "AzureFunctionActivityMethod"], - function_name: object, - additional_properties: Optional[Dict[str, object]] = None, + function_name: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, - headers: Optional[object] = None, - body: Optional[object] = None, + headers: Optional[Any] = None, + body: Optional[Any] = None, **kwargs ): super(AzureFunctionActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, linked_service_name=linked_service_name, policy=policy, **kwargs) @@ -5377,7 +5632,7 @@ class AzureFunctionLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -5387,16 +5642,23 @@ class AzureFunctionLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param function_app_url: Required. The endpoint of the Azure Function App. URL will be in the format https://:code:``.azurewebsites.net. - :type function_app_url: object + :type function_app_url: any :param function_key: Function or Host key for Azure Function App. :type function_key: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference + :param resource_id: Allowed token audiences for azure function. + :type resource_id: any + :param authentication: Type of authentication (Required to specify MSI) used to connect to + AzureFunction. Type: string (or Expression with resultType string). + :type authentication: any """ _validation = { @@ -5414,19 +5676,25 @@ class AzureFunctionLinkedService(LinkedService): 'function_app_url': {'key': 'typeProperties.functionAppUrl', 'type': 'object'}, 'function_key': {'key': 'typeProperties.functionKey', 'type': 'SecretBase'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, + 'resource_id': {'key': 'typeProperties.resourceId', 'type': 'object'}, + 'authentication': {'key': 'typeProperties.authentication', 'type': 'object'}, } def __init__( self, *, - function_app_url: object, - additional_properties: Optional[Dict[str, object]] = None, + function_app_url: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, function_key: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, + credential: Optional["CredentialReference"] = None, + resource_id: Optional[Any] = None, + authentication: Optional[Any] = None, **kwargs ): super(AzureFunctionLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -5434,6 +5702,9 @@ def __init__( self.function_app_url = function_app_url self.function_key = function_key self.encrypted_credential = encrypted_credential + self.credential = credential + self.resource_id = resource_id + self.authentication = authentication class AzureKeyVaultLinkedService(LinkedService): @@ -5443,7 +5714,7 @@ class AzureKeyVaultLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -5453,10 +5724,12 @@ class AzureKeyVaultLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param base_url: Required. The base URL of the Azure Key Vault. e.g. https://myakv.vault.azure.net Type: string (or Expression with resultType string). - :type base_url: object + :type base_url: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -5472,22 +5745,25 @@ class AzureKeyVaultLinkedService(LinkedService): 'parameters': {'key': 'parameters', 'type': '{ParameterSpecification}'}, 'annotations': {'key': 'annotations', 'type': '[object]'}, 'base_url': {'key': 'typeProperties.baseUrl', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( self, *, - base_url: object, - additional_properties: Optional[Dict[str, object]] = None, + base_url: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, + credential: Optional["CredentialReference"] = None, **kwargs ): super(AzureKeyVaultLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) self.type = 'AzureKeyVault' # type: str self.base_url = base_url + self.credential = credential class SecretBase(msrest.serialization.Model): @@ -5533,10 +5809,10 @@ class AzureKeyVaultSecretReference(SecretBase): :type store: ~azure.mgmt.datafactory.models.LinkedServiceReference :param secret_name: Required. The name of the secret in Azure Key Vault. Type: string (or Expression with resultType string). - :type secret_name: object + :type secret_name: any :param secret_version: The version of the secret in Azure Key Vault. The default value is the latest version of the secret. Type: string (or Expression with resultType string). - :type secret_version: object + :type secret_version: any """ _validation = { @@ -5556,8 +5832,8 @@ def __init__( self, *, store: "LinkedServiceReference", - secret_name: object, - secret_version: Optional[object] = None, + secret_name: Any, + secret_version: Optional[Any] = None, **kwargs ): super(AzureKeyVaultSecretReference, self).__init__(**kwargs) @@ -5574,7 +5850,7 @@ class AzureMariaDBLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -5584,16 +5860,16 @@ class AzureMariaDBLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param pwd: The Azure key vault secret reference of password in connection string. :type pwd: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -5615,14 +5891,14 @@ class AzureMariaDBLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_string: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_string: Optional[Any] = None, pwd: Optional["AzureKeyVaultSecretReference"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(AzureMariaDBLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -5639,27 +5915,30 @@ class AzureMariaDBSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -5672,6 +5951,7 @@ class AzureMariaDBSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -5680,16 +5960,17 @@ class AzureMariaDBSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(AzureMariaDBSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(AzureMariaDBSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'AzureMariaDBSource' # type: str self.query = query @@ -5701,28 +5982,28 @@ class AzureMariaDBTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -5747,14 +6028,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(AzureMariaDBTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -5769,7 +6050,7 @@ class AzureMLBatchExecutionActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -5788,7 +6069,7 @@ class AzureMLBatchExecutionActivity(ExecutionActivity): endpoint. Keys must match the names of web service parameters defined in the published Azure ML web service. Values will be passed in the GlobalParameters property of the Azure ML batch execution request. - :type global_parameters: dict[str, object] + :type global_parameters: dict[str, any] :param web_service_outputs: Key,Value pairs, mapping the names of Azure ML endpoint's Web Service Outputs to AzureMLWebServiceFile objects specifying the output Blob locations. This information will be passed in the WebServiceOutputs property of the Azure ML batch execution @@ -5824,13 +6105,13 @@ def __init__( self, *, name: str, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, - global_parameters: Optional[Dict[str, object]] = None, + global_parameters: Optional[Dict[str, Any]] = None, web_service_outputs: Optional[Dict[str, "AzureMLWebServiceFile"]] = None, web_service_inputs: Optional[Dict[str, "AzureMLWebServiceFile"]] = None, **kwargs @@ -5849,7 +6130,7 @@ class AzureMLExecutePipelineActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -5866,35 +6147,35 @@ class AzureMLExecutePipelineActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param ml_pipeline_id: ID of the published Azure ML pipeline. Type: string (or Expression with resultType string). - :type ml_pipeline_id: object + :type ml_pipeline_id: any :param ml_pipeline_endpoint_id: ID of the published Azure ML pipeline endpoint. Type: string (or Expression with resultType string). - :type ml_pipeline_endpoint_id: object + :type ml_pipeline_endpoint_id: any :param version: Version of the published Azure ML pipeline endpoint. Type: string (or Expression with resultType string). - :type version: object + :type version: any :param experiment_name: Run history experiment name of the pipeline run. This information will be passed in the ExperimentName property of the published pipeline execution request. Type: string (or Expression with resultType string). - :type experiment_name: object + :type experiment_name: any :param ml_pipeline_parameters: Key,Value pairs to be passed to the published Azure ML pipeline endpoint. Keys must match the names of pipeline parameters defined in the published pipeline. Values will be passed in the ParameterAssignments property of the published pipeline execution request. Type: object with key value pairs (or Expression with resultType object). - :type ml_pipeline_parameters: object + :type ml_pipeline_parameters: any :param data_path_assignments: Dictionary used for changing data path assignments without retraining. Values will be passed in the dataPathAssignments property of the published pipeline execution request. Type: object with key value pairs (or Expression with resultType object). - :type data_path_assignments: object + :type data_path_assignments: any :param ml_parent_run_id: The parent Azure ML Service pipeline run id. This information will be passed in the ParentRunId property of the published pipeline execution request. Type: string (or Expression with resultType string). - :type ml_parent_run_id: object + :type ml_parent_run_id: any :param continue_on_step_failure: Whether to continue execution of other steps in the PipelineRun if a step fails. This information will be passed in the continueOnStepFailure property of the published pipeline execution request. Type: boolean (or Expression with resultType boolean). - :type continue_on_step_failure: object + :type continue_on_step_failure: any """ _validation = { @@ -5925,20 +6206,20 @@ def __init__( self, *, name: str, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, - ml_pipeline_id: Optional[object] = None, - ml_pipeline_endpoint_id: Optional[object] = None, - version: Optional[object] = None, - experiment_name: Optional[object] = None, - ml_pipeline_parameters: Optional[object] = None, - data_path_assignments: Optional[object] = None, - ml_parent_run_id: Optional[object] = None, - continue_on_step_failure: Optional[object] = None, + ml_pipeline_id: Optional[Any] = None, + ml_pipeline_endpoint_id: Optional[Any] = None, + version: Optional[Any] = None, + experiment_name: Optional[Any] = None, + ml_pipeline_parameters: Optional[Any] = None, + data_path_assignments: Optional[Any] = None, + ml_parent_run_id: Optional[Any] = None, + continue_on_step_failure: Optional[Any] = None, **kwargs ): super(AzureMLExecutePipelineActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, linked_service_name=linked_service_name, policy=policy, **kwargs) @@ -5960,7 +6241,7 @@ class AzureMLLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -5970,29 +6251,32 @@ class AzureMLLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param ml_endpoint: Required. The Batch Execution REST URL for an Azure ML Studio Web Service endpoint. Type: string (or Expression with resultType string). - :type ml_endpoint: object + :type ml_endpoint: any :param api_key: Required. The API key for accessing the Azure ML model endpoint. :type api_key: ~azure.mgmt.datafactory.models.SecretBase :param update_resource_endpoint: The Update Resource REST URL for an Azure ML Studio Web Service endpoint. Type: string (or Expression with resultType string). - :type update_resource_endpoint: object + :type update_resource_endpoint: any :param service_principal_id: The ID of the service principal used to authenticate against the ARM-based updateResourceEndpoint of an Azure ML Studio web service. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The key of the service principal used to authenticate against the ARM-based updateResourceEndpoint of an Azure ML Studio web service. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param authentication: Type of authentication (Required to specify MSI) used to connect to + AzureML. Type: string (or Expression with resultType string). + :type authentication: any """ _validation = { @@ -6015,23 +6299,25 @@ class AzureMLLinkedService(LinkedService): 'service_principal_key': {'key': 'typeProperties.servicePrincipalKey', 'type': 'SecretBase'}, 'tenant': {'key': 'typeProperties.tenant', 'type': 'object'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'authentication': {'key': 'typeProperties.authentication', 'type': 'object'}, } def __init__( self, *, - ml_endpoint: object, + ml_endpoint: Any, api_key: "SecretBase", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - update_resource_endpoint: Optional[object] = None, - service_principal_id: Optional[object] = None, + annotations: Optional[List[Any]] = None, + update_resource_endpoint: Optional[Any] = None, + service_principal_id: Optional[Any] = None, service_principal_key: Optional["SecretBase"] = None, - tenant: Optional[object] = None, - encrypted_credential: Optional[object] = None, + tenant: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, + authentication: Optional[Any] = None, **kwargs ): super(AzureMLLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -6043,6 +6329,7 @@ def __init__( self.service_principal_key = service_principal_key self.tenant = tenant self.encrypted_credential = encrypted_credential + self.authentication = authentication class AzureMLServiceLinkedService(LinkedService): @@ -6052,7 +6339,7 @@ class AzureMLServiceLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -6062,30 +6349,30 @@ class AzureMLServiceLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param subscription_id: Required. Azure ML Service workspace subscription ID. Type: string (or Expression with resultType string). - :type subscription_id: object + :type subscription_id: any :param resource_group_name: Required. Azure ML Service workspace resource group name. Type: string (or Expression with resultType string). - :type resource_group_name: object + :type resource_group_name: any :param ml_workspace_name: Required. Azure ML Service workspace name. Type: string (or Expression with resultType string). - :type ml_workspace_name: object + :type ml_workspace_name: any :param service_principal_id: The ID of the service principal used to authenticate against the endpoint of a published Azure ML Service pipeline. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The key of the service principal used to authenticate against the endpoint of a published Azure ML Service pipeline. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -6114,18 +6401,18 @@ class AzureMLServiceLinkedService(LinkedService): def __init__( self, *, - subscription_id: object, - resource_group_name: object, - ml_workspace_name: object, - additional_properties: Optional[Dict[str, object]] = None, + subscription_id: Any, + resource_group_name: Any, + ml_workspace_name: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - service_principal_id: Optional[object] = None, + annotations: Optional[List[Any]] = None, + service_principal_id: Optional[Any] = None, service_principal_key: Optional["SecretBase"] = None, - tenant: Optional[object] = None, - encrypted_credential: Optional[object] = None, + tenant: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(AzureMLServiceLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -6146,7 +6433,7 @@ class AzureMLUpdateResourceActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -6163,14 +6450,14 @@ class AzureMLUpdateResourceActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param trained_model_name: Required. Name of the Trained Model module in the Web Service experiment to be updated. Type: string (or Expression with resultType string). - :type trained_model_name: object + :type trained_model_name: any :param trained_model_linked_service_name: Required. Name of Azure Storage linked service holding the .ilearner file that will be uploaded by the update operation. :type trained_model_linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param trained_model_file_path: Required. The relative file path in trainedModelLinkedService to represent the .ilearner file that will be uploaded by the update operation. Type: string (or Expression with resultType string). - :type trained_model_file_path: object + :type trained_model_file_path: any """ _validation = { @@ -6199,10 +6486,10 @@ def __init__( self, *, name: str, - trained_model_name: object, + trained_model_name: Any, trained_model_linked_service_name: "LinkedServiceReference", - trained_model_file_path: object, - additional_properties: Optional[Dict[str, object]] = None, + trained_model_file_path: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, @@ -6224,7 +6511,7 @@ class AzureMLWebServiceFile(msrest.serialization.Model): :param file_path: Required. The relative file path, including container name, in the Azure Blob Storage specified by the LinkedService. Type: string (or Expression with resultType string). - :type file_path: object + :type file_path: any :param linked_service_name: Required. Reference to an Azure Storage LinkedService, where Azure ML WebService Input/Output file located. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference @@ -6243,7 +6530,7 @@ class AzureMLWebServiceFile(msrest.serialization.Model): def __init__( self, *, - file_path: object, + file_path: Any, linked_service_name: "LinkedServiceReference", **kwargs ): @@ -6259,7 +6546,7 @@ class AzureMySqlLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -6269,16 +6556,16 @@ class AzureMySqlLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -6301,14 +6588,14 @@ class AzureMySqlLinkedService(LinkedService): def __init__( self, *, - connection_string: object, - additional_properties: Optional[Dict[str, object]] = None, + connection_string: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, password: Optional["AzureKeyVaultSecretReference"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(AzureMySqlLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -6325,27 +6612,30 @@ class AzureMySqlSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: A query to execute before starting the copy. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any """ _validation = { @@ -6360,22 +6650,24 @@ class AzureMySqlSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - pre_copy_script: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + pre_copy_script: Optional[Any] = None, **kwargs ): - super(AzureMySqlSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzureMySqlSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzureMySqlSink' # type: str self.pre_copy_script = pre_copy_script @@ -6387,26 +6679,29 @@ class AzureMySqlSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -6419,6 +6714,7 @@ class AzureMySqlSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -6427,16 +6723,17 @@ class AzureMySqlSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(AzureMySqlSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(AzureMySqlSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'AzureMySqlSource' # type: str self.query = query @@ -6448,32 +6745,32 @@ class AzureMySqlTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The Azure MySQL database table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any :param table: The name of Azure MySQL database table. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -6499,15 +6796,15 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - table: Optional[object] = None, + table_name: Optional[Any] = None, + table: Optional[Any] = None, **kwargs ): super(AzureMySqlTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -6523,7 +6820,7 @@ class AzurePostgreSqlLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -6533,16 +6830,16 @@ class AzurePostgreSqlLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -6564,14 +6861,14 @@ class AzurePostgreSqlLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_string: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_string: Optional[Any] = None, password: Optional["AzureKeyVaultSecretReference"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(AzurePostgreSqlLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -6588,27 +6885,30 @@ class AzurePostgreSqlSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: A query to execute before starting the copy. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any """ _validation = { @@ -6623,22 +6923,24 @@ class AzurePostgreSqlSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - pre_copy_script: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + pre_copy_script: Optional[Any] = None, **kwargs ): - super(AzurePostgreSqlSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzurePostgreSqlSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzurePostgreSqlSink' # type: str self.pre_copy_script = pre_copy_script @@ -6650,27 +6952,30 @@ class AzurePostgreSqlSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -6683,6 +6988,7 @@ class AzurePostgreSqlSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -6691,16 +6997,17 @@ class AzurePostgreSqlSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(AzurePostgreSqlSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(AzurePostgreSqlSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'AzurePostgreSqlSource' # type: str self.query = query @@ -6712,35 +7019,35 @@ class AzurePostgreSqlTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name of the Azure PostgreSQL database which includes both schema and table. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any :param table: The table name of the Azure PostgreSQL database. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Azure PostgreSQL database. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -6767,16 +7074,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - table: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, + table_name: Optional[Any] = None, + table: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, **kwargs ): super(AzurePostgreSqlTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -6793,24 +7100,27 @@ class AzureQueueSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any """ _validation = { @@ -6825,20 +7135,22 @@ class AzureQueueSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, **kwargs ): - super(AzureQueueSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzureQueueSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzureQueueSink' # type: str @@ -6849,29 +7161,29 @@ class AzureSearchIndexDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param index_name: Required. The name of the Azure Search Index. Type: string (or Expression with resultType string). - :type index_name: object + :type index_name: any """ _validation = { @@ -6897,13 +7209,13 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - index_name: object, - additional_properties: Optional[Dict[str, object]] = None, + index_name: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, **kwargs ): @@ -6919,24 +7231,27 @@ class AzureSearchIndexSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: Specify the write behavior when upserting documents into Azure Search Index. Possible values include: "Merge", "Upload". :type write_behavior: str or ~azure.mgmt.datafactory.models.AzureSearchIndexWriteBehaviorType @@ -6954,22 +7269,24 @@ class AzureSearchIndexSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'str'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, write_behavior: Optional[Union[str, "AzureSearchIndexWriteBehaviorType"]] = None, **kwargs ): - super(AzureSearchIndexSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzureSearchIndexSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzureSearchIndexSink' # type: str self.write_behavior = write_behavior @@ -6981,7 +7298,7 @@ class AzureSearchLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -6991,16 +7308,16 @@ class AzureSearchLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. URL for Azure Search service. Type: string (or Expression with resultType string). - :type url: object + :type url: any :param key: Admin Key for Azure Search service. :type key: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -7023,14 +7340,14 @@ class AzureSearchLinkedService(LinkedService): def __init__( self, *, - url: object, - additional_properties: Optional[Dict[str, object]] = None, + url: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, key: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(AzureSearchLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -7047,7 +7364,7 @@ class AzureSqlDatabaseLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -7057,29 +7374,33 @@ class AzureSqlDatabaseLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param service_principal_id: The ID of the service principal used to authenticate against Azure SQL Database. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The key of the service principal used to authenticate against Azure SQL Database. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param always_encrypted_settings: Sql always encrypted properties. + :type always_encrypted_settings: ~azure.mgmt.datafactory.models.SqlAlwaysEncryptedProperties + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -7101,23 +7422,27 @@ class AzureSqlDatabaseLinkedService(LinkedService): 'tenant': {'key': 'typeProperties.tenant', 'type': 'object'}, 'azure_cloud_type': {'key': 'typeProperties.azureCloudType', 'type': 'object'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'always_encrypted_settings': {'key': 'typeProperties.alwaysEncryptedSettings', 'type': 'SqlAlwaysEncryptedProperties'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( self, *, - connection_string: object, - additional_properties: Optional[Dict[str, object]] = None, + connection_string: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, password: Optional["AzureKeyVaultSecretReference"] = None, - service_principal_id: Optional[object] = None, + service_principal_id: Optional[Any] = None, service_principal_key: Optional["SecretBase"] = None, - tenant: Optional[object] = None, - azure_cloud_type: Optional[object] = None, - encrypted_credential: Optional[object] = None, + tenant: Optional[Any] = None, + azure_cloud_type: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, + always_encrypted_settings: Optional["SqlAlwaysEncryptedProperties"] = None, + credential: Optional["CredentialReference"] = None, **kwargs ): super(AzureSqlDatabaseLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -7129,6 +7454,8 @@ def __init__( self.tenant = tenant self.azure_cloud_type = azure_cloud_type self.encrypted_credential = encrypted_credential + self.always_encrypted_settings = always_encrypted_settings + self.credential = credential class AzureSqlDWLinkedService(LinkedService): @@ -7138,7 +7465,7 @@ class AzureSqlDWLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -7148,29 +7475,31 @@ class AzureSqlDWLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string. Type: string, SecureString or AzureKeyVaultSecretReference. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param service_principal_id: The ID of the service principal used to authenticate against Azure SQL Data Warehouse. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The key of the service principal used to authenticate against Azure SQL Data Warehouse. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -7192,23 +7521,25 @@ class AzureSqlDWLinkedService(LinkedService): 'tenant': {'key': 'typeProperties.tenant', 'type': 'object'}, 'azure_cloud_type': {'key': 'typeProperties.azureCloudType', 'type': 'object'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( self, *, - connection_string: object, - additional_properties: Optional[Dict[str, object]] = None, + connection_string: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, password: Optional["AzureKeyVaultSecretReference"] = None, - service_principal_id: Optional[object] = None, + service_principal_id: Optional[Any] = None, service_principal_key: Optional["SecretBase"] = None, - tenant: Optional[object] = None, - azure_cloud_type: Optional[object] = None, - encrypted_credential: Optional[object] = None, + tenant: Optional[Any] = None, + azure_cloud_type: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, + credential: Optional["CredentialReference"] = None, **kwargs ): super(AzureSqlDWLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -7220,6 +7551,7 @@ def __init__( self.tenant = tenant self.azure_cloud_type = azure_cloud_type self.encrypted_credential = encrypted_credential + self.credential = credential class AzureSqlDWTableDataset(Dataset): @@ -7229,35 +7561,35 @@ class AzureSqlDWTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param schema_type_properties_schema: The schema name of the Azure SQL Data Warehouse. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any :param table: The table name of the Azure SQL Data Warehouse. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -7284,16 +7616,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, - table: Optional[object] = None, + table_name: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, + table: Optional[Any] = None, **kwargs ): super(AzureSqlDWTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -7310,7 +7642,7 @@ class AzureSqlMILinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -7320,29 +7652,33 @@ class AzureSqlMILinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param service_principal_id: The ID of the service principal used to authenticate against Azure SQL Managed Instance. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The key of the service principal used to authenticate against Azure SQL Managed Instance. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param always_encrypted_settings: Sql always encrypted properties. + :type always_encrypted_settings: ~azure.mgmt.datafactory.models.SqlAlwaysEncryptedProperties + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -7364,23 +7700,27 @@ class AzureSqlMILinkedService(LinkedService): 'tenant': {'key': 'typeProperties.tenant', 'type': 'object'}, 'azure_cloud_type': {'key': 'typeProperties.azureCloudType', 'type': 'object'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'always_encrypted_settings': {'key': 'typeProperties.alwaysEncryptedSettings', 'type': 'SqlAlwaysEncryptedProperties'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( self, *, - connection_string: object, - additional_properties: Optional[Dict[str, object]] = None, + connection_string: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, password: Optional["AzureKeyVaultSecretReference"] = None, - service_principal_id: Optional[object] = None, + service_principal_id: Optional[Any] = None, service_principal_key: Optional["SecretBase"] = None, - tenant: Optional[object] = None, - azure_cloud_type: Optional[object] = None, - encrypted_credential: Optional[object] = None, + tenant: Optional[Any] = None, + azure_cloud_type: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, + always_encrypted_settings: Optional["SqlAlwaysEncryptedProperties"] = None, + credential: Optional["CredentialReference"] = None, **kwargs ): super(AzureSqlMILinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -7392,6 +7732,8 @@ def __init__( self.tenant = tenant self.azure_cloud_type = azure_cloud_type self.encrypted_credential = encrypted_credential + self.always_encrypted_settings = always_encrypted_settings + self.credential = credential class AzureSqlMITableDataset(Dataset): @@ -7401,35 +7743,35 @@ class AzureSqlMITableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param schema_type_properties_schema: The schema name of the Azure SQL Managed Instance. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any :param table: The table name of the Azure SQL Managed Instance dataset. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -7456,16 +7798,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, - table: Optional[object] = None, + table_name: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, + table: Optional[Any] = None, **kwargs ): super(AzureSqlMITableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -7482,42 +7824,45 @@ class AzureSqlSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param sql_writer_stored_procedure_name: SQL writer stored procedure name. Type: string (or Expression with resultType string). - :type sql_writer_stored_procedure_name: object + :type sql_writer_stored_procedure_name: any :param sql_writer_table_type: SQL writer table type. Type: string (or Expression with resultType string). - :type sql_writer_table_type: object + :type sql_writer_table_type: any :param pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any :param stored_procedure_parameters: SQL stored procedure parameters. :type stored_procedure_parameters: dict[str, ~azure.mgmt.datafactory.models.StoredProcedureParameter] :param stored_procedure_table_type_parameter_name: The stored procedure parameter name of the table type. Type: string (or Expression with resultType string). - :type stored_procedure_table_type_parameter_name: object + :type stored_procedure_table_type_parameter_name: any :param table_option: The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string). - :type table_option: object + :type table_option: any """ _validation = { @@ -7532,6 +7877,7 @@ class AzureSqlSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'sql_writer_stored_procedure_name': {'key': 'sqlWriterStoredProcedureName', 'type': 'object'}, 'sql_writer_table_type': {'key': 'sqlWriterTableType', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, @@ -7543,21 +7889,22 @@ class AzureSqlSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - sql_writer_stored_procedure_name: Optional[object] = None, - sql_writer_table_type: Optional[object] = None, - pre_copy_script: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + sql_writer_stored_procedure_name: Optional[Any] = None, + sql_writer_table_type: Optional[Any] = None, + pre_copy_script: Optional[Any] = None, stored_procedure_parameters: Optional[Dict[str, "StoredProcedureParameter"]] = None, - stored_procedure_table_type_parameter_name: Optional[object] = None, - table_option: Optional[object] = None, + stored_procedure_table_type_parameter_name: Optional[Any] = None, + table_option: Optional[Any] = None, **kwargs ): - super(AzureSqlSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzureSqlSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzureSqlSink' # type: str self.sql_writer_stored_procedure_name = sql_writer_stored_procedure_name self.sql_writer_table_type = sql_writer_table_type @@ -7574,39 +7921,42 @@ class AzureSqlSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param sql_reader_query: SQL reader query. Type: string (or Expression with resultType string). - :type sql_reader_query: object + :type sql_reader_query: any :param sql_reader_stored_procedure_name: Name of the stored procedure for a SQL Database source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string). - :type sql_reader_stored_procedure_name: object + :type sql_reader_stored_procedure_name: any :param stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}". :type stored_procedure_parameters: dict[str, ~azure.mgmt.datafactory.models.StoredProcedureParameter] :param produce_additional_types: Which additional types to produce. - :type produce_additional_types: object + :type produce_additional_types: any :param partition_option: The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for Sql source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.SqlPartitionSettings """ @@ -7621,6 +7971,7 @@ class AzureSqlSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'sql_reader_query': {'key': 'sqlReaderQuery', 'type': 'object'}, @@ -7634,21 +7985,22 @@ class AzureSqlSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - sql_reader_query: Optional[object] = None, - sql_reader_stored_procedure_name: Optional[object] = None, + sql_reader_query: Optional[Any] = None, + sql_reader_stored_procedure_name: Optional[Any] = None, stored_procedure_parameters: Optional[Dict[str, "StoredProcedureParameter"]] = None, - produce_additional_types: Optional[object] = None, - partition_option: Optional[object] = None, + produce_additional_types: Optional[Any] = None, + partition_option: Optional[Any] = None, partition_settings: Optional["SqlPartitionSettings"] = None, **kwargs ): - super(AzureSqlSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(AzureSqlSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'AzureSqlSource' # type: str self.sql_reader_query = sql_reader_query self.sql_reader_stored_procedure_name = sql_reader_stored_procedure_name @@ -7665,35 +8017,35 @@ class AzureSqlTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param schema_type_properties_schema: The schema name of the Azure SQL database. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any :param table: The table name of the Azure SQL database. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -7720,16 +8072,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, - table: Optional[object] = None, + table_name: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, + table: Optional[Any] = None, **kwargs ): super(AzureSqlTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -7746,7 +8098,7 @@ class AzureStorageLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -7756,15 +8108,15 @@ class AzureStorageLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: The connection string. It is mutually exclusive with sasUri property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param account_key: The Azure key vault secret reference of accountKey in connection string. :type account_key: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param sas_uri: SAS URI of the Azure Storage resource. It is mutually exclusive with connectionString property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type sas_uri: object + :type sas_uri: any :param sas_token: The Azure key vault secret reference of sasToken in sas uri. :type sas_token: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are @@ -7794,14 +8146,14 @@ class AzureStorageLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_string: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_string: Optional[Any] = None, account_key: Optional["AzureKeyVaultSecretReference"] = None, - sas_uri: Optional[object] = None, + sas_uri: Optional[Any] = None, sas_token: Optional["AzureKeyVaultSecretReference"] = None, encrypted_credential: Optional[str] = None, **kwargs @@ -7822,29 +8174,29 @@ class AzureTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: Required. The table name of the Azure Table storage. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -7870,13 +8222,13 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - table_name: object, - additional_properties: Optional[Dict[str, object]] = None, + table_name: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, **kwargs ): @@ -7892,36 +8244,39 @@ class AzureTableSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param azure_table_default_partition_key_value: Azure Table default partition key value. Type: string (or Expression with resultType string). - :type azure_table_default_partition_key_value: object + :type azure_table_default_partition_key_value: any :param azure_table_partition_key_name: Azure Table partition key name. Type: string (or Expression with resultType string). - :type azure_table_partition_key_name: object + :type azure_table_partition_key_name: any :param azure_table_row_key_name: Azure Table row key name. Type: string (or Expression with resultType string). - :type azure_table_row_key_name: object + :type azure_table_row_key_name: any :param azure_table_insert_type: Azure Table insert type. Type: string (or Expression with resultType string). - :type azure_table_insert_type: object + :type azure_table_insert_type: any """ _validation = { @@ -7936,6 +8291,7 @@ class AzureTableSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'azure_table_default_partition_key_value': {'key': 'azureTableDefaultPartitionKeyValue', 'type': 'object'}, 'azure_table_partition_key_name': {'key': 'azureTablePartitionKeyName', 'type': 'object'}, 'azure_table_row_key_name': {'key': 'azureTableRowKeyName', 'type': 'object'}, @@ -7945,19 +8301,20 @@ class AzureTableSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - azure_table_default_partition_key_value: Optional[object] = None, - azure_table_partition_key_name: Optional[object] = None, - azure_table_row_key_name: Optional[object] = None, - azure_table_insert_type: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + azure_table_default_partition_key_value: Optional[Any] = None, + azure_table_partition_key_name: Optional[Any] = None, + azure_table_row_key_name: Optional[Any] = None, + azure_table_insert_type: Optional[Any] = None, **kwargs ): - super(AzureTableSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(AzureTableSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'AzureTableSink' # type: str self.azure_table_default_partition_key_value = azure_table_default_partition_key_value self.azure_table_partition_key_name = azure_table_partition_key_name @@ -7972,30 +8329,33 @@ class AzureTableSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param azure_table_source_query: Azure Table source query. Type: string (or Expression with resultType string). - :type azure_table_source_query: object + :type azure_table_source_query: any :param azure_table_source_ignore_table_not_found: Azure Table source ignore table not found. Type: boolean (or Expression with resultType boolean). - :type azure_table_source_ignore_table_not_found: object + :type azure_table_source_ignore_table_not_found: any """ _validation = { @@ -8008,6 +8368,7 @@ class AzureTableSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'azure_table_source_query': {'key': 'azureTableSourceQuery', 'type': 'object'}, @@ -8017,17 +8378,18 @@ class AzureTableSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - azure_table_source_query: Optional[object] = None, - azure_table_source_ignore_table_not_found: Optional[object] = None, + azure_table_source_query: Optional[Any] = None, + azure_table_source_ignore_table_not_found: Optional[Any] = None, **kwargs ): - super(AzureTableSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(AzureTableSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'AzureTableSource' # type: str self.azure_table_source_query = azure_table_source_query self.azure_table_source_ignore_table_not_found = azure_table_source_ignore_table_not_found @@ -8040,7 +8402,7 @@ class AzureTableStorageLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -8050,15 +8412,15 @@ class AzureTableStorageLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: The connection string. It is mutually exclusive with sasUri property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param account_key: The Azure key vault secret reference of accountKey in connection string. :type account_key: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param sas_uri: SAS URI of the Azure Storage resource. It is mutually exclusive with connectionString property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type sas_uri: object + :type sas_uri: any :param sas_token: The Azure key vault secret reference of sasToken in sas uri. :type sas_token: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are @@ -8088,14 +8450,14 @@ class AzureTableStorageLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_string: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_string: Optional[Any] = None, account_key: Optional["AzureKeyVaultSecretReference"] = None, - sas_uri: Optional[object] = None, + sas_uri: Optional[Any] = None, sas_token: Optional["AzureKeyVaultSecretReference"] = None, encrypted_credential: Optional[str] = None, **kwargs @@ -8116,23 +8478,23 @@ class BinaryDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder @@ -8165,12 +8527,12 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, location: Optional["DatasetLocation"] = None, compression: Optional["DatasetCompression"] = None, @@ -8192,7 +8554,7 @@ class FormatReadSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str """ @@ -8213,7 +8575,7 @@ class FormatReadSettings(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(FormatReadSettings, self).__init__(**kwargs) @@ -8228,7 +8590,7 @@ class BinaryReadSettings(FormatReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param compression_properties: Compression settings. @@ -8248,7 +8610,7 @@ class BinaryReadSettings(FormatReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, compression_properties: Optional["CompressionReadSettings"] = None, **kwargs ): @@ -8264,24 +8626,27 @@ class BinarySink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Binary store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreWriteSettings """ @@ -8298,22 +8663,24 @@ class BinarySink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreWriteSettings'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, store_settings: Optional["StoreWriteSettings"] = None, **kwargs ): - super(BinarySink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(BinarySink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'BinarySink' # type: str self.store_settings = store_settings @@ -8325,18 +8692,21 @@ class BinarySource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Binary store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param format_settings: Binary format settings. @@ -8353,6 +8723,7 @@ class BinarySource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreReadSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'BinaryReadSettings'}, } @@ -8360,15 +8731,16 @@ class BinarySource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, store_settings: Optional["StoreReadSettings"] = None, format_settings: Optional["BinaryReadSettings"] = None, **kwargs ): - super(BinarySource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(BinarySource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'BinarySource' # type: str self.store_settings = store_settings self.format_settings = format_settings @@ -8386,7 +8758,7 @@ class Trigger(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -8395,7 +8767,7 @@ class Trigger(msrest.serialization.Model): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] """ _validation = { @@ -8418,9 +8790,9 @@ class Trigger(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, **kwargs ): super(Trigger, self).__init__(**kwargs) @@ -8443,7 +8815,7 @@ class MultiplePipelineTrigger(Trigger): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -8452,7 +8824,7 @@ class MultiplePipelineTrigger(Trigger): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] :param pipelines: Pipelines that need to be started. :type pipelines: list[~azure.mgmt.datafactory.models.TriggerPipelineReference] """ @@ -8478,9 +8850,9 @@ class MultiplePipelineTrigger(Trigger): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, pipelines: Optional[List["TriggerPipelineReference"]] = None, **kwargs ): @@ -8498,7 +8870,7 @@ class BlobEventsTrigger(MultiplePipelineTrigger): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -8507,7 +8879,7 @@ class BlobEventsTrigger(MultiplePipelineTrigger): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] :param pipelines: Pipelines that need to be started. :type pipelines: list[~azure.mgmt.datafactory.models.TriggerPipelineReference] :param blob_path_begins_with: The blob path must begin with the pattern provided for trigger to @@ -8522,7 +8894,7 @@ class BlobEventsTrigger(MultiplePipelineTrigger): :param ignore_empty_blobs: If set to true, blobs with zero bytes will be ignored. :type ignore_empty_blobs: bool :param events: Required. The type of events that cause this trigger to fire. - :type events: list[str or ~azure.mgmt.datafactory.models.BlobEventTypesEnum] + :type events: list[str or ~azure.mgmt.datafactory.models.BlobEventTypes] :param scope: Required. The ARM resource ID of the Storage Account. :type scope: str """ @@ -8551,11 +8923,11 @@ class BlobEventsTrigger(MultiplePipelineTrigger): def __init__( self, *, - events: List[Union[str, "BlobEventTypesEnum"]], + events: List[Union[str, "BlobEventTypes"]], scope: str, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, pipelines: Optional[List["TriggerPipelineReference"]] = None, blob_path_begins_with: Optional[str] = None, blob_path_ends_with: Optional[str] = None, @@ -8578,35 +8950,41 @@ class BlobSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param blob_writer_overwrite_files: Blob writer overwrite files. Type: boolean (or Expression with resultType boolean). - :type blob_writer_overwrite_files: object + :type blob_writer_overwrite_files: any :param blob_writer_date_time_format: Blob writer date time format. Type: string (or Expression with resultType string). - :type blob_writer_date_time_format: object + :type blob_writer_date_time_format: any :param blob_writer_add_header: Blob writer add header. Type: boolean (or Expression with resultType boolean). - :type blob_writer_add_header: object + :type blob_writer_add_header: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any + :param metadata: Specify the custom metadata to be added to sink data. Type: array of objects + (or Expression with resultType array of objects). + :type metadata: list[~azure.mgmt.datafactory.models.MetadataItem] """ _validation = { @@ -8621,33 +8999,38 @@ class BlobSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'blob_writer_overwrite_files': {'key': 'blobWriterOverwriteFiles', 'type': 'object'}, 'blob_writer_date_time_format': {'key': 'blobWriterDateTimeFormat', 'type': 'object'}, 'blob_writer_add_header': {'key': 'blobWriterAddHeader', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - blob_writer_overwrite_files: Optional[object] = None, - blob_writer_date_time_format: Optional[object] = None, - blob_writer_add_header: Optional[object] = None, - copy_behavior: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + blob_writer_overwrite_files: Optional[Any] = None, + blob_writer_date_time_format: Optional[Any] = None, + blob_writer_add_header: Optional[Any] = None, + copy_behavior: Optional[Any] = None, + metadata: Optional[List["MetadataItem"]] = None, **kwargs ): - super(BlobSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(BlobSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'BlobSink' # type: str self.blob_writer_overwrite_files = blob_writer_overwrite_files self.blob_writer_date_time_format = blob_writer_date_time_format self.blob_writer_add_header = blob_writer_add_header self.copy_behavior = copy_behavior + self.metadata = metadata class BlobSource(CopySource): @@ -8657,27 +9040,30 @@ class BlobSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param treat_empty_as_null: Treat empty as null. Type: boolean (or Expression with resultType boolean). - :type treat_empty_as_null: object + :type treat_empty_as_null: any :param skip_header_line_count: Number of header lines to skip from each blob. Type: integer (or Expression with resultType integer). - :type skip_header_line_count: object + :type skip_header_line_count: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any """ _validation = { @@ -8690,6 +9076,7 @@ class BlobSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'treat_empty_as_null': {'key': 'treatEmptyAsNull', 'type': 'object'}, 'skip_header_line_count': {'key': 'skipHeaderLineCount', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, @@ -8698,16 +9085,17 @@ class BlobSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - treat_empty_as_null: Optional[object] = None, - skip_header_line_count: Optional[object] = None, - recursive: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + treat_empty_as_null: Optional[Any] = None, + skip_header_line_count: Optional[Any] = None, + recursive: Optional[Any] = None, **kwargs ): - super(BlobSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(BlobSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'BlobSource' # type: str self.treat_empty_as_null = treat_empty_as_null self.skip_header_line_count = skip_header_line_count @@ -8723,7 +9111,7 @@ class BlobTrigger(MultiplePipelineTrigger): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -8732,7 +9120,7 @@ class BlobTrigger(MultiplePipelineTrigger): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] :param pipelines: Pipelines that need to be started. :type pipelines: list[~azure.mgmt.datafactory.models.TriggerPipelineReference] :param folder_path: Required. The path of the container/folder that will trigger the pipeline. @@ -8770,9 +9158,9 @@ def __init__( folder_path: str, max_concurrency: int, linked_service: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, pipelines: Optional[List["TriggerPipelineReference"]] = None, **kwargs ): @@ -8790,7 +9178,7 @@ class CassandraLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -8800,25 +9188,25 @@ class CassandraLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. Host name for connection. Type: string (or Expression with resultType string). - :type host: object + :type host: any :param authentication_type: AuthenticationType to be used for connection. Type: string (or Expression with resultType string). - :type authentication_type: object + :type authentication_type: any :param port: The port for the connection. Type: integer (or Expression with resultType integer). - :type port: object + :type port: any :param username: Username for authentication. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password for authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -8844,17 +9232,17 @@ class CassandraLinkedService(LinkedService): def __init__( self, *, - host: object, - additional_properties: Optional[Dict[str, object]] = None, + host: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - authentication_type: Optional[object] = None, - port: Optional[object] = None, - username: Optional[object] = None, + annotations: Optional[List[Any]] = None, + authentication_type: Optional[Any] = None, + port: Optional[Any] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(CassandraLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -8874,27 +9262,30 @@ class CassandraSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Should be a SQL-92 query expression or Cassandra Query Language (CQL) command. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param consistency_level: The consistency level specifies how many Cassandra servers must respond to a read request before returning data to the client application. Cassandra checks the specified number of Cassandra servers for data to satisfy the read request. Must be one of @@ -8915,6 +9306,7 @@ class CassandraSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -8924,17 +9316,18 @@ class CassandraSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, consistency_level: Optional[Union[str, "CassandraSourceReadConsistencyLevels"]] = None, **kwargs ): - super(CassandraSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(CassandraSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'CassandraSource' # type: str self.query = query self.consistency_level = consistency_level @@ -8947,32 +9340,32 @@ class CassandraTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name of the Cassandra database. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any :param keyspace: The keyspace of the Cassandra database. Type: string (or Expression with resultType string). - :type keyspace: object + :type keyspace: any """ _validation = { @@ -8998,15 +9391,15 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - keyspace: Optional[object] = None, + table_name: Optional[Any] = None, + keyspace: Optional[Any] = None, **kwargs ): super(CassandraTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -9024,7 +9417,7 @@ class ChainingTrigger(Trigger): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -9033,7 +9426,7 @@ class ChainingTrigger(Trigger): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] :param pipeline: Required. Pipeline for which runs are created when all upstream pipelines complete successfully. :type pipeline: ~azure.mgmt.datafactory.models.TriggerPipelineReference @@ -9069,9 +9462,9 @@ def __init__( pipeline: "TriggerPipelineReference", depends_on: List["PipelineReference"], run_dimension: str, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, **kwargs ): super(ChainingTrigger, self).__init__(additional_properties=additional_properties, description=description, annotations=annotations, **kwargs) @@ -9132,9 +9525,9 @@ class CmdkeySetup(CustomSetupBase): :param type: Required. The type of custom setup.Constant filled by server. :type type: str :param target_name: Required. The server name of data source access. - :type target_name: object + :type target_name: any :param user_name: Required. The user name of data source access. - :type user_name: object + :type user_name: any :param password: Required. The password of data source access. :type password: ~azure.mgmt.datafactory.models.SecretBase """ @@ -9156,8 +9549,8 @@ class CmdkeySetup(CustomSetupBase): def __init__( self, *, - target_name: object, - user_name: object, + target_name: Any, + user_name: Any, password: "SecretBase", **kwargs ): @@ -9197,29 +9590,29 @@ class CommonDataServiceForAppsEntityDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param entity_name: The logical name of the entity. Type: string (or Expression with resultType string). - :type entity_name: object + :type entity_name: any """ _validation = { @@ -9244,14 +9637,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - entity_name: Optional[object] = None, + entity_name: Optional[Any] = None, **kwargs ): super(CommonDataServiceForAppsEntityDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -9266,7 +9659,7 @@ class CommonDataServiceForAppsLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -9276,49 +9669,46 @@ class CommonDataServiceForAppsLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param deployment_type: Required. The deployment type of the Common Data Service for Apps instance. 'Online' for Common Data Service for Apps Online and 'OnPremisesWithIfd' for Common Data Service for Apps on-premises with Ifd. Type: string (or Expression with resultType - string). Possible values include: "Online", "OnPremisesWithIfd". - :type deployment_type: str or ~azure.mgmt.datafactory.models.DynamicsDeploymentType + string). + :type deployment_type: any :param host_name: The host name of the on-premises Common Data Service for Apps server. The property is required for on-prem and not allowed for online. Type: string (or Expression with resultType string). - :type host_name: object + :type host_name: any :param port: The port of on-premises Common Data Service for Apps server. The property is required for on-prem and not allowed for online. Default is 443. Type: integer (or Expression with resultType integer), minimum: 0. - :type port: object + :type port: any :param service_uri: The URL to the Microsoft Common Data Service for Apps server. The property is required for on-line and not allowed for on-prem. Type: string (or Expression with resultType string). - :type service_uri: object + :type service_uri: any :param organization_name: The organization name of the Common Data Service for Apps instance. The property is required for on-prem and required for online when there are more than one Common Data Service for Apps instances associated with the user. Type: string (or Expression with resultType string). - :type organization_name: object + :type organization_name: any :param authentication_type: Required. The authentication type to connect to Common Data Service for Apps server. 'Office365' for online scenario, 'Ifd' for on-premises with Ifd scenario. 'AADServicePrincipal' for Server-To-Server authentication in online scenario. Type: string (or - Expression with resultType string). Possible values include: "Office365", "Ifd", - "AADServicePrincipal". - :type authentication_type: str or ~azure.mgmt.datafactory.models.DynamicsAuthenticationType + Expression with resultType string). + :type authentication_type: any :param username: User name to access the Common Data Service for Apps instance. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password to access the Common Data Service for Apps instance. :type password: ~azure.mgmt.datafactory.models.SecretBase :param service_principal_id: The client ID of the application in Azure Active Directory used for Server-To-Server authentication. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_credential_type: The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' - for certificate. Type: string (or Expression with resultType string). Possible values include: - "ServicePrincipalKey", "ServicePrincipalCert". - :type service_principal_credential_type: str or - ~azure.mgmt.datafactory.models.DynamicsServicePrincipalCredentialType + for certificate. Type: string (or Expression with resultType string). + :type service_principal_credential_type: any :param service_principal_credential: The credential of the service principal object in Azure Active Directory. If servicePrincipalCredentialType is 'ServicePrincipalKey', servicePrincipalCredential can be SecureString or AzureKeyVaultSecretReference. If @@ -9328,7 +9718,7 @@ class CommonDataServiceForAppsLinkedService(LinkedService): :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -9344,16 +9734,16 @@ class CommonDataServiceForAppsLinkedService(LinkedService): 'description': {'key': 'description', 'type': 'str'}, 'parameters': {'key': 'parameters', 'type': '{ParameterSpecification}'}, 'annotations': {'key': 'annotations', 'type': '[object]'}, - 'deployment_type': {'key': 'typeProperties.deploymentType', 'type': 'str'}, + 'deployment_type': {'key': 'typeProperties.deploymentType', 'type': 'object'}, 'host_name': {'key': 'typeProperties.hostName', 'type': 'object'}, 'port': {'key': 'typeProperties.port', 'type': 'object'}, 'service_uri': {'key': 'typeProperties.serviceUri', 'type': 'object'}, 'organization_name': {'key': 'typeProperties.organizationName', 'type': 'object'}, - 'authentication_type': {'key': 'typeProperties.authenticationType', 'type': 'str'}, + 'authentication_type': {'key': 'typeProperties.authenticationType', 'type': 'object'}, 'username': {'key': 'typeProperties.username', 'type': 'object'}, 'password': {'key': 'typeProperties.password', 'type': 'SecretBase'}, 'service_principal_id': {'key': 'typeProperties.servicePrincipalId', 'type': 'object'}, - 'service_principal_credential_type': {'key': 'typeProperties.servicePrincipalCredentialType', 'type': 'str'}, + 'service_principal_credential_type': {'key': 'typeProperties.servicePrincipalCredentialType', 'type': 'object'}, 'service_principal_credential': {'key': 'typeProperties.servicePrincipalCredential', 'type': 'SecretBase'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, } @@ -9361,23 +9751,23 @@ class CommonDataServiceForAppsLinkedService(LinkedService): def __init__( self, *, - deployment_type: Union[str, "DynamicsDeploymentType"], - authentication_type: Union[str, "DynamicsAuthenticationType"], - additional_properties: Optional[Dict[str, object]] = None, + deployment_type: Any, + authentication_type: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - host_name: Optional[object] = None, - port: Optional[object] = None, - service_uri: Optional[object] = None, - organization_name: Optional[object] = None, - username: Optional[object] = None, + annotations: Optional[List[Any]] = None, + host_name: Optional[Any] = None, + port: Optional[Any] = None, + service_uri: Optional[Any] = None, + organization_name: Optional[Any] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - service_principal_id: Optional[object] = None, - service_principal_credential_type: Optional[Union[str, "DynamicsServicePrincipalCredentialType"]] = None, + service_principal_id: Optional[Any] = None, + service_principal_credential_type: Optional[Any] = None, service_principal_credential: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(CommonDataServiceForAppsLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -9403,34 +9793,37 @@ class CommonDataServiceForAppsSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: Required. The write behavior for the operation. Possible values include: "Upsert". :type write_behavior: str or ~azure.mgmt.datafactory.models.DynamicsSinkWriteBehavior :param ignore_null_values: The flag indicating whether to ignore null values from input dataset (except key fields) during write operation. Default is false. Type: boolean (or Expression with resultType boolean). - :type ignore_null_values: object + :type ignore_null_values: any :param alternate_key_name: The logical name of the alternate key which will be used when upserting records. Type: string (or Expression with resultType string). - :type alternate_key_name: object + :type alternate_key_name: any """ _validation = { @@ -9446,6 +9839,7 @@ class CommonDataServiceForAppsSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'str'}, 'ignore_null_values': {'key': 'ignoreNullValues', 'type': 'object'}, 'alternate_key_name': {'key': 'alternateKeyName', 'type': 'object'}, @@ -9455,17 +9849,18 @@ def __init__( self, *, write_behavior: Union[str, "DynamicsSinkWriteBehavior"], - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - ignore_null_values: Optional[object] = None, - alternate_key_name: Optional[object] = None, - **kwargs - ): - super(CommonDataServiceForAppsSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + ignore_null_values: Optional[Any] = None, + alternate_key_name: Optional[Any] = None, + **kwargs + ): + super(CommonDataServiceForAppsSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'CommonDataServiceForAppsSink' # type: str self.write_behavior = write_behavior self.ignore_null_values = ignore_null_values @@ -9479,21 +9874,24 @@ class CommonDataServiceForAppsSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: FetchXML is a proprietary query language that is used in Microsoft Common Data Service for Apps (online & on-premises). Type: string (or Expression with resultType string). - :type query: object + :type query: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -9509,6 +9907,7 @@ class CommonDataServiceForAppsSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -9516,15 +9915,16 @@ class CommonDataServiceForAppsSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(CommonDataServiceForAppsSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(CommonDataServiceForAppsSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'CommonDataServiceForAppsSource' # type: str self.query = query self.additional_columns = additional_columns @@ -9577,7 +9977,7 @@ class CompressionReadSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The Compression setting type.Constant filled by server. :type type: str """ @@ -9598,7 +9998,7 @@ class CompressionReadSettings(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(CompressionReadSettings, self).__init__(**kwargs) @@ -9613,7 +10013,7 @@ class ConcurLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -9623,31 +10023,31 @@ class ConcurLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_properties: Properties used to connect to Concur. It is mutually exclusive with any other properties in the linked service. Type: object. - :type connection_properties: object + :type connection_properties: any :param client_id: Required. Application client_id supplied by Concur App Management. - :type client_id: object + :type client_id: any :param username: Required. The user name that you use to access Concur Service. - :type username: object + :type username: any :param password: The password corresponding to the user name that you provided in the username field. :type password: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -9676,19 +10076,19 @@ class ConcurLinkedService(LinkedService): def __init__( self, *, - client_id: object, - username: object, - additional_properties: Optional[Dict[str, object]] = None, + client_id: Any, + username: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_properties: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_properties: Optional[Any] = None, password: Optional["SecretBase"] = None, - use_encrypted_endpoints: Optional[object] = None, - use_host_verification: Optional[object] = None, - use_peer_verification: Optional[object] = None, - encrypted_credential: Optional[object] = None, + use_encrypted_endpoints: Optional[Any] = None, + use_host_verification: Optional[Any] = None, + use_peer_verification: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(ConcurLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -9710,28 +10110,28 @@ class ConcurObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -9756,14 +10156,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(ConcurObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -9778,27 +10178,30 @@ class ConcurSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -9811,6 +10214,7 @@ class ConcurSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -9819,16 +10223,17 @@ class ConcurSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(ConcurSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(ConcurSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'ConcurSource' # type: str self.query = query @@ -9868,54 +10273,6 @@ def __init__( self.status = None -class ControlActivity(Activity): - """Base class for all control activities like IfCondition, ForEach , Until. - - 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] - :param name: Required. Activity name. - :type name: str - :param type: Required. Type of activity.Constant filled by server. - :type type: str - :param description: Activity description. - :type description: str - :param depends_on: Activity depends on condition. - :type depends_on: list[~azure.mgmt.datafactory.models.ActivityDependency] - :param user_properties: Activity user properties. - :type user_properties: list[~azure.mgmt.datafactory.models.UserProperty] - """ - - _validation = { - 'name': {'required': True}, - 'type': {'required': True}, - } - - _attribute_map = { - 'additional_properties': {'key': '', 'type': '{object}'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - 'depends_on': {'key': 'dependsOn', 'type': '[ActivityDependency]'}, - 'user_properties': {'key': 'userProperties', 'type': '[UserProperty]'}, - } - - def __init__( - self, - *, - name: str, - additional_properties: Optional[Dict[str, object]] = None, - description: Optional[str] = None, - depends_on: Optional[List["ActivityDependency"]] = None, - user_properties: Optional[List["UserProperty"]] = None, - **kwargs - ): - super(ControlActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, **kwargs) - self.type = 'Container' # type: str - - class CopyActivity(ExecutionActivity): """Copy activity. @@ -9923,7 +10280,7 @@ class CopyActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -9947,22 +10304,22 @@ class CopyActivity(ExecutionActivity): :param sink: Required. Copy activity sink. :type sink: ~azure.mgmt.datafactory.models.CopySink :param translator: Copy activity translator. If not specified, tabular translator is used. - :type translator: object + :type translator: any :param enable_staging: Specifies whether to copy data via an interim staging. Default value is false. Type: boolean (or Expression with resultType boolean). - :type enable_staging: object + :type enable_staging: any :param staging_settings: Specifies interim staging settings when EnableStaging is true. :type staging_settings: ~azure.mgmt.datafactory.models.StagingSettings :param parallel_copies: Maximum number of concurrent sessions opened on the source or sink to avoid overloading the data store. Type: integer (or Expression with resultType integer), minimum: 0. - :type parallel_copies: object + :type parallel_copies: any :param data_integration_units: Maximum number of data integration units that can be used to perform this data movement. Type: integer (or Expression with resultType integer), minimum: 0. - :type data_integration_units: object + :type data_integration_units: any :param enable_skip_incompatible_row: Whether to skip incompatible row. Default value is false. Type: boolean (or Expression with resultType boolean). - :type enable_skip_incompatible_row: object + :type enable_skip_incompatible_row: any :param redirect_incompatible_row_settings: Redirect incompatible row settings when EnableSkipIncompatibleRow is true. :type redirect_incompatible_row_settings: @@ -9973,12 +10330,12 @@ class CopyActivity(ExecutionActivity): :param log_settings: Log settings customer needs provide when enabling log. :type log_settings: ~azure.mgmt.datafactory.models.LogSettings :param preserve_rules: Preserve Rules. - :type preserve_rules: list[object] + :type preserve_rules: list[any] :param preserve: Preserve rules. - :type preserve: list[object] + :type preserve: list[any] :param validate_data_consistency: Whether to enable Data Consistency validation. Type: boolean (or Expression with resultType boolean). - :type validate_data_consistency: object + :type validate_data_consistency: any :param skip_error_file: Specify the fault tolerance for data consistency. :type skip_error_file: ~azure.mgmt.datafactory.models.SkipErrorFile """ @@ -10024,7 +10381,7 @@ def __init__( name: str, source: "CopySource", sink: "CopySink", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, @@ -10032,18 +10389,18 @@ def __init__( policy: Optional["ActivityPolicy"] = None, inputs: Optional[List["DatasetReference"]] = None, outputs: Optional[List["DatasetReference"]] = None, - translator: Optional[object] = None, - enable_staging: Optional[object] = None, + translator: Optional[Any] = None, + enable_staging: Optional[Any] = None, staging_settings: Optional["StagingSettings"] = None, - parallel_copies: Optional[object] = None, - data_integration_units: Optional[object] = None, - enable_skip_incompatible_row: Optional[object] = None, + parallel_copies: Optional[Any] = None, + data_integration_units: Optional[Any] = None, + enable_skip_incompatible_row: Optional[Any] = None, redirect_incompatible_row_settings: Optional["RedirectIncompatibleRowSettings"] = None, log_storage_settings: Optional["LogStorageSettings"] = None, log_settings: Optional["LogSettings"] = None, - preserve_rules: Optional[List[object]] = None, - preserve: Optional[List[object]] = None, - validate_data_consistency: Optional[object] = None, + preserve_rules: Optional[List[Any]] = None, + preserve: Optional[List[Any]] = None, + validate_data_consistency: Optional[Any] = None, skip_error_file: Optional["SkipErrorFile"] = None, **kwargs ): @@ -10073,10 +10430,10 @@ class CopyActivityLogSettings(msrest.serialization.Model): :param log_level: Gets or sets the log level, support: Info, Warning. Type: string (or Expression with resultType string). - :type log_level: object + :type log_level: any :param enable_reliable_logging: Specifies whether to enable reliable logging. Type: boolean (or Expression with resultType boolean). - :type enable_reliable_logging: object + :type enable_reliable_logging: any """ _attribute_map = { @@ -10087,8 +10444,8 @@ class CopyActivityLogSettings(msrest.serialization.Model): def __init__( self, *, - log_level: Optional[object] = None, - enable_reliable_logging: Optional[object] = None, + log_level: Optional[Any] = None, + enable_reliable_logging: Optional[Any] = None, **kwargs ): super(CopyActivityLogSettings, self).__init__(**kwargs) @@ -10106,7 +10463,7 @@ class CopyTranslator(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy translator type.Constant filled by server. :type type: str """ @@ -10127,7 +10484,7 @@ class CopyTranslator(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(CopyTranslator, self).__init__(**kwargs) @@ -10142,7 +10499,7 @@ class CosmosDbLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -10152,21 +10509,21 @@ class CosmosDbLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: The connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param account_endpoint: The endpoint of the Azure CosmosDB account. Type: string (or Expression with resultType string). - :type account_endpoint: object + :type account_endpoint: any :param database: The name of the database. Type: string (or Expression with resultType string). - :type database: object + :type database: any :param account_key: The account key of the Azure CosmosDB account. Type: SecureString or AzureKeyVaultSecretReference. :type account_key: ~azure.mgmt.datafactory.models.SecretBase :param service_principal_id: The client ID of the application in Azure Active Directory used for Server-To-Server authentication. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_credential_type: The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' for certificate. Type: string (or Expression with resultType string). Possible values include: @@ -10181,18 +10538,18 @@ class CosmosDbLinkedService(LinkedService): :type service_principal_credential: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The name or ID of the tenant to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param connection_mode: The connection mode used to access CosmosDB account. Type: string (or Expression with resultType string). Possible values include: "Gateway", "Direct". :type connection_mode: str or ~azure.mgmt.datafactory.models.CosmosDbConnectionMode :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -10222,22 +10579,22 @@ class CosmosDbLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_string: Optional[object] = None, - account_endpoint: Optional[object] = None, - database: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_string: Optional[Any] = None, + account_endpoint: Optional[Any] = None, + database: Optional[Any] = None, account_key: Optional["SecretBase"] = None, - service_principal_id: Optional[object] = None, + service_principal_id: Optional[Any] = None, service_principal_credential_type: Optional[Union[str, "CosmosDbServicePrincipalCredentialType"]] = None, service_principal_credential: Optional["SecretBase"] = None, - tenant: Optional[object] = None, - azure_cloud_type: Optional[object] = None, + tenant: Optional[Any] = None, + azure_cloud_type: Optional[Any] = None, connection_mode: Optional[Union[str, "CosmosDbConnectionMode"]] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(CosmosDbLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -10262,29 +10619,29 @@ class CosmosDbMongoDbApiCollectionDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param collection: Required. The collection name of the CosmosDB (MongoDB API) database. Type: string (or Expression with resultType string). - :type collection: object + :type collection: any """ _validation = { @@ -10310,13 +10667,13 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - collection: object, - additional_properties: Optional[Dict[str, object]] = None, + collection: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, **kwargs ): @@ -10332,7 +10689,7 @@ class CosmosDbMongoDbApiLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -10342,14 +10699,14 @@ class CosmosDbMongoDbApiLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The CosmosDB (MongoDB API) connection string. Type: string, SecureString or AzureKeyVaultSecretReference. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param database: Required. The name of the CosmosDB (MongoDB API) database that you want to access. Type: string (or Expression with resultType string). - :type database: object + :type database: any """ _validation = { @@ -10372,13 +10729,13 @@ class CosmosDbMongoDbApiLinkedService(LinkedService): def __init__( self, *, - connection_string: object, - database: object, - additional_properties: Optional[Dict[str, object]] = None, + connection_string: Any, + database: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, **kwargs ): super(CosmosDbMongoDbApiLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -10394,28 +10751,31 @@ class CosmosDbMongoDbApiSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: Specifies whether the document with same key to be overwritten (upsert) rather than throw exception (insert). The default value is "insert". Type: string (or Expression with resultType string). Type: string (or Expression with resultType string). - :type write_behavior: object + :type write_behavior: any """ _validation = { @@ -10430,22 +10790,24 @@ class CosmosDbMongoDbApiSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - write_behavior: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + write_behavior: Optional[Any] = None, **kwargs ): - super(CosmosDbMongoDbApiSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(CosmosDbMongoDbApiSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'CosmosDbMongoDbApiSink' # type: str self.write_behavior = write_behavior @@ -10457,32 +10819,35 @@ class CosmosDbMongoDbApiSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param filter: Specifies selection filter using query operators. To return all documents in a collection, omit this parameter or pass an empty document ({}). Type: string (or Expression with resultType string). - :type filter: object + :type filter: any :param cursor_methods: Cursor methods for Mongodb query. :type cursor_methods: ~azure.mgmt.datafactory.models.MongoDbCursorMethodsProperties :param batch_size: Specifies the number of documents to return in each batch of the response from MongoDB instance. In most cases, modifying the batch size will not affect the user or the application. This property's main purpose is to avoid hit the limitation of response size. Type: integer (or Expression with resultType integer). - :type batch_size: object + :type batch_size: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -10498,6 +10863,7 @@ class CosmosDbMongoDbApiSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'filter': {'key': 'filter', 'type': 'object'}, 'cursor_methods': {'key': 'cursorMethods', 'type': 'MongoDbCursorMethodsProperties'}, 'batch_size': {'key': 'batchSize', 'type': 'object'}, @@ -10508,18 +10874,19 @@ class CosmosDbMongoDbApiSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - filter: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + filter: Optional[Any] = None, cursor_methods: Optional["MongoDbCursorMethodsProperties"] = None, - batch_size: Optional[object] = None, - query_timeout: Optional[object] = None, + batch_size: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(CosmosDbMongoDbApiSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(CosmosDbMongoDbApiSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'CosmosDbMongoDbApiSource' # type: str self.filter = filter self.cursor_methods = cursor_methods @@ -10535,29 +10902,29 @@ class CosmosDbSqlApiCollectionDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param collection_name: Required. CosmosDB (SQL API) collection name. Type: string (or Expression with resultType string). - :type collection_name: object + :type collection_name: any """ _validation = { @@ -10583,13 +10950,13 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - collection_name: object, - additional_properties: Optional[Dict[str, object]] = None, + collection_name: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, **kwargs ): @@ -10605,27 +10972,30 @@ class CosmosDbSqlApiSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: Describes how to write data to Azure Cosmos DB. Type: string (or Expression with resultType string). Allowed values: insert and upsert. - :type write_behavior: object + :type write_behavior: any """ _validation = { @@ -10640,22 +11010,24 @@ class CosmosDbSqlApiSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - write_behavior: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + write_behavior: Optional[Any] = None, **kwargs ): - super(CosmosDbSqlApiSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(CosmosDbSqlApiSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'CosmosDbSqlApiSink' # type: str self.write_behavior = write_behavior @@ -10667,29 +11039,32 @@ class CosmosDbSqlApiSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: SQL API query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param page_size: Page size of the result. Type: integer (or Expression with resultType integer). - :type page_size: object + :type page_size: any :param preferred_regions: Preferred regions. Type: array of strings (or Expression with resultType array of strings). - :type preferred_regions: object + :type preferred_regions: any :param detect_datetime: Whether detect primitive values as datetime values. Type: boolean (or Expression with resultType boolean). - :type detect_datetime: object + :type detect_datetime: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -10705,6 +11080,7 @@ class CosmosDbSqlApiSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'page_size': {'key': 'pageSize', 'type': 'object'}, 'preferred_regions': {'key': 'preferredRegions', 'type': 'object'}, @@ -10715,18 +11091,19 @@ class CosmosDbSqlApiSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query: Optional[object] = None, - page_size: Optional[object] = None, - preferred_regions: Optional[object] = None, - detect_datetime: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query: Optional[Any] = None, + page_size: Optional[Any] = None, + preferred_regions: Optional[Any] = None, + detect_datetime: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(CosmosDbSqlApiSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(CosmosDbSqlApiSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'CosmosDbSqlApiSource' # type: str self.query = query self.page_size = page_size @@ -10742,7 +11119,7 @@ class CouchbaseLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -10752,16 +11129,16 @@ class CouchbaseLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param cred_string: The Azure key vault secret reference of credString in connection string. :type cred_string: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -10783,14 +11160,14 @@ class CouchbaseLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_string: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_string: Optional[Any] = None, cred_string: Optional["AzureKeyVaultSecretReference"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(CouchbaseLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -10807,27 +11184,30 @@ class CouchbaseSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -10840,6 +11220,7 @@ class CouchbaseSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -10848,16 +11229,17 @@ class CouchbaseSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(CouchbaseSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(CouchbaseSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'CouchbaseSource' # type: str self.query = query @@ -10869,28 +11251,28 @@ class CouchbaseTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -10915,14 +11297,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(CouchbaseTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -11060,6 +11442,181 @@ def __init__( self.run_id = run_id +class Credential(msrest.serialization.Model): + """The Azure Data Factory nested object which contains the information and credential which can be used to connect with related store or compute resource. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: ManagedIdentityCredential, ServicePrincipalCredential. + + 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, any] + :param type: Required. Type of credential.Constant filled by server. + :type type: str + :param description: Credential description. + :type description: str + :param annotations: List of tags that can be used for describing the Credential. + :type annotations: list[any] + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'type': {'key': 'type', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'annotations': {'key': 'annotations', 'type': '[object]'}, + } + + _subtype_map = { + 'type': {'ManagedIdentity': 'ManagedIdentityCredential', 'ServicePrincipal': 'ServicePrincipalCredential'} + } + + def __init__( + self, + *, + additional_properties: Optional[Dict[str, Any]] = None, + description: Optional[str] = None, + annotations: Optional[List[Any]] = None, + **kwargs + ): + super(Credential, self).__init__(**kwargs) + self.additional_properties = additional_properties + self.type = 'Credential' # type: str + self.description = description + self.annotations = annotations + + +class CredentialReference(msrest.serialization.Model): + """Credential reference type. + + 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, any] + :ivar type: Credential reference type. Has constant value: "CredentialReference". + :vartype type: str + :param reference_name: Required. Reference credential name. + :type reference_name: str + """ + + _validation = { + 'type': {'required': True, 'constant': True}, + 'reference_name': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'type': {'key': 'type', 'type': 'str'}, + 'reference_name': {'key': 'referenceName', 'type': 'str'}, + } + + type = "CredentialReference" + + def __init__( + self, + *, + reference_name: str, + additional_properties: Optional[Dict[str, Any]] = None, + **kwargs + ): + super(CredentialReference, self).__init__(**kwargs) + self.additional_properties = additional_properties + self.reference_name = reference_name + + +class SubResource(msrest.serialization.Model): + """Azure Data Factory nested resource, which belongs to a factory. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The resource identifier. + :vartype id: str + :ivar name: The resource name. + :vartype name: str + :ivar type: The resource type. + :vartype type: str + :ivar etag: Etag identifies change in the resource. + :vartype etag: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SubResource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.etag = None + + +class CredentialResource(SubResource): + """Credential resource type. + + 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 resource identifier. + :vartype id: str + :ivar name: The resource name. + :vartype name: str + :ivar type: The resource type. + :vartype type: str + :ivar etag: Etag identifies change in the resource. + :vartype etag: str + :param properties: Required. Properties of credentials. + :type properties: ~azure.mgmt.datafactory.models.Credential + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'Credential'}, + } + + def __init__( + self, + *, + properties: "Credential", + **kwargs + ): + super(CredentialResource, self).__init__(**kwargs) + self.properties = properties + + class CustomActivity(ExecutionActivity): """Custom activity type. @@ -11067,7 +11624,7 @@ class CustomActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -11084,24 +11641,24 @@ class CustomActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param command: Required. Command for custom activity Type: string (or Expression with resultType string). - :type command: object + :type command: any :param resource_linked_service: Resource linked service reference. :type resource_linked_service: ~azure.mgmt.datafactory.models.LinkedServiceReference :param folder_path: Folder path for resource files Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param reference_objects: Reference objects. :type reference_objects: ~azure.mgmt.datafactory.models.CustomActivityReferenceObject :param extended_properties: User defined property bag. There is no restriction on the keys or values that can be used. The user specified custom activity has the full responsibility to consume and interpret the content defined. - :type extended_properties: dict[str, object] + :type extended_properties: dict[str, any] :param retention_time_in_days: The retention time for the files submitted for custom activity. Type: double (or Expression with resultType double). - :type retention_time_in_days: object + :type retention_time_in_days: any :param auto_user_specification: Elevation level and scope for the user, default is nonadmin task. Type: string (or Expression with resultType double). - :type auto_user_specification: object + :type auto_user_specification: any """ _validation = { @@ -11132,19 +11689,19 @@ def __init__( self, *, name: str, - command: object, - additional_properties: Optional[Dict[str, object]] = None, + command: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, resource_linked_service: Optional["LinkedServiceReference"] = None, - folder_path: Optional[object] = None, + folder_path: Optional[Any] = None, reference_objects: Optional["CustomActivityReferenceObject"] = None, - extended_properties: Optional[Dict[str, object]] = None, - retention_time_in_days: Optional[object] = None, - auto_user_specification: Optional[object] = None, + extended_properties: Optional[Dict[str, Any]] = None, + retention_time_in_days: Optional[Any] = None, + auto_user_specification: Optional[Any] = None, **kwargs ): super(CustomActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, linked_service_name=linked_service_name, policy=policy, **kwargs) @@ -11191,28 +11748,28 @@ class CustomDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param type_properties: Custom dataset properties. - :type type_properties: object + :type type_properties: any """ _validation = { @@ -11237,14 +11794,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - type_properties: Optional[object] = None, + type_properties: Optional[Any] = None, **kwargs ): super(CustomDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -11259,7 +11816,7 @@ class CustomDataSourceLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -11269,9 +11826,9 @@ class CustomDataSourceLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param type_properties: Required. Custom linked service properties. - :type type_properties: object + :type type_properties: any """ _validation = { @@ -11292,12 +11849,12 @@ class CustomDataSourceLinkedService(LinkedService): def __init__( self, *, - type_properties: object, - additional_properties: Optional[Dict[str, object]] = None, + type_properties: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, **kwargs ): super(CustomDataSourceLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -11314,7 +11871,7 @@ class CustomEventsTrigger(MultiplePipelineTrigger): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -11323,7 +11880,7 @@ class CustomEventsTrigger(MultiplePipelineTrigger): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] :param pipelines: Pipelines that need to be started. :type pipelines: list[~azure.mgmt.datafactory.models.TriggerPipelineReference] :param subject_begins_with: The event subject must begin with the pattern provided for trigger @@ -11333,7 +11890,7 @@ class CustomEventsTrigger(MultiplePipelineTrigger): fire. At least one of these must be provided: subjectBeginsWith, subjectEndsWith. :type subject_ends_with: str :param events: Required. The list of event types that cause this trigger to fire. - :type events: list[object] + :type events: list[any] :param scope: Required. The ARM resource ID of the Azure Event Grid Topic. :type scope: str """ @@ -11361,11 +11918,11 @@ class CustomEventsTrigger(MultiplePipelineTrigger): def __init__( self, *, - events: List[object], + events: List[Any], scope: str, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, pipelines: Optional[List["TriggerPipelineReference"]] = None, subject_begins_with: Optional[str] = None, subject_ends_with: Optional[str] = None, @@ -11386,7 +11943,7 @@ class DatabricksNotebookActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -11404,12 +11961,12 @@ class DatabricksNotebookActivity(ExecutionActivity): :param notebook_path: Required. The absolute path of the notebook to be run in the Databricks Workspace. This path must begin with a slash. Type: string (or Expression with resultType string). - :type notebook_path: object + :type notebook_path: any :param base_parameters: Base parameters to be used for each run of this job.If the notebook takes a parameter that is not specified, the default value from the notebook will be used. - :type base_parameters: dict[str, object] + :type base_parameters: dict[str, any] :param libraries: A list of libraries to be installed on the cluster that will execute the job. - :type libraries: list[dict[str, object]] + :type libraries: list[dict[str, any]] """ _validation = { @@ -11436,15 +11993,15 @@ def __init__( self, *, name: str, - notebook_path: object, - additional_properties: Optional[Dict[str, object]] = None, + notebook_path: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, - base_parameters: Optional[Dict[str, object]] = None, - libraries: Optional[List[Dict[str, object]]] = None, + base_parameters: Optional[Dict[str, Any]] = None, + libraries: Optional[List[Dict[str, Any]]] = None, **kwargs ): super(DatabricksNotebookActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, linked_service_name=linked_service_name, policy=policy, **kwargs) @@ -11461,7 +12018,7 @@ class DatabricksSparkJarActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -11479,11 +12036,11 @@ class DatabricksSparkJarActivity(ExecutionActivity): :param main_class_name: Required. The full name of the class containing the main method to be executed. This class must be contained in a JAR provided as a library. Type: string (or Expression with resultType string). - :type main_class_name: object + :type main_class_name: any :param parameters: Parameters that will be passed to the main method. - :type parameters: list[object] + :type parameters: list[any] :param libraries: A list of libraries to be installed on the cluster that will execute the job. - :type libraries: list[dict[str, object]] + :type libraries: list[dict[str, any]] """ _validation = { @@ -11510,15 +12067,15 @@ def __init__( self, *, name: str, - main_class_name: object, - additional_properties: Optional[Dict[str, object]] = None, + main_class_name: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, - parameters: Optional[List[object]] = None, - libraries: Optional[List[Dict[str, object]]] = None, + parameters: Optional[List[Any]] = None, + libraries: Optional[List[Dict[str, Any]]] = None, **kwargs ): super(DatabricksSparkJarActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, linked_service_name=linked_service_name, policy=policy, **kwargs) @@ -11535,7 +12092,7 @@ class DatabricksSparkPythonActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -11552,11 +12109,11 @@ class DatabricksSparkPythonActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param python_file: Required. The URI of the Python file to be executed. DBFS paths are supported. Type: string (or Expression with resultType string). - :type python_file: object + :type python_file: any :param parameters: Command line parameters that will be passed to the Python file. - :type parameters: list[object] + :type parameters: list[any] :param libraries: A list of libraries to be installed on the cluster that will execute the job. - :type libraries: list[dict[str, object]] + :type libraries: list[dict[str, any]] """ _validation = { @@ -11583,15 +12140,15 @@ def __init__( self, *, name: str, - python_file: object, - additional_properties: Optional[Dict[str, object]] = None, + python_file: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, - parameters: Optional[List[object]] = None, - libraries: Optional[List[Dict[str, object]]] = None, + parameters: Optional[List[Any]] = None, + libraries: Optional[List[Dict[str, Any]]] = None, **kwargs ): super(DatabricksSparkPythonActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, linked_service_name=linked_service_name, policy=policy, **kwargs) @@ -11607,17 +12164,23 @@ class DataFlow(msrest.serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: MappingDataFlow. - :param type: Type of data flow.Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Type of data flow.Constant filled by server. :type type: str :param description: The description of the data flow. :type description: str :param annotations: List of tags that can be used for describing the data flow. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this data flow is in. If not specified, Data flow will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DataFlowFolder """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str'}, 'description': {'key': 'description', 'type': 'str'}, @@ -11633,7 +12196,7 @@ def __init__( self, *, description: Optional[str] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DataFlowFolder"] = None, **kwargs ): @@ -11749,7 +12312,7 @@ class DataFlowDebugPackage(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param session_id: The ID of data flow debug session. :type session_id: str :param data_flow: Data flow instance. @@ -11777,7 +12340,7 @@ class DataFlowDebugPackage(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, session_id: Optional[str] = None, data_flow: Optional["DataFlowDebugResource"] = None, datasets: Optional[List["DatasetDebugResource"]] = None, @@ -11802,9 +12365,9 @@ class DataFlowDebugPackageDebugSettings(msrest.serialization.Model): :param source_settings: Source setting for data flow debug. :type source_settings: list[~azure.mgmt.datafactory.models.DataFlowSourceSetting] :param parameters: Data flow parameters. - :type parameters: dict[str, object] + :type parameters: dict[str, any] :param dataset_parameters: Parameters for dataset. - :type dataset_parameters: object + :type dataset_parameters: any """ _attribute_map = { @@ -11817,8 +12380,8 @@ def __init__( self, *, source_settings: Optional[List["DataFlowSourceSetting"]] = None, - parameters: Optional[Dict[str, object]] = None, - dataset_parameters: Optional[object] = None, + parameters: Optional[Dict[str, Any]] = None, + dataset_parameters: Optional[Any] = None, **kwargs ): super(DataFlowDebugPackageDebugSettings, self).__init__(**kwargs) @@ -11884,7 +12447,7 @@ class DataFlowDebugSessionInfo(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param data_flow_name: The name of the data flow. :type data_flow_name: str :param compute_type: Compute type of the cluster. @@ -11921,7 +12484,7 @@ class DataFlowDebugSessionInfo(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, data_flow_name: Optional[str] = None, compute_type: Optional[str] = None, core_count: Optional[int] = None, @@ -12008,13 +12571,13 @@ class DataFlowReference(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] - :ivar type: Required. Data flow reference type. Default value: "DataFlowReference". + :type additional_properties: dict[str, any] + :ivar type: Data flow reference type. Has constant value: "DataFlowReference". :vartype type: str :param reference_name: Required. Reference data flow name. :type reference_name: str :param dataset_parameters: Reference data flow parameters from dataset. - :type dataset_parameters: object + :type dataset_parameters: any """ _validation = { @@ -12035,8 +12598,8 @@ def __init__( self, *, reference_name: str, - additional_properties: Optional[Dict[str, object]] = None, - dataset_parameters: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + dataset_parameters: Optional[Any] = None, **kwargs ): super(DataFlowReference, self).__init__(**kwargs) @@ -12045,46 +12608,6 @@ def __init__( self.dataset_parameters = dataset_parameters -class SubResource(msrest.serialization.Model): - """Azure Data Factory nested resource, which belongs to a factory. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: The resource identifier. - :vartype id: str - :ivar name: The resource name. - :vartype name: str - :ivar type: The resource type. - :vartype type: str - :ivar etag: Etag identifies change in the resource. - :vartype etag: str - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'etag': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'etag': {'key': 'etag', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(SubResource, self).__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.etag = None - - class DataFlowResource(SubResource): """Data flow resource type. @@ -12257,7 +12780,7 @@ class DataFlowSourceSetting(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param source_name: The data flow source name. :type source_name: str :param row_limit: Defines the row limit of data flow source in debug. @@ -12273,7 +12796,7 @@ class DataFlowSourceSetting(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, source_name: Optional[str] = None, row_limit: Optional[int] = None, **kwargs @@ -12291,7 +12814,7 @@ class DataFlowStagingInfo(msrest.serialization.Model): :type linked_service: ~azure.mgmt.datafactory.models.LinkedServiceReference :param folder_path: Folder path for staging blob. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any """ _attribute_map = { @@ -12303,7 +12826,7 @@ def __init__( self, *, linked_service: Optional["LinkedServiceReference"] = None, - folder_path: Optional[object] = None, + folder_path: Optional[Any] = None, **kwargs ): super(DataFlowStagingInfo, self).__init__(**kwargs) @@ -12318,7 +12841,7 @@ class DataLakeAnalyticsUSQLActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -12335,24 +12858,24 @@ class DataLakeAnalyticsUSQLActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param script_path: Required. Case-sensitive path to folder that contains the U-SQL script. Type: string (or Expression with resultType string). - :type script_path: object + :type script_path: any :param script_linked_service: Required. Script linked service reference. :type script_linked_service: ~azure.mgmt.datafactory.models.LinkedServiceReference :param degree_of_parallelism: The maximum number of nodes simultaneously used to run the job. Default value is 1. Type: integer (or Expression with resultType integer), minimum: 1. - :type degree_of_parallelism: object + :type degree_of_parallelism: any :param priority: Determines which jobs out of all that are queued should be selected to run first. The lower the number, the higher the priority. Default value is 1000. Type: integer (or Expression with resultType integer), minimum: 1. - :type priority: object + :type priority: any :param parameters: Parameters for U-SQL job request. - :type parameters: dict[str, object] + :type parameters: dict[str, any] :param runtime_version: Runtime version of the U-SQL engine to use. Type: string (or Expression with resultType string). - :type runtime_version: object + :type runtime_version: any :param compilation_mode: Compilation mode of U-SQL. Must be one of these values : Semantic, Full and SingleBox. Type: string (or Expression with resultType string). - :type compilation_mode: object + :type compilation_mode: any """ _validation = { @@ -12384,19 +12907,19 @@ def __init__( self, *, name: str, - script_path: object, + script_path: Any, script_linked_service: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, - degree_of_parallelism: Optional[object] = None, - priority: Optional[object] = None, - parameters: Optional[Dict[str, object]] = None, - runtime_version: Optional[object] = None, - compilation_mode: Optional[object] = None, + degree_of_parallelism: Optional[Any] = None, + priority: Optional[Any] = None, + parameters: Optional[Dict[str, Any]] = None, + runtime_version: Optional[Any] = None, + compilation_mode: Optional[Any] = None, **kwargs ): super(DataLakeAnalyticsUSQLActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, linked_service_name=linked_service_name, policy=policy, **kwargs) @@ -12420,7 +12943,7 @@ class DatasetCompression(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset compression.Constant filled by server. :type type: str """ @@ -12441,7 +12964,7 @@ class DatasetCompression(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(DatasetCompression, self).__init__(**kwargs) @@ -12456,7 +12979,7 @@ class DatasetBZip2Compression(DatasetCompression): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset compression.Constant filled by server. :type type: str """ @@ -12473,7 +12996,7 @@ class DatasetBZip2Compression(DatasetCompression): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(DatasetBZip2Compression, self).__init__(additional_properties=additional_properties, **kwargs) @@ -12484,9 +13007,9 @@ class DatasetDataElement(msrest.serialization.Model): """Columns that define the structure of the dataset. :param name: Name of the column. Type: string (or Expression with resultType string). - :type name: object + :type name: any :param type: Type of the column. Type: string (or Expression with resultType string). - :type type: object + :type type: any """ _attribute_map = { @@ -12497,8 +13020,8 @@ class DatasetDataElement(msrest.serialization.Model): def __init__( self, *, - name: Optional[object] = None, - type: Optional[object] = None, + name: Optional[Any] = None, + type: Optional[Any] = None, **kwargs ): super(DatasetDataElement, self).__init__(**kwargs) @@ -12544,11 +13067,11 @@ class DatasetDeflateCompression(DatasetCompression): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset compression.Constant filled by server. :type type: str - :param level: The Deflate compression level. Possible values include: "Optimal", "Fastest". - :type level: str or ~azure.mgmt.datafactory.models.DatasetCompressionLevel + :param level: The Deflate compression level. + :type level: any """ _validation = { @@ -12558,14 +13081,14 @@ class DatasetDeflateCompression(DatasetCompression): _attribute_map = { 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, - 'level': {'key': 'level', 'type': 'str'}, + 'level': {'key': 'level', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - level: Optional[Union[str, "DatasetCompressionLevel"]] = None, + additional_properties: Optional[Dict[str, Any]] = None, + level: Optional[Any] = None, **kwargs ): super(DatasetDeflateCompression, self).__init__(additional_properties=additional_properties, **kwargs) @@ -12601,11 +13124,11 @@ class DatasetGZipCompression(DatasetCompression): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset compression.Constant filled by server. :type type: str - :param level: The GZip compression level. Possible values include: "Optimal", "Fastest". - :type level: str or ~azure.mgmt.datafactory.models.DatasetCompressionLevel + :param level: The GZip compression level. + :type level: any """ _validation = { @@ -12615,14 +13138,14 @@ class DatasetGZipCompression(DatasetCompression): _attribute_map = { 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, - 'level': {'key': 'level', 'type': 'str'}, + 'level': {'key': 'level', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - level: Optional[Union[str, "DatasetCompressionLevel"]] = None, + additional_properties: Optional[Dict[str, Any]] = None, + level: Optional[Any] = None, **kwargs ): super(DatasetGZipCompression, self).__init__(additional_properties=additional_properties, **kwargs) @@ -12669,12 +13192,12 @@ class DatasetReference(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar type: Required. Dataset reference type. Default value: "DatasetReference". + :ivar type: Dataset reference type. Has constant value: "DatasetReference". :vartype type: str :param reference_name: Required. Reference dataset name. :type reference_name: str :param parameters: Arguments for dataset. - :type parameters: dict[str, object] + :type parameters: dict[str, any] """ _validation = { @@ -12694,7 +13217,7 @@ def __init__( self, *, reference_name: str, - parameters: Optional[Dict[str, object]] = None, + parameters: Optional[Dict[str, Any]] = None, **kwargs ): super(DatasetReference, self).__init__(**kwargs) @@ -12752,11 +13275,11 @@ class DatasetSchemaDataElement(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Name of the schema column. Type: string (or Expression with resultType string). - :type name: object + :type name: any :param type: Type of the schema column. Type: string (or Expression with resultType string). - :type type: object + :type type: any """ _attribute_map = { @@ -12768,9 +13291,9 @@ class DatasetSchemaDataElement(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - name: Optional[object] = None, - type: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + name: Optional[Any] = None, + type: Optional[Any] = None, **kwargs ): super(DatasetSchemaDataElement, self).__init__(**kwargs) @@ -12786,7 +13309,7 @@ class DatasetTarCompression(DatasetCompression): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset compression.Constant filled by server. :type type: str """ @@ -12803,7 +13326,7 @@ class DatasetTarCompression(DatasetCompression): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(DatasetTarCompression, self).__init__(additional_properties=additional_properties, **kwargs) @@ -12817,11 +13340,11 @@ class DatasetTarGZipCompression(DatasetCompression): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset compression.Constant filled by server. :type type: str - :param level: The TarGZip compression level. Possible values include: "Optimal", "Fastest". - :type level: str or ~azure.mgmt.datafactory.models.DatasetCompressionLevel + :param level: The TarGZip compression level. + :type level: any """ _validation = { @@ -12831,14 +13354,14 @@ class DatasetTarGZipCompression(DatasetCompression): _attribute_map = { 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, - 'level': {'key': 'level', 'type': 'str'}, + 'level': {'key': 'level', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - level: Optional[Union[str, "DatasetCompressionLevel"]] = None, + additional_properties: Optional[Dict[str, Any]] = None, + level: Optional[Any] = None, **kwargs ): super(DatasetTarGZipCompression, self).__init__(additional_properties=additional_properties, **kwargs) @@ -12853,11 +13376,11 @@ class DatasetZipDeflateCompression(DatasetCompression): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset compression.Constant filled by server. :type type: str - :param level: The ZipDeflate compression level. Possible values include: "Optimal", "Fastest". - :type level: str or ~azure.mgmt.datafactory.models.DatasetCompressionLevel + :param level: The ZipDeflate compression level. + :type level: any """ _validation = { @@ -12867,14 +13390,14 @@ class DatasetZipDeflateCompression(DatasetCompression): _attribute_map = { 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, - 'level': {'key': 'level', 'type': 'str'}, + 'level': {'key': 'level', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - level: Optional[Union[str, "DatasetCompressionLevel"]] = None, + additional_properties: Optional[Dict[str, Any]] = None, + level: Optional[Any] = None, **kwargs ): super(DatasetZipDeflateCompression, self).__init__(additional_properties=additional_properties, **kwargs) @@ -12889,7 +13412,7 @@ class Db2LinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -12899,36 +13422,36 @@ class Db2LinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: The connection string. It is mutually exclusive with server, database, authenticationType, userName, packageCollection and certificateCommonName property. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param server: Server name for connection. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param database: Database name for connection. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string). - :type database: object + :type database: any :param authentication_type: AuthenticationType to be used for connection. It is mutually exclusive with connectionString property. Possible values include: "Basic". :type authentication_type: str or ~azure.mgmt.datafactory.models.Db2AuthenticationType :param username: Username for authentication. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password for authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param package_collection: Under where packages are created when querying database. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string). - :type package_collection: object + :type package_collection: any :param certificate_common_name: Certificate Common Name when TLS is enabled. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string). - :type certificate_common_name: object + :type certificate_common_name: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. It is mutually exclusive with connectionString property. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -12956,20 +13479,20 @@ class Db2LinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_string: Optional[object] = None, - server: Optional[object] = None, - database: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_string: Optional[Any] = None, + server: Optional[Any] = None, + database: Optional[Any] = None, authentication_type: Optional[Union[str, "Db2AuthenticationType"]] = None, - username: Optional[object] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - package_collection: Optional[object] = None, - certificate_common_name: Optional[object] = None, - encrypted_credential: Optional[object] = None, + package_collection: Optional[Any] = None, + certificate_common_name: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(Db2LinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -12992,26 +13515,29 @@ class Db2Source(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -13024,6 +13550,7 @@ class Db2Source(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -13032,16 +13559,17 @@ class Db2Source(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(Db2Source, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(Db2Source, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'Db2Source' # type: str self.query = query @@ -13053,34 +13581,34 @@ class Db2TableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param schema_type_properties_schema: The Db2 schema name. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any :param table: The Db2 table name. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -13107,16 +13635,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, - table: Optional[object] = None, + table_name: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, + table: Optional[Any] = None, **kwargs ): super(Db2TableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -13133,7 +13661,7 @@ class DeleteActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -13150,13 +13678,13 @@ class DeleteActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param recursive: If true, files or sub-folders under current folder path will be deleted recursively. Default is false. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param max_concurrent_connections: The max concurrent connections to connect data source at the same time. :type max_concurrent_connections: int :param enable_logging: Whether to record detailed logs of delete-activity execution. Default value is false. Type: boolean (or Expression with resultType boolean). - :type enable_logging: object + :type enable_logging: any :param log_storage_settings: Log storage settings customer need to provide when enableLogging is true. :type log_storage_settings: ~azure.mgmt.datafactory.models.LogStorageSettings @@ -13195,15 +13723,15 @@ def __init__( *, name: str, dataset: "DatasetReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, - recursive: Optional[object] = None, + recursive: Optional[Any] = None, max_concurrent_connections: Optional[int] = None, - enable_logging: Optional[object] = None, + enable_logging: Optional[Any] = None, log_storage_settings: Optional["LogStorageSettings"] = None, store_settings: Optional["StoreReadSettings"] = None, **kwargs @@ -13246,23 +13774,23 @@ class DelimitedTextDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder @@ -13270,31 +13798,30 @@ class DelimitedTextDataset(Dataset): :type location: ~azure.mgmt.datafactory.models.DatasetLocation :param column_delimiter: The column delimiter. Type: string (or Expression with resultType string). - :type column_delimiter: object + :type column_delimiter: any :param row_delimiter: The row delimiter. Type: string (or Expression with resultType string). - :type row_delimiter: object + :type row_delimiter: any :param encoding_name: The code page name of the preferred encoding. If miss, the default value is UTF-8, unless BOM denotes another Unicode encoding. Refer to the name column of the table in the following link to set supported values: https://msdn.microsoft.com/library/system.text.encoding.aspx. Type: string (or Expression with resultType string). - :type encoding_name: object - :param compression_codec: Possible values include: "none", "gzip", "snappy", "lzo", "bzip2", - "deflate", "zipDeflate", "lz4", "tar", "tarGZip". - :type compression_codec: str or ~azure.mgmt.datafactory.models.CompressionCodec - :param compression_level: The data compression method used for DelimitedText. Possible values - include: "Optimal", "Fastest". - :type compression_level: str or ~azure.mgmt.datafactory.models.DatasetCompressionLevel + :type encoding_name: any + :param compression_codec: The data compressionCodec. Type: string (or Expression with + resultType string). + :type compression_codec: any + :param compression_level: The data compression method used for DelimitedText. + :type compression_level: any :param quote_char: The quote character. Type: string (or Expression with resultType string). - :type quote_char: object + :type quote_char: any :param escape_char: The escape character. Type: string (or Expression with resultType string). - :type escape_char: object + :type escape_char: any :param first_row_as_header: When used as input, treat the first row of data as headers. When used as output,write the headers into the output as the first row of data. The default value is false. Type: boolean (or Expression with resultType boolean). - :type first_row_as_header: object + :type first_row_as_header: any :param null_value: The null value string. Type: string (or Expression with resultType string). - :type null_value: object + :type null_value: any """ _validation = { @@ -13316,8 +13843,8 @@ class DelimitedTextDataset(Dataset): 'column_delimiter': {'key': 'typeProperties.columnDelimiter', 'type': 'object'}, 'row_delimiter': {'key': 'typeProperties.rowDelimiter', 'type': 'object'}, 'encoding_name': {'key': 'typeProperties.encodingName', 'type': 'object'}, - 'compression_codec': {'key': 'typeProperties.compressionCodec', 'type': 'str'}, - 'compression_level': {'key': 'typeProperties.compressionLevel', 'type': 'str'}, + 'compression_codec': {'key': 'typeProperties.compressionCodec', 'type': 'object'}, + 'compression_level': {'key': 'typeProperties.compressionLevel', 'type': 'object'}, 'quote_char': {'key': 'typeProperties.quoteChar', 'type': 'object'}, 'escape_char': {'key': 'typeProperties.escapeChar', 'type': 'object'}, 'first_row_as_header': {'key': 'typeProperties.firstRowAsHeader', 'type': 'object'}, @@ -13328,23 +13855,23 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, location: Optional["DatasetLocation"] = None, - column_delimiter: Optional[object] = None, - row_delimiter: Optional[object] = None, - encoding_name: Optional[object] = None, - compression_codec: Optional[Union[str, "CompressionCodec"]] = None, - compression_level: Optional[Union[str, "DatasetCompressionLevel"]] = None, - quote_char: Optional[object] = None, - escape_char: Optional[object] = None, - first_row_as_header: Optional[object] = None, - null_value: Optional[object] = None, + column_delimiter: Optional[Any] = None, + row_delimiter: Optional[Any] = None, + encoding_name: Optional[Any] = None, + compression_codec: Optional[Any] = None, + compression_level: Optional[Any] = None, + quote_char: Optional[Any] = None, + escape_char: Optional[Any] = None, + first_row_as_header: Optional[Any] = None, + null_value: Optional[Any] = None, **kwargs ): super(DelimitedTextDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -13368,12 +13895,12 @@ class DelimitedTextReadSettings(FormatReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param skip_line_count: Indicates the number of non-empty rows to skip when reading data from input files. Type: integer (or Expression with resultType integer). - :type skip_line_count: object + :type skip_line_count: any :param compression_properties: Compression settings. :type compression_properties: ~azure.mgmt.datafactory.models.CompressionReadSettings """ @@ -13392,8 +13919,8 @@ class DelimitedTextReadSettings(FormatReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - skip_line_count: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + skip_line_count: Optional[Any] = None, compression_properties: Optional["CompressionReadSettings"] = None, **kwargs ): @@ -13410,24 +13937,27 @@ class DelimitedTextSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: DelimitedText store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreWriteSettings :param format_settings: DelimitedText format settings. @@ -13446,6 +13976,7 @@ class DelimitedTextSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreWriteSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'DelimitedTextWriteSettings'}, } @@ -13453,17 +13984,18 @@ class DelimitedTextSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, store_settings: Optional["StoreWriteSettings"] = None, format_settings: Optional["DelimitedTextWriteSettings"] = None, **kwargs ): - super(DelimitedTextSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(DelimitedTextSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'DelimitedTextSink' # type: str self.store_settings = store_settings self.format_settings = format_settings @@ -13476,18 +14008,21 @@ class DelimitedTextSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: DelimitedText store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param format_settings: DelimitedText format settings. @@ -13507,6 +14042,7 @@ class DelimitedTextSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreReadSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'DelimitedTextReadSettings'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, @@ -13515,16 +14051,17 @@ class DelimitedTextSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, store_settings: Optional["StoreReadSettings"] = None, format_settings: Optional["DelimitedTextReadSettings"] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(DelimitedTextSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(DelimitedTextSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'DelimitedTextSource' # type: str self.store_settings = store_settings self.format_settings = format_settings @@ -13538,22 +14075,22 @@ class DelimitedTextWriteSettings(FormatWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param quote_all_text: Indicates whether string values should always be enclosed with quotes. Type: boolean (or Expression with resultType boolean). - :type quote_all_text: object + :type quote_all_text: any :param file_extension: Required. The file extension used to create the files. Type: string (or Expression with resultType string). - :type file_extension: object + :type file_extension: any :param max_rows_per_file: Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer). - :type max_rows_per_file: object + :type max_rows_per_file: any :param file_name_prefix: Specifies the file name pattern :code:``_:code:``.:code:`` when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string). - :type file_name_prefix: object + :type file_name_prefix: any """ _validation = { @@ -13573,11 +14110,11 @@ class DelimitedTextWriteSettings(FormatWriteSettings): def __init__( self, *, - file_extension: object, - additional_properties: Optional[Dict[str, object]] = None, - quote_all_text: Optional[object] = None, - max_rows_per_file: Optional[object] = None, - file_name_prefix: Optional[object] = None, + file_extension: Any, + additional_properties: Optional[Dict[str, Any]] = None, + quote_all_text: Optional[Any] = None, + max_rows_per_file: Optional[Any] = None, + file_name_prefix: Optional[Any] = None, **kwargs ): super(DelimitedTextWriteSettings, self).__init__(additional_properties=additional_properties, **kwargs) @@ -13627,14 +14164,14 @@ class DistcpSettings(msrest.serialization.Model): :param resource_manager_endpoint: Required. Specifies the Yarn ResourceManager endpoint. Type: string (or Expression with resultType string). - :type resource_manager_endpoint: object + :type resource_manager_endpoint: any :param temp_script_path: Required. Specifies an existing folder path which will be used to store temp Distcp command script. The script file is generated by ADF and will be removed after Copy job finished. Type: string (or Expression with resultType string). - :type temp_script_path: object + :type temp_script_path: any :param distcp_options: Specifies the Distcp options. Type: string (or Expression with resultType string). - :type distcp_options: object + :type distcp_options: any """ _validation = { @@ -13651,9 +14188,9 @@ class DistcpSettings(msrest.serialization.Model): def __init__( self, *, - resource_manager_endpoint: object, - temp_script_path: object, - distcp_options: Optional[object] = None, + resource_manager_endpoint: Any, + temp_script_path: Any, + distcp_options: Optional[Any] = None, **kwargs ): super(DistcpSettings, self).__init__(**kwargs) @@ -13669,29 +14206,29 @@ class DocumentDbCollectionDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param collection_name: Required. Document Database collection name. Type: string (or Expression with resultType string). - :type collection_name: object + :type collection_name: any """ _validation = { @@ -13717,13 +14254,13 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - collection_name: object, - additional_properties: Optional[Dict[str, object]] = None, + collection_name: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, **kwargs ): @@ -13739,30 +14276,33 @@ class DocumentDbCollectionSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param nesting_separator: Nested properties separator. Default is . (dot). Type: string (or Expression with resultType string). - :type nesting_separator: object + :type nesting_separator: any :param write_behavior: Describes how to write data to Azure Cosmos DB. Type: string (or Expression with resultType string). Allowed values: insert and upsert. - :type write_behavior: object + :type write_behavior: any """ _validation = { @@ -13777,6 +14317,7 @@ class DocumentDbCollectionSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'nesting_separator': {'key': 'nestingSeparator', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'object'}, } @@ -13784,17 +14325,18 @@ class DocumentDbCollectionSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - nesting_separator: Optional[object] = None, - write_behavior: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + nesting_separator: Optional[Any] = None, + write_behavior: Optional[Any] = None, **kwargs ): - super(DocumentDbCollectionSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(DocumentDbCollectionSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'DocumentDbCollectionSink' # type: str self.nesting_separator = nesting_separator self.write_behavior = write_behavior @@ -13807,26 +14349,29 @@ class DocumentDbCollectionSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: Documents query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param nesting_separator: Nested properties separator. Type: string (or Expression with resultType string). - :type nesting_separator: object + :type nesting_separator: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -13842,6 +14387,7 @@ class DocumentDbCollectionSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'nesting_separator': {'key': 'nestingSeparator', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, @@ -13851,17 +14397,18 @@ class DocumentDbCollectionSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query: Optional[object] = None, - nesting_separator: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query: Optional[Any] = None, + nesting_separator: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(DocumentDbCollectionSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(DocumentDbCollectionSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'DocumentDbCollectionSource' # type: str self.query = query self.nesting_separator = nesting_separator @@ -13876,7 +14423,7 @@ class DrillLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -13886,16 +14433,16 @@ class DrillLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param pwd: The Azure key vault secret reference of password in connection string. :type pwd: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -13917,14 +14464,14 @@ class DrillLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_string: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_string: Optional[Any] = None, pwd: Optional["AzureKeyVaultSecretReference"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(DrillLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -13941,27 +14488,30 @@ class DrillSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -13974,6 +14524,7 @@ class DrillSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -13982,16 +14533,17 @@ class DrillSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(DrillSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(DrillSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'DrillSource' # type: str self.query = query @@ -14003,34 +14555,34 @@ class DrillTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Drill. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Drill. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -14057,16 +14609,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - table: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, + table_name: Optional[Any] = None, + table: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, **kwargs ): super(DrillTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -14080,10 +14632,10 @@ class DWCopyCommandDefaultValue(msrest.serialization.Model): """Default value. :param column_name: Column name. Type: object (or Expression with resultType string). - :type column_name: object + :type column_name: any :param default_value: The default value of the column. Type: object (or Expression with resultType string). - :type default_value: object + :type default_value: any """ _attribute_map = { @@ -14094,8 +14646,8 @@ class DWCopyCommandDefaultValue(msrest.serialization.Model): def __init__( self, *, - column_name: Optional[object] = None, - default_value: Optional[object] = None, + column_name: Optional[Any] = None, + default_value: Optional[Any] = None, **kwargs ): super(DWCopyCommandDefaultValue, self).__init__(**kwargs) @@ -14141,7 +14693,7 @@ class DynamicsAXLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -14151,13 +14703,13 @@ class DynamicsAXLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. The Dynamics AX (or Dynamics 365 Finance and Operations) instance OData endpoint. - :type url: object + :type url: any :param service_principal_id: Required. Specify the application's client ID. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: Required. Specify the application's key. Mark this field as a SecureString to store it securely in Data Factory, or reference a secret stored in Azure Key Vault. Type: string (or Expression with resultType string). @@ -14165,14 +14717,14 @@ class DynamicsAXLinkedService(LinkedService): :param tenant: Required. Specify the tenant information (domain name or tenant ID) under which your application resides. Retrieve it by hovering the mouse in the top-right corner of the Azure portal. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param aad_resource_id: Required. Specify the resource you are requesting authorization. Type: string (or Expression with resultType string). - :type aad_resource_id: object + :type aad_resource_id: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -14202,17 +14754,17 @@ class DynamicsAXLinkedService(LinkedService): def __init__( self, *, - url: object, - service_principal_id: object, + url: Any, + service_principal_id: Any, service_principal_key: "SecretBase", - tenant: object, - aad_resource_id: object, - additional_properties: Optional[Dict[str, object]] = None, + tenant: Any, + aad_resource_id: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - encrypted_credential: Optional[object] = None, + annotations: Optional[List[Any]] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(DynamicsAXLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -14232,29 +14784,29 @@ class DynamicsAXResourceDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param path: Required. The path of the Dynamics AX OData entity. Type: string (or Expression with resultType string). - :type path: object + :type path: any """ _validation = { @@ -14280,13 +14832,13 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - path: object, - additional_properties: Optional[Dict[str, object]] = None, + path: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, **kwargs ): @@ -14302,32 +14854,35 @@ class DynamicsAXSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any """ _validation = { @@ -14340,6 +14895,7 @@ class DynamicsAXSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -14349,17 +14905,18 @@ class DynamicsAXSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, - http_request_timeout: Optional[object] = None, + query: Optional[Any] = None, + http_request_timeout: Optional[Any] = None, **kwargs ): - super(DynamicsAXSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(DynamicsAXSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'DynamicsAXSource' # type: str self.query = query self.http_request_timeout = http_request_timeout @@ -14372,29 +14929,29 @@ class DynamicsCrmEntityDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param entity_name: The logical name of the entity. Type: string (or Expression with resultType string). - :type entity_name: object + :type entity_name: any """ _validation = { @@ -14419,14 +14976,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - entity_name: Optional[object] = None, + entity_name: Optional[Any] = None, **kwargs ): super(DynamicsCrmEntityDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -14441,7 +14998,7 @@ class DynamicsCrmLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -14451,47 +15008,43 @@ class DynamicsCrmLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param deployment_type: Required. The deployment type of the Dynamics CRM instance. 'Online' for Dynamics CRM Online and 'OnPremisesWithIfd' for Dynamics CRM on-premises with Ifd. Type: - string (or Expression with resultType string). Possible values include: "Online", - "OnPremisesWithIfd". - :type deployment_type: str or ~azure.mgmt.datafactory.models.DynamicsDeploymentType + string (or Expression with resultType string). + :type deployment_type: any :param host_name: The host name of the on-premises Dynamics CRM server. The property is required for on-prem and not allowed for online. Type: string (or Expression with resultType string). - :type host_name: object + :type host_name: any :param port: The port of on-premises Dynamics CRM server. The property is required for on-prem and not allowed for online. Default is 443. Type: integer (or Expression with resultType integer), minimum: 0. - :type port: object + :type port: any :param service_uri: The URL to the Microsoft Dynamics CRM server. The property is required for on-line and not allowed for on-prem. Type: string (or Expression with resultType string). - :type service_uri: object + :type service_uri: any :param organization_name: The organization name of the Dynamics CRM instance. The property is required for on-prem and required for online when there are more than one Dynamics CRM instances associated with the user. Type: string (or Expression with resultType string). - :type organization_name: object + :type organization_name: any :param authentication_type: Required. The authentication type to connect to Dynamics CRM server. 'Office365' for online scenario, 'Ifd' for on-premises with Ifd scenario, 'AADServicePrincipal' for Server-To-Server authentication in online scenario. Type: string (or - Expression with resultType string). Possible values include: "Office365", "Ifd", - "AADServicePrincipal". - :type authentication_type: str or ~azure.mgmt.datafactory.models.DynamicsAuthenticationType + Expression with resultType string). + :type authentication_type: any :param username: User name to access the Dynamics CRM instance. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password to access the Dynamics CRM instance. :type password: ~azure.mgmt.datafactory.models.SecretBase :param service_principal_id: The client ID of the application in Azure Active Directory used for Server-To-Server authentication. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_credential_type: The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' - for certificate. Type: string (or Expression with resultType string). Possible values include: - "ServicePrincipalKey", "ServicePrincipalCert". - :type service_principal_credential_type: str or - ~azure.mgmt.datafactory.models.DynamicsServicePrincipalCredentialType + for certificate. Type: string (or Expression with resultType string). + :type service_principal_credential_type: any :param service_principal_credential: The credential of the service principal object in Azure Active Directory. If servicePrincipalCredentialType is 'ServicePrincipalKey', servicePrincipalCredential can be SecureString or AzureKeyVaultSecretReference. If @@ -14501,7 +15054,7 @@ class DynamicsCrmLinkedService(LinkedService): :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -14517,16 +15070,16 @@ class DynamicsCrmLinkedService(LinkedService): 'description': {'key': 'description', 'type': 'str'}, 'parameters': {'key': 'parameters', 'type': '{ParameterSpecification}'}, 'annotations': {'key': 'annotations', 'type': '[object]'}, - 'deployment_type': {'key': 'typeProperties.deploymentType', 'type': 'str'}, + 'deployment_type': {'key': 'typeProperties.deploymentType', 'type': 'object'}, 'host_name': {'key': 'typeProperties.hostName', 'type': 'object'}, 'port': {'key': 'typeProperties.port', 'type': 'object'}, 'service_uri': {'key': 'typeProperties.serviceUri', 'type': 'object'}, 'organization_name': {'key': 'typeProperties.organizationName', 'type': 'object'}, - 'authentication_type': {'key': 'typeProperties.authenticationType', 'type': 'str'}, + 'authentication_type': {'key': 'typeProperties.authenticationType', 'type': 'object'}, 'username': {'key': 'typeProperties.username', 'type': 'object'}, 'password': {'key': 'typeProperties.password', 'type': 'SecretBase'}, 'service_principal_id': {'key': 'typeProperties.servicePrincipalId', 'type': 'object'}, - 'service_principal_credential_type': {'key': 'typeProperties.servicePrincipalCredentialType', 'type': 'str'}, + 'service_principal_credential_type': {'key': 'typeProperties.servicePrincipalCredentialType', 'type': 'object'}, 'service_principal_credential': {'key': 'typeProperties.servicePrincipalCredential', 'type': 'SecretBase'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, } @@ -14534,23 +15087,23 @@ class DynamicsCrmLinkedService(LinkedService): def __init__( self, *, - deployment_type: Union[str, "DynamicsDeploymentType"], - authentication_type: Union[str, "DynamicsAuthenticationType"], - additional_properties: Optional[Dict[str, object]] = None, + deployment_type: Any, + authentication_type: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - host_name: Optional[object] = None, - port: Optional[object] = None, - service_uri: Optional[object] = None, - organization_name: Optional[object] = None, - username: Optional[object] = None, + annotations: Optional[List[Any]] = None, + host_name: Optional[Any] = None, + port: Optional[Any] = None, + service_uri: Optional[Any] = None, + organization_name: Optional[Any] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - service_principal_id: Optional[object] = None, - service_principal_credential_type: Optional[Union[str, "DynamicsServicePrincipalCredentialType"]] = None, + service_principal_id: Optional[Any] = None, + service_principal_credential_type: Optional[Any] = None, service_principal_credential: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(DynamicsCrmLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -14576,34 +15129,37 @@ class DynamicsCrmSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: Required. The write behavior for the operation. Possible values include: "Upsert". :type write_behavior: str or ~azure.mgmt.datafactory.models.DynamicsSinkWriteBehavior :param ignore_null_values: The flag indicating whether to ignore null values from input dataset (except key fields) during write operation. Default is false. Type: boolean (or Expression with resultType boolean). - :type ignore_null_values: object + :type ignore_null_values: any :param alternate_key_name: The logical name of the alternate key which will be used when upserting records. Type: string (or Expression with resultType string). - :type alternate_key_name: object + :type alternate_key_name: any """ _validation = { @@ -14619,6 +15175,7 @@ class DynamicsCrmSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'str'}, 'ignore_null_values': {'key': 'ignoreNullValues', 'type': 'object'}, 'alternate_key_name': {'key': 'alternateKeyName', 'type': 'object'}, @@ -14628,17 +15185,18 @@ def __init__( self, *, write_behavior: Union[str, "DynamicsSinkWriteBehavior"], - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - ignore_null_values: Optional[object] = None, - alternate_key_name: Optional[object] = None, - **kwargs - ): - super(DynamicsCrmSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + ignore_null_values: Optional[Any] = None, + alternate_key_name: Optional[Any] = None, + **kwargs + ): + super(DynamicsCrmSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'DynamicsCrmSink' # type: str self.write_behavior = write_behavior self.ignore_null_values = ignore_null_values @@ -14652,21 +15210,24 @@ class DynamicsCrmSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: FetchXML is a proprietary query language that is used in Microsoft Dynamics CRM (online & on-premises). Type: string (or Expression with resultType string). - :type query: object + :type query: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -14682,6 +15243,7 @@ class DynamicsCrmSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -14689,15 +15251,16 @@ class DynamicsCrmSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(DynamicsCrmSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(DynamicsCrmSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'DynamicsCrmSource' # type: str self.query = query self.additional_columns = additional_columns @@ -14710,29 +15273,29 @@ class DynamicsEntityDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param entity_name: The logical name of the entity. Type: string (or Expression with resultType string). - :type entity_name: object + :type entity_name: any """ _validation = { @@ -14757,14 +15320,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - entity_name: Optional[object] = None, + entity_name: Optional[Any] = None, **kwargs ): super(DynamicsEntityDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -14779,7 +15342,7 @@ class DynamicsLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -14789,44 +15352,42 @@ class DynamicsLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param deployment_type: Required. The deployment type of the Dynamics instance. 'Online' for Dynamics Online and 'OnPremisesWithIfd' for Dynamics on-premises with Ifd. Type: string (or - Expression with resultType string). Possible values include: "Online", "OnPremisesWithIfd". - :type deployment_type: str or ~azure.mgmt.datafactory.models.DynamicsDeploymentType + Expression with resultType string). + :type deployment_type: any :param host_name: The host name of the on-premises Dynamics server. The property is required for on-prem and not allowed for online. Type: string (or Expression with resultType string). - :type host_name: object + :type host_name: any :param port: The port of on-premises Dynamics server. The property is required for on-prem and not allowed for online. Default is 443. Type: integer (or Expression with resultType integer), minimum: 0. - :type port: object - :param service_uri: The URL to the Microsoft Dynamics server. The property is required for on- - line and not allowed for on-prem. Type: string (or Expression with resultType string). - :type service_uri: object + :type port: any + :param service_uri: The URL to the Microsoft Dynamics server. The property is required for + on-line and not allowed for on-prem. Type: string (or Expression with resultType string). + :type service_uri: any :param organization_name: The organization name of the Dynamics instance. The property is required for on-prem and required for online when there are more than one Dynamics instances associated with the user. Type: string (or Expression with resultType string). - :type organization_name: object + :type organization_name: any :param authentication_type: Required. The authentication type to connect to Dynamics server. 'Office365' for online scenario, 'Ifd' for on-premises with Ifd scenario, 'AADServicePrincipal' for Server-To-Server authentication in online scenario. Type: string (or Expression with - resultType string). Possible values include: "Office365", "Ifd", "AADServicePrincipal". - :type authentication_type: str or ~azure.mgmt.datafactory.models.DynamicsAuthenticationType + resultType string). + :type authentication_type: any :param username: User name to access the Dynamics instance. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password to access the Dynamics instance. :type password: ~azure.mgmt.datafactory.models.SecretBase :param service_principal_id: The client ID of the application in Azure Active Directory used for Server-To-Server authentication. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_credential_type: The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' - for certificate. Type: string (or Expression with resultType string). Possible values include: - "ServicePrincipalKey", "ServicePrincipalCert". - :type service_principal_credential_type: str or - ~azure.mgmt.datafactory.models.DynamicsServicePrincipalCredentialType + for certificate. Type: string (or Expression with resultType string). + :type service_principal_credential_type: str :param service_principal_credential: The credential of the service principal object in Azure Active Directory. If servicePrincipalCredentialType is 'ServicePrincipalKey', servicePrincipalCredential can be SecureString or AzureKeyVaultSecretReference. If @@ -14836,7 +15397,7 @@ class DynamicsLinkedService(LinkedService): :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -14852,12 +15413,12 @@ class DynamicsLinkedService(LinkedService): 'description': {'key': 'description', 'type': 'str'}, 'parameters': {'key': 'parameters', 'type': '{ParameterSpecification}'}, 'annotations': {'key': 'annotations', 'type': '[object]'}, - 'deployment_type': {'key': 'typeProperties.deploymentType', 'type': 'str'}, + 'deployment_type': {'key': 'typeProperties.deploymentType', 'type': 'object'}, 'host_name': {'key': 'typeProperties.hostName', 'type': 'object'}, 'port': {'key': 'typeProperties.port', 'type': 'object'}, 'service_uri': {'key': 'typeProperties.serviceUri', 'type': 'object'}, 'organization_name': {'key': 'typeProperties.organizationName', 'type': 'object'}, - 'authentication_type': {'key': 'typeProperties.authenticationType', 'type': 'str'}, + 'authentication_type': {'key': 'typeProperties.authenticationType', 'type': 'object'}, 'username': {'key': 'typeProperties.username', 'type': 'object'}, 'password': {'key': 'typeProperties.password', 'type': 'SecretBase'}, 'service_principal_id': {'key': 'typeProperties.servicePrincipalId', 'type': 'object'}, @@ -14869,23 +15430,23 @@ class DynamicsLinkedService(LinkedService): def __init__( self, *, - deployment_type: Union[str, "DynamicsDeploymentType"], - authentication_type: Union[str, "DynamicsAuthenticationType"], - additional_properties: Optional[Dict[str, object]] = None, + deployment_type: Any, + authentication_type: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - host_name: Optional[object] = None, - port: Optional[object] = None, - service_uri: Optional[object] = None, - organization_name: Optional[object] = None, - username: Optional[object] = None, + annotations: Optional[List[Any]] = None, + host_name: Optional[Any] = None, + port: Optional[Any] = None, + service_uri: Optional[Any] = None, + organization_name: Optional[Any] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - service_principal_id: Optional[object] = None, - service_principal_credential_type: Optional[Union[str, "DynamicsServicePrincipalCredentialType"]] = None, + service_principal_id: Optional[Any] = None, + service_principal_credential_type: Optional[str] = None, service_principal_credential: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(DynamicsLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -14911,34 +15472,37 @@ class DynamicsSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: Required. The write behavior for the operation. Possible values include: "Upsert". :type write_behavior: str or ~azure.mgmt.datafactory.models.DynamicsSinkWriteBehavior :param ignore_null_values: The flag indicating whether ignore null values from input dataset (except key fields) during write operation. Default is false. Type: boolean (or Expression with resultType boolean). - :type ignore_null_values: object + :type ignore_null_values: any :param alternate_key_name: The logical name of the alternate key which will be used when upserting records. Type: string (or Expression with resultType string). - :type alternate_key_name: object + :type alternate_key_name: any """ _validation = { @@ -14954,6 +15518,7 @@ class DynamicsSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'str'}, 'ignore_null_values': {'key': 'ignoreNullValues', 'type': 'object'}, 'alternate_key_name': {'key': 'alternateKeyName', 'type': 'object'}, @@ -14963,17 +15528,18 @@ def __init__( self, *, write_behavior: Union[str, "DynamicsSinkWriteBehavior"], - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - ignore_null_values: Optional[object] = None, - alternate_key_name: Optional[object] = None, - **kwargs - ): - super(DynamicsSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + ignore_null_values: Optional[Any] = None, + alternate_key_name: Optional[Any] = None, + **kwargs + ): + super(DynamicsSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'DynamicsSink' # type: str self.write_behavior = write_behavior self.ignore_null_values = ignore_null_values @@ -14987,21 +15553,24 @@ class DynamicsSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: FetchXML is a proprietary query language that is used in Microsoft Dynamics (online & on-premises). Type: string (or Expression with resultType string). - :type query: object + :type query: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -15017,6 +15586,7 @@ class DynamicsSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -15024,15 +15594,16 @@ class DynamicsSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(DynamicsSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(DynamicsSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'DynamicsSource' # type: str self.query = query self.additional_columns = additional_columns @@ -15045,7 +15616,7 @@ class EloquaLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -15055,28 +15626,28 @@ class EloquaLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param endpoint: Required. The endpoint of the Eloqua server. (i.e. eloqua.example.com). - :type endpoint: object + :type endpoint: any :param username: Required. The site name and user name of your Eloqua account in the form: sitename/username. (i.e. Eloqua/Alice). - :type username: object + :type username: any :param password: The password corresponding to the user name. :type password: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -15104,18 +15675,18 @@ class EloquaLinkedService(LinkedService): def __init__( self, *, - endpoint: object, - username: object, - additional_properties: Optional[Dict[str, object]] = None, + endpoint: Any, + username: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, password: Optional["SecretBase"] = None, - use_encrypted_endpoints: Optional[object] = None, - use_host_verification: Optional[object] = None, - use_peer_verification: Optional[object] = None, - encrypted_credential: Optional[object] = None, + use_encrypted_endpoints: Optional[Any] = None, + use_host_verification: Optional[Any] = None, + use_peer_verification: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(EloquaLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -15136,28 +15707,28 @@ class EloquaObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -15182,14 +15753,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(EloquaObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -15204,27 +15775,30 @@ class EloquaSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -15237,6 +15811,7 @@ class EloquaSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -15245,16 +15820,17 @@ class EloquaSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(EloquaSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(EloquaSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'EloquaSource' # type: str self.query = query @@ -15377,42 +15953,45 @@ class ExcelDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param location: The location of the excel storage. :type location: ~azure.mgmt.datafactory.models.DatasetLocation - :param sheet_name: The sheet of excel file. Type: string (or Expression with resultType + :param sheet_name: The sheet name of excel file. Type: string (or Expression with resultType string). - :type sheet_name: object + :type sheet_name: any + :param sheet_index: The sheet index of excel file and default value is 0. Type: integer (or + Expression with resultType integer). + :type sheet_index: any :param range: The partial data of one sheet. Type: string (or Expression with resultType string). - :type range: object + :type range: any :param first_row_as_header: When used as input, treat the first row of data as headers. When used as output,write the headers into the output as the first row of data. The default value is false. Type: boolean (or Expression with resultType boolean). - :type first_row_as_header: object + :type first_row_as_header: any :param compression: The data compression method used for the json dataset. :type compression: ~azure.mgmt.datafactory.models.DatasetCompression :param null_value: The null value string. Type: string (or Expression with resultType string). - :type null_value: object + :type null_value: any """ _validation = { @@ -15432,6 +16011,7 @@ class ExcelDataset(Dataset): 'folder': {'key': 'folder', 'type': 'DatasetFolder'}, 'location': {'key': 'typeProperties.location', 'type': 'DatasetLocation'}, 'sheet_name': {'key': 'typeProperties.sheetName', 'type': 'object'}, + 'sheet_index': {'key': 'typeProperties.sheetIndex', 'type': 'object'}, 'range': {'key': 'typeProperties.range', 'type': 'object'}, 'first_row_as_header': {'key': 'typeProperties.firstRowAsHeader', 'type': 'object'}, 'compression': {'key': 'typeProperties.compression', 'type': 'DatasetCompression'}, @@ -15442,25 +16022,27 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, location: Optional["DatasetLocation"] = None, - sheet_name: Optional[object] = None, - range: Optional[object] = None, - first_row_as_header: Optional[object] = None, + sheet_name: Optional[Any] = None, + sheet_index: Optional[Any] = None, + range: Optional[Any] = None, + first_row_as_header: Optional[Any] = None, compression: Optional["DatasetCompression"] = None, - null_value: Optional[object] = None, + null_value: Optional[Any] = None, **kwargs ): super(ExcelDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) self.type = 'Excel' # type: str self.location = location self.sheet_name = sheet_name + self.sheet_index = sheet_index self.range = range self.first_row_as_header = first_row_as_header self.compression = compression @@ -15474,18 +16056,21 @@ class ExcelSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Excel store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param additional_columns: Specifies the additional columns to be added to source data. Type: @@ -15503,6 +16088,7 @@ class ExcelSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreReadSettings'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -15510,15 +16096,16 @@ class ExcelSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, store_settings: Optional["StoreReadSettings"] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(ExcelSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(ExcelSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'ExcelSource' # type: str self.store_settings = store_settings self.additional_columns = additional_columns @@ -15531,7 +16118,7 @@ class ExecuteDataFlowActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -15556,14 +16143,14 @@ class ExecuteDataFlowActivity(ExecutionActivity): :type compute: ~azure.mgmt.datafactory.models.ExecuteDataFlowActivityTypePropertiesCompute :param trace_level: Trace level setting used for data flow monitoring output. Supported values are: 'coarse', 'fine', and 'none'. Type: string (or Expression with resultType string). - :type trace_level: object + :type trace_level: any :param continue_on_error: Continue on error setting used for data flow execution. Enables processing to continue if a sink fails. Type: boolean (or Expression with resultType boolean). - :type continue_on_error: object + :type continue_on_error: any :param run_concurrently: Concurrent run setting used for data flow execution. Allows sinks with the same save order to be processed concurrently. Type: boolean (or Expression with resultType boolean). - :type run_concurrently: object + :type run_concurrently: any """ _validation = { @@ -15595,7 +16182,7 @@ def __init__( *, name: str, data_flow: "DataFlowReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, @@ -15604,9 +16191,9 @@ def __init__( staging: Optional["DataFlowStagingInfo"] = None, integration_runtime: Optional["IntegrationRuntimeReference"] = None, compute: Optional["ExecuteDataFlowActivityTypePropertiesCompute"] = None, - trace_level: Optional[object] = None, - continue_on_error: Optional[object] = None, - run_concurrently: Optional[object] = None, + trace_level: Optional[Any] = None, + continue_on_error: Optional[Any] = None, + run_concurrently: Optional[Any] = None, **kwargs ): super(ExecuteDataFlowActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, linked_service_name=linked_service_name, policy=policy, **kwargs) @@ -15626,10 +16213,10 @@ class ExecuteDataFlowActivityTypePropertiesCompute(msrest.serialization.Model): :param compute_type: Compute type of the cluster which will execute data flow job. Possible values include: 'General', 'MemoryOptimized', 'ComputeOptimized'. Type: string (or Expression with resultType string). - :type compute_type: object + :type compute_type: any :param core_count: Core count of the cluster which will execute data flow job. Supported values are: 8, 16, 32, 48, 80, 144 and 272. Type: integer (or Expression with resultType integer). - :type core_count: object + :type core_count: any """ _attribute_map = { @@ -15640,8 +16227,8 @@ class ExecuteDataFlowActivityTypePropertiesCompute(msrest.serialization.Model): def __init__( self, *, - compute_type: Optional[object] = None, - core_count: Optional[object] = None, + compute_type: Optional[Any] = None, + core_count: Optional[Any] = None, **kwargs ): super(ExecuteDataFlowActivityTypePropertiesCompute, self).__init__(**kwargs) @@ -15649,14 +16236,14 @@ def __init__( self.core_count = core_count -class ExecutePipelineActivity(Activity): +class ExecutePipelineActivity(ControlActivity): """Execute pipeline activity. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -15670,7 +16257,7 @@ class ExecutePipelineActivity(Activity): :param pipeline: Required. Pipeline reference. :type pipeline: ~azure.mgmt.datafactory.models.PipelineReference :param parameters: Pipeline parameters. - :type parameters: dict[str, object] + :type parameters: dict[str, any] :param wait_on_completion: Defines whether activity execution will wait for the dependent pipeline execution to finish. Default is false. :type wait_on_completion: bool @@ -15699,11 +16286,11 @@ def __init__( *, name: str, pipeline: "PipelineReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, - parameters: Optional[Dict[str, object]] = None, + parameters: Optional[Dict[str, Any]] = None, wait_on_completion: Optional[bool] = None, **kwargs ): @@ -15721,7 +16308,7 @@ class ExecuteSSISPackageActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -15740,13 +16327,13 @@ class ExecuteSSISPackageActivity(ExecutionActivity): :type package_location: ~azure.mgmt.datafactory.models.SSISPackageLocation :param runtime: Specifies the runtime to execute SSIS package. The value should be "x86" or "x64". Type: string (or Expression with resultType string). - :type runtime: object + :type runtime: any :param logging_level: The logging level of SSIS package execution. Type: string (or Expression with resultType string). - :type logging_level: object + :type logging_level: any :param environment_path: The environment path to execute the SSIS package. Type: string (or Expression with resultType string). - :type environment_path: object + :type environment_path: any :param execution_credential: The package execution credential. :type execution_credential: ~azure.mgmt.datafactory.models.SSISExecutionCredential :param connect_via: Required. The integration runtime reference. @@ -15757,10 +16344,12 @@ class ExecuteSSISPackageActivity(ExecutionActivity): :type package_parameters: dict[str, ~azure.mgmt.datafactory.models.SSISExecutionParameter] :param project_connection_managers: The project level connection managers to execute the SSIS package. - :type project_connection_managers: dict[str, object] + :type project_connection_managers: dict[str, dict[str, + ~azure.mgmt.datafactory.models.SSISExecutionParameter]] :param package_connection_managers: The package level connection managers to execute the SSIS package. - :type package_connection_managers: dict[str, object] + :type package_connection_managers: dict[str, dict[str, + ~azure.mgmt.datafactory.models.SSISExecutionParameter]] :param property_overrides: The property overrides to execute the SSIS package. :type property_overrides: dict[str, ~azure.mgmt.datafactory.models.SSISPropertyOverride] :param log_location: SSIS package execution log location. @@ -15791,8 +16380,8 @@ class ExecuteSSISPackageActivity(ExecutionActivity): 'connect_via': {'key': 'typeProperties.connectVia', 'type': 'IntegrationRuntimeReference'}, 'project_parameters': {'key': 'typeProperties.projectParameters', 'type': '{SSISExecutionParameter}'}, 'package_parameters': {'key': 'typeProperties.packageParameters', 'type': '{SSISExecutionParameter}'}, - 'project_connection_managers': {'key': 'typeProperties.projectConnectionManagers', 'type': '{object}'}, - 'package_connection_managers': {'key': 'typeProperties.packageConnectionManagers', 'type': '{object}'}, + 'project_connection_managers': {'key': 'typeProperties.projectConnectionManagers', 'type': '{{SSISExecutionParameter}}'}, + 'package_connection_managers': {'key': 'typeProperties.packageConnectionManagers', 'type': '{{SSISExecutionParameter}}'}, 'property_overrides': {'key': 'typeProperties.propertyOverrides', 'type': '{SSISPropertyOverride}'}, 'log_location': {'key': 'typeProperties.logLocation', 'type': 'SSISLogLocation'}, } @@ -15803,20 +16392,20 @@ def __init__( name: str, package_location: "SSISPackageLocation", connect_via: "IntegrationRuntimeReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, - runtime: Optional[object] = None, - logging_level: Optional[object] = None, - environment_path: Optional[object] = None, + runtime: Optional[Any] = None, + logging_level: Optional[Any] = None, + environment_path: Optional[Any] = None, execution_credential: Optional["SSISExecutionCredential"] = None, project_parameters: Optional[Dict[str, "SSISExecutionParameter"]] = None, package_parameters: Optional[Dict[str, "SSISExecutionParameter"]] = None, - project_connection_managers: Optional[Dict[str, object]] = None, - package_connection_managers: Optional[Dict[str, object]] = None, + project_connection_managers: Optional[Dict[str, Dict[str, "SSISExecutionParameter"]]] = None, + package_connection_managers: Optional[Dict[str, Dict[str, "SSISExecutionParameter"]]] = None, property_overrides: Optional[Dict[str, "SSISPropertyOverride"]] = None, log_location: Optional["SSISLogLocation"] = None, **kwargs @@ -15954,7 +16543,7 @@ class Expression(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar type: Required. Expression type. Default value: "Expression". + :ivar type: Expression type. Has constant value: "Expression". :vartype type: str :param value: Required. Expression value. :type value: str @@ -16052,7 +16641,7 @@ class Factory(Resource): :vartype e_tag: str :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param identity: Managed service identity of the factory. :type identity: ~azure.mgmt.datafactory.models.FactoryIdentity :ivar provisioning_state: Factory provisioning state, example Succeeded. @@ -16105,7 +16694,7 @@ def __init__( *, location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, identity: Optional["FactoryIdentity"] = None, repo_configuration: Optional["FactoryRepoConfiguration"] = None, global_parameters: Optional[Dict[str, "GlobalParameterSpecification"]] = None, @@ -16257,7 +16846,7 @@ class FactoryIdentity(msrest.serialization.Model): :ivar tenant_id: The client tenant id of the identity. :vartype tenant_id: str :param user_assigned_identities: List of user assigned identities for the factory. - :type user_assigned_identities: dict[str, object] + :type user_assigned_identities: dict[str, any] """ _validation = { @@ -16277,7 +16866,7 @@ def __init__( self, *, type: Union[str, "FactoryIdentityType"], - user_assigned_identities: Optional[Dict[str, object]] = None, + user_assigned_identities: Optional[Dict[str, Any]] = None, **kwargs ): super(FactoryIdentity, self).__init__(**kwargs) @@ -16439,7 +17028,7 @@ class FileServerLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -16449,19 +17038,19 @@ class FileServerLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. Host name of the server. Type: string (or Expression with resultType string). - :type host: object + :type host: any :param user_id: User ID to logon the server. Type: string (or Expression with resultType string). - :type user_id: object + :type user_id: any :param password: Password to logon the server. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -16485,15 +17074,15 @@ class FileServerLinkedService(LinkedService): def __init__( self, *, - host: object, - additional_properties: Optional[Dict[str, object]] = None, + host: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - user_id: Optional[object] = None, + annotations: Optional[List[Any]] = None, + user_id: Optional[Any] = None, password: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(FileServerLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -16511,15 +17100,15 @@ class FileServerLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any """ _validation = { @@ -16536,9 +17125,9 @@ class FileServerLocation(DatasetLocation): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - folder_path: Optional[object] = None, - file_name: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + folder_path: Optional[Any] = None, + file_name: Optional[Any] = None, **kwargs ): super(FileServerLocation, self).__init__(additional_properties=additional_properties, folder_path=folder_path, file_name=file_name, **kwargs) @@ -16552,42 +17141,45 @@ class FileServerReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: FileServer wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: FileServer wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any :param file_filter: Specify a filter to be used to select a subset of files in the folderPath rather than all files. Type: string (or Expression with resultType string). - :type file_filter: object + :type file_filter: any """ _validation = { @@ -16598,6 +17190,7 @@ class FileServerReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -16613,21 +17206,22 @@ class FileServerReadSettings(StoreReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - recursive: Optional[object] = None, - wildcard_folder_path: Optional[object] = None, - wildcard_file_name: Optional[object] = None, - file_list_path: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + recursive: Optional[Any] = None, + wildcard_folder_path: Optional[Any] = None, + wildcard_file_name: Optional[Any] = None, + file_list_path: Optional[Any] = None, enable_partition_discovery: Optional[bool] = None, - partition_root_path: Optional[object] = None, - delete_files_after_completion: Optional[object] = None, - modified_datetime_start: Optional[object] = None, - modified_datetime_end: Optional[object] = None, - file_filter: Optional[object] = None, + partition_root_path: Optional[Any] = None, + delete_files_after_completion: Optional[Any] = None, + modified_datetime_start: Optional[Any] = None, + modified_datetime_end: Optional[Any] = None, + file_filter: Optional[Any] = None, **kwargs ): - super(FileServerReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(FileServerReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'FileServerReadSettings' # type: str self.recursive = recursive self.wildcard_folder_path = wildcard_folder_path @@ -16648,14 +17242,17 @@ class FileServerWriteSettings(StoreWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any """ _validation = { @@ -16666,18 +17263,20 @@ class FileServerWriteSettings(StoreWriteSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - copy_behavior: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + copy_behavior: Optional[Any] = None, **kwargs ): - super(FileServerWriteSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, copy_behavior=copy_behavior, **kwargs) + super(FileServerWriteSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, copy_behavior=copy_behavior, **kwargs) self.type = 'FileServerWriteSettings' # type: str @@ -16688,43 +17287,43 @@ class FileShareDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param folder_path: The path of the on-premises file system. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: The name of the on-premises file system. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any :param format: The format of the files. :type format: ~azure.mgmt.datafactory.models.DatasetStorageFormat :param file_filter: Specify a filter to be used to select a subset of files in the folderPath rather than all files. Type: string (or Expression with resultType string). - :type file_filter: object + :type file_filter: any :param compression: The data compression method used for the file system. :type compression: ~azure.mgmt.datafactory.models.DatasetCompression """ @@ -16757,19 +17356,19 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - folder_path: Optional[object] = None, - file_name: Optional[object] = None, - modified_datetime_start: Optional[object] = None, - modified_datetime_end: Optional[object] = None, + folder_path: Optional[Any] = None, + file_name: Optional[Any] = None, + modified_datetime_start: Optional[Any] = None, + modified_datetime_end: Optional[Any] = None, format: Optional["DatasetStorageFormat"] = None, - file_filter: Optional[object] = None, + file_filter: Optional[Any] = None, compression: Optional["DatasetCompression"] = None, **kwargs ): @@ -16791,26 +17390,29 @@ class FileSystemSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any """ _validation = { @@ -16825,22 +17427,24 @@ class FileSystemSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - copy_behavior: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + copy_behavior: Optional[Any] = None, **kwargs ): - super(FileSystemSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(FileSystemSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'FileSystemSink' # type: str self.copy_behavior = copy_behavior @@ -16852,21 +17456,24 @@ class FileSystemSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -16882,6 +17489,7 @@ class FileSystemSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -16889,28 +17497,29 @@ class FileSystemSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - recursive: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + recursive: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(FileSystemSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(FileSystemSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'FileSystemSource' # type: str self.recursive = recursive self.additional_columns = additional_columns -class FilterActivity(Activity): +class FilterActivity(ControlActivity): """Filter and return results from input array based on the conditions. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -16951,7 +17560,7 @@ def __init__( name: str, items: "Expression", condition: "Expression", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, @@ -16963,14 +17572,14 @@ def __init__( self.condition = condition -class ForEachActivity(Activity): +class ForEachActivity(ControlActivity): """This activity is used for iterating over a collection and execute given activities. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -17019,7 +17628,7 @@ def __init__( name: str, items: "Expression", activities: List["Activity"], - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, @@ -17042,33 +17651,36 @@ class FtpReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: Ftp wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: Ftp wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param use_binary_transfer: Specify whether to use binary transfer mode for FTP stores. :type use_binary_transfer: bool """ @@ -17081,6 +17693,7 @@ class FtpReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -17094,19 +17707,20 @@ class FtpReadSettings(StoreReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - recursive: Optional[object] = None, - wildcard_folder_path: Optional[object] = None, - wildcard_file_name: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + recursive: Optional[Any] = None, + wildcard_folder_path: Optional[Any] = None, + wildcard_file_name: Optional[Any] = None, enable_partition_discovery: Optional[bool] = None, - partition_root_path: Optional[object] = None, - delete_files_after_completion: Optional[object] = None, - file_list_path: Optional[object] = None, + partition_root_path: Optional[Any] = None, + delete_files_after_completion: Optional[Any] = None, + file_list_path: Optional[Any] = None, use_binary_transfer: Optional[bool] = None, **kwargs ): - super(FtpReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(FtpReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'FtpReadSettings' # type: str self.recursive = recursive self.wildcard_folder_path = wildcard_folder_path @@ -17125,7 +17739,7 @@ class FtpServerLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -17135,32 +17749,32 @@ class FtpServerLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. Host name of the FTP server. Type: string (or Expression with resultType string). - :type host: object + :type host: any :param port: The TCP port number that the FTP server uses to listen for client connections. Default value is 21. Type: integer (or Expression with resultType integer), minimum: 0. - :type port: object + :type port: any :param authentication_type: The authentication type to be used to connect to the FTP server. Possible values include: "Basic", "Anonymous". :type authentication_type: str or ~azure.mgmt.datafactory.models.FtpAuthenticationType :param user_name: Username to logon the FTP server. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password to logon the FTP server. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any :param enable_ssl: If true, connect to the FTP server over SSL/TLS channel. Default value is true. Type: boolean (or Expression with resultType boolean). - :type enable_ssl: object + :type enable_ssl: any :param enable_server_certificate_validation: If true, validate the FTP server SSL certificate when connect over SSL/TLS channel. Default value is true. Type: boolean (or Expression with resultType boolean). - :type enable_server_certificate_validation: object + :type enable_server_certificate_validation: any """ _validation = { @@ -17188,19 +17802,19 @@ class FtpServerLinkedService(LinkedService): def __init__( self, *, - host: object, - additional_properties: Optional[Dict[str, object]] = None, + host: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - port: Optional[object] = None, + annotations: Optional[List[Any]] = None, + port: Optional[Any] = None, authentication_type: Optional[Union[str, "FtpAuthenticationType"]] = None, - user_name: Optional[object] = None, + user_name: Optional[Any] = None, password: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, - enable_ssl: Optional[object] = None, - enable_server_certificate_validation: Optional[object] = None, + encrypted_credential: Optional[Any] = None, + enable_ssl: Optional[Any] = None, + enable_server_certificate_validation: Optional[Any] = None, **kwargs ): super(FtpServerLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -17222,15 +17836,15 @@ class FtpServerLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any """ _validation = { @@ -17247,9 +17861,9 @@ class FtpServerLocation(DatasetLocation): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - folder_path: Optional[object] = None, - file_name: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + folder_path: Optional[Any] = None, + file_name: Optional[Any] = None, **kwargs ): super(FtpServerLocation, self).__init__(additional_properties=additional_properties, folder_path=folder_path, file_name=file_name, **kwargs) @@ -17261,7 +17875,7 @@ class GetDataFactoryOperationStatusResponse(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param status: Status of the operation. :type status: str """ @@ -17274,7 +17888,7 @@ class GetDataFactoryOperationStatusResponse(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, status: Optional[str] = None, **kwargs ): @@ -17290,7 +17904,7 @@ class GetMetadataActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -17308,7 +17922,7 @@ class GetMetadataActivity(ExecutionActivity): :param dataset: Required. GetMetadata activity dataset reference. :type dataset: ~azure.mgmt.datafactory.models.DatasetReference :param field_list: Fields of metadata to get from dataset. - :type field_list: list[object] + :type field_list: list[any] :param store_settings: GetMetadata activity store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param format_settings: GetMetadata activity format settings. @@ -17341,13 +17955,13 @@ def __init__( *, name: str, dataset: "DatasetReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, - field_list: Optional[List[object]] = None, + field_list: Optional[List[Any]] = None, store_settings: Optional["StoreReadSettings"] = None, format_settings: Optional["FormatReadSettings"] = None, **kwargs @@ -17390,6 +18004,8 @@ class GitHubAccessTokenRequest(msrest.serialization.Model): :type git_hub_access_code: str :param git_hub_client_id: GitHub application client ID. :type git_hub_client_id: str + :param git_hub_client_secret: GitHub bring your own app client secret information. + :type git_hub_client_secret: ~azure.mgmt.datafactory.models.GitHubClientSecret :param git_hub_access_token_base_url: Required. GitHub access token base URL. :type git_hub_access_token_base_url: str """ @@ -17402,6 +18018,7 @@ class GitHubAccessTokenRequest(msrest.serialization.Model): _attribute_map = { 'git_hub_access_code': {'key': 'gitHubAccessCode', 'type': 'str'}, 'git_hub_client_id': {'key': 'gitHubClientId', 'type': 'str'}, + 'git_hub_client_secret': {'key': 'gitHubClientSecret', 'type': 'GitHubClientSecret'}, 'git_hub_access_token_base_url': {'key': 'gitHubAccessTokenBaseUrl', 'type': 'str'}, } @@ -17411,11 +18028,13 @@ def __init__( git_hub_access_code: str, git_hub_access_token_base_url: str, git_hub_client_id: Optional[str] = None, + git_hub_client_secret: Optional["GitHubClientSecret"] = None, **kwargs ): super(GitHubAccessTokenRequest, self).__init__(**kwargs) self.git_hub_access_code = git_hub_access_code self.git_hub_client_id = git_hub_client_id + self.git_hub_client_secret = git_hub_client_secret self.git_hub_access_token_base_url = git_hub_access_token_base_url @@ -17440,6 +18059,32 @@ def __init__( self.git_hub_access_token = git_hub_access_token +class GitHubClientSecret(msrest.serialization.Model): + """Client secret information for factory's bring your own app repository configuration. + + :param byoa_secret_akv_url: Bring your own app client secret AKV URL. + :type byoa_secret_akv_url: str + :param byoa_secret_name: Bring your own app client secret name in AKV. + :type byoa_secret_name: str + """ + + _attribute_map = { + 'byoa_secret_akv_url': {'key': 'byoaSecretAkvUrl', 'type': 'str'}, + 'byoa_secret_name': {'key': 'byoaSecretName', 'type': 'str'}, + } + + def __init__( + self, + *, + byoa_secret_akv_url: Optional[str] = None, + byoa_secret_name: Optional[str] = None, + **kwargs + ): + super(GitHubClientSecret, self).__init__(**kwargs) + self.byoa_secret_akv_url = byoa_secret_akv_url + self.byoa_secret_name = byoa_secret_name + + class GlobalParameterSpecification(msrest.serialization.Model): """Definition of a single parameter for an entity. @@ -17449,7 +18094,7 @@ class GlobalParameterSpecification(msrest.serialization.Model): "Int", "Float", "Bool", "Array". :type type: str or ~azure.mgmt.datafactory.models.GlobalParameterType :param value: Required. Value of parameter. - :type value: object + :type value: any """ _validation = { @@ -17466,7 +18111,7 @@ def __init__( self, *, type: Union[str, "GlobalParameterType"], - value: object, + value: Any, **kwargs ): super(GlobalParameterSpecification, self).__init__(**kwargs) @@ -17481,7 +18126,7 @@ class GoogleAdWordsLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -17491,10 +18136,10 @@ class GoogleAdWordsLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param client_customer_id: Required. The Client customer ID of the AdWords account that you want to fetch report data for. - :type client_customer_id: object + :type client_customer_id: any :param developer_token: Required. The developer token associated with the manager account that you use to grant access to the AdWords API. :type developer_token: ~azure.mgmt.datafactory.models.SecretBase @@ -17508,27 +18153,27 @@ class GoogleAdWordsLinkedService(LinkedService): :type refresh_token: ~azure.mgmt.datafactory.models.SecretBase :param client_id: The client id of the google application used to acquire the refresh token. Type: string (or Expression with resultType string). - :type client_id: object + :type client_id: any :param client_secret: The client secret of the google application used to acquire the refresh token. :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param email: The service account email ID that is used for ServiceAuthentication and can only be used on self-hosted IR. - :type email: object + :type email: any :param key_file_path: The full path to the .p12 key file that is used to authenticate the service account email address and can only be used on self-hosted IR. - :type key_file_path: object + :type key_file_path: any :param trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. - :type trusted_cert_path: object + :type trusted_cert_path: any :param use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. - :type use_system_trust_store: object + :type use_system_trust_store: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -17561,22 +18206,22 @@ class GoogleAdWordsLinkedService(LinkedService): def __init__( self, *, - client_customer_id: object, + client_customer_id: Any, developer_token: "SecretBase", authentication_type: Union[str, "GoogleAdWordsAuthenticationType"], - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, refresh_token: Optional["SecretBase"] = None, - client_id: Optional[object] = None, + client_id: Optional[Any] = None, client_secret: Optional["SecretBase"] = None, - email: Optional[object] = None, - key_file_path: Optional[object] = None, - trusted_cert_path: Optional[object] = None, - use_system_trust_store: Optional[object] = None, - encrypted_credential: Optional[object] = None, + email: Optional[Any] = None, + key_file_path: Optional[Any] = None, + trusted_cert_path: Optional[Any] = None, + use_system_trust_store: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(GoogleAdWordsLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -17601,28 +18246,28 @@ class GoogleAdWordsObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -17647,14 +18292,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(GoogleAdWordsObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -17669,27 +18314,30 @@ class GoogleAdWordsSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -17702,6 +18350,7 @@ class GoogleAdWordsSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -17710,16 +18359,17 @@ class GoogleAdWordsSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(GoogleAdWordsSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(GoogleAdWordsSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'GoogleAdWordsSource' # type: str self.query = query @@ -17731,7 +18381,7 @@ class GoogleBigQueryLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -17741,15 +18391,15 @@ class GoogleBigQueryLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param project: Required. The default BigQuery project to query against. - :type project: object + :type project: any :param additional_projects: A comma-separated list of public BigQuery projects to access. - :type additional_projects: object + :type additional_projects: any :param request_google_drive_scope: Whether to request access to Google Drive. Allowing Google Drive access enables support for federated tables that combine BigQuery data with data from Google Drive. The default value is false. - :type request_google_drive_scope: object + :type request_google_drive_scope: any :param authentication_type: Required. The OAuth 2.0 authentication mechanism used for authentication. ServiceAuthentication can only be used on self-hosted IR. Possible values include: "ServiceAuthentication", "UserAuthentication". @@ -17760,27 +18410,27 @@ class GoogleBigQueryLinkedService(LinkedService): :type refresh_token: ~azure.mgmt.datafactory.models.SecretBase :param client_id: The client id of the google application used to acquire the refresh token. Type: string (or Expression with resultType string). - :type client_id: object + :type client_id: any :param client_secret: The client secret of the google application used to acquire the refresh token. :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param email: The service account email ID that is used for ServiceAuthentication and can only be used on self-hosted IR. - :type email: object + :type email: any :param key_file_path: The full path to the .p12 key file that is used to authenticate the service account email address and can only be used on self-hosted IR. - :type key_file_path: object + :type key_file_path: any :param trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. - :type trusted_cert_path: object + :type trusted_cert_path: any :param use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. - :type use_system_trust_store: object + :type use_system_trust_store: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -17813,23 +18463,23 @@ class GoogleBigQueryLinkedService(LinkedService): def __init__( self, *, - project: object, + project: Any, authentication_type: Union[str, "GoogleBigQueryAuthenticationType"], - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - additional_projects: Optional[object] = None, - request_google_drive_scope: Optional[object] = None, + annotations: Optional[List[Any]] = None, + additional_projects: Optional[Any] = None, + request_google_drive_scope: Optional[Any] = None, refresh_token: Optional["SecretBase"] = None, - client_id: Optional[object] = None, + client_id: Optional[Any] = None, client_secret: Optional["SecretBase"] = None, - email: Optional[object] = None, - key_file_path: Optional[object] = None, - trusted_cert_path: Optional[object] = None, - use_system_trust_store: Optional[object] = None, - encrypted_credential: Optional[object] = None, + email: Optional[Any] = None, + key_file_path: Optional[Any] = None, + trusted_cert_path: Optional[Any] = None, + use_system_trust_store: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(GoogleBigQueryLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -17855,35 +18505,35 @@ class GoogleBigQueryObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using database + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Google BigQuery. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param dataset: The database name of the Google BigQuery. Type: string (or Expression with resultType string). - :type dataset: object + :type dataset: any """ _validation = { @@ -17910,16 +18560,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - table: Optional[object] = None, - dataset: Optional[object] = None, + table_name: Optional[Any] = None, + table: Optional[Any] = None, + dataset: Optional[Any] = None, **kwargs ): super(GoogleBigQueryObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -17936,27 +18586,30 @@ class GoogleBigQuerySource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -17969,6 +18622,7 @@ class GoogleBigQuerySource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -17977,16 +18631,17 @@ class GoogleBigQuerySource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(GoogleBigQuerySource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(GoogleBigQuerySource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'GoogleBigQuerySource' # type: str self.query = query @@ -17998,7 +18653,7 @@ class GoogleCloudStorageLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -18008,10 +18663,10 @@ class GoogleCloudStorageLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param access_key_id: The access key identifier of the Google Cloud Storage Identity and Access Management (IAM) user. Type: string (or Expression with resultType string). - :type access_key_id: object + :type access_key_id: any :param secret_access_key: The secret access key of the Google Cloud Storage Identity and Access Management (IAM) user. :type secret_access_key: ~azure.mgmt.datafactory.models.SecretBase @@ -18019,11 +18674,11 @@ class GoogleCloudStorageLinkedService(LinkedService): Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string). - :type service_url: object + :type service_url: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -18046,15 +18701,15 @@ class GoogleCloudStorageLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - access_key_id: Optional[object] = None, + annotations: Optional[List[Any]] = None, + access_key_id: Optional[Any] = None, secret_access_key: Optional["SecretBase"] = None, - service_url: Optional[object] = None, - encrypted_credential: Optional[object] = None, + service_url: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(GoogleCloudStorageLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -18072,21 +18727,21 @@ class GoogleCloudStorageLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param bucket_name: Specify the bucketName of Google Cloud Storage. Type: string (or Expression with resultType string). - :type bucket_name: object + :type bucket_name: any :param version: Specify the version of Google Cloud Storage. Type: string (or Expression with resultType string). - :type version: object + :type version: any """ _validation = { @@ -18105,11 +18760,11 @@ class GoogleCloudStorageLocation(DatasetLocation): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - folder_path: Optional[object] = None, - file_name: Optional[object] = None, - bucket_name: Optional[object] = None, - version: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + folder_path: Optional[Any] = None, + file_name: Optional[Any] = None, + bucket_name: Optional[Any] = None, + version: Optional[Any] = None, **kwargs ): super(GoogleCloudStorageLocation, self).__init__(additional_properties=additional_properties, folder_path=folder_path, file_name=file_name, **kwargs) @@ -18125,42 +18780,45 @@ class GoogleCloudStorageReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: Google Cloud Storage wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: Google Cloud Storage wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param prefix: The prefix filter for the Google Cloud Storage object name. Type: string (or Expression with resultType string). - :type prefix: object + :type prefix: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -18171,6 +18829,7 @@ class GoogleCloudStorageReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -18186,21 +18845,22 @@ class GoogleCloudStorageReadSettings(StoreReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - recursive: Optional[object] = None, - wildcard_folder_path: Optional[object] = None, - wildcard_file_name: Optional[object] = None, - prefix: Optional[object] = None, - file_list_path: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + recursive: Optional[Any] = None, + wildcard_folder_path: Optional[Any] = None, + wildcard_file_name: Optional[Any] = None, + prefix: Optional[Any] = None, + file_list_path: Optional[Any] = None, enable_partition_discovery: Optional[bool] = None, - partition_root_path: Optional[object] = None, - delete_files_after_completion: Optional[object] = None, - modified_datetime_start: Optional[object] = None, - modified_datetime_end: Optional[object] = None, + partition_root_path: Optional[Any] = None, + delete_files_after_completion: Optional[Any] = None, + modified_datetime_start: Optional[Any] = None, + modified_datetime_end: Optional[Any] = None, **kwargs ): - super(GoogleCloudStorageReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(GoogleCloudStorageReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'GoogleCloudStorageReadSettings' # type: str self.recursive = recursive self.wildcard_folder_path = wildcard_folder_path @@ -18221,7 +18881,7 @@ class GreenplumLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -18231,16 +18891,16 @@ class GreenplumLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param pwd: The Azure key vault secret reference of password in connection string. :type pwd: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -18262,14 +18922,14 @@ class GreenplumLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_string: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_string: Optional[Any] = None, pwd: Optional["AzureKeyVaultSecretReference"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(GreenplumLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -18286,27 +18946,30 @@ class GreenplumSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -18319,6 +18982,7 @@ class GreenplumSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -18327,16 +18991,17 @@ class GreenplumSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(GreenplumSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(GreenplumSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'GreenplumSource' # type: str self.query = query @@ -18348,34 +19013,34 @@ class GreenplumTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of Greenplum. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of Greenplum. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -18402,16 +19067,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - table: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, + table_name: Optional[Any] = None, + table: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, **kwargs ): super(GreenplumTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -18428,7 +19093,7 @@ class HBaseLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -18438,39 +19103,39 @@ class HBaseLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The IP address or host name of the HBase server. (i.e. 192.168.222.160). - :type host: object + :type host: any :param port: The TCP port that the HBase instance uses to listen for client connections. The default value is 9090. - :type port: object + :type port: any :param http_path: The partial URL corresponding to the HBase server. (i.e. /gateway/sandbox/hbase/version). - :type http_path: object + :type http_path: any :param authentication_type: Required. The authentication mechanism to use to connect to the HBase server. Possible values include: "Anonymous", "Basic". :type authentication_type: str or ~azure.mgmt.datafactory.models.HBaseAuthenticationType :param username: The user name used to connect to the HBase instance. - :type username: object + :type username: any :param password: The password corresponding to the user name. :type password: ~azure.mgmt.datafactory.models.SecretBase :param enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false. - :type enable_ssl: object + :type enable_ssl: any :param trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. - :type trusted_cert_path: object + :type trusted_cert_path: any :param allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false. - :type allow_host_name_cn_mismatch: object + :type allow_host_name_cn_mismatch: any :param allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false. - :type allow_self_signed_server_cert: object + :type allow_self_signed_server_cert: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -18502,22 +19167,22 @@ class HBaseLinkedService(LinkedService): def __init__( self, *, - host: object, + host: Any, authentication_type: Union[str, "HBaseAuthenticationType"], - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - port: Optional[object] = None, - http_path: Optional[object] = None, - username: Optional[object] = None, + annotations: Optional[List[Any]] = None, + port: Optional[Any] = None, + http_path: Optional[Any] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - enable_ssl: Optional[object] = None, - trusted_cert_path: Optional[object] = None, - allow_host_name_cn_mismatch: Optional[object] = None, - allow_self_signed_server_cert: Optional[object] = None, - encrypted_credential: Optional[object] = None, + enable_ssl: Optional[Any] = None, + trusted_cert_path: Optional[Any] = None, + allow_host_name_cn_mismatch: Optional[Any] = None, + allow_self_signed_server_cert: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(HBaseLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -18542,28 +19207,28 @@ class HBaseObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -18588,14 +19253,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(HBaseObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -18610,27 +19275,30 @@ class HBaseSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -18643,6 +19311,7 @@ class HBaseSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -18651,16 +19320,17 @@ class HBaseSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(HBaseSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(HBaseSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'HBaseSource' # type: str self.query = query @@ -18672,7 +19342,7 @@ class HdfsLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -18682,20 +19352,20 @@ class HdfsLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. The URL of the HDFS service endpoint, e.g. http://myhostname:50070/webhdfs/v1 . Type: string (or Expression with resultType string). - :type url: object + :type url: any :param authentication_type: Type of authentication used to connect to the HDFS. Possible values are: Anonymous and Windows. Type: string (or Expression with resultType string). - :type authentication_type: object + :type authentication_type: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any :param user_name: User name for Windows authentication. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password for Windows authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase """ @@ -18722,15 +19392,15 @@ class HdfsLinkedService(LinkedService): def __init__( self, *, - url: object, - additional_properties: Optional[Dict[str, object]] = None, + url: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - authentication_type: Optional[object] = None, - encrypted_credential: Optional[object] = None, - user_name: Optional[object] = None, + annotations: Optional[List[Any]] = None, + authentication_type: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, + user_name: Optional[Any] = None, password: Optional["SecretBase"] = None, **kwargs ): @@ -18750,15 +19420,15 @@ class HdfsLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any """ _validation = { @@ -18775,9 +19445,9 @@ class HdfsLocation(DatasetLocation): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - folder_path: Optional[object] = None, - file_name: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + folder_path: Optional[Any] = None, + file_name: Optional[Any] = None, **kwargs ): super(HdfsLocation, self).__init__(additional_properties=additional_properties, folder_path=folder_path, file_name=file_name, **kwargs) @@ -18791,41 +19461,44 @@ class HdfsReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: HDFS wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: HDFS wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any :param distcp_settings: Specifies Distcp-related settings. :type distcp_settings: ~azure.mgmt.datafactory.models.DistcpSettings :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any """ _validation = { @@ -18836,6 +19509,7 @@ class HdfsReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -18851,21 +19525,22 @@ class HdfsReadSettings(StoreReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - recursive: Optional[object] = None, - wildcard_folder_path: Optional[object] = None, - wildcard_file_name: Optional[object] = None, - file_list_path: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + recursive: Optional[Any] = None, + wildcard_folder_path: Optional[Any] = None, + wildcard_file_name: Optional[Any] = None, + file_list_path: Optional[Any] = None, enable_partition_discovery: Optional[bool] = None, - partition_root_path: Optional[object] = None, - modified_datetime_start: Optional[object] = None, - modified_datetime_end: Optional[object] = None, + partition_root_path: Optional[Any] = None, + modified_datetime_start: Optional[Any] = None, + modified_datetime_end: Optional[Any] = None, distcp_settings: Optional["DistcpSettings"] = None, - delete_files_after_completion: Optional[object] = None, + delete_files_after_completion: Optional[Any] = None, **kwargs ): - super(HdfsReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(HdfsReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'HdfsReadSettings' # type: str self.recursive = recursive self.wildcard_folder_path = wildcard_folder_path @@ -18886,21 +19561,24 @@ class HdfsSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param distcp_settings: Specifies Distcp-related settings. :type distcp_settings: ~azure.mgmt.datafactory.models.DistcpSettings """ @@ -18915,6 +19593,7 @@ class HdfsSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'distcp_settings': {'key': 'distcpSettings', 'type': 'DistcpSettings'}, } @@ -18922,15 +19601,16 @@ class HdfsSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - recursive: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + recursive: Optional[Any] = None, distcp_settings: Optional["DistcpSettings"] = None, **kwargs ): - super(HdfsSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(HdfsSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'HdfsSource' # type: str self.recursive = recursive self.distcp_settings = distcp_settings @@ -18943,7 +19623,7 @@ class HDInsightHiveActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -18961,17 +19641,17 @@ class HDInsightHiveActivity(ExecutionActivity): :param storage_linked_services: Storage linked service references. :type storage_linked_services: list[~azure.mgmt.datafactory.models.LinkedServiceReference] :param arguments: User specified arguments to HDInsightActivity. - :type arguments: list[object] + :type arguments: list[any] :param get_debug_info: Debug info option. Possible values include: "None", "Always", "Failure". :type get_debug_info: str or ~azure.mgmt.datafactory.models.HDInsightActivityDebugInfoOption :param script_path: Script path. Type: string (or Expression with resultType string). - :type script_path: object + :type script_path: any :param script_linked_service: Script linked service reference. :type script_linked_service: ~azure.mgmt.datafactory.models.LinkedServiceReference :param defines: Allows user to specify defines for Hive job request. - :type defines: dict[str, object] + :type defines: dict[str, any] :param variables: User specified arguments under hivevar namespace. - :type variables: list[object] + :type variables: list[any] :param query_timeout: Query timeout value (in minutes). Effective when the HDInsight cluster is with ESP (Enterprise Security Package). :type query_timeout: int @@ -19005,19 +19685,19 @@ def __init__( self, *, name: str, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, storage_linked_services: Optional[List["LinkedServiceReference"]] = None, - arguments: Optional[List[object]] = None, + arguments: Optional[List[Any]] = None, get_debug_info: Optional[Union[str, "HDInsightActivityDebugInfoOption"]] = None, - script_path: Optional[object] = None, + script_path: Optional[Any] = None, script_linked_service: Optional["LinkedServiceReference"] = None, - defines: Optional[Dict[str, object]] = None, - variables: Optional[List[object]] = None, + defines: Optional[Dict[str, Any]] = None, + variables: Optional[List[Any]] = None, query_timeout: Optional[int] = None, **kwargs ): @@ -19040,7 +19720,7 @@ class HDInsightLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -19050,13 +19730,13 @@ class HDInsightLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param cluster_uri: Required. HDInsight cluster URI. Type: string (or Expression with resultType string). - :type cluster_uri: object + :type cluster_uri: any :param user_name: HDInsight cluster user name. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: HDInsight cluster password. :type password: ~azure.mgmt.datafactory.models.SecretBase :param linked_service_name: The Azure Storage linked service reference. @@ -19067,13 +19747,13 @@ class HDInsightLinkedService(LinkedService): :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any :param is_esp_enabled: Specify if the HDInsight is created with ESP (Enterprise Security Package). Type: Boolean. - :type is_esp_enabled: object + :type is_esp_enabled: any :param file_system: Specify the FileSystem if the main storage for the HDInsight is ADLS Gen2. Type: string (or Expression with resultType string). - :type file_system: object + :type file_system: any """ _validation = { @@ -19101,19 +19781,19 @@ class HDInsightLinkedService(LinkedService): def __init__( self, *, - cluster_uri: object, - additional_properties: Optional[Dict[str, object]] = None, + cluster_uri: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - user_name: Optional[object] = None, + annotations: Optional[List[Any]] = None, + user_name: Optional[Any] = None, password: Optional["SecretBase"] = None, linked_service_name: Optional["LinkedServiceReference"] = None, hcatalog_linked_service_name: Optional["LinkedServiceReference"] = None, - encrypted_credential: Optional[object] = None, - is_esp_enabled: Optional[object] = None, - file_system: Optional[object] = None, + encrypted_credential: Optional[Any] = None, + is_esp_enabled: Optional[Any] = None, + file_system: Optional[Any] = None, **kwargs ): super(HDInsightLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -19135,7 +19815,7 @@ class HDInsightMapReduceActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -19153,19 +19833,19 @@ class HDInsightMapReduceActivity(ExecutionActivity): :param storage_linked_services: Storage linked service references. :type storage_linked_services: list[~azure.mgmt.datafactory.models.LinkedServiceReference] :param arguments: User specified arguments to HDInsightActivity. - :type arguments: list[object] + :type arguments: list[any] :param get_debug_info: Debug info option. Possible values include: "None", "Always", "Failure". :type get_debug_info: str or ~azure.mgmt.datafactory.models.HDInsightActivityDebugInfoOption :param class_name: Required. Class name. Type: string (or Expression with resultType string). - :type class_name: object + :type class_name: any :param jar_file_path: Required. Jar path. Type: string (or Expression with resultType string). - :type jar_file_path: object + :type jar_file_path: any :param jar_linked_service: Jar linked service reference. :type jar_linked_service: ~azure.mgmt.datafactory.models.LinkedServiceReference :param jar_libs: Jar libs. - :type jar_libs: list[object] + :type jar_libs: list[any] :param defines: Allows user to specify defines for the MapReduce job request. - :type defines: dict[str, object] + :type defines: dict[str, any] """ _validation = { @@ -19198,20 +19878,20 @@ def __init__( self, *, name: str, - class_name: object, - jar_file_path: object, - additional_properties: Optional[Dict[str, object]] = None, + class_name: Any, + jar_file_path: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, storage_linked_services: Optional[List["LinkedServiceReference"]] = None, - arguments: Optional[List[object]] = None, + arguments: Optional[List[Any]] = None, get_debug_info: Optional[Union[str, "HDInsightActivityDebugInfoOption"]] = None, jar_linked_service: Optional["LinkedServiceReference"] = None, - jar_libs: Optional[List[object]] = None, - defines: Optional[Dict[str, object]] = None, + jar_libs: Optional[List[Any]] = None, + defines: Optional[Dict[str, Any]] = None, **kwargs ): super(HDInsightMapReduceActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, linked_service_name=linked_service_name, policy=policy, **kwargs) @@ -19233,7 +19913,7 @@ class HDInsightOnDemandLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -19243,46 +19923,46 @@ class HDInsightOnDemandLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param cluster_size: Required. Number of worker/data nodes in the cluster. Suggestion value: 4. Type: string (or Expression with resultType string). - :type cluster_size: object + :type cluster_size: any :param time_to_live: Required. The allowed idle time for the on-demand HDInsight cluster. Specifies how long the on-demand HDInsight cluster stays alive after completion of an activity run if there are no other active jobs in the cluster. The minimum value is 5 mins. Type: string (or Expression with resultType string). - :type time_to_live: object + :type time_to_live: any :param version: Required. Version of the HDInsight cluster.  Type: string (or Expression with resultType string). - :type version: object + :type version: any :param linked_service_name: Required. Azure Storage linked service to be used by the on-demand cluster for storing and processing data. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param host_subscription_id: Required. The customer’s subscription to host the cluster. Type: string (or Expression with resultType string). - :type host_subscription_id: object + :type host_subscription_id: any :param service_principal_id: The service principal id for the hostSubscriptionId. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The key for the service principal id. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: Required. The Tenant id/name to which the service principal belongs. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param cluster_resource_group: Required. The resource group where the cluster belongs. Type: string (or Expression with resultType string). - :type cluster_resource_group: object + :type cluster_resource_group: any :param cluster_name_prefix: The prefix of cluster name, postfix will be distinct with timestamp. Type: string (or Expression with resultType string). - :type cluster_name_prefix: object + :type cluster_name_prefix: any :param cluster_user_name: The username to access the cluster. Type: string (or Expression with resultType string). - :type cluster_user_name: object + :type cluster_user_name: any :param cluster_password: The password to access the cluster. :type cluster_password: ~azure.mgmt.datafactory.models.SecretBase :param cluster_ssh_user_name: The username to SSH remotely connect to cluster’s node (for Linux). Type: string (or Expression with resultType string). - :type cluster_ssh_user_name: object + :type cluster_ssh_user_name: any :param cluster_ssh_password: The password to SSH remotely connect cluster’s node (for Linux). :type cluster_ssh_password: ~azure.mgmt.datafactory.models.SecretBase :param additional_linked_service_names: Specifies additional storage accounts for the HDInsight @@ -19294,56 +19974,57 @@ class HDInsightOnDemandLinkedService(LinkedService): as the metastore. :type hcatalog_linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param cluster_type: The cluster type. Type: string (or Expression with resultType string). - :type cluster_type: object + :type cluster_type: any :param spark_version: The version of spark if the cluster type is 'spark'. Type: string (or Expression with resultType string). - :type spark_version: object + :type spark_version: any :param core_configuration: Specifies the core configuration parameters (as in core-site.xml) for the HDInsight cluster to be created. - :type core_configuration: object + :type core_configuration: any :param h_base_configuration: Specifies the HBase configuration parameters (hbase-site.xml) for the HDInsight cluster. - :type h_base_configuration: object + :type h_base_configuration: any :param hdfs_configuration: Specifies the HDFS configuration parameters (hdfs-site.xml) for the HDInsight cluster. - :type hdfs_configuration: object + :type hdfs_configuration: any :param hive_configuration: Specifies the hive configuration parameters (hive-site.xml) for the HDInsight cluster. - :type hive_configuration: object - :param map_reduce_configuration: Specifies the MapReduce configuration parameters (mapred- - site.xml) for the HDInsight cluster. - :type map_reduce_configuration: object + :type hive_configuration: any + :param map_reduce_configuration: Specifies the MapReduce configuration parameters + (mapred-site.xml) for the HDInsight cluster. + :type map_reduce_configuration: any :param oozie_configuration: Specifies the Oozie configuration parameters (oozie-site.xml) for the HDInsight cluster. - :type oozie_configuration: object + :type oozie_configuration: any :param storm_configuration: Specifies the Storm configuration parameters (storm-site.xml) for the HDInsight cluster. - :type storm_configuration: object + :type storm_configuration: any :param yarn_configuration: Specifies the Yarn configuration parameters (yarn-site.xml) for the HDInsight cluster. - :type yarn_configuration: object + :type yarn_configuration: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any :param head_node_size: Specifies the size of the head node for the HDInsight cluster. - :type head_node_size: object + :type head_node_size: any :param data_node_size: Specifies the size of the data node for the HDInsight cluster. - :type data_node_size: object + :type data_node_size: any :param zookeeper_node_size: Specifies the size of the Zoo Keeper node for the HDInsight cluster. - :type zookeeper_node_size: object + :type zookeeper_node_size: any :param script_actions: Custom script actions to run on HDI ondemand cluster once it's up. - Please refer to https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-hadoop-customize- - cluster-linux?toc=%2Fen-us%2Fazure%2Fhdinsight%2Fr-server%2FTOC.json&bc=%2Fen- - us%2Fazure%2Fbread%2Ftoc.json#understanding-script-actions. + Please refer to + https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-hadoop-customize-cluster-linux?toc=%2Fen-us%2Fazure%2Fhdinsight%2Fr-server%2FTOC.json&bc=%2Fen-us%2Fazure%2Fbread%2Ftoc.json#understanding-script-actions. :type script_actions: list[~azure.mgmt.datafactory.models.ScriptAction] :param virtual_network_id: The ARM resource ID for the vNet to which the cluster should be joined after creation. Type: string (or Expression with resultType string). - :type virtual_network_id: object + :type virtual_network_id: any :param subnet_name: The ARM resource ID for the subnet in the vNet. If virtualNetworkId was specified, then this property is required. Type: string (or Expression with resultType string). - :type subnet_name: object + :type subnet_name: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -19397,49 +20078,51 @@ class HDInsightOnDemandLinkedService(LinkedService): 'script_actions': {'key': 'typeProperties.scriptActions', 'type': '[ScriptAction]'}, 'virtual_network_id': {'key': 'typeProperties.virtualNetworkId', 'type': 'object'}, 'subnet_name': {'key': 'typeProperties.subnetName', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( self, *, - cluster_size: object, - time_to_live: object, - version: object, + cluster_size: Any, + time_to_live: Any, + version: Any, linked_service_name: "LinkedServiceReference", - host_subscription_id: object, - tenant: object, - cluster_resource_group: object, - additional_properties: Optional[Dict[str, object]] = None, + host_subscription_id: Any, + tenant: Any, + cluster_resource_group: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - service_principal_id: Optional[object] = None, + annotations: Optional[List[Any]] = None, + service_principal_id: Optional[Any] = None, service_principal_key: Optional["SecretBase"] = None, - cluster_name_prefix: Optional[object] = None, - cluster_user_name: Optional[object] = None, + cluster_name_prefix: Optional[Any] = None, + cluster_user_name: Optional[Any] = None, cluster_password: Optional["SecretBase"] = None, - cluster_ssh_user_name: Optional[object] = None, + cluster_ssh_user_name: Optional[Any] = None, cluster_ssh_password: Optional["SecretBase"] = None, additional_linked_service_names: Optional[List["LinkedServiceReference"]] = None, hcatalog_linked_service_name: Optional["LinkedServiceReference"] = None, - cluster_type: Optional[object] = None, - spark_version: Optional[object] = None, - core_configuration: Optional[object] = None, - h_base_configuration: Optional[object] = None, - hdfs_configuration: Optional[object] = None, - hive_configuration: Optional[object] = None, - map_reduce_configuration: Optional[object] = None, - oozie_configuration: Optional[object] = None, - storm_configuration: Optional[object] = None, - yarn_configuration: Optional[object] = None, - encrypted_credential: Optional[object] = None, - head_node_size: Optional[object] = None, - data_node_size: Optional[object] = None, - zookeeper_node_size: Optional[object] = None, + cluster_type: Optional[Any] = None, + spark_version: Optional[Any] = None, + core_configuration: Optional[Any] = None, + h_base_configuration: Optional[Any] = None, + hdfs_configuration: Optional[Any] = None, + hive_configuration: Optional[Any] = None, + map_reduce_configuration: Optional[Any] = None, + oozie_configuration: Optional[Any] = None, + storm_configuration: Optional[Any] = None, + yarn_configuration: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, + head_node_size: Optional[Any] = None, + data_node_size: Optional[Any] = None, + zookeeper_node_size: Optional[Any] = None, script_actions: Optional[List["ScriptAction"]] = None, - virtual_network_id: Optional[object] = None, - subnet_name: Optional[object] = None, + virtual_network_id: Optional[Any] = None, + subnet_name: Optional[Any] = None, + credential: Optional["CredentialReference"] = None, **kwargs ): super(HDInsightOnDemandLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -19477,6 +20160,7 @@ def __init__( self.script_actions = script_actions self.virtual_network_id = virtual_network_id self.subnet_name = subnet_name + self.credential = credential class HDInsightPigActivity(ExecutionActivity): @@ -19486,7 +20170,7 @@ class HDInsightPigActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -19505,15 +20189,15 @@ class HDInsightPigActivity(ExecutionActivity): :type storage_linked_services: list[~azure.mgmt.datafactory.models.LinkedServiceReference] :param arguments: User specified arguments to HDInsightActivity. Type: array (or Expression with resultType array). - :type arguments: object + :type arguments: any :param get_debug_info: Debug info option. Possible values include: "None", "Always", "Failure". :type get_debug_info: str or ~azure.mgmt.datafactory.models.HDInsightActivityDebugInfoOption :param script_path: Script path. Type: string (or Expression with resultType string). - :type script_path: object + :type script_path: any :param script_linked_service: Script linked service reference. :type script_linked_service: ~azure.mgmt.datafactory.models.LinkedServiceReference :param defines: Allows user to specify defines for Pig job request. - :type defines: dict[str, object] + :type defines: dict[str, any] """ _validation = { @@ -19542,18 +20226,18 @@ def __init__( self, *, name: str, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, storage_linked_services: Optional[List["LinkedServiceReference"]] = None, - arguments: Optional[object] = None, + arguments: Optional[Any] = None, get_debug_info: Optional[Union[str, "HDInsightActivityDebugInfoOption"]] = None, - script_path: Optional[object] = None, + script_path: Optional[Any] = None, script_linked_service: Optional["LinkedServiceReference"] = None, - defines: Optional[Dict[str, object]] = None, + defines: Optional[Dict[str, Any]] = None, **kwargs ): super(HDInsightPigActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, linked_service_name=linked_service_name, policy=policy, **kwargs) @@ -19573,7 +20257,7 @@ class HDInsightSparkActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -19590,12 +20274,12 @@ class HDInsightSparkActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param root_path: Required. The root path in 'sparkJobLinkedService' for all the job’s files. Type: string (or Expression with resultType string). - :type root_path: object + :type root_path: any :param entry_file_path: Required. The relative path to the root folder of the code/package to be executed. Type: string (or Expression with resultType string). - :type entry_file_path: object + :type entry_file_path: any :param arguments: The user-specified arguments to HDInsightSparkActivity. - :type arguments: list[object] + :type arguments: list[any] :param get_debug_info: Debug info option. Possible values include: "None", "Always", "Failure". :type get_debug_info: str or ~azure.mgmt.datafactory.models.HDInsightActivityDebugInfoOption :param spark_job_linked_service: The storage linked service for uploading the entry file and @@ -19605,9 +20289,9 @@ class HDInsightSparkActivity(ExecutionActivity): :type class_name: str :param proxy_user: The user to impersonate that will execute the job. Type: string (or Expression with resultType string). - :type proxy_user: object + :type proxy_user: any :param spark_config: Spark configuration property. - :type spark_config: dict[str, object] + :type spark_config: dict[str, any] """ _validation = { @@ -19640,20 +20324,20 @@ def __init__( self, *, name: str, - root_path: object, - entry_file_path: object, - additional_properties: Optional[Dict[str, object]] = None, + root_path: Any, + entry_file_path: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, - arguments: Optional[List[object]] = None, + arguments: Optional[List[Any]] = None, get_debug_info: Optional[Union[str, "HDInsightActivityDebugInfoOption"]] = None, spark_job_linked_service: Optional["LinkedServiceReference"] = None, class_name: Optional[str] = None, - proxy_user: Optional[object] = None, - spark_config: Optional[Dict[str, object]] = None, + proxy_user: Optional[Any] = None, + spark_config: Optional[Dict[str, Any]] = None, **kwargs ): super(HDInsightSparkActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, linked_service_name=linked_service_name, policy=policy, **kwargs) @@ -19675,7 +20359,7 @@ class HDInsightStreamingActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -19693,29 +20377,29 @@ class HDInsightStreamingActivity(ExecutionActivity): :param storage_linked_services: Storage linked service references. :type storage_linked_services: list[~azure.mgmt.datafactory.models.LinkedServiceReference] :param arguments: User specified arguments to HDInsightActivity. - :type arguments: list[object] + :type arguments: list[any] :param get_debug_info: Debug info option. Possible values include: "None", "Always", "Failure". :type get_debug_info: str or ~azure.mgmt.datafactory.models.HDInsightActivityDebugInfoOption :param mapper: Required. Mapper executable name. Type: string (or Expression with resultType string). - :type mapper: object + :type mapper: any :param reducer: Required. Reducer executable name. Type: string (or Expression with resultType string). - :type reducer: object + :type reducer: any :param input: Required. Input blob path. Type: string (or Expression with resultType string). - :type input: object + :type input: any :param output: Required. Output blob path. Type: string (or Expression with resultType string). - :type output: object + :type output: any :param file_paths: Required. Paths to streaming job files. Can be directories. - :type file_paths: list[object] + :type file_paths: list[any] :param file_linked_service: Linked service reference where the files are located. :type file_linked_service: ~azure.mgmt.datafactory.models.LinkedServiceReference :param combiner: Combiner executable name. Type: string (or Expression with resultType string). - :type combiner: object + :type combiner: any :param command_environment: Command line environment values. - :type command_environment: list[object] + :type command_environment: list[any] :param defines: Allows user to specify defines for streaming job request. - :type defines: dict[str, object] + :type defines: dict[str, any] """ _validation = { @@ -19755,24 +20439,24 @@ def __init__( self, *, name: str, - mapper: object, - reducer: object, - input: object, - output: object, - file_paths: List[object], - additional_properties: Optional[Dict[str, object]] = None, + mapper: Any, + reducer: Any, + input: Any, + output: Any, + file_paths: List[Any], + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, storage_linked_services: Optional[List["LinkedServiceReference"]] = None, - arguments: Optional[List[object]] = None, + arguments: Optional[List[Any]] = None, get_debug_info: Optional[Union[str, "HDInsightActivityDebugInfoOption"]] = None, file_linked_service: Optional["LinkedServiceReference"] = None, - combiner: Optional[object] = None, - command_environment: Optional[List[object]] = None, - defines: Optional[Dict[str, object]] = None, + combiner: Optional[Any] = None, + command_environment: Optional[List[Any]] = None, + defines: Optional[Dict[str, Any]] = None, **kwargs ): super(HDInsightStreamingActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, linked_service_name=linked_service_name, policy=policy, **kwargs) @@ -19798,7 +20482,7 @@ class HiveLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -19808,12 +20492,12 @@ class HiveLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. IP address or host name of the Hive server, separated by ';' for multiple hosts (only when serviceDiscoveryMode is enable). - :type host: object + :type host: any :param port: The TCP port that the Hive server uses to listen for client connections. - :type port: object + :type port: any :param server_type: The type of Hive server. Possible values include: "HiveServer1", "HiveServer2", "HiveThriftServer". :type server_type: str or ~azure.mgmt.datafactory.models.HiveServerType @@ -19826,40 +20510,40 @@ class HiveLinkedService(LinkedService): "WindowsAzureHDInsightService". :type authentication_type: str or ~azure.mgmt.datafactory.models.HiveAuthenticationType :param service_discovery_mode: true to indicate using the ZooKeeper service, false not. - :type service_discovery_mode: object + :type service_discovery_mode: any :param zoo_keeper_name_space: The namespace on ZooKeeper under which Hive Server 2 nodes are added. - :type zoo_keeper_name_space: object + :type zoo_keeper_name_space: any :param use_native_query: Specifies whether the driver uses native HiveQL queries,or converts them into an equivalent form in HiveQL. - :type use_native_query: object + :type use_native_query: any :param username: The user name that you use to access Hive Server. - :type username: object + :type username: any :param password: The password corresponding to the user name that you provided in the Username field. :type password: ~azure.mgmt.datafactory.models.SecretBase :param http_path: The partial URL corresponding to the Hive server. - :type http_path: object + :type http_path: any :param enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false. - :type enable_ssl: object + :type enable_ssl: any :param trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. - :type trusted_cert_path: object + :type trusted_cert_path: any :param use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. - :type use_system_trust_store: object + :type use_system_trust_store: any :param allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false. - :type allow_host_name_cn_mismatch: object + :type allow_host_name_cn_mismatch: any :param allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false. - :type allow_self_signed_server_cert: object + :type allow_self_signed_server_cert: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -19897,28 +20581,28 @@ class HiveLinkedService(LinkedService): def __init__( self, *, - host: object, + host: Any, authentication_type: Union[str, "HiveAuthenticationType"], - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - port: Optional[object] = None, + annotations: Optional[List[Any]] = None, + port: Optional[Any] = None, server_type: Optional[Union[str, "HiveServerType"]] = None, thrift_transport_protocol: Optional[Union[str, "HiveThriftTransportProtocol"]] = None, - service_discovery_mode: Optional[object] = None, - zoo_keeper_name_space: Optional[object] = None, - use_native_query: Optional[object] = None, - username: Optional[object] = None, + service_discovery_mode: Optional[Any] = None, + zoo_keeper_name_space: Optional[Any] = None, + use_native_query: Optional[Any] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - http_path: Optional[object] = None, - enable_ssl: Optional[object] = None, - trusted_cert_path: Optional[object] = None, - use_system_trust_store: Optional[object] = None, - allow_host_name_cn_mismatch: Optional[object] = None, - allow_self_signed_server_cert: Optional[object] = None, - encrypted_credential: Optional[object] = None, + http_path: Optional[Any] = None, + enable_ssl: Optional[Any] = None, + trusted_cert_path: Optional[Any] = None, + use_system_trust_store: Optional[Any] = None, + allow_host_name_cn_mismatch: Optional[Any] = None, + allow_self_signed_server_cert: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(HiveLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -19949,34 +20633,34 @@ class HiveObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Hive. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Hive. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -20003,16 +20687,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - table: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, + table_name: Optional[Any] = None, + table: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, **kwargs ): super(HiveObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -20029,27 +20713,30 @@ class HiveSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -20062,6 +20749,7 @@ class HiveSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -20070,16 +20758,17 @@ class HiveSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(HiveSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(HiveSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'HiveSource' # type: str self.query = query @@ -20091,41 +20780,41 @@ class HttpDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param relative_url: The relative URL based on the URL in the HttpLinkedService refers to an HTTP file Type: string (or Expression with resultType string). - :type relative_url: object + :type relative_url: any :param request_method: The HTTP method for the HTTP request. Type: string (or Expression with resultType string). - :type request_method: object + :type request_method: any :param request_body: The body for the HTTP request. Type: string (or Expression with resultType string). - :type request_body: object - :param additional_headers: The headers for the HTTP Request. e.g. request-header- - name-1:request-header-value-1 + :type request_body: any + :param additional_headers: The headers for the HTTP Request. e.g. + request-header-name-1:request-header-value-1 ... request-header-name-n:request-header-value-n Type: string (or Expression with resultType string). - :type additional_headers: object + :type additional_headers: any :param format: The format of files. :type format: ~azure.mgmt.datafactory.models.DatasetStorageFormat :param compression: The data compression method used on files. @@ -20159,17 +20848,17 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - relative_url: Optional[object] = None, - request_method: Optional[object] = None, - request_body: Optional[object] = None, - additional_headers: Optional[object] = None, + relative_url: Optional[Any] = None, + request_method: Optional[Any] = None, + request_body: Optional[Any] = None, + additional_headers: Optional[Any] = None, format: Optional["DatasetStorageFormat"] = None, compression: Optional["DatasetCompression"] = None, **kwargs @@ -20191,7 +20880,7 @@ class HttpLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -20201,39 +20890,39 @@ class HttpLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. The base URL of the HTTP endpoint, e.g. http://www.microsoft.com. Type: string (or Expression with resultType string). - :type url: object + :type url: any :param authentication_type: The authentication type to be used to connect to the HTTP server. Possible values include: "Basic", "Anonymous", "Digest", "Windows", "ClientCertificate". :type authentication_type: str or ~azure.mgmt.datafactory.models.HttpAuthenticationType :param user_name: User name for Basic, Digest, or Windows authentication. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password for Basic, Digest, Windows, or ClientCertificate with EmbeddedCertData authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param auth_headers: The additional HTTP headers in the request to RESTful API used for authorization. Type: object (or Expression with resultType object). - :type auth_headers: object + :type auth_headers: any :param embedded_cert_data: Base64 encoded certificate data for ClientCertificate authentication. For on-premises copy with ClientCertificate authentication, either CertThumbprint or EmbeddedCertData/Password should be specified. Type: string (or Expression with resultType string). - :type embedded_cert_data: object + :type embedded_cert_data: any :param cert_thumbprint: Thumbprint of certificate for ClientCertificate authentication. Only valid for on-premises copy. For on-premises copy with ClientCertificate authentication, either CertThumbprint or EmbeddedCertData/Password should be specified. Type: string (or Expression with resultType string). - :type cert_thumbprint: object + :type cert_thumbprint: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any :param enable_server_certificate_validation: If true, validate the HTTPS server SSL certificate. Default value is true. Type: boolean (or Expression with resultType boolean). - :type enable_server_certificate_validation: object + :type enable_server_certificate_validation: any """ _validation = { @@ -20262,20 +20951,20 @@ class HttpLinkedService(LinkedService): def __init__( self, *, - url: object, - additional_properties: Optional[Dict[str, object]] = None, + url: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, authentication_type: Optional[Union[str, "HttpAuthenticationType"]] = None, - user_name: Optional[object] = None, + user_name: Optional[Any] = None, password: Optional["SecretBase"] = None, - auth_headers: Optional[object] = None, - embedded_cert_data: Optional[object] = None, - cert_thumbprint: Optional[object] = None, - encrypted_credential: Optional[object] = None, - enable_server_certificate_validation: Optional[object] = None, + auth_headers: Optional[Any] = None, + embedded_cert_data: Optional[Any] = None, + cert_thumbprint: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, + enable_server_certificate_validation: Optional[Any] = None, **kwargs ): super(HttpLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -20298,29 +20987,32 @@ class HttpReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param request_method: The HTTP method used to call the RESTful API. The default is GET. Type: string (or Expression with resultType string). - :type request_method: object + :type request_method: any :param request_body: The HTTP request body to the RESTful API if requestMethod is POST. Type: string (or Expression with resultType string). - :type request_body: object + :type request_body: any :param additional_headers: The additional HTTP headers in the request to the RESTful API. Type: string (or Expression with resultType string). - :type additional_headers: object + :type additional_headers: any :param request_timeout: Specifies the timeout for a HTTP client to get HTTP response from HTTP server. - :type request_timeout: object + :type request_timeout: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any """ _validation = { @@ -20331,6 +21023,7 @@ class HttpReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'request_method': {'key': 'requestMethod', 'type': 'object'}, 'request_body': {'key': 'requestBody', 'type': 'object'}, 'additional_headers': {'key': 'additionalHeaders', 'type': 'object'}, @@ -20342,17 +21035,18 @@ class HttpReadSettings(StoreReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - request_method: Optional[object] = None, - request_body: Optional[object] = None, - additional_headers: Optional[object] = None, - request_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + request_method: Optional[Any] = None, + request_body: Optional[Any] = None, + additional_headers: Optional[Any] = None, + request_timeout: Optional[Any] = None, enable_partition_discovery: Optional[bool] = None, - partition_root_path: Optional[object] = None, + partition_root_path: Optional[Any] = None, **kwargs ): - super(HttpReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(HttpReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'HttpReadSettings' # type: str self.request_method = request_method self.request_body = request_body @@ -20369,18 +21063,18 @@ class HttpServerLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param relative_url: Specify the relativeUrl of http server. Type: string (or Expression with resultType string). - :type relative_url: object + :type relative_url: any """ _validation = { @@ -20398,10 +21092,10 @@ class HttpServerLocation(DatasetLocation): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - folder_path: Optional[object] = None, - file_name: Optional[object] = None, - relative_url: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + folder_path: Optional[Any] = None, + file_name: Optional[Any] = None, + relative_url: Optional[Any] = None, **kwargs ): super(HttpServerLocation, self).__init__(additional_properties=additional_properties, folder_path=folder_path, file_name=file_name, **kwargs) @@ -20416,23 +21110,26 @@ class HttpSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param http_request_timeout: Specifies the timeout for a HTTP client to get HTTP response from HTTP server. The default value is equivalent to System.Net.HttpWebRequest.Timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any """ _validation = { @@ -20445,20 +21142,22 @@ class HttpSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'http_request_timeout': {'key': 'httpRequestTimeout', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - http_request_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + http_request_timeout: Optional[Any] = None, **kwargs ): - super(HttpSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(HttpSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'HttpSource' # type: str self.http_request_timeout = http_request_timeout @@ -20470,7 +21169,7 @@ class HubspotLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -20480,9 +21179,9 @@ class HubspotLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param client_id: Required. The client ID associated with your Hubspot application. - :type client_id: object + :type client_id: any :param client_secret: The client secret associated with your Hubspot application. :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param access_token: The access token obtained when initially authenticating your OAuth @@ -20493,18 +21192,18 @@ class HubspotLinkedService(LinkedService): :type refresh_token: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -20532,19 +21231,19 @@ class HubspotLinkedService(LinkedService): def __init__( self, *, - client_id: object, - additional_properties: Optional[Dict[str, object]] = None, + client_id: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, client_secret: Optional["SecretBase"] = None, access_token: Optional["SecretBase"] = None, refresh_token: Optional["SecretBase"] = None, - use_encrypted_endpoints: Optional[object] = None, - use_host_verification: Optional[object] = None, - use_peer_verification: Optional[object] = None, - encrypted_credential: Optional[object] = None, + use_encrypted_endpoints: Optional[Any] = None, + use_host_verification: Optional[Any] = None, + use_peer_verification: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(HubspotLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -20566,28 +21265,28 @@ class HubspotObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -20612,14 +21311,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(HubspotObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -20634,27 +21333,30 @@ class HubspotSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -20667,6 +21369,7 @@ class HubspotSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -20675,28 +21378,29 @@ class HubspotSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(HubspotSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(HubspotSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'HubspotSource' # type: str self.query = query -class IfConditionActivity(Activity): +class IfConditionActivity(ControlActivity): """This activity evaluates a boolean expression and executes either the activities under the ifTrueActivities property or the ifFalseActivities property depending on the result of the expression. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -20742,7 +21446,7 @@ def __init__( *, name: str, expression: "Expression", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, @@ -20764,7 +21468,7 @@ class ImpalaLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -20774,41 +21478,41 @@ class ImpalaLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The IP address or host name of the Impala server. (i.e. 192.168.222.160). - :type host: object + :type host: any :param port: The TCP port that the Impala server uses to listen for client connections. The default value is 21050. - :type port: object + :type port: any :param authentication_type: Required. The authentication type to use. Possible values include: "Anonymous", "SASLUsername", "UsernameAndPassword". :type authentication_type: str or ~azure.mgmt.datafactory.models.ImpalaAuthenticationType :param username: The user name used to access the Impala server. The default value is anonymous when using SASLUsername. - :type username: object + :type username: any :param password: The password corresponding to the user name when using UsernameAndPassword. :type password: ~azure.mgmt.datafactory.models.SecretBase :param enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false. - :type enable_ssl: object + :type enable_ssl: any :param trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. - :type trusted_cert_path: object + :type trusted_cert_path: any :param use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. - :type use_system_trust_store: object + :type use_system_trust_store: any :param allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false. - :type allow_host_name_cn_mismatch: object + :type allow_host_name_cn_mismatch: any :param allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false. - :type allow_self_signed_server_cert: object + :type allow_self_signed_server_cert: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -20840,22 +21544,22 @@ class ImpalaLinkedService(LinkedService): def __init__( self, *, - host: object, + host: Any, authentication_type: Union[str, "ImpalaAuthenticationType"], - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - port: Optional[object] = None, - username: Optional[object] = None, + annotations: Optional[List[Any]] = None, + port: Optional[Any] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - enable_ssl: Optional[object] = None, - trusted_cert_path: Optional[object] = None, - use_system_trust_store: Optional[object] = None, - allow_host_name_cn_mismatch: Optional[object] = None, - allow_self_signed_server_cert: Optional[object] = None, - encrypted_credential: Optional[object] = None, + enable_ssl: Optional[Any] = None, + trusted_cert_path: Optional[Any] = None, + use_system_trust_store: Optional[Any] = None, + allow_host_name_cn_mismatch: Optional[Any] = None, + allow_self_signed_server_cert: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(ImpalaLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -20880,35 +21584,35 @@ class ImpalaObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Impala. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Impala. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -20935,16 +21639,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - table: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, + table_name: Optional[Any] = None, + table: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, **kwargs ): super(ImpalaObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -20961,27 +21665,30 @@ class ImpalaSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -20994,6 +21701,7 @@ class ImpalaSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -21002,16 +21710,17 @@ class ImpalaSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(ImpalaSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(ImpalaSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'ImpalaSource' # type: str self.query = query @@ -21023,7 +21732,7 @@ class InformixLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -21033,27 +21742,27 @@ class InformixLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The non-access credential portion of the connection string as well as an optional encrypted credential. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param authentication_type: Type of authentication used to connect to the Informix as ODBC data store. Possible values are: Anonymous and Basic. Type: string (or Expression with resultType string). - :type authentication_type: object - :param credential: The access credential portion of the connection string specified in driver- - specific property-value format. + :type authentication_type: any + :param credential: The access credential portion of the connection string specified in + driver-specific property-value format. :type credential: ~azure.mgmt.datafactory.models.SecretBase :param user_name: User name for Basic authentication. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password for Basic authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -21079,17 +21788,17 @@ class InformixLinkedService(LinkedService): def __init__( self, *, - connection_string: object, - additional_properties: Optional[Dict[str, object]] = None, + connection_string: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - authentication_type: Optional[object] = None, + annotations: Optional[List[Any]] = None, + authentication_type: Optional[Any] = None, credential: Optional["SecretBase"] = None, - user_name: Optional[object] = None, + user_name: Optional[Any] = None, password: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(InformixLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -21109,27 +21818,30 @@ class InformixSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: A query to execute before starting the copy. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any """ _validation = { @@ -21144,22 +21856,24 @@ class InformixSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - pre_copy_script: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + pre_copy_script: Optional[Any] = None, **kwargs ): - super(InformixSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(InformixSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'InformixSink' # type: str self.pre_copy_script = pre_copy_script @@ -21171,26 +21885,29 @@ class InformixSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -21203,6 +21920,7 @@ class InformixSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -21211,16 +21929,17 @@ class InformixSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(InformixSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(InformixSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'InformixSource' # type: str self.query = query @@ -21232,29 +21951,29 @@ class InformixTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The Informix table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -21279,14 +21998,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(InformixTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -21304,7 +22023,7 @@ class IntegrationRuntime(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of integration runtime.Constant filled by server. Possible values include: "Managed", "SelfHosted". :type type: str or ~azure.mgmt.datafactory.models.IntegrationRuntimeType @@ -21329,7 +22048,7 @@ class IntegrationRuntime(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, **kwargs ): @@ -21370,10 +22089,10 @@ class IntegrationRuntimeComputeProperties(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param location: The location for managed integration runtime. The supported regions could be - found on https://docs.microsoft.com/en-us/azure/data-factory/data-factory-data-movement- - activities. + found on + https://docs.microsoft.com/en-us/azure/data-factory/data-factory-data-movement-activities. :type location: str :param node_size: The node size requirement to managed integration runtime. :type node_size: str @@ -21406,7 +22125,7 @@ class IntegrationRuntimeComputeProperties(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, location: Optional[str] = None, node_size: Optional[str] = None, number_of_nodes: Optional[int] = None, @@ -21432,7 +22151,7 @@ class IntegrationRuntimeConnectionInfo(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar service_token: The token generated in service. Callers use this token to authenticate to integration runtime. :vartype service_token: str @@ -21472,7 +22191,7 @@ class IntegrationRuntimeConnectionInfo(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(IntegrationRuntimeConnectionInfo, self).__init__(**kwargs) @@ -21517,7 +22236,7 @@ class IntegrationRuntimeDataFlowProperties(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param compute_type: Compute type of the cluster which will execute data flow job. Possible values include: "General", "MemoryOptimized", "ComputeOptimized". :type compute_type: str or ~azure.mgmt.datafactory.models.DataFlowComputeType @@ -21543,7 +22262,7 @@ class IntegrationRuntimeDataFlowProperties(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, compute_type: Optional[Union[str, "DataFlowComputeType"]] = None, core_count: Optional[int] = None, time_to_live: Optional[int] = None, @@ -21708,7 +22427,7 @@ class IntegrationRuntimeNodeMonitoringData(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar node_name: Name of the integration runtime node. :vartype node_name: str :ivar available_memory_in_mb: Available memory (MB) on the integration runtime node. @@ -21754,7 +22473,7 @@ class IntegrationRuntimeNodeMonitoringData(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(IntegrationRuntimeNodeMonitoringData, self).__init__(**kwargs) @@ -21776,13 +22495,12 @@ class IntegrationRuntimeReference(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar type: Required. Type of integration runtime. Default value: - "IntegrationRuntimeReference". + :ivar type: Type of integration runtime. Has constant value: "IntegrationRuntimeReference". :vartype type: str :param reference_name: Required. Reference integration runtime name. :type reference_name: str :param parameters: Arguments for integration runtime. - :type parameters: dict[str, object] + :type parameters: dict[str, any] """ _validation = { @@ -21802,7 +22520,7 @@ def __init__( self, *, reference_name: str, - parameters: Optional[Dict[str, object]] = None, + parameters: Optional[Dict[str, Any]] = None, **kwargs ): super(IntegrationRuntimeReference, self).__init__(**kwargs) @@ -21882,7 +22600,7 @@ class IntegrationRuntimeSsisCatalogInfo(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param catalog_server_endpoint: The catalog database server URL. :type catalog_server_endpoint: str :param catalog_admin_user_name: The administrator user name of catalog database. @@ -21916,7 +22634,7 @@ class IntegrationRuntimeSsisCatalogInfo(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, catalog_server_endpoint: Optional[str] = None, catalog_admin_user_name: Optional[str] = None, catalog_admin_password: Optional["SecureString"] = None, @@ -21938,7 +22656,7 @@ class IntegrationRuntimeSsisProperties(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param catalog_info: Catalog information for managed dedicated integration runtime. :type catalog_info: ~azure.mgmt.datafactory.models.IntegrationRuntimeSsisCatalogInfo :param license_type: License type for bringing your own license scenario. Possible values @@ -21960,6 +22678,8 @@ class IntegrationRuntimeSsisProperties(msrest.serialization.Model): :type express_custom_setup_properties: list[~azure.mgmt.datafactory.models.CustomSetupBase] :param package_stores: Package stores for the SSIS Integration Runtime. :type package_stores: list[~azure.mgmt.datafactory.models.PackageStore] + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _attribute_map = { @@ -21971,12 +22691,13 @@ class IntegrationRuntimeSsisProperties(msrest.serialization.Model): 'edition': {'key': 'edition', 'type': 'str'}, 'express_custom_setup_properties': {'key': 'expressCustomSetupProperties', 'type': '[CustomSetupBase]'}, 'package_stores': {'key': 'packageStores', 'type': '[PackageStore]'}, + 'credential': {'key': 'credential', 'type': 'CredentialReference'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, catalog_info: Optional["IntegrationRuntimeSsisCatalogInfo"] = None, license_type: Optional[Union[str, "IntegrationRuntimeLicenseType"]] = None, custom_setup_script_properties: Optional["IntegrationRuntimeCustomSetupScriptProperties"] = None, @@ -21984,6 +22705,7 @@ def __init__( edition: Optional[Union[str, "IntegrationRuntimeEdition"]] = None, express_custom_setup_properties: Optional[List["CustomSetupBase"]] = None, package_stores: Optional[List["PackageStore"]] = None, + credential: Optional["CredentialReference"] = None, **kwargs ): super(IntegrationRuntimeSsisProperties, self).__init__(**kwargs) @@ -21995,6 +22717,7 @@ def __init__( self.edition = edition self.express_custom_setup_properties = express_custom_setup_properties self.package_stores = package_stores + self.credential = credential class IntegrationRuntimeStatus(msrest.serialization.Model): @@ -22009,7 +22732,7 @@ class IntegrationRuntimeStatus(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of integration runtime.Constant filled by server. Possible values include: "Managed", "SelfHosted". :type type: str or ~azure.mgmt.datafactory.models.IntegrationRuntimeType @@ -22041,7 +22764,7 @@ class IntegrationRuntimeStatus(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(IntegrationRuntimeStatus, self).__init__(**kwargs) @@ -22122,7 +22845,7 @@ class IntegrationRuntimeVNetProperties(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param v_net_id: The ID of the VNet that this integration runtime will join. :type v_net_id: str :param subnet: The name of the subnet this integration runtime will join. @@ -22142,7 +22865,7 @@ class IntegrationRuntimeVNetProperties(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, v_net_id: Optional[str] = None, subnet: Optional[str] = None, public_i_ps: Optional[List[str]] = None, @@ -22162,7 +22885,7 @@ class JiraLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -22172,32 +22895,32 @@ class JiraLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The IP address or host name of the Jira service. (e.g. jira.example.com). - :type host: object + :type host: any :param port: The TCP port that the Jira server uses to listen for client connections. The default value is 443 if connecting through HTTPS, or 8080 if connecting through HTTP. - :type port: object + :type port: any :param username: Required. The user name that you use to access Jira Service. - :type username: object + :type username: any :param password: The password corresponding to the user name that you provided in the username field. :type password: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -22226,19 +22949,19 @@ class JiraLinkedService(LinkedService): def __init__( self, *, - host: object, - username: object, - additional_properties: Optional[Dict[str, object]] = None, + host: Any, + username: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - port: Optional[object] = None, + annotations: Optional[List[Any]] = None, + port: Optional[Any] = None, password: Optional["SecretBase"] = None, - use_encrypted_endpoints: Optional[object] = None, - use_host_verification: Optional[object] = None, - use_peer_verification: Optional[object] = None, - encrypted_credential: Optional[object] = None, + use_encrypted_endpoints: Optional[Any] = None, + use_host_verification: Optional[Any] = None, + use_peer_verification: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(JiraLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -22260,28 +22983,28 @@ class JiraObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -22306,14 +23029,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(JiraObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -22328,27 +23051,30 @@ class JiraSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -22361,6 +23087,7 @@ class JiraSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -22369,16 +23096,17 @@ class JiraSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(JiraSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(JiraSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'JiraSource' # type: str self.query = query @@ -22390,23 +23118,23 @@ class JsonDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder @@ -22417,7 +23145,7 @@ class JsonDataset(Dataset): of the table in the following link to set supported values: https://msdn.microsoft.com/library/system.text.encoding.aspx. Type: string (or Expression with resultType string). - :type encoding_name: object + :type encoding_name: any :param compression: The data compression method used for the json dataset. :type compression: ~azure.mgmt.datafactory.models.DatasetCompression """ @@ -22446,15 +23174,15 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, location: Optional["DatasetLocation"] = None, - encoding_name: Optional[object] = None, + encoding_name: Optional[Any] = None, compression: Optional["DatasetCompression"] = None, **kwargs ): @@ -22472,35 +23200,34 @@ class JsonFormat(DatasetStorageFormat): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage format.Constant filled by server. :type type: str :param serializer: Serializer. Type: string (or Expression with resultType string). - :type serializer: object + :type serializer: any :param deserializer: Deserializer. Type: string (or Expression with resultType string). - :type deserializer: object + :type deserializer: any :param file_pattern: File pattern of JSON. To be more specific, the way of separating a - collection of JSON objects. The default value is 'setOfObjects'. It is case-sensitive. Possible - values include: "setOfObjects", "arrayOfObjects". - :type file_pattern: str or ~azure.mgmt.datafactory.models.JsonFormatFilePattern + collection of JSON objects. The default value is 'setOfObjects'. It is case-sensitive. + :type file_pattern: any :param nesting_separator: The character used to separate nesting levels. Default value is '.' (dot). Type: string (or Expression with resultType string). - :type nesting_separator: object + :type nesting_separator: any :param encoding_name: The code page name of the preferred encoding. If not provided, the default value is 'utf-8', unless the byte order mark (BOM) denotes another Unicode encoding. The full list of supported values can be found in the 'Name' column of the table of encodings in the following reference: https://go.microsoft.com/fwlink/?linkid=861078. Type: string (or Expression with resultType string). - :type encoding_name: object + :type encoding_name: any :param json_node_reference: The JSONPath of the JSON array element to be flattened. Example: "$.ArrayPath". Type: string (or Expression with resultType string). - :type json_node_reference: object + :type json_node_reference: any :param json_path_definition: The JSONPath definition for each column mapping with a customized column name to extract data from JSON file. For fields under root object, start with "$"; for fields inside the array chosen by jsonNodeReference property, start from the array element. Example: {"Column1": "$.Column1Path", "Column2": "Column2PathInArray"}. Type: object (or Expression with resultType object). - :type json_path_definition: object + :type json_path_definition: any """ _validation = { @@ -22512,7 +23239,7 @@ class JsonFormat(DatasetStorageFormat): 'type': {'key': 'type', 'type': 'str'}, 'serializer': {'key': 'serializer', 'type': 'object'}, 'deserializer': {'key': 'deserializer', 'type': 'object'}, - 'file_pattern': {'key': 'filePattern', 'type': 'str'}, + 'file_pattern': {'key': 'filePattern', 'type': 'object'}, 'nesting_separator': {'key': 'nestingSeparator', 'type': 'object'}, 'encoding_name': {'key': 'encodingName', 'type': 'object'}, 'json_node_reference': {'key': 'jsonNodeReference', 'type': 'object'}, @@ -22522,14 +23249,14 @@ class JsonFormat(DatasetStorageFormat): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - serializer: Optional[object] = None, - deserializer: Optional[object] = None, - file_pattern: Optional[Union[str, "JsonFormatFilePattern"]] = None, - nesting_separator: Optional[object] = None, - encoding_name: Optional[object] = None, - json_node_reference: Optional[object] = None, - json_path_definition: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + serializer: Optional[Any] = None, + deserializer: Optional[Any] = None, + file_pattern: Optional[Any] = None, + nesting_separator: Optional[Any] = None, + encoding_name: Optional[Any] = None, + json_node_reference: Optional[Any] = None, + json_path_definition: Optional[Any] = None, **kwargs ): super(JsonFormat, self).__init__(additional_properties=additional_properties, serializer=serializer, deserializer=deserializer, **kwargs) @@ -22548,7 +23275,7 @@ class JsonReadSettings(FormatReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param compression_properties: Compression settings. @@ -22568,7 +23295,7 @@ class JsonReadSettings(FormatReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, compression_properties: Optional["CompressionReadSettings"] = None, **kwargs ): @@ -22584,24 +23311,27 @@ class JsonSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Json store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreWriteSettings :param format_settings: Json format settings. @@ -22620,6 +23350,7 @@ class JsonSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreWriteSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'JsonWriteSettings'}, } @@ -22627,17 +23358,18 @@ class JsonSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, store_settings: Optional["StoreWriteSettings"] = None, format_settings: Optional["JsonWriteSettings"] = None, **kwargs ): - super(JsonSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(JsonSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'JsonSink' # type: str self.store_settings = store_settings self.format_settings = format_settings @@ -22650,18 +23382,21 @@ class JsonSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Json store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param format_settings: Json format settings. @@ -22681,6 +23416,7 @@ class JsonSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreReadSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'JsonReadSettings'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, @@ -22689,16 +23425,17 @@ class JsonSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, store_settings: Optional["StoreReadSettings"] = None, format_settings: Optional["JsonReadSettings"] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(JsonSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(JsonSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'JsonSource' # type: str self.store_settings = store_settings self.format_settings = format_settings @@ -22712,13 +23449,12 @@ class JsonWriteSettings(FormatWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param file_pattern: File pattern of JSON. This setting controls the way a collection of JSON - objects will be treated. The default value is 'setOfObjects'. It is case-sensitive. Possible - values include: "setOfObjects", "arrayOfObjects". - :type file_pattern: str or ~azure.mgmt.datafactory.models.JsonWriteFilePattern + objects will be treated. The default value is 'setOfObjects'. It is case-sensitive. + :type file_pattern: any """ _validation = { @@ -22728,14 +23464,14 @@ class JsonWriteSettings(FormatWriteSettings): _attribute_map = { 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, - 'file_pattern': {'key': 'filePattern', 'type': 'str'}, + 'file_pattern': {'key': 'filePattern', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - file_pattern: Optional[Union[str, "JsonWriteFilePattern"]] = None, + additional_properties: Optional[Dict[str, Any]] = None, + file_pattern: Optional[Any] = None, **kwargs ): super(JsonWriteSettings, self).__init__(additional_properties=additional_properties, **kwargs) @@ -22986,12 +23722,12 @@ class LinkedServiceReference(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar type: Required. Linked service reference type. Default value: "LinkedServiceReference". + :ivar type: Linked service reference type. Has constant value: "LinkedServiceReference". :vartype type: str :param reference_name: Required. Reference LinkedService name. :type reference_name: str :param parameters: Arguments for LinkedService. - :type parameters: dict[str, object] + :type parameters: dict[str, any] """ _validation = { @@ -23011,7 +23747,7 @@ def __init__( self, *, reference_name: str, - parameters: Optional[Dict[str, object]] = None, + parameters: Optional[Dict[str, Any]] = None, **kwargs ): super(LinkedServiceReference, self).__init__(**kwargs) @@ -23073,7 +23809,7 @@ class LogLocationSettings(msrest.serialization.Model): :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param path: The path to storage for storing detailed logs of activity execution. Type: string (or Expression with resultType string). - :type path: object + :type path: any """ _validation = { @@ -23089,7 +23825,7 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - path: Optional[object] = None, + path: Optional[Any] = None, **kwargs ): super(LogLocationSettings, self).__init__(**kwargs) @@ -23104,7 +23840,7 @@ class LogSettings(msrest.serialization.Model): :param enable_copy_activity_log: Specifies whether to enable copy activity log. Type: boolean (or Expression with resultType boolean). - :type enable_copy_activity_log: object + :type enable_copy_activity_log: any :param copy_activity_log_settings: Specifies settings for copy activity log. :type copy_activity_log_settings: ~azure.mgmt.datafactory.models.CopyActivityLogSettings :param log_location_settings: Required. Log location settings customer needs to provide when @@ -23126,7 +23862,7 @@ def __init__( self, *, log_location_settings: "LogLocationSettings", - enable_copy_activity_log: Optional[object] = None, + enable_copy_activity_log: Optional[Any] = None, copy_activity_log_settings: Optional["CopyActivityLogSettings"] = None, **kwargs ): @@ -23143,18 +23879,18 @@ class LogStorageSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param linked_service_name: Required. Log storage linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param path: The path to storage for storing detailed logs of activity execution. Type: string (or Expression with resultType string). - :type path: object + :type path: any :param log_level: Gets or sets the log level, support: Info, Warning. Type: string (or Expression with resultType string). - :type log_level: object + :type log_level: any :param enable_reliable_logging: Specifies whether to enable reliable logging. Type: boolean (or Expression with resultType boolean). - :type enable_reliable_logging: object + :type enable_reliable_logging: any """ _validation = { @@ -23173,10 +23909,10 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, - path: Optional[object] = None, - log_level: Optional[object] = None, - enable_reliable_logging: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + path: Optional[Any] = None, + log_level: Optional[Any] = None, + enable_reliable_logging: Optional[Any] = None, **kwargs ): super(LogStorageSettings, self).__init__(**kwargs) @@ -23194,7 +23930,7 @@ class LookupActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -23215,7 +23951,7 @@ class LookupActivity(ExecutionActivity): :type dataset: ~azure.mgmt.datafactory.models.DatasetReference :param first_row_only: Whether to return first row or all rows. Default value is true. Type: boolean (or Expression with resultType boolean). - :type first_row_only: object + :type first_row_only: any """ _validation = { @@ -23245,13 +23981,13 @@ def __init__( name: str, source: "CopySource", dataset: "DatasetReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, - first_row_only: Optional[object] = None, + first_row_only: Optional[Any] = None, **kwargs ): super(LookupActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, linked_service_name=linked_service_name, policy=policy, **kwargs) @@ -23268,7 +24004,7 @@ class MagentoLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -23278,25 +24014,25 @@ class MagentoLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The URL of the Magento instance. (i.e. 192.168.222.110/magento3). - :type host: object + :type host: any :param access_token: The access token from Magento. :type access_token: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -23322,17 +24058,17 @@ class MagentoLinkedService(LinkedService): def __init__( self, *, - host: object, - additional_properties: Optional[Dict[str, object]] = None, + host: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, access_token: Optional["SecretBase"] = None, - use_encrypted_endpoints: Optional[object] = None, - use_host_verification: Optional[object] = None, - use_peer_verification: Optional[object] = None, - encrypted_credential: Optional[object] = None, + use_encrypted_endpoints: Optional[Any] = None, + use_host_verification: Optional[Any] = None, + use_peer_verification: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(MagentoLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -23352,28 +24088,28 @@ class MagentoObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -23398,14 +24134,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(MagentoObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -23420,27 +24156,30 @@ class MagentoSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -23453,6 +24192,7 @@ class MagentoSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -23461,20 +24201,65 @@ class MagentoSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(MagentoSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(MagentoSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'MagentoSource' # type: str self.query = query +class ManagedIdentityCredential(Credential): + """Managed identity credential. + + 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, any] + :param type: Required. Type of credential.Constant filled by server. + :type type: str + :param description: Credential description. + :type description: str + :param annotations: List of tags that can be used for describing the Credential. + :type annotations: list[any] + :param resource_id: The resource id of user assigned managed identity. + :type resource_id: str + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'type': {'key': 'type', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'annotations': {'key': 'annotations', 'type': '[object]'}, + 'resource_id': {'key': 'typeProperties.resourceId', 'type': 'str'}, + } + + def __init__( + self, + *, + additional_properties: Optional[Dict[str, Any]] = None, + description: Optional[str] = None, + annotations: Optional[List[Any]] = None, + resource_id: Optional[str] = None, + **kwargs + ): + super(ManagedIdentityCredential, self).__init__(additional_properties=additional_properties, description=description, annotations=annotations, **kwargs) + self.type = 'ManagedIdentity' # type: str + self.resource_id = resource_id + + class ManagedIntegrationRuntime(IntegrationRuntime): """Managed integration runtime, including managed elastic and managed dedicated integration runtimes. @@ -23484,7 +24269,7 @@ class ManagedIntegrationRuntime(IntegrationRuntime): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of integration runtime.Constant filled by server. Possible values include: "Managed", "SelfHosted". :type type: str or ~azure.mgmt.datafactory.models.IntegrationRuntimeType @@ -23520,7 +24305,7 @@ class ManagedIntegrationRuntime(IntegrationRuntime): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, managed_virtual_network: Optional["ManagedVirtualNetworkReference"] = None, compute_properties: Optional["IntegrationRuntimeComputeProperties"] = None, @@ -23542,7 +24327,7 @@ class ManagedIntegrationRuntimeError(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar time: The time when the error occurred. :vartype time: ~datetime.datetime :ivar code: Error code. @@ -23571,7 +24356,7 @@ class ManagedIntegrationRuntimeError(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(ManagedIntegrationRuntimeError, self).__init__(**kwargs) @@ -23589,7 +24374,7 @@ class ManagedIntegrationRuntimeNode(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar node_id: The managed integration runtime node id. :vartype node_id: str :ivar status: The managed integration runtime node status. Possible values include: "Starting", @@ -23614,7 +24399,7 @@ class ManagedIntegrationRuntimeNode(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, errors: Optional[List["ManagedIntegrationRuntimeError"]] = None, **kwargs ): @@ -23632,7 +24417,7 @@ class ManagedIntegrationRuntimeOperationResult(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar type: The operation type. Could be start or stop. :vartype type: str :ivar start_time: The start time of the operation. @@ -23669,7 +24454,7 @@ class ManagedIntegrationRuntimeOperationResult(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(ManagedIntegrationRuntimeOperationResult, self).__init__(**kwargs) @@ -23691,7 +24476,7 @@ class ManagedIntegrationRuntimeStatus(IntegrationRuntimeStatus): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of integration runtime.Constant filled by server. Possible values include: "Managed", "SelfHosted". :type type: str or ~azure.mgmt.datafactory.models.IntegrationRuntimeType @@ -23736,7 +24521,7 @@ class ManagedIntegrationRuntimeStatus(IntegrationRuntimeStatus): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(ManagedIntegrationRuntimeStatus, self).__init__(additional_properties=additional_properties, **kwargs) @@ -23754,7 +24539,7 @@ class ManagedPrivateEndpoint(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param connection_state: The managed private endpoint connection state. :type connection_state: ~azure.mgmt.datafactory.models.ConnectionStateProperties :param fqdns: Fully qualified domain names. @@ -23788,7 +24573,7 @@ class ManagedPrivateEndpoint(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connection_state: Optional["ConnectionStateProperties"] = None, fqdns: Optional[List[str]] = None, group_id: Optional[str] = None, @@ -23889,7 +24674,7 @@ class ManagedVirtualNetwork(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar v_net_id: Managed Virtual Network ID. :vartype v_net_id: str :ivar alias: Managed Virtual Network alias. @@ -23910,7 +24695,7 @@ class ManagedVirtualNetwork(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(ManagedVirtualNetwork, self).__init__(**kwargs) @@ -23958,7 +24743,7 @@ class ManagedVirtualNetworkReference(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar type: Required. Managed Virtual Network reference type. Default value: + :ivar type: Managed Virtual Network reference type. Has constant value: "ManagedVirtualNetworkReference". :vartype type: str :param reference_name: Required. Reference ManagedVirtualNetwork name. @@ -24035,12 +24820,14 @@ def __init__( class MappingDataFlow(DataFlow): """Mapping data flow. - :param type: Type of data flow.Constant filled by server. + All required parameters must be populated in order to send to Azure. + + :param type: Required. Type of data flow.Constant filled by server. :type type: str :param description: The description of the data flow. :type description: str :param annotations: List of tags that can be used for describing the data flow. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this data flow is in. If not specified, Data flow will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DataFlowFolder @@ -24054,6 +24841,10 @@ class MappingDataFlow(DataFlow): :type script: str """ + _validation = { + 'type': {'required': True}, + } + _attribute_map = { 'type': {'key': 'type', 'type': 'str'}, 'description': {'key': 'description', 'type': 'str'}, @@ -24069,7 +24860,7 @@ def __init__( self, *, description: Optional[str] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DataFlowFolder"] = None, sources: Optional[List["DataFlowSource"]] = None, sinks: Optional[List["DataFlowSink"]] = None, @@ -24092,7 +24883,7 @@ class MariaDBLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -24102,16 +24893,16 @@ class MariaDBLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param pwd: The Azure key vault secret reference of password in connection string. :type pwd: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -24133,14 +24924,14 @@ class MariaDBLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_string: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_string: Optional[Any] = None, pwd: Optional["AzureKeyVaultSecretReference"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(MariaDBLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -24157,27 +24948,30 @@ class MariaDBSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -24190,6 +24984,7 @@ class MariaDBSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -24198,16 +24993,17 @@ class MariaDBSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(MariaDBSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(MariaDBSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'MariaDBSource' # type: str self.query = query @@ -24219,28 +25015,28 @@ class MariaDBTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -24265,14 +25061,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(MariaDBTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -24287,7 +25083,7 @@ class MarketoLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -24297,27 +25093,27 @@ class MarketoLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param endpoint: Required. The endpoint of the Marketo server. (i.e. 123-ABC-321.mktorest.com). - :type endpoint: object + :type endpoint: any :param client_id: Required. The client Id of your Marketo service. - :type client_id: object + :type client_id: any :param client_secret: The client secret of your Marketo service. :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -24345,18 +25141,18 @@ class MarketoLinkedService(LinkedService): def __init__( self, *, - endpoint: object, - client_id: object, - additional_properties: Optional[Dict[str, object]] = None, + endpoint: Any, + client_id: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, client_secret: Optional["SecretBase"] = None, - use_encrypted_endpoints: Optional[object] = None, - use_host_verification: Optional[object] = None, - use_peer_verification: Optional[object] = None, - encrypted_credential: Optional[object] = None, + use_encrypted_endpoints: Optional[Any] = None, + use_host_verification: Optional[Any] = None, + use_peer_verification: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(MarketoLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -24377,28 +25173,28 @@ class MarketoObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -24423,14 +25219,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(MarketoObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -24445,27 +25241,30 @@ class MarketoSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -24478,6 +25277,7 @@ class MarketoSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -24486,20 +25286,47 @@ class MarketoSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(MarketoSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(MarketoSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'MarketoSource' # type: str self.query = query +class MetadataItem(msrest.serialization.Model): + """Specify the name and value of custom metadata item. + + :param name: Metadata item key name. Type: string (or Expression with resultType string). + :type name: any + :param value: Metadata item value. Type: string (or Expression with resultType string). + :type value: any + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'object'}, + 'value': {'key': 'value', 'type': 'object'}, + } + + def __init__( + self, + *, + name: Optional[Any] = None, + value: Optional[Any] = None, + **kwargs + ): + super(MetadataItem, self).__init__(**kwargs) + self.name = name + self.value = value + + class MicrosoftAccessLinkedService(LinkedService): """Microsoft Access linked service. @@ -24507,7 +25334,7 @@ class MicrosoftAccessLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -24517,27 +25344,27 @@ class MicrosoftAccessLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The non-access credential portion of the connection string as well as an optional encrypted credential. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param authentication_type: Type of authentication used to connect to the Microsoft Access as ODBC data store. Possible values are: Anonymous and Basic. Type: string (or Expression with resultType string). - :type authentication_type: object - :param credential: The access credential portion of the connection string specified in driver- - specific property-value format. + :type authentication_type: any + :param credential: The access credential portion of the connection string specified in + driver-specific property-value format. :type credential: ~azure.mgmt.datafactory.models.SecretBase :param user_name: User name for Basic authentication. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password for Basic authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -24563,17 +25390,17 @@ class MicrosoftAccessLinkedService(LinkedService): def __init__( self, *, - connection_string: object, - additional_properties: Optional[Dict[str, object]] = None, + connection_string: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - authentication_type: Optional[object] = None, + annotations: Optional[List[Any]] = None, + authentication_type: Optional[Any] = None, credential: Optional["SecretBase"] = None, - user_name: Optional[object] = None, + user_name: Optional[Any] = None, password: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(MicrosoftAccessLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -24593,27 +25420,30 @@ class MicrosoftAccessSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: A query to execute before starting the copy. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any """ _validation = { @@ -24628,22 +25458,24 @@ class MicrosoftAccessSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - pre_copy_script: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + pre_copy_script: Optional[Any] = None, **kwargs ): - super(MicrosoftAccessSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(MicrosoftAccessSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'MicrosoftAccessSink' # type: str self.pre_copy_script = pre_copy_script @@ -24655,20 +25487,23 @@ class MicrosoftAccessSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -24684,6 +25519,7 @@ class MicrosoftAccessSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -24691,15 +25527,16 @@ class MicrosoftAccessSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(MicrosoftAccessSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(MicrosoftAccessSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'MicrosoftAccessSource' # type: str self.query = query self.additional_columns = additional_columns @@ -24712,29 +25549,29 @@ class MicrosoftAccessTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The Microsoft Access table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -24759,14 +25596,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(MicrosoftAccessTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -24781,29 +25618,29 @@ class MongoDbAtlasCollectionDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param collection: Required. The collection name of the MongoDB Atlas database. Type: string (or Expression with resultType string). - :type collection: object + :type collection: any """ _validation = { @@ -24829,13 +25666,13 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - collection: object, - additional_properties: Optional[Dict[str, object]] = None, + collection: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, **kwargs ): @@ -24851,7 +25688,7 @@ class MongoDbAtlasLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -24861,14 +25698,14 @@ class MongoDbAtlasLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The MongoDB Atlas connection string. Type: string, SecureString or AzureKeyVaultSecretReference. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param database: Required. The name of the MongoDB Atlas database that you want to access. Type: string (or Expression with resultType string). - :type database: object + :type database: any """ _validation = { @@ -24891,13 +25728,13 @@ class MongoDbAtlasLinkedService(LinkedService): def __init__( self, *, - connection_string: object, - database: object, - additional_properties: Optional[Dict[str, object]] = None, + connection_string: Any, + database: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, **kwargs ): super(MongoDbAtlasLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -24906,6 +25743,74 @@ def __init__( self.database = database +class MongoDbAtlasSink(CopySink): + """A copy activity MongoDB Atlas sink. + + 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, any] + :param type: Required. Copy sink type.Constant filled by server. + :type type: str + :param write_batch_size: Write batch size. Type: integer (or Expression with resultType + integer), minimum: 0. + :type write_batch_size: any + :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType + string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). + :type write_batch_timeout: any + :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType + integer). + :type sink_retry_count: any + :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), + pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). + :type sink_retry_wait: any + :param max_concurrent_connections: The maximum concurrent connection count for the sink data + store. Type: integer (or Expression with resultType integer). + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any + :param write_behavior: Specifies whether the document with same key to be overwritten (upsert) + rather than throw exception (insert). The default value is "insert". Type: string (or + Expression with resultType string). Type: string (or Expression with resultType string). + :type write_behavior: any + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'type': {'key': 'type', 'type': 'str'}, + 'write_batch_size': {'key': 'writeBatchSize', 'type': 'object'}, + 'write_batch_timeout': {'key': 'writeBatchTimeout', 'type': 'object'}, + 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, + 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, + 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, + 'write_behavior': {'key': 'writeBehavior', 'type': 'object'}, + } + + def __init__( + self, + *, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + write_behavior: Optional[Any] = None, + **kwargs + ): + super(MongoDbAtlasSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) + self.type = 'MongoDbAtlasSink' # type: str + self.write_behavior = write_behavior + + class MongoDbAtlasSource(CopySource): """A copy activity source for a MongoDB Atlas database. @@ -24913,32 +25818,35 @@ class MongoDbAtlasSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param filter: Specifies selection filter using query operators. To return all documents in a collection, omit this parameter or pass an empty document ({}). Type: string (or Expression with resultType string). - :type filter: object + :type filter: any :param cursor_methods: Cursor methods for Mongodb query. :type cursor_methods: ~azure.mgmt.datafactory.models.MongoDbCursorMethodsProperties :param batch_size: Specifies the number of documents to return in each batch of the response from MongoDB Atlas instance. In most cases, modifying the batch size will not affect the user or the application. This property's main purpose is to avoid hit the limitation of response size. Type: integer (or Expression with resultType integer). - :type batch_size: object + :type batch_size: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -24954,6 +25862,7 @@ class MongoDbAtlasSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'filter': {'key': 'filter', 'type': 'object'}, 'cursor_methods': {'key': 'cursorMethods', 'type': 'MongoDbCursorMethodsProperties'}, 'batch_size': {'key': 'batchSize', 'type': 'object'}, @@ -24964,18 +25873,19 @@ class MongoDbAtlasSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - filter: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + filter: Optional[Any] = None, cursor_methods: Optional["MongoDbCursorMethodsProperties"] = None, - batch_size: Optional[object] = None, - query_timeout: Optional[object] = None, + batch_size: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(MongoDbAtlasSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(MongoDbAtlasSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'MongoDbAtlasSource' # type: str self.filter = filter self.cursor_methods = cursor_methods @@ -24991,29 +25901,29 @@ class MongoDbCollectionDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param collection_name: Required. The table name of the MongoDB database. Type: string (or Expression with resultType string). - :type collection_name: object + :type collection_name: any """ _validation = { @@ -25039,13 +25949,13 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - collection_name: object, - additional_properties: Optional[Dict[str, object]] = None, + collection_name: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, **kwargs ): @@ -25059,22 +25969,22 @@ class MongoDbCursorMethodsProperties(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param project: Specifies the fields to return in the documents that match the query filter. To return all fields in the matching documents, omit this parameter. Type: string (or Expression with resultType string). - :type project: object + :type project: any :param sort: Specifies the order in which the query returns matching documents. Type: string (or Expression with resultType string). Type: string (or Expression with resultType string). - :type sort: object + :type sort: any :param skip: Specifies the how many documents skipped and where MongoDB begins returning results. This approach may be useful in implementing paginated results. Type: integer (or Expression with resultType integer). - :type skip: object + :type skip: any :param limit: Specifies the maximum number of documents the server returns. limit() is analogous to the LIMIT statement in a SQL database. Type: integer (or Expression with resultType integer). - :type limit: object + :type limit: any """ _attribute_map = { @@ -25088,11 +25998,11 @@ class MongoDbCursorMethodsProperties(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - project: Optional[object] = None, - sort: Optional[object] = None, - skip: Optional[object] = None, - limit: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + project: Optional[Any] = None, + sort: Optional[Any] = None, + skip: Optional[Any] = None, + limit: Optional[Any] = None, **kwargs ): super(MongoDbCursorMethodsProperties, self).__init__(**kwargs) @@ -25110,7 +26020,7 @@ class MongoDbLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -25120,37 +26030,37 @@ class MongoDbLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param server: Required. The IP address or server name of the MongoDB server. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param authentication_type: The authentication type to be used to connect to the MongoDB database. Possible values include: "Basic", "Anonymous". :type authentication_type: str or ~azure.mgmt.datafactory.models.MongoDbAuthenticationType :param database_name: Required. The name of the MongoDB database that you want to access. Type: string (or Expression with resultType string). - :type database_name: object + :type database_name: any :param username: Username for authentication. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password for authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param auth_source: Database to verify the username and password. Type: string (or Expression with resultType string). - :type auth_source: object + :type auth_source: any :param port: The TCP port number that the MongoDB server uses to listen for client connections. The default value is 27017. Type: integer (or Expression with resultType integer), minimum: 0. - :type port: object + :type port: any :param enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false. Type: boolean (or Expression with resultType boolean). - :type enable_ssl: object + :type enable_ssl: any :param allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false. Type: boolean (or Expression with resultType boolean). - :type allow_self_signed_server_cert: object + :type allow_self_signed_server_cert: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -25181,21 +26091,21 @@ class MongoDbLinkedService(LinkedService): def __init__( self, *, - server: object, - database_name: object, - additional_properties: Optional[Dict[str, object]] = None, + server: Any, + database_name: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, authentication_type: Optional[Union[str, "MongoDbAuthenticationType"]] = None, - username: Optional[object] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - auth_source: Optional[object] = None, - port: Optional[object] = None, - enable_ssl: Optional[object] = None, - allow_self_signed_server_cert: Optional[object] = None, - encrypted_credential: Optional[object] = None, + auth_source: Optional[Any] = None, + port: Optional[Any] = None, + enable_ssl: Optional[Any] = None, + allow_self_signed_server_cert: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(MongoDbLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -25219,21 +26129,24 @@ class MongoDbSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: Database query. Should be a SQL-92 query expression. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -25249,6 +26162,7 @@ class MongoDbSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -25256,15 +26170,16 @@ class MongoDbSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(MongoDbSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(MongoDbSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'MongoDbSource' # type: str self.query = query self.additional_columns = additional_columns @@ -25277,29 +26192,29 @@ class MongoDbV2CollectionDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param collection: Required. The collection name of the MongoDB database. Type: string (or Expression with resultType string). - :type collection: object + :type collection: any """ _validation = { @@ -25325,13 +26240,13 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - collection: object, - additional_properties: Optional[Dict[str, object]] = None, + collection: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, **kwargs ): @@ -25347,7 +26262,7 @@ class MongoDbV2LinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -25357,13 +26272,13 @@ class MongoDbV2LinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The MongoDB connection string. Type: string, SecureString or AzureKeyVaultSecretReference. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param database: Required. The name of the MongoDB database that you want to access. Type: string (or Expression with resultType string). - :type database: object + :type database: any """ _validation = { @@ -25386,13 +26301,13 @@ class MongoDbV2LinkedService(LinkedService): def __init__( self, *, - connection_string: object, - database: object, - additional_properties: Optional[Dict[str, object]] = None, + connection_string: Any, + database: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, **kwargs ): super(MongoDbV2LinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -25401,6 +26316,74 @@ def __init__( self.database = database +class MongoDbV2Sink(CopySink): + """A copy activity MongoDB sink. + + 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, any] + :param type: Required. Copy sink type.Constant filled by server. + :type type: str + :param write_batch_size: Write batch size. Type: integer (or Expression with resultType + integer), minimum: 0. + :type write_batch_size: any + :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType + string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). + :type write_batch_timeout: any + :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType + integer). + :type sink_retry_count: any + :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), + pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). + :type sink_retry_wait: any + :param max_concurrent_connections: The maximum concurrent connection count for the sink data + store. Type: integer (or Expression with resultType integer). + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any + :param write_behavior: Specifies whether the document with same key to be overwritten (upsert) + rather than throw exception (insert). The default value is "insert". Type: string (or + Expression with resultType string). Type: string (or Expression with resultType string). + :type write_behavior: any + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'type': {'key': 'type', 'type': 'str'}, + 'write_batch_size': {'key': 'writeBatchSize', 'type': 'object'}, + 'write_batch_timeout': {'key': 'writeBatchTimeout', 'type': 'object'}, + 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, + 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, + 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, + 'write_behavior': {'key': 'writeBehavior', 'type': 'object'}, + } + + def __init__( + self, + *, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + write_behavior: Optional[Any] = None, + **kwargs + ): + super(MongoDbV2Sink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) + self.type = 'MongoDbV2Sink' # type: str + self.write_behavior = write_behavior + + class MongoDbV2Source(CopySource): """A copy activity source for a MongoDB database. @@ -25408,32 +26391,35 @@ class MongoDbV2Source(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param filter: Specifies selection filter using query operators. To return all documents in a collection, omit this parameter or pass an empty document ({}). Type: string (or Expression with resultType string). - :type filter: object + :type filter: any :param cursor_methods: Cursor methods for Mongodb query. :type cursor_methods: ~azure.mgmt.datafactory.models.MongoDbCursorMethodsProperties :param batch_size: Specifies the number of documents to return in each batch of the response from MongoDB instance. In most cases, modifying the batch size will not affect the user or the application. This property's main purpose is to avoid hit the limitation of response size. Type: integer (or Expression with resultType integer). - :type batch_size: object + :type batch_size: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -25449,6 +26435,7 @@ class MongoDbV2Source(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'filter': {'key': 'filter', 'type': 'object'}, 'cursor_methods': {'key': 'cursorMethods', 'type': 'MongoDbCursorMethodsProperties'}, 'batch_size': {'key': 'batchSize', 'type': 'object'}, @@ -25459,18 +26446,19 @@ class MongoDbV2Source(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - filter: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + filter: Optional[Any] = None, cursor_methods: Optional["MongoDbCursorMethodsProperties"] = None, - batch_size: Optional[object] = None, - query_timeout: Optional[object] = None, + batch_size: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(MongoDbV2Source, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(MongoDbV2Source, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'MongoDbV2Source' # type: str self.filter = filter self.cursor_methods = cursor_methods @@ -25486,7 +26474,7 @@ class MySqlLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -25496,15 +26484,15 @@ class MySqlLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -25527,14 +26515,14 @@ class MySqlLinkedService(LinkedService): def __init__( self, *, - connection_string: object, - additional_properties: Optional[Dict[str, object]] = None, + connection_string: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, password: Optional["AzureKeyVaultSecretReference"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(MySqlLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -25551,26 +26539,29 @@ class MySqlSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -25583,6 +26574,7 @@ class MySqlSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -25591,16 +26583,17 @@ class MySqlSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(MySqlSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(MySqlSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'MySqlSource' # type: str self.query = query @@ -25612,28 +26605,28 @@ class MySqlTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The MySQL table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -25658,14 +26651,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(MySqlTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -25680,7 +26673,7 @@ class NetezzaLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -25690,16 +26683,16 @@ class NetezzaLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param pwd: The Azure key vault secret reference of password in connection string. :type pwd: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -25721,14 +26714,14 @@ class NetezzaLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_string: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_string: Optional[Any] = None, pwd: Optional["AzureKeyVaultSecretReference"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(NetezzaLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -25743,15 +26736,15 @@ class NetezzaPartitionSettings(msrest.serialization.Model): :param partition_column_name: The name of the column in integer type that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_column_name: object + :type partition_column_name: any :param partition_upper_bound: The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_upper_bound: object + :type partition_upper_bound: any :param partition_lower_bound: The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_lower_bound: object + :type partition_lower_bound: any """ _attribute_map = { @@ -25763,9 +26756,9 @@ class NetezzaPartitionSettings(msrest.serialization.Model): def __init__( self, *, - partition_column_name: Optional[object] = None, - partition_upper_bound: Optional[object] = None, - partition_lower_bound: Optional[object] = None, + partition_column_name: Optional[Any] = None, + partition_upper_bound: Optional[Any] = None, + partition_lower_bound: Optional[Any] = None, **kwargs ): super(NetezzaPartitionSettings, self).__init__(**kwargs) @@ -25781,30 +26774,33 @@ class NetezzaSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param partition_option: The partition mechanism that will be used for Netezza read in parallel. Possible values include: "None", "DataSlice", "DynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for Netezza source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.NetezzaPartitionSettings """ @@ -25819,6 +26815,7 @@ class NetezzaSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -25829,18 +26826,19 @@ class NetezzaSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, - partition_option: Optional[object] = None, + query: Optional[Any] = None, + partition_option: Optional[Any] = None, partition_settings: Optional["NetezzaPartitionSettings"] = None, **kwargs ): - super(NetezzaSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(NetezzaSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'NetezzaSource' # type: str self.query = query self.partition_option = partition_option @@ -25854,35 +26852,35 @@ class NetezzaTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Netezza. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Netezza. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -25909,16 +26907,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - table: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, + table_name: Optional[Any] = None, + table: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, **kwargs ): super(NetezzaTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -25935,7 +26933,7 @@ class ODataLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -25945,35 +26943,35 @@ class ODataLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. The URL of the OData service endpoint. Type: string (or Expression with resultType string). - :type url: object + :type url: any :param authentication_type: Type of authentication used to connect to the OData service. Possible values include: "Basic", "Anonymous", "Windows", "AadServicePrincipal", "ManagedServiceIdentity". :type authentication_type: str or ~azure.mgmt.datafactory.models.ODataAuthenticationType :param user_name: User name of the OData service. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password of the OData service. :type password: ~azure.mgmt.datafactory.models.SecretBase :param auth_headers: The additional HTTP headers in the request to RESTful API used for authorization. Type: object (or Expression with resultType object). - :type auth_headers: object + :type auth_headers: any :param tenant: Specify the tenant information (domain name or tenant ID) under which your application resides. Type: string (or Expression with resultType string). - :type tenant: object + :type tenant: any :param service_principal_id: Specify the application id of your application registered in Azure Active Directory. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param aad_resource_id: Specify the resource you are requesting authorization to use Directory. Type: string (or Expression with resultType string). - :type aad_resource_id: object + :type aad_resource_id: any :param aad_service_principal_credential_type: Specify the credential type (key or cert) is used for service principal. Possible values include: "ServicePrincipalKey", "ServicePrincipalCert". :type aad_service_principal_credential_type: str or @@ -25992,7 +26990,7 @@ class ODataLinkedService(LinkedService): :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -26026,25 +27024,25 @@ class ODataLinkedService(LinkedService): def __init__( self, *, - url: object, - additional_properties: Optional[Dict[str, object]] = None, + url: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, authentication_type: Optional[Union[str, "ODataAuthenticationType"]] = None, - user_name: Optional[object] = None, + user_name: Optional[Any] = None, password: Optional["SecretBase"] = None, - auth_headers: Optional[object] = None, - tenant: Optional[object] = None, - service_principal_id: Optional[object] = None, - azure_cloud_type: Optional[object] = None, - aad_resource_id: Optional[object] = None, + auth_headers: Optional[Any] = None, + tenant: Optional[Any] = None, + service_principal_id: Optional[Any] = None, + azure_cloud_type: Optional[Any] = None, + aad_resource_id: Optional[Any] = None, aad_service_principal_credential_type: Optional[Union[str, "ODataAadServicePrincipalCredentialType"]] = None, service_principal_key: Optional["SecretBase"] = None, service_principal_embedded_cert: Optional["SecretBase"] = None, service_principal_embedded_cert_password: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(ODataLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -26072,28 +27070,28 @@ class ODataResourceDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param path: The OData resource path. Type: string (or Expression with resultType string). - :type path: object + :type path: any """ _validation = { @@ -26118,14 +27116,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - path: Optional[object] = None, + path: Optional[Any] = None, **kwargs ): super(ODataResourceDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -26140,26 +27138,29 @@ class ODataSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: OData query. For example, "$top=1". Type: string (or Expression with resultType string). - :type query: object + :type query: any :param http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -26175,6 +27176,7 @@ class ODataSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'http_request_timeout': {'key': 'httpRequestTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, @@ -26183,16 +27185,17 @@ class ODataSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query: Optional[object] = None, - http_request_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query: Optional[Any] = None, + http_request_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(ODataSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(ODataSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'ODataSource' # type: str self.query = query self.http_request_timeout = http_request_timeout @@ -26206,7 +27209,7 @@ class OdbcLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -26216,26 +27219,26 @@ class OdbcLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The non-access credential portion of the connection string as well as an optional encrypted credential. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param authentication_type: Type of authentication used to connect to the ODBC data store. Possible values are: Anonymous and Basic. Type: string (or Expression with resultType string). - :type authentication_type: object - :param credential: The access credential portion of the connection string specified in driver- - specific property-value format. + :type authentication_type: any + :param credential: The access credential portion of the connection string specified in + driver-specific property-value format. :type credential: ~azure.mgmt.datafactory.models.SecretBase :param user_name: User name for Basic authentication. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password for Basic authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -26261,17 +27264,17 @@ class OdbcLinkedService(LinkedService): def __init__( self, *, - connection_string: object, - additional_properties: Optional[Dict[str, object]] = None, + connection_string: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - authentication_type: Optional[object] = None, + annotations: Optional[List[Any]] = None, + authentication_type: Optional[Any] = None, credential: Optional["SecretBase"] = None, - user_name: Optional[object] = None, + user_name: Optional[Any] = None, password: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(OdbcLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -26291,27 +27294,30 @@ class OdbcSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: A query to execute before starting the copy. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any """ _validation = { @@ -26326,22 +27332,24 @@ class OdbcSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - pre_copy_script: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + pre_copy_script: Optional[Any] = None, **kwargs ): - super(OdbcSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(OdbcSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'OdbcSink' # type: str self.pre_copy_script = pre_copy_script @@ -26353,26 +27361,29 @@ class OdbcSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -26385,6 +27396,7 @@ class OdbcSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -26393,16 +27405,17 @@ class OdbcSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(OdbcSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(OdbcSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'OdbcSource' # type: str self.query = query @@ -26414,28 +27427,28 @@ class OdbcTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The ODBC table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -26460,14 +27473,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(OdbcTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -26482,32 +27495,32 @@ class Office365Dataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: Required. Name of the dataset to extract from Office 365. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any :param predicate: A predicate expression that can be used to filter the specific rows to extract from Office 365. Type: string (or Expression with resultType string). - :type predicate: object + :type predicate: any """ _validation = { @@ -26534,15 +27547,15 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - table_name: object, - additional_properties: Optional[Dict[str, object]] = None, + table_name: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - predicate: Optional[object] = None, + predicate: Optional[Any] = None, **kwargs ): super(Office365Dataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -26558,7 +27571,7 @@ class Office365LinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -26568,22 +27581,22 @@ class Office365LinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param office365_tenant_id: Required. Azure tenant ID to which the Office 365 account belongs. Type: string (or Expression with resultType string). - :type office365_tenant_id: object + :type office365_tenant_id: any :param service_principal_tenant_id: Required. Specify the tenant information under which your Azure AD web application resides. Type: string (or Expression with resultType string). - :type service_principal_tenant_id: object + :type service_principal_tenant_id: any :param service_principal_id: Required. Specify the application's client ID. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: Required. Specify the application's key. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -26611,16 +27624,16 @@ class Office365LinkedService(LinkedService): def __init__( self, *, - office365_tenant_id: object, - service_principal_tenant_id: object, - service_principal_id: object, + office365_tenant_id: Any, + service_principal_tenant_id: Any, + service_principal_id: Any, service_principal_key: "SecretBase", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - encrypted_credential: Optional[object] = None, + annotations: Optional[List[Any]] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(Office365LinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -26639,37 +27652,40 @@ class Office365Source(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param allowed_groups: The groups containing all the users. Type: array of strings (or Expression with resultType array of strings). - :type allowed_groups: object + :type allowed_groups: any :param user_scope_filter_uri: The user scope uri. Type: string (or Expression with resultType string). - :type user_scope_filter_uri: object + :type user_scope_filter_uri: any :param date_filter_column: The Column to apply the :code:`` and :code:``. Type: string (or Expression with resultType string). - :type date_filter_column: object + :type date_filter_column: any :param start_time: Start time of the requested range for this dataset. Type: string (or Expression with resultType string). - :type start_time: object + :type start_time: any :param end_time: End time of the requested range for this dataset. Type: string (or Expression with resultType string). - :type end_time: object + :type end_time: any :param output_columns: The columns to be read out from the Office 365 table. Type: array of objects (or Expression with resultType array of objects). Example: [ { "name": "Id" }, { "name": "CreatedDateTime" } ]. - :type output_columns: object + :type output_columns: any """ _validation = { @@ -26682,6 +27698,7 @@ class Office365Source(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'allowed_groups': {'key': 'allowedGroups', 'type': 'object'}, 'user_scope_filter_uri': {'key': 'userScopeFilterUri', 'type': 'object'}, 'date_filter_column': {'key': 'dateFilterColumn', 'type': 'object'}, @@ -26693,19 +27710,20 @@ class Office365Source(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - allowed_groups: Optional[object] = None, - user_scope_filter_uri: Optional[object] = None, - date_filter_column: Optional[object] = None, - start_time: Optional[object] = None, - end_time: Optional[object] = None, - output_columns: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + allowed_groups: Optional[Any] = None, + user_scope_filter_uri: Optional[Any] = None, + date_filter_column: Optional[Any] = None, + start_time: Optional[Any] = None, + end_time: Optional[Any] = None, + output_columns: Optional[Any] = None, **kwargs ): - super(Office365Source, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(Office365Source, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'Office365Source' # type: str self.allowed_groups = allowed_groups self.user_scope_filter_uri = user_scope_filter_uri @@ -27000,7 +28018,7 @@ class OracleCloudStorageLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -27010,10 +28028,10 @@ class OracleCloudStorageLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param access_key_id: The access key identifier of the Oracle Cloud Storage Identity and Access Management (IAM) user. Type: string (or Expression with resultType string). - :type access_key_id: object + :type access_key_id: any :param secret_access_key: The secret access key of the Oracle Cloud Storage Identity and Access Management (IAM) user. :type secret_access_key: ~azure.mgmt.datafactory.models.SecretBase @@ -27021,11 +28039,11 @@ class OracleCloudStorageLinkedService(LinkedService): Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string). - :type service_url: object + :type service_url: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -27048,15 +28066,15 @@ class OracleCloudStorageLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - access_key_id: Optional[object] = None, + annotations: Optional[List[Any]] = None, + access_key_id: Optional[Any] = None, secret_access_key: Optional["SecretBase"] = None, - service_url: Optional[object] = None, - encrypted_credential: Optional[object] = None, + service_url: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(OracleCloudStorageLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -27074,21 +28092,21 @@ class OracleCloudStorageLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any :param bucket_name: Specify the bucketName of Oracle Cloud Storage. Type: string (or Expression with resultType string). - :type bucket_name: object + :type bucket_name: any :param version: Specify the version of Oracle Cloud Storage. Type: string (or Expression with resultType string). - :type version: object + :type version: any """ _validation = { @@ -27107,11 +28125,11 @@ class OracleCloudStorageLocation(DatasetLocation): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - folder_path: Optional[object] = None, - file_name: Optional[object] = None, - bucket_name: Optional[object] = None, - version: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + folder_path: Optional[Any] = None, + file_name: Optional[Any] = None, + bucket_name: Optional[Any] = None, + version: Optional[Any] = None, **kwargs ): super(OracleCloudStorageLocation, self).__init__(additional_properties=additional_properties, folder_path=folder_path, file_name=file_name, **kwargs) @@ -27127,42 +28145,45 @@ class OracleCloudStorageReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: Oracle Cloud Storage wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: Oracle Cloud Storage wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param prefix: The prefix filter for the Oracle Cloud Storage object name. Type: string (or Expression with resultType string). - :type prefix: object + :type prefix: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -27173,6 +28194,7 @@ class OracleCloudStorageReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -27188,21 +28210,22 @@ class OracleCloudStorageReadSettings(StoreReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - recursive: Optional[object] = None, - wildcard_folder_path: Optional[object] = None, - wildcard_file_name: Optional[object] = None, - prefix: Optional[object] = None, - file_list_path: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + recursive: Optional[Any] = None, + wildcard_folder_path: Optional[Any] = None, + wildcard_file_name: Optional[Any] = None, + prefix: Optional[Any] = None, + file_list_path: Optional[Any] = None, enable_partition_discovery: Optional[bool] = None, - partition_root_path: Optional[object] = None, - delete_files_after_completion: Optional[object] = None, - modified_datetime_start: Optional[object] = None, - modified_datetime_end: Optional[object] = None, + partition_root_path: Optional[Any] = None, + delete_files_after_completion: Optional[Any] = None, + modified_datetime_start: Optional[Any] = None, + modified_datetime_end: Optional[Any] = None, **kwargs ): - super(OracleCloudStorageReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(OracleCloudStorageReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'OracleCloudStorageReadSettings' # type: str self.recursive = recursive self.wildcard_folder_path = wildcard_folder_path @@ -27223,7 +28246,7 @@ class OracleLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -27233,16 +28256,16 @@ class OracleLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -27265,14 +28288,14 @@ class OracleLinkedService(LinkedService): def __init__( self, *, - connection_string: object, - additional_properties: Optional[Dict[str, object]] = None, + connection_string: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, password: Optional["AzureKeyVaultSecretReference"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(OracleLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -27286,18 +28309,18 @@ class OraclePartitionSettings(msrest.serialization.Model): """The settings that will be leveraged for Oracle source partitioning. :param partition_names: Names of the physical partitions of Oracle table. - :type partition_names: object + :type partition_names: any :param partition_column_name: The name of the column in integer type that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_column_name: object + :type partition_column_name: any :param partition_upper_bound: The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_upper_bound: object + :type partition_upper_bound: any :param partition_lower_bound: The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_lower_bound: object + :type partition_lower_bound: any """ _attribute_map = { @@ -27310,10 +28333,10 @@ class OraclePartitionSettings(msrest.serialization.Model): def __init__( self, *, - partition_names: Optional[object] = None, - partition_column_name: Optional[object] = None, - partition_upper_bound: Optional[object] = None, - partition_lower_bound: Optional[object] = None, + partition_names: Optional[Any] = None, + partition_column_name: Optional[Any] = None, + partition_upper_bound: Optional[Any] = None, + partition_lower_bound: Optional[Any] = None, **kwargs ): super(OraclePartitionSettings, self).__init__(**kwargs) @@ -27330,7 +28353,7 @@ class OracleServiceCloudLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -27340,29 +28363,29 @@ class OracleServiceCloudLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The URL of the Oracle Service Cloud instance. - :type host: object + :type host: any :param username: Required. The user name that you use to access Oracle Service Cloud server. - :type username: object + :type username: any :param password: Required. The password corresponding to the user name that you provided in the username key. :type password: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -27391,18 +28414,18 @@ class OracleServiceCloudLinkedService(LinkedService): def __init__( self, *, - host: object, - username: object, + host: Any, + username: Any, password: "SecretBase", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - use_encrypted_endpoints: Optional[object] = None, - use_host_verification: Optional[object] = None, - use_peer_verification: Optional[object] = None, - encrypted_credential: Optional[object] = None, + annotations: Optional[List[Any]] = None, + use_encrypted_endpoints: Optional[Any] = None, + use_host_verification: Optional[Any] = None, + use_peer_verification: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(OracleServiceCloudLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -27423,28 +28446,28 @@ class OracleServiceCloudObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -27469,14 +28492,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(OracleServiceCloudObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -27491,27 +28514,30 @@ class OracleServiceCloudSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -27524,6 +28550,7 @@ class OracleServiceCloudSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -27532,16 +28559,17 @@ class OracleServiceCloudSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(OracleServiceCloudSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(OracleServiceCloudSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'OracleServiceCloudSource' # type: str self.query = query @@ -27553,27 +28581,30 @@ class OracleSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any """ _validation = { @@ -27588,22 +28619,24 @@ class OracleSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - pre_copy_script: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + pre_copy_script: Optional[Any] = None, **kwargs ): - super(OracleSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(OracleSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'OracleSink' # type: str self.pre_copy_script = pre_copy_script @@ -27615,27 +28648,30 @@ class OracleSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param oracle_reader_query: Oracle reader query. Type: string (or Expression with resultType string). - :type oracle_reader_query: object + :type oracle_reader_query: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param partition_option: The partition mechanism that will be used for Oracle read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for Oracle source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.OraclePartitionSettings :param additional_columns: Specifies the additional columns to be added to source data. Type: @@ -27653,6 +28689,7 @@ class OracleSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'oracle_reader_query': {'key': 'oracleReaderQuery', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'partition_option': {'key': 'partitionOption', 'type': 'object'}, @@ -27663,18 +28700,19 @@ class OracleSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - oracle_reader_query: Optional[object] = None, - query_timeout: Optional[object] = None, - partition_option: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + oracle_reader_query: Optional[Any] = None, + query_timeout: Optional[Any] = None, + partition_option: Optional[Any] = None, partition_settings: Optional["OraclePartitionSettings"] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(OracleSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(OracleSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'OracleSource' # type: str self.oracle_reader_query = oracle_reader_query self.query_timeout = query_timeout @@ -27690,35 +28728,35 @@ class OracleTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param schema_type_properties_schema: The schema name of the on-premises Oracle database. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any :param table: The table name of the on-premises Oracle database. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -27745,16 +28783,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, - table: Optional[object] = None, + table_name: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, + table: Optional[Any] = None, **kwargs ): super(OracleTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -27771,30 +28809,31 @@ class OrcDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param location: The location of the ORC data storage. :type location: ~azure.mgmt.datafactory.models.DatasetLocation - :param orc_compression_codec: Possible values include: "none", "zlib", "snappy", "lzo". - :type orc_compression_codec: str or ~azure.mgmt.datafactory.models.OrcCompressionCodec + :param orc_compression_codec: The data orcCompressionCodec. Type: string (or Expression with + resultType string). + :type orc_compression_codec: any """ _validation = { @@ -27813,22 +28852,22 @@ class OrcDataset(Dataset): 'annotations': {'key': 'annotations', 'type': '[object]'}, 'folder': {'key': 'folder', 'type': 'DatasetFolder'}, 'location': {'key': 'typeProperties.location', 'type': 'DatasetLocation'}, - 'orc_compression_codec': {'key': 'typeProperties.orcCompressionCodec', 'type': 'str'}, + 'orc_compression_codec': {'key': 'typeProperties.orcCompressionCodec', 'type': 'object'}, } def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, location: Optional["DatasetLocation"] = None, - orc_compression_codec: Optional[Union[str, "OrcCompressionCodec"]] = None, + orc_compression_codec: Optional[Any] = None, **kwargs ): super(OrcDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -27844,13 +28883,13 @@ class OrcFormat(DatasetStorageFormat): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage format.Constant filled by server. :type type: str :param serializer: Serializer. Type: string (or Expression with resultType string). - :type serializer: object + :type serializer: any :param deserializer: Deserializer. Type: string (or Expression with resultType string). - :type deserializer: object + :type deserializer: any """ _validation = { @@ -27867,9 +28906,9 @@ class OrcFormat(DatasetStorageFormat): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - serializer: Optional[object] = None, - deserializer: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + serializer: Optional[Any] = None, + deserializer: Optional[Any] = None, **kwargs ): super(OrcFormat, self).__init__(additional_properties=additional_properties, serializer=serializer, deserializer=deserializer, **kwargs) @@ -27883,24 +28922,27 @@ class OrcSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: ORC store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreWriteSettings :param format_settings: ORC format settings. @@ -27919,6 +28961,7 @@ class OrcSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreWriteSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'OrcWriteSettings'}, } @@ -27926,17 +28969,18 @@ class OrcSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, store_settings: Optional["StoreWriteSettings"] = None, format_settings: Optional["OrcWriteSettings"] = None, **kwargs ): - super(OrcSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(OrcSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'OrcSink' # type: str self.store_settings = store_settings self.format_settings = format_settings @@ -27949,18 +28993,21 @@ class OrcSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: ORC store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param additional_columns: Specifies the additional columns to be added to source data. Type: @@ -27978,6 +29025,7 @@ class OrcSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreReadSettings'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -27985,15 +29033,16 @@ class OrcSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, store_settings: Optional["StoreReadSettings"] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(OrcSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(OrcSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'OrcSource' # type: str self.store_settings = store_settings self.additional_columns = additional_columns @@ -28006,16 +29055,16 @@ class OrcWriteSettings(FormatWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_rows_per_file: Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer). - :type max_rows_per_file: object + :type max_rows_per_file: any :param file_name_prefix: Specifies the file name pattern :code:``_:code:``.:code:`` when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string). - :type file_name_prefix: object + :type file_name_prefix: any """ _validation = { @@ -28032,9 +29081,9 @@ class OrcWriteSettings(FormatWriteSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_rows_per_file: Optional[object] = None, - file_name_prefix: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_rows_per_file: Optional[Any] = None, + file_name_prefix: Optional[Any] = None, **kwargs ): super(OrcWriteSettings, self).__init__(additional_properties=additional_properties, **kwargs) @@ -28085,7 +29134,7 @@ class ParameterSpecification(msrest.serialization.Model): "Float", "Bool", "Array", "SecureString". :type type: str or ~azure.mgmt.datafactory.models.ParameterType :param default_value: Default value of parameter. - :type default_value: object + :type default_value: any """ _validation = { @@ -28101,7 +29150,7 @@ def __init__( self, *, type: Union[str, "ParameterType"], - default_value: Optional[object] = None, + default_value: Optional[Any] = None, **kwargs ): super(ParameterSpecification, self).__init__(**kwargs) @@ -28116,31 +29165,31 @@ class ParquetDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param location: The location of the parquet storage. :type location: ~azure.mgmt.datafactory.models.DatasetLocation - :param compression_codec: Possible values include: "none", "gzip", "snappy", "lzo", "bzip2", - "deflate", "zipDeflate", "lz4", "tar", "tarGZip". - :type compression_codec: str or ~azure.mgmt.datafactory.models.CompressionCodec + :param compression_codec: The data compressionCodec. Type: string (or Expression with + resultType string). + :type compression_codec: any """ _validation = { @@ -28159,22 +29208,22 @@ class ParquetDataset(Dataset): 'annotations': {'key': 'annotations', 'type': '[object]'}, 'folder': {'key': 'folder', 'type': 'DatasetFolder'}, 'location': {'key': 'typeProperties.location', 'type': 'DatasetLocation'}, - 'compression_codec': {'key': 'typeProperties.compressionCodec', 'type': 'str'}, + 'compression_codec': {'key': 'typeProperties.compressionCodec', 'type': 'object'}, } def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, location: Optional["DatasetLocation"] = None, - compression_codec: Optional[Union[str, "CompressionCodec"]] = None, + compression_codec: Optional[Any] = None, **kwargs ): super(ParquetDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -28190,13 +29239,13 @@ class ParquetFormat(DatasetStorageFormat): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage format.Constant filled by server. :type type: str :param serializer: Serializer. Type: string (or Expression with resultType string). - :type serializer: object + :type serializer: any :param deserializer: Deserializer. Type: string (or Expression with resultType string). - :type deserializer: object + :type deserializer: any """ _validation = { @@ -28213,9 +29262,9 @@ class ParquetFormat(DatasetStorageFormat): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - serializer: Optional[object] = None, - deserializer: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + serializer: Optional[Any] = None, + deserializer: Optional[Any] = None, **kwargs ): super(ParquetFormat, self).__init__(additional_properties=additional_properties, serializer=serializer, deserializer=deserializer, **kwargs) @@ -28229,24 +29278,27 @@ class ParquetSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Parquet store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreWriteSettings :param format_settings: Parquet format settings. @@ -28265,6 +29317,7 @@ class ParquetSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreWriteSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'ParquetWriteSettings'}, } @@ -28272,17 +29325,18 @@ class ParquetSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, store_settings: Optional["StoreWriteSettings"] = None, format_settings: Optional["ParquetWriteSettings"] = None, **kwargs ): - super(ParquetSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(ParquetSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'ParquetSink' # type: str self.store_settings = store_settings self.format_settings = format_settings @@ -28295,18 +29349,21 @@ class ParquetSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Parquet store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param additional_columns: Specifies the additional columns to be added to source data. Type: @@ -28324,6 +29381,7 @@ class ParquetSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreReadSettings'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -28331,15 +29389,16 @@ class ParquetSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, store_settings: Optional["StoreReadSettings"] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(ParquetSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(ParquetSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'ParquetSource' # type: str self.store_settings = store_settings self.additional_columns = additional_columns @@ -28352,16 +29411,16 @@ class ParquetWriteSettings(FormatWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_rows_per_file: Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer). - :type max_rows_per_file: object + :type max_rows_per_file: any :param file_name_prefix: Specifies the file name pattern :code:``_:code:``.:code:`` when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string). - :type file_name_prefix: object + :type file_name_prefix: any """ _validation = { @@ -28378,9 +29437,9 @@ class ParquetWriteSettings(FormatWriteSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_rows_per_file: Optional[object] = None, - file_name_prefix: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_rows_per_file: Optional[Any] = None, + file_name_prefix: Optional[Any] = None, **kwargs ): super(ParquetWriteSettings, self).__init__(additional_properties=additional_properties, **kwargs) @@ -28396,7 +29455,7 @@ class PaypalLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -28406,27 +29465,27 @@ class PaypalLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The URL of the PayPal instance. (i.e. api.sandbox.paypal.com). - :type host: object + :type host: any :param client_id: Required. The client ID associated with your PayPal application. - :type client_id: object + :type client_id: any :param client_secret: The client secret associated with your PayPal application. :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -28454,18 +29513,18 @@ class PaypalLinkedService(LinkedService): def __init__( self, *, - host: object, - client_id: object, - additional_properties: Optional[Dict[str, object]] = None, + host: Any, + client_id: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, client_secret: Optional["SecretBase"] = None, - use_encrypted_endpoints: Optional[object] = None, - use_host_verification: Optional[object] = None, - use_peer_verification: Optional[object] = None, - encrypted_credential: Optional[object] = None, + use_encrypted_endpoints: Optional[Any] = None, + use_host_verification: Optional[Any] = None, + use_peer_verification: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(PaypalLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -28486,28 +29545,28 @@ class PaypalObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -28532,14 +29591,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(PaypalObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -28554,27 +29613,30 @@ class PaypalSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -28587,6 +29649,7 @@ class PaypalSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -28595,16 +29658,17 @@ class PaypalSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(PaypalSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(PaypalSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'PaypalSource' # type: str self.query = query @@ -28616,7 +29680,7 @@ class PhoenixLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -28626,45 +29690,45 @@ class PhoenixLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The IP address or host name of the Phoenix server. (i.e. 192.168.222.160). - :type host: object + :type host: any :param port: The TCP port that the Phoenix server uses to listen for client connections. The default value is 8765. - :type port: object + :type port: any :param http_path: The partial URL corresponding to the Phoenix server. (i.e. /gateway/sandbox/phoenix/version). The default value is hbasephoenix if using WindowsAzureHDInsightService. - :type http_path: object + :type http_path: any :param authentication_type: Required. The authentication mechanism used to connect to the Phoenix server. Possible values include: "Anonymous", "UsernameAndPassword", "WindowsAzureHDInsightService". :type authentication_type: str or ~azure.mgmt.datafactory.models.PhoenixAuthenticationType :param username: The user name used to connect to the Phoenix server. - :type username: object + :type username: any :param password: The password corresponding to the user name. :type password: ~azure.mgmt.datafactory.models.SecretBase :param enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false. - :type enable_ssl: object + :type enable_ssl: any :param trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. - :type trusted_cert_path: object + :type trusted_cert_path: any :param use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. - :type use_system_trust_store: object + :type use_system_trust_store: any :param allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false. - :type allow_host_name_cn_mismatch: object + :type allow_host_name_cn_mismatch: any :param allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false. - :type allow_self_signed_server_cert: object + :type allow_self_signed_server_cert: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -28697,23 +29761,23 @@ class PhoenixLinkedService(LinkedService): def __init__( self, *, - host: object, + host: Any, authentication_type: Union[str, "PhoenixAuthenticationType"], - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - port: Optional[object] = None, - http_path: Optional[object] = None, - username: Optional[object] = None, + annotations: Optional[List[Any]] = None, + port: Optional[Any] = None, + http_path: Optional[Any] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - enable_ssl: Optional[object] = None, - trusted_cert_path: Optional[object] = None, - use_system_trust_store: Optional[object] = None, - allow_host_name_cn_mismatch: Optional[object] = None, - allow_self_signed_server_cert: Optional[object] = None, - encrypted_credential: Optional[object] = None, + enable_ssl: Optional[Any] = None, + trusted_cert_path: Optional[Any] = None, + use_system_trust_store: Optional[Any] = None, + allow_host_name_cn_mismatch: Optional[Any] = None, + allow_self_signed_server_cert: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(PhoenixLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -28739,35 +29803,35 @@ class PhoenixObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Phoenix. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Phoenix. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -28794,16 +29858,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - table: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, + table_name: Optional[Any] = None, + table: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, **kwargs ): super(PhoenixObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -28820,27 +29884,30 @@ class PhoenixSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -28853,6 +29920,7 @@ class PhoenixSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -28861,16 +29929,17 @@ class PhoenixSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(PhoenixSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(PhoenixSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'PhoenixSource' # type: str self.query = query @@ -28879,7 +29948,7 @@ class PipelineElapsedTimeMetricPolicy(msrest.serialization.Model): """Pipeline ElapsedTime Metric Policy. :param duration: TimeSpan value, after which an Azure Monitoring Metric is fired. - :type duration: object + :type duration: any """ _attribute_map = { @@ -28889,7 +29958,7 @@ class PipelineElapsedTimeMetricPolicy(msrest.serialization.Model): def __init__( self, *, - duration: Optional[object] = None, + duration: Optional[Any] = None, **kwargs ): super(PipelineElapsedTimeMetricPolicy, self).__init__(**kwargs) @@ -28977,7 +30046,7 @@ class PipelineReference(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar type: Required. Pipeline reference type. Default value: "PipelineReference". + :ivar type: Pipeline reference type. Has constant value: "PipelineReference". :vartype type: str :param reference_name: Required. Reference pipeline name. :type reference_name: str @@ -29025,7 +30094,7 @@ class PipelineResource(SubResource): :vartype etag: str :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param description: The description of the pipeline. :type description: str :param activities: List of activities in pipeline. @@ -29037,9 +30106,9 @@ class PipelineResource(SubResource): :param concurrency: The max number of concurrent runs for the pipeline. :type concurrency: int :param annotations: List of tags that can be used for describing the Pipeline. - :type annotations: list[object] + :type annotations: list[any] :param run_dimensions: Dimensions emitted by Pipeline. - :type run_dimensions: dict[str, object] + :type run_dimensions: dict[str, any] :param folder: The folder that this Pipeline is in. If not specified, Pipeline will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.PipelineFolder @@ -29075,14 +30144,14 @@ class PipelineResource(SubResource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, activities: Optional[List["Activity"]] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, variables: Optional[Dict[str, "VariableSpecification"]] = None, concurrency: Optional[int] = None, - annotations: Optional[List[object]] = None, - run_dimensions: Optional[Dict[str, object]] = None, + annotations: Optional[List[Any]] = None, + run_dimensions: Optional[Dict[str, Any]] = None, folder: Optional["PipelineFolder"] = None, policy: Optional["PipelinePolicy"] = None, **kwargs @@ -29107,7 +30176,7 @@ class PipelineRun(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar run_id: Identifier of a run. :vartype run_id: str :ivar run_group_id: Identifier that correlates all the recovery runs of a pipeline run. @@ -29173,7 +30242,7 @@ class PipelineRun(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(PipelineRun, self).__init__(**kwargs) @@ -29204,18 +30273,26 @@ class PipelineRunInvokedBy(msrest.serialization.Model): :vartype id: str :ivar invoked_by_type: The type of the entity that started the run. :vartype invoked_by_type: str + :ivar pipeline_name: The name of the pipeline that triggered the run, if any. + :vartype pipeline_name: str + :ivar pipeline_run_id: The run id of the pipeline that triggered the run, if any. + :vartype pipeline_run_id: str """ _validation = { 'name': {'readonly': True}, 'id': {'readonly': True}, 'invoked_by_type': {'readonly': True}, + 'pipeline_name': {'readonly': True}, + 'pipeline_run_id': {'readonly': True}, } _attribute_map = { 'name': {'key': 'name', 'type': 'str'}, 'id': {'key': 'id', 'type': 'str'}, 'invoked_by_type': {'key': 'invokedByType', 'type': 'str'}, + 'pipeline_name': {'key': 'pipelineName', 'type': 'str'}, + 'pipeline_run_id': {'key': 'pipelineRunId', 'type': 'str'}, } def __init__( @@ -29226,6 +30303,8 @@ def __init__( self.name = None self.id = None self.invoked_by_type = None + self.pipeline_name = None + self.pipeline_run_id = None class PipelineRunsQueryResponse(msrest.serialization.Model): @@ -29266,20 +30345,20 @@ class PolybaseSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param reject_type: Reject type. Possible values include: "value", "percentage". :type reject_type: str or ~azure.mgmt.datafactory.models.PolybaseSettingsRejectType :param reject_value: Specifies the value or the percentage of rows that can be rejected before the query fails. Type: number (or Expression with resultType number), minimum: 0. - :type reject_value: object + :type reject_value: any :param reject_sample_value: Determines the number of rows to attempt to retrieve before the PolyBase recalculates the percentage of rejected rows. Type: integer (or Expression with resultType integer), minimum: 0. - :type reject_sample_value: object + :type reject_sample_value: any :param use_type_default: Specifies how to handle missing values in delimited text files when PolyBase retrieves data from the text file. Type: boolean (or Expression with resultType boolean). - :type use_type_default: object + :type use_type_default: any """ _attribute_map = { @@ -29293,11 +30372,11 @@ class PolybaseSettings(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, reject_type: Optional[Union[str, "PolybaseSettingsRejectType"]] = None, - reject_value: Optional[object] = None, - reject_sample_value: Optional[object] = None, - use_type_default: Optional[object] = None, + reject_value: Optional[Any] = None, + reject_sample_value: Optional[Any] = None, + use_type_default: Optional[Any] = None, **kwargs ): super(PolybaseSettings, self).__init__(**kwargs) @@ -29315,7 +30394,7 @@ class PostgreSqlLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -29325,15 +30404,15 @@ class PostgreSqlLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -29356,14 +30435,14 @@ class PostgreSqlLinkedService(LinkedService): def __init__( self, *, - connection_string: object, - additional_properties: Optional[Dict[str, object]] = None, + connection_string: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, password: Optional["AzureKeyVaultSecretReference"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(PostgreSqlLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -29380,26 +30459,29 @@ class PostgreSqlSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -29412,6 +30494,7 @@ class PostgreSqlSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -29420,16 +30503,17 @@ class PostgreSqlSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(PostgreSqlSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(PostgreSqlSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'PostgreSqlSource' # type: str self.query = query @@ -29441,34 +30525,34 @@ class PostgreSqlTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The PostgreSQL table name. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The PostgreSQL schema name. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -29495,16 +30579,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - table: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, + table_name: Optional[Any] = None, + table: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, **kwargs ): super(PostgreSqlTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -29521,7 +30605,7 @@ class PrestoLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -29531,47 +30615,47 @@ class PrestoLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The IP address or host name of the Presto server. (i.e. 192.168.222.160). - :type host: object + :type host: any :param server_version: Required. The version of the Presto server. (i.e. 0.148-t). - :type server_version: object + :type server_version: any :param catalog: Required. The catalog context for all request against the server. - :type catalog: object + :type catalog: any :param port: The TCP port that the Presto server uses to listen for client connections. The default value is 8080. - :type port: object + :type port: any :param authentication_type: Required. The authentication mechanism used to connect to the Presto server. Possible values include: "Anonymous", "LDAP". :type authentication_type: str or ~azure.mgmt.datafactory.models.PrestoAuthenticationType :param username: The user name used to connect to the Presto server. - :type username: object + :type username: any :param password: The password corresponding to the user name. :type password: ~azure.mgmt.datafactory.models.SecretBase :param enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false. - :type enable_ssl: object + :type enable_ssl: any :param trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. - :type trusted_cert_path: object + :type trusted_cert_path: any :param use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. - :type use_system_trust_store: object + :type use_system_trust_store: any :param allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false. - :type allow_host_name_cn_mismatch: object + :type allow_host_name_cn_mismatch: any :param allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false. - :type allow_self_signed_server_cert: object + :type allow_self_signed_server_cert: any :param time_zone_id: The local time zone used by the connection. Valid values for this option are specified in the IANA Time Zone Database. The default value is the system time zone. - :type time_zone_id: object + :type time_zone_id: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -29608,25 +30692,25 @@ class PrestoLinkedService(LinkedService): def __init__( self, *, - host: object, - server_version: object, - catalog: object, + host: Any, + server_version: Any, + catalog: Any, authentication_type: Union[str, "PrestoAuthenticationType"], - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - port: Optional[object] = None, - username: Optional[object] = None, + annotations: Optional[List[Any]] = None, + port: Optional[Any] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - enable_ssl: Optional[object] = None, - trusted_cert_path: Optional[object] = None, - use_system_trust_store: Optional[object] = None, - allow_host_name_cn_mismatch: Optional[object] = None, - allow_self_signed_server_cert: Optional[object] = None, - time_zone_id: Optional[object] = None, - encrypted_credential: Optional[object] = None, + enable_ssl: Optional[Any] = None, + trusted_cert_path: Optional[Any] = None, + use_system_trust_store: Optional[Any] = None, + allow_host_name_cn_mismatch: Optional[Any] = None, + allow_self_signed_server_cert: Optional[Any] = None, + time_zone_id: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(PrestoLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -29654,35 +30738,35 @@ class PrestoObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Presto. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Presto. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -29709,16 +30793,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - table: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, + table_name: Optional[Any] = None, + table: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, **kwargs ): super(PrestoObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -29735,27 +30819,30 @@ class PrestoSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -29768,6 +30855,7 @@ class PrestoSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -29776,20 +30864,294 @@ class PrestoSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(PrestoSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(PrestoSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'PrestoSource' # type: str self.query = query +class PrivateEndpointConnectionListResponse(msrest.serialization.Model): + """A list of linked service resources. + + All required parameters must be populated in order to send to Azure. + + :param value: Required. List of Private Endpoint Connections. + :type value: list[~azure.mgmt.datafactory.models.PrivateEndpointConnectionResource] + :param next_link: The link to the next page of results, if any remaining results exist. + :type next_link: str + """ + + _validation = { + 'value': {'required': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PrivateEndpointConnectionResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["PrivateEndpointConnectionResource"], + next_link: Optional[str] = None, + **kwargs + ): + super(PrivateEndpointConnectionListResponse, self).__init__(**kwargs) + self.value = value + self.next_link = next_link + + +class PrivateEndpointConnectionResource(SubResource): + """Private Endpoint Connection ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The resource identifier. + :vartype id: str + :ivar name: The resource name. + :vartype name: str + :ivar type: The resource type. + :vartype type: str + :ivar etag: Etag identifies change in the resource. + :vartype etag: str + :param properties: Core resource properties. + :type properties: ~azure.mgmt.datafactory.models.RemotePrivateEndpointConnection + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'RemotePrivateEndpointConnection'}, + } + + def __init__( + self, + *, + properties: Optional["RemotePrivateEndpointConnection"] = None, + **kwargs + ): + super(PrivateEndpointConnectionResource, self).__init__(**kwargs) + self.properties = properties + + +class PrivateLinkConnectionApprovalRequest(msrest.serialization.Model): + """A request to approve or reject a private endpoint connection. + + :param private_link_service_connection_state: The state of a private link connection. + :type private_link_service_connection_state: + ~azure.mgmt.datafactory.models.PrivateLinkConnectionState + """ + + _attribute_map = { + 'private_link_service_connection_state': {'key': 'privateLinkServiceConnectionState', 'type': 'PrivateLinkConnectionState'}, + } + + def __init__( + self, + *, + private_link_service_connection_state: Optional["PrivateLinkConnectionState"] = None, + **kwargs + ): + super(PrivateLinkConnectionApprovalRequest, self).__init__(**kwargs) + self.private_link_service_connection_state = private_link_service_connection_state + + +class PrivateLinkConnectionApprovalRequestResource(SubResource): + """Private Endpoint Connection Approval ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The resource identifier. + :vartype id: str + :ivar name: The resource name. + :vartype name: str + :ivar type: The resource type. + :vartype type: str + :ivar etag: Etag identifies change in the resource. + :vartype etag: str + :param properties: Core resource properties. + :type properties: ~azure.mgmt.datafactory.models.PrivateLinkConnectionApprovalRequest + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'PrivateLinkConnectionApprovalRequest'}, + } + + def __init__( + self, + *, + properties: Optional["PrivateLinkConnectionApprovalRequest"] = None, + **kwargs + ): + super(PrivateLinkConnectionApprovalRequestResource, self).__init__(**kwargs) + self.properties = properties + + +class PrivateLinkConnectionState(msrest.serialization.Model): + """The state of a private link connection. + + :param status: Status of a private link connection. + :type status: str + :param description: Description of a private link connection. + :type description: str + :param actions_required: ActionsRequired for a private link connection. + :type actions_required: str + """ + + _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, + actions_required: Optional[str] = None, + **kwargs + ): + super(PrivateLinkConnectionState, self).__init__(**kwargs) + self.status = status + self.description = description + self.actions_required = actions_required + + +class PrivateLinkResource(SubResource): + """A private link resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The resource identifier. + :vartype id: str + :ivar name: The resource name. + :vartype name: str + :ivar type: The resource type. + :vartype type: str + :ivar etag: Etag identifies change in the resource. + :vartype etag: str + :param properties: Core resource properties. + :type properties: ~azure.mgmt.datafactory.models.PrivateLinkResourceProperties + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'PrivateLinkResourceProperties'}, + } + + def __init__( + self, + *, + properties: Optional["PrivateLinkResourceProperties"] = None, + **kwargs + ): + super(PrivateLinkResource, self).__init__(**kwargs) + self.properties = properties + + +class PrivateLinkResourceProperties(msrest.serialization.Model): + """Properties of a private link resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar group_id: GroupId of a private link resource. + :vartype group_id: str + :ivar required_members: RequiredMembers of a private link resource. + :vartype required_members: list[str] + :ivar required_zone_names: RequiredZoneNames of a private link resource. + :vartype required_zone_names: list[str] + """ + + _validation = { + 'group_id': {'readonly': True}, + 'required_members': {'readonly': True}, + 'required_zone_names': {'readonly': True}, + } + + _attribute_map = { + 'group_id': {'key': 'groupId', 'type': 'str'}, + 'required_members': {'key': 'requiredMembers', 'type': '[str]'}, + 'required_zone_names': {'key': 'requiredZoneNames', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkResourceProperties, self).__init__(**kwargs) + self.group_id = None + self.required_members = None + self.required_zone_names = None + + +class PrivateLinkResourcesWrapper(msrest.serialization.Model): + """Wrapper for a collection of private link resources. + + All required parameters must be populated in order to send to Azure. + + :param value: Required. + :type value: list[~azure.mgmt.datafactory.models.PrivateLinkResource] + """ + + _validation = { + 'value': {'required': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PrivateLinkResource]'}, + } + + def __init__( + self, + *, + value: List["PrivateLinkResource"], + **kwargs + ): + super(PrivateLinkResourcesWrapper, self).__init__(**kwargs) + self.value = value + + class QueryDataFlowDebugSessionsResponse(msrest.serialization.Model): """A list of active debug sessions. @@ -29823,7 +31185,7 @@ class QuickBooksLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -29833,16 +31195,16 @@ class QuickBooksLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_properties: Properties used to connect to QuickBooks. It is mutually exclusive with any other properties in the linked service. Type: object. - :type connection_properties: object + :type connection_properties: any :param endpoint: The endpoint of the QuickBooks server. (i.e. quickbooks.api.intuit.com). - :type endpoint: object + :type endpoint: any :param company_id: The company ID of the QuickBooks company to authorize. - :type company_id: object + :type company_id: any :param consumer_key: The consumer key for OAuth 1.0 authentication. - :type consumer_key: object + :type consumer_key: any :param consumer_secret: The consumer secret for OAuth 1.0 authentication. :type consumer_secret: ~azure.mgmt.datafactory.models.SecretBase :param access_token: The access token for OAuth 1.0 authentication. @@ -29851,11 +31213,11 @@ class QuickBooksLinkedService(LinkedService): :type access_token_secret: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -29883,20 +31245,20 @@ class QuickBooksLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_properties: Optional[object] = None, - endpoint: Optional[object] = None, - company_id: Optional[object] = None, - consumer_key: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_properties: Optional[Any] = None, + endpoint: Optional[Any] = None, + company_id: Optional[Any] = None, + consumer_key: Optional[Any] = None, consumer_secret: Optional["SecretBase"] = None, access_token: Optional["SecretBase"] = None, access_token_secret: Optional["SecretBase"] = None, - use_encrypted_endpoints: Optional[object] = None, - encrypted_credential: Optional[object] = None, + use_encrypted_endpoints: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(QuickBooksLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -29919,28 +31281,28 @@ class QuickBooksObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -29965,14 +31327,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(QuickBooksObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -29987,27 +31349,30 @@ class QuickBooksSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -30020,6 +31385,7 @@ class QuickBooksSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -30028,16 +31394,17 @@ class QuickBooksSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(QuickBooksSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(QuickBooksSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'QuickBooksSource' # type: str self.query = query @@ -30047,7 +31414,7 @@ class RecurrenceSchedule(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param minutes: The minutes. :type minutes: list[int] :param hours: The hours. @@ -30072,7 +31439,7 @@ class RecurrenceSchedule(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, minutes: Optional[List[int]] = None, hours: Optional[List[int]] = None, week_days: Optional[List[Union[str, "DaysOfWeek"]]] = None, @@ -30094,7 +31461,7 @@ class RecurrenceScheduleOccurrence(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param day: The day of the week. Possible values include: "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday". :type day: str or ~azure.mgmt.datafactory.models.DayOfWeek @@ -30111,7 +31478,7 @@ class RecurrenceScheduleOccurrence(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, day: Optional[Union[str, "DayOfWeek"]] = None, occurrence: Optional[int] = None, **kwargs @@ -30129,15 +31496,15 @@ class RedirectIncompatibleRowSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param linked_service_name: Required. Name of the Azure Storage, Storage SAS, or Azure Data Lake Store linked service used for redirecting incompatible row. Must be specified if redirectIncompatibleRowSettings is specified. Type: string (or Expression with resultType string). - :type linked_service_name: object + :type linked_service_name: any :param path: The path for storing the redirect incompatible row data. Type: string (or Expression with resultType string). - :type path: object + :type path: any """ _validation = { @@ -30153,9 +31520,9 @@ class RedirectIncompatibleRowSettings(msrest.serialization.Model): def __init__( self, *, - linked_service_name: object, - additional_properties: Optional[Dict[str, object]] = None, - path: Optional[object] = None, + linked_service_name: Any, + additional_properties: Optional[Dict[str, Any]] = None, + path: Optional[Any] = None, **kwargs ): super(RedirectIncompatibleRowSettings, self).__init__(**kwargs) @@ -30175,7 +31542,7 @@ class RedshiftUnloadSettings(msrest.serialization.Model): :param bucket_name: Required. The bucket of the interim Amazon S3 which will be used to store the unloaded data from Amazon Redshift source. The bucket must be in the same region as the Amazon Redshift source. Type: string (or Expression with resultType string). - :type bucket_name: object + :type bucket_name: any """ _validation = { @@ -30192,7 +31559,7 @@ def __init__( self, *, s3_linked_service_name: "LinkedServiceReference", - bucket_name: object, + bucket_name: Any, **kwargs ): super(RedshiftUnloadSettings, self).__init__(**kwargs) @@ -30207,20 +31574,23 @@ class RelationalSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -30236,6 +31606,7 @@ class RelationalSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } @@ -30243,15 +31614,16 @@ class RelationalSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(RelationalSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(RelationalSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'RelationalSource' # type: str self.query = query self.additional_columns = additional_columns @@ -30264,29 +31636,29 @@ class RelationalTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The relational table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -30311,14 +31683,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(RelationalTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -30326,6 +31698,43 @@ def __init__( self.table_name = table_name +class RemotePrivateEndpointConnection(msrest.serialization.Model): + """A remote private endpoint connection. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar provisioning_state: + :vartype provisioning_state: str + :param private_endpoint: PrivateEndpoint of a remote private endpoint connection. + :type private_endpoint: ~azure.mgmt.datafactory.models.ArmIdWrapper + :param private_link_service_connection_state: The state of a private link connection. + :type private_link_service_connection_state: + ~azure.mgmt.datafactory.models.PrivateLinkConnectionState + """ + + _validation = { + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'private_endpoint': {'key': 'privateEndpoint', 'type': 'ArmIdWrapper'}, + 'private_link_service_connection_state': {'key': 'privateLinkServiceConnectionState', 'type': 'PrivateLinkConnectionState'}, + } + + def __init__( + self, + *, + private_endpoint: Optional["ArmIdWrapper"] = None, + private_link_service_connection_state: Optional["PrivateLinkConnectionState"] = None, + **kwargs + ): + super(RemotePrivateEndpointConnection, self).__init__(**kwargs) + self.provisioning_state = None + self.private_endpoint = private_endpoint + self.private_link_service_connection_state = private_link_service_connection_state + + class RerunTumblingWindowTrigger(Trigger): """Trigger that schedules pipeline reruns for all fixed time interval windows from a requested start time to requested end time. @@ -30335,7 +31744,7 @@ class RerunTumblingWindowTrigger(Trigger): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -30344,9 +31753,9 @@ class RerunTumblingWindowTrigger(Trigger): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] :param parent_trigger: Required. The parent trigger reference. - :type parent_trigger: object + :type parent_trigger: any :param requested_start_time: Required. The start time for the time period for which restatement is initiated. Only UTC time is currently supported. :type requested_start_time: ~datetime.datetime @@ -30382,13 +31791,13 @@ class RerunTumblingWindowTrigger(Trigger): def __init__( self, *, - parent_trigger: object, + parent_trigger: Any, requested_start_time: datetime.datetime, requested_end_time: datetime.datetime, rerun_concurrency: int, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, **kwargs ): super(RerunTumblingWindowTrigger, self).__init__(additional_properties=additional_properties, description=description, annotations=annotations, **kwargs) @@ -30406,7 +31815,7 @@ class ResponsysLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -30416,30 +31825,30 @@ class ResponsysLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param endpoint: Required. The endpoint of the Responsys server. - :type endpoint: object + :type endpoint: any :param client_id: Required. The client ID associated with the Responsys application. Type: string (or Expression with resultType string). - :type client_id: object + :type client_id: any :param client_secret: The client secret associated with the Responsys application. Type: string (or Expression with resultType string). :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -30467,18 +31876,18 @@ class ResponsysLinkedService(LinkedService): def __init__( self, *, - endpoint: object, - client_id: object, - additional_properties: Optional[Dict[str, object]] = None, + endpoint: Any, + client_id: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, client_secret: Optional["SecretBase"] = None, - use_encrypted_endpoints: Optional[object] = None, - use_host_verification: Optional[object] = None, - use_peer_verification: Optional[object] = None, - encrypted_credential: Optional[object] = None, + use_encrypted_endpoints: Optional[Any] = None, + use_host_verification: Optional[Any] = None, + use_peer_verification: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(ResponsysLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -30499,28 +31908,28 @@ class ResponsysObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -30545,14 +31954,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(ResponsysObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -30567,27 +31976,30 @@ class ResponsysSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -30600,6 +32012,7 @@ class ResponsysSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -30608,16 +32021,17 @@ class ResponsysSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(ResponsysSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(ResponsysSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'ResponsysSource' # type: str self.query = query @@ -30629,41 +32043,41 @@ class RestResourceDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param relative_url: The relative URL to the resource that the RESTful API provides. Type: string (or Expression with resultType string). - :type relative_url: object + :type relative_url: any :param request_method: The HTTP method used to call the RESTful API. The default is GET. Type: string (or Expression with resultType string). - :type request_method: object + :type request_method: any :param request_body: The HTTP request body to the RESTful API if requestMethod is POST. Type: string (or Expression with resultType string). - :type request_body: object + :type request_body: any :param additional_headers: The additional HTTP headers in the request to the RESTful API. Type: string (or Expression with resultType string). - :type additional_headers: object + :type additional_headers: any :param pagination_rules: The pagination rules to compose next page requests. Type: string (or Expression with resultType string). - :type pagination_rules: object + :type pagination_rules: any """ _validation = { @@ -30692,18 +32106,18 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - relative_url: Optional[object] = None, - request_method: Optional[object] = None, - request_body: Optional[object] = None, - additional_headers: Optional[object] = None, - pagination_rules: Optional[object] = None, + relative_url: Optional[Any] = None, + request_method: Optional[Any] = None, + request_body: Optional[Any] = None, + additional_headers: Optional[Any] = None, + pagination_rules: Optional[Any] = None, **kwargs ): super(RestResourceDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -30722,7 +32136,7 @@ class RestServiceLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -30732,43 +32146,45 @@ class RestServiceLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. The base URL of the REST service. - :type url: object + :type url: any :param enable_server_certificate_validation: Whether to validate server side SSL certificate when connecting to the endpoint.The default value is true. Type: boolean (or Expression with resultType boolean). - :type enable_server_certificate_validation: object + :type enable_server_certificate_validation: any :param authentication_type: Required. Type of authentication used to connect to the REST service. Possible values include: "Anonymous", "Basic", "AadServicePrincipal", "ManagedServiceIdentity". :type authentication_type: str or ~azure.mgmt.datafactory.models.RestServiceAuthenticationType :param user_name: The user name used in Basic authentication type. - :type user_name: object + :type user_name: any :param password: The password used in Basic authentication type. :type password: ~azure.mgmt.datafactory.models.SecretBase :param auth_headers: The additional HTTP headers in the request to RESTful API used for authorization. Type: object (or Expression with resultType object). - :type auth_headers: object + :type auth_headers: any :param service_principal_id: The application's client ID used in AadServicePrincipal authentication type. - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: The application's key used in AadServicePrincipal authentication type. :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param tenant: The tenant information (domain name or tenant ID) used in AadServicePrincipal authentication type under which your application resides. - :type tenant: object + :type tenant: any :param azure_cloud_type: Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string). - :type azure_cloud_type: object + :type azure_cloud_type: any :param aad_resource_id: The resource you are requesting authorization to use. - :type aad_resource_id: object + :type aad_resource_id: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ _validation = { @@ -30796,28 +32212,30 @@ class RestServiceLinkedService(LinkedService): 'azure_cloud_type': {'key': 'typeProperties.azureCloudType', 'type': 'object'}, 'aad_resource_id': {'key': 'typeProperties.aadResourceId', 'type': 'object'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'credential': {'key': 'typeProperties.credential', 'type': 'CredentialReference'}, } def __init__( self, *, - url: object, + url: Any, authentication_type: Union[str, "RestServiceAuthenticationType"], - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - enable_server_certificate_validation: Optional[object] = None, - user_name: Optional[object] = None, + annotations: Optional[List[Any]] = None, + enable_server_certificate_validation: Optional[Any] = None, + user_name: Optional[Any] = None, password: Optional["SecretBase"] = None, - auth_headers: Optional[object] = None, - service_principal_id: Optional[object] = None, + auth_headers: Optional[Any] = None, + service_principal_id: Optional[Any] = None, service_principal_key: Optional["SecretBase"] = None, - tenant: Optional[object] = None, - azure_cloud_type: Optional[object] = None, - aad_resource_id: Optional[object] = None, - encrypted_credential: Optional[object] = None, + tenant: Optional[Any] = None, + azure_cloud_type: Optional[Any] = None, + aad_resource_id: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, + credential: Optional["CredentialReference"] = None, **kwargs ): super(RestServiceLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -30834,6 +32252,7 @@ def __init__( self.azure_cloud_type = azure_cloud_type self.aad_resource_id = aad_resource_id self.encrypted_credential = encrypted_credential + self.credential = credential class RestSink(CopySink): @@ -30843,40 +32262,43 @@ class RestSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param request_method: The HTTP method used to call the RESTful API. The default is POST. Type: string (or Expression with resultType string). - :type request_method: object + :type request_method: any :param additional_headers: The additional HTTP headers in the request to the RESTful API. Type: string (or Expression with resultType string). - :type additional_headers: object + :type additional_headers: any :param http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:01:40. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any :param request_interval: The time to await before sending next request, in milliseconds. - :type request_interval: object + :type request_interval: any :param http_compression_type: Http Compression Type to Send data in compressed format with Optimal Compression Level, Default is None. And The Only Supported option is Gzip. - :type http_compression_type: object + :type http_compression_type: any """ _validation = { @@ -30891,6 +32313,7 @@ class RestSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'request_method': {'key': 'requestMethod', 'type': 'object'}, 'additional_headers': {'key': 'additionalHeaders', 'type': 'object'}, 'http_request_timeout': {'key': 'httpRequestTimeout', 'type': 'object'}, @@ -30901,20 +32324,21 @@ class RestSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - request_method: Optional[object] = None, - additional_headers: Optional[object] = None, - http_request_timeout: Optional[object] = None, - request_interval: Optional[object] = None, - http_compression_type: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + request_method: Optional[Any] = None, + additional_headers: Optional[Any] = None, + http_request_timeout: Optional[Any] = None, + request_interval: Optional[Any] = None, + http_compression_type: Optional[Any] = None, **kwargs ): - super(RestSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(RestSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'RestSink' # type: str self.request_method = request_method self.additional_headers = additional_headers @@ -30930,37 +32354,40 @@ class RestSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param request_method: The HTTP method used to call the RESTful API. The default is GET. Type: string (or Expression with resultType string). - :type request_method: object + :type request_method: any :param request_body: The HTTP request body to the RESTful API if requestMethod is POST. Type: string (or Expression with resultType string). - :type request_body: object + :type request_body: any :param additional_headers: The additional HTTP headers in the request to the RESTful API. Type: string (or Expression with resultType string). - :type additional_headers: object + :type additional_headers: any :param pagination_rules: The pagination rules to compose next page requests. Type: string (or Expression with resultType string). - :type pagination_rules: object + :type pagination_rules: any :param http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:01:40. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any :param request_interval: The time to await before sending next page request. - :type request_interval: object + :type request_interval: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -30976,6 +32403,7 @@ class RestSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'request_method': {'key': 'requestMethod', 'type': 'object'}, 'request_body': {'key': 'requestBody', 'type': 'object'}, 'additional_headers': {'key': 'additionalHeaders', 'type': 'object'}, @@ -30988,20 +32416,21 @@ class RestSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - request_method: Optional[object] = None, - request_body: Optional[object] = None, - additional_headers: Optional[object] = None, - pagination_rules: Optional[object] = None, - http_request_timeout: Optional[object] = None, - request_interval: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + request_method: Optional[Any] = None, + request_body: Optional[Any] = None, + additional_headers: Optional[Any] = None, + pagination_rules: Optional[Any] = None, + http_request_timeout: Optional[Any] = None, + request_interval: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(RestSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(RestSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'RestSource' # type: str self.request_method = request_method self.request_body = request_body @@ -31017,7 +32446,7 @@ class RetryPolicy(msrest.serialization.Model): :param count: Maximum ordinary retry attempts. Default is 0. Type: integer (or Expression with resultType integer), minimum: 0. - :type count: object + :type count: any :param interval_in_seconds: Interval between retries in seconds. Default is 30. :type interval_in_seconds: int """ @@ -31034,7 +32463,7 @@ class RetryPolicy(msrest.serialization.Model): def __init__( self, *, - count: Optional[object] = None, + count: Optional[Any] = None, interval_in_seconds: Optional[int] = None, **kwargs ): @@ -31184,7 +32613,7 @@ class SalesforceLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -31194,26 +32623,26 @@ class SalesforceLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param environment_url: The URL of Salesforce instance. Default is 'https://login.salesforce.com'. To copy data from sandbox, specify 'https://test.salesforce.com'. To copy data from custom domain, specify, for example, 'https://[domain].my.salesforce.com'. Type: string (or Expression with resultType string). - :type environment_url: object + :type environment_url: any :param username: The username for Basic authentication of the Salesforce instance. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: The password for Basic authentication of the Salesforce instance. :type password: ~azure.mgmt.datafactory.models.SecretBase :param security_token: The security token is optional to remotely access Salesforce instance. :type security_token: ~azure.mgmt.datafactory.models.SecretBase :param api_version: The Salesforce API version used in ADF. Type: string (or Expression with resultType string). - :type api_version: object + :type api_version: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -31238,17 +32667,17 @@ class SalesforceLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - environment_url: Optional[object] = None, - username: Optional[object] = None, + annotations: Optional[List[Any]] = None, + environment_url: Optional[Any] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, security_token: Optional["SecretBase"] = None, - api_version: Optional[object] = None, - encrypted_credential: Optional[object] = None, + api_version: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(SalesforceLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -31268,7 +32697,7 @@ class SalesforceMarketingCloudLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -31278,31 +32707,31 @@ class SalesforceMarketingCloudLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_properties: Properties used to connect to Salesforce Marketing Cloud. It is mutually exclusive with any other properties in the linked service. Type: object. - :type connection_properties: object + :type connection_properties: any :param client_id: The client ID associated with the Salesforce Marketing Cloud application. Type: string (or Expression with resultType string). - :type client_id: object + :type client_id: any :param client_secret: The client secret associated with the Salesforce Marketing Cloud application. Type: string (or Expression with resultType string). :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. Type: boolean (or Expression with resultType boolean). - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -31328,18 +32757,18 @@ class SalesforceMarketingCloudLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_properties: Optional[object] = None, - client_id: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_properties: Optional[Any] = None, + client_id: Optional[Any] = None, client_secret: Optional["SecretBase"] = None, - use_encrypted_endpoints: Optional[object] = None, - use_host_verification: Optional[object] = None, - use_peer_verification: Optional[object] = None, - encrypted_credential: Optional[object] = None, + use_encrypted_endpoints: Optional[Any] = None, + use_host_verification: Optional[Any] = None, + use_peer_verification: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(SalesforceMarketingCloudLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -31360,28 +32789,28 @@ class SalesforceMarketingCloudObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -31406,14 +32835,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(SalesforceMarketingCloudObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -31428,27 +32857,30 @@ class SalesforceMarketingCloudSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -31461,6 +32893,7 @@ class SalesforceMarketingCloudSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -31469,16 +32902,17 @@ class SalesforceMarketingCloudSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(SalesforceMarketingCloudSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(SalesforceMarketingCloudSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'SalesforceMarketingCloudSource' # type: str self.query = query @@ -31490,29 +32924,29 @@ class SalesforceObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param object_api_name: The Salesforce object API name. Type: string (or Expression with resultType string). - :type object_api_name: object + :type object_api_name: any """ _validation = { @@ -31537,14 +32971,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - object_api_name: Optional[object] = None, + object_api_name: Optional[Any] = None, **kwargs ): super(SalesforceObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -31559,7 +32993,7 @@ class SalesforceServiceCloudLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -31569,29 +33003,29 @@ class SalesforceServiceCloudLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param environment_url: The URL of Salesforce Service Cloud instance. Default is 'https://login.salesforce.com'. To copy data from sandbox, specify 'https://test.salesforce.com'. To copy data from custom domain, specify, for example, 'https://[domain].my.salesforce.com'. Type: string (or Expression with resultType string). - :type environment_url: object + :type environment_url: any :param username: The username for Basic authentication of the Salesforce instance. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: The password for Basic authentication of the Salesforce instance. :type password: ~azure.mgmt.datafactory.models.SecretBase :param security_token: The security token is optional to remotely access Salesforce instance. :type security_token: ~azure.mgmt.datafactory.models.SecretBase :param api_version: The Salesforce API version used in ADF. Type: string (or Expression with resultType string). - :type api_version: object + :type api_version: any :param extended_properties: Extended properties appended to the connection string. Type: string (or Expression with resultType string). - :type extended_properties: object + :type extended_properties: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -31617,18 +33051,18 @@ class SalesforceServiceCloudLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - environment_url: Optional[object] = None, - username: Optional[object] = None, + annotations: Optional[List[Any]] = None, + environment_url: Optional[Any] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, security_token: Optional["SecretBase"] = None, - api_version: Optional[object] = None, - extended_properties: Optional[object] = None, - encrypted_credential: Optional[object] = None, + api_version: Optional[Any] = None, + extended_properties: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(SalesforceServiceCloudLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -31649,29 +33083,29 @@ class SalesforceServiceCloudObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param object_api_name: The Salesforce Service Cloud object API name. Type: string (or Expression with resultType string). - :type object_api_name: object + :type object_api_name: any """ _validation = { @@ -31696,14 +33130,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - object_api_name: Optional[object] = None, + object_api_name: Optional[Any] = None, **kwargs ): super(SalesforceServiceCloudObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -31718,37 +33152,40 @@ class SalesforceServiceCloudSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: The write behavior for the operation. Default is Insert. Possible values include: "Insert", "Upsert". :type write_behavior: str or ~azure.mgmt.datafactory.models.SalesforceSinkWriteBehavior :param external_id_field_name: The name of the external ID field for upsert operation. Default value is 'Id' column. Type: string (or Expression with resultType string). - :type external_id_field_name: object + :type external_id_field_name: any :param ignore_null_values: The flag indicating whether or not to ignore null values from input dataset (except key fields) during write operation. Default value is false. If set it to true, it means ADF will leave the data in the destination object unchanged when doing upsert/update operation and insert defined default value when doing insert operation, versus ADF will update the data in the destination object to NULL when doing upsert/update operation and insert NULL value when doing insert operation. Type: boolean (or Expression with resultType boolean). - :type ignore_null_values: object + :type ignore_null_values: any """ _validation = { @@ -31763,6 +33200,7 @@ class SalesforceServiceCloudSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'str'}, 'external_id_field_name': {'key': 'externalIdFieldName', 'type': 'object'}, 'ignore_null_values': {'key': 'ignoreNullValues', 'type': 'object'}, @@ -31771,18 +33209,19 @@ class SalesforceServiceCloudSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, write_behavior: Optional[Union[str, "SalesforceSinkWriteBehavior"]] = None, - external_id_field_name: Optional[object] = None, - ignore_null_values: Optional[object] = None, + external_id_field_name: Optional[Any] = None, + ignore_null_values: Optional[Any] = None, **kwargs ): - super(SalesforceServiceCloudSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(SalesforceServiceCloudSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'SalesforceServiceCloudSink' # type: str self.write_behavior = write_behavior self.external_id_field_name = external_id_field_name @@ -31796,20 +33235,23 @@ class SalesforceServiceCloudSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param read_behavior: The read behavior for the operation. Default is Query. Possible values include: "Query", "QueryAll". :type read_behavior: str or ~azure.mgmt.datafactory.models.SalesforceSourceReadBehavior @@ -31828,6 +33270,7 @@ class SalesforceServiceCloudSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'read_behavior': {'key': 'readBehavior', 'type': 'str'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, @@ -31836,16 +33279,17 @@ class SalesforceServiceCloudSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query: Optional[Any] = None, read_behavior: Optional[Union[str, "SalesforceSourceReadBehavior"]] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(SalesforceServiceCloudSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(SalesforceServiceCloudSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'SalesforceServiceCloudSource' # type: str self.query = query self.read_behavior = read_behavior @@ -31859,37 +33303,40 @@ class SalesforceSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: The write behavior for the operation. Default is Insert. Possible values include: "Insert", "Upsert". :type write_behavior: str or ~azure.mgmt.datafactory.models.SalesforceSinkWriteBehavior :param external_id_field_name: The name of the external ID field for upsert operation. Default value is 'Id' column. Type: string (or Expression with resultType string). - :type external_id_field_name: object + :type external_id_field_name: any :param ignore_null_values: The flag indicating whether or not to ignore null values from input dataset (except key fields) during write operation. Default value is false. If set it to true, it means ADF will leave the data in the destination object unchanged when doing upsert/update operation and insert defined default value when doing insert operation, versus ADF will update the data in the destination object to NULL when doing upsert/update operation and insert NULL value when doing insert operation. Type: boolean (or Expression with resultType boolean). - :type ignore_null_values: object + :type ignore_null_values: any """ _validation = { @@ -31904,6 +33351,7 @@ class SalesforceSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'str'}, 'external_id_field_name': {'key': 'externalIdFieldName', 'type': 'object'}, 'ignore_null_values': {'key': 'ignoreNullValues', 'type': 'object'}, @@ -31912,18 +33360,19 @@ class SalesforceSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, write_behavior: Optional[Union[str, "SalesforceSinkWriteBehavior"]] = None, - external_id_field_name: Optional[object] = None, - ignore_null_values: Optional[object] = None, + external_id_field_name: Optional[Any] = None, + ignore_null_values: Optional[Any] = None, **kwargs ): - super(SalesforceSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(SalesforceSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'SalesforceSink' # type: str self.write_behavior = write_behavior self.external_id_field_name = external_id_field_name @@ -31937,26 +33386,29 @@ class SalesforceSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param read_behavior: The read behavior for the operation. Default is Query. Possible values include: "Query", "QueryAll". :type read_behavior: str or ~azure.mgmt.datafactory.models.SalesforceSourceReadBehavior @@ -31972,6 +33424,7 @@ class SalesforceSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -31981,17 +33434,18 @@ class SalesforceSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, read_behavior: Optional[Union[str, "SalesforceSourceReadBehavior"]] = None, **kwargs ): - super(SalesforceSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(SalesforceSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'SalesforceSource' # type: str self.query = query self.read_behavior = read_behavior @@ -32004,23 +33458,23 @@ class SapBwCubeDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder @@ -32047,12 +33501,12 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, **kwargs ): @@ -32067,7 +33521,7 @@ class SapBWLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -32077,25 +33531,25 @@ class SapBWLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param server: Required. Host name of the SAP BW instance. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param system_number: Required. System number of the BW system. (Usually a two-digit decimal number represented as a string.) Type: string (or Expression with resultType string). - :type system_number: object + :type system_number: any :param client_id: Required. Client ID of the client on the BW system. (Usually a three-digit decimal number represented as a string) Type: string (or Expression with resultType string). - :type client_id: object + :type client_id: any :param user_name: Username to access the SAP BW server. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password to access the SAP BW server. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -32123,17 +33577,17 @@ class SapBWLinkedService(LinkedService): def __init__( self, *, - server: object, - system_number: object, - client_id: object, - additional_properties: Optional[Dict[str, object]] = None, + server: Any, + system_number: Any, + client_id: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - user_name: Optional[object] = None, + annotations: Optional[List[Any]] = None, + user_name: Optional[Any] = None, password: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(SapBWLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -32153,26 +33607,29 @@ class SapBwSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: MDX query. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -32185,6 +33642,7 @@ class SapBwSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -32193,16 +33651,17 @@ class SapBwSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(SapBwSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(SapBwSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'SapBwSource' # type: str self.query = query @@ -32214,7 +33673,7 @@ class SapCloudForCustomerLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -32224,20 +33683,20 @@ class SapCloudForCustomerLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. The URL of SAP Cloud for Customer OData API. For example, '[https://[tenantname].crm.ondemand.com/sap/c4c/odata/v1]'. Type: string (or Expression with resultType string). - :type url: object + :type url: any :param username: The username for Basic authentication. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: The password for Basic authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Either encryptedCredential or username/password must be provided. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -32261,15 +33720,15 @@ class SapCloudForCustomerLinkedService(LinkedService): def __init__( self, *, - url: object, - additional_properties: Optional[Dict[str, object]] = None, + url: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - username: Optional[object] = None, + annotations: Optional[List[Any]] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(SapCloudForCustomerLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -32287,29 +33746,29 @@ class SapCloudForCustomerResourceDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param path: Required. The path of the SAP Cloud for Customer OData entity. Type: string (or Expression with resultType string). - :type path: object + :type path: any """ _validation = { @@ -32335,13 +33794,13 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - path: object, - additional_properties: Optional[Dict[str, object]] = None, + path: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, **kwargs ): @@ -32357,24 +33816,27 @@ class SapCloudForCustomerSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param write_behavior: The write behavior for the operation. Default is 'Insert'. Possible values include: "Insert", "Update". :type write_behavior: str or @@ -32383,7 +33845,7 @@ class SapCloudForCustomerSink(CopySink): to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any """ _validation = { @@ -32398,6 +33860,7 @@ class SapCloudForCustomerSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'write_behavior': {'key': 'writeBehavior', 'type': 'str'}, 'http_request_timeout': {'key': 'httpRequestTimeout', 'type': 'object'}, } @@ -32405,17 +33868,18 @@ class SapCloudForCustomerSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, write_behavior: Optional[Union[str, "SapCloudForCustomerSinkWriteBehavior"]] = None, - http_request_timeout: Optional[object] = None, + http_request_timeout: Optional[Any] = None, **kwargs ): - super(SapCloudForCustomerSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(SapCloudForCustomerSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'SapCloudForCustomerSink' # type: str self.write_behavior = write_behavior self.http_request_timeout = http_request_timeout @@ -32428,32 +33892,35 @@ class SapCloudForCustomerSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: SAP Cloud for Customer OData query. For example, "$top=1". Type: string (or Expression with resultType string). - :type query: object + :type query: any :param http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any """ _validation = { @@ -32466,6 +33933,7 @@ class SapCloudForCustomerSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -32475,17 +33943,18 @@ class SapCloudForCustomerSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, - http_request_timeout: Optional[object] = None, + query: Optional[Any] = None, + http_request_timeout: Optional[Any] = None, **kwargs ): - super(SapCloudForCustomerSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(SapCloudForCustomerSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'SapCloudForCustomerSource' # type: str self.query = query self.http_request_timeout = http_request_timeout @@ -32498,7 +33967,7 @@ class SapEccLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -32508,7 +33977,7 @@ class SapEccLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param url: Required. The URL of SAP ECC OData API. For example, '[https://hostname:port/sap/opu/odata/sap/servicename/]'. Type: string (or Expression with resultType string). @@ -32546,11 +34015,11 @@ def __init__( self, *, url: str, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, username: Optional[str] = None, password: Optional["SecretBase"] = None, encrypted_credential: Optional[str] = None, @@ -32571,29 +34040,29 @@ class SapEccResourceDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param path: Required. The path of the SAP ECC OData entity. Type: string (or Expression with resultType string). - :type path: object + :type path: any """ _validation = { @@ -32619,13 +34088,13 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - path: object, - additional_properties: Optional[Dict[str, object]] = None, + path: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, **kwargs ): @@ -32641,32 +34110,35 @@ class SapEccSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: SAP ECC OData query. For example, "$top=1". Type: string (or Expression with resultType string). - :type query: object + :type query: any :param http_request_timeout: The timeout (TimeSpan) to get an HTTP response. It is the timeout to get a response, not the timeout to read response data. Default value: 00:05:00. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any """ _validation = { @@ -32679,6 +34151,7 @@ class SapEccSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -32688,17 +34161,18 @@ class SapEccSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, - http_request_timeout: Optional[object] = None, + query: Optional[Any] = None, + http_request_timeout: Optional[Any] = None, **kwargs ): - super(SapEccSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(SapEccSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'SapEccSource' # type: str self.query = query self.http_request_timeout = http_request_timeout @@ -32711,7 +34185,7 @@ class SapHanaLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -32721,25 +34195,25 @@ class SapHanaLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: SAP HANA ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param server: Host name of the SAP HANA server. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param authentication_type: The authentication type to be used to connect to the SAP HANA server. Possible values include: "Basic", "Windows". :type authentication_type: str or ~azure.mgmt.datafactory.models.SapHanaAuthenticationType :param user_name: Username to access the SAP HANA server. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password to access the SAP HANA server. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -32764,17 +34238,17 @@ class SapHanaLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_string: Optional[object] = None, - server: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_string: Optional[Any] = None, + server: Optional[Any] = None, authentication_type: Optional[Union[str, "SapHanaAuthenticationType"]] = None, - user_name: Optional[object] = None, + user_name: Optional[Any] = None, password: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(SapHanaLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -32792,7 +34266,7 @@ class SapHanaPartitionSettings(msrest.serialization.Model): :param partition_column_name: The name of the column that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_column_name: object + :type partition_column_name: any """ _attribute_map = { @@ -32802,7 +34276,7 @@ class SapHanaPartitionSettings(msrest.serialization.Model): def __init__( self, *, - partition_column_name: Optional[object] = None, + partition_column_name: Optional[Any] = None, **kwargs ): super(SapHanaPartitionSettings, self).__init__(**kwargs) @@ -32816,32 +34290,35 @@ class SapHanaSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: SAP HANA Sql query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param packet_size: The packet size of data read from SAP HANA. Type: integer(or Expression with resultType integer). - :type packet_size: object + :type packet_size: any :param partition_option: The partition mechanism that will be used for SAP HANA read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "SapHanaDynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for SAP HANA source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.SapHanaPartitionSettings @@ -32857,6 +34334,7 @@ class SapHanaSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -32868,19 +34346,20 @@ class SapHanaSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, - packet_size: Optional[object] = None, - partition_option: Optional[object] = None, + query: Optional[Any] = None, + packet_size: Optional[Any] = None, + partition_option: Optional[Any] = None, partition_settings: Optional["SapHanaPartitionSettings"] = None, **kwargs ): - super(SapHanaSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(SapHanaSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'SapHanaSource' # type: str self.query = query self.packet_size = packet_size @@ -32895,31 +34374,31 @@ class SapHanaTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param schema_type_properties_schema: The schema name of SAP HANA. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any :param table: The table name of SAP HANA. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -32945,15 +34424,15 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - schema_type_properties_schema: Optional[object] = None, - table: Optional[object] = None, + schema_type_properties_schema: Optional[Any] = None, + table: Optional[Any] = None, **kwargs ): super(SapHanaTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -32969,7 +34448,7 @@ class SapOpenHubLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -32979,43 +34458,43 @@ class SapOpenHubLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param server: Host name of the SAP BW instance where the open hub destination is located. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param system_number: System number of the BW system where the open hub destination is located. (Usually a two-digit decimal number represented as a string.) Type: string (or Expression with resultType string). - :type system_number: object + :type system_number: any :param client_id: Client ID of the client on the BW system where the open hub destination is located. (Usually a three-digit decimal number represented as a string) Type: string (or Expression with resultType string). - :type client_id: object + :type client_id: any :param language: Language of the BW system where the open hub destination is located. The default value is EN. Type: string (or Expression with resultType string). - :type language: object + :type language: any :param system_id: SystemID of the SAP system where the table is located. Type: string (or Expression with resultType string). - :type system_id: object + :type system_id: any :param user_name: Username to access the SAP BW server where the open hub destination is located. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password to access the SAP BW server where the open hub destination is located. :type password: ~azure.mgmt.datafactory.models.SecretBase :param message_server: The hostname of the SAP Message Server. Type: string (or Expression with resultType string). - :type message_server: object + :type message_server: any :param message_server_service: The service name or port number of the Message Server. Type: string (or Expression with resultType string). - :type message_server_service: object + :type message_server_service: any :param logon_group: The Logon Group for the SAP System. Type: string (or Expression with resultType string). - :type logon_group: object + :type logon_group: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -33045,22 +34524,22 @@ class SapOpenHubLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - server: Optional[object] = None, - system_number: Optional[object] = None, - client_id: Optional[object] = None, - language: Optional[object] = None, - system_id: Optional[object] = None, - user_name: Optional[object] = None, + annotations: Optional[List[Any]] = None, + server: Optional[Any] = None, + system_number: Optional[Any] = None, + client_id: Optional[Any] = None, + language: Optional[Any] = None, + system_id: Optional[Any] = None, + user_name: Optional[Any] = None, password: Optional["SecretBase"] = None, - message_server: Optional[object] = None, - message_server_service: Optional[object] = None, - logon_group: Optional[object] = None, - encrypted_credential: Optional[object] = None, + message_server: Optional[Any] = None, + message_server_service: Optional[Any] = None, + logon_group: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(SapOpenHubLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -33085,38 +34564,41 @@ class SapOpenHubSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param exclude_last_request: Whether to exclude the records of the last request. The default value is true. Type: boolean (or Expression with resultType boolean). - :type exclude_last_request: object + :type exclude_last_request: any :param base_request_id: The ID of request for delta loading. Once it is set, only data with requestId larger than the value of this property will be retrieved. The default value is 0. Type: integer (or Expression with resultType integer ). - :type base_request_id: object + :type base_request_id: any :param custom_rfc_read_table_function_module: Specifies the custom RFC function module that will be used to read data from SAP Table. Type: string (or Expression with resultType string). - :type custom_rfc_read_table_function_module: object + :type custom_rfc_read_table_function_module: any :param sap_data_column_delimiter: The single character that will be used as delimiter passed to SAP RFC as well as splitting the output data retrieved. Type: string (or Expression with resultType string). - :type sap_data_column_delimiter: object + :type sap_data_column_delimiter: any """ _validation = { @@ -33129,6 +34611,7 @@ class SapOpenHubSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'exclude_last_request': {'key': 'excludeLastRequest', 'type': 'object'}, @@ -33140,19 +34623,20 @@ class SapOpenHubSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - exclude_last_request: Optional[object] = None, - base_request_id: Optional[object] = None, - custom_rfc_read_table_function_module: Optional[object] = None, - sap_data_column_delimiter: Optional[object] = None, + exclude_last_request: Optional[Any] = None, + base_request_id: Optional[Any] = None, + custom_rfc_read_table_function_module: Optional[Any] = None, + sap_data_column_delimiter: Optional[Any] = None, **kwargs ): - super(SapOpenHubSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(SapOpenHubSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'SapOpenHubSource' # type: str self.exclude_last_request = exclude_last_request self.base_request_id = base_request_id @@ -33167,36 +34651,36 @@ class SapOpenHubTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param open_hub_destination_name: Required. The name of the Open Hub Destination with destination type as Database Table. Type: string (or Expression with resultType string). - :type open_hub_destination_name: object + :type open_hub_destination_name: any :param exclude_last_request: Whether to exclude the records of the last request. The default value is true. Type: boolean (or Expression with resultType boolean). - :type exclude_last_request: object + :type exclude_last_request: any :param base_request_id: The ID of request for delta loading. Once it is set, only data with requestId larger than the value of this property will be retrieved. The default value is 0. Type: integer (or Expression with resultType integer ). - :type base_request_id: object + :type base_request_id: any """ _validation = { @@ -33224,16 +34708,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - open_hub_destination_name: object, - additional_properties: Optional[Dict[str, object]] = None, + open_hub_destination_name: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - exclude_last_request: Optional[object] = None, - base_request_id: Optional[object] = None, + exclude_last_request: Optional[Any] = None, + base_request_id: Optional[Any] = None, **kwargs ): super(SapOpenHubTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -33250,7 +34734,7 @@ class SapTableLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -33260,57 +34744,57 @@ class SapTableLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param server: Host name of the SAP instance where the table is located. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param system_number: System number of the SAP system where the table is located. (Usually a two-digit decimal number represented as a string.) Type: string (or Expression with resultType string). - :type system_number: object + :type system_number: any :param client_id: Client ID of the client on the SAP system where the table is located. (Usually a three-digit decimal number represented as a string) Type: string (or Expression with resultType string). - :type client_id: object + :type client_id: any :param language: Language of the SAP system where the table is located. The default value is EN. Type: string (or Expression with resultType string). - :type language: object + :type language: any :param system_id: SystemID of the SAP system where the table is located. Type: string (or Expression with resultType string). - :type system_id: object + :type system_id: any :param user_name: Username to access the SAP server where the table is located. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password to access the SAP server where the table is located. :type password: ~azure.mgmt.datafactory.models.SecretBase :param message_server: The hostname of the SAP Message Server. Type: string (or Expression with resultType string). - :type message_server: object + :type message_server: any :param message_server_service: The service name or port number of the Message Server. Type: string (or Expression with resultType string). - :type message_server_service: object + :type message_server_service: any :param snc_mode: SNC activation indicator to access the SAP server where the table is located. Must be either 0 (off) or 1 (on). Type: string (or Expression with resultType string). - :type snc_mode: object + :type snc_mode: any :param snc_my_name: Initiator's SNC name to access the SAP server where the table is located. Type: string (or Expression with resultType string). - :type snc_my_name: object + :type snc_my_name: any :param snc_partner_name: Communication partner's SNC name to access the SAP server where the table is located. Type: string (or Expression with resultType string). - :type snc_partner_name: object + :type snc_partner_name: any :param snc_library_path: External security product's library to access the SAP server where the table is located. Type: string (or Expression with resultType string). - :type snc_library_path: object + :type snc_library_path: any :param snc_qop: SNC Quality of Protection. Allowed value include: 1, 2, 3, 8, 9. Type: string (or Expression with resultType string). - :type snc_qop: object + :type snc_qop: any :param logon_group: The Logon Group for the SAP System. Type: string (or Expression with resultType string). - :type logon_group: object + :type logon_group: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -33345,27 +34829,27 @@ class SapTableLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - server: Optional[object] = None, - system_number: Optional[object] = None, - client_id: Optional[object] = None, - language: Optional[object] = None, - system_id: Optional[object] = None, - user_name: Optional[object] = None, + annotations: Optional[List[Any]] = None, + server: Optional[Any] = None, + system_number: Optional[Any] = None, + client_id: Optional[Any] = None, + language: Optional[Any] = None, + system_id: Optional[Any] = None, + user_name: Optional[Any] = None, password: Optional["SecretBase"] = None, - message_server: Optional[object] = None, - message_server_service: Optional[object] = None, - snc_mode: Optional[object] = None, - snc_my_name: Optional[object] = None, - snc_partner_name: Optional[object] = None, - snc_library_path: Optional[object] = None, - snc_qop: Optional[object] = None, - logon_group: Optional[object] = None, - encrypted_credential: Optional[object] = None, + message_server: Optional[Any] = None, + message_server_service: Optional[Any] = None, + snc_mode: Optional[Any] = None, + snc_my_name: Optional[Any] = None, + snc_partner_name: Optional[Any] = None, + snc_library_path: Optional[Any] = None, + snc_qop: Optional[Any] = None, + logon_group: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(SapTableLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -33393,18 +34877,18 @@ class SapTablePartitionSettings(msrest.serialization.Model): :param partition_column_name: The name of the column that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_column_name: object + :type partition_column_name: any :param partition_upper_bound: The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_upper_bound: object + :type partition_upper_bound: any :param partition_lower_bound: The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_lower_bound: object + :type partition_lower_bound: any :param max_partitions_number: The maximum value of partitions the table will be split into. Type: integer (or Expression with resultType string). - :type max_partitions_number: object + :type max_partitions_number: any """ _attribute_map = { @@ -33417,10 +34901,10 @@ class SapTablePartitionSettings(msrest.serialization.Model): def __init__( self, *, - partition_column_name: Optional[object] = None, - partition_upper_bound: Optional[object] = None, - partition_lower_bound: Optional[object] = None, - max_partitions_number: Optional[object] = None, + partition_column_name: Optional[Any] = None, + partition_upper_bound: Optional[Any] = None, + partition_lower_bound: Optional[Any] = None, + max_partitions_number: Optional[Any] = None, **kwargs ): super(SapTablePartitionSettings, self).__init__(**kwargs) @@ -33437,29 +34921,29 @@ class SapTableResourceDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: Required. The name of the SAP Table. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -33485,13 +34969,13 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - table_name: object, - additional_properties: Optional[Dict[str, object]] = None, + table_name: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, **kwargs ): @@ -33507,50 +34991,53 @@ class SapTableSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param row_count: The number of rows to be retrieved. Type: integer(or Expression with resultType integer). - :type row_count: object + :type row_count: any :param row_skips: The number of rows that will be skipped. Type: integer (or Expression with resultType integer). - :type row_skips: object + :type row_skips: any :param rfc_table_fields: The fields of the SAP table that will be retrieved. For example, column0, column1. Type: string (or Expression with resultType string). - :type rfc_table_fields: object + :type rfc_table_fields: any :param rfc_table_options: The options for the filtering of the SAP Table. For example, COLUMN0 EQ SOME VALUE. Type: string (or Expression with resultType string). - :type rfc_table_options: object + :type rfc_table_options: any :param batch_size: Specifies the maximum number of rows that will be retrieved at a time when retrieving data from SAP Table. Type: integer (or Expression with resultType integer). - :type batch_size: object + :type batch_size: any :param custom_rfc_read_table_function_module: Specifies the custom RFC function module that will be used to read data from SAP Table. Type: string (or Expression with resultType string). - :type custom_rfc_read_table_function_module: object + :type custom_rfc_read_table_function_module: any :param sap_data_column_delimiter: The single character that will be used as delimiter passed to SAP RFC as well as splitting the output data retrieved. Type: string (or Expression with resultType string). - :type sap_data_column_delimiter: object + :type sap_data_column_delimiter: any :param partition_option: The partition mechanism that will be used for SAP table read in parallel. Possible values include: "None", "PartitionOnInt", "PartitionOnCalendarYear", "PartitionOnCalendarMonth", "PartitionOnCalendarDate", "PartitionOnTime". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for SAP table source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.SapTablePartitionSettings @@ -33566,6 +35053,7 @@ class SapTableSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'row_count': {'key': 'rowCount', 'type': 'object'}, @@ -33582,24 +35070,25 @@ class SapTableSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - row_count: Optional[object] = None, - row_skips: Optional[object] = None, - rfc_table_fields: Optional[object] = None, - rfc_table_options: Optional[object] = None, - batch_size: Optional[object] = None, - custom_rfc_read_table_function_module: Optional[object] = None, - sap_data_column_delimiter: Optional[object] = None, - partition_option: Optional[object] = None, + row_count: Optional[Any] = None, + row_skips: Optional[Any] = None, + rfc_table_fields: Optional[Any] = None, + rfc_table_options: Optional[Any] = None, + batch_size: Optional[Any] = None, + custom_rfc_read_table_function_module: Optional[Any] = None, + sap_data_column_delimiter: Optional[Any] = None, + partition_option: Optional[Any] = None, partition_settings: Optional["SapTablePartitionSettings"] = None, **kwargs ): - super(SapTableSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(SapTableSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'SapTableSource' # type: str self.row_count = row_count self.row_skips = row_skips @@ -33621,7 +35110,7 @@ class ScheduleTrigger(MultiplePipelineTrigger): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -33630,7 +35119,7 @@ class ScheduleTrigger(MultiplePipelineTrigger): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] :param pipelines: Pipelines that need to be started. :type pipelines: list[~azure.mgmt.datafactory.models.TriggerPipelineReference] :param recurrence: Required. Recurrence schedule configuration. @@ -33657,9 +35146,9 @@ def __init__( self, *, recurrence: "ScheduleTriggerRecurrence", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, pipelines: Optional[List["TriggerPipelineReference"]] = None, **kwargs ): @@ -33673,7 +35162,7 @@ class ScheduleTriggerRecurrence(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param frequency: The frequency. Possible values include: "NotSpecified", "Minute", "Hour", "Day", "Week", "Month", "Year". :type frequency: str or ~azure.mgmt.datafactory.models.RecurrenceFrequency @@ -33702,7 +35191,7 @@ class ScheduleTriggerRecurrence(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, frequency: Optional[Union[str, "RecurrenceFrequency"]] = None, interval: Optional[int] = None, start_time: Optional[datetime.datetime] = None, @@ -33730,9 +35219,8 @@ class ScriptAction(msrest.serialization.Model): :type name: str :param uri: Required. The URI for the script action. :type uri: str - :param roles: Required. The node types on which the script action should be executed. Possible - values include: "Headnode", "Workernode", "Zookeeper". - :type roles: str or ~azure.mgmt.datafactory.models.HdiNodeTypes + :param roles: Required. The node types on which the script action should be executed. + :type roles: str :param parameters: The parameters for the script action. :type parameters: str """ @@ -33755,7 +35243,7 @@ def __init__( *, name: str, uri: str, - roles: Union[str, "HdiNodeTypes"], + roles: str, parameters: Optional[str] = None, **kwargs ): @@ -33845,7 +35333,7 @@ class SelfHostedIntegrationRuntime(IntegrationRuntime): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of integration runtime.Constant filled by server. Possible values include: "Managed", "SelfHosted". :type type: str or ~azure.mgmt.datafactory.models.IntegrationRuntimeType @@ -33869,7 +35357,7 @@ class SelfHostedIntegrationRuntime(IntegrationRuntime): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, linked_info: Optional["LinkedIntegrationRuntimeType"] = None, **kwargs @@ -33886,7 +35374,7 @@ class SelfHostedIntegrationRuntimeNode(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar node_name: Name of the integration runtime node. :vartype node_name: str :ivar machine_name: Machine name of the integration runtime node. @@ -33978,7 +35466,7 @@ class SelfHostedIntegrationRuntimeNode(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(SelfHostedIntegrationRuntimeNode, self).__init__(**kwargs) @@ -34012,7 +35500,7 @@ class SelfHostedIntegrationRuntimeStatus(IntegrationRuntimeStatus): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of integration runtime.Constant filled by server. Possible values include: "Managed", "SelfHosted". :type type: str or ~azure.mgmt.datafactory.models.IntegrationRuntimeType @@ -34110,7 +35598,7 @@ class SelfHostedIntegrationRuntimeStatus(IntegrationRuntimeStatus): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, nodes: Optional[List["SelfHostedIntegrationRuntimeNode"]] = None, links: Optional[List["LinkedIntegrationRuntime"]] = None, **kwargs @@ -34142,7 +35630,7 @@ class ServiceNowLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -34152,37 +35640,37 @@ class ServiceNowLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param endpoint: Required. The endpoint of the ServiceNow server. (i.e. :code:``.service-now.com). - :type endpoint: object + :type endpoint: any :param authentication_type: Required. The authentication type to use. Possible values include: "Basic", "OAuth2". :type authentication_type: str or ~azure.mgmt.datafactory.models.ServiceNowAuthenticationType :param username: The user name used to connect to the ServiceNow server for Basic and OAuth2 authentication. - :type username: object + :type username: any :param password: The password corresponding to the user name for Basic and OAuth2 authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param client_id: The client id for OAuth2 authentication. - :type client_id: object + :type client_id: any :param client_secret: The client secret for OAuth2 authentication. :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -34213,21 +35701,21 @@ class ServiceNowLinkedService(LinkedService): def __init__( self, *, - endpoint: object, + endpoint: Any, authentication_type: Union[str, "ServiceNowAuthenticationType"], - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - username: Optional[object] = None, + annotations: Optional[List[Any]] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - client_id: Optional[object] = None, + client_id: Optional[Any] = None, client_secret: Optional["SecretBase"] = None, - use_encrypted_endpoints: Optional[object] = None, - use_host_verification: Optional[object] = None, - use_peer_verification: Optional[object] = None, - encrypted_credential: Optional[object] = None, + use_encrypted_endpoints: Optional[Any] = None, + use_host_verification: Optional[Any] = None, + use_peer_verification: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(ServiceNowLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -34251,28 +35739,28 @@ class ServiceNowObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -34297,14 +35785,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(ServiceNowObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -34319,27 +35807,30 @@ class ServiceNowSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -34352,6 +35843,7 @@ class ServiceNowSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -34360,28 +35852,83 @@ class ServiceNowSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(ServiceNowSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(ServiceNowSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'ServiceNowSource' # type: str self.query = query -class SetVariableActivity(Activity): +class ServicePrincipalCredential(Credential): + """Service principal credential. + + 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, any] + :param type: Required. Type of credential.Constant filled by server. + :type type: str + :param description: Credential description. + :type description: str + :param annotations: List of tags that can be used for describing the Credential. + :type annotations: list[any] + :param service_principal_id: The app ID of the service principal used to authenticate. + :type service_principal_id: any + :param service_principal_key: The key of the service principal used to authenticate. + :type service_principal_key: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference + :param tenant: The ID of the tenant to which the service principal belongs. + :type tenant: any + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'type': {'key': 'type', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'annotations': {'key': 'annotations', 'type': '[object]'}, + 'service_principal_id': {'key': 'typeProperties.servicePrincipalId', 'type': 'object'}, + 'service_principal_key': {'key': 'typeProperties.servicePrincipalKey', 'type': 'AzureKeyVaultSecretReference'}, + 'tenant': {'key': 'typeProperties.tenant', 'type': 'object'}, + } + + def __init__( + self, + *, + additional_properties: Optional[Dict[str, Any]] = None, + description: Optional[str] = None, + annotations: Optional[List[Any]] = None, + service_principal_id: Optional[Any] = None, + service_principal_key: Optional["AzureKeyVaultSecretReference"] = None, + tenant: Optional[Any] = None, + **kwargs + ): + super(ServicePrincipalCredential, self).__init__(additional_properties=additional_properties, description=description, annotations=annotations, **kwargs) + self.type = 'ServicePrincipal' # type: str + self.service_principal_id = service_principal_id + self.service_principal_key = service_principal_key + self.tenant = tenant + + +class SetVariableActivity(ControlActivity): """Set value for a Variable. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -34395,7 +35942,7 @@ class SetVariableActivity(Activity): :param variable_name: Name of the variable whose value needs to be set. :type variable_name: str :param value: Value to be set. Could be a static value or Expression. - :type value: object + :type value: any """ _validation = { @@ -34418,12 +35965,12 @@ def __init__( self, *, name: str, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, variable_name: Optional[str] = None, - value: Optional[object] = None, + value: Optional[Any] = None, **kwargs ): super(SetVariableActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, **kwargs) @@ -34439,15 +35986,15 @@ class SftpLocation(DatasetLocation): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage location.Constant filled by server. :type type: str :param folder_path: Specify the folder path of dataset. Type: string (or Expression with resultType string). - :type folder_path: object + :type folder_path: any :param file_name: Specify the file name of dataset. Type: string (or Expression with resultType string). - :type file_name: object + :type file_name: any """ _validation = { @@ -34464,9 +36011,9 @@ class SftpLocation(DatasetLocation): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - folder_path: Optional[object] = None, - file_name: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + folder_path: Optional[Any] = None, + file_name: Optional[Any] = None, **kwargs ): super(SftpLocation, self).__init__(additional_properties=additional_properties, folder_path=folder_path, file_name=file_name, **kwargs) @@ -34480,39 +36027,42 @@ class SftpReadSettings(StoreReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param recursive: If true, files under the folder path will be read recursively. Default is true. Type: boolean (or Expression with resultType boolean). - :type recursive: object + :type recursive: any :param wildcard_folder_path: Sftp wildcardFolderPath. Type: string (or Expression with resultType string). - :type wildcard_folder_path: object + :type wildcard_folder_path: any :param wildcard_file_name: Sftp wildcardFileName. Type: string (or Expression with resultType string). - :type wildcard_file_name: object + :type wildcard_file_name: any :param enable_partition_discovery: Indicates whether to enable partition discovery. :type enable_partition_discovery: bool :param partition_root_path: Specify the root path where partition discovery starts from. Type: string (or Expression with resultType string). - :type partition_root_path: object + :type partition_root_path: any :param file_list_path: Point to a text file that lists each file (relative path to the path configured in the dataset) that you want to copy. Type: string (or Expression with resultType string). - :type file_list_path: object + :type file_list_path: any :param delete_files_after_completion: Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean). - :type delete_files_after_completion: object + :type delete_files_after_completion: any :param modified_datetime_start: The start of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_start: object + :type modified_datetime_start: any :param modified_datetime_end: The end of file's modified datetime. Type: string (or Expression with resultType string). - :type modified_datetime_end: object + :type modified_datetime_end: any """ _validation = { @@ -34523,6 +36073,7 @@ class SftpReadSettings(StoreReadSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'recursive': {'key': 'recursive', 'type': 'object'}, 'wildcard_folder_path': {'key': 'wildcardFolderPath', 'type': 'object'}, 'wildcard_file_name': {'key': 'wildcardFileName', 'type': 'object'}, @@ -34537,20 +36088,21 @@ class SftpReadSettings(StoreReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - recursive: Optional[object] = None, - wildcard_folder_path: Optional[object] = None, - wildcard_file_name: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + recursive: Optional[Any] = None, + wildcard_folder_path: Optional[Any] = None, + wildcard_file_name: Optional[Any] = None, enable_partition_discovery: Optional[bool] = None, - partition_root_path: Optional[object] = None, - file_list_path: Optional[object] = None, - delete_files_after_completion: Optional[object] = None, - modified_datetime_start: Optional[object] = None, - modified_datetime_end: Optional[object] = None, + partition_root_path: Optional[Any] = None, + file_list_path: Optional[Any] = None, + delete_files_after_completion: Optional[Any] = None, + modified_datetime_start: Optional[Any] = None, + modified_datetime_end: Optional[Any] = None, **kwargs ): - super(SftpReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(SftpReadSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'SftpReadSettings' # type: str self.recursive = recursive self.wildcard_folder_path = wildcard_folder_path @@ -34570,7 +36122,7 @@ class SftpServerLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -34580,30 +36132,30 @@ class SftpServerLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The SFTP server host name. Type: string (or Expression with resultType string). - :type host: object + :type host: any :param port: The TCP port number that the SFTP server uses to listen for client connections. Default value is 22. Type: integer (or Expression with resultType integer), minimum: 0. - :type port: object + :type port: any :param authentication_type: The authentication type to be used to connect to the FTP server. Possible values include: "Basic", "SshPublicKey", "MultiFactor". :type authentication_type: str or ~azure.mgmt.datafactory.models.SftpAuthenticationType :param user_name: The username used to log on to the SFTP server. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: Password to logon the SFTP server for Basic authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any :param private_key_path: The SSH private key file path for SshPublicKey authentication. Only valid for on-premises copy. For on-premises copy with SshPublicKey authentication, either PrivateKeyPath or PrivateKeyContent should be specified. SSH private key should be OpenSSH format. Type: string (or Expression with resultType string). - :type private_key_path: object + :type private_key_path: any :param private_key_content: Base64 encoded SSH private key content for SshPublicKey authentication. For on-premises copy with SshPublicKey authentication, either PrivateKeyPath or PrivateKeyContent should be specified. SSH private key should be OpenSSH format. @@ -34613,11 +36165,11 @@ class SftpServerLinkedService(LinkedService): :type pass_phrase: ~azure.mgmt.datafactory.models.SecretBase :param skip_host_key_validation: If true, skip the SSH host key validation. Default value is false. Type: boolean (or Expression with resultType boolean). - :type skip_host_key_validation: object + :type skip_host_key_validation: any :param host_key_fingerprint: The host key finger-print of the SFTP server. When SkipHostKeyValidation is false, HostKeyFingerprint should be specified. Type: string (or Expression with resultType string). - :type host_key_fingerprint: object + :type host_key_fingerprint: any """ _validation = { @@ -34648,22 +36200,22 @@ class SftpServerLinkedService(LinkedService): def __init__( self, *, - host: object, - additional_properties: Optional[Dict[str, object]] = None, + host: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - port: Optional[object] = None, + annotations: Optional[List[Any]] = None, + port: Optional[Any] = None, authentication_type: Optional[Union[str, "SftpAuthenticationType"]] = None, - user_name: Optional[object] = None, + user_name: Optional[Any] = None, password: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, - private_key_path: Optional[object] = None, + encrypted_credential: Optional[Any] = None, + private_key_path: Optional[Any] = None, private_key_content: Optional["SecretBase"] = None, pass_phrase: Optional["SecretBase"] = None, - skip_host_key_validation: Optional[object] = None, - host_key_fingerprint: Optional[object] = None, + skip_host_key_validation: Optional[Any] = None, + host_key_fingerprint: Optional[Any] = None, **kwargs ): super(SftpServerLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -34688,21 +36240,24 @@ class SftpWriteSettings(StoreWriteSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The write setting type.Constant filled by server. :type type: str :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param copy_behavior: The type of copy behavior for copy sink. - :type copy_behavior: object + :type copy_behavior: any :param operation_timeout: Specifies the timeout for writing each chunk to SFTP server. Default value: 01:00:00 (one hour). Type: string (or Expression with resultType string). - :type operation_timeout: object + :type operation_timeout: any :param use_temp_file_rename: Upload to temporary file(s) and rename. Disable this option if your SFTP server doesn't support rename operation. Type: boolean (or Expression with resultType boolean). - :type use_temp_file_rename: object + :type use_temp_file_rename: any """ _validation = { @@ -34713,6 +36268,7 @@ class SftpWriteSettings(StoreWriteSettings): 'additional_properties': {'key': '', 'type': '{object}'}, 'type': {'key': 'type', 'type': 'str'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'copy_behavior': {'key': 'copyBehavior', 'type': 'object'}, 'operation_timeout': {'key': 'operationTimeout', 'type': 'object'}, 'use_temp_file_rename': {'key': 'useTempFileRename', 'type': 'object'}, @@ -34721,14 +36277,15 @@ class SftpWriteSettings(StoreWriteSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - max_concurrent_connections: Optional[object] = None, - copy_behavior: Optional[object] = None, - operation_timeout: Optional[object] = None, - use_temp_file_rename: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + copy_behavior: Optional[Any] = None, + operation_timeout: Optional[Any] = None, + use_temp_file_rename: Optional[Any] = None, **kwargs ): - super(SftpWriteSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, copy_behavior=copy_behavior, **kwargs) + super(SftpWriteSettings, self).__init__(additional_properties=additional_properties, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, copy_behavior=copy_behavior, **kwargs) self.type = 'SftpWriteSettings' # type: str self.operation_timeout = operation_timeout self.use_temp_file_rename = use_temp_file_rename @@ -34741,7 +36298,7 @@ class SharePointOnlineListLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -34751,26 +36308,26 @@ class SharePointOnlineListLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param site_url: Required. The URL of the SharePoint Online site. For example, https://contoso.sharepoint.com/sites/siteName. Type: string (or Expression with resultType string). - :type site_url: object + :type site_url: any :param tenant_id: Required. The tenant ID under which your application resides. You can find it from Azure portal Active Directory overview page. Type: string (or Expression with resultType string). - :type tenant_id: object + :type tenant_id: any :param service_principal_id: Required. The application (client) ID of your application registered in Azure Active Directory. Make sure to grant SharePoint site permission to this application. Type: string (or Expression with resultType string). - :type service_principal_id: object + :type service_principal_id: any :param service_principal_key: Required. The client secret of your application registered in Azure Active Directory. Type: string (or Expression with resultType string). :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -34798,16 +36355,16 @@ class SharePointOnlineListLinkedService(LinkedService): def __init__( self, *, - site_url: object, - tenant_id: object, - service_principal_id: object, + site_url: Any, + tenant_id: Any, + service_principal_id: Any, service_principal_key: "SecretBase", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - encrypted_credential: Optional[object] = None, + annotations: Optional[List[Any]] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(SharePointOnlineListLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -34826,29 +36383,29 @@ class SharePointOnlineListResourceDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param list_name: The name of the SharePoint Online list. Type: string (or Expression with resultType string). - :type list_name: object + :type list_name: any """ _validation = { @@ -34873,14 +36430,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - list_name: Optional[object] = None, + list_name: Optional[Any] = None, **kwargs ): super(SharePointOnlineListResourceDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -34895,25 +36452,28 @@ class SharePointOnlineListSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: The OData query to filter the data in SharePoint Online list. For example, "$top=1". Type: string (or Expression with resultType string). - :type query: object + :type query: any :param http_request_timeout: The wait time to get a response from SharePoint Online. Default value is 5 minutes (00:05:00). Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type http_request_timeout: object + :type http_request_timeout: any """ _validation = { @@ -34926,6 +36486,7 @@ class SharePointOnlineListSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'http_request_timeout': {'key': 'httpRequestTimeout', 'type': 'object'}, } @@ -34933,15 +36494,16 @@ class SharePointOnlineListSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query: Optional[object] = None, - http_request_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query: Optional[Any] = None, + http_request_timeout: Optional[Any] = None, **kwargs ): - super(SharePointOnlineListSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(SharePointOnlineListSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'SharePointOnlineListSource' # type: str self.query = query self.http_request_timeout = http_request_timeout @@ -34954,7 +36516,7 @@ class ShopifyLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -34964,26 +36526,26 @@ class ShopifyLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. The endpoint of the Shopify server. (i.e. mystore.myshopify.com). - :type host: object + :type host: any :param access_token: The API access token that can be used to access Shopify’s data. The token won't expire if it is offline mode. :type access_token: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -35009,17 +36571,17 @@ class ShopifyLinkedService(LinkedService): def __init__( self, *, - host: object, - additional_properties: Optional[Dict[str, object]] = None, + host: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, access_token: Optional["SecretBase"] = None, - use_encrypted_endpoints: Optional[object] = None, - use_host_verification: Optional[object] = None, - use_peer_verification: Optional[object] = None, - encrypted_credential: Optional[object] = None, + use_encrypted_endpoints: Optional[Any] = None, + use_host_verification: Optional[Any] = None, + use_peer_verification: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(ShopifyLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -35039,28 +36601,28 @@ class ShopifyObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -35085,14 +36647,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(ShopifyObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -35107,27 +36669,30 @@ class ShopifySource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -35140,6 +36705,7 @@ class ShopifySource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -35148,16 +36714,17 @@ class ShopifySource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(ShopifySource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(ShopifySource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'ShopifySource' # type: str self.query = query @@ -35167,10 +36734,10 @@ class SkipErrorFile(msrest.serialization.Model): :param file_missing: Skip if file is deleted by other client during copy. Default is true. Type: boolean (or Expression with resultType boolean). - :type file_missing: object + :type file_missing: any :param data_inconsistency: Skip if source/sink file changed by other concurrent write. Default is false. Type: boolean (or Expression with resultType boolean). - :type data_inconsistency: object + :type data_inconsistency: any """ _attribute_map = { @@ -35181,8 +36748,8 @@ class SkipErrorFile(msrest.serialization.Model): def __init__( self, *, - file_missing: Optional[object] = None, - data_inconsistency: Optional[object] = None, + file_missing: Optional[Any] = None, + data_inconsistency: Optional[Any] = None, **kwargs ): super(SkipErrorFile, self).__init__(**kwargs) @@ -35197,32 +36764,32 @@ class SnowflakeDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param schema_type_properties_schema: The schema name of the Snowflake database. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any :param table: The table name of the Snowflake database. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -35248,15 +36815,15 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - schema_type_properties_schema: Optional[object] = None, - table: Optional[object] = None, + schema_type_properties_schema: Optional[Any] = None, + table: Optional[Any] = None, **kwargs ): super(SnowflakeDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -35272,19 +36839,19 @@ class SnowflakeExportCopyCommand(ExportSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The export setting type.Constant filled by server. :type type: str :param additional_copy_options: Additional copy options directly passed to snowflake Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalCopyOptions": { "DATE_FORMAT": "MM/DD/YYYY", "TIME_FORMAT": "'HH24:MI:SS.FF'" }. - :type additional_copy_options: dict[str, object] + :type additional_copy_options: dict[str, any] :param additional_format_options: Additional format options directly passed to snowflake Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalFormatOptions": { "OVERWRITE": "TRUE", "MAX_FILE_SIZE": "'FALSE'" }. - :type additional_format_options: dict[str, object] + :type additional_format_options: dict[str, any] """ _validation = { @@ -35301,9 +36868,9 @@ class SnowflakeExportCopyCommand(ExportSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - additional_copy_options: Optional[Dict[str, object]] = None, - additional_format_options: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, + additional_copy_options: Optional[Dict[str, Any]] = None, + additional_format_options: Optional[Dict[str, Any]] = None, **kwargs ): super(SnowflakeExportCopyCommand, self).__init__(additional_properties=additional_properties, **kwargs) @@ -35319,19 +36886,19 @@ class SnowflakeImportCopyCommand(ImportSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The import setting type.Constant filled by server. :type type: str :param additional_copy_options: Additional copy options directly passed to snowflake Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalCopyOptions": { "DATE_FORMAT": "MM/DD/YYYY", "TIME_FORMAT": "'HH24:MI:SS.FF'" }. - :type additional_copy_options: dict[str, object] + :type additional_copy_options: dict[str, any] :param additional_format_options: Additional format options directly passed to snowflake Copy Command. Type: key value pairs (value should be string type) (or Expression with resultType object). Example: "additionalFormatOptions": { "FORCE": "TRUE", "LOAD_UNCERTAIN_FILES": "'FALSE'" }. - :type additional_format_options: dict[str, object] + :type additional_format_options: dict[str, any] """ _validation = { @@ -35348,9 +36915,9 @@ class SnowflakeImportCopyCommand(ImportSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - additional_copy_options: Optional[Dict[str, object]] = None, - additional_format_options: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, + additional_copy_options: Optional[Dict[str, Any]] = None, + additional_format_options: Optional[Dict[str, Any]] = None, **kwargs ): super(SnowflakeImportCopyCommand, self).__init__(additional_properties=additional_properties, **kwargs) @@ -35366,7 +36933,7 @@ class SnowflakeLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -35376,16 +36943,16 @@ class SnowflakeLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string of snowflake. Type: string, SecureString. - :type connection_string: object + :type connection_string: any :param password: The Azure key vault secret reference of password in connection string. :type password: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -35408,14 +36975,14 @@ class SnowflakeLinkedService(LinkedService): def __init__( self, *, - connection_string: object, - additional_properties: Optional[Dict[str, object]] = None, + connection_string: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, password: Optional["AzureKeyVaultSecretReference"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(SnowflakeLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -35432,27 +36999,30 @@ class SnowflakeSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any :param import_settings: Snowflake import settings. :type import_settings: ~azure.mgmt.datafactory.models.SnowflakeImportCopyCommand """ @@ -35469,6 +37039,7 @@ class SnowflakeSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, 'import_settings': {'key': 'importSettings', 'type': 'SnowflakeImportCopyCommand'}, } @@ -35476,17 +37047,18 @@ class SnowflakeSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - pre_copy_script: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + pre_copy_script: Optional[Any] = None, import_settings: Optional["SnowflakeImportCopyCommand"] = None, **kwargs ): - super(SnowflakeSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(SnowflakeSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'SnowflakeSink' # type: str self.pre_copy_script = pre_copy_script self.import_settings = import_settings @@ -35499,20 +37071,23 @@ class SnowflakeSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query: Snowflake Sql query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param export_settings: Snowflake export settings. :type export_settings: ~azure.mgmt.datafactory.models.SnowflakeExportCopyCommand """ @@ -35527,6 +37102,7 @@ class SnowflakeSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query': {'key': 'query', 'type': 'object'}, 'export_settings': {'key': 'exportSettings', 'type': 'SnowflakeExportCopyCommand'}, } @@ -35534,15 +37110,16 @@ class SnowflakeSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query: Optional[Any] = None, export_settings: Optional["SnowflakeExportCopyCommand"] = None, **kwargs ): - super(SnowflakeSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(SnowflakeSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'SnowflakeSource' # type: str self.query = query self.export_settings = export_settings @@ -35555,7 +37132,7 @@ class SparkLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -35565,12 +37142,12 @@ class SparkLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param host: Required. IP address or host name of the Spark server. - :type host: object + :type host: any :param port: Required. The TCP port that the Spark server uses to listen for client connections. - :type port: object + :type port: any :param server_type: The type of Spark server. Possible values include: "SharkServer", "SharkServer2", "SparkThriftServer". :type server_type: str or ~azure.mgmt.datafactory.models.SparkServerType @@ -35583,32 +37160,32 @@ class SparkLinkedService(LinkedService): "WindowsAzureHDInsightService". :type authentication_type: str or ~azure.mgmt.datafactory.models.SparkAuthenticationType :param username: The user name that you use to access Spark Server. - :type username: object + :type username: any :param password: The password corresponding to the user name that you provided in the Username field. :type password: ~azure.mgmt.datafactory.models.SecretBase :param http_path: The partial URL corresponding to the Spark server. - :type http_path: object + :type http_path: any :param enable_ssl: Specifies whether the connections to the server are encrypted using SSL. The default value is false. - :type enable_ssl: object + :type enable_ssl: any :param trusted_cert_path: The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. - :type trusted_cert_path: object + :type trusted_cert_path: any :param use_system_trust_store: Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. - :type use_system_trust_store: object + :type use_system_trust_store: any :param allow_host_name_cn_mismatch: Specifies whether to require a CA-issued SSL certificate name to match the host name of the server when connecting over SSL. The default value is false. - :type allow_host_name_cn_mismatch: object + :type allow_host_name_cn_mismatch: any :param allow_self_signed_server_cert: Specifies whether to allow self-signed certificates from the server. The default value is false. - :type allow_self_signed_server_cert: object + :type allow_self_signed_server_cert: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -35644,25 +37221,25 @@ class SparkLinkedService(LinkedService): def __init__( self, *, - host: object, - port: object, + host: Any, + port: Any, authentication_type: Union[str, "SparkAuthenticationType"], - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, server_type: Optional[Union[str, "SparkServerType"]] = None, thrift_transport_protocol: Optional[Union[str, "SparkThriftTransportProtocol"]] = None, - username: Optional[object] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - http_path: Optional[object] = None, - enable_ssl: Optional[object] = None, - trusted_cert_path: Optional[object] = None, - use_system_trust_store: Optional[object] = None, - allow_host_name_cn_mismatch: Optional[object] = None, - allow_self_signed_server_cert: Optional[object] = None, - encrypted_credential: Optional[object] = None, + http_path: Optional[Any] = None, + enable_ssl: Optional[Any] = None, + trusted_cert_path: Optional[Any] = None, + use_system_trust_store: Optional[Any] = None, + allow_host_name_cn_mismatch: Optional[Any] = None, + allow_self_signed_server_cert: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(SparkLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -35690,34 +37267,34 @@ class SparkObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Spark. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Spark. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -35744,16 +37321,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - table: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, + table_name: Optional[Any] = None, + table: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, **kwargs ): super(SparkObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -35770,27 +37347,30 @@ class SparkSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -35803,6 +37383,7 @@ class SparkSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -35811,20 +37392,63 @@ class SparkSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(SparkSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(SparkSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'SparkSource' # type: str self.query = query +class SqlAlwaysEncryptedProperties(msrest.serialization.Model): + """Sql always encrypted properties. + + All required parameters must be populated in order to send to Azure. + + :param always_encrypted_akv_auth_type: Required. Sql always encrypted AKV authentication type. + Type: string (or Expression with resultType string). Possible values include: + "ServicePrincipal", "ManagedIdentity". + :type always_encrypted_akv_auth_type: str or + ~azure.mgmt.datafactory.models.SqlAlwaysEncryptedAkvAuthType + :param service_principal_id: The client ID of the application in Azure Active Directory used + for Azure Key Vault authentication. Type: string (or Expression with resultType string). + :type service_principal_id: any + :param service_principal_key: The key of the service principal used to authenticate against + Azure Key Vault. + :type service_principal_key: ~azure.mgmt.datafactory.models.SecretBase + """ + + _validation = { + 'always_encrypted_akv_auth_type': {'required': True}, + } + + _attribute_map = { + 'always_encrypted_akv_auth_type': {'key': 'alwaysEncryptedAkvAuthType', 'type': 'str'}, + 'service_principal_id': {'key': 'servicePrincipalId', 'type': 'object'}, + 'service_principal_key': {'key': 'servicePrincipalKey', 'type': 'SecretBase'}, + } + + def __init__( + self, + *, + always_encrypted_akv_auth_type: Union[str, "SqlAlwaysEncryptedAkvAuthType"], + service_principal_id: Optional[Any] = None, + service_principal_key: Optional["SecretBase"] = None, + **kwargs + ): + super(SqlAlwaysEncryptedProperties, self).__init__(**kwargs) + self.always_encrypted_akv_auth_type = always_encrypted_akv_auth_type + self.service_principal_id = service_principal_id + self.service_principal_key = service_principal_key + + class SqlDWSink(CopySink): """A copy activity SQL Data Warehouse sink. @@ -35832,41 +37456,44 @@ class SqlDWSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any :param allow_poly_base: Indicates to use PolyBase to copy data into SQL Data Warehouse when applicable. Type: boolean (or Expression with resultType boolean). - :type allow_poly_base: object + :type allow_poly_base: any :param poly_base_settings: Specifies PolyBase-related settings when allowPolyBase is true. :type poly_base_settings: ~azure.mgmt.datafactory.models.PolybaseSettings :param allow_copy_command: Indicates to use Copy Command to copy data into SQL Data Warehouse. Type: boolean (or Expression with resultType boolean). - :type allow_copy_command: object + :type allow_copy_command: any :param copy_command_settings: Specifies Copy Command related settings when allowCopyCommand is true. :type copy_command_settings: ~azure.mgmt.datafactory.models.DWCopyCommandSettings :param table_option: The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string). - :type table_option: object + :type table_option: any """ _validation = { @@ -35881,6 +37508,7 @@ class SqlDWSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, 'allow_poly_base': {'key': 'allowPolyBase', 'type': 'object'}, 'poly_base_settings': {'key': 'polyBaseSettings', 'type': 'PolybaseSettings'}, @@ -35892,21 +37520,22 @@ class SqlDWSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - pre_copy_script: Optional[object] = None, - allow_poly_base: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + pre_copy_script: Optional[Any] = None, + allow_poly_base: Optional[Any] = None, poly_base_settings: Optional["PolybaseSettings"] = None, - allow_copy_command: Optional[object] = None, + allow_copy_command: Optional[Any] = None, copy_command_settings: Optional["DWCopyCommandSettings"] = None, - table_option: Optional[object] = None, + table_option: Optional[Any] = None, **kwargs ): - super(SqlDWSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(SqlDWSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'SqlDWSink' # type: str self.pre_copy_script = pre_copy_script self.allow_poly_base = allow_poly_base @@ -35923,38 +37552,41 @@ class SqlDWSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param sql_reader_query: SQL Data Warehouse reader query. Type: string (or Expression with resultType string). - :type sql_reader_query: object + :type sql_reader_query: any :param sql_reader_stored_procedure_name: Name of the stored procedure for a SQL Data Warehouse source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string). - :type sql_reader_stored_procedure_name: object + :type sql_reader_stored_procedure_name: any :param stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}". Type: object (or Expression with resultType object), itemType: StoredProcedureParameter. - :type stored_procedure_parameters: object + :type stored_procedure_parameters: any :param partition_option: The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for Sql source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.SqlPartitionSettings """ @@ -35969,6 +37601,7 @@ class SqlDWSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'sql_reader_query': {'key': 'sqlReaderQuery', 'type': 'object'}, @@ -35981,20 +37614,21 @@ class SqlDWSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - sql_reader_query: Optional[object] = None, - sql_reader_stored_procedure_name: Optional[object] = None, - stored_procedure_parameters: Optional[object] = None, - partition_option: Optional[object] = None, + sql_reader_query: Optional[Any] = None, + sql_reader_stored_procedure_name: Optional[Any] = None, + stored_procedure_parameters: Optional[Any] = None, + partition_option: Optional[Any] = None, partition_settings: Optional["SqlPartitionSettings"] = None, **kwargs ): - super(SqlDWSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(SqlDWSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'SqlDWSource' # type: str self.sql_reader_query = sql_reader_query self.sql_reader_stored_procedure_name = sql_reader_stored_procedure_name @@ -36010,42 +37644,45 @@ class SqlMISink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param sql_writer_stored_procedure_name: SQL writer stored procedure name. Type: string (or Expression with resultType string). - :type sql_writer_stored_procedure_name: object + :type sql_writer_stored_procedure_name: any :param sql_writer_table_type: SQL writer table type. Type: string (or Expression with resultType string). - :type sql_writer_table_type: object + :type sql_writer_table_type: any :param pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any :param stored_procedure_parameters: SQL stored procedure parameters. :type stored_procedure_parameters: dict[str, ~azure.mgmt.datafactory.models.StoredProcedureParameter] :param stored_procedure_table_type_parameter_name: The stored procedure parameter name of the table type. Type: string (or Expression with resultType string). - :type stored_procedure_table_type_parameter_name: object + :type stored_procedure_table_type_parameter_name: any :param table_option: The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string). - :type table_option: object + :type table_option: any """ _validation = { @@ -36060,6 +37697,7 @@ class SqlMISink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'sql_writer_stored_procedure_name': {'key': 'sqlWriterStoredProcedureName', 'type': 'object'}, 'sql_writer_table_type': {'key': 'sqlWriterTableType', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, @@ -36071,21 +37709,22 @@ class SqlMISink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - sql_writer_stored_procedure_name: Optional[object] = None, - sql_writer_table_type: Optional[object] = None, - pre_copy_script: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + sql_writer_stored_procedure_name: Optional[Any] = None, + sql_writer_table_type: Optional[Any] = None, + pre_copy_script: Optional[Any] = None, stored_procedure_parameters: Optional[Dict[str, "StoredProcedureParameter"]] = None, - stored_procedure_table_type_parameter_name: Optional[object] = None, - table_option: Optional[object] = None, + stored_procedure_table_type_parameter_name: Optional[Any] = None, + table_option: Optional[Any] = None, **kwargs ): - super(SqlMISink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(SqlMISink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'SqlMISink' # type: str self.sql_writer_stored_procedure_name = sql_writer_stored_procedure_name self.sql_writer_table_type = sql_writer_table_type @@ -36102,39 +37741,42 @@ class SqlMISource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param sql_reader_query: SQL reader query. Type: string (or Expression with resultType string). - :type sql_reader_query: object + :type sql_reader_query: any :param sql_reader_stored_procedure_name: Name of the stored procedure for a Azure SQL Managed Instance source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string). - :type sql_reader_stored_procedure_name: object + :type sql_reader_stored_procedure_name: any :param stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}". :type stored_procedure_parameters: dict[str, ~azure.mgmt.datafactory.models.StoredProcedureParameter] :param produce_additional_types: Which additional types to produce. - :type produce_additional_types: object + :type produce_additional_types: any :param partition_option: The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for Sql source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.SqlPartitionSettings """ @@ -36149,6 +37791,7 @@ class SqlMISource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'sql_reader_query': {'key': 'sqlReaderQuery', 'type': 'object'}, @@ -36162,21 +37805,22 @@ class SqlMISource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - sql_reader_query: Optional[object] = None, - sql_reader_stored_procedure_name: Optional[object] = None, + sql_reader_query: Optional[Any] = None, + sql_reader_stored_procedure_name: Optional[Any] = None, stored_procedure_parameters: Optional[Dict[str, "StoredProcedureParameter"]] = None, - produce_additional_types: Optional[object] = None, - partition_option: Optional[object] = None, + produce_additional_types: Optional[Any] = None, + partition_option: Optional[Any] = None, partition_settings: Optional["SqlPartitionSettings"] = None, **kwargs ): - super(SqlMISource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(SqlMISource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'SqlMISource' # type: str self.sql_reader_query = sql_reader_query self.sql_reader_stored_procedure_name = sql_reader_stored_procedure_name @@ -36190,19 +37834,20 @@ class SqlPartitionSettings(msrest.serialization.Model): """The settings that will be leveraged for Sql source partitioning. :param partition_column_name: The name of the column in integer or datetime type that will be - used for proceeding partitioning. If not specified, the primary key of the table is auto- - detected and used as the partition column. Type: string (or Expression with resultType string). - :type partition_column_name: object + used for proceeding partitioning. If not specified, the primary key of the table is + auto-detected and used as the partition column. Type: string (or Expression with resultType + string). + :type partition_column_name: any :param partition_upper_bound: The maximum value of the partition column for partition range splitting. This value is used to decide the partition stride, not for filtering the rows in table. All rows in the table or query result will be partitioned and copied. Type: string (or Expression with resultType string). - :type partition_upper_bound: object + :type partition_upper_bound: any :param partition_lower_bound: The minimum value of the partition column for partition range splitting. This value is used to decide the partition stride, not for filtering the rows in table. All rows in the table or query result will be partitioned and copied. Type: string (or Expression with resultType string). - :type partition_lower_bound: object + :type partition_lower_bound: any """ _attribute_map = { @@ -36214,9 +37859,9 @@ class SqlPartitionSettings(msrest.serialization.Model): def __init__( self, *, - partition_column_name: Optional[object] = None, - partition_upper_bound: Optional[object] = None, - partition_lower_bound: Optional[object] = None, + partition_column_name: Optional[Any] = None, + partition_upper_bound: Optional[Any] = None, + partition_lower_bound: Optional[Any] = None, **kwargs ): super(SqlPartitionSettings, self).__init__(**kwargs) @@ -36232,7 +37877,7 @@ class SqlServerLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -36242,19 +37887,21 @@ class SqlServerLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Required. The connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param user_name: The on-premises Windows authentication user name. Type: string (or Expression with resultType string). - :type user_name: object + :type user_name: any :param password: The on-premises Windows authentication password. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any + :param always_encrypted_settings: Sql always encrypted properties. + :type always_encrypted_settings: ~azure.mgmt.datafactory.models.SqlAlwaysEncryptedProperties """ _validation = { @@ -36273,20 +37920,22 @@ class SqlServerLinkedService(LinkedService): 'user_name': {'key': 'typeProperties.userName', 'type': 'object'}, 'password': {'key': 'typeProperties.password', 'type': 'SecretBase'}, 'encrypted_credential': {'key': 'typeProperties.encryptedCredential', 'type': 'object'}, + 'always_encrypted_settings': {'key': 'typeProperties.alwaysEncryptedSettings', 'type': 'SqlAlwaysEncryptedProperties'}, } def __init__( self, *, - connection_string: object, - additional_properties: Optional[Dict[str, object]] = None, + connection_string: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - user_name: Optional[object] = None, + annotations: Optional[List[Any]] = None, + user_name: Optional[Any] = None, password: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, + always_encrypted_settings: Optional["SqlAlwaysEncryptedProperties"] = None, **kwargs ): super(SqlServerLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -36295,6 +37944,7 @@ def __init__( self.user_name = user_name self.password = password self.encrypted_credential = encrypted_credential + self.always_encrypted_settings = always_encrypted_settings class SqlServerSink(CopySink): @@ -36304,42 +37954,45 @@ class SqlServerSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param sql_writer_stored_procedure_name: SQL writer stored procedure name. Type: string (or Expression with resultType string). - :type sql_writer_stored_procedure_name: object + :type sql_writer_stored_procedure_name: any :param sql_writer_table_type: SQL writer table type. Type: string (or Expression with resultType string). - :type sql_writer_table_type: object + :type sql_writer_table_type: any :param pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any :param stored_procedure_parameters: SQL stored procedure parameters. :type stored_procedure_parameters: dict[str, ~azure.mgmt.datafactory.models.StoredProcedureParameter] :param stored_procedure_table_type_parameter_name: The stored procedure parameter name of the table type. Type: string (or Expression with resultType string). - :type stored_procedure_table_type_parameter_name: object + :type stored_procedure_table_type_parameter_name: any :param table_option: The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string). - :type table_option: object + :type table_option: any """ _validation = { @@ -36354,6 +38007,7 @@ class SqlServerSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'sql_writer_stored_procedure_name': {'key': 'sqlWriterStoredProcedureName', 'type': 'object'}, 'sql_writer_table_type': {'key': 'sqlWriterTableType', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, @@ -36365,21 +38019,22 @@ class SqlServerSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - sql_writer_stored_procedure_name: Optional[object] = None, - sql_writer_table_type: Optional[object] = None, - pre_copy_script: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + sql_writer_stored_procedure_name: Optional[Any] = None, + sql_writer_table_type: Optional[Any] = None, + pre_copy_script: Optional[Any] = None, stored_procedure_parameters: Optional[Dict[str, "StoredProcedureParameter"]] = None, - stored_procedure_table_type_parameter_name: Optional[object] = None, - table_option: Optional[object] = None, + stored_procedure_table_type_parameter_name: Optional[Any] = None, + table_option: Optional[Any] = None, **kwargs ): - super(SqlServerSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(SqlServerSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'SqlServerSink' # type: str self.sql_writer_stored_procedure_name = sql_writer_stored_procedure_name self.sql_writer_table_type = sql_writer_table_type @@ -36396,39 +38051,42 @@ class SqlServerSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param sql_reader_query: SQL reader query. Type: string (or Expression with resultType string). - :type sql_reader_query: object + :type sql_reader_query: any :param sql_reader_stored_procedure_name: Name of the stored procedure for a SQL Database source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string). - :type sql_reader_stored_procedure_name: object + :type sql_reader_stored_procedure_name: any :param stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}". :type stored_procedure_parameters: dict[str, ~azure.mgmt.datafactory.models.StoredProcedureParameter] :param produce_additional_types: Which additional types to produce. - :type produce_additional_types: object + :type produce_additional_types: any :param partition_option: The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for Sql source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.SqlPartitionSettings """ @@ -36443,6 +38101,7 @@ class SqlServerSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'sql_reader_query': {'key': 'sqlReaderQuery', 'type': 'object'}, @@ -36456,21 +38115,22 @@ class SqlServerSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - sql_reader_query: Optional[object] = None, - sql_reader_stored_procedure_name: Optional[object] = None, + sql_reader_query: Optional[Any] = None, + sql_reader_stored_procedure_name: Optional[Any] = None, stored_procedure_parameters: Optional[Dict[str, "StoredProcedureParameter"]] = None, - produce_additional_types: Optional[object] = None, - partition_option: Optional[object] = None, + produce_additional_types: Optional[Any] = None, + partition_option: Optional[Any] = None, partition_settings: Optional["SqlPartitionSettings"] = None, **kwargs ): - super(SqlServerSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(SqlServerSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'SqlServerSource' # type: str self.sql_reader_query = sql_reader_query self.sql_reader_stored_procedure_name = sql_reader_stored_procedure_name @@ -36487,7 +38147,7 @@ class SqlServerStoredProcedureActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -36504,7 +38164,7 @@ class SqlServerStoredProcedureActivity(ExecutionActivity): :type policy: ~azure.mgmt.datafactory.models.ActivityPolicy :param stored_procedure_name: Required. Stored procedure name. Type: string (or Expression with resultType string). - :type stored_procedure_name: object + :type stored_procedure_name: any :param stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}". :type stored_procedure_parameters: dict[str, @@ -36534,8 +38194,8 @@ def __init__( self, *, name: str, - stored_procedure_name: object, - additional_properties: Optional[Dict[str, object]] = None, + stored_procedure_name: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, @@ -36557,35 +38217,35 @@ class SqlServerTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param schema_type_properties_schema: The schema name of the SQL Server dataset. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any :param table: The table name of the SQL Server dataset. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -36612,16 +38272,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, - table: Optional[object] = None, + table_name: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, + table: Optional[Any] = None, **kwargs ): super(SqlServerTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -36638,42 +38298,45 @@ class SqlSink(CopySink): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy sink type.Constant filled by server. :type type: str :param write_batch_size: Write batch size. Type: integer (or Expression with resultType integer), minimum: 0. - :type write_batch_size: object + :type write_batch_size: any :param write_batch_timeout: Write batch timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type write_batch_timeout: object + :type write_batch_timeout: any :param sink_retry_count: Sink retry count. Type: integer (or Expression with resultType integer). - :type sink_retry_count: object + :type sink_retry_count: any :param sink_retry_wait: Sink retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type sink_retry_wait: object + :type sink_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the sink data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param sql_writer_stored_procedure_name: SQL writer stored procedure name. Type: string (or Expression with resultType string). - :type sql_writer_stored_procedure_name: object + :type sql_writer_stored_procedure_name: any :param sql_writer_table_type: SQL writer table type. Type: string (or Expression with resultType string). - :type sql_writer_table_type: object + :type sql_writer_table_type: any :param pre_copy_script: SQL pre-copy script. Type: string (or Expression with resultType string). - :type pre_copy_script: object + :type pre_copy_script: any :param stored_procedure_parameters: SQL stored procedure parameters. :type stored_procedure_parameters: dict[str, ~azure.mgmt.datafactory.models.StoredProcedureParameter] :param stored_procedure_table_type_parameter_name: The stored procedure parameter name of the table type. Type: string (or Expression with resultType string). - :type stored_procedure_table_type_parameter_name: object + :type stored_procedure_table_type_parameter_name: any :param table_option: The option to handle sink table, such as autoCreate. For now only 'autoCreate' value is supported. Type: string (or Expression with resultType string). - :type table_option: object + :type table_option: any """ _validation = { @@ -36688,6 +38351,7 @@ class SqlSink(CopySink): 'sink_retry_count': {'key': 'sinkRetryCount', 'type': 'object'}, 'sink_retry_wait': {'key': 'sinkRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'sql_writer_stored_procedure_name': {'key': 'sqlWriterStoredProcedureName', 'type': 'object'}, 'sql_writer_table_type': {'key': 'sqlWriterTableType', 'type': 'object'}, 'pre_copy_script': {'key': 'preCopyScript', 'type': 'object'}, @@ -36699,21 +38363,22 @@ class SqlSink(CopySink): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - write_batch_size: Optional[object] = None, - write_batch_timeout: Optional[object] = None, - sink_retry_count: Optional[object] = None, - sink_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - sql_writer_stored_procedure_name: Optional[object] = None, - sql_writer_table_type: Optional[object] = None, - pre_copy_script: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + write_batch_size: Optional[Any] = None, + write_batch_timeout: Optional[Any] = None, + sink_retry_count: Optional[Any] = None, + sink_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + sql_writer_stored_procedure_name: Optional[Any] = None, + sql_writer_table_type: Optional[Any] = None, + pre_copy_script: Optional[Any] = None, stored_procedure_parameters: Optional[Dict[str, "StoredProcedureParameter"]] = None, - stored_procedure_table_type_parameter_name: Optional[object] = None, - table_option: Optional[object] = None, + stored_procedure_table_type_parameter_name: Optional[Any] = None, + table_option: Optional[Any] = None, **kwargs ): - super(SqlSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(SqlSink, self).__init__(additional_properties=additional_properties, write_batch_size=write_batch_size, write_batch_timeout=write_batch_timeout, sink_retry_count=sink_retry_count, sink_retry_wait=sink_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'SqlSink' # type: str self.sql_writer_stored_procedure_name = sql_writer_stored_procedure_name self.sql_writer_table_type = sql_writer_table_type @@ -36730,30 +38395,33 @@ class SqlSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param sql_reader_query: SQL reader query. Type: string (or Expression with resultType string). - :type sql_reader_query: object + :type sql_reader_query: any :param sql_reader_stored_procedure_name: Name of the stored procedure for a SQL Database source. This cannot be used at the same time as SqlReaderQuery. Type: string (or Expression with resultType string). - :type sql_reader_stored_procedure_name: object + :type sql_reader_stored_procedure_name: any :param stored_procedure_parameters: Value and type setting for stored procedure parameters. Example: "{Parameter1: {value: "1", type: "int"}}". :type stored_procedure_parameters: dict[str, @@ -36761,10 +38429,10 @@ class SqlSource(TabularSource): :param isolation_level: Specifies the transaction locking behavior for the SQL source. Allowed values: ReadCommitted/ReadUncommitted/RepeatableRead/Serializable/Snapshot. The default value is ReadCommitted. Type: string (or Expression with resultType string). - :type isolation_level: object + :type isolation_level: any :param partition_option: The partition mechanism that will be used for Sql read in parallel. Possible values include: "None", "PhysicalPartitionsOfTable", "DynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for Sql source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.SqlPartitionSettings """ @@ -36779,6 +38447,7 @@ class SqlSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'sql_reader_query': {'key': 'sqlReaderQuery', 'type': 'object'}, @@ -36792,21 +38461,22 @@ class SqlSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - sql_reader_query: Optional[object] = None, - sql_reader_stored_procedure_name: Optional[object] = None, + sql_reader_query: Optional[Any] = None, + sql_reader_stored_procedure_name: Optional[Any] = None, stored_procedure_parameters: Optional[Dict[str, "StoredProcedureParameter"]] = None, - isolation_level: Optional[object] = None, - partition_option: Optional[object] = None, + isolation_level: Optional[Any] = None, + partition_option: Optional[Any] = None, partition_settings: Optional["SqlPartitionSettings"] = None, **kwargs ): - super(SqlSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(SqlSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'SqlSource' # type: str self.sql_reader_query = sql_reader_query self.sql_reader_stored_procedure_name = sql_reader_stored_procedure_name @@ -36823,7 +38493,7 @@ class SquareLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -36833,33 +38503,33 @@ class SquareLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_properties: Properties used to connect to Square. It is mutually exclusive with any other properties in the linked service. Type: object. - :type connection_properties: object + :type connection_properties: any :param host: The URL of the Square instance. (i.e. mystore.mysquare.com). - :type host: object + :type host: any :param client_id: The client ID associated with your Square application. - :type client_id: object + :type client_id: any :param client_secret: The client secret associated with your Square application. :type client_secret: ~azure.mgmt.datafactory.models.SecretBase :param redirect_uri: The redirect URL assigned in the Square application dashboard. (i.e. http://localhost:2500). - :type redirect_uri: object + :type redirect_uri: any :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -36887,20 +38557,20 @@ class SquareLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_properties: Optional[object] = None, - host: Optional[object] = None, - client_id: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_properties: Optional[Any] = None, + host: Optional[Any] = None, + client_id: Optional[Any] = None, client_secret: Optional["SecretBase"] = None, - redirect_uri: Optional[object] = None, - use_encrypted_endpoints: Optional[object] = None, - use_host_verification: Optional[object] = None, - use_peer_verification: Optional[object] = None, - encrypted_credential: Optional[object] = None, + redirect_uri: Optional[Any] = None, + use_encrypted_endpoints: Optional[Any] = None, + use_host_verification: Optional[Any] = None, + use_peer_verification: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(SquareLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -36923,28 +38593,28 @@ class SquareObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -36969,14 +38639,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(SquareObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -36991,27 +38661,30 @@ class SquareSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -37024,6 +38697,7 @@ class SquareSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -37032,16 +38706,17 @@ class SquareSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(SquareSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(SquareSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'SquareSource' # type: str self.query = query @@ -37052,9 +38727,9 @@ class SSISAccessCredential(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param domain: Required. Domain for windows authentication. - :type domain: object + :type domain: any :param user_name: Required. UseName for windows authentication. - :type user_name: object + :type user_name: any :param password: Required. Password for windows authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase """ @@ -37074,8 +38749,8 @@ class SSISAccessCredential(msrest.serialization.Model): def __init__( self, *, - domain: object, - user_name: object, + domain: Any, + user_name: Any, password: "SecretBase", **kwargs ): @@ -37092,12 +38767,12 @@ class SSISChildPackage(msrest.serialization.Model): :param package_path: Required. Path for embedded child package. Type: string (or Expression with resultType string). - :type package_path: object + :type package_path: any :param package_name: Name for embedded child package. :type package_name: str :param package_content: Required. Content for embedded child package. Type: string (or Expression with resultType string). - :type package_content: object + :type package_content: any :param package_last_modified_date: Last modified date for embedded child package. :type package_last_modified_date: str """ @@ -37117,8 +38792,8 @@ class SSISChildPackage(msrest.serialization.Model): def __init__( self, *, - package_path: object, - package_content: object, + package_path: Any, + package_content: Any, package_name: Optional[str] = None, package_last_modified_date: Optional[str] = None, **kwargs @@ -37270,9 +38945,9 @@ class SSISExecutionCredential(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param domain: Required. Domain for windows authentication. - :type domain: object + :type domain: any :param user_name: Required. UseName for windows authentication. - :type user_name: object + :type user_name: any :param password: Required. Password for windows authentication. :type password: ~azure.mgmt.datafactory.models.SecureString """ @@ -37292,8 +38967,8 @@ class SSISExecutionCredential(msrest.serialization.Model): def __init__( self, *, - domain: object, - user_name: object, + domain: Any, + user_name: Any, password: "SecureString", **kwargs ): @@ -37310,7 +38985,7 @@ class SSISExecutionParameter(msrest.serialization.Model): :param value: Required. SSIS package execution parameter value. Type: string (or Expression with resultType string). - :type value: object + :type value: any """ _validation = { @@ -37324,7 +38999,7 @@ class SSISExecutionParameter(msrest.serialization.Model): def __init__( self, *, - value: object, + value: Any, **kwargs ): super(SSISExecutionParameter, self).__init__(**kwargs) @@ -37377,7 +39052,7 @@ class SSISLogLocation(msrest.serialization.Model): :param log_path: Required. The SSIS package execution log path. Type: string (or Expression with resultType string). - :type log_path: object + :type log_path: any :param type: Required. The type of SSIS log location. Possible values include: "File". :type type: str or ~azure.mgmt.datafactory.models.SsisLogLocationType :param access_credential: The package execution log access credential. @@ -37385,7 +39060,7 @@ class SSISLogLocation(msrest.serialization.Model): :param log_refresh_interval: Specifies the interval to refresh log. The default interval is 5 minutes. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type log_refresh_interval: object + :type log_refresh_interval: any """ _validation = { @@ -37403,10 +39078,10 @@ class SSISLogLocation(msrest.serialization.Model): def __init__( self, *, - log_path: object, + log_path: Any, type: Union[str, "SsisLogLocationType"], access_credential: Optional["SSISAccessCredential"] = None, - log_refresh_interval: Optional[object] = None, + log_refresh_interval: Optional[Any] = None, **kwargs ): super(SSISLogLocation, self).__init__(**kwargs) @@ -37542,7 +39217,7 @@ class SSISPackageLocation(msrest.serialization.Model): :param package_path: The SSIS package path. Type: string (or Expression with resultType string). - :type package_path: object + :type package_path: any :param type: The type of SSIS package location. Possible values include: "SSISDB", "File", "InlinePackage", "PackageStore". :type type: str or ~azure.mgmt.datafactory.models.SsisPackageLocationType @@ -37552,14 +39227,14 @@ class SSISPackageLocation(msrest.serialization.Model): :type access_credential: ~azure.mgmt.datafactory.models.SSISAccessCredential :param configuration_path: The configuration file of the package execution. Type: string (or Expression with resultType string). - :type configuration_path: object + :type configuration_path: any :param configuration_access_credential: The configuration file access credential. :type configuration_access_credential: ~azure.mgmt.datafactory.models.SSISAccessCredential :param package_name: The package name. :type package_name: str :param package_content: The embedded package content. Type: string (or Expression with resultType string). - :type package_content: object + :type package_content: any :param package_last_modified_date: The embedded package last modified date. :type package_last_modified_date: str :param child_packages: The embedded child package list. @@ -37582,14 +39257,14 @@ class SSISPackageLocation(msrest.serialization.Model): def __init__( self, *, - package_path: Optional[object] = None, + package_path: Optional[Any] = None, type: Optional[Union[str, "SsisPackageLocationType"]] = None, package_password: Optional["SecretBase"] = None, access_credential: Optional["SSISAccessCredential"] = None, - configuration_path: Optional[object] = None, + configuration_path: Optional[Any] = None, configuration_access_credential: Optional["SSISAccessCredential"] = None, package_name: Optional[str] = None, - package_content: Optional[object] = None, + package_content: Optional[Any] = None, package_last_modified_date: Optional[str] = None, child_packages: Optional[List["SSISChildPackage"]] = None, **kwargs @@ -37749,7 +39424,7 @@ class SSISPropertyOverride(msrest.serialization.Model): :param value: Required. SSIS package property override value. Type: string (or Expression with resultType string). - :type value: object + :type value: any :param is_sensitive: Whether SSIS package property override value is sensitive data. Value will be encrypted in SSISDB if it is true. :type is_sensitive: bool @@ -37767,7 +39442,7 @@ class SSISPropertyOverride(msrest.serialization.Model): def __init__( self, *, - value: object, + value: Any, is_sensitive: Optional[bool] = None, **kwargs ): @@ -37834,15 +39509,15 @@ class StagingSettings(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param linked_service_name: Required. Staging linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param path: The path to storage for storing the interim data. Type: string (or Expression with resultType string). - :type path: object + :type path: any :param enable_compression: Specifies whether to use compression when copying data via an interim staging. Default value is false. Type: boolean (or Expression with resultType boolean). - :type enable_compression: object + :type enable_compression: any """ _validation = { @@ -37860,9 +39535,9 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, - path: Optional[object] = None, - enable_compression: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + path: Optional[Any] = None, + enable_compression: Optional[Any] = None, **kwargs ): super(StagingSettings, self).__init__(**kwargs) @@ -37877,7 +39552,7 @@ class StoredProcedureParameter(msrest.serialization.Model): :param value: Stored procedure parameter value. Type: string (or Expression with resultType string). - :type value: object + :type value: any :param type: Stored procedure parameter type. Possible values include: "String", "Int", "Int64", "Decimal", "Guid", "Boolean", "Date". :type type: str or ~azure.mgmt.datafactory.models.StoredProcedureParameterType @@ -37891,7 +39566,7 @@ class StoredProcedureParameter(msrest.serialization.Model): def __init__( self, *, - value: Optional[object] = None, + value: Optional[Any] = None, type: Optional[Union[str, "StoredProcedureParameterType"]] = None, **kwargs ): @@ -37900,14 +39575,14 @@ def __init__( self.type = type -class SwitchActivity(Activity): +class SwitchActivity(ControlActivity): """This activity evaluates an expression and executes activities under the cases property that correspond to the expression evaluation expected in the equals property. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -37953,7 +39628,7 @@ def __init__( *, name: str, on: "Expression", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, @@ -38001,7 +39676,7 @@ class SybaseLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -38011,27 +39686,27 @@ class SybaseLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param server: Required. Server name for connection. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param database: Required. Database name for connection. Type: string (or Expression with resultType string). - :type database: object + :type database: any :param schema: Schema name for connection. Type: string (or Expression with resultType string). - :type schema: object + :type schema: any :param authentication_type: AuthenticationType to be used for connection. Possible values include: "Basic", "Windows". :type authentication_type: str or ~azure.mgmt.datafactory.models.SybaseAuthenticationType :param username: Username for authentication. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password for authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -38059,18 +39734,18 @@ class SybaseLinkedService(LinkedService): def __init__( self, *, - server: object, - database: object, - additional_properties: Optional[Dict[str, object]] = None, + server: Any, + database: Any, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - schema: Optional[object] = None, + annotations: Optional[List[Any]] = None, + schema: Optional[Any] = None, authentication_type: Optional[Union[str, "SybaseAuthenticationType"]] = None, - username: Optional[object] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(SybaseLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -38091,26 +39766,29 @@ class SybaseSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Database query. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -38123,6 +39801,7 @@ class SybaseSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -38131,16 +39810,17 @@ class SybaseSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(SybaseSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(SybaseSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'SybaseSource' # type: str self.query = query @@ -38152,28 +39832,28 @@ class SybaseTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The Sybase table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -38198,14 +39878,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(SybaseTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -38220,33 +39900,33 @@ class TabularTranslator(CopyTranslator): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy translator type.Constant filled by server. :type type: str :param column_mappings: Column mappings. Example: "UserId: MyUserId, Group: MyGroup, Name: MyName" Type: string (or Expression with resultType string). This property will be retired. Please use mappings property. - :type column_mappings: object + :type column_mappings: any :param schema_mapping: The schema mapping to map between tabular data and hierarchical data. Example: {"Column1": "$.Column1", "Column2": "$.Column2.Property1", "Column3": "$.Column2.Property2"}. Type: object (or Expression with resultType object). This property will be retired. Please use mappings property. - :type schema_mapping: object + :type schema_mapping: any :param collection_reference: The JSON Path of the Nested Array that is going to do cross-apply. Type: object (or Expression with resultType object). - :type collection_reference: object + :type collection_reference: any :param map_complex_values_to_string: Whether to map complex (array and object) values to simple strings in json format. Type: boolean (or Expression with resultType boolean). - :type map_complex_values_to_string: object + :type map_complex_values_to_string: any :param mappings: Column mappings with logical types. Tabular->tabular example: [{"source":{"name":"CustomerName","type":"String"},"sink":{"name":"ClientName","type":"String"}},{"source":{"name":"CustomerAddress","type":"String"},"sink":{"name":"ClientAddress","type":"String"}}]. Hierarchical->tabular example: [{"source":{"path":"$.CustomerName","type":"String"},"sink":{"name":"ClientName","type":"String"}},{"source":{"path":"$.CustomerAddress","type":"String"},"sink":{"name":"ClientAddress","type":"String"}}]. Type: object (or Expression with resultType object). - :type mappings: object + :type mappings: any :param type_conversion: Whether to enable the advanced type conversion feature in the Copy activity. Type: boolean (or Expression with resultType boolean). - :type type_conversion: object + :type type_conversion: any :param type_conversion_settings: Type conversion settings. :type type_conversion_settings: ~azure.mgmt.datafactory.models.TypeConversionSettings """ @@ -38270,13 +39950,13 @@ class TabularTranslator(CopyTranslator): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - column_mappings: Optional[object] = None, - schema_mapping: Optional[object] = None, - collection_reference: Optional[object] = None, - map_complex_values_to_string: Optional[object] = None, - mappings: Optional[object] = None, - type_conversion: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + column_mappings: Optional[Any] = None, + schema_mapping: Optional[Any] = None, + collection_reference: Optional[Any] = None, + map_complex_values_to_string: Optional[Any] = None, + mappings: Optional[Any] = None, + type_conversion: Optional[Any] = None, type_conversion_settings: Optional["TypeConversionSettings"] = None, **kwargs ): @@ -38298,12 +39978,12 @@ class TarGZipReadSettings(CompressionReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The Compression setting type.Constant filled by server. :type type: str :param preserve_compression_file_name_as_folder: Preserve the compression file name as folder path. Type: boolean (or Expression with resultType boolean). - :type preserve_compression_file_name_as_folder: object + :type preserve_compression_file_name_as_folder: any """ _validation = { @@ -38319,8 +39999,8 @@ class TarGZipReadSettings(CompressionReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - preserve_compression_file_name_as_folder: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + preserve_compression_file_name_as_folder: Optional[Any] = None, **kwargs ): super(TarGZipReadSettings, self).__init__(additional_properties=additional_properties, **kwargs) @@ -38335,12 +40015,12 @@ class TarReadSettings(CompressionReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The Compression setting type.Constant filled by server. :type type: str :param preserve_compression_file_name_as_folder: Preserve the compression file name as folder path. Type: boolean (or Expression with resultType boolean). - :type preserve_compression_file_name_as_folder: object + :type preserve_compression_file_name_as_folder: any """ _validation = { @@ -38356,8 +40036,8 @@ class TarReadSettings(CompressionReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - preserve_compression_file_name_as_folder: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + preserve_compression_file_name_as_folder: Optional[Any] = None, **kwargs ): super(TarReadSettings, self).__init__(additional_properties=additional_properties, **kwargs) @@ -38372,7 +40052,7 @@ class TeradataLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -38382,24 +40062,24 @@ class TeradataLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: Teradata ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param server: Server name for connection. Type: string (or Expression with resultType string). - :type server: object + :type server: any :param authentication_type: AuthenticationType to be used for connection. Possible values include: "Basic", "Windows". :type authentication_type: str or ~azure.mgmt.datafactory.models.TeradataAuthenticationType :param username: Username for authentication. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password for authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -38424,17 +40104,17 @@ class TeradataLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_string: Optional[object] = None, - server: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_string: Optional[Any] = None, + server: Optional[Any] = None, authentication_type: Optional[Union[str, "TeradataAuthenticationType"]] = None, - username: Optional[object] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(TeradataLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -38452,15 +40132,15 @@ class TeradataPartitionSettings(msrest.serialization.Model): :param partition_column_name: The name of the column that will be used for proceeding range or hash partitioning. Type: string (or Expression with resultType string). - :type partition_column_name: object + :type partition_column_name: any :param partition_upper_bound: The maximum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_upper_bound: object + :type partition_upper_bound: any :param partition_lower_bound: The minimum value of column specified in partitionColumnName that will be used for proceeding range partitioning. Type: string (or Expression with resultType string). - :type partition_lower_bound: object + :type partition_lower_bound: any """ _attribute_map = { @@ -38472,9 +40152,9 @@ class TeradataPartitionSettings(msrest.serialization.Model): def __init__( self, *, - partition_column_name: Optional[object] = None, - partition_upper_bound: Optional[object] = None, - partition_lower_bound: Optional[object] = None, + partition_column_name: Optional[Any] = None, + partition_upper_bound: Optional[Any] = None, + partition_lower_bound: Optional[Any] = None, **kwargs ): super(TeradataPartitionSettings, self).__init__(**kwargs) @@ -38490,29 +40170,32 @@ class TeradataSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: Teradata query. Type: string (or Expression with resultType string). - :type query: object + :type query: any :param partition_option: The partition mechanism that will be used for teradata read in parallel. Possible values include: "None", "Hash", "DynamicRange". - :type partition_option: object + :type partition_option: any :param partition_settings: The settings that will be leveraged for teradata source partitioning. :type partition_settings: ~azure.mgmt.datafactory.models.TeradataPartitionSettings @@ -38528,6 +40211,7 @@ class TeradataSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -38538,18 +40222,19 @@ class TeradataSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, - partition_option: Optional[object] = None, + query: Optional[Any] = None, + partition_option: Optional[Any] = None, partition_settings: Optional["TeradataPartitionSettings"] = None, **kwargs ): - super(TeradataSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(TeradataSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'TeradataSource' # type: str self.query = query self.partition_option = partition_option @@ -38563,31 +40248,31 @@ class TeradataTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param database: The database name of Teradata. Type: string (or Expression with resultType string). - :type database: object + :type database: any :param table: The table name of Teradata. Type: string (or Expression with resultType string). - :type table: object + :type table: any """ _validation = { @@ -38613,15 +40298,15 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - database: Optional[object] = None, - table: Optional[object] = None, + database: Optional[Any] = None, + table: Optional[Any] = None, **kwargs ): super(TeradataTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -38637,40 +40322,40 @@ class TextFormat(DatasetStorageFormat): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset storage format.Constant filled by server. :type type: str :param serializer: Serializer. Type: string (or Expression with resultType string). - :type serializer: object + :type serializer: any :param deserializer: Deserializer. Type: string (or Expression with resultType string). - :type deserializer: object + :type deserializer: any :param column_delimiter: The column delimiter. Type: string (or Expression with resultType string). - :type column_delimiter: object + :type column_delimiter: any :param row_delimiter: The row delimiter. Type: string (or Expression with resultType string). - :type row_delimiter: object + :type row_delimiter: any :param escape_char: The escape character. Type: string (or Expression with resultType string). - :type escape_char: object + :type escape_char: any :param quote_char: The quote character. Type: string (or Expression with resultType string). - :type quote_char: object + :type quote_char: any :param null_value: The null value string. Type: string (or Expression with resultType string). - :type null_value: object + :type null_value: any :param encoding_name: The code page name of the preferred encoding. If miss, the default value is ΓÇ£utf-8ΓÇ¥, unless BOM denotes another Unicode encoding. Refer to the ΓÇ£NameΓÇ¥ column of the table in the following link to set supported values: https://msdn.microsoft.com/library/system.text.encoding.aspx. Type: string (or Expression with resultType string). - :type encoding_name: object + :type encoding_name: any :param treat_empty_as_null: Treat empty column values in the text file as null. The default value is true. Type: boolean (or Expression with resultType boolean). - :type treat_empty_as_null: object + :type treat_empty_as_null: any :param skip_line_count: The number of lines/rows to be skipped when parsing text files. The default value is 0. Type: integer (or Expression with resultType integer). - :type skip_line_count: object + :type skip_line_count: any :param first_row_as_header: When used as input, treat the first row of data as headers. When used as output,write the headers into the output as the first row of data. The default value is false. Type: boolean (or Expression with resultType boolean). - :type first_row_as_header: object + :type first_row_as_header: any """ _validation = { @@ -38696,18 +40381,18 @@ class TextFormat(DatasetStorageFormat): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - serializer: Optional[object] = None, - deserializer: Optional[object] = None, - column_delimiter: Optional[object] = None, - row_delimiter: Optional[object] = None, - escape_char: Optional[object] = None, - quote_char: Optional[object] = None, - null_value: Optional[object] = None, - encoding_name: Optional[object] = None, - treat_empty_as_null: Optional[object] = None, - skip_line_count: Optional[object] = None, - first_row_as_header: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + serializer: Optional[Any] = None, + deserializer: Optional[Any] = None, + column_delimiter: Optional[Any] = None, + row_delimiter: Optional[Any] = None, + escape_char: Optional[Any] = None, + quote_char: Optional[Any] = None, + null_value: Optional[Any] = None, + encoding_name: Optional[Any] = None, + treat_empty_as_null: Optional[Any] = None, + skip_line_count: Optional[Any] = None, + first_row_as_header: Optional[Any] = None, **kwargs ): super(TextFormat, self).__init__(additional_properties=additional_properties, serializer=serializer, deserializer=deserializer, **kwargs) @@ -38828,7 +40513,7 @@ class TriggerPipelineReference(msrest.serialization.Model): :param pipeline_reference: Pipeline reference. :type pipeline_reference: ~azure.mgmt.datafactory.models.PipelineReference :param parameters: Pipeline parameters. - :type parameters: dict[str, object] + :type parameters: dict[str, any] """ _attribute_map = { @@ -38840,7 +40525,7 @@ def __init__( self, *, pipeline_reference: Optional["PipelineReference"] = None, - parameters: Optional[Dict[str, object]] = None, + parameters: Optional[Dict[str, Any]] = None, **kwargs ): super(TriggerPipelineReference, self).__init__(**kwargs) @@ -38888,7 +40573,7 @@ class TriggerReference(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar type: Required. Trigger reference type. Default value: "TriggerReference". + :ivar type: Trigger reference type. Has constant value: "TriggerReference". :vartype type: str :param reference_name: Required. Reference trigger name. :type reference_name: str @@ -38968,7 +40653,7 @@ class TriggerRun(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar trigger_run_id: Trigger run id. :vartype trigger_run_id: str :ivar trigger_name: Trigger name. @@ -38989,7 +40674,7 @@ class TriggerRun(msrest.serialization.Model): :ivar run_dimension: Run dimension for which trigger was fired. :vartype run_dimension: dict[str, str] :ivar dependency_status: Status of the upstream pipelines. - :vartype dependency_status: dict[str, object] + :vartype dependency_status: dict[str, any] """ _validation = { @@ -39022,7 +40707,7 @@ class TriggerRun(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(TriggerRun, self).__init__(**kwargs) @@ -39112,7 +40797,7 @@ class TumblingWindowTrigger(Trigger): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Trigger type.Constant filled by server. :type type: str :param description: Trigger description. @@ -39121,7 +40806,7 @@ class TumblingWindowTrigger(Trigger): called on the Trigger. Possible values include: "Started", "Stopped", "Disabled". :vartype runtime_state: str or ~azure.mgmt.datafactory.models.TriggerRuntimeState :param annotations: List of tags that can be used for describing the trigger. - :type annotations: list[object] + :type annotations: list[any] :param pipeline: Required. Pipeline for which runs are created when an event is fired for trigger window that is ready. :type pipeline: ~azure.mgmt.datafactory.models.TriggerPipelineReference @@ -39140,7 +40825,7 @@ class TumblingWindowTrigger(Trigger): :param delay: Specifies how long the trigger waits past due time before triggering new run. It doesn't alter window start and end time. The default is 0. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type delay: object + :type delay: any :param max_concurrency: Required. The max number of parallel time windows (ready for execution) for which a new run is triggered. :type max_concurrency: int @@ -39186,11 +40871,11 @@ def __init__( interval: int, start_time: datetime.datetime, max_concurrency: int, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, end_time: Optional[datetime.datetime] = None, - delay: Optional[object] = None, + delay: Optional[Any] = None, retry_policy: Optional["RetryPolicy"] = None, depends_on: Optional[List["DependencyReference"]] = None, **kwargs @@ -39258,22 +40943,22 @@ class TypeConversionSettings(msrest.serialization.Model): :param allow_data_truncation: Whether to allow data truncation when converting the data. Type: boolean (or Expression with resultType boolean). - :type allow_data_truncation: object + :type allow_data_truncation: any :param treat_boolean_as_number: Whether to treat boolean values as numbers. Type: boolean (or Expression with resultType boolean). - :type treat_boolean_as_number: object + :type treat_boolean_as_number: any :param date_time_format: The format for DateTime values. Type: string (or Expression with resultType string). - :type date_time_format: object + :type date_time_format: any :param date_time_offset_format: The format for DateTimeOffset values. Type: string (or Expression with resultType string). - :type date_time_offset_format: object + :type date_time_offset_format: any :param time_span_format: The format for TimeSpan values. Type: string (or Expression with resultType string). - :type time_span_format: object + :type time_span_format: any :param culture: The culture used to convert data from/to string. Type: string (or Expression with resultType string). - :type culture: object + :type culture: any """ _attribute_map = { @@ -39288,12 +40973,12 @@ class TypeConversionSettings(msrest.serialization.Model): def __init__( self, *, - allow_data_truncation: Optional[object] = None, - treat_boolean_as_number: Optional[object] = None, - date_time_format: Optional[object] = None, - date_time_offset_format: Optional[object] = None, - time_span_format: Optional[object] = None, - culture: Optional[object] = None, + allow_data_truncation: Optional[Any] = None, + treat_boolean_as_number: Optional[Any] = None, + date_time_format: Optional[Any] = None, + date_time_offset_format: Optional[Any] = None, + time_span_format: Optional[Any] = None, + culture: Optional[Any] = None, **kwargs ): super(TypeConversionSettings, self).__init__(**kwargs) @@ -39305,14 +40990,14 @@ def __init__( self.culture = culture -class UntilActivity(Activity): +class UntilActivity(ControlActivity): """This activity executes inner activities until the specified boolean expression results to true or timeout is reached, whichever is earlier. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -39331,7 +41016,7 @@ class UntilActivity(Activity): Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type timeout: object + :type timeout: any :param activities: Required. List of activities to execute. :type activities: list[~azure.mgmt.datafactory.models.Activity] """ @@ -39361,11 +41046,11 @@ def __init__( name: str, expression: "Expression", activities: List["Activity"], - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, - timeout: Optional[object] = None, + timeout: Optional[Any] = None, **kwargs ): super(UntilActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, **kwargs) @@ -39484,7 +41169,7 @@ class UserProperty(msrest.serialization.Model): :type name: str :param value: Required. User property value. Type: string (or Expression with resultType string). - :type value: object + :type value: any """ _validation = { @@ -39501,7 +41186,7 @@ def __init__( self, *, name: str, - value: object, + value: Any, **kwargs ): super(UserProperty, self).__init__(**kwargs) @@ -39509,14 +41194,14 @@ def __init__( self.value = value -class ValidationActivity(Activity): +class ValidationActivity(ControlActivity): """This activity verifies that an external resource exists. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -39531,17 +41216,17 @@ class ValidationActivity(Activity): it takes the value of TimeSpan.FromDays(7) which is 1 week as default. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type timeout: object + :type timeout: any :param sleep: A delay in seconds between validation attempts. If no value is specified, 10 seconds will be used as the default. Type: integer (or Expression with resultType integer). - :type sleep: object + :type sleep: any :param minimum_size: Can be used if dataset points to a file. The file must be greater than or equal in size to the value specified. Type: integer (or Expression with resultType integer). - :type minimum_size: object + :type minimum_size: any :param child_items: Can be used if dataset points to a folder. If set to true, the folder must have at least one file. If set to false, the folder must be empty. Type: boolean (or Expression with resultType boolean). - :type child_items: object + :type child_items: any :param dataset: Required. Validation activity dataset reference. :type dataset: ~azure.mgmt.datafactory.models.DatasetReference """ @@ -39571,14 +41256,14 @@ def __init__( *, name: str, dataset: "DatasetReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, - timeout: Optional[object] = None, - sleep: Optional[object] = None, - minimum_size: Optional[object] = None, - child_items: Optional[object] = None, + timeout: Optional[Any] = None, + sleep: Optional[Any] = None, + minimum_size: Optional[Any] = None, + child_items: Optional[Any] = None, **kwargs ): super(ValidationActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, **kwargs) @@ -39598,7 +41283,7 @@ class VariableSpecification(msrest.serialization.Model): :param type: Required. Variable type. Possible values include: "String", "Bool", "Array". :type type: str or ~azure.mgmt.datafactory.models.VariableType :param default_value: Default value of variable. - :type default_value: object + :type default_value: any """ _validation = { @@ -39614,7 +41299,7 @@ def __init__( self, *, type: Union[str, "VariableType"], - default_value: Optional[object] = None, + default_value: Optional[Any] = None, **kwargs ): super(VariableSpecification, self).__init__(**kwargs) @@ -39629,7 +41314,7 @@ class VerticaLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -39639,16 +41324,16 @@ class VerticaLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_string: An ODBC connection string. Type: string, SecureString or AzureKeyVaultSecretReference. - :type connection_string: object + :type connection_string: any :param pwd: The Azure key vault secret reference of password in connection string. :type pwd: ~azure.mgmt.datafactory.models.AzureKeyVaultSecretReference :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -39670,14 +41355,14 @@ class VerticaLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_string: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_string: Optional[Any] = None, pwd: Optional["AzureKeyVaultSecretReference"] = None, - encrypted_credential: Optional[object] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(VerticaLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -39694,27 +41379,30 @@ class VerticaSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -39727,6 +41415,7 @@ class VerticaSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -39735,16 +41424,17 @@ class VerticaSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(VerticaSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(VerticaSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'VerticaSource' # type: str self.query = query @@ -39756,35 +41446,35 @@ class VerticaTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: This property will be retired. Please consider using schema + table properties instead. - :type table_name: object + :type table_name: any :param table: The table name of the Vertica. Type: string (or Expression with resultType string). - :type table: object + :type table: any :param schema_type_properties_schema: The schema name of the Vertica. Type: string (or Expression with resultType string). - :type schema_type_properties_schema: object + :type schema_type_properties_schema: any """ _validation = { @@ -39811,16 +41501,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, - table: Optional[object] = None, - schema_type_properties_schema: Optional[object] = None, + table_name: Optional[Any] = None, + table: Optional[Any] = None, + schema_type_properties_schema: Optional[Any] = None, **kwargs ): super(VerticaTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -39830,14 +41520,14 @@ def __init__( self.schema_type_properties_schema = schema_type_properties_schema -class WaitActivity(Activity): +class WaitActivity(ControlActivity): """This activity suspends pipeline execution for the specified interval. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -39849,7 +41539,7 @@ class WaitActivity(Activity): :param user_properties: Activity user properties. :type user_properties: list[~azure.mgmt.datafactory.models.UserProperty] :param wait_time_in_seconds: Required. Duration in seconds. - :type wait_time_in_seconds: object + :type wait_time_in_seconds: any """ _validation = { @@ -39872,8 +41562,8 @@ def __init__( self, *, name: str, - wait_time_in_seconds: object, - additional_properties: Optional[Dict[str, object]] = None, + wait_time_in_seconds: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, @@ -39891,7 +41581,7 @@ class WebActivity(ExecutionActivity): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -39911,14 +41601,14 @@ class WebActivity(ExecutionActivity): :type method: str or ~azure.mgmt.datafactory.models.WebActivityMethod :param url: Required. Web activity target endpoint and path. Type: string (or Expression with resultType string). - :type url: object + :type url: any :param headers: Represents the headers that will be sent to the request. For example, to set the language and type on a request: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Type: string (or Expression with resultType string). - :type headers: object + :type headers: any :param body: Represents the payload that will be sent to the endpoint. Required for POST/PUT method, not allowed for GET method Type: string (or Expression with resultType string). - :type body: object + :type body: any :param authentication: Authentication method used for calling the endpoint. :type authentication: ~azure.mgmt.datafactory.models.WebActivityAuthentication :param datasets: List of datasets passed to web endpoint. @@ -39960,15 +41650,15 @@ def __init__( *, name: str, method: Union[str, "WebActivityMethod"], - url: object, - additional_properties: Optional[Dict[str, object]] = None, + url: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, linked_service_name: Optional["LinkedServiceReference"] = None, policy: Optional["ActivityPolicy"] = None, - headers: Optional[object] = None, - body: Optional[object] = None, + headers: Optional[Any] = None, + body: Optional[Any] = None, authentication: Optional["WebActivityAuthentication"] = None, datasets: Optional[List["DatasetReference"]] = None, linked_services: Optional[List["LinkedServiceReference"]] = None, @@ -39990,32 +41680,27 @@ def __init__( class WebActivityAuthentication(msrest.serialization.Model): """Web activity authentication properties. - All required parameters must be populated in order to send to Azure. - - :param type: Required. Web activity authentication - (Basic/ClientCertificate/MSI/ServicePrincipal). + :param type: Web activity authentication (Basic/ClientCertificate/MSI/ServicePrincipal). :type type: str :param pfx: Base64-encoded contents of a PFX file or Certificate when used for ServicePrincipal. :type pfx: ~azure.mgmt.datafactory.models.SecretBase :param username: Web activity authentication user name for basic authentication or ClientID when used for ServicePrincipal. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Password for the PFX file or basic authentication / Secret when used for ServicePrincipal. :type password: ~azure.mgmt.datafactory.models.SecretBase :param resource: Resource for which Azure Auth token will be requested when using MSI Authentication. Type: string (or Expression with resultType string). - :type resource: object + :type resource: any :param user_tenant: TenantId for which Azure Auth token will be requested when using ServicePrincipal Authentication. Type: string (or Expression with resultType string). - :type user_tenant: object + :type user_tenant: any + :param credential: The credential reference containing authentication information. + :type credential: ~azure.mgmt.datafactory.models.CredentialReference """ - _validation = { - 'type': {'required': True}, - } - _attribute_map = { 'type': {'key': 'type', 'type': 'str'}, 'pfx': {'key': 'pfx', 'type': 'SecretBase'}, @@ -40023,17 +41708,19 @@ class WebActivityAuthentication(msrest.serialization.Model): 'password': {'key': 'password', 'type': 'SecretBase'}, 'resource': {'key': 'resource', 'type': 'object'}, 'user_tenant': {'key': 'userTenant', 'type': 'object'}, + 'credential': {'key': 'credential', 'type': 'CredentialReference'}, } def __init__( self, *, - type: str, + type: Optional[str] = None, pfx: Optional["SecretBase"] = None, - username: Optional[object] = None, + username: Optional[Any] = None, password: Optional["SecretBase"] = None, - resource: Optional[object] = None, - user_tenant: Optional[object] = None, + resource: Optional[Any] = None, + user_tenant: Optional[Any] = None, + credential: Optional["CredentialReference"] = None, **kwargs ): super(WebActivityAuthentication, self).__init__(**kwargs) @@ -40043,6 +41730,7 @@ def __init__( self.password = password self.resource = resource self.user_tenant = user_tenant + self.credential = credential class WebLinkedServiceTypeProperties(msrest.serialization.Model): @@ -40055,7 +41743,7 @@ class WebLinkedServiceTypeProperties(msrest.serialization.Model): :param url: Required. The URL of the web service endpoint, e.g. http://www.microsoft.com . Type: string (or Expression with resultType string). - :type url: object + :type url: any :param authentication_type: Required. Type of authentication used to connect to the web table source.Constant filled by server. Possible values include: "Basic", "Anonymous", "ClientCertificate". @@ -40079,7 +41767,7 @@ class WebLinkedServiceTypeProperties(msrest.serialization.Model): def __init__( self, *, - url: object, + url: Any, **kwargs ): super(WebLinkedServiceTypeProperties, self).__init__(**kwargs) @@ -40094,7 +41782,7 @@ class WebAnonymousAuthentication(WebLinkedServiceTypeProperties): :param url: Required. The URL of the web service endpoint, e.g. http://www.microsoft.com . Type: string (or Expression with resultType string). - :type url: object + :type url: any :param authentication_type: Required. Type of authentication used to connect to the web table source.Constant filled by server. Possible values include: "Basic", "Anonymous", "ClientCertificate". @@ -40114,7 +41802,7 @@ class WebAnonymousAuthentication(WebLinkedServiceTypeProperties): def __init__( self, *, - url: object, + url: Any, **kwargs ): super(WebAnonymousAuthentication, self).__init__(url=url, **kwargs) @@ -40128,14 +41816,14 @@ class WebBasicAuthentication(WebLinkedServiceTypeProperties): :param url: Required. The URL of the web service endpoint, e.g. http://www.microsoft.com . Type: string (or Expression with resultType string). - :type url: object + :type url: any :param authentication_type: Required. Type of authentication used to connect to the web table source.Constant filled by server. Possible values include: "Basic", "Anonymous", "ClientCertificate". :type authentication_type: str or ~azure.mgmt.datafactory.models.WebAuthenticationType :param username: Required. User name for Basic authentication. Type: string (or Expression with resultType string). - :type username: object + :type username: any :param password: Required. The password for Basic authentication. :type password: ~azure.mgmt.datafactory.models.SecretBase """ @@ -40157,8 +41845,8 @@ class WebBasicAuthentication(WebLinkedServiceTypeProperties): def __init__( self, *, - url: object, - username: object, + url: Any, + username: Any, password: "SecretBase", **kwargs ): @@ -40175,7 +41863,7 @@ class WebClientCertificateAuthentication(WebLinkedServiceTypeProperties): :param url: Required. The URL of the web service endpoint, e.g. http://www.microsoft.com . Type: string (or Expression with resultType string). - :type url: object + :type url: any :param authentication_type: Required. Type of authentication used to connect to the web table source.Constant filled by server. Possible values include: "Basic", "Anonymous", "ClientCertificate". @@ -40203,7 +41891,7 @@ class WebClientCertificateAuthentication(WebLinkedServiceTypeProperties): def __init__( self, *, - url: object, + url: Any, pfx: "SecretBase", password: "SecretBase", **kwargs @@ -40214,14 +41902,14 @@ def __init__( self.password = password -class WebHookActivity(Activity): +class WebHookActivity(ControlActivity): """WebHook activity. 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] + :type additional_properties: dict[str, any] :param name: Required. Activity name. :type name: str :param type: Required. Type of activity.Constant filled by server. @@ -40236,7 +41924,7 @@ class WebHookActivity(Activity): :type method: str or ~azure.mgmt.datafactory.models.WebHookActivityMethod :param url: Required. WebHook activity target endpoint and path. Type: string (or Expression with resultType string). - :type url: object + :type url: any :param timeout: The timeout within which the webhook should be called back. If there is no value specified, it defaults to 10 minutes. Type: string. Pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). @@ -40244,17 +41932,17 @@ class WebHookActivity(Activity): :param headers: Represents the headers that will be sent to the request. For example, to set the language and type on a request: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Type: string (or Expression with resultType string). - :type headers: object + :type headers: any :param body: Represents the payload that will be sent to the endpoint. Required for POST/PUT method, not allowed for GET method Type: string (or Expression with resultType string). - :type body: object + :type body: any :param authentication: Authentication method used for calling the endpoint. :type authentication: ~azure.mgmt.datafactory.models.WebActivityAuthentication :param report_status_on_call_back: When set to true, statusCode, output and error in callback request body will be consumed by activity. The activity can be marked as failed by setting statusCode >= 400 in callback request. Default is false. Type: boolean (or Expression with resultType boolean). - :type report_status_on_call_back: object + :type report_status_on_call_back: any """ _validation = { @@ -40285,16 +41973,16 @@ def __init__( *, name: str, method: Union[str, "WebHookActivityMethod"], - url: object, - additional_properties: Optional[Dict[str, object]] = None, + url: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, depends_on: Optional[List["ActivityDependency"]] = None, user_properties: Optional[List["UserProperty"]] = None, timeout: Optional[str] = None, - headers: Optional[object] = None, - body: Optional[object] = None, + headers: Optional[Any] = None, + body: Optional[Any] = None, authentication: Optional["WebActivityAuthentication"] = None, - report_status_on_call_back: Optional[object] = None, + report_status_on_call_back: Optional[Any] = None, **kwargs ): super(WebHookActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, **kwargs) @@ -40315,7 +42003,7 @@ class WebLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -40325,7 +42013,7 @@ class WebLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param type_properties: Required. Web linked service properties. :type type_properties: ~azure.mgmt.datafactory.models.WebLinkedServiceTypeProperties """ @@ -40349,11 +42037,11 @@ def __init__( self, *, type_properties: "WebLinkedServiceTypeProperties", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, **kwargs ): super(WebLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -40368,18 +42056,21 @@ class WebSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] @@ -40395,20 +42086,22 @@ class WebSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, } def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(WebSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(WebSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'WebSource' # type: str self.additional_columns = additional_columns @@ -40420,32 +42113,32 @@ class WebTableDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param index: Required. The zero-based index of the table in the web page. Type: integer (or Expression with resultType integer), minimum: 0. - :type index: object + :type index: any :param path: The relative URL to the web page from the linked service URL. Type: string (or Expression with resultType string). - :type path: object + :type path: any """ _validation = { @@ -40472,15 +42165,15 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - index: object, - additional_properties: Optional[Dict[str, object]] = None, + index: Any, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - path: Optional[object] = None, + path: Optional[Any] = None, **kwargs ): super(WebTableDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -40496,7 +42189,7 @@ class XeroLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -40506,12 +42199,12 @@ class XeroLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_properties: Properties used to connect to Xero. It is mutually exclusive with any other properties in the linked service. Type: object. - :type connection_properties: object + :type connection_properties: any :param host: The endpoint of the Xero server. (i.e. api.xero.com). - :type host: object + :type host: any :param consumer_key: The consumer key associated with the Xero application. :type consumer_key: ~azure.mgmt.datafactory.models.SecretBase :param private_key: The private key from the .pem file that was generated for your Xero private @@ -40520,18 +42213,18 @@ class XeroLinkedService(LinkedService): :type private_key: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -40558,19 +42251,19 @@ class XeroLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_properties: Optional[object] = None, - host: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_properties: Optional[Any] = None, + host: Optional[Any] = None, consumer_key: Optional["SecretBase"] = None, private_key: Optional["SecretBase"] = None, - use_encrypted_endpoints: Optional[object] = None, - use_host_verification: Optional[object] = None, - use_peer_verification: Optional[object] = None, - encrypted_credential: Optional[object] = None, + use_encrypted_endpoints: Optional[Any] = None, + use_host_verification: Optional[Any] = None, + use_peer_verification: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(XeroLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -40592,28 +42285,28 @@ class XeroObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -40638,14 +42331,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(XeroObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -40660,27 +42353,30 @@ class XeroSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -40693,6 +42389,7 @@ class XeroSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -40701,16 +42398,17 @@ class XeroSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(XeroSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(XeroSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'XeroSource' # type: str self.query = query @@ -40722,23 +42420,23 @@ class XmlDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder @@ -40749,9 +42447,9 @@ class XmlDataset(Dataset): of the table in the following link to set supported values: https://msdn.microsoft.com/library/system.text.encoding.aspx. Type: string (or Expression with resultType string). - :type encoding_name: object + :type encoding_name: any :param null_value: The null value string. Type: string (or Expression with resultType string). - :type null_value: object + :type null_value: any :param compression: The data compression method used for the json dataset. :type compression: ~azure.mgmt.datafactory.models.DatasetCompression """ @@ -40781,16 +42479,16 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, location: Optional["DatasetLocation"] = None, - encoding_name: Optional[object] = None, - null_value: Optional[object] = None, + encoding_name: Optional[Any] = None, + null_value: Optional[Any] = None, compression: Optional["DatasetCompression"] = None, **kwargs ): @@ -40809,25 +42507,25 @@ class XmlReadSettings(FormatReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The read setting type.Constant filled by server. :type type: str :param compression_properties: Compression settings. :type compression_properties: ~azure.mgmt.datafactory.models.CompressionReadSettings :param validation_mode: Indicates what validation method is used when reading the xml files. Allowed values: 'none', 'xsd', or 'dtd'. Type: string (or Expression with resultType string). - :type validation_mode: object + :type validation_mode: any :param detect_data_type: Indicates whether type detection is enabled when reading the xml files. Type: boolean (or Expression with resultType boolean). - :type detect_data_type: object + :type detect_data_type: any :param namespaces: Indicates whether namespace is enabled when reading the xml files. Type: boolean (or Expression with resultType boolean). - :type namespaces: object + :type namespaces: any :param namespace_prefixes: Namespace uri to prefix mappings to override the prefixes in column names when namespace is enabled, if no prefix is defined for a namespace uri, the prefix of xml element/attribute name in the xml data file will be used. Example: "{"http://www.example.com/xml":"prefix"}" Type: object (or Expression with resultType object). - :type namespace_prefixes: object + :type namespace_prefixes: any """ _validation = { @@ -40847,12 +42545,12 @@ class XmlReadSettings(FormatReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, compression_properties: Optional["CompressionReadSettings"] = None, - validation_mode: Optional[object] = None, - detect_data_type: Optional[object] = None, - namespaces: Optional[object] = None, - namespace_prefixes: Optional[object] = None, + validation_mode: Optional[Any] = None, + detect_data_type: Optional[Any] = None, + namespaces: Optional[Any] = None, + namespace_prefixes: Optional[Any] = None, **kwargs ): super(XmlReadSettings, self).__init__(additional_properties=additional_properties, **kwargs) @@ -40871,18 +42569,21 @@ class XmlSource(CopySource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param store_settings: Xml store settings. :type store_settings: ~azure.mgmt.datafactory.models.StoreReadSettings :param format_settings: Xml format settings. @@ -40902,6 +42603,7 @@ class XmlSource(CopySource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'store_settings': {'key': 'storeSettings', 'type': 'StoreReadSettings'}, 'format_settings': {'key': 'formatSettings', 'type': 'XmlReadSettings'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, @@ -40910,16 +42612,17 @@ class XmlSource(CopySource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, store_settings: Optional["StoreReadSettings"] = None, format_settings: Optional["XmlReadSettings"] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, **kwargs ): - super(XmlSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, **kwargs) + super(XmlSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, **kwargs) self.type = 'XmlSource' # type: str self.store_settings = store_settings self.format_settings = format_settings @@ -40933,12 +42636,12 @@ class ZipDeflateReadSettings(CompressionReadSettings): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. The Compression setting type.Constant filled by server. :type type: str :param preserve_zip_file_name_as_folder: Preserve the zip file name as folder path. Type: boolean (or Expression with resultType boolean). - :type preserve_zip_file_name_as_folder: object + :type preserve_zip_file_name_as_folder: any """ _validation = { @@ -40954,8 +42657,8 @@ class ZipDeflateReadSettings(CompressionReadSettings): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - preserve_zip_file_name_as_folder: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + preserve_zip_file_name_as_folder: Optional[Any] = None, **kwargs ): super(ZipDeflateReadSettings, self).__init__(additional_properties=additional_properties, **kwargs) @@ -40970,7 +42673,7 @@ class ZohoLinkedService(LinkedService): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of linked service.Constant filled by server. :type type: str :param connect_via: The integration runtime reference. @@ -40980,28 +42683,28 @@ class ZohoLinkedService(LinkedService): :param parameters: Parameters for linked service. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the linked service. - :type annotations: list[object] + :type annotations: list[any] :param connection_properties: Properties used to connect to Zoho. It is mutually exclusive with any other properties in the linked service. Type: object. - :type connection_properties: object + :type connection_properties: any :param endpoint: The endpoint of the Zoho server. (i.e. crm.zoho.com/crm/private). - :type endpoint: object + :type endpoint: any :param access_token: The access token for Zoho authentication. :type access_token: ~azure.mgmt.datafactory.models.SecretBase :param use_encrypted_endpoints: Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true. - :type use_encrypted_endpoints: object + :type use_encrypted_endpoints: any :param use_host_verification: Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true. - :type use_host_verification: object + :type use_host_verification: any :param use_peer_verification: Specifies whether to verify the identity of the server when connecting over SSL. The default value is true. - :type use_peer_verification: object + :type use_peer_verification: any :param encrypted_credential: The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string). - :type encrypted_credential: object + :type encrypted_credential: any """ _validation = { @@ -41027,18 +42730,18 @@ class ZohoLinkedService(LinkedService): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, connect_via: Optional["IntegrationRuntimeReference"] = None, description: Optional[str] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, - connection_properties: Optional[object] = None, - endpoint: Optional[object] = None, + annotations: Optional[List[Any]] = None, + connection_properties: Optional[Any] = None, + endpoint: Optional[Any] = None, access_token: Optional["SecretBase"] = None, - use_encrypted_endpoints: Optional[object] = None, - use_host_verification: Optional[object] = None, - use_peer_verification: Optional[object] = None, - encrypted_credential: Optional[object] = None, + use_encrypted_endpoints: Optional[Any] = None, + use_host_verification: Optional[Any] = None, + use_peer_verification: Optional[Any] = None, + encrypted_credential: Optional[Any] = None, **kwargs ): super(ZohoLinkedService, self).__init__(additional_properties=additional_properties, connect_via=connect_via, description=description, parameters=parameters, annotations=annotations, **kwargs) @@ -41059,28 +42762,28 @@ class ZohoObjectDataset(Dataset): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Type of dataset.Constant filled by server. :type type: str :param description: Dataset description. :type description: str :param structure: Columns that define the structure of the dataset. Type: array (or Expression with resultType array), itemType: DatasetDataElement. - :type structure: object + :type structure: any :param schema: Columns that define the physical type schema of the dataset. Type: array (or Expression with resultType array), itemType: DatasetSchemaDataElement. - :type schema: object + :type schema: any :param linked_service_name: Required. Linked service reference. :type linked_service_name: ~azure.mgmt.datafactory.models.LinkedServiceReference :param parameters: Parameters for dataset. :type parameters: dict[str, ~azure.mgmt.datafactory.models.ParameterSpecification] :param annotations: List of tags that can be used for describing the Dataset. - :type annotations: list[object] + :type annotations: list[any] :param folder: The folder that this Dataset is in. If not specified, Dataset will appear at the root level. :type folder: ~azure.mgmt.datafactory.models.DatasetFolder :param table_name: The table name. Type: string (or Expression with resultType string). - :type table_name: object + :type table_name: any """ _validation = { @@ -41105,14 +42808,14 @@ def __init__( self, *, linked_service_name: "LinkedServiceReference", - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, description: Optional[str] = None, - structure: Optional[object] = None, - schema: Optional[object] = None, + structure: Optional[Any] = None, + schema: Optional[Any] = None, parameters: Optional[Dict[str, "ParameterSpecification"]] = None, - annotations: Optional[List[object]] = None, + annotations: Optional[List[Any]] = None, folder: Optional["DatasetFolder"] = None, - table_name: Optional[object] = None, + table_name: Optional[Any] = None, **kwargs ): super(ZohoObjectDataset, self).__init__(additional_properties=additional_properties, description=description, structure=structure, schema=schema, linked_service_name=linked_service_name, parameters=parameters, annotations=annotations, folder=folder, **kwargs) @@ -41127,27 +42830,30 @@ class ZohoSource(TabularSource): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param type: Required. Copy source type.Constant filled by server. :type type: str :param source_retry_count: Source retry count. Type: integer (or Expression with resultType integer). - :type source_retry_count: object + :type source_retry_count: any :param source_retry_wait: Source retry wait. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type source_retry_wait: object + :type source_retry_wait: any :param max_concurrent_connections: The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer). - :type max_concurrent_connections: object + :type max_concurrent_connections: any + :param disable_metrics_collection: If true, disable data store metrics collection. Default is + false. Type: boolean (or Expression with resultType boolean). + :type disable_metrics_collection: any :param query_timeout: Query timeout. Type: string (or Expression with resultType string), pattern: ((\d+).)?(\d\d):(60|([0-5][0-9])):(60|([0-5][0-9])). - :type query_timeout: object + :type query_timeout: any :param additional_columns: Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects). :type additional_columns: list[~azure.mgmt.datafactory.models.AdditionalColumns] :param query: A query to retrieve data from source. Type: string (or Expression with resultType string). - :type query: object + :type query: any """ _validation = { @@ -41160,6 +42866,7 @@ class ZohoSource(TabularSource): 'source_retry_count': {'key': 'sourceRetryCount', 'type': 'object'}, 'source_retry_wait': {'key': 'sourceRetryWait', 'type': 'object'}, 'max_concurrent_connections': {'key': 'maxConcurrentConnections', 'type': 'object'}, + 'disable_metrics_collection': {'key': 'disableMetricsCollection', 'type': 'object'}, 'query_timeout': {'key': 'queryTimeout', 'type': 'object'}, 'additional_columns': {'key': 'additionalColumns', 'type': '[AdditionalColumns]'}, 'query': {'key': 'query', 'type': 'object'}, @@ -41168,15 +42875,16 @@ class ZohoSource(TabularSource): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, - source_retry_count: Optional[object] = None, - source_retry_wait: Optional[object] = None, - max_concurrent_connections: Optional[object] = None, - query_timeout: Optional[object] = None, + additional_properties: Optional[Dict[str, Any]] = None, + source_retry_count: Optional[Any] = None, + source_retry_wait: Optional[Any] = None, + max_concurrent_connections: Optional[Any] = None, + disable_metrics_collection: Optional[Any] = None, + query_timeout: Optional[Any] = None, additional_columns: Optional[List["AdditionalColumns"]] = None, - query: Optional[object] = None, + query: Optional[Any] = None, **kwargs ): - super(ZohoSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) + super(ZohoSource, self).__init__(additional_properties=additional_properties, source_retry_count=source_retry_count, source_retry_wait=source_retry_wait, max_concurrent_connections=max_concurrent_connections, disable_metrics_collection=disable_metrics_collection, query_timeout=query_timeout, additional_columns=additional_columns, **kwargs) self.type = 'ZohoSource' # type: str self.query = query diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/__init__.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/__init__.py index 95d268579097..c1da8c996a37 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/__init__.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/__init__.py @@ -23,6 +23,9 @@ from ._data_flow_debug_session_operations import DataFlowDebugSessionOperations from ._managed_virtual_networks_operations import ManagedVirtualNetworksOperations from ._managed_private_endpoints_operations import ManagedPrivateEndpointsOperations +from ._private_end_point_connections_operations import PrivateEndPointConnectionsOperations +from ._private_endpoint_connection_operations import PrivateEndpointConnectionOperations +from ._private_link_resources_operations import PrivateLinkResourcesOperations __all__ = [ 'Operations', @@ -42,4 +45,7 @@ 'DataFlowDebugSessionOperations', 'ManagedVirtualNetworksOperations', 'ManagedPrivateEndpointsOperations', + 'PrivateEndPointConnectionsOperations', + 'PrivateEndpointConnectionOperations', + 'PrivateLinkResourcesOperations', ] diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_data_flow_debug_session_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_data_flow_debug_session_operations.py index d0fab6301f48..84375fcbae30 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_data_flow_debug_session_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_data_flow_debug_session_operations.py @@ -125,8 +125,8 @@ def begin_create( :type request: ~azure.mgmt.datafactory.models.CreateDataFlowDebugSessionRequest :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 CreateDataFlowDebugSessionResponse or the result of cls(response) @@ -463,8 +463,8 @@ def begin_execute_command( :type request: ~azure.mgmt.datafactory.models.DataFlowDebugCommandRequest :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 DataFlowDebugCommandResponse or the result of cls(response) diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_integration_runtime_object_metadata_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_integration_runtime_object_metadata_operations.py index 946dc71cc0b8..0a38967fb5e5 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_integration_runtime_object_metadata_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_integration_runtime_object_metadata_operations.py @@ -116,8 +116,8 @@ def begin_refresh( :type integration_runtime_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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 SsisObjectMetadataStatusResponse or the result of cls(response) diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_integration_runtimes_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_integration_runtimes_operations.py index 355d49199c50..9d19f1015005 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_integration_runtimes_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_integration_runtimes_operations.py @@ -734,8 +734,8 @@ def begin_start( :type integration_runtime_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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 IntegrationRuntimeStatusResponse or the result of cls(response) @@ -854,8 +854,8 @@ def begin_stop( :type integration_runtime_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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_pipelines_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_pipelines_operations.py index 7a94f770ac76..7f972501d499 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_pipelines_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_pipelines_operations.py @@ -337,7 +337,7 @@ def create_run( is_recovery=None, # type: Optional[bool] start_activity_name=None, # type: Optional[str] start_from_failure=None, # type: Optional[bool] - parameters=None, # type: Optional[Dict[str, object]] + parameters=None, # type: Optional[Dict[str, Any]] **kwargs # type: Any ): # type: (...) -> "_models.CreateRunResponse" @@ -363,7 +363,7 @@ def create_run( :type start_from_failure: bool :param parameters: Parameters of the pipeline run. These parameters will be used only if the runId is not specified. - :type parameters: dict[str, object] + :type parameters: dict[str, any] :keyword callable cls: A custom type or function that will be passed the direct response :return: CreateRunResponse, or the result of cls(response) :rtype: ~azure.mgmt.datafactory.models.CreateRunResponse diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_private_end_point_connections_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_private_end_point_connections_operations.py new file mode 100644 index 000000000000..4f8b24284394 --- /dev/null +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_private_end_point_connections_operations.py @@ -0,0 +1,121 @@ +# 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 PrivateEndPointConnectionsOperations(object): + """PrivateEndPointConnectionsOperations 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.datafactory.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_factory( + self, + resource_group_name, # type: str + factory_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.PrivateEndpointConnectionListResponse"] + """Lists Private endpoint connections. + + :param resource_group_name: The resource group name. + :type resource_group_name: str + :param factory_name: The factory name. + :type factory_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PrivateEndpointConnectionListResponse or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.datafactory.models.PrivateEndpointConnectionListResponse] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionListResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + 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_factory.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'factoryName': self._serialize.url("factory_name", factory_name, 'str', max_length=63, min_length=3, 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('PrivateEndpointConnectionListResponse', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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_factory.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/privateEndPointConnections'} # type: ignore diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_private_endpoint_connection_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_private_endpoint_connection_operations.py new file mode 100644 index 000000000000..deb6a5acb95e --- /dev/null +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_private_endpoint_connection_operations.py @@ -0,0 +1,252 @@ +# 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.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, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class PrivateEndpointConnectionOperations(object): + """PrivateEndpointConnectionOperations 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.datafactory.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 create_or_update( + self, + resource_group_name, # type: str + factory_name, # type: str + private_endpoint_connection_name, # type: str + private_endpoint_wrapper, # type: "_models.PrivateLinkConnectionApprovalRequestResource" + if_match=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.PrivateEndpointConnectionResource" + """Approves or rejects a private endpoint connection. + + :param resource_group_name: The resource group name. + :type resource_group_name: str + :param factory_name: The factory name. + :type factory_name: str + :param private_endpoint_connection_name: The private endpoint connection name. + :type private_endpoint_connection_name: str + :param private_endpoint_wrapper: + :type private_endpoint_wrapper: ~azure.mgmt.datafactory.models.PrivateLinkConnectionApprovalRequestResource + :param if_match: ETag of the private endpoint connection entity. Should only be specified for + update, for which it should match existing entity or can be * for unconditional update. + :type if_match: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateEndpointConnectionResource, or the result of cls(response) + :rtype: ~azure.mgmt.datafactory.models.PrivateEndpointConnectionResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'factoryName': self._serialize.url("factory_name", factory_name, 'str', max_length=63, min_length=3, pattern=r'^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_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] + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + 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(private_endpoint_wrapper, 'PrivateLinkConnectionApprovalRequestResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateEndpointConnectionResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def get( + self, + resource_group_name, # type: str + factory_name, # type: str + private_endpoint_connection_name, # type: str + if_none_match=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.PrivateEndpointConnectionResource" + """Gets a private endpoint connection. + + :param resource_group_name: The resource group name. + :type resource_group_name: str + :param factory_name: The factory name. + :type factory_name: str + :param private_endpoint_connection_name: The private endpoint connection name. + :type private_endpoint_connection_name: str + :param if_none_match: ETag of the private endpoint connection entity. Should only be specified + for get. If the ETag matches the existing entity tag, or if * was provided, then no content + will be returned. + :type if_none_match: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateEndpointConnectionResource, or the result of cls(response) + :rtype: ~azure.mgmt.datafactory.models.PrivateEndpointConnectionResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'factoryName': self._serialize.url("factory_name", factory_name, 'str', max_length=63, min_length=3, pattern=r'^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_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] + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + 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('PrivateEndpointConnectionResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def delete( + self, + resource_group_name, # type: str + factory_name, # type: str + private_endpoint_connection_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a private endpoint connection. + + :param resource_group_name: The resource group name. + :type resource_group_name: str + :param factory_name: The factory name. + :type factory_name: str + :param private_endpoint_connection_name: The private endpoint connection name. + :type private_endpoint_connection_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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 = "2018-06-01" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'factoryName': self._serialize.url("factory_name", factory_name, 'str', max_length=63, min_length=3, pattern=r'^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_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['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, 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_private_link_resources_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_private_link_resources_operations.py new file mode 100644 index 000000000000..125681ace87f --- /dev/null +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_private_link_resources_operations.py @@ -0,0 +1,104 @@ +# 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.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, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class PrivateLinkResourcesOperations(object): + """PrivateLinkResourcesOperations 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.datafactory.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 get( + self, + resource_group_name, # type: str + factory_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PrivateLinkResourcesWrapper" + """Gets the private link resources. + + :param resource_group_name: The resource group name. + :type resource_group_name: str + :param factory_name: The factory name. + :type factory_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateLinkResourcesWrapper, or the result of cls(response) + :rtype: ~azure.mgmt.datafactory.models.PrivateLinkResourcesWrapper + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourcesWrapper"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2018-06-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'factoryName': self._serialize.url("factory_name", factory_name, 'str', max_length=63, min_length=3, 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('PrivateLinkResourcesWrapper', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/privateLinkResources'} # type: ignore diff --git a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_triggers_operations.py b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_triggers_operations.py index 6b8c088bb279..cbc17f0eb3e8 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_triggers_operations.py +++ b/sdk/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory/operations/_triggers_operations.py @@ -467,8 +467,8 @@ def begin_subscribe_to_events( :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 TriggerSubscriptionOperationStatus or the result of cls(response) @@ -655,8 +655,8 @@ def begin_unsubscribe_from_events( :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 TriggerSubscriptionOperationStatus or the result of cls(response) @@ -775,8 +775,8 @@ def begin_start( :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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) @@ -892,8 +892,8 @@ def begin_stop( :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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/datafactory/azure-mgmt-datafactory/setup.py b/sdk/datafactory/azure-mgmt-datafactory/setup.py index 87b38fbaf8ea..898f54389c04 100644 --- a/sdk/datafactory/azure-mgmt-datafactory/setup.py +++ b/sdk/datafactory/azure-mgmt-datafactory/setup.py @@ -78,7 +78,7 @@ 'azure.mgmt', ]), install_requires=[ - 'msrest>=0.5.0', + 'msrest>=0.6.21', 'azure-common~=1.1', 'azure-mgmt-core>=1.2.0,<2.0.0', ], diff --git a/shared_requirements.txt b/shared_requirements.txt index 26a127508071..e88ebb92612e 100644 --- a/shared_requirements.txt +++ b/shared_requirements.txt @@ -328,6 +328,7 @@ opentelemetry-sdk<2.0.0,>=1.0.0 #override azure-mgmt-guestconfig msrest>=0.6.21 #override azure-mgmt-recoveryservices msrest>=0.6.21 #override azure-mgmt-avs msrest>=0.6.21 +#override azure-mgmt-datafactory msrest>=0.6.21 #override azure-mgmt-containerinstance msrest>=0.6.21 #override azure-mgmt-recoveryservicessiterecovery msrest>=0.6.21 #override azure-mgmt-batch msrest>=0.6.21 From 7f483db4451bee706656e1746c52ebfde07f1d9b Mon Sep 17 00:00:00 2001 From: Azure CLI Bot Date: Mon, 9 Aug 2021 09:47:36 +0800 Subject: [PATCH 009/104] [AutoRelease] t2-containerservice-2021-08-06-13548 (#20117) * CodeGen from PR 15370 in Azure/azure-rest-api-specs [AKS] Merge dev-containerservice-Microsoft.ContainerService-2021-07-01 to master (#15370) * Adds base for updating Microsoft.ContainerService from version stable/2021-05-01 to version 2021-07-01 * Updates readme * Updates API version in new specs and examples * Modify Swagger to fix the problem of automatically generating ugly names in track 2 (#14758) * update swagger to fix track 2 autogenerated naming issue * fix * update readme for sdk generation * fix lint error * Trigger Build * update readme * Improve AKS Swagger documentation (#14957) * Improve AKS Swagger documentation - This change has already been merged in master for the 2021-05-01 API version. * Fix up custom words * aks: replace CloudError with ManagedClusterPodIdentityProvisioningError for AAD pod identity provisioning spec (#15033) * fix: decouple pod identity provisioning error from cloud error * drop extra external mark * fix linting issue * fix reference * Dev containerservice microsoft.container service 2021 07 01: add SecurityProfile (#15035) * Add SecurityProfile to ManagedClusters * spaces * Space * spaces * json formatting * move from params to defs * :) * just another * now with npm * Descriptions update for AKS July API (#15074) * allow disabling of runcommand (#15092) * allow disabling of runcommand * format error * format with example * change enable to disable * Revert "allow disabling of runcommand (#15092)" (#15147) This reverts commit ec3e241a564d21f5ec914f4aa0b59a96ac7ec0d9. * [AKS] Add NATGatewayProfile to 2021-07-01 API (#15154) * [AKS] Add NATGatewayProfile to 2021-07-01 API * Fix linter errors Co-authored-by: Kaiqi Zhang * Add scaleDownMode to agent pool properties (#15124) * add scale down mode * address comments * fix markdown link * update proper api version * Resolve python markdown conflict & fix typo (#15402) * resolve python conflict & fix typo * resolve conflict Co-authored-by: FumingZhang <81607949+FumingZhang@users.noreply.github.com> Co-authored-by: Matthew Christopher Co-authored-by: hbc Co-authored-by: Or Parnes Co-authored-by: Haitao Chen Co-authored-by: Kaiqi Zhang Co-authored-by: Marwan Ahmed Co-authored-by: Arthur Ning <57385816+akning-ms@users.noreply.github.com> * version,CHANGELOG Co-authored-by: SDKAuto Co-authored-by: FumingZhang <81607949+FumingZhang@users.noreply.github.com> Co-authored-by: Matthew Christopher Co-authored-by: hbc Co-authored-by: Or Parnes Co-authored-by: Haitao Chen Co-authored-by: Kaiqi Zhang Co-authored-by: Marwan Ahmed Co-authored-by: Arthur Ning <57385816+akning-ms@users.noreply.github.com> Co-authored-by: PythonSdkPipelines --- .../azure-mgmt-containerservice/CHANGELOG.md | 10 + .../azure-mgmt-containerservice/_meta.json | 8 +- .../_container_service_client.py | 27 +- .../azure/mgmt/containerservice/_version.py | 2 +- .../aio/_container_service_client.py | 27 +- .../azure/mgmt/containerservice/models.py | 2 +- .../aio/operations/_agent_pools_operations.py | 32 +- .../_maintenance_configurations_operations.py | 14 +- .../_managed_clusters_operations.py | 92 +- .../v2021_05_01/aio/operations/_operations.py | 4 +- ...private_endpoint_connections_operations.py | 15 +- .../_private_link_resources_operations.py | 4 +- ...olve_private_link_service_id_operations.py | 5 +- .../v2021_05_01/models/__init__.py | 9 +- .../models/_container_service_client_enums.py | 164 +- .../v2021_05_01/models/_models.py | 910 ++-- .../v2021_05_01/models/_models_py3.py | 921 ++-- .../operations/_agent_pools_operations.py | 32 +- .../_maintenance_configurations_operations.py | 14 +- .../_managed_clusters_operations.py | 92 +- .../v2021_05_01/operations/_operations.py | 4 +- ...private_endpoint_connections_operations.py | 15 +- .../_private_link_resources_operations.py | 4 +- ...olve_private_link_service_id_operations.py | 5 +- .../containerservice/v2021_07_01/__init__.py | 16 + .../v2021_07_01/_configuration.py | 70 + .../v2021_07_01/_container_service_client.py | 119 + .../v2021_07_01/_metadata.json | 109 + .../v2021_07_01/aio/__init__.py | 10 + .../v2021_07_01/aio/_configuration.py | 66 + .../aio/_container_service_client.py | 112 + .../v2021_07_01/aio/operations/__init__.py | 25 + .../aio/operations/_agent_pools_operations.py | 691 +++ .../_maintenance_configurations_operations.py | 315 ++ .../_managed_clusters_operations.py | 1842 ++++++++ .../v2021_07_01/aio/operations/_operations.py | 106 + ...private_endpoint_connections_operations.py | 358 ++ .../_private_link_resources_operations.py | 102 + ...olve_private_link_service_id_operations.py | 109 + .../v2021_07_01/models/__init__.py | 324 ++ .../models/_container_service_client_enums.py | 560 +++ .../v2021_07_01/models/_models.py | 3678 +++++++++++++++ .../v2021_07_01/models/_models_py3.py | 4115 +++++++++++++++++ .../v2021_07_01/operations/__init__.py | 25 + .../operations/_agent_pools_operations.py | 705 +++ .../_maintenance_configurations_operations.py | 323 ++ .../_managed_clusters_operations.py | 1875 ++++++++ .../v2021_07_01/operations/_operations.py | 111 + ...private_endpoint_connections_operations.py | 367 ++ .../_private_link_resources_operations.py | 107 + ...olve_private_link_service_id_operations.py | 114 + .../containerservice/v2021_07_01/py.typed | 1 + 52 files changed, 17790 insertions(+), 977 deletions(-) create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/__init__.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/_configuration.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/_container_service_client.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/_metadata.json create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/__init__.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/_configuration.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/_container_service_client.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/__init__.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_agent_pools_operations.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_maintenance_configurations_operations.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_managed_clusters_operations.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_operations.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_private_endpoint_connections_operations.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_private_link_resources_operations.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_resolve_private_link_service_id_operations.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/models/__init__.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/models/_container_service_client_enums.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/models/_models.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/models/_models_py3.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/__init__.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_agent_pools_operations.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_maintenance_configurations_operations.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_managed_clusters_operations.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_operations.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_private_endpoint_connections_operations.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_private_link_resources_operations.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_resolve_private_link_service_id_operations.py create mode 100644 sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/py.typed diff --git a/sdk/containerservice/azure-mgmt-containerservice/CHANGELOG.md b/sdk/containerservice/azure-mgmt-containerservice/CHANGELOG.md index 36180902a31f..0f98e3139183 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/CHANGELOG.md +++ b/sdk/containerservice/azure-mgmt-containerservice/CHANGELOG.md @@ -1,5 +1,15 @@ # Release History +## 16.1.0 (2021-08-06) + +**Features** + + - Model ManagedClusterAgentPoolProfile has a new parameter scale_down_mode + - Model ContainerServiceNetworkProfile has a new parameter nat_gateway_profile + - Model ManagedClusterAgentPoolProfileProperties has a new parameter scale_down_mode + - Model ManagedCluster has a new parameter security_profile + - Model AgentPool has a new parameter scale_down_mode + ## 16.0.0 (2021-06-17) **Features** diff --git a/sdk/containerservice/azure-mgmt-containerservice/_meta.json b/sdk/containerservice/azure-mgmt-containerservice/_meta.json index 239763438918..0dbdcb5c2e19 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/_meta.json +++ b/sdk/containerservice/azure-mgmt-containerservice/_meta.json @@ -1,11 +1,11 @@ { - "autorest": "3.4.2", + "autorest": "3.4.5", "use": [ - "@autorest/python@5.8.0", + "@autorest/python@5.8.4", "@autorest/modelerfour@4.19.2" ], - "commit": "1f0bb3f63b1664ace42cfdf646d8b2382d7b7b22", + "commit": "f528ab6315c8d4dd4c36f363851d491798a78146", "repository_url": "https://github.com/Azure/azure-rest-api-specs", - "autorest_command": "autorest specification/containerservice/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.8.0 --use=@autorest/modelerfour@4.19.2 --version=3.4.2", + "autorest_command": "autorest specification/containerservice/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.8.4 --use=@autorest/modelerfour@4.19.2 --version=3.4.5", "readme": "specification/containerservice/resource-manager/readme.md" } \ No newline at end of file diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/_container_service_client.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/_container_service_client.py index e869970cf5d8..7c3ce487fc0e 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/_container_service_client.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/_container_service_client.py @@ -56,7 +56,7 @@ class ContainerServiceClient(MultiApiClientMixin, _SDKClient): :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. """ - DEFAULT_API_VERSION = '2021-05-01' + DEFAULT_API_VERSION = '2021-07-01' _PROFILE_TAG = "azure.mgmt.containerservice.ContainerServiceClient" LATEST_PROFILE = ProfileDefinition({ _PROFILE_TAG: { @@ -118,6 +118,7 @@ def models(cls, api_version=DEFAULT_API_VERSION): * 2021-02-01: :mod:`v2021_02_01.models` * 2021-03-01: :mod:`v2021_03_01.models` * 2021-05-01: :mod:`v2021_05_01.models` + * 2021-07-01: :mod:`v2021_07_01.models` """ if api_version == '2017-07-01': from .v2017_07_01 import models @@ -194,6 +195,9 @@ def models(cls, api_version=DEFAULT_API_VERSION): elif api_version == '2021-05-01': from .v2021_05_01 import models return models + elif api_version == '2021-07-01': + from .v2021_07_01 import models + return models raise ValueError("API version {} is not available".format(api_version)) @property @@ -218,6 +222,7 @@ def agent_pools(self): * 2021-02-01: :class:`AgentPoolsOperations` * 2021-03-01: :class:`AgentPoolsOperations` * 2021-05-01: :class:`AgentPoolsOperations` + * 2021-07-01: :class:`AgentPoolsOperations` """ api_version = self._get_api_version('agent_pools') if api_version == '2019-02-01': @@ -256,6 +261,8 @@ def agent_pools(self): from .v2021_03_01.operations import AgentPoolsOperations as OperationClass elif api_version == '2021-05-01': from .v2021_05_01.operations import AgentPoolsOperations as OperationClass + elif api_version == '2021-07-01': + from .v2021_07_01.operations import AgentPoolsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'agent_pools'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -281,6 +288,7 @@ def maintenance_configurations(self): * 2021-02-01: :class:`MaintenanceConfigurationsOperations` * 2021-03-01: :class:`MaintenanceConfigurationsOperations` * 2021-05-01: :class:`MaintenanceConfigurationsOperations` + * 2021-07-01: :class:`MaintenanceConfigurationsOperations` """ api_version = self._get_api_version('maintenance_configurations') if api_version == '2020-12-01': @@ -291,6 +299,8 @@ def maintenance_configurations(self): from .v2021_03_01.operations import MaintenanceConfigurationsOperations as OperationClass elif api_version == '2021-05-01': from .v2021_05_01.operations import MaintenanceConfigurationsOperations as OperationClass + elif api_version == '2021-07-01': + from .v2021_07_01.operations import MaintenanceConfigurationsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'maintenance_configurations'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -319,6 +329,7 @@ def managed_clusters(self): * 2021-02-01: :class:`ManagedClustersOperations` * 2021-03-01: :class:`ManagedClustersOperations` * 2021-05-01: :class:`ManagedClustersOperations` + * 2021-07-01: :class:`ManagedClustersOperations` """ api_version = self._get_api_version('managed_clusters') if api_version == '2018-03-31': @@ -361,6 +372,8 @@ def managed_clusters(self): from .v2021_03_01.operations import ManagedClustersOperations as OperationClass elif api_version == '2021-05-01': from .v2021_05_01.operations import ManagedClustersOperations as OperationClass + elif api_version == '2021-07-01': + from .v2021_07_01.operations import ManagedClustersOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'managed_clusters'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -411,6 +424,7 @@ def operations(self): * 2021-02-01: :class:`Operations` * 2021-03-01: :class:`Operations` * 2021-05-01: :class:`Operations` + * 2021-07-01: :class:`Operations` """ api_version = self._get_api_version('operations') if api_version == '2018-03-31': @@ -453,6 +467,8 @@ def operations(self): from .v2021_03_01.operations import Operations as OperationClass elif api_version == '2021-05-01': from .v2021_05_01.operations import Operations as OperationClass + elif api_version == '2021-07-01': + from .v2021_07_01.operations import Operations as OperationClass else: raise ValueError("API version {} does not have operation group 'operations'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -469,6 +485,7 @@ def private_endpoint_connections(self): * 2021-02-01: :class:`PrivateEndpointConnectionsOperations` * 2021-03-01: :class:`PrivateEndpointConnectionsOperations` * 2021-05-01: :class:`PrivateEndpointConnectionsOperations` + * 2021-07-01: :class:`PrivateEndpointConnectionsOperations` """ api_version = self._get_api_version('private_endpoint_connections') if api_version == '2020-06-01': @@ -487,6 +504,8 @@ def private_endpoint_connections(self): from .v2021_03_01.operations import PrivateEndpointConnectionsOperations as OperationClass elif api_version == '2021-05-01': from .v2021_05_01.operations import PrivateEndpointConnectionsOperations as OperationClass + elif api_version == '2021-07-01': + from .v2021_07_01.operations import PrivateEndpointConnectionsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'private_endpoint_connections'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -501,6 +520,7 @@ def private_link_resources(self): * 2021-02-01: :class:`PrivateLinkResourcesOperations` * 2021-03-01: :class:`PrivateLinkResourcesOperations` * 2021-05-01: :class:`PrivateLinkResourcesOperations` + * 2021-07-01: :class:`PrivateLinkResourcesOperations` """ api_version = self._get_api_version('private_link_resources') if api_version == '2020-09-01': @@ -515,6 +535,8 @@ def private_link_resources(self): from .v2021_03_01.operations import PrivateLinkResourcesOperations as OperationClass elif api_version == '2021-05-01': from .v2021_05_01.operations import PrivateLinkResourcesOperations as OperationClass + elif api_version == '2021-07-01': + from .v2021_07_01.operations import PrivateLinkResourcesOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'private_link_resources'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -529,6 +551,7 @@ def resolve_private_link_service_id(self): * 2021-02-01: :class:`ResolvePrivateLinkServiceIdOperations` * 2021-03-01: :class:`ResolvePrivateLinkServiceIdOperations` * 2021-05-01: :class:`ResolvePrivateLinkServiceIdOperations` + * 2021-07-01: :class:`ResolvePrivateLinkServiceIdOperations` """ api_version = self._get_api_version('resolve_private_link_service_id') if api_version == '2020-09-01': @@ -543,6 +566,8 @@ def resolve_private_link_service_id(self): from .v2021_03_01.operations import ResolvePrivateLinkServiceIdOperations as OperationClass elif api_version == '2021-05-01': from .v2021_05_01.operations import ResolvePrivateLinkServiceIdOperations as OperationClass + elif api_version == '2021-07-01': + from .v2021_07_01.operations import ResolvePrivateLinkServiceIdOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'resolve_private_link_service_id'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/_version.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/_version.py index ef6549b6f33f..8beed36ef7e5 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/_version.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/_version.py @@ -9,4 +9,4 @@ # regenerated. # -------------------------------------------------------------------------- -VERSION = "16.0.0" +VERSION = "16.1.0" diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/aio/_container_service_client.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/aio/_container_service_client.py index eb812166ae6d..3453c79346be 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/aio/_container_service_client.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/aio/_container_service_client.py @@ -54,7 +54,7 @@ class ContainerServiceClient(MultiApiClientMixin, _SDKClient): :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. """ - DEFAULT_API_VERSION = '2021-05-01' + DEFAULT_API_VERSION = '2021-07-01' _PROFILE_TAG = "azure.mgmt.containerservice.ContainerServiceClient" LATEST_PROFILE = ProfileDefinition({ _PROFILE_TAG: { @@ -116,6 +116,7 @@ def models(cls, api_version=DEFAULT_API_VERSION): * 2021-02-01: :mod:`v2021_02_01.models` * 2021-03-01: :mod:`v2021_03_01.models` * 2021-05-01: :mod:`v2021_05_01.models` + * 2021-07-01: :mod:`v2021_07_01.models` """ if api_version == '2017-07-01': from ..v2017_07_01 import models @@ -192,6 +193,9 @@ def models(cls, api_version=DEFAULT_API_VERSION): elif api_version == '2021-05-01': from ..v2021_05_01 import models return models + elif api_version == '2021-07-01': + from ..v2021_07_01 import models + return models raise ValueError("API version {} is not available".format(api_version)) @property @@ -216,6 +220,7 @@ def agent_pools(self): * 2021-02-01: :class:`AgentPoolsOperations` * 2021-03-01: :class:`AgentPoolsOperations` * 2021-05-01: :class:`AgentPoolsOperations` + * 2021-07-01: :class:`AgentPoolsOperations` """ api_version = self._get_api_version('agent_pools') if api_version == '2019-02-01': @@ -254,6 +259,8 @@ def agent_pools(self): from ..v2021_03_01.aio.operations import AgentPoolsOperations as OperationClass elif api_version == '2021-05-01': from ..v2021_05_01.aio.operations import AgentPoolsOperations as OperationClass + elif api_version == '2021-07-01': + from ..v2021_07_01.aio.operations import AgentPoolsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'agent_pools'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -279,6 +286,7 @@ def maintenance_configurations(self): * 2021-02-01: :class:`MaintenanceConfigurationsOperations` * 2021-03-01: :class:`MaintenanceConfigurationsOperations` * 2021-05-01: :class:`MaintenanceConfigurationsOperations` + * 2021-07-01: :class:`MaintenanceConfigurationsOperations` """ api_version = self._get_api_version('maintenance_configurations') if api_version == '2020-12-01': @@ -289,6 +297,8 @@ def maintenance_configurations(self): from ..v2021_03_01.aio.operations import MaintenanceConfigurationsOperations as OperationClass elif api_version == '2021-05-01': from ..v2021_05_01.aio.operations import MaintenanceConfigurationsOperations as OperationClass + elif api_version == '2021-07-01': + from ..v2021_07_01.aio.operations import MaintenanceConfigurationsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'maintenance_configurations'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -317,6 +327,7 @@ def managed_clusters(self): * 2021-02-01: :class:`ManagedClustersOperations` * 2021-03-01: :class:`ManagedClustersOperations` * 2021-05-01: :class:`ManagedClustersOperations` + * 2021-07-01: :class:`ManagedClustersOperations` """ api_version = self._get_api_version('managed_clusters') if api_version == '2018-03-31': @@ -359,6 +370,8 @@ def managed_clusters(self): from ..v2021_03_01.aio.operations import ManagedClustersOperations as OperationClass elif api_version == '2021-05-01': from ..v2021_05_01.aio.operations import ManagedClustersOperations as OperationClass + elif api_version == '2021-07-01': + from ..v2021_07_01.aio.operations import ManagedClustersOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'managed_clusters'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -409,6 +422,7 @@ def operations(self): * 2021-02-01: :class:`Operations` * 2021-03-01: :class:`Operations` * 2021-05-01: :class:`Operations` + * 2021-07-01: :class:`Operations` """ api_version = self._get_api_version('operations') if api_version == '2018-03-31': @@ -451,6 +465,8 @@ def operations(self): from ..v2021_03_01.aio.operations import Operations as OperationClass elif api_version == '2021-05-01': from ..v2021_05_01.aio.operations import Operations as OperationClass + elif api_version == '2021-07-01': + from ..v2021_07_01.aio.operations import Operations as OperationClass else: raise ValueError("API version {} does not have operation group 'operations'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -467,6 +483,7 @@ def private_endpoint_connections(self): * 2021-02-01: :class:`PrivateEndpointConnectionsOperations` * 2021-03-01: :class:`PrivateEndpointConnectionsOperations` * 2021-05-01: :class:`PrivateEndpointConnectionsOperations` + * 2021-07-01: :class:`PrivateEndpointConnectionsOperations` """ api_version = self._get_api_version('private_endpoint_connections') if api_version == '2020-06-01': @@ -485,6 +502,8 @@ def private_endpoint_connections(self): from ..v2021_03_01.aio.operations import PrivateEndpointConnectionsOperations as OperationClass elif api_version == '2021-05-01': from ..v2021_05_01.aio.operations import PrivateEndpointConnectionsOperations as OperationClass + elif api_version == '2021-07-01': + from ..v2021_07_01.aio.operations import PrivateEndpointConnectionsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'private_endpoint_connections'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -499,6 +518,7 @@ def private_link_resources(self): * 2021-02-01: :class:`PrivateLinkResourcesOperations` * 2021-03-01: :class:`PrivateLinkResourcesOperations` * 2021-05-01: :class:`PrivateLinkResourcesOperations` + * 2021-07-01: :class:`PrivateLinkResourcesOperations` """ api_version = self._get_api_version('private_link_resources') if api_version == '2020-09-01': @@ -513,6 +533,8 @@ def private_link_resources(self): from ..v2021_03_01.aio.operations import PrivateLinkResourcesOperations as OperationClass elif api_version == '2021-05-01': from ..v2021_05_01.aio.operations import PrivateLinkResourcesOperations as OperationClass + elif api_version == '2021-07-01': + from ..v2021_07_01.aio.operations import PrivateLinkResourcesOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'private_link_resources'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -527,6 +549,7 @@ def resolve_private_link_service_id(self): * 2021-02-01: :class:`ResolvePrivateLinkServiceIdOperations` * 2021-03-01: :class:`ResolvePrivateLinkServiceIdOperations` * 2021-05-01: :class:`ResolvePrivateLinkServiceIdOperations` + * 2021-07-01: :class:`ResolvePrivateLinkServiceIdOperations` """ api_version = self._get_api_version('resolve_private_link_service_id') if api_version == '2020-09-01': @@ -541,6 +564,8 @@ def resolve_private_link_service_id(self): from ..v2021_03_01.aio.operations import ResolvePrivateLinkServiceIdOperations as OperationClass elif api_version == '2021-05-01': from ..v2021_05_01.aio.operations import ResolvePrivateLinkServiceIdOperations as OperationClass + elif api_version == '2021-07-01': + from ..v2021_07_01.aio.operations import ResolvePrivateLinkServiceIdOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'resolve_private_link_service_id'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/models.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/models.py index 46a4c060a97a..32c068dc4ded 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/models.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/models.py @@ -6,4 +6,4 @@ # -------------------------------------------------------------------------- from .v2017_07_01.models import * from .v2019_04_30.models import * -from .v2021_05_01.models import * +from .v2021_07_01.models import * diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_agent_pools_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_agent_pools_operations.py index 0509972712f3..e3aa21c489dc 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_agent_pools_operations.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_agent_pools_operations.py @@ -51,8 +51,7 @@ def list( ) -> AsyncIterable["_models.AgentPoolListResult"]: """Gets a list of agent pools in the specified managed cluster. - Gets a list of agent pools in the specified managed cluster. The operation returns properties - of each agent pool. + Gets a list of agent pools in the specified managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -127,9 +126,9 @@ async def get( agent_pool_name: str, **kwargs: Any ) -> "_models.AgentPool": - """Gets the agent pool. + """Gets the specified managed cluster agent pool. - Gets the details of the agent pool by managed cluster and resource group. + Gets the specified managed cluster agent pool. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -251,7 +250,7 @@ async def begin_create_or_update( parameters: "_models.AgentPool", **kwargs: Any ) -> AsyncLROPoller["_models.AgentPool"]: - """Creates or updates an agent pool. + """Creates or updates an agent pool in the specified managed cluster. Creates or updates an agent pool in the specified managed cluster. @@ -261,7 +260,7 @@ async def begin_create_or_update( :type resource_name: str :param agent_pool_name: The name of the agent pool. :type agent_pool_name: str - :param parameters: Parameters supplied to the Create or Update an agent pool operation. + :param parameters: The agent pool to create or update. :type parameters: ~azure.mgmt.containerservice.v2021_05_01.models.AgentPool :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. @@ -374,9 +373,9 @@ async def begin_delete( agent_pool_name: str, **kwargs: Any ) -> AsyncLROPoller[None]: - """Deletes an agent pool. + """Deletes an agent pool in the specified managed cluster. - Deletes the agent pool in the specified managed cluster. + Deletes an agent pool in the specified managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -445,10 +444,9 @@ async def get_upgrade_profile( agent_pool_name: str, **kwargs: Any ) -> "_models.AgentPoolUpgradeProfile": - """Gets upgrade profile for an agent pool. + """Gets the upgrade profile for an agent pool. - Gets the details of the upgrade profile for an agent pool with a specified resource group and - managed cluster name. + Gets the upgrade profile for an agent pool. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -509,9 +507,11 @@ async def get_available_agent_pool_versions( resource_name: str, **kwargs: Any ) -> "_models.AgentPoolAvailableVersions": - """Gets a list of supported versions for the specified agent pool. + """Gets a list of supported Kubernetes versions for the specified agent pool. - Gets a list of supported versions for the specified agent pool. + See `supported Kubernetes versions + `_ for more details about + the version lifecycle. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -621,9 +621,11 @@ async def begin_upgrade_node_image_version( agent_pool_name: str, **kwargs: Any ) -> AsyncLROPoller["_models.AgentPool"]: - """Upgrade node image version of an agent pool to the latest. + """Upgrades the node image version of an agent pool to the latest. - Upgrade node image version of an agent pool to the latest. + Upgrading the node image version of an agent pool applies the newest OS and runtime updates to + the nodes. AKS provides one new image per week with the latest updates. For more details on + node image versions, see: https://docs.microsoft.com/azure/aks/node-image-upgrade. :param resource_group_name: The name of the resource group. :type resource_group_name: str diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_maintenance_configurations_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_maintenance_configurations_operations.py index b10621f7b93f..e8c0d7389557 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_maintenance_configurations_operations.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_maintenance_configurations_operations.py @@ -49,8 +49,7 @@ def list_by_managed_cluster( ) -> AsyncIterable["_models.MaintenanceConfigurationListResult"]: """Gets a list of maintenance configurations in the specified managed cluster. - Gets a list of maintenance configurations in the specified managed cluster. The operation - returns properties of each maintenance configuration. + Gets a list of maintenance configurations in the specified managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -125,9 +124,9 @@ async def get( config_name: str, **kwargs: Any ) -> "_models.MaintenanceConfiguration": - """Gets the maintenance configuration. + """Gets the specified maintenance configuration of a managed cluster. - Gets the details of maintenance configurations by managed cluster and resource group. + Gets the specified maintenance configuration of a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -190,7 +189,7 @@ async def create_or_update( parameters: "_models.MaintenanceConfiguration", **kwargs: Any ) -> "_models.MaintenanceConfiguration": - """Creates or updates a maintenance configurations. + """Creates or updates a maintenance configuration in the specified managed cluster. Creates or updates a maintenance configuration in the specified managed cluster. @@ -200,8 +199,7 @@ async def create_or_update( :type resource_name: str :param config_name: The name of the maintenance configuration. :type config_name: str - :param parameters: Parameters supplied to the Create or Update a default maintenance - configuration. + :param parameters: The maintenance configuration to create or update. :type parameters: ~azure.mgmt.containerservice.v2021_05_01.models.MaintenanceConfiguration :keyword callable cls: A custom type or function that will be passed the direct response :return: MaintenanceConfiguration, or the result of cls(response) @@ -264,7 +262,7 @@ async def delete( ) -> None: """Deletes a maintenance configuration. - Deletes the maintenance configuration in the specified managed cluster. + Deletes a maintenance configuration. :param resource_group_name: The name of the resource group. :type resource_group_name: str diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_managed_clusters_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_managed_clusters_operations.py index 4fc5b8a65492..2d4702b66e1c 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_managed_clusters_operations.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_managed_clusters_operations.py @@ -55,7 +55,7 @@ async def get_os_options( :param location: The name of a supported Azure region. :type location: str - :param resource_type: resource type for which the OS options needs to be returned. + :param resource_type: The resource type for which the OS options needs to be returned. :type resource_type: str :keyword callable cls: A custom type or function that will be passed the direct response :return: OSOptionProfile, or the result of cls(response) @@ -110,8 +110,7 @@ def list( ) -> AsyncIterable["_models.ManagedClusterListResult"]: """Gets a list of managed clusters in the specified subscription. - Gets a list of managed clusters in the specified subscription. The operation returns properties - of each managed cluster. + Gets a list of managed clusters in the specified subscription. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ManagedClusterListResult or the result of cls(response) @@ -180,8 +179,7 @@ def list_by_resource_group( ) -> AsyncIterable["_models.ManagedClusterListResult"]: """Lists managed clusters in the specified subscription and resource group. - Lists managed clusters in the specified subscription and resource group. The operation returns - properties of each managed cluster. + Lists managed clusters in the specified subscription and resource group. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -252,10 +250,9 @@ async def get_upgrade_profile( resource_name: str, **kwargs: Any ) -> "_models.ManagedClusterUpgradeProfile": - """Gets upgrade profile for a managed cluster. + """Gets the upgrade profile of a managed cluster. - Gets the details of the upgrade profile for a managed cluster with a specified resource group - and name. + Gets the upgrade profile of a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -316,12 +313,10 @@ async def get_access_profile( ) -> "_models.ManagedClusterAccessProfile": """Gets an access profile of a managed cluster. - Gets the accessProfile for the specified role name of the managed cluster with a specified - resource group and name. **WARNING**\ : This API will be deprecated. Instead use - `ListClusterUserCredentials - `_ or + **WARNING**\ : This API will be deprecated. Instead use `ListClusterUserCredentials + `_ or `ListClusterAdminCredentials - `_ . + `_ . :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -383,9 +378,9 @@ async def list_cluster_admin_credentials( server_fqdn: Optional[str] = None, **kwargs: Any ) -> "_models.CredentialResults": - """Gets cluster admin credential of a managed cluster. + """Lists the admin credentials of a managed cluster. - Gets cluster admin credential of the managed cluster with a specified resource group and name. + Lists the admin credentials of a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -448,9 +443,9 @@ async def list_cluster_user_credentials( server_fqdn: Optional[str] = None, **kwargs: Any ) -> "_models.CredentialResults": - """Gets cluster user credential of a managed cluster. + """Lists the user credentials of a managed cluster. - Gets cluster user credential of the managed cluster with a specified resource group and name. + Lists the user credentials of a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -513,10 +508,9 @@ async def list_cluster_monitoring_user_credentials( server_fqdn: Optional[str] = None, **kwargs: Any ) -> "_models.CredentialResults": - """Gets cluster monitoring user credential of a managed cluster. + """Lists the cluster monitoring user credentials of a managed cluster. - Gets cluster monitoring user credential of the managed cluster with a specified resource group - and name. + Lists the cluster monitoring user credentials of a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -580,7 +574,7 @@ async def get( ) -> "_models.ManagedCluster": """Gets a managed cluster. - Gets the details of the managed cluster with a specified resource group and name. + Gets a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -698,14 +692,13 @@ async def begin_create_or_update( ) -> AsyncLROPoller["_models.ManagedCluster"]: """Creates or updates a managed cluster. - Creates or updates a managed cluster with the specified configuration for agents and Kubernetes - version. + Creates or updates a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str :param resource_name: The name of the managed cluster resource. :type resource_name: str - :param parameters: Parameters supplied to the Create or Update a Managed Cluster operation. + :param parameters: The managed cluster to create or update. :type parameters: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedCluster :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. @@ -825,7 +818,7 @@ async def begin_update_tags( ) -> AsyncLROPoller["_models.ManagedCluster"]: """Updates tags on a managed cluster. - Updates a managed cluster with the specified tags. + Updates tags on a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -941,7 +934,7 @@ async def begin_delete( ) -> AsyncLROPoller[None]: """Deletes a managed cluster. - Deletes the managed cluster with a specified resource group and name. + Deletes a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -1056,16 +1049,15 @@ async def begin_reset_service_principal_profile( parameters: "_models.ManagedClusterServicePrincipalProfile", **kwargs: Any ) -> AsyncLROPoller[None]: - """Reset Service Principal Profile of a managed cluster. + """Reset the Service Principal Profile of a managed cluster. - Update the service principal Profile for a managed cluster. + This action cannot be performed on a cluster that is not using a service principal. :param resource_group_name: The name of the resource group. :type resource_group_name: str :param resource_name: The name of the managed cluster resource. :type resource_name: str - :param parameters: Parameters supplied to the Reset Service Principal Profile operation for a - Managed Cluster. + :param parameters: The service principal profile to set on the managed cluster. :type parameters: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterServicePrincipalProfile :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. @@ -1177,16 +1169,15 @@ async def begin_reset_aad_profile( parameters: "_models.ManagedClusterAADProfile", **kwargs: Any ) -> AsyncLROPoller[None]: - """Reset AAD Profile of a managed cluster. + """Reset the AAD Profile of a managed cluster. - Update the AAD Profile for a managed cluster. + Reset the AAD Profile of a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str :param resource_name: The name of the managed cluster resource. :type resource_name: str - :param parameters: Parameters supplied to the Reset AAD Profile operation for a Managed - Cluster. + :param parameters: The AAD profile to set on the Managed Cluster. :type parameters: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAADProfile :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. @@ -1291,9 +1282,10 @@ async def begin_rotate_cluster_certificates( resource_name: str, **kwargs: Any ) -> AsyncLROPoller[None]: - """Rotate certificates of a managed cluster. + """Rotates the certificates of a managed cluster. - Rotate certificates of a managed cluster. + See `Certificate rotation `_ for + more details about rotating managed cluster certificates. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -1401,9 +1393,13 @@ async def begin_stop( resource_name: str, **kwargs: Any ) -> AsyncLROPoller[None]: - """Stop Managed Cluster. + """Stops a Managed Cluster. - Stops a Running Managed Cluster. + This can only be performed on Azure Virtual Machine Scale set backed clusters. Stopping a + cluster stops the control plane and agent nodes entirely, while maintaining all object and + cluster state. A cluster does not accrue charges while it is stopped. See `stopping a cluster + `_ for more details about stopping a + cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -1511,9 +1507,10 @@ async def begin_start( resource_name: str, **kwargs: Any ) -> AsyncLROPoller[None]: - """Start Managed Cluster. + """Starts a previously stopped Managed Cluster. - Starts a Stopped Managed Cluster. + See `starting a cluster `_ for more + details about starting a cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -1633,16 +1630,17 @@ async def begin_run_command( request_payload: "_models.RunCommandRequest", **kwargs: Any ) -> AsyncLROPoller["_models.RunCommandResult"]: - """Run Command against Managed Kubernetes Service. + """Submits a command to run against the Managed Cluster. - Submit a command to run against managed kubernetes service, it will create a pod to run the - command. + AKS will create a pod to run the command. This is primarily useful for private clusters. For + more information see `AKS Run Command + `_. :param resource_group_name: The name of the resource group. :type resource_group_name: str :param resource_name: The name of the managed cluster resource. :type resource_name: str - :param request_payload: Parameters supplied to the RunCommand operation. + :param request_payload: The run command request. :type request_payload: ~azure.mgmt.containerservice.v2021_05_01.models.RunCommandRequest :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. @@ -1707,15 +1705,15 @@ async def get_command_result( command_id: str, **kwargs: Any ) -> Optional["_models.RunCommandResult"]: - """Get command result. + """Gets the results of a command which has been run on the Managed Cluster. - Get command result from previous runCommand invoke. + Gets the results of a command which has been run on the Managed Cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str :param resource_name: The name of the managed cluster resource. :type resource_name: str - :param command_id: Id of the command request. + :param command_id: Id of the command. :type command_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: RunCommandResult, or the result of cls(response) diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_operations.py index 5bb49c542c2a..fd64291b851e 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_operations.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_operations.py @@ -45,7 +45,9 @@ def list( self, **kwargs: Any ) -> AsyncIterable["_models.OperationListResult"]: - """Gets a list of compute operations. + """Gets a list of operations. + + Gets a list of operations. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either OperationListResult or the result of cls(response) diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_private_endpoint_connections_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_private_endpoint_connections_operations.py index 5881a84458da..8c5611dd5adf 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_private_endpoint_connections_operations.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_private_endpoint_connections_operations.py @@ -50,8 +50,8 @@ async def list( ) -> "_models.PrivateEndpointConnectionListResult": """Gets a list of private endpoint connections in the specified managed cluster. - Gets a list of private endpoint connections in the specified managed cluster. The operation - returns properties of each private endpoint connection. + To learn more about private clusters, see: + https://docs.microsoft.com/azure/aks/private-clusters. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -110,9 +110,10 @@ async def get( private_endpoint_connection_name: str, **kwargs: Any ) -> "_models.PrivateEndpointConnection": - """Gets the private endpoint connection. + """Gets the specified private endpoint connection. - Gets the details of the private endpoint connection by managed cluster and resource group. + To learn more about private clusters, see: + https://docs.microsoft.com/azure/aks/private-clusters. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -177,7 +178,7 @@ async def update( ) -> "_models.PrivateEndpointConnection": """Updates a private endpoint connection. - Updates a private endpoint connection in the specified managed cluster. + Updates a private endpoint connection. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -185,7 +186,7 @@ async def update( :type resource_name: str :param private_endpoint_connection_name: The name of the private endpoint connection. :type private_endpoint_connection_name: str - :param parameters: Parameters supplied to the Update a private endpoint connection operation. + :param parameters: The updated private endpoint connection. :type parameters: ~azure.mgmt.containerservice.v2021_05_01.models.PrivateEndpointConnection :keyword callable cls: A custom type or function that will be passed the direct response :return: PrivateEndpointConnection, or the result of cls(response) @@ -294,7 +295,7 @@ async def begin_delete( ) -> AsyncLROPoller[None]: """Deletes a private endpoint connection. - Deletes the private endpoint connection in the specified managed cluster. + Deletes a private endpoint connection. :param resource_group_name: The name of the resource group. :type resource_group_name: str diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_private_link_resources_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_private_link_resources_operations.py index dd9f79796f64..b8283cdfee17 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_private_link_resources_operations.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_private_link_resources_operations.py @@ -48,8 +48,8 @@ async def list( ) -> "_models.PrivateLinkResourcesListResult": """Gets a list of private link resources in the specified managed cluster. - Gets a list of private link resources in the specified managed cluster. The operation returns - properties of each private link resource. + To learn more about private clusters, see: + https://docs.microsoft.com/azure/aks/private-clusters. :param resource_group_name: The name of the resource group. :type resource_group_name: str diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_resolve_private_link_service_id_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_resolve_private_link_service_id_operations.py index 930df4ecfc50..55150ba5ee1c 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_resolve_private_link_service_id_operations.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/aio/operations/_resolve_private_link_service_id_operations.py @@ -49,14 +49,13 @@ async def post( ) -> "_models.PrivateLinkResource": """Gets the private link service ID for the specified managed cluster. - Gets the private link service ID the specified managed cluster. + Gets the private link service ID for the specified managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str :param resource_name: The name of the managed cluster resource. :type resource_name: str - :param parameters: Parameters (name, groupId) supplied in order to resolve a private link - service ID. + :param parameters: Parameters required in order to resolve a private link service ID. :type parameters: ~azure.mgmt.containerservice.v2021_05_01.models.PrivateLinkResource :keyword callable cls: A custom type or function that will be passed the direct response :return: PrivateLinkResource, or the result of cls(response) diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/models/__init__.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/models/__init__.py index 5ef1b816ad04..92a927ea3e9b 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/models/__init__.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/models/__init__.py @@ -14,7 +14,6 @@ from ._models_py3 import AgentPoolUpgradeProfile from ._models_py3 import AgentPoolUpgradeProfilePropertiesUpgradesItem from ._models_py3 import AgentPoolUpgradeSettings - from ._models_py3 import CloudError from ._models_py3 import CloudErrorBody from ._models_py3 import Components1Q1Og48SchemasManagedclusterAllof1 from ._models_py3 import Components1Umhcm8SchemasManagedclusteridentityPropertiesUserassignedidentitiesAdditionalproperties @@ -54,6 +53,8 @@ from ._models_py3 import ManagedClusterPodIdentity from ._models_py3 import ManagedClusterPodIdentityException from ._models_py3 import ManagedClusterPodIdentityProfile + from ._models_py3 import ManagedClusterPodIdentityProvisioningError + from ._models_py3 import ManagedClusterPodIdentityProvisioningErrorBody from ._models_py3 import ManagedClusterPodIdentityProvisioningInfo from ._models_py3 import ManagedClusterPoolUpgradeProfile from ._models_py3 import ManagedClusterPoolUpgradeProfileUpgradesItem @@ -94,7 +95,6 @@ from ._models import AgentPoolUpgradeProfile # type: ignore from ._models import AgentPoolUpgradeProfilePropertiesUpgradesItem # type: ignore from ._models import AgentPoolUpgradeSettings # type: ignore - from ._models import CloudError # type: ignore from ._models import CloudErrorBody # type: ignore from ._models import Components1Q1Og48SchemasManagedclusterAllof1 # type: ignore from ._models import Components1Umhcm8SchemasManagedclusteridentityPropertiesUserassignedidentitiesAdditionalproperties # type: ignore @@ -134,6 +134,8 @@ from ._models import ManagedClusterPodIdentity # type: ignore from ._models import ManagedClusterPodIdentityException # type: ignore from ._models import ManagedClusterPodIdentityProfile # type: ignore + from ._models import ManagedClusterPodIdentityProvisioningError # type: ignore + from ._models import ManagedClusterPodIdentityProvisioningErrorBody # type: ignore from ._models import ManagedClusterPodIdentityProvisioningInfo # type: ignore from ._models import ManagedClusterPoolUpgradeProfile # type: ignore from ._models import ManagedClusterPoolUpgradeProfileUpgradesItem # type: ignore @@ -208,7 +210,6 @@ 'AgentPoolUpgradeProfile', 'AgentPoolUpgradeProfilePropertiesUpgradesItem', 'AgentPoolUpgradeSettings', - 'CloudError', 'CloudErrorBody', 'Components1Q1Og48SchemasManagedclusterAllof1', 'Components1Umhcm8SchemasManagedclusteridentityPropertiesUserassignedidentitiesAdditionalproperties', @@ -248,6 +249,8 @@ 'ManagedClusterPodIdentity', 'ManagedClusterPodIdentityException', 'ManagedClusterPodIdentityProfile', + 'ManagedClusterPodIdentityProvisioningError', + 'ManagedClusterPodIdentityProvisioningErrorBody', 'ManagedClusterPodIdentityProvisioningInfo', 'ManagedClusterPoolUpgradeProfile', 'ManagedClusterPoolUpgradeProfileUpgradesItem', diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/models/_container_service_client_enums.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/models/_container_service_client_enums.py index bdf1668dad13..5590a8b36cfb 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/models/_container_service_client_enums.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/models/_container_service_client_enums.py @@ -27,24 +27,34 @@ def __getattr__(cls, name): class AgentPoolMode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """AgentPoolMode represents mode of an agent pool. + """A cluster must have at least one 'System' Agent Pool at all times. For additional information + on agent pool restrictions and best practices, see: + https://docs.microsoft.com/azure/aks/use-system-pools """ + #: System agent pools are primarily for hosting critical system pods such as CoreDNS and + #: metrics-server. System agent pools osType must be Linux. System agent pools VM SKU must have at + #: least 2vCPUs and 4GB of memory. SYSTEM = "System" + #: User agent pools are primarily for hosting your application pods. USER = "User" class AgentPoolType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """AgentPoolType represents types of an agent pool. + """The type of Agent Pool. """ + #: Create an Agent Pool backed by a Virtual Machine Scale Set. VIRTUAL_MACHINE_SCALE_SETS = "VirtualMachineScaleSets" + #: Use of this is strongly discouraged. AVAILABILITY_SET = "AvailabilitySet" class Code(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Tells whether the cluster is Running or Stopped """ + #: The cluster is running. RUNNING = "Running" + #: The cluster is stopped. STOPPED = "Stopped" class ConnectionStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): @@ -57,15 +67,15 @@ class ConnectionStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): DISCONNECTED = "Disconnected" class ContainerServiceStorageProfileTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Storage profile specifies what kind of storage used. Choose from StorageAccount and - ManagedDisks. Leave it empty, we will choose for you based on the orchestrator choice. + """Specifies what kind of storage to use. If omitted, the default will be chosen on your behalf + based on the choice of orchestrator. """ STORAGE_ACCOUNT = "StorageAccount" MANAGED_DISKS = "ManagedDisks" class ContainerServiceVMSizeTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Size of agent VMs. + """Size of agent VMs. Note: This is no longer maintained. """ STANDARD_A1 = "Standard_A1" @@ -262,10 +272,26 @@ class CreatedByType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): KEY = "Key" class Expander(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """If not specified, the default is 'random'. See `expanders + `_ + for more information. + """ + #: Selects the node group that will have the least idle CPU (if tied, unused memory) after + #: scale-up. This is useful when you have different classes of nodes, for example, high CPU or + #: high memory nodes, and only want to expand those when there are pending pods that need a lot of + #: those resources. LEAST_WASTE = "least-waste" + #: Selects the node group that would be able to schedule the most pods when scaling up. This is + #: useful when you are using nodeSelector to make sure certain pods land on certain nodes. Note + #: that this won't cause the autoscaler to select bigger nodes vs. smaller, as it can add multiple + #: smaller nodes at once. MOST_PODS = "most-pods" + #: Selects the node group that has the highest priority assigned by the user. It's configuration + #: is described in more details `here + #: `_. PRIORITY = "priority" + #: Used when you don't have a particular need for the node groups to scale differently. RANDOM = "random" class ExtendedLocationTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): @@ -276,7 +302,6 @@ class ExtendedLocationTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)) class GPUInstanceProfile(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU. - Supported values are MIG1g, MIG2g, MIG3g, MIG4g and MIG7g. """ MIG1_G = "MIG1g" @@ -286,26 +311,36 @@ class GPUInstanceProfile(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): MIG7_G = "MIG7g" class KubeletDiskType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """KubeletDiskType determines the placement of emptyDir volumes, container runtime data root, and - Kubelet ephemeral storage. Allowed values: 'OS', 'Temporary' (preview). + """Determines the placement of emptyDir volumes, container runtime data root, and Kubelet + ephemeral storage. """ + #: Kubelet will use the OS disk for its data. OS = "OS" + #: Kubelet will use the temporary disk for its data. TEMPORARY = "Temporary" class LicenseType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """The licenseType to use for Windows VMs. Windows_Server is used to enable Azure Hybrid User - Benefits for Windows VMs. + """The license type to use for Windows VMs. See `Azure Hybrid User Benefits + `_ for more details. """ + #: No additional licensing is applied. NONE = "None" + #: Enables Azure Hybrid User Benefits for Windows VMs. WINDOWS_SERVER = "Windows_Server" class LoadBalancerSku(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """The load balancer sku for the managed cluster. + """The default is 'standard'. See `Azure Load Balancer SKUs + `_ for more information about the + differences between load balancer SKUs. """ + #: Use a a standard Load Balancer. This is the recommended Load Balancer SKU. For more information + #: about on working with the load balancer in the managed cluster, see the `standard Load Balancer + #: `_ article. STANDARD = "standard" + #: Use a basic Load Balancer with limited functionality. BASIC = "basic" class ManagedClusterPodIdentityProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): @@ -318,66 +353,104 @@ class ManagedClusterPodIdentityProvisioningState(with_metaclass(_CaseInsensitive FAILED = "Failed" class ManagedClusterSKUName(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Name of a managed cluster SKU. + """The name of a managed cluster SKU. """ BASIC = "Basic" class ManagedClusterSKUTier(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Tier of a managed cluster SKU. + """If not specified, the default is 'Free'. See `uptime SLA + `_ for more details. """ + #: Guarantees 99.95% availability of the Kubernetes API server endpoint for clusters that use + #: Availability Zones and 99.9% of availability for clusters that don't use Availability Zones. PAID = "Paid" + #: No guaranteed SLA, no additional charges. Free tier clusters have an SLO of 99.5%. FREE = "Free" class NetworkMode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Network mode used for building Kubernetes network. + """This cannot be specified if networkPlugin is anything other than 'azure'. """ + #: No bridge is created. Intra-VM Pod to Pod communication is through IP routes created by Azure + #: CNI. See `Transparent Mode `_ for + #: more information. TRANSPARENT = "transparent" + #: This is no longer supported. BRIDGE = "bridge" class NetworkPlugin(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Network plugin used for building Kubernetes network. + """Network plugin used for building the Kubernetes network. """ + #: Use the Azure CNI network plugin. See `Azure CNI (advanced) networking + #: `_ for + #: more information. AZURE = "azure" + #: Use the Kubenet network plugin. See `Kubenet (basic) networking + #: `_ for more + #: information. KUBENET = "kubenet" class NetworkPolicy(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Network policy used for building Kubernetes network. + """Network policy used for building the Kubernetes network. """ + #: Use Calico network policies. See `differences between Azure and Calico policies + #: `_ + #: for more information. CALICO = "calico" + #: Use Azure network policies. See `differences between Azure and Calico policies + #: `_ + #: for more information. AZURE = "azure" class OSDiskType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """OSDiskType represents the type of an OS disk on an agent pool. + """The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested + OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed after creation. For more + information see `Ephemeral OS + `_. """ + #: Azure replicates the operating system disk for a virtual machine to Azure storage to avoid data + #: loss should the VM need to be relocated to another host. Since containers aren't designed to + #: have local state persisted, this behavior offers limited value while providing some drawbacks, + #: including slower node provisioning and higher read/write latency. MANAGED = "Managed" + #: Ephemeral OS disks are stored only on the host machine, just like a temporary disk. This + #: provides lower read/write latency, along with faster node scaling and cluster upgrades. EPHEMERAL = "Ephemeral" class OSSKU(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """OsSKU to be used to specify os sku. Choose from Ubuntu(default) and CBLMariner for Linux - OSType. Not applicable to Windows OSType. + """Specifies an OS SKU. This value must not be specified if OSType is Windows. """ UBUNTU = "Ubuntu" CBL_MARINER = "CBLMariner" class OSType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux. + """The operating system type. The default is Linux. """ + #: Use Linux. LINUX = "Linux" + #: Use Windows. WINDOWS = "Windows" class OutboundType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """The outbound (egress) routing method. + """This can only be set at cluster creation time and cannot be changed later. For more information + see `egress outbound type `_. """ + #: The load balancer is used for egress through an AKS assigned public IP. This supports + #: Kubernetes services of type 'loadBalancer'. For more information see `outbound type + #: loadbalancer + #: `_. LOAD_BALANCER = "loadBalancer" + #: Egress paths must be defined by the user. This is an advanced scenario and requires proper + #: network configuration. For more information see `outbound type userDefinedRouting + #: `_. USER_DEFINED_ROUTING = "userDefinedRouting" class PrivateEndpointConnectionProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): @@ -390,39 +463,72 @@ class PrivateEndpointConnectionProvisioningState(with_metaclass(_CaseInsensitive FAILED = "Failed" class ResourceIdentityType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """The type of identity used for the managed cluster. Type 'SystemAssigned' will use an implicitly - created identity in master components and an auto-created user assigned identity in MC_ - resource group in agent nodes. Type 'None' will not use MSI for the managed cluster, service - principal will be used instead. + """For more information see `use managed identities in AKS + `_. """ + #: Use an implicitly created system assigned managed identity to manage cluster resources. Master + #: components in the control plane such as kube-controller-manager will use the system assigned + #: managed identity to manipulate Azure resources. SYSTEM_ASSIGNED = "SystemAssigned" + #: Use a user-specified identity to manage cluster resources. Master components in the control + #: plane such as kube-controller-manager will use the specified user assigned managed identity to + #: manipulate Azure resources. USER_ASSIGNED = "UserAssigned" + #: Do not use a managed identity for the Managed Cluster, service principal will be used instead. NONE = "None" class ScaleSetEvictionPolicy(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """ScaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale - set. Default to Delete. + """The eviction policy specifies what to do with the VM when it is evicted. The default is Delete. + For more information about eviction see `spot VMs + `_ """ + #: Nodes in the underlying Scale Set of the node pool are deleted when they're evicted. DELETE = "Delete" + #: Nodes in the underlying Scale Set of the node pool are set to the stopped-deallocated state + #: upon eviction. Nodes in the stopped-deallocated state count against your compute quota and can + #: cause issues with cluster scaling or upgrading. DEALLOCATE = "Deallocate" class ScaleSetPriority(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """ScaleSetPriority to be used to specify virtual machine scale set priority. Default to regular. + """The Virtual Machine Scale Set priority. """ + #: Spot priority VMs will be used. There is no SLA for spot nodes. See `spot on AKS + #: `_ for more information. SPOT = "Spot" + #: Regular VMs will be used. REGULAR = "Regular" class UpgradeChannel(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """upgrade channel for auto upgrade. + """For more information see `setting the AKS cluster auto-upgrade channel + `_. """ + #: Automatically upgrade the cluster to the latest supported patch release on the latest supported + #: minor version. In cases where the cluster is at a version of Kubernetes that is at an N-2 minor + #: version where N is the latest supported minor version, the cluster first upgrades to the latest + #: supported patch version on N-1 minor version. For example, if a cluster is running version + #: 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster first is + #: upgraded to 1.18.6, then is upgraded to 1.19.1. RAPID = "rapid" + #: Automatically upgrade the cluster to the latest supported patch release on minor version N-1, + #: where N is the latest supported minor version. For example, if a cluster is running version + #: 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster is upgraded + #: to 1.18.6. STABLE = "stable" + #: Automatically upgrade the cluster to the latest supported patch version when it becomes + #: available while keeping the minor version the same. For example, if a cluster is running + #: version 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster is + #: upgraded to 1.17.9. PATCH = "patch" + #: Automatically upgrade the node image to the latest version available. Microsoft provides + #: patches and new images for image nodes frequently (usually weekly), but your running nodes + #: won't get the new images unless you do a node image upgrade. Turning on the node-image channel + #: will automatically update your node images whenever a new version is available. NODE_IMAGE = "node-image" + #: Disables auto-upgrades and keeps the cluster at its current version of Kubernetes. NONE = "none" class WeekDay(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/models/_models.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/models/_models.py index 0df038e3e8e0..9aee8b4f07a9 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/models/_models.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/models/_models.py @@ -61,107 +61,123 @@ class AgentPool(SubResource): range of 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default value is 1. :type count: int - :param vm_size: Size of agent VMs. + :param vm_size: VM size availability varies by region. If a node contains insufficient compute + resources (memory, cpu, etc) pods might fail to run correctly. For more details on restricted + VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions. :type vm_size: str :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every - machine in this master/agent pool. If you specify 0, it will apply the default osDisk size + machine in the master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified. :type os_disk_size_gb: int - :param os_disk_type: OS disk type to be used for machines in a given agent pool. Allowed values - are 'Ephemeral' and 'Managed'. If unspecified, defaults to 'Ephemeral' when the VM supports - ephemeral OS and has a cache disk larger than the requested OSDiskSizeGB. Otherwise, defaults - to 'Managed'. May not be changed after creation. Possible values include: "Managed", - "Ephemeral". + :param os_disk_type: The default is 'Ephemeral' if the VM supports it and has a cache disk + larger than the requested OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed + after creation. For more information see `Ephemeral OS + `_. Possible values + include: "Managed", "Ephemeral". :type os_disk_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSDiskType - :param kubelet_disk_type: KubeletDiskType determines the placement of emptyDir volumes, - container runtime data root, and Kubelet ephemeral storage. Currently allows one value, OS, - resulting in Kubelet using the OS disk for data. Possible values include: "OS", "Temporary". + :param kubelet_disk_type: Determines the placement of emptyDir volumes, container runtime data + root, and Kubelet ephemeral storage. Possible values include: "OS", "Temporary". :type kubelet_disk_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.KubeletDiskType - :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet identifier for nodes and maybe - pods. + :param vnet_subnet_id: If this is not specified, a VNET and subnet will be generated and used. + If no podSubnetID is specified, this applies to nodes and pods, otherwise it applies to just + nodes. This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. :type vnet_subnet_id: str - :param pod_subnet_id: Pod SubnetID specifies the VNet's subnet identifier for pods. + :param pod_subnet_id: If omitted, pod IPs are statically assigned on the node subnet (see + vnetSubnetID for more details). This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. :type pod_subnet_id: str - :param max_pods: Maximum number of pods that can run on a node. + :param max_pods: The maximum number of pods that can run on a node. :type max_pods: int - :param os_type: OsType to be used to specify os type. Choose from Linux and Windows. Default to - Linux. Possible values include: "Linux", "Windows". Default value: "Linux". + :param os_type: The operating system type. The default is Linux. Possible values include: + "Linux", "Windows". Default value: "Linux". :type os_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSType - :param os_sku: OsSKU to be used to specify os sku. Choose from Ubuntu(default) and CBLMariner - for Linux OSType. Not applicable to Windows OSType. Possible values include: "Ubuntu", - "CBLMariner". + :param os_sku: Specifies an OS SKU. This value must not be specified if OSType is Windows. + Possible values include: "Ubuntu", "CBLMariner". :type os_sku: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSSKU - :param max_count: Maximum number of nodes for auto-scaling. + :param max_count: The maximum number of nodes for auto-scaling. :type max_count: int - :param min_count: Minimum number of nodes for auto-scaling. + :param min_count: The minimum number of nodes for auto-scaling. :type min_count: int :param enable_auto_scaling: Whether to enable auto-scaler. :type enable_auto_scaling: bool - :param type_properties_type: AgentPoolType represents types of an agent pool. Possible values - include: "VirtualMachineScaleSets", "AvailabilitySet". + :param type_properties_type: The type of Agent Pool. Possible values include: + "VirtualMachineScaleSets", "AvailabilitySet". :type type_properties_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolType - :param mode: AgentPoolMode represents mode of an agent pool. Possible values include: "System", + :param mode: A cluster must have at least one 'System' Agent Pool at all times. For additional + information on agent pool restrictions and best practices, see: + https://docs.microsoft.com/azure/aks/use-system-pools. Possible values include: "System", "User". :type mode: str or ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolMode - :param orchestrator_version: Version of orchestrator specified when creating the managed - cluster. + :param orchestrator_version: As a best practice, you should upgrade all node pools in an AKS + cluster to the same Kubernetes version. The node pool version must have the same major version + as the control plane. The node pool minor version must be within two minor versions of the + control plane version. The node pool version cannot be greater than the control plane version. + For more information see `upgrading a node pool + `_. :type orchestrator_version: str - :ivar node_image_version: Version of node image. + :ivar node_image_version: The version of node image. :vartype node_image_version: str :param upgrade_settings: Settings for upgrading the agentpool. :type upgrade_settings: ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolUpgradeSettings - :ivar provisioning_state: The current deployment or provisioning state, which only appears in - the response. + :ivar provisioning_state: The current deployment or provisioning state. :vartype provisioning_state: str :ivar power_state: Describes whether the Agent Pool is Running or Stopped. :vartype power_state: ~azure.mgmt.containerservice.v2021_05_01.models.PowerState - :param availability_zones: Availability zones for nodes. Must use VirtualMachineScaleSets - AgentPoolType. + :param availability_zones: The list of Availability zones to use for nodes. This can only be + specified if the AgentPoolType property is 'VirtualMachineScaleSets'. :type availability_zones: list[str] - :param enable_node_public_ip: Enable public IP for nodes. + :param enable_node_public_ip: Some scenarios may require nodes in a node pool to receive their + own dedicated public IP addresses. A common scenario is for gaming workloads, where a console + needs to make a direct connection to a cloud virtual machine to minimize hops. For more + information see `assigning a public IP per node + `_. + The default is false. :type enable_node_public_ip: bool - :param node_public_ip_prefix_id: Public IP Prefix ID. VM nodes use IPs assigned from this - Public IP Prefix. + :param node_public_ip_prefix_id: This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}. :type node_public_ip_prefix_id: str - :param scale_set_priority: ScaleSetPriority to be used to specify virtual machine scale set - priority. Default to regular. Possible values include: "Spot", "Regular". Default value: - "Regular". + :param scale_set_priority: The Virtual Machine Scale Set priority. If not specified, the + default is 'Regular'. Possible values include: "Spot", "Regular". Default value: "Regular". :type scale_set_priority: str or ~azure.mgmt.containerservice.v2021_05_01.models.ScaleSetPriority - :param scale_set_eviction_policy: ScaleSetEvictionPolicy to be used to specify eviction policy - for Spot virtual machine scale set. Default to Delete. Possible values include: "Delete", + :param scale_set_eviction_policy: This cannot be specified unless the scaleSetPriority is + 'Spot'. If not specified, the default is 'Delete'. Possible values include: "Delete", "Deallocate". Default value: "Delete". :type scale_set_eviction_policy: str or ~azure.mgmt.containerservice.v2021_05_01.models.ScaleSetEvictionPolicy - :param spot_max_price: SpotMaxPrice to be used to specify the maximum price you are willing to - pay in US Dollars. Possible values are any decimal value greater than zero or -1 which - indicates default price to be up-to on-demand. + :param spot_max_price: Possible values are any decimal value greater than zero or -1 which + indicates the willingness to pay any on-demand price. For more details on spot pricing, see + `spot VMs pricing `_. :type spot_max_price: float - :param tags: A set of tags. Agent pool tags to be persisted on the agent pool virtual machine - scale set. + :param tags: A set of tags. The tags to be persisted on the agent pool virtual machine scale + set. :type tags: dict[str, str] - :param node_labels: Agent pool node labels to be persisted across all nodes in agent pool. + :param node_labels: The node labels to be persisted across all nodes in agent pool. :type node_labels: dict[str, str] - :param node_taints: Taints added to new nodes during node pool create and scale. For example, - key=value:NoSchedule. + :param node_taints: The taints added to new nodes during node pool create and scale. For + example, key=value:NoSchedule. :type node_taints: list[str] :param proximity_placement_group_id: The ID for Proximity Placement Group. :type proximity_placement_group_id: str - :param kubelet_config: KubeletConfig specifies the configuration of kubelet on agent nodes. + :param kubelet_config: The Kubelet configuration on the agent pool nodes. :type kubelet_config: ~azure.mgmt.containerservice.v2021_05_01.models.KubeletConfig - :param linux_os_config: LinuxOSConfig specifies the OS configuration of linux agent nodes. + :param linux_os_config: The OS configuration of Linux agent nodes. :type linux_os_config: ~azure.mgmt.containerservice.v2021_05_01.models.LinuxOSConfig - :param enable_encryption_at_host: Whether to enable EncryptionAtHost. + :param enable_encryption_at_host: This is only supported on certain VM sizes and in certain + Azure regions. For more information, see: + https://docs.microsoft.com/azure/aks/enable-host-encryption. :type enable_encryption_at_host: bool :param enable_ultra_ssd: Whether to enable UltraSSD. :type enable_ultra_ssd: bool - :param enable_fips: Whether to use FIPS enabled OS. + :param enable_fips: See `Add a FIPS-enabled node pool + `_ + for more details. :type enable_fips: bool :param gpu_instance_profile: GPUInstanceProfile to be used to specify GPU MIG instance profile - for supported GPU VM SKU. Supported values are MIG1g, MIG2g, MIG3g, MIG4g and MIG7g. Possible - values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". + for supported GPU VM SKU. Possible values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". :type gpu_instance_profile: str or ~azure.mgmt.containerservice.v2021_05_01.models.GPUInstanceProfile """ @@ -266,11 +282,11 @@ class AgentPoolAvailableVersions(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Id of the agent pool available versions. + :ivar id: The ID of the agent pool version list. :vartype id: str - :ivar name: Name of the agent pool available versions. + :ivar name: The name of the agent pool version list. :vartype name: str - :ivar type: Type of the agent pool available versions. + :ivar type: Type of the agent pool version list. :vartype type: str :param agent_pool_versions: List of versions available for agent pool. :type agent_pool_versions: @@ -306,7 +322,7 @@ class AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem(msrest.serializa :param default: Whether this version is the default agent pool version. :type default: bool - :param kubernetes_version: Kubernetes version (major, minor, patch). + :param kubernetes_version: The Kubernetes version (major.minor.patch). :type kubernetes_version: str :param is_preview: Whether Kubernetes version is currently in preview. :type is_preview: bool @@ -364,22 +380,21 @@ class AgentPoolUpgradeProfile(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar id: Id of the agent pool upgrade profile. + :ivar id: The ID of the agent pool upgrade profile. :vartype id: str - :ivar name: Name of the agent pool upgrade profile. + :ivar name: The name of the agent pool upgrade profile. :vartype name: str - :ivar type: Type of the agent pool upgrade profile. + :ivar type: The type of the agent pool upgrade profile. :vartype type: str - :param kubernetes_version: Required. Kubernetes version (major, minor, patch). + :param kubernetes_version: Required. The Kubernetes version (major.minor.patch). :type kubernetes_version: str - :param os_type: Required. OsType to be used to specify os type. Choose from Linux and Windows. - Default to Linux. Possible values include: "Linux", "Windows". Default value: "Linux". + :param os_type: Required. The operating system type. The default is Linux. Possible values + include: "Linux", "Windows". Default value: "Linux". :type os_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSType :param upgrades: List of orchestrator types and versions available for upgrade. :type upgrades: list[~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolUpgradeProfilePropertiesUpgradesItem] - :param latest_node_image_version: LatestNodeImageVersion is the latest AKS supported node image - version. + :param latest_node_image_version: The latest AKS supported node image version. :type latest_node_image_version: str """ @@ -418,9 +433,9 @@ def __init__( class AgentPoolUpgradeProfilePropertiesUpgradesItem(msrest.serialization.Model): """AgentPoolUpgradeProfilePropertiesUpgradesItem. - :param kubernetes_version: Kubernetes version (major, minor, patch). + :param kubernetes_version: The Kubernetes version (major.minor.patch). :type kubernetes_version: str - :param is_preview: Whether Kubernetes version is currently in preview. + :param is_preview: Whether the Kubernetes version is currently in preview. :type is_preview: bool """ @@ -441,8 +456,11 @@ def __init__( class AgentPoolUpgradeSettings(msrest.serialization.Model): """Settings for upgrading an agentpool. - :param max_surge: Count or percentage of additional nodes to be added during upgrade. If empty - uses AKS default. + :param max_surge: This can either be set to an integer (e.g. '5') or a percentage (e.g. '50%'). + If a percentage is specified, it is the percentage of the total agent pool size at the time of + the upgrade. For percentages, fractional nodes are rounded up. If not specified, the default is + 1. For more information, including best practices, see: + https://docs.microsoft.com/azure/aks/upgrade-cluster#customize-node-surge-upgrade. :type max_surge: str """ @@ -458,25 +476,6 @@ def __init__( self.max_surge = kwargs.get('max_surge', None) -class CloudError(msrest.serialization.Model): - """An error response from the Container service. - - :param error: Details about the error. - :type error: ~azure.mgmt.containerservice.v2021_05_01.models.CloudErrorBody - """ - - _attribute_map = { - 'error': {'key': 'error', 'type': 'CloudErrorBody'}, - } - - def __init__( - self, - **kwargs - ): - super(CloudError, self).__init__(**kwargs) - self.error = kwargs.get('error', None) - - class CloudErrorBody(msrest.serialization.Model): """An error response from the Container service. @@ -518,46 +517,52 @@ class Components1Q1Og48SchemasManagedclusterAllof1(msrest.serialization.Model): :param identity: The identity of the managed cluster, if configured. :type identity: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterIdentity - :ivar provisioning_state: The current deployment or provisioning state, which only appears in - the response. + :ivar provisioning_state: The current provisioning state. :vartype provisioning_state: str - :ivar power_state: Represents the Power State of the cluster. + :ivar power_state: The Power State of the cluster. :vartype power_state: ~azure.mgmt.containerservice.v2021_05_01.models.PowerState :ivar max_agent_pools: The max number of agent pools for the managed cluster. :vartype max_agent_pools: int - :param kubernetes_version: Version of Kubernetes specified when creating the managed cluster. + :param kubernetes_version: When you upgrade a supported AKS cluster, Kubernetes minor versions + cannot be skipped. All upgrades must be performed sequentially by major version number. For + example, upgrades between 1.14.x -> 1.15.x or 1.15.x -> 1.16.x are allowed, however 1.14.x -> + 1.16.x is not allowed. See `upgrading an AKS cluster + `_ for more details. :type kubernetes_version: str - :param dns_prefix: DNS prefix specified when creating the managed cluster. + :param dns_prefix: This cannot be updated once the Managed Cluster has been created. :type dns_prefix: str - :param fqdn_subdomain: FQDN subdomain specified when creating private cluster with custom - private dns zone. + :param fqdn_subdomain: This cannot be updated once the Managed Cluster has been created. :type fqdn_subdomain: str - :ivar fqdn: FQDN for the master pool. + :ivar fqdn: The FQDN of the master pool. :vartype fqdn: str - :ivar private_fqdn: FQDN of private cluster. + :ivar private_fqdn: The FQDN of private cluster. :vartype private_fqdn: str - :ivar azure_portal_fqdn: FQDN for the master pool which used by proxy config. + :ivar azure_portal_fqdn: The Azure Portal requires certain Cross-Origin Resource Sharing (CORS) + headers to be sent in some responses, which Kubernetes APIServer doesn't handle by default. + This special FQDN supports CORS, allowing the Azure Portal to function properly. :vartype azure_portal_fqdn: str - :param agent_pool_profiles: Properties of the agent pool. + :param agent_pool_profiles: The agent pool properties. :type agent_pool_profiles: list[~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAgentPoolProfile] - :param linux_profile: Profile for Linux VMs in the container service cluster. + :param linux_profile: The profile for Linux VMs in the Managed Cluster. :type linux_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ContainerServiceLinuxProfile - :param windows_profile: Profile for Windows VMs in the container service cluster. + :param windows_profile: The profile for Windows VMs in the Managed Cluster. :type windows_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterWindowsProfile :param service_principal_profile: Information about a service principal identity for the cluster to use for manipulating Azure APIs. :type service_principal_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterServicePrincipalProfile - :param addon_profiles: Profile of managed cluster add-on. + :param addon_profiles: The profile of managed cluster add-on. :type addon_profiles: dict[str, ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAddonProfile] - :param pod_identity_profile: Profile of managed cluster pod identity. + :param pod_identity_profile: See `use AAD pod identity + `_ for more details on AAD pod + identity integration. :type pod_identity_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPodIdentityProfile - :param node_resource_group: Name of the resource group containing agent pool nodes. + :param node_resource_group: The name of the resource group containing agent pool nodes. :type node_resource_group: str :param enable_rbac: Whether to enable Kubernetes Role-Based Access Control. :type enable_rbac: bool @@ -565,22 +570,22 @@ class Components1Q1Og48SchemasManagedclusterAllof1(msrest.serialization.Model): policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy. :type enable_pod_security_policy: bool - :param network_profile: Profile of network configuration. + :param network_profile: The network configuration profile. :type network_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ContainerServiceNetworkProfile - :param aad_profile: Profile of Azure Active Directory configuration. + :param aad_profile: The Azure Active Directory configuration. :type aad_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAADProfile - :param auto_upgrade_profile: Profile of auto upgrade configuration. + :param auto_upgrade_profile: The auto upgrade configuration. :type auto_upgrade_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAutoUpgradeProfile :param auto_scaler_profile: Parameters to be applied to the cluster-autoscaler when enabled. :type auto_scaler_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPropertiesAutoScalerProfile - :param api_server_access_profile: Access profile for managed cluster API server. + :param api_server_access_profile: The access profile for managed cluster API server. :type api_server_access_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAPIServerAccessProfile - :param disk_encryption_set_id: ResourceId of the disk encryption set to use for enabling - encryption at rest. + :param disk_encryption_set_id: This is of the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}'. :type disk_encryption_set_id: str :param identity_profile: Identities associated with the cluster. :type identity_profile: dict[str, @@ -588,8 +593,10 @@ class Components1Q1Og48SchemasManagedclusterAllof1(msrest.serialization.Model): :param private_link_resources: Private link resources associated with the cluster. :type private_link_resources: list[~azure.mgmt.containerservice.v2021_05_01.models.PrivateLinkResource] - :param disable_local_accounts: If set to true, getting static credential will be disabled for - this cluster. Expected to only be used for AAD clusters. + :param disable_local_accounts: If set to true, getting static credentials will be disabled for + this cluster. This must only be used on Managed Clusters that are AAD enabled. For more details + see `disable local accounts + `_. :type disable_local_accounts: bool :param http_proxy_config: Configurations for provisioning the cluster with HTTP proxy servers. :type http_proxy_config: @@ -704,13 +711,13 @@ def __init__( class UserAssignedIdentity(msrest.serialization.Model): - """UserAssignedIdentity. + """Details about a user assigned identity. - :param resource_id: The resource id of the user assigned identity. + :param resource_id: The resource ID of the user assigned identity. :type resource_id: str - :param client_id: The client id of the user assigned identity. + :param client_id: The client ID of the user assigned identity. :type client_id: str - :param object_id: The object id of the user assigned identity. + :param object_id: The object ID of the user assigned identity. :type object_id: str """ @@ -733,11 +740,11 @@ def __init__( class ComponentsQit0EtSchemasManagedclusterpropertiesPropertiesIdentityprofileAdditionalproperties(UserAssignedIdentity): """ComponentsQit0EtSchemasManagedclusterpropertiesPropertiesIdentityprofileAdditionalproperties. - :param resource_id: The resource id of the user assigned identity. + :param resource_id: The resource ID of the user assigned identity. :type resource_id: str - :param client_id: The client id of the user assigned identity. + :param client_id: The client ID of the user assigned identity. :type client_id: str - :param object_id: The object id of the user assigned identity. + :param object_id: The object ID of the user assigned identity. :type object_id: str """ @@ -787,7 +794,7 @@ class ContainerServiceLinuxProfile(msrest.serialization.Model): :param admin_username: Required. The administrator username to use for Linux VMs. :type admin_username: str - :param ssh: Required. SSH configuration for Linux-based VMs running on Azure. + :param ssh: Required. The SSH configuration for Linux-based VMs running on Azure. :type ssh: ~azure.mgmt.containerservice.v2021_05_01.models.ContainerServiceSshConfiguration """ @@ -916,14 +923,14 @@ def __init__( class ContainerServiceNetworkProfile(msrest.serialization.Model): """Profile of network configuration. - :param network_plugin: Network plugin used for building Kubernetes network. Possible values + :param network_plugin: Network plugin used for building the Kubernetes network. Possible values include: "azure", "kubenet". Default value: "kubenet". :type network_plugin: str or ~azure.mgmt.containerservice.v2021_05_01.models.NetworkPlugin - :param network_policy: Network policy used for building Kubernetes network. Possible values + :param network_policy: Network policy used for building the Kubernetes network. Possible values include: "calico", "azure". :type network_policy: str or ~azure.mgmt.containerservice.v2021_05_01.models.NetworkPolicy - :param network_mode: Network mode used for building Kubernetes network. Possible values - include: "transparent", "bridge". + :param network_mode: This cannot be specified if networkPlugin is anything other than 'azure'. + Possible values include: "transparent", "bridge". :type network_mode: str or ~azure.mgmt.containerservice.v2021_05_01.models.NetworkMode :param pod_cidr: A CIDR notation IP range from which to assign pod IPs when kubenet is used. :type pod_cidr: str @@ -936,11 +943,14 @@ class ContainerServiceNetworkProfile(msrest.serialization.Model): :param docker_bridge_cidr: A CIDR notation IP range assigned to the Docker bridge network. It must not overlap with any Subnet IP ranges or the Kubernetes service address range. :type docker_bridge_cidr: str - :param outbound_type: The outbound (egress) routing method. Possible values include: + :param outbound_type: This can only be set at cluster creation time and cannot be changed + later. For more information see `egress outbound type + `_. Possible values include: "loadBalancer", "userDefinedRouting". Default value: "loadBalancer". :type outbound_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OutboundType - :param load_balancer_sku: The load balancer sku for the managed cluster. Possible values - include: "standard", "basic". + :param load_balancer_sku: The default is 'standard'. See `Azure Load Balancer SKUs + `_ for more information about the + differences between load balancer SKUs. Possible values include: "standard", "basic". :type load_balancer_sku: str or ~azure.mgmt.containerservice.v2021_05_01.models.LoadBalancerSku :param load_balancer_profile: Profile of the cluster load balancer. :type load_balancer_profile: @@ -990,7 +1000,7 @@ class ContainerServiceSshConfiguration(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param public_keys: Required. The list of SSH public keys used to authenticate with Linux-based - VMs. Only expect one key specified. + VMs. A maximum of 1 key may be specified. :type public_keys: list[~azure.mgmt.containerservice.v2021_05_01.models.ContainerServiceSshPublicKey] """ @@ -1100,7 +1110,7 @@ def __init__( class CredentialResults(msrest.serialization.Model): - """The list of credential result response. + """The list credential result response. Variables are only populated by the server, and will be ignored when sending a request. @@ -1202,24 +1212,30 @@ def __init__( class KubeletConfig(msrest.serialization.Model): - """Kubelet configurations of agent nodes. + """See `AKS custom node configuration `_ for more details. - :param cpu_manager_policy: CPU Manager policy to use. + :param cpu_manager_policy: The default is 'none'. See `Kubernetes CPU management policies + `_ + for more information. Allowed values are 'none' and 'static'. :type cpu_manager_policy: str - :param cpu_cfs_quota: Enable CPU CFS quota enforcement for containers that specify CPU limits. + :param cpu_cfs_quota: The default is true. :type cpu_cfs_quota: bool - :param cpu_cfs_quota_period: Sets CPU CFS quota period value. + :param cpu_cfs_quota_period: The default is '100ms.' Valid values are a sequence of decimal + numbers with an optional fraction and a unit suffix. For example: '300ms', '2h45m'. Supported + units are 'ns', 'us', 'ms', 's', 'm', and 'h'. :type cpu_cfs_quota_period: str - :param image_gc_high_threshold: The percent of disk usage after which image garbage collection - is always run. + :param image_gc_high_threshold: To disable image garbage collection, set to 100. The default is + 85%. :type image_gc_high_threshold: int - :param image_gc_low_threshold: The percent of disk usage before which image garbage collection - is never run. + :param image_gc_low_threshold: This cannot be set higher than imageGcHighThreshold. The default + is 80%. :type image_gc_low_threshold: int - :param topology_manager_policy: Topology Manager policy to use. + :param topology_manager_policy: For more information see `Kubernetes Topology Manager + `_. The default is + 'none'. Allowed values are 'none', 'best-effort', 'restricted', and 'single-numa-node'. :type topology_manager_policy: str - :param allowed_unsafe_sysctls: Allowlist of unsafe sysctls or unsafe sysctl patterns (ending in - ``*``\ ). + :param allowed_unsafe_sysctls: Allowed list of unsafe sysctls or unsafe sysctl patterns (ending + in ``*``\ ). :type allowed_unsafe_sysctls: list[str] :param fail_swap_on: If set to true it will make the Kubelet fail to start if swap is enabled on the node. @@ -1271,16 +1287,20 @@ def __init__( class LinuxOSConfig(msrest.serialization.Model): - """OS configurations of Linux agent nodes. + """See `AKS custom node configuration `_ for more details. :param sysctls: Sysctl settings for Linux agent nodes. :type sysctls: ~azure.mgmt.containerservice.v2021_05_01.models.SysctlConfig - :param transparent_huge_page_enabled: Transparent Huge Page enabled configuration. + :param transparent_huge_page_enabled: Valid values are 'always', 'madvise', and 'never'. The + default is 'always'. For more information see `Transparent Hugepages + `_. :type transparent_huge_page_enabled: str - :param transparent_huge_page_defrag: Transparent Huge Page defrag configuration. + :param transparent_huge_page_defrag: Valid values are 'always', 'defer', 'defer+madvise', + 'madvise' and 'never'. The default is 'madvise'. For more information see `Transparent + Hugepages + `_. :type transparent_huge_page_defrag: str - :param swap_file_size_mb: SwapFileSizeMB specifies size in MB of a swap file will be created on - each node. + :param swap_file_size_mb: The size in MB of a swap file that will be created on each node. :type swap_file_size_mb: int """ @@ -1303,7 +1323,7 @@ def __init__( class MaintenanceConfiguration(SubResource): - """maintenance configuration. + """See `planned maintenance `_ for more information about planned maintenance. Variables are only populated by the server, and will be ignored when sending a request. @@ -1314,9 +1334,10 @@ class MaintenanceConfiguration(SubResource): :vartype name: str :ivar type: Resource type. :vartype type: str - :ivar system_data: The system meta data relating to this resource. + :ivar system_data: The system metadata relating to this resource. :vartype system_data: ~azure.mgmt.containerservice.v2021_05_01.models.SystemData - :param time_in_week: Weekday time slots allowed to upgrade. + :param time_in_week: If two array entries specify the same day of the week, the applied + configuration is the union of times in both entries. :type time_in_week: list[~azure.mgmt.containerservice.v2021_05_01.models.TimeInWeek] :param not_allowed_time: Time slots on which upgrade is not allowed. :type not_allowed_time: list[~azure.mgmt.containerservice.v2021_05_01.models.TimeSpan] @@ -1432,46 +1453,52 @@ class ManagedCluster(Resource, Components1Q1Og48SchemasManagedclusterAllof1): :param identity: The identity of the managed cluster, if configured. :type identity: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterIdentity - :ivar provisioning_state: The current deployment or provisioning state, which only appears in - the response. + :ivar provisioning_state: The current provisioning state. :vartype provisioning_state: str - :ivar power_state: Represents the Power State of the cluster. + :ivar power_state: The Power State of the cluster. :vartype power_state: ~azure.mgmt.containerservice.v2021_05_01.models.PowerState :ivar max_agent_pools: The max number of agent pools for the managed cluster. :vartype max_agent_pools: int - :param kubernetes_version: Version of Kubernetes specified when creating the managed cluster. + :param kubernetes_version: When you upgrade a supported AKS cluster, Kubernetes minor versions + cannot be skipped. All upgrades must be performed sequentially by major version number. For + example, upgrades between 1.14.x -> 1.15.x or 1.15.x -> 1.16.x are allowed, however 1.14.x -> + 1.16.x is not allowed. See `upgrading an AKS cluster + `_ for more details. :type kubernetes_version: str - :param dns_prefix: DNS prefix specified when creating the managed cluster. + :param dns_prefix: This cannot be updated once the Managed Cluster has been created. :type dns_prefix: str - :param fqdn_subdomain: FQDN subdomain specified when creating private cluster with custom - private dns zone. + :param fqdn_subdomain: This cannot be updated once the Managed Cluster has been created. :type fqdn_subdomain: str - :ivar fqdn: FQDN for the master pool. + :ivar fqdn: The FQDN of the master pool. :vartype fqdn: str - :ivar private_fqdn: FQDN of private cluster. + :ivar private_fqdn: The FQDN of private cluster. :vartype private_fqdn: str - :ivar azure_portal_fqdn: FQDN for the master pool which used by proxy config. + :ivar azure_portal_fqdn: The Azure Portal requires certain Cross-Origin Resource Sharing (CORS) + headers to be sent in some responses, which Kubernetes APIServer doesn't handle by default. + This special FQDN supports CORS, allowing the Azure Portal to function properly. :vartype azure_portal_fqdn: str - :param agent_pool_profiles: Properties of the agent pool. + :param agent_pool_profiles: The agent pool properties. :type agent_pool_profiles: list[~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAgentPoolProfile] - :param linux_profile: Profile for Linux VMs in the container service cluster. + :param linux_profile: The profile for Linux VMs in the Managed Cluster. :type linux_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ContainerServiceLinuxProfile - :param windows_profile: Profile for Windows VMs in the container service cluster. + :param windows_profile: The profile for Windows VMs in the Managed Cluster. :type windows_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterWindowsProfile :param service_principal_profile: Information about a service principal identity for the cluster to use for manipulating Azure APIs. :type service_principal_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterServicePrincipalProfile - :param addon_profiles: Profile of managed cluster add-on. + :param addon_profiles: The profile of managed cluster add-on. :type addon_profiles: dict[str, ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAddonProfile] - :param pod_identity_profile: Profile of managed cluster pod identity. + :param pod_identity_profile: See `use AAD pod identity + `_ for more details on AAD pod + identity integration. :type pod_identity_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPodIdentityProfile - :param node_resource_group: Name of the resource group containing agent pool nodes. + :param node_resource_group: The name of the resource group containing agent pool nodes. :type node_resource_group: str :param enable_rbac: Whether to enable Kubernetes Role-Based Access Control. :type enable_rbac: bool @@ -1479,22 +1506,22 @@ class ManagedCluster(Resource, Components1Q1Og48SchemasManagedclusterAllof1): policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy. :type enable_pod_security_policy: bool - :param network_profile: Profile of network configuration. + :param network_profile: The network configuration profile. :type network_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ContainerServiceNetworkProfile - :param aad_profile: Profile of Azure Active Directory configuration. + :param aad_profile: The Azure Active Directory configuration. :type aad_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAADProfile - :param auto_upgrade_profile: Profile of auto upgrade configuration. + :param auto_upgrade_profile: The auto upgrade configuration. :type auto_upgrade_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAutoUpgradeProfile :param auto_scaler_profile: Parameters to be applied to the cluster-autoscaler when enabled. :type auto_scaler_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPropertiesAutoScalerProfile - :param api_server_access_profile: Access profile for managed cluster API server. + :param api_server_access_profile: The access profile for managed cluster API server. :type api_server_access_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAPIServerAccessProfile - :param disk_encryption_set_id: ResourceId of the disk encryption set to use for enabling - encryption at rest. + :param disk_encryption_set_id: This is of the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}'. :type disk_encryption_set_id: str :param identity_profile: Identities associated with the cluster. :type identity_profile: dict[str, @@ -1502,8 +1529,10 @@ class ManagedCluster(Resource, Components1Q1Og48SchemasManagedclusterAllof1): :param private_link_resources: Private link resources associated with the cluster. :type private_link_resources: list[~azure.mgmt.containerservice.v2021_05_01.models.PrivateLinkResource] - :param disable_local_accounts: If set to true, getting static credential will be disabled for - this cluster. Expected to only be used for AAD clusters. + :param disable_local_accounts: If set to true, getting static credentials will be disabled for + this cluster. This must only be used on Managed Clusters that are AAD enabled. For more details + see `disable local accounts + `_. :type disable_local_accounts: bool :param http_proxy_config: Configurations for provisioning the cluster with HTTP proxy servers. :type http_proxy_config: @@ -1622,13 +1651,14 @@ def __init__( class ManagedClusterAADProfile(msrest.serialization.Model): - """AADProfile specifies attributes for Azure Active Directory integration. + """For more details see `managed AAD on AKS `_. :param managed: Whether to enable managed AAD. :type managed: bool :param enable_azure_rbac: Whether to enable Azure RBAC for Kubernetes authorization. :type enable_azure_rbac: bool - :param admin_group_object_i_ds: AAD group object IDs that will have admin role of the cluster. + :param admin_group_object_i_ds: The list of AAD group object IDs that will have admin role of + the cluster. :type admin_group_object_i_ds: list[str] :param client_app_id: The client AAD application ID. :type client_app_id: str @@ -1750,11 +1780,11 @@ def __init__( class ManagedClusterAddonProfileIdentity(UserAssignedIdentity): """Information of user assigned identity used by this add-on. - :param resource_id: The resource id of the user assigned identity. + :param resource_id: The resource ID of the user assigned identity. :type resource_id: str - :param client_id: The client id of the user assigned identity. + :param client_id: The client ID of the user assigned identity. :type client_id: str - :param object_id: The object id of the user assigned identity. + :param object_id: The object ID of the user assigned identity. :type object_id: str """ @@ -1780,106 +1810,122 @@ class ManagedClusterAgentPoolProfileProperties(msrest.serialization.Model): range of 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default value is 1. :type count: int - :param vm_size: Size of agent VMs. + :param vm_size: VM size availability varies by region. If a node contains insufficient compute + resources (memory, cpu, etc) pods might fail to run correctly. For more details on restricted + VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions. :type vm_size: str :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every - machine in this master/agent pool. If you specify 0, it will apply the default osDisk size + machine in the master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified. :type os_disk_size_gb: int - :param os_disk_type: OS disk type to be used for machines in a given agent pool. Allowed values - are 'Ephemeral' and 'Managed'. If unspecified, defaults to 'Ephemeral' when the VM supports - ephemeral OS and has a cache disk larger than the requested OSDiskSizeGB. Otherwise, defaults - to 'Managed'. May not be changed after creation. Possible values include: "Managed", - "Ephemeral". + :param os_disk_type: The default is 'Ephemeral' if the VM supports it and has a cache disk + larger than the requested OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed + after creation. For more information see `Ephemeral OS + `_. Possible values + include: "Managed", "Ephemeral". :type os_disk_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSDiskType - :param kubelet_disk_type: KubeletDiskType determines the placement of emptyDir volumes, - container runtime data root, and Kubelet ephemeral storage. Currently allows one value, OS, - resulting in Kubelet using the OS disk for data. Possible values include: "OS", "Temporary". + :param kubelet_disk_type: Determines the placement of emptyDir volumes, container runtime data + root, and Kubelet ephemeral storage. Possible values include: "OS", "Temporary". :type kubelet_disk_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.KubeletDiskType - :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet identifier for nodes and maybe - pods. + :param vnet_subnet_id: If this is not specified, a VNET and subnet will be generated and used. + If no podSubnetID is specified, this applies to nodes and pods, otherwise it applies to just + nodes. This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. :type vnet_subnet_id: str - :param pod_subnet_id: Pod SubnetID specifies the VNet's subnet identifier for pods. + :param pod_subnet_id: If omitted, pod IPs are statically assigned on the node subnet (see + vnetSubnetID for more details). This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. :type pod_subnet_id: str - :param max_pods: Maximum number of pods that can run on a node. + :param max_pods: The maximum number of pods that can run on a node. :type max_pods: int - :param os_type: OsType to be used to specify os type. Choose from Linux and Windows. Default to - Linux. Possible values include: "Linux", "Windows". Default value: "Linux". + :param os_type: The operating system type. The default is Linux. Possible values include: + "Linux", "Windows". Default value: "Linux". :type os_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSType - :param os_sku: OsSKU to be used to specify os sku. Choose from Ubuntu(default) and CBLMariner - for Linux OSType. Not applicable to Windows OSType. Possible values include: "Ubuntu", - "CBLMariner". + :param os_sku: Specifies an OS SKU. This value must not be specified if OSType is Windows. + Possible values include: "Ubuntu", "CBLMariner". :type os_sku: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSSKU - :param max_count: Maximum number of nodes for auto-scaling. + :param max_count: The maximum number of nodes for auto-scaling. :type max_count: int - :param min_count: Minimum number of nodes for auto-scaling. + :param min_count: The minimum number of nodes for auto-scaling. :type min_count: int :param enable_auto_scaling: Whether to enable auto-scaler. :type enable_auto_scaling: bool - :param type: AgentPoolType represents types of an agent pool. Possible values include: - "VirtualMachineScaleSets", "AvailabilitySet". + :param type: The type of Agent Pool. Possible values include: "VirtualMachineScaleSets", + "AvailabilitySet". :type type: str or ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolType - :param mode: AgentPoolMode represents mode of an agent pool. Possible values include: "System", + :param mode: A cluster must have at least one 'System' Agent Pool at all times. For additional + information on agent pool restrictions and best practices, see: + https://docs.microsoft.com/azure/aks/use-system-pools. Possible values include: "System", "User". :type mode: str or ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolMode - :param orchestrator_version: Version of orchestrator specified when creating the managed - cluster. + :param orchestrator_version: As a best practice, you should upgrade all node pools in an AKS + cluster to the same Kubernetes version. The node pool version must have the same major version + as the control plane. The node pool minor version must be within two minor versions of the + control plane version. The node pool version cannot be greater than the control plane version. + For more information see `upgrading a node pool + `_. :type orchestrator_version: str - :ivar node_image_version: Version of node image. + :ivar node_image_version: The version of node image. :vartype node_image_version: str :param upgrade_settings: Settings for upgrading the agentpool. :type upgrade_settings: ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolUpgradeSettings - :ivar provisioning_state: The current deployment or provisioning state, which only appears in - the response. + :ivar provisioning_state: The current deployment or provisioning state. :vartype provisioning_state: str :ivar power_state: Describes whether the Agent Pool is Running or Stopped. :vartype power_state: ~azure.mgmt.containerservice.v2021_05_01.models.PowerState - :param availability_zones: Availability zones for nodes. Must use VirtualMachineScaleSets - AgentPoolType. + :param availability_zones: The list of Availability zones to use for nodes. This can only be + specified if the AgentPoolType property is 'VirtualMachineScaleSets'. :type availability_zones: list[str] - :param enable_node_public_ip: Enable public IP for nodes. + :param enable_node_public_ip: Some scenarios may require nodes in a node pool to receive their + own dedicated public IP addresses. A common scenario is for gaming workloads, where a console + needs to make a direct connection to a cloud virtual machine to minimize hops. For more + information see `assigning a public IP per node + `_. + The default is false. :type enable_node_public_ip: bool - :param node_public_ip_prefix_id: Public IP Prefix ID. VM nodes use IPs assigned from this - Public IP Prefix. + :param node_public_ip_prefix_id: This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}. :type node_public_ip_prefix_id: str - :param scale_set_priority: ScaleSetPriority to be used to specify virtual machine scale set - priority. Default to regular. Possible values include: "Spot", "Regular". Default value: - "Regular". + :param scale_set_priority: The Virtual Machine Scale Set priority. If not specified, the + default is 'Regular'. Possible values include: "Spot", "Regular". Default value: "Regular". :type scale_set_priority: str or ~azure.mgmt.containerservice.v2021_05_01.models.ScaleSetPriority - :param scale_set_eviction_policy: ScaleSetEvictionPolicy to be used to specify eviction policy - for Spot virtual machine scale set. Default to Delete. Possible values include: "Delete", + :param scale_set_eviction_policy: This cannot be specified unless the scaleSetPriority is + 'Spot'. If not specified, the default is 'Delete'. Possible values include: "Delete", "Deallocate". Default value: "Delete". :type scale_set_eviction_policy: str or ~azure.mgmt.containerservice.v2021_05_01.models.ScaleSetEvictionPolicy - :param spot_max_price: SpotMaxPrice to be used to specify the maximum price you are willing to - pay in US Dollars. Possible values are any decimal value greater than zero or -1 which - indicates default price to be up-to on-demand. + :param spot_max_price: Possible values are any decimal value greater than zero or -1 which + indicates the willingness to pay any on-demand price. For more details on spot pricing, see + `spot VMs pricing `_. :type spot_max_price: float - :param tags: A set of tags. Agent pool tags to be persisted on the agent pool virtual machine - scale set. + :param tags: A set of tags. The tags to be persisted on the agent pool virtual machine scale + set. :type tags: dict[str, str] - :param node_labels: Agent pool node labels to be persisted across all nodes in agent pool. + :param node_labels: The node labels to be persisted across all nodes in agent pool. :type node_labels: dict[str, str] - :param node_taints: Taints added to new nodes during node pool create and scale. For example, - key=value:NoSchedule. + :param node_taints: The taints added to new nodes during node pool create and scale. For + example, key=value:NoSchedule. :type node_taints: list[str] :param proximity_placement_group_id: The ID for Proximity Placement Group. :type proximity_placement_group_id: str - :param kubelet_config: KubeletConfig specifies the configuration of kubelet on agent nodes. + :param kubelet_config: The Kubelet configuration on the agent pool nodes. :type kubelet_config: ~azure.mgmt.containerservice.v2021_05_01.models.KubeletConfig - :param linux_os_config: LinuxOSConfig specifies the OS configuration of linux agent nodes. + :param linux_os_config: The OS configuration of Linux agent nodes. :type linux_os_config: ~azure.mgmt.containerservice.v2021_05_01.models.LinuxOSConfig - :param enable_encryption_at_host: Whether to enable EncryptionAtHost. + :param enable_encryption_at_host: This is only supported on certain VM sizes and in certain + Azure regions. For more information, see: + https://docs.microsoft.com/azure/aks/enable-host-encryption. :type enable_encryption_at_host: bool :param enable_ultra_ssd: Whether to enable UltraSSD. :type enable_ultra_ssd: bool - :param enable_fips: Whether to use FIPS enabled OS. + :param enable_fips: See `Add a FIPS-enabled node pool + `_ + for more details. :type enable_fips: bool :param gpu_instance_profile: GPUInstanceProfile to be used to specify GPU MIG instance profile - for supported GPU VM SKU. Supported values are MIG1g, MIG2g, MIG3g, MIG4g and MIG7g. Possible - values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". + for supported GPU VM SKU. Possible values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". :type gpu_instance_profile: str or ~azure.mgmt.containerservice.v2021_05_01.models.GPUInstanceProfile """ @@ -1984,110 +2030,125 @@ class ManagedClusterAgentPoolProfile(ManagedClusterAgentPoolProfileProperties): range of 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default value is 1. :type count: int - :param vm_size: Size of agent VMs. + :param vm_size: VM size availability varies by region. If a node contains insufficient compute + resources (memory, cpu, etc) pods might fail to run correctly. For more details on restricted + VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions. :type vm_size: str :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every - machine in this master/agent pool. If you specify 0, it will apply the default osDisk size + machine in the master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified. :type os_disk_size_gb: int - :param os_disk_type: OS disk type to be used for machines in a given agent pool. Allowed values - are 'Ephemeral' and 'Managed'. If unspecified, defaults to 'Ephemeral' when the VM supports - ephemeral OS and has a cache disk larger than the requested OSDiskSizeGB. Otherwise, defaults - to 'Managed'. May not be changed after creation. Possible values include: "Managed", - "Ephemeral". + :param os_disk_type: The default is 'Ephemeral' if the VM supports it and has a cache disk + larger than the requested OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed + after creation. For more information see `Ephemeral OS + `_. Possible values + include: "Managed", "Ephemeral". :type os_disk_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSDiskType - :param kubelet_disk_type: KubeletDiskType determines the placement of emptyDir volumes, - container runtime data root, and Kubelet ephemeral storage. Currently allows one value, OS, - resulting in Kubelet using the OS disk for data. Possible values include: "OS", "Temporary". + :param kubelet_disk_type: Determines the placement of emptyDir volumes, container runtime data + root, and Kubelet ephemeral storage. Possible values include: "OS", "Temporary". :type kubelet_disk_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.KubeletDiskType - :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet identifier for nodes and maybe - pods. + :param vnet_subnet_id: If this is not specified, a VNET and subnet will be generated and used. + If no podSubnetID is specified, this applies to nodes and pods, otherwise it applies to just + nodes. This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. :type vnet_subnet_id: str - :param pod_subnet_id: Pod SubnetID specifies the VNet's subnet identifier for pods. + :param pod_subnet_id: If omitted, pod IPs are statically assigned on the node subnet (see + vnetSubnetID for more details). This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. :type pod_subnet_id: str - :param max_pods: Maximum number of pods that can run on a node. + :param max_pods: The maximum number of pods that can run on a node. :type max_pods: int - :param os_type: OsType to be used to specify os type. Choose from Linux and Windows. Default to - Linux. Possible values include: "Linux", "Windows". Default value: "Linux". + :param os_type: The operating system type. The default is Linux. Possible values include: + "Linux", "Windows". Default value: "Linux". :type os_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSType - :param os_sku: OsSKU to be used to specify os sku. Choose from Ubuntu(default) and CBLMariner - for Linux OSType. Not applicable to Windows OSType. Possible values include: "Ubuntu", - "CBLMariner". + :param os_sku: Specifies an OS SKU. This value must not be specified if OSType is Windows. + Possible values include: "Ubuntu", "CBLMariner". :type os_sku: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSSKU - :param max_count: Maximum number of nodes for auto-scaling. + :param max_count: The maximum number of nodes for auto-scaling. :type max_count: int - :param min_count: Minimum number of nodes for auto-scaling. + :param min_count: The minimum number of nodes for auto-scaling. :type min_count: int :param enable_auto_scaling: Whether to enable auto-scaler. :type enable_auto_scaling: bool - :param type: AgentPoolType represents types of an agent pool. Possible values include: - "VirtualMachineScaleSets", "AvailabilitySet". + :param type: The type of Agent Pool. Possible values include: "VirtualMachineScaleSets", + "AvailabilitySet". :type type: str or ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolType - :param mode: AgentPoolMode represents mode of an agent pool. Possible values include: "System", + :param mode: A cluster must have at least one 'System' Agent Pool at all times. For additional + information on agent pool restrictions and best practices, see: + https://docs.microsoft.com/azure/aks/use-system-pools. Possible values include: "System", "User". :type mode: str or ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolMode - :param orchestrator_version: Version of orchestrator specified when creating the managed - cluster. + :param orchestrator_version: As a best practice, you should upgrade all node pools in an AKS + cluster to the same Kubernetes version. The node pool version must have the same major version + as the control plane. The node pool minor version must be within two minor versions of the + control plane version. The node pool version cannot be greater than the control plane version. + For more information see `upgrading a node pool + `_. :type orchestrator_version: str - :ivar node_image_version: Version of node image. + :ivar node_image_version: The version of node image. :vartype node_image_version: str :param upgrade_settings: Settings for upgrading the agentpool. :type upgrade_settings: ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolUpgradeSettings - :ivar provisioning_state: The current deployment or provisioning state, which only appears in - the response. + :ivar provisioning_state: The current deployment or provisioning state. :vartype provisioning_state: str :ivar power_state: Describes whether the Agent Pool is Running or Stopped. :vartype power_state: ~azure.mgmt.containerservice.v2021_05_01.models.PowerState - :param availability_zones: Availability zones for nodes. Must use VirtualMachineScaleSets - AgentPoolType. + :param availability_zones: The list of Availability zones to use for nodes. This can only be + specified if the AgentPoolType property is 'VirtualMachineScaleSets'. :type availability_zones: list[str] - :param enable_node_public_ip: Enable public IP for nodes. + :param enable_node_public_ip: Some scenarios may require nodes in a node pool to receive their + own dedicated public IP addresses. A common scenario is for gaming workloads, where a console + needs to make a direct connection to a cloud virtual machine to minimize hops. For more + information see `assigning a public IP per node + `_. + The default is false. :type enable_node_public_ip: bool - :param node_public_ip_prefix_id: Public IP Prefix ID. VM nodes use IPs assigned from this - Public IP Prefix. + :param node_public_ip_prefix_id: This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}. :type node_public_ip_prefix_id: str - :param scale_set_priority: ScaleSetPriority to be used to specify virtual machine scale set - priority. Default to regular. Possible values include: "Spot", "Regular". Default value: - "Regular". + :param scale_set_priority: The Virtual Machine Scale Set priority. If not specified, the + default is 'Regular'. Possible values include: "Spot", "Regular". Default value: "Regular". :type scale_set_priority: str or ~azure.mgmt.containerservice.v2021_05_01.models.ScaleSetPriority - :param scale_set_eviction_policy: ScaleSetEvictionPolicy to be used to specify eviction policy - for Spot virtual machine scale set. Default to Delete. Possible values include: "Delete", + :param scale_set_eviction_policy: This cannot be specified unless the scaleSetPriority is + 'Spot'. If not specified, the default is 'Delete'. Possible values include: "Delete", "Deallocate". Default value: "Delete". :type scale_set_eviction_policy: str or ~azure.mgmt.containerservice.v2021_05_01.models.ScaleSetEvictionPolicy - :param spot_max_price: SpotMaxPrice to be used to specify the maximum price you are willing to - pay in US Dollars. Possible values are any decimal value greater than zero or -1 which - indicates default price to be up-to on-demand. + :param spot_max_price: Possible values are any decimal value greater than zero or -1 which + indicates the willingness to pay any on-demand price. For more details on spot pricing, see + `spot VMs pricing `_. :type spot_max_price: float - :param tags: A set of tags. Agent pool tags to be persisted on the agent pool virtual machine - scale set. + :param tags: A set of tags. The tags to be persisted on the agent pool virtual machine scale + set. :type tags: dict[str, str] - :param node_labels: Agent pool node labels to be persisted across all nodes in agent pool. + :param node_labels: The node labels to be persisted across all nodes in agent pool. :type node_labels: dict[str, str] - :param node_taints: Taints added to new nodes during node pool create and scale. For example, - key=value:NoSchedule. + :param node_taints: The taints added to new nodes during node pool create and scale. For + example, key=value:NoSchedule. :type node_taints: list[str] :param proximity_placement_group_id: The ID for Proximity Placement Group. :type proximity_placement_group_id: str - :param kubelet_config: KubeletConfig specifies the configuration of kubelet on agent nodes. + :param kubelet_config: The Kubelet configuration on the agent pool nodes. :type kubelet_config: ~azure.mgmt.containerservice.v2021_05_01.models.KubeletConfig - :param linux_os_config: LinuxOSConfig specifies the OS configuration of linux agent nodes. + :param linux_os_config: The OS configuration of Linux agent nodes. :type linux_os_config: ~azure.mgmt.containerservice.v2021_05_01.models.LinuxOSConfig - :param enable_encryption_at_host: Whether to enable EncryptionAtHost. + :param enable_encryption_at_host: This is only supported on certain VM sizes and in certain + Azure regions. For more information, see: + https://docs.microsoft.com/azure/aks/enable-host-encryption. :type enable_encryption_at_host: bool :param enable_ultra_ssd: Whether to enable UltraSSD. :type enable_ultra_ssd: bool - :param enable_fips: Whether to use FIPS enabled OS. + :param enable_fips: See `Add a FIPS-enabled node pool + `_ + for more details. :type enable_fips: bool :param gpu_instance_profile: GPUInstanceProfile to be used to specify GPU MIG instance profile - for supported GPU VM SKU. Supported values are MIG1g, MIG2g, MIG3g, MIG4g and MIG7g. Possible - values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". + for supported GPU VM SKU. Possible values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". :type gpu_instance_profile: str or ~azure.mgmt.containerservice.v2021_05_01.models.GPUInstanceProfile - :param name: Required. Unique name of the agent pool profile in the context of the subscription - and resource group. + :param name: Required. Windows agent pool names must be 6 characters or less. :type name: str """ @@ -2150,11 +2211,17 @@ def __init__( class ManagedClusterAPIServerAccessProfile(msrest.serialization.Model): """Access profile for managed cluster API server. - :param authorized_ip_ranges: Authorized IP Ranges to kubernetes API server. + :param authorized_ip_ranges: IP ranges are specified in CIDR format, e.g. 137.117.106.88/29. + This feature is not compatible with clusters that use Public IP Per Node, or clusters that are + using a Basic Load Balancer. For more information see `API server authorized IP ranges + `_. :type authorized_ip_ranges: list[str] - :param enable_private_cluster: Whether to create the cluster as a private cluster or not. + :param enable_private_cluster: For more details, see `Creating a private AKS cluster + `_. :type enable_private_cluster: bool - :param private_dns_zone: Private dns zone mode for private cluster. + :param private_dns_zone: The default is System. For more details see `configure private DNS + zone `_. + Allowed values are 'system' and 'none'. :type private_dns_zone: str :param enable_private_cluster_public_fqdn: Whether to create additional public FQDN for private cluster or not. @@ -2182,8 +2249,9 @@ def __init__( class ManagedClusterAutoUpgradeProfile(msrest.serialization.Model): """Auto upgrade profile for a managed cluster. - :param upgrade_channel: upgrade channel for auto upgrade. Possible values include: "rapid", - "stable", "patch", "node-image", "none". + :param upgrade_channel: For more information see `setting the AKS cluster auto-upgrade channel + `_. Possible + values include: "rapid", "stable", "patch", "node-image", "none". :type upgrade_channel: str or ~azure.mgmt.containerservice.v2021_05_01.models.UpgradeChannel """ @@ -2200,13 +2268,13 @@ def __init__( class ManagedClusterHTTPProxyConfig(msrest.serialization.Model): - """Configurations for provisioning the cluster with HTTP proxy servers. + """Cluster HTTP proxy configuration. - :param http_proxy: HTTP proxy server endpoint to use. + :param http_proxy: The HTTP proxy server endpoint to use. :type http_proxy: str - :param https_proxy: HTTPS proxy server endpoint to use. + :param https_proxy: The HTTPS proxy server endpoint to use. :type https_proxy: str - :param no_proxy: Endpoints that should not go through proxy. + :param no_proxy: The endpoints that should not go through proxy. :type no_proxy: list[str] :param trusted_ca: Alternative CA cert to use for connecting to proxy servers. :type trusted_ca: str @@ -2241,15 +2309,11 @@ class ManagedClusterIdentity(msrest.serialization.Model): :ivar tenant_id: The tenant id of the system assigned identity which is used by master components. :vartype tenant_id: str - :param type: The type of identity used for the managed cluster. Type 'SystemAssigned' will use - an implicitly created identity in master components and an auto-created user assigned identity - in MC_ resource group in agent nodes. Type 'None' will not use MSI for the managed cluster, - service principal will be used instead. Possible values include: "SystemAssigned", - "UserAssigned", "None". + :param type: For more information see `use managed identities in AKS + `_. Possible values include: + "SystemAssigned", "UserAssigned", "None". :type type: str or ~azure.mgmt.containerservice.v2021_05_01.models.ResourceIdentityType - :param user_assigned_identities: The user identity associated with the managed cluster. This - identity will be used in control plane and only one user assigned identity is allowed. The user - identity dictionary key references will be ARM resource ids in the form: + :param user_assigned_identities: The keys must be ARM resource IDs in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. :type user_assigned_identities: dict[str, ~azure.mgmt.containerservice.v2021_05_01.models.Components1Umhcm8SchemasManagedclusteridentityPropertiesUserassignedidentitiesAdditionalproperties] @@ -2324,12 +2388,12 @@ class ManagedClusterLoadBalancerProfile(msrest.serialization.Model): balancer. :type effective_outbound_i_ps: list[~azure.mgmt.containerservice.v2021_05_01.models.ResourceReference] - :param allocated_outbound_ports: Desired number of allocated SNAT ports per VM. Allowed values - must be in the range of 0 to 64000 (inclusive). The default value is 0 which results in Azure - dynamically allocating ports. + :param allocated_outbound_ports: The desired number of allocated SNAT ports per VM. Allowed + values are in the range of 0 to 64000 (inclusive). The default value is 0 which results in + Azure dynamically allocating ports. :type allocated_outbound_ports: int :param idle_timeout_in_minutes: Desired outbound flow idle timeout in minutes. Allowed values - must be in the range of 4 to 120 (inclusive). The default value is 30 minutes. + are in the range of 4 to 120 (inclusive). The default value is 30 minutes. :type idle_timeout_in_minutes: int """ @@ -2363,7 +2427,7 @@ def __init__( class ManagedClusterLoadBalancerProfileManagedOutboundIPs(msrest.serialization.Model): """Desired managed outbound IPs for the cluster load balancer. - :param count: Desired number of outbound IP created/managed by Azure for the cluster load + :param count: The desired number of outbound IPs created/managed by Azure for the cluster load balancer. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1. :type count: int """ @@ -2424,19 +2488,19 @@ def __init__( class ManagedClusterPodIdentity(msrest.serialization.Model): - """ManagedClusterPodIdentity. + """Details about the pod identity assigned to the Managed Cluster. 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 name: Required. Name of the pod identity. + :param name: Required. The name of the pod identity. :type name: str - :param namespace: Required. Namespace of the pod identity. + :param namespace: Required. The namespace of the pod identity. :type namespace: str - :param binding_selector: Binding selector to use for the AzureIdentityBinding resource. + :param binding_selector: The binding selector to use for the AzureIdentityBinding resource. :type binding_selector: str - :param identity: Required. Information of the user assigned identity. + :param identity: Required. The user assigned identity details. :type identity: ~azure.mgmt.containerservice.v2021_05_01.models.UserAssignedIdentity :ivar provisioning_state: The current provisioning state of the pod identity. Possible values include: "Assigned", "Updating", "Deleting", "Failed". @@ -2478,15 +2542,15 @@ def __init__( class ManagedClusterPodIdentityException(msrest.serialization.Model): - """ManagedClusterPodIdentityException. + """See `disable AAD Pod Identity for a specific Pod/Application `_ for more details. All required parameters must be populated in order to send to Azure. - :param name: Required. Name of the pod identity exception. + :param name: Required. The name of the pod identity exception. :type name: str - :param namespace: Required. Namespace of the pod identity exception. + :param namespace: Required. The namespace of the pod identity exception. :type namespace: str - :param pod_labels: Required. Pod labels to match. + :param pod_labels: Required. The pod labels to match. :type pod_labels: dict[str, str] """ @@ -2513,17 +2577,20 @@ def __init__( class ManagedClusterPodIdentityProfile(msrest.serialization.Model): - """ManagedClusterPodIdentityProfile. + """See `use AAD pod identity `_ for more details on pod identity integration. :param enabled: Whether the pod identity addon is enabled. :type enabled: bool - :param allow_network_plugin_kubenet: Customer consent for enabling AAD pod identity addon in - cluster using Kubenet network plugin. + :param allow_network_plugin_kubenet: Running in Kubenet is disabled by default due to the + security related nature of AAD Pod Identity and the risks of IP spoofing. See `using Kubenet + network plugin with AAD Pod Identity + `_ + for more information. :type allow_network_plugin_kubenet: bool - :param user_assigned_identities: User assigned pod identity settings. + :param user_assigned_identities: The pod identities to use in the cluster. :type user_assigned_identities: list[~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPodIdentity] - :param user_assigned_identity_exceptions: User assigned pod identity exception settings. + :param user_assigned_identity_exceptions: The pod identity exceptions to allow. :type user_assigned_identity_exceptions: list[~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPodIdentityException] """ @@ -2546,15 +2613,71 @@ def __init__( self.user_assigned_identity_exceptions = kwargs.get('user_assigned_identity_exceptions', None) +class ManagedClusterPodIdentityProvisioningError(msrest.serialization.Model): + """An error response from the pod identity provisioning. + + :param error: Details about the error. + :type error: + ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPodIdentityProvisioningErrorBody + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ManagedClusterPodIdentityProvisioningErrorBody'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterPodIdentityProvisioningError, self).__init__(**kwargs) + self.error = kwargs.get('error', None) + + +class ManagedClusterPodIdentityProvisioningErrorBody(msrest.serialization.Model): + """An error response from the pod identity provisioning. + + :param code: An identifier for the error. Codes are invariant and are intended to be consumed + programmatically. + :type code: str + :param message: A message describing the error, intended to be suitable for display in a user + interface. + :type message: str + :param target: The target of the particular error. For example, the name of the property in + error. + :type target: str + :param details: A list of additional details about the error. + :type details: + list[~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPodIdentityProvisioningErrorBody] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[ManagedClusterPodIdentityProvisioningErrorBody]'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterPodIdentityProvisioningErrorBody, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.target = kwargs.get('target', None) + self.details = kwargs.get('details', None) + + class ManagedClusterPodIdentityProvisioningInfo(msrest.serialization.Model): """ManagedClusterPodIdentityProvisioningInfo. :param error: Pod identity assignment error (if any). - :type error: ~azure.mgmt.containerservice.v2021_05_01.models.CloudError + :type error: + ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPodIdentityProvisioningError """ _attribute_map = { - 'error': {'key': 'error', 'type': 'CloudError'}, + 'error': {'key': 'error', 'type': 'ManagedClusterPodIdentityProvisioningError'}, } def __init__( @@ -2570,12 +2693,12 @@ class ManagedClusterPoolUpgradeProfile(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :param kubernetes_version: Required. Kubernetes version (major, minor, patch). + :param kubernetes_version: Required. The Kubernetes version (major.minor.patch). :type kubernetes_version: str - :param name: Pool name. + :param name: The Agent Pool name. :type name: str - :param os_type: Required. OsType to be used to specify os type. Choose from Linux and Windows. - Default to Linux. Possible values include: "Linux", "Windows". Default value: "Linux". + :param os_type: Required. The operating system type. The default is Linux. Possible values + include: "Linux", "Windows". Default value: "Linux". :type os_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSType :param upgrades: List of orchestrator types and versions available for upgrade. :type upgrades: @@ -2608,9 +2731,9 @@ def __init__( class ManagedClusterPoolUpgradeProfileUpgradesItem(msrest.serialization.Model): """ManagedClusterPoolUpgradeProfileUpgradesItem. - :param kubernetes_version: Kubernetes version (major, minor, patch). + :param kubernetes_version: The Kubernetes version (major.minor.patch). :type kubernetes_version: str - :param is_preview: Whether Kubernetes version is currently in preview. + :param is_preview: Whether the Kubernetes version is currently in preview. :type is_preview: bool """ @@ -2631,39 +2754,52 @@ def __init__( class ManagedClusterPropertiesAutoScalerProfile(msrest.serialization.Model): """Parameters to be applied to the cluster-autoscaler when enabled. - :param balance_similar_node_groups: + :param balance_similar_node_groups: Valid values are 'true' and 'false'. :type balance_similar_node_groups: str - :param expander: Possible values include: "least-waste", "most-pods", "priority", "random". + :param expander: If not specified, the default is 'random'. See `expanders + `_ + for more information. Possible values include: "least-waste", "most-pods", "priority", + "random". :type expander: str or ~azure.mgmt.containerservice.v2021_05_01.models.Expander - :param max_empty_bulk_delete: + :param max_empty_bulk_delete: The default is 10. :type max_empty_bulk_delete: str - :param max_graceful_termination_sec: + :param max_graceful_termination_sec: The default is 600. :type max_graceful_termination_sec: str - :param max_node_provision_time: + :param max_node_provision_time: The default is '15m'. Values must be an integer followed by an + 'm'. No unit of time other than minutes (m) is supported. :type max_node_provision_time: str - :param max_total_unready_percentage: + :param max_total_unready_percentage: The default is 45. The maximum is 100 and the minimum is + 0. :type max_total_unready_percentage: str - :param new_pod_scale_up_delay: + :param new_pod_scale_up_delay: For scenarios like burst/batch scale where you don't want CA to + act before the kubernetes scheduler could schedule all the pods, you can tell CA to ignore + unscheduled pods before they're a certain age. The default is '0s'. Values must be an integer + followed by a unit ('s' for seconds, 'm' for minutes, 'h' for hours, etc). :type new_pod_scale_up_delay: str - :param ok_total_unready_count: + :param ok_total_unready_count: This must be an integer. The default is 3. :type ok_total_unready_count: str - :param scan_interval: + :param scan_interval: The default is '10'. Values must be an integer number of seconds. :type scan_interval: str - :param scale_down_delay_after_add: + :param scale_down_delay_after_add: The default is '10m'. Values must be an integer followed by + an 'm'. No unit of time other than minutes (m) is supported. :type scale_down_delay_after_add: str - :param scale_down_delay_after_delete: + :param scale_down_delay_after_delete: The default is the scan-interval. Values must be an + integer followed by an 'm'. No unit of time other than minutes (m) is supported. :type scale_down_delay_after_delete: str - :param scale_down_delay_after_failure: + :param scale_down_delay_after_failure: The default is '3m'. Values must be an integer followed + by an 'm'. No unit of time other than minutes (m) is supported. :type scale_down_delay_after_failure: str - :param scale_down_unneeded_time: + :param scale_down_unneeded_time: The default is '10m'. Values must be an integer followed by an + 'm'. No unit of time other than minutes (m) is supported. :type scale_down_unneeded_time: str - :param scale_down_unready_time: + :param scale_down_unready_time: The default is '20m'. Values must be an integer followed by an + 'm'. No unit of time other than minutes (m) is supported. :type scale_down_unready_time: str - :param scale_down_utilization_threshold: + :param scale_down_utilization_threshold: The default is '0.5'. :type scale_down_utilization_threshold: str - :param skip_nodes_with_local_storage: + :param skip_nodes_with_local_storage: The default is true. :type skip_nodes_with_local_storage: str - :param skip_nodes_with_system_pods: + :param skip_nodes_with_system_pods: The default is true. :type skip_nodes_with_system_pods: str """ @@ -2741,11 +2877,13 @@ def __init__( class ManagedClusterSKU(msrest.serialization.Model): - """ManagedClusterSKU. + """The SKU of a Managed Cluster. - :param name: Name of a managed cluster SKU. Possible values include: "Basic". + :param name: The name of a managed cluster SKU. Possible values include: "Basic". :type name: str or ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterSKUName - :param tier: Tier of a managed cluster SKU. Possible values include: "Paid", "Free". + :param tier: If not specified, the default is 'Free'. See `uptime SLA + `_ for more details. Possible values include: + "Paid", "Free". :type tier: str or ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterSKUTier """ @@ -2770,11 +2908,11 @@ class ManagedClusterUpgradeProfile(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar id: Id of upgrade profile. + :ivar id: The ID of the upgrade profile. :vartype id: str - :ivar name: Name of upgrade profile. + :ivar name: The name of the upgrade profile. :vartype name: str - :ivar type: Type of upgrade profile. + :ivar type: The type of the upgrade profile. :vartype type: str :param control_plane_profile: Required. The list of available upgrade versions for the control plane. @@ -2814,12 +2952,12 @@ def __init__( class ManagedClusterWindowsProfile(msrest.serialization.Model): - """Profile for Windows VMs in the container service cluster. + """Profile for Windows VMs in the managed cluster. All required parameters must be populated in order to send to Azure. :param admin_username: Required. Specifies the name of the administrator account. - :code:`
`:code:`
` **restriction:** Cannot end in "." :code:`
`:code:`
` + :code:`
`:code:`
` **Restriction:** Cannot end in "." :code:`
`:code:`
` **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", @@ -2834,10 +2972,12 @@ class ManagedClusterWindowsProfile(msrest.serialization.Model): :code:`
`:code:`
` **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!". :type admin_password: str - :param license_type: The licenseType to use for Windows VMs. Windows_Server is used to enable - Azure Hybrid User Benefits for Windows VMs. Possible values include: "None", "Windows_Server". + :param license_type: The license type to use for Windows VMs. See `Azure Hybrid User Benefits + `_ for more details. Possible values + include: "None", "Windows_Server". :type license_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.LicenseType - :param enable_csi_proxy: Whether to enable CSI proxy. + :param enable_csi_proxy: For more details on CSI proxy, see the `CSI proxy GitHub repo + `_. :type enable_csi_proxy: bool """ @@ -2864,11 +3004,11 @@ def __init__( class OperationListResult(msrest.serialization.Model): - """The List Compute Operation operation response. + """The List Operation response. Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: The list of compute operations. + :ivar value: The list of operations. :vartype value: list[~azure.mgmt.containerservice.v2021_05_01.models.OperationValue] """ @@ -2889,15 +3029,15 @@ def __init__( class OperationValue(msrest.serialization.Model): - """Describes the properties of a Compute Operation value. + """Describes the properties of a Operation value. Variables are only populated by the server, and will be ignored when sending a request. - :ivar origin: The origin of the compute operation. + :ivar origin: The origin of the operation. :vartype origin: str - :ivar name: The name of the compute operation. + :ivar name: The name of the operation. :vartype name: str - :ivar operation: The display name of the compute operation. + :ivar operation: The display name of the operation. :vartype operation: str :ivar resource: The display name of the resource the operation applies to. :vartype resource: str @@ -2945,13 +3085,13 @@ class OSOptionProfile(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar id: Id of the OS option profile. + :ivar id: The ID of the OS option resource. :vartype id: str - :ivar name: Name of the OS option profile. + :ivar name: The name of the OS option resource. :vartype name: str - :ivar type: Type of the OS option profile. + :ivar type: The type of the OS option resource. :vartype type: str - :param os_option_property_list: Required. The list of OS option properties. + :param os_option_property_list: Required. The list of OS options. :type os_option_property_list: list[~azure.mgmt.containerservice.v2021_05_01.models.OSOptionProperty] """ @@ -2986,9 +3126,9 @@ class OSOptionProperty(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :param os_type: Required. OS type. + :param os_type: Required. The OS type. :type os_type: str - :param enable_fips_image: Required. Whether FIPS image is enabled. + :param enable_fips_image: Required. Whether the image is FIPS-enabled. :type enable_fips_image: bool """ @@ -3090,7 +3230,7 @@ def __init__( class PrivateEndpoint(msrest.serialization.Model): """Private endpoint which a connection belongs to. - :param id: The resource Id for private endpoint. + :param id: The resource ID of the private endpoint. :type id: str """ @@ -3190,7 +3330,7 @@ class PrivateLinkResource(msrest.serialization.Model): :type type: str :param group_id: The group ID of the resource. :type group_id: str - :param required_members: RequiredMembers of the resource. + :param required_members: The RequiredMembers of the resource. :type required_members: list[str] :ivar private_link_service_id: The private link service ID of the resource, this field is exposed only to NRP internally. @@ -3286,13 +3426,13 @@ def __init__( class RunCommandRequest(msrest.serialization.Model): - """run command request. + """A run command request. All required parameters must be populated in order to send to Azure. - :param command: Required. command to run. + :param command: Required. The command to run. :type command: str - :param context: base64 encoded zip file, contains files required by the command. + :param context: A base64 encoded zip file containing the files required by the command. :type context: str :param cluster_token: AuthToken issued for AKS AAD Server App. :type cluster_token: str @@ -3323,19 +3463,19 @@ class RunCommandResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: command id. + :ivar id: The command id. :vartype id: str :ivar provisioning_state: provisioning State. :vartype provisioning_state: str - :ivar exit_code: exit code of the command. + :ivar exit_code: The exit code of the command. :vartype exit_code: int - :ivar started_at: time when the command started. + :ivar started_at: The time when the command started. :vartype started_at: ~datetime.datetime - :ivar finished_at: time when the command finished. + :ivar finished_at: The time when the command finished. :vartype finished_at: ~datetime.datetime - :ivar logs: command output. + :ivar logs: The command output. :vartype logs: str - :ivar reason: explain why provisioningState is set to failed (if so). + :ivar reason: An explanation of why provisioningState is set to failed (if so). :vartype reason: str """ @@ -3508,7 +3648,7 @@ class SystemData(msrest.serialization.Model): :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.containerservice.v2021_05_01.models.CreatedByType - :param created_at: The timestamp of resource creation (UTC). + :param created_at: The UTC timestamp of resource creation. :type created_at: ~datetime.datetime :param last_modified_by: The identity that last modified the resource. :type last_modified_by: str @@ -3564,10 +3704,12 @@ def __init__( class TimeInWeek(msrest.serialization.Model): """Time in a week. - :param day: A day in a week. Possible values include: "Sunday", "Monday", "Tuesday", + :param day: The day of the week. Possible values include: "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday". :type day: str or ~azure.mgmt.containerservice.v2021_05_01.models.WeekDay - :param hour_slots: hour slots in a day. + :param hour_slots: Each integer hour represents a time range beginning at 0m after the hour + ending at the next hour (non-inclusive). 0 corresponds to 00:00 UTC, 23 corresponds to 23:00 + UTC. Specifying [0, 1] means the 00:00 - 02:00 UTC time range. :type hour_slots: list[int] """ @@ -3586,7 +3728,7 @@ def __init__( class TimeSpan(msrest.serialization.Model): - """The time span with start and end properties. + """For example, between 2021-05-25T13:00:00Z and 2021-05-25T14:00:00Z. :param start: The start of a time span. :type start: ~datetime.datetime diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/models/_models_py3.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/models/_models_py3.py index db1b9190e9b4..ff6c3abb01dc 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/models/_models_py3.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/models/_models_py3.py @@ -66,107 +66,123 @@ class AgentPool(SubResource): range of 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default value is 1. :type count: int - :param vm_size: Size of agent VMs. + :param vm_size: VM size availability varies by region. If a node contains insufficient compute + resources (memory, cpu, etc) pods might fail to run correctly. For more details on restricted + VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions. :type vm_size: str :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every - machine in this master/agent pool. If you specify 0, it will apply the default osDisk size + machine in the master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified. :type os_disk_size_gb: int - :param os_disk_type: OS disk type to be used for machines in a given agent pool. Allowed values - are 'Ephemeral' and 'Managed'. If unspecified, defaults to 'Ephemeral' when the VM supports - ephemeral OS and has a cache disk larger than the requested OSDiskSizeGB. Otherwise, defaults - to 'Managed'. May not be changed after creation. Possible values include: "Managed", - "Ephemeral". + :param os_disk_type: The default is 'Ephemeral' if the VM supports it and has a cache disk + larger than the requested OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed + after creation. For more information see `Ephemeral OS + `_. Possible values + include: "Managed", "Ephemeral". :type os_disk_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSDiskType - :param kubelet_disk_type: KubeletDiskType determines the placement of emptyDir volumes, - container runtime data root, and Kubelet ephemeral storage. Currently allows one value, OS, - resulting in Kubelet using the OS disk for data. Possible values include: "OS", "Temporary". + :param kubelet_disk_type: Determines the placement of emptyDir volumes, container runtime data + root, and Kubelet ephemeral storage. Possible values include: "OS", "Temporary". :type kubelet_disk_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.KubeletDiskType - :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet identifier for nodes and maybe - pods. + :param vnet_subnet_id: If this is not specified, a VNET and subnet will be generated and used. + If no podSubnetID is specified, this applies to nodes and pods, otherwise it applies to just + nodes. This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. :type vnet_subnet_id: str - :param pod_subnet_id: Pod SubnetID specifies the VNet's subnet identifier for pods. + :param pod_subnet_id: If omitted, pod IPs are statically assigned on the node subnet (see + vnetSubnetID for more details). This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. :type pod_subnet_id: str - :param max_pods: Maximum number of pods that can run on a node. + :param max_pods: The maximum number of pods that can run on a node. :type max_pods: int - :param os_type: OsType to be used to specify os type. Choose from Linux and Windows. Default to - Linux. Possible values include: "Linux", "Windows". Default value: "Linux". + :param os_type: The operating system type. The default is Linux. Possible values include: + "Linux", "Windows". Default value: "Linux". :type os_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSType - :param os_sku: OsSKU to be used to specify os sku. Choose from Ubuntu(default) and CBLMariner - for Linux OSType. Not applicable to Windows OSType. Possible values include: "Ubuntu", - "CBLMariner". + :param os_sku: Specifies an OS SKU. This value must not be specified if OSType is Windows. + Possible values include: "Ubuntu", "CBLMariner". :type os_sku: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSSKU - :param max_count: Maximum number of nodes for auto-scaling. + :param max_count: The maximum number of nodes for auto-scaling. :type max_count: int - :param min_count: Minimum number of nodes for auto-scaling. + :param min_count: The minimum number of nodes for auto-scaling. :type min_count: int :param enable_auto_scaling: Whether to enable auto-scaler. :type enable_auto_scaling: bool - :param type_properties_type: AgentPoolType represents types of an agent pool. Possible values - include: "VirtualMachineScaleSets", "AvailabilitySet". + :param type_properties_type: The type of Agent Pool. Possible values include: + "VirtualMachineScaleSets", "AvailabilitySet". :type type_properties_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolType - :param mode: AgentPoolMode represents mode of an agent pool. Possible values include: "System", + :param mode: A cluster must have at least one 'System' Agent Pool at all times. For additional + information on agent pool restrictions and best practices, see: + https://docs.microsoft.com/azure/aks/use-system-pools. Possible values include: "System", "User". :type mode: str or ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolMode - :param orchestrator_version: Version of orchestrator specified when creating the managed - cluster. + :param orchestrator_version: As a best practice, you should upgrade all node pools in an AKS + cluster to the same Kubernetes version. The node pool version must have the same major version + as the control plane. The node pool minor version must be within two minor versions of the + control plane version. The node pool version cannot be greater than the control plane version. + For more information see `upgrading a node pool + `_. :type orchestrator_version: str - :ivar node_image_version: Version of node image. + :ivar node_image_version: The version of node image. :vartype node_image_version: str :param upgrade_settings: Settings for upgrading the agentpool. :type upgrade_settings: ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolUpgradeSettings - :ivar provisioning_state: The current deployment or provisioning state, which only appears in - the response. + :ivar provisioning_state: The current deployment or provisioning state. :vartype provisioning_state: str :ivar power_state: Describes whether the Agent Pool is Running or Stopped. :vartype power_state: ~azure.mgmt.containerservice.v2021_05_01.models.PowerState - :param availability_zones: Availability zones for nodes. Must use VirtualMachineScaleSets - AgentPoolType. + :param availability_zones: The list of Availability zones to use for nodes. This can only be + specified if the AgentPoolType property is 'VirtualMachineScaleSets'. :type availability_zones: list[str] - :param enable_node_public_ip: Enable public IP for nodes. + :param enable_node_public_ip: Some scenarios may require nodes in a node pool to receive their + own dedicated public IP addresses. A common scenario is for gaming workloads, where a console + needs to make a direct connection to a cloud virtual machine to minimize hops. For more + information see `assigning a public IP per node + `_. + The default is false. :type enable_node_public_ip: bool - :param node_public_ip_prefix_id: Public IP Prefix ID. VM nodes use IPs assigned from this - Public IP Prefix. + :param node_public_ip_prefix_id: This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}. :type node_public_ip_prefix_id: str - :param scale_set_priority: ScaleSetPriority to be used to specify virtual machine scale set - priority. Default to regular. Possible values include: "Spot", "Regular". Default value: - "Regular". + :param scale_set_priority: The Virtual Machine Scale Set priority. If not specified, the + default is 'Regular'. Possible values include: "Spot", "Regular". Default value: "Regular". :type scale_set_priority: str or ~azure.mgmt.containerservice.v2021_05_01.models.ScaleSetPriority - :param scale_set_eviction_policy: ScaleSetEvictionPolicy to be used to specify eviction policy - for Spot virtual machine scale set. Default to Delete. Possible values include: "Delete", + :param scale_set_eviction_policy: This cannot be specified unless the scaleSetPriority is + 'Spot'. If not specified, the default is 'Delete'. Possible values include: "Delete", "Deallocate". Default value: "Delete". :type scale_set_eviction_policy: str or ~azure.mgmt.containerservice.v2021_05_01.models.ScaleSetEvictionPolicy - :param spot_max_price: SpotMaxPrice to be used to specify the maximum price you are willing to - pay in US Dollars. Possible values are any decimal value greater than zero or -1 which - indicates default price to be up-to on-demand. + :param spot_max_price: Possible values are any decimal value greater than zero or -1 which + indicates the willingness to pay any on-demand price. For more details on spot pricing, see + `spot VMs pricing `_. :type spot_max_price: float - :param tags: A set of tags. Agent pool tags to be persisted on the agent pool virtual machine - scale set. + :param tags: A set of tags. The tags to be persisted on the agent pool virtual machine scale + set. :type tags: dict[str, str] - :param node_labels: Agent pool node labels to be persisted across all nodes in agent pool. + :param node_labels: The node labels to be persisted across all nodes in agent pool. :type node_labels: dict[str, str] - :param node_taints: Taints added to new nodes during node pool create and scale. For example, - key=value:NoSchedule. + :param node_taints: The taints added to new nodes during node pool create and scale. For + example, key=value:NoSchedule. :type node_taints: list[str] :param proximity_placement_group_id: The ID for Proximity Placement Group. :type proximity_placement_group_id: str - :param kubelet_config: KubeletConfig specifies the configuration of kubelet on agent nodes. + :param kubelet_config: The Kubelet configuration on the agent pool nodes. :type kubelet_config: ~azure.mgmt.containerservice.v2021_05_01.models.KubeletConfig - :param linux_os_config: LinuxOSConfig specifies the OS configuration of linux agent nodes. + :param linux_os_config: The OS configuration of Linux agent nodes. :type linux_os_config: ~azure.mgmt.containerservice.v2021_05_01.models.LinuxOSConfig - :param enable_encryption_at_host: Whether to enable EncryptionAtHost. + :param enable_encryption_at_host: This is only supported on certain VM sizes and in certain + Azure regions. For more information, see: + https://docs.microsoft.com/azure/aks/enable-host-encryption. :type enable_encryption_at_host: bool :param enable_ultra_ssd: Whether to enable UltraSSD. :type enable_ultra_ssd: bool - :param enable_fips: Whether to use FIPS enabled OS. + :param enable_fips: See `Add a FIPS-enabled node pool + `_ + for more details. :type enable_fips: bool :param gpu_instance_profile: GPUInstanceProfile to be used to specify GPU MIG instance profile - for supported GPU VM SKU. Supported values are MIG1g, MIG2g, MIG3g, MIG4g and MIG7g. Possible - values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". + for supported GPU VM SKU. Possible values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". :type gpu_instance_profile: str or ~azure.mgmt.containerservice.v2021_05_01.models.GPUInstanceProfile """ @@ -305,11 +321,11 @@ class AgentPoolAvailableVersions(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Id of the agent pool available versions. + :ivar id: The ID of the agent pool version list. :vartype id: str - :ivar name: Name of the agent pool available versions. + :ivar name: The name of the agent pool version list. :vartype name: str - :ivar type: Type of the agent pool available versions. + :ivar type: Type of the agent pool version list. :vartype type: str :param agent_pool_versions: List of versions available for agent pool. :type agent_pool_versions: @@ -347,7 +363,7 @@ class AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem(msrest.serializa :param default: Whether this version is the default agent pool version. :type default: bool - :param kubernetes_version: Kubernetes version (major, minor, patch). + :param kubernetes_version: The Kubernetes version (major.minor.patch). :type kubernetes_version: str :param is_preview: Whether Kubernetes version is currently in preview. :type is_preview: bool @@ -411,22 +427,21 @@ class AgentPoolUpgradeProfile(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar id: Id of the agent pool upgrade profile. + :ivar id: The ID of the agent pool upgrade profile. :vartype id: str - :ivar name: Name of the agent pool upgrade profile. + :ivar name: The name of the agent pool upgrade profile. :vartype name: str - :ivar type: Type of the agent pool upgrade profile. + :ivar type: The type of the agent pool upgrade profile. :vartype type: str - :param kubernetes_version: Required. Kubernetes version (major, minor, patch). + :param kubernetes_version: Required. The Kubernetes version (major.minor.patch). :type kubernetes_version: str - :param os_type: Required. OsType to be used to specify os type. Choose from Linux and Windows. - Default to Linux. Possible values include: "Linux", "Windows". Default value: "Linux". + :param os_type: Required. The operating system type. The default is Linux. Possible values + include: "Linux", "Windows". Default value: "Linux". :type os_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSType :param upgrades: List of orchestrator types and versions available for upgrade. :type upgrades: list[~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolUpgradeProfilePropertiesUpgradesItem] - :param latest_node_image_version: LatestNodeImageVersion is the latest AKS supported node image - version. + :param latest_node_image_version: The latest AKS supported node image version. :type latest_node_image_version: str """ @@ -470,9 +485,9 @@ def __init__( class AgentPoolUpgradeProfilePropertiesUpgradesItem(msrest.serialization.Model): """AgentPoolUpgradeProfilePropertiesUpgradesItem. - :param kubernetes_version: Kubernetes version (major, minor, patch). + :param kubernetes_version: The Kubernetes version (major.minor.patch). :type kubernetes_version: str - :param is_preview: Whether Kubernetes version is currently in preview. + :param is_preview: Whether the Kubernetes version is currently in preview. :type is_preview: bool """ @@ -496,8 +511,11 @@ def __init__( class AgentPoolUpgradeSettings(msrest.serialization.Model): """Settings for upgrading an agentpool. - :param max_surge: Count or percentage of additional nodes to be added during upgrade. If empty - uses AKS default. + :param max_surge: This can either be set to an integer (e.g. '5') or a percentage (e.g. '50%'). + If a percentage is specified, it is the percentage of the total agent pool size at the time of + the upgrade. For percentages, fractional nodes are rounded up. If not specified, the default is + 1. For more information, including best practices, see: + https://docs.microsoft.com/azure/aks/upgrade-cluster#customize-node-surge-upgrade. :type max_surge: str """ @@ -515,27 +533,6 @@ def __init__( self.max_surge = max_surge -class CloudError(msrest.serialization.Model): - """An error response from the Container service. - - :param error: Details about the error. - :type error: ~azure.mgmt.containerservice.v2021_05_01.models.CloudErrorBody - """ - - _attribute_map = { - 'error': {'key': 'error', 'type': 'CloudErrorBody'}, - } - - def __init__( - self, - *, - error: Optional["CloudErrorBody"] = None, - **kwargs - ): - super(CloudError, self).__init__(**kwargs) - self.error = error - - class CloudErrorBody(msrest.serialization.Model): """An error response from the Container service. @@ -582,46 +579,52 @@ class Components1Q1Og48SchemasManagedclusterAllof1(msrest.serialization.Model): :param identity: The identity of the managed cluster, if configured. :type identity: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterIdentity - :ivar provisioning_state: The current deployment or provisioning state, which only appears in - the response. + :ivar provisioning_state: The current provisioning state. :vartype provisioning_state: str - :ivar power_state: Represents the Power State of the cluster. + :ivar power_state: The Power State of the cluster. :vartype power_state: ~azure.mgmt.containerservice.v2021_05_01.models.PowerState :ivar max_agent_pools: The max number of agent pools for the managed cluster. :vartype max_agent_pools: int - :param kubernetes_version: Version of Kubernetes specified when creating the managed cluster. + :param kubernetes_version: When you upgrade a supported AKS cluster, Kubernetes minor versions + cannot be skipped. All upgrades must be performed sequentially by major version number. For + example, upgrades between 1.14.x -> 1.15.x or 1.15.x -> 1.16.x are allowed, however 1.14.x -> + 1.16.x is not allowed. See `upgrading an AKS cluster + `_ for more details. :type kubernetes_version: str - :param dns_prefix: DNS prefix specified when creating the managed cluster. + :param dns_prefix: This cannot be updated once the Managed Cluster has been created. :type dns_prefix: str - :param fqdn_subdomain: FQDN subdomain specified when creating private cluster with custom - private dns zone. + :param fqdn_subdomain: This cannot be updated once the Managed Cluster has been created. :type fqdn_subdomain: str - :ivar fqdn: FQDN for the master pool. + :ivar fqdn: The FQDN of the master pool. :vartype fqdn: str - :ivar private_fqdn: FQDN of private cluster. + :ivar private_fqdn: The FQDN of private cluster. :vartype private_fqdn: str - :ivar azure_portal_fqdn: FQDN for the master pool which used by proxy config. + :ivar azure_portal_fqdn: The Azure Portal requires certain Cross-Origin Resource Sharing (CORS) + headers to be sent in some responses, which Kubernetes APIServer doesn't handle by default. + This special FQDN supports CORS, allowing the Azure Portal to function properly. :vartype azure_portal_fqdn: str - :param agent_pool_profiles: Properties of the agent pool. + :param agent_pool_profiles: The agent pool properties. :type agent_pool_profiles: list[~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAgentPoolProfile] - :param linux_profile: Profile for Linux VMs in the container service cluster. + :param linux_profile: The profile for Linux VMs in the Managed Cluster. :type linux_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ContainerServiceLinuxProfile - :param windows_profile: Profile for Windows VMs in the container service cluster. + :param windows_profile: The profile for Windows VMs in the Managed Cluster. :type windows_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterWindowsProfile :param service_principal_profile: Information about a service principal identity for the cluster to use for manipulating Azure APIs. :type service_principal_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterServicePrincipalProfile - :param addon_profiles: Profile of managed cluster add-on. + :param addon_profiles: The profile of managed cluster add-on. :type addon_profiles: dict[str, ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAddonProfile] - :param pod_identity_profile: Profile of managed cluster pod identity. + :param pod_identity_profile: See `use AAD pod identity + `_ for more details on AAD pod + identity integration. :type pod_identity_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPodIdentityProfile - :param node_resource_group: Name of the resource group containing agent pool nodes. + :param node_resource_group: The name of the resource group containing agent pool nodes. :type node_resource_group: str :param enable_rbac: Whether to enable Kubernetes Role-Based Access Control. :type enable_rbac: bool @@ -629,22 +632,22 @@ class Components1Q1Og48SchemasManagedclusterAllof1(msrest.serialization.Model): policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy. :type enable_pod_security_policy: bool - :param network_profile: Profile of network configuration. + :param network_profile: The network configuration profile. :type network_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ContainerServiceNetworkProfile - :param aad_profile: Profile of Azure Active Directory configuration. + :param aad_profile: The Azure Active Directory configuration. :type aad_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAADProfile - :param auto_upgrade_profile: Profile of auto upgrade configuration. + :param auto_upgrade_profile: The auto upgrade configuration. :type auto_upgrade_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAutoUpgradeProfile :param auto_scaler_profile: Parameters to be applied to the cluster-autoscaler when enabled. :type auto_scaler_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPropertiesAutoScalerProfile - :param api_server_access_profile: Access profile for managed cluster API server. + :param api_server_access_profile: The access profile for managed cluster API server. :type api_server_access_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAPIServerAccessProfile - :param disk_encryption_set_id: ResourceId of the disk encryption set to use for enabling - encryption at rest. + :param disk_encryption_set_id: This is of the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}'. :type disk_encryption_set_id: str :param identity_profile: Identities associated with the cluster. :type identity_profile: dict[str, @@ -652,8 +655,10 @@ class Components1Q1Og48SchemasManagedclusterAllof1(msrest.serialization.Model): :param private_link_resources: Private link resources associated with the cluster. :type private_link_resources: list[~azure.mgmt.containerservice.v2021_05_01.models.PrivateLinkResource] - :param disable_local_accounts: If set to true, getting static credential will be disabled for - this cluster. Expected to only be used for AAD clusters. + :param disable_local_accounts: If set to true, getting static credentials will be disabled for + this cluster. This must only be used on Managed Clusters that are AAD enabled. For more details + see `disable local accounts + `_. :type disable_local_accounts: bool :param http_proxy_config: Configurations for provisioning the cluster with HTTP proxy servers. :type http_proxy_config: @@ -792,13 +797,13 @@ def __init__( class UserAssignedIdentity(msrest.serialization.Model): - """UserAssignedIdentity. + """Details about a user assigned identity. - :param resource_id: The resource id of the user assigned identity. + :param resource_id: The resource ID of the user assigned identity. :type resource_id: str - :param client_id: The client id of the user assigned identity. + :param client_id: The client ID of the user assigned identity. :type client_id: str - :param object_id: The object id of the user assigned identity. + :param object_id: The object ID of the user assigned identity. :type object_id: str """ @@ -825,11 +830,11 @@ def __init__( class ComponentsQit0EtSchemasManagedclusterpropertiesPropertiesIdentityprofileAdditionalproperties(UserAssignedIdentity): """ComponentsQit0EtSchemasManagedclusterpropertiesPropertiesIdentityprofileAdditionalproperties. - :param resource_id: The resource id of the user assigned identity. + :param resource_id: The resource ID of the user assigned identity. :type resource_id: str - :param client_id: The client id of the user assigned identity. + :param client_id: The client ID of the user assigned identity. :type client_id: str - :param object_id: The object id of the user assigned identity. + :param object_id: The object ID of the user assigned identity. :type object_id: str """ @@ -885,7 +890,7 @@ class ContainerServiceLinuxProfile(msrest.serialization.Model): :param admin_username: Required. The administrator username to use for Linux VMs. :type admin_username: str - :param ssh: Required. SSH configuration for Linux-based VMs running on Azure. + :param ssh: Required. The SSH configuration for Linux-based VMs running on Azure. :type ssh: ~azure.mgmt.containerservice.v2021_05_01.models.ContainerServiceSshConfiguration """ @@ -1025,14 +1030,14 @@ def __init__( class ContainerServiceNetworkProfile(msrest.serialization.Model): """Profile of network configuration. - :param network_plugin: Network plugin used for building Kubernetes network. Possible values + :param network_plugin: Network plugin used for building the Kubernetes network. Possible values include: "azure", "kubenet". Default value: "kubenet". :type network_plugin: str or ~azure.mgmt.containerservice.v2021_05_01.models.NetworkPlugin - :param network_policy: Network policy used for building Kubernetes network. Possible values + :param network_policy: Network policy used for building the Kubernetes network. Possible values include: "calico", "azure". :type network_policy: str or ~azure.mgmt.containerservice.v2021_05_01.models.NetworkPolicy - :param network_mode: Network mode used for building Kubernetes network. Possible values - include: "transparent", "bridge". + :param network_mode: This cannot be specified if networkPlugin is anything other than 'azure'. + Possible values include: "transparent", "bridge". :type network_mode: str or ~azure.mgmt.containerservice.v2021_05_01.models.NetworkMode :param pod_cidr: A CIDR notation IP range from which to assign pod IPs when kubenet is used. :type pod_cidr: str @@ -1045,11 +1050,14 @@ class ContainerServiceNetworkProfile(msrest.serialization.Model): :param docker_bridge_cidr: A CIDR notation IP range assigned to the Docker bridge network. It must not overlap with any Subnet IP ranges or the Kubernetes service address range. :type docker_bridge_cidr: str - :param outbound_type: The outbound (egress) routing method. Possible values include: + :param outbound_type: This can only be set at cluster creation time and cannot be changed + later. For more information see `egress outbound type + `_. Possible values include: "loadBalancer", "userDefinedRouting". Default value: "loadBalancer". :type outbound_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OutboundType - :param load_balancer_sku: The load balancer sku for the managed cluster. Possible values - include: "standard", "basic". + :param load_balancer_sku: The default is 'standard'. See `Azure Load Balancer SKUs + `_ for more information about the + differences between load balancer SKUs. Possible values include: "standard", "basic". :type load_balancer_sku: str or ~azure.mgmt.containerservice.v2021_05_01.models.LoadBalancerSku :param load_balancer_profile: Profile of the cluster load balancer. :type load_balancer_profile: @@ -1110,7 +1118,7 @@ class ContainerServiceSshConfiguration(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param public_keys: Required. The list of SSH public keys used to authenticate with Linux-based - VMs. Only expect one key specified. + VMs. A maximum of 1 key may be specified. :type public_keys: list[~azure.mgmt.containerservice.v2021_05_01.models.ContainerServiceSshPublicKey] """ @@ -1226,7 +1234,7 @@ def __init__( class CredentialResults(msrest.serialization.Model): - """The list of credential result response. + """The list credential result response. Variables are only populated by the server, and will be ignored when sending a request. @@ -1339,24 +1347,30 @@ def __init__( class KubeletConfig(msrest.serialization.Model): - """Kubelet configurations of agent nodes. + """See `AKS custom node configuration `_ for more details. - :param cpu_manager_policy: CPU Manager policy to use. + :param cpu_manager_policy: The default is 'none'. See `Kubernetes CPU management policies + `_ + for more information. Allowed values are 'none' and 'static'. :type cpu_manager_policy: str - :param cpu_cfs_quota: Enable CPU CFS quota enforcement for containers that specify CPU limits. + :param cpu_cfs_quota: The default is true. :type cpu_cfs_quota: bool - :param cpu_cfs_quota_period: Sets CPU CFS quota period value. + :param cpu_cfs_quota_period: The default is '100ms.' Valid values are a sequence of decimal + numbers with an optional fraction and a unit suffix. For example: '300ms', '2h45m'. Supported + units are 'ns', 'us', 'ms', 's', 'm', and 'h'. :type cpu_cfs_quota_period: str - :param image_gc_high_threshold: The percent of disk usage after which image garbage collection - is always run. + :param image_gc_high_threshold: To disable image garbage collection, set to 100. The default is + 85%. :type image_gc_high_threshold: int - :param image_gc_low_threshold: The percent of disk usage before which image garbage collection - is never run. + :param image_gc_low_threshold: This cannot be set higher than imageGcHighThreshold. The default + is 80%. :type image_gc_low_threshold: int - :param topology_manager_policy: Topology Manager policy to use. + :param topology_manager_policy: For more information see `Kubernetes Topology Manager + `_. The default is + 'none'. Allowed values are 'none', 'best-effort', 'restricted', and 'single-numa-node'. :type topology_manager_policy: str - :param allowed_unsafe_sysctls: Allowlist of unsafe sysctls or unsafe sysctl patterns (ending in - ``*``\ ). + :param allowed_unsafe_sysctls: Allowed list of unsafe sysctls or unsafe sysctl patterns (ending + in ``*``\ ). :type allowed_unsafe_sysctls: list[str] :param fail_swap_on: If set to true it will make the Kubelet fail to start if swap is enabled on the node. @@ -1420,16 +1434,20 @@ def __init__( class LinuxOSConfig(msrest.serialization.Model): - """OS configurations of Linux agent nodes. + """See `AKS custom node configuration `_ for more details. :param sysctls: Sysctl settings for Linux agent nodes. :type sysctls: ~azure.mgmt.containerservice.v2021_05_01.models.SysctlConfig - :param transparent_huge_page_enabled: Transparent Huge Page enabled configuration. + :param transparent_huge_page_enabled: Valid values are 'always', 'madvise', and 'never'. The + default is 'always'. For more information see `Transparent Hugepages + `_. :type transparent_huge_page_enabled: str - :param transparent_huge_page_defrag: Transparent Huge Page defrag configuration. + :param transparent_huge_page_defrag: Valid values are 'always', 'defer', 'defer+madvise', + 'madvise' and 'never'. The default is 'madvise'. For more information see `Transparent + Hugepages + `_. :type transparent_huge_page_defrag: str - :param swap_file_size_mb: SwapFileSizeMB specifies size in MB of a swap file will be created on - each node. + :param swap_file_size_mb: The size in MB of a swap file that will be created on each node. :type swap_file_size_mb: int """ @@ -1457,7 +1475,7 @@ def __init__( class MaintenanceConfiguration(SubResource): - """maintenance configuration. + """See `planned maintenance `_ for more information about planned maintenance. Variables are only populated by the server, and will be ignored when sending a request. @@ -1468,9 +1486,10 @@ class MaintenanceConfiguration(SubResource): :vartype name: str :ivar type: Resource type. :vartype type: str - :ivar system_data: The system meta data relating to this resource. + :ivar system_data: The system metadata relating to this resource. :vartype system_data: ~azure.mgmt.containerservice.v2021_05_01.models.SystemData - :param time_in_week: Weekday time slots allowed to upgrade. + :param time_in_week: If two array entries specify the same day of the week, the applied + configuration is the union of times in both entries. :type time_in_week: list[~azure.mgmt.containerservice.v2021_05_01.models.TimeInWeek] :param not_allowed_time: Time slots on which upgrade is not allowed. :type not_allowed_time: list[~azure.mgmt.containerservice.v2021_05_01.models.TimeSpan] @@ -1594,46 +1613,52 @@ class ManagedCluster(Resource, Components1Q1Og48SchemasManagedclusterAllof1): :param identity: The identity of the managed cluster, if configured. :type identity: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterIdentity - :ivar provisioning_state: The current deployment or provisioning state, which only appears in - the response. + :ivar provisioning_state: The current provisioning state. :vartype provisioning_state: str - :ivar power_state: Represents the Power State of the cluster. + :ivar power_state: The Power State of the cluster. :vartype power_state: ~azure.mgmt.containerservice.v2021_05_01.models.PowerState :ivar max_agent_pools: The max number of agent pools for the managed cluster. :vartype max_agent_pools: int - :param kubernetes_version: Version of Kubernetes specified when creating the managed cluster. + :param kubernetes_version: When you upgrade a supported AKS cluster, Kubernetes minor versions + cannot be skipped. All upgrades must be performed sequentially by major version number. For + example, upgrades between 1.14.x -> 1.15.x or 1.15.x -> 1.16.x are allowed, however 1.14.x -> + 1.16.x is not allowed. See `upgrading an AKS cluster + `_ for more details. :type kubernetes_version: str - :param dns_prefix: DNS prefix specified when creating the managed cluster. + :param dns_prefix: This cannot be updated once the Managed Cluster has been created. :type dns_prefix: str - :param fqdn_subdomain: FQDN subdomain specified when creating private cluster with custom - private dns zone. + :param fqdn_subdomain: This cannot be updated once the Managed Cluster has been created. :type fqdn_subdomain: str - :ivar fqdn: FQDN for the master pool. + :ivar fqdn: The FQDN of the master pool. :vartype fqdn: str - :ivar private_fqdn: FQDN of private cluster. + :ivar private_fqdn: The FQDN of private cluster. :vartype private_fqdn: str - :ivar azure_portal_fqdn: FQDN for the master pool which used by proxy config. + :ivar azure_portal_fqdn: The Azure Portal requires certain Cross-Origin Resource Sharing (CORS) + headers to be sent in some responses, which Kubernetes APIServer doesn't handle by default. + This special FQDN supports CORS, allowing the Azure Portal to function properly. :vartype azure_portal_fqdn: str - :param agent_pool_profiles: Properties of the agent pool. + :param agent_pool_profiles: The agent pool properties. :type agent_pool_profiles: list[~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAgentPoolProfile] - :param linux_profile: Profile for Linux VMs in the container service cluster. + :param linux_profile: The profile for Linux VMs in the Managed Cluster. :type linux_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ContainerServiceLinuxProfile - :param windows_profile: Profile for Windows VMs in the container service cluster. + :param windows_profile: The profile for Windows VMs in the Managed Cluster. :type windows_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterWindowsProfile :param service_principal_profile: Information about a service principal identity for the cluster to use for manipulating Azure APIs. :type service_principal_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterServicePrincipalProfile - :param addon_profiles: Profile of managed cluster add-on. + :param addon_profiles: The profile of managed cluster add-on. :type addon_profiles: dict[str, ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAddonProfile] - :param pod_identity_profile: Profile of managed cluster pod identity. + :param pod_identity_profile: See `use AAD pod identity + `_ for more details on AAD pod + identity integration. :type pod_identity_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPodIdentityProfile - :param node_resource_group: Name of the resource group containing agent pool nodes. + :param node_resource_group: The name of the resource group containing agent pool nodes. :type node_resource_group: str :param enable_rbac: Whether to enable Kubernetes Role-Based Access Control. :type enable_rbac: bool @@ -1641,22 +1666,22 @@ class ManagedCluster(Resource, Components1Q1Og48SchemasManagedclusterAllof1): policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy. :type enable_pod_security_policy: bool - :param network_profile: Profile of network configuration. + :param network_profile: The network configuration profile. :type network_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ContainerServiceNetworkProfile - :param aad_profile: Profile of Azure Active Directory configuration. + :param aad_profile: The Azure Active Directory configuration. :type aad_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAADProfile - :param auto_upgrade_profile: Profile of auto upgrade configuration. + :param auto_upgrade_profile: The auto upgrade configuration. :type auto_upgrade_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAutoUpgradeProfile :param auto_scaler_profile: Parameters to be applied to the cluster-autoscaler when enabled. :type auto_scaler_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPropertiesAutoScalerProfile - :param api_server_access_profile: Access profile for managed cluster API server. + :param api_server_access_profile: The access profile for managed cluster API server. :type api_server_access_profile: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAPIServerAccessProfile - :param disk_encryption_set_id: ResourceId of the disk encryption set to use for enabling - encryption at rest. + :param disk_encryption_set_id: This is of the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}'. :type disk_encryption_set_id: str :param identity_profile: Identities associated with the cluster. :type identity_profile: dict[str, @@ -1664,8 +1689,10 @@ class ManagedCluster(Resource, Components1Q1Og48SchemasManagedclusterAllof1): :param private_link_resources: Private link resources associated with the cluster. :type private_link_resources: list[~azure.mgmt.containerservice.v2021_05_01.models.PrivateLinkResource] - :param disable_local_accounts: If set to true, getting static credential will be disabled for - this cluster. Expected to only be used for AAD clusters. + :param disable_local_accounts: If set to true, getting static credentials will be disabled for + this cluster. This must only be used on Managed Clusters that are AAD enabled. For more details + see `disable local accounts + `_. :type disable_local_accounts: bool :param http_proxy_config: Configurations for provisioning the cluster with HTTP proxy servers. :type http_proxy_config: @@ -1812,13 +1839,14 @@ def __init__( class ManagedClusterAADProfile(msrest.serialization.Model): - """AADProfile specifies attributes for Azure Active Directory integration. + """For more details see `managed AAD on AKS `_. :param managed: Whether to enable managed AAD. :type managed: bool :param enable_azure_rbac: Whether to enable Azure RBAC for Kubernetes authorization. :type enable_azure_rbac: bool - :param admin_group_object_i_ds: AAD group object IDs that will have admin role of the cluster. + :param admin_group_object_i_ds: The list of AAD group object IDs that will have admin role of + the cluster. :type admin_group_object_i_ds: list[str] :param client_app_id: The client AAD application ID. :type client_app_id: str @@ -1955,11 +1983,11 @@ def __init__( class ManagedClusterAddonProfileIdentity(UserAssignedIdentity): """Information of user assigned identity used by this add-on. - :param resource_id: The resource id of the user assigned identity. + :param resource_id: The resource ID of the user assigned identity. :type resource_id: str - :param client_id: The client id of the user assigned identity. + :param client_id: The client ID of the user assigned identity. :type client_id: str - :param object_id: The object id of the user assigned identity. + :param object_id: The object ID of the user assigned identity. :type object_id: str """ @@ -1989,106 +2017,122 @@ class ManagedClusterAgentPoolProfileProperties(msrest.serialization.Model): range of 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default value is 1. :type count: int - :param vm_size: Size of agent VMs. + :param vm_size: VM size availability varies by region. If a node contains insufficient compute + resources (memory, cpu, etc) pods might fail to run correctly. For more details on restricted + VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions. :type vm_size: str :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every - machine in this master/agent pool. If you specify 0, it will apply the default osDisk size + machine in the master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified. :type os_disk_size_gb: int - :param os_disk_type: OS disk type to be used for machines in a given agent pool. Allowed values - are 'Ephemeral' and 'Managed'. If unspecified, defaults to 'Ephemeral' when the VM supports - ephemeral OS and has a cache disk larger than the requested OSDiskSizeGB. Otherwise, defaults - to 'Managed'. May not be changed after creation. Possible values include: "Managed", - "Ephemeral". + :param os_disk_type: The default is 'Ephemeral' if the VM supports it and has a cache disk + larger than the requested OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed + after creation. For more information see `Ephemeral OS + `_. Possible values + include: "Managed", "Ephemeral". :type os_disk_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSDiskType - :param kubelet_disk_type: KubeletDiskType determines the placement of emptyDir volumes, - container runtime data root, and Kubelet ephemeral storage. Currently allows one value, OS, - resulting in Kubelet using the OS disk for data. Possible values include: "OS", "Temporary". + :param kubelet_disk_type: Determines the placement of emptyDir volumes, container runtime data + root, and Kubelet ephemeral storage. Possible values include: "OS", "Temporary". :type kubelet_disk_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.KubeletDiskType - :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet identifier for nodes and maybe - pods. + :param vnet_subnet_id: If this is not specified, a VNET and subnet will be generated and used. + If no podSubnetID is specified, this applies to nodes and pods, otherwise it applies to just + nodes. This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. :type vnet_subnet_id: str - :param pod_subnet_id: Pod SubnetID specifies the VNet's subnet identifier for pods. + :param pod_subnet_id: If omitted, pod IPs are statically assigned on the node subnet (see + vnetSubnetID for more details). This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. :type pod_subnet_id: str - :param max_pods: Maximum number of pods that can run on a node. + :param max_pods: The maximum number of pods that can run on a node. :type max_pods: int - :param os_type: OsType to be used to specify os type. Choose from Linux and Windows. Default to - Linux. Possible values include: "Linux", "Windows". Default value: "Linux". + :param os_type: The operating system type. The default is Linux. Possible values include: + "Linux", "Windows". Default value: "Linux". :type os_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSType - :param os_sku: OsSKU to be used to specify os sku. Choose from Ubuntu(default) and CBLMariner - for Linux OSType. Not applicable to Windows OSType. Possible values include: "Ubuntu", - "CBLMariner". + :param os_sku: Specifies an OS SKU. This value must not be specified if OSType is Windows. + Possible values include: "Ubuntu", "CBLMariner". :type os_sku: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSSKU - :param max_count: Maximum number of nodes for auto-scaling. + :param max_count: The maximum number of nodes for auto-scaling. :type max_count: int - :param min_count: Minimum number of nodes for auto-scaling. + :param min_count: The minimum number of nodes for auto-scaling. :type min_count: int :param enable_auto_scaling: Whether to enable auto-scaler. :type enable_auto_scaling: bool - :param type: AgentPoolType represents types of an agent pool. Possible values include: - "VirtualMachineScaleSets", "AvailabilitySet". + :param type: The type of Agent Pool. Possible values include: "VirtualMachineScaleSets", + "AvailabilitySet". :type type: str or ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolType - :param mode: AgentPoolMode represents mode of an agent pool. Possible values include: "System", + :param mode: A cluster must have at least one 'System' Agent Pool at all times. For additional + information on agent pool restrictions and best practices, see: + https://docs.microsoft.com/azure/aks/use-system-pools. Possible values include: "System", "User". :type mode: str or ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolMode - :param orchestrator_version: Version of orchestrator specified when creating the managed - cluster. + :param orchestrator_version: As a best practice, you should upgrade all node pools in an AKS + cluster to the same Kubernetes version. The node pool version must have the same major version + as the control plane. The node pool minor version must be within two minor versions of the + control plane version. The node pool version cannot be greater than the control plane version. + For more information see `upgrading a node pool + `_. :type orchestrator_version: str - :ivar node_image_version: Version of node image. + :ivar node_image_version: The version of node image. :vartype node_image_version: str :param upgrade_settings: Settings for upgrading the agentpool. :type upgrade_settings: ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolUpgradeSettings - :ivar provisioning_state: The current deployment or provisioning state, which only appears in - the response. + :ivar provisioning_state: The current deployment or provisioning state. :vartype provisioning_state: str :ivar power_state: Describes whether the Agent Pool is Running or Stopped. :vartype power_state: ~azure.mgmt.containerservice.v2021_05_01.models.PowerState - :param availability_zones: Availability zones for nodes. Must use VirtualMachineScaleSets - AgentPoolType. + :param availability_zones: The list of Availability zones to use for nodes. This can only be + specified if the AgentPoolType property is 'VirtualMachineScaleSets'. :type availability_zones: list[str] - :param enable_node_public_ip: Enable public IP for nodes. + :param enable_node_public_ip: Some scenarios may require nodes in a node pool to receive their + own dedicated public IP addresses. A common scenario is for gaming workloads, where a console + needs to make a direct connection to a cloud virtual machine to minimize hops. For more + information see `assigning a public IP per node + `_. + The default is false. :type enable_node_public_ip: bool - :param node_public_ip_prefix_id: Public IP Prefix ID. VM nodes use IPs assigned from this - Public IP Prefix. + :param node_public_ip_prefix_id: This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}. :type node_public_ip_prefix_id: str - :param scale_set_priority: ScaleSetPriority to be used to specify virtual machine scale set - priority. Default to regular. Possible values include: "Spot", "Regular". Default value: - "Regular". + :param scale_set_priority: The Virtual Machine Scale Set priority. If not specified, the + default is 'Regular'. Possible values include: "Spot", "Regular". Default value: "Regular". :type scale_set_priority: str or ~azure.mgmt.containerservice.v2021_05_01.models.ScaleSetPriority - :param scale_set_eviction_policy: ScaleSetEvictionPolicy to be used to specify eviction policy - for Spot virtual machine scale set. Default to Delete. Possible values include: "Delete", + :param scale_set_eviction_policy: This cannot be specified unless the scaleSetPriority is + 'Spot'. If not specified, the default is 'Delete'. Possible values include: "Delete", "Deallocate". Default value: "Delete". :type scale_set_eviction_policy: str or ~azure.mgmt.containerservice.v2021_05_01.models.ScaleSetEvictionPolicy - :param spot_max_price: SpotMaxPrice to be used to specify the maximum price you are willing to - pay in US Dollars. Possible values are any decimal value greater than zero or -1 which - indicates default price to be up-to on-demand. + :param spot_max_price: Possible values are any decimal value greater than zero or -1 which + indicates the willingness to pay any on-demand price. For more details on spot pricing, see + `spot VMs pricing `_. :type spot_max_price: float - :param tags: A set of tags. Agent pool tags to be persisted on the agent pool virtual machine - scale set. + :param tags: A set of tags. The tags to be persisted on the agent pool virtual machine scale + set. :type tags: dict[str, str] - :param node_labels: Agent pool node labels to be persisted across all nodes in agent pool. + :param node_labels: The node labels to be persisted across all nodes in agent pool. :type node_labels: dict[str, str] - :param node_taints: Taints added to new nodes during node pool create and scale. For example, - key=value:NoSchedule. + :param node_taints: The taints added to new nodes during node pool create and scale. For + example, key=value:NoSchedule. :type node_taints: list[str] :param proximity_placement_group_id: The ID for Proximity Placement Group. :type proximity_placement_group_id: str - :param kubelet_config: KubeletConfig specifies the configuration of kubelet on agent nodes. + :param kubelet_config: The Kubelet configuration on the agent pool nodes. :type kubelet_config: ~azure.mgmt.containerservice.v2021_05_01.models.KubeletConfig - :param linux_os_config: LinuxOSConfig specifies the OS configuration of linux agent nodes. + :param linux_os_config: The OS configuration of Linux agent nodes. :type linux_os_config: ~azure.mgmt.containerservice.v2021_05_01.models.LinuxOSConfig - :param enable_encryption_at_host: Whether to enable EncryptionAtHost. + :param enable_encryption_at_host: This is only supported on certain VM sizes and in certain + Azure regions. For more information, see: + https://docs.microsoft.com/azure/aks/enable-host-encryption. :type enable_encryption_at_host: bool :param enable_ultra_ssd: Whether to enable UltraSSD. :type enable_ultra_ssd: bool - :param enable_fips: Whether to use FIPS enabled OS. + :param enable_fips: See `Add a FIPS-enabled node pool + `_ + for more details. :type enable_fips: bool :param gpu_instance_profile: GPUInstanceProfile to be used to specify GPU MIG instance profile - for supported GPU VM SKU. Supported values are MIG1g, MIG2g, MIG3g, MIG4g and MIG7g. Possible - values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". + for supported GPU VM SKU. Possible values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". :type gpu_instance_profile: str or ~azure.mgmt.containerservice.v2021_05_01.models.GPUInstanceProfile """ @@ -2227,110 +2271,125 @@ class ManagedClusterAgentPoolProfile(ManagedClusterAgentPoolProfileProperties): range of 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default value is 1. :type count: int - :param vm_size: Size of agent VMs. + :param vm_size: VM size availability varies by region. If a node contains insufficient compute + resources (memory, cpu, etc) pods might fail to run correctly. For more details on restricted + VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions. :type vm_size: str :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every - machine in this master/agent pool. If you specify 0, it will apply the default osDisk size + machine in the master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified. :type os_disk_size_gb: int - :param os_disk_type: OS disk type to be used for machines in a given agent pool. Allowed values - are 'Ephemeral' and 'Managed'. If unspecified, defaults to 'Ephemeral' when the VM supports - ephemeral OS and has a cache disk larger than the requested OSDiskSizeGB. Otherwise, defaults - to 'Managed'. May not be changed after creation. Possible values include: "Managed", - "Ephemeral". + :param os_disk_type: The default is 'Ephemeral' if the VM supports it and has a cache disk + larger than the requested OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed + after creation. For more information see `Ephemeral OS + `_. Possible values + include: "Managed", "Ephemeral". :type os_disk_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSDiskType - :param kubelet_disk_type: KubeletDiskType determines the placement of emptyDir volumes, - container runtime data root, and Kubelet ephemeral storage. Currently allows one value, OS, - resulting in Kubelet using the OS disk for data. Possible values include: "OS", "Temporary". + :param kubelet_disk_type: Determines the placement of emptyDir volumes, container runtime data + root, and Kubelet ephemeral storage. Possible values include: "OS", "Temporary". :type kubelet_disk_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.KubeletDiskType - :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet identifier for nodes and maybe - pods. + :param vnet_subnet_id: If this is not specified, a VNET and subnet will be generated and used. + If no podSubnetID is specified, this applies to nodes and pods, otherwise it applies to just + nodes. This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. :type vnet_subnet_id: str - :param pod_subnet_id: Pod SubnetID specifies the VNet's subnet identifier for pods. + :param pod_subnet_id: If omitted, pod IPs are statically assigned on the node subnet (see + vnetSubnetID for more details). This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. :type pod_subnet_id: str - :param max_pods: Maximum number of pods that can run on a node. + :param max_pods: The maximum number of pods that can run on a node. :type max_pods: int - :param os_type: OsType to be used to specify os type. Choose from Linux and Windows. Default to - Linux. Possible values include: "Linux", "Windows". Default value: "Linux". + :param os_type: The operating system type. The default is Linux. Possible values include: + "Linux", "Windows". Default value: "Linux". :type os_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSType - :param os_sku: OsSKU to be used to specify os sku. Choose from Ubuntu(default) and CBLMariner - for Linux OSType. Not applicable to Windows OSType. Possible values include: "Ubuntu", - "CBLMariner". + :param os_sku: Specifies an OS SKU. This value must not be specified if OSType is Windows. + Possible values include: "Ubuntu", "CBLMariner". :type os_sku: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSSKU - :param max_count: Maximum number of nodes for auto-scaling. + :param max_count: The maximum number of nodes for auto-scaling. :type max_count: int - :param min_count: Minimum number of nodes for auto-scaling. + :param min_count: The minimum number of nodes for auto-scaling. :type min_count: int :param enable_auto_scaling: Whether to enable auto-scaler. :type enable_auto_scaling: bool - :param type: AgentPoolType represents types of an agent pool. Possible values include: - "VirtualMachineScaleSets", "AvailabilitySet". + :param type: The type of Agent Pool. Possible values include: "VirtualMachineScaleSets", + "AvailabilitySet". :type type: str or ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolType - :param mode: AgentPoolMode represents mode of an agent pool. Possible values include: "System", + :param mode: A cluster must have at least one 'System' Agent Pool at all times. For additional + information on agent pool restrictions and best practices, see: + https://docs.microsoft.com/azure/aks/use-system-pools. Possible values include: "System", "User". :type mode: str or ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolMode - :param orchestrator_version: Version of orchestrator specified when creating the managed - cluster. + :param orchestrator_version: As a best practice, you should upgrade all node pools in an AKS + cluster to the same Kubernetes version. The node pool version must have the same major version + as the control plane. The node pool minor version must be within two minor versions of the + control plane version. The node pool version cannot be greater than the control plane version. + For more information see `upgrading a node pool + `_. :type orchestrator_version: str - :ivar node_image_version: Version of node image. + :ivar node_image_version: The version of node image. :vartype node_image_version: str :param upgrade_settings: Settings for upgrading the agentpool. :type upgrade_settings: ~azure.mgmt.containerservice.v2021_05_01.models.AgentPoolUpgradeSettings - :ivar provisioning_state: The current deployment or provisioning state, which only appears in - the response. + :ivar provisioning_state: The current deployment or provisioning state. :vartype provisioning_state: str :ivar power_state: Describes whether the Agent Pool is Running or Stopped. :vartype power_state: ~azure.mgmt.containerservice.v2021_05_01.models.PowerState - :param availability_zones: Availability zones for nodes. Must use VirtualMachineScaleSets - AgentPoolType. + :param availability_zones: The list of Availability zones to use for nodes. This can only be + specified if the AgentPoolType property is 'VirtualMachineScaleSets'. :type availability_zones: list[str] - :param enable_node_public_ip: Enable public IP for nodes. + :param enable_node_public_ip: Some scenarios may require nodes in a node pool to receive their + own dedicated public IP addresses. A common scenario is for gaming workloads, where a console + needs to make a direct connection to a cloud virtual machine to minimize hops. For more + information see `assigning a public IP per node + `_. + The default is false. :type enable_node_public_ip: bool - :param node_public_ip_prefix_id: Public IP Prefix ID. VM nodes use IPs assigned from this - Public IP Prefix. + :param node_public_ip_prefix_id: This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}. :type node_public_ip_prefix_id: str - :param scale_set_priority: ScaleSetPriority to be used to specify virtual machine scale set - priority. Default to regular. Possible values include: "Spot", "Regular". Default value: - "Regular". + :param scale_set_priority: The Virtual Machine Scale Set priority. If not specified, the + default is 'Regular'. Possible values include: "Spot", "Regular". Default value: "Regular". :type scale_set_priority: str or ~azure.mgmt.containerservice.v2021_05_01.models.ScaleSetPriority - :param scale_set_eviction_policy: ScaleSetEvictionPolicy to be used to specify eviction policy - for Spot virtual machine scale set. Default to Delete. Possible values include: "Delete", + :param scale_set_eviction_policy: This cannot be specified unless the scaleSetPriority is + 'Spot'. If not specified, the default is 'Delete'. Possible values include: "Delete", "Deallocate". Default value: "Delete". :type scale_set_eviction_policy: str or ~azure.mgmt.containerservice.v2021_05_01.models.ScaleSetEvictionPolicy - :param spot_max_price: SpotMaxPrice to be used to specify the maximum price you are willing to - pay in US Dollars. Possible values are any decimal value greater than zero or -1 which - indicates default price to be up-to on-demand. + :param spot_max_price: Possible values are any decimal value greater than zero or -1 which + indicates the willingness to pay any on-demand price. For more details on spot pricing, see + `spot VMs pricing `_. :type spot_max_price: float - :param tags: A set of tags. Agent pool tags to be persisted on the agent pool virtual machine - scale set. + :param tags: A set of tags. The tags to be persisted on the agent pool virtual machine scale + set. :type tags: dict[str, str] - :param node_labels: Agent pool node labels to be persisted across all nodes in agent pool. + :param node_labels: The node labels to be persisted across all nodes in agent pool. :type node_labels: dict[str, str] - :param node_taints: Taints added to new nodes during node pool create and scale. For example, - key=value:NoSchedule. + :param node_taints: The taints added to new nodes during node pool create and scale. For + example, key=value:NoSchedule. :type node_taints: list[str] :param proximity_placement_group_id: The ID for Proximity Placement Group. :type proximity_placement_group_id: str - :param kubelet_config: KubeletConfig specifies the configuration of kubelet on agent nodes. + :param kubelet_config: The Kubelet configuration on the agent pool nodes. :type kubelet_config: ~azure.mgmt.containerservice.v2021_05_01.models.KubeletConfig - :param linux_os_config: LinuxOSConfig specifies the OS configuration of linux agent nodes. + :param linux_os_config: The OS configuration of Linux agent nodes. :type linux_os_config: ~azure.mgmt.containerservice.v2021_05_01.models.LinuxOSConfig - :param enable_encryption_at_host: Whether to enable EncryptionAtHost. + :param enable_encryption_at_host: This is only supported on certain VM sizes and in certain + Azure regions. For more information, see: + https://docs.microsoft.com/azure/aks/enable-host-encryption. :type enable_encryption_at_host: bool :param enable_ultra_ssd: Whether to enable UltraSSD. :type enable_ultra_ssd: bool - :param enable_fips: Whether to use FIPS enabled OS. + :param enable_fips: See `Add a FIPS-enabled node pool + `_ + for more details. :type enable_fips: bool :param gpu_instance_profile: GPUInstanceProfile to be used to specify GPU MIG instance profile - for supported GPU VM SKU. Supported values are MIG1g, MIG2g, MIG3g, MIG4g and MIG7g. Possible - values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". + for supported GPU VM SKU. Possible values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". :type gpu_instance_profile: str or ~azure.mgmt.containerservice.v2021_05_01.models.GPUInstanceProfile - :param name: Required. Unique name of the agent pool profile in the context of the subscription - and resource group. + :param name: Required. Windows agent pool names must be 6 characters or less. :type name: str """ @@ -2428,11 +2487,17 @@ def __init__( class ManagedClusterAPIServerAccessProfile(msrest.serialization.Model): """Access profile for managed cluster API server. - :param authorized_ip_ranges: Authorized IP Ranges to kubernetes API server. + :param authorized_ip_ranges: IP ranges are specified in CIDR format, e.g. 137.117.106.88/29. + This feature is not compatible with clusters that use Public IP Per Node, or clusters that are + using a Basic Load Balancer. For more information see `API server authorized IP ranges + `_. :type authorized_ip_ranges: list[str] - :param enable_private_cluster: Whether to create the cluster as a private cluster or not. + :param enable_private_cluster: For more details, see `Creating a private AKS cluster + `_. :type enable_private_cluster: bool - :param private_dns_zone: Private dns zone mode for private cluster. + :param private_dns_zone: The default is System. For more details see `configure private DNS + zone `_. + Allowed values are 'system' and 'none'. :type private_dns_zone: str :param enable_private_cluster_public_fqdn: Whether to create additional public FQDN for private cluster or not. @@ -2465,8 +2530,9 @@ def __init__( class ManagedClusterAutoUpgradeProfile(msrest.serialization.Model): """Auto upgrade profile for a managed cluster. - :param upgrade_channel: upgrade channel for auto upgrade. Possible values include: "rapid", - "stable", "patch", "node-image", "none". + :param upgrade_channel: For more information see `setting the AKS cluster auto-upgrade channel + `_. Possible + values include: "rapid", "stable", "patch", "node-image", "none". :type upgrade_channel: str or ~azure.mgmt.containerservice.v2021_05_01.models.UpgradeChannel """ @@ -2485,13 +2551,13 @@ def __init__( class ManagedClusterHTTPProxyConfig(msrest.serialization.Model): - """Configurations for provisioning the cluster with HTTP proxy servers. + """Cluster HTTP proxy configuration. - :param http_proxy: HTTP proxy server endpoint to use. + :param http_proxy: The HTTP proxy server endpoint to use. :type http_proxy: str - :param https_proxy: HTTPS proxy server endpoint to use. + :param https_proxy: The HTTPS proxy server endpoint to use. :type https_proxy: str - :param no_proxy: Endpoints that should not go through proxy. + :param no_proxy: The endpoints that should not go through proxy. :type no_proxy: list[str] :param trusted_ca: Alternative CA cert to use for connecting to proxy servers. :type trusted_ca: str @@ -2531,15 +2597,11 @@ class ManagedClusterIdentity(msrest.serialization.Model): :ivar tenant_id: The tenant id of the system assigned identity which is used by master components. :vartype tenant_id: str - :param type: The type of identity used for the managed cluster. Type 'SystemAssigned' will use - an implicitly created identity in master components and an auto-created user assigned identity - in MC_ resource group in agent nodes. Type 'None' will not use MSI for the managed cluster, - service principal will be used instead. Possible values include: "SystemAssigned", - "UserAssigned", "None". + :param type: For more information see `use managed identities in AKS + `_. Possible values include: + "SystemAssigned", "UserAssigned", "None". :type type: str or ~azure.mgmt.containerservice.v2021_05_01.models.ResourceIdentityType - :param user_assigned_identities: The user identity associated with the managed cluster. This - identity will be used in control plane and only one user assigned identity is allowed. The user - identity dictionary key references will be ARM resource ids in the form: + :param user_assigned_identities: The keys must be ARM resource IDs in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. :type user_assigned_identities: dict[str, ~azure.mgmt.containerservice.v2021_05_01.models.Components1Umhcm8SchemasManagedclusteridentityPropertiesUserassignedidentitiesAdditionalproperties] @@ -2619,12 +2681,12 @@ class ManagedClusterLoadBalancerProfile(msrest.serialization.Model): balancer. :type effective_outbound_i_ps: list[~azure.mgmt.containerservice.v2021_05_01.models.ResourceReference] - :param allocated_outbound_ports: Desired number of allocated SNAT ports per VM. Allowed values - must be in the range of 0 to 64000 (inclusive). The default value is 0 which results in Azure - dynamically allocating ports. + :param allocated_outbound_ports: The desired number of allocated SNAT ports per VM. Allowed + values are in the range of 0 to 64000 (inclusive). The default value is 0 which results in + Azure dynamically allocating ports. :type allocated_outbound_ports: int :param idle_timeout_in_minutes: Desired outbound flow idle timeout in minutes. Allowed values - must be in the range of 4 to 120 (inclusive). The default value is 30 minutes. + are in the range of 4 to 120 (inclusive). The default value is 30 minutes. :type idle_timeout_in_minutes: int """ @@ -2665,7 +2727,7 @@ def __init__( class ManagedClusterLoadBalancerProfileManagedOutboundIPs(msrest.serialization.Model): """Desired managed outbound IPs for the cluster load balancer. - :param count: Desired number of outbound IP created/managed by Azure for the cluster load + :param count: The desired number of outbound IPs created/managed by Azure for the cluster load balancer. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1. :type count: int """ @@ -2732,19 +2794,19 @@ def __init__( class ManagedClusterPodIdentity(msrest.serialization.Model): - """ManagedClusterPodIdentity. + """Details about the pod identity assigned to the Managed Cluster. 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 name: Required. Name of the pod identity. + :param name: Required. The name of the pod identity. :type name: str - :param namespace: Required. Namespace of the pod identity. + :param namespace: Required. The namespace of the pod identity. :type namespace: str - :param binding_selector: Binding selector to use for the AzureIdentityBinding resource. + :param binding_selector: The binding selector to use for the AzureIdentityBinding resource. :type binding_selector: str - :param identity: Required. Information of the user assigned identity. + :param identity: Required. The user assigned identity details. :type identity: ~azure.mgmt.containerservice.v2021_05_01.models.UserAssignedIdentity :ivar provisioning_state: The current provisioning state of the pod identity. Possible values include: "Assigned", "Updating", "Deleting", "Failed". @@ -2791,15 +2853,15 @@ def __init__( class ManagedClusterPodIdentityException(msrest.serialization.Model): - """ManagedClusterPodIdentityException. + """See `disable AAD Pod Identity for a specific Pod/Application `_ for more details. All required parameters must be populated in order to send to Azure. - :param name: Required. Name of the pod identity exception. + :param name: Required. The name of the pod identity exception. :type name: str - :param namespace: Required. Namespace of the pod identity exception. + :param namespace: Required. The namespace of the pod identity exception. :type namespace: str - :param pod_labels: Required. Pod labels to match. + :param pod_labels: Required. The pod labels to match. :type pod_labels: dict[str, str] """ @@ -2830,17 +2892,20 @@ def __init__( class ManagedClusterPodIdentityProfile(msrest.serialization.Model): - """ManagedClusterPodIdentityProfile. + """See `use AAD pod identity `_ for more details on pod identity integration. :param enabled: Whether the pod identity addon is enabled. :type enabled: bool - :param allow_network_plugin_kubenet: Customer consent for enabling AAD pod identity addon in - cluster using Kubenet network plugin. + :param allow_network_plugin_kubenet: Running in Kubenet is disabled by default due to the + security related nature of AAD Pod Identity and the risks of IP spoofing. See `using Kubenet + network plugin with AAD Pod Identity + `_ + for more information. :type allow_network_plugin_kubenet: bool - :param user_assigned_identities: User assigned pod identity settings. + :param user_assigned_identities: The pod identities to use in the cluster. :type user_assigned_identities: list[~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPodIdentity] - :param user_assigned_identity_exceptions: User assigned pod identity exception settings. + :param user_assigned_identity_exceptions: The pod identity exceptions to allow. :type user_assigned_identity_exceptions: list[~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPodIdentityException] """ @@ -2868,21 +2933,84 @@ def __init__( self.user_assigned_identity_exceptions = user_assigned_identity_exceptions +class ManagedClusterPodIdentityProvisioningError(msrest.serialization.Model): + """An error response from the pod identity provisioning. + + :param error: Details about the error. + :type error: + ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPodIdentityProvisioningErrorBody + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ManagedClusterPodIdentityProvisioningErrorBody'}, + } + + def __init__( + self, + *, + error: Optional["ManagedClusterPodIdentityProvisioningErrorBody"] = None, + **kwargs + ): + super(ManagedClusterPodIdentityProvisioningError, self).__init__(**kwargs) + self.error = error + + +class ManagedClusterPodIdentityProvisioningErrorBody(msrest.serialization.Model): + """An error response from the pod identity provisioning. + + :param code: An identifier for the error. Codes are invariant and are intended to be consumed + programmatically. + :type code: str + :param message: A message describing the error, intended to be suitable for display in a user + interface. + :type message: str + :param target: The target of the particular error. For example, the name of the property in + error. + :type target: str + :param details: A list of additional details about the error. + :type details: + list[~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPodIdentityProvisioningErrorBody] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[ManagedClusterPodIdentityProvisioningErrorBody]'}, + } + + def __init__( + self, + *, + code: Optional[str] = None, + message: Optional[str] = None, + target: Optional[str] = None, + details: Optional[List["ManagedClusterPodIdentityProvisioningErrorBody"]] = None, + **kwargs + ): + super(ManagedClusterPodIdentityProvisioningErrorBody, self).__init__(**kwargs) + self.code = code + self.message = message + self.target = target + self.details = details + + class ManagedClusterPodIdentityProvisioningInfo(msrest.serialization.Model): """ManagedClusterPodIdentityProvisioningInfo. :param error: Pod identity assignment error (if any). - :type error: ~azure.mgmt.containerservice.v2021_05_01.models.CloudError + :type error: + ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterPodIdentityProvisioningError """ _attribute_map = { - 'error': {'key': 'error', 'type': 'CloudError'}, + 'error': {'key': 'error', 'type': 'ManagedClusterPodIdentityProvisioningError'}, } def __init__( self, *, - error: Optional["CloudError"] = None, + error: Optional["ManagedClusterPodIdentityProvisioningError"] = None, **kwargs ): super(ManagedClusterPodIdentityProvisioningInfo, self).__init__(**kwargs) @@ -2894,12 +3022,12 @@ class ManagedClusterPoolUpgradeProfile(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :param kubernetes_version: Required. Kubernetes version (major, minor, patch). + :param kubernetes_version: Required. The Kubernetes version (major.minor.patch). :type kubernetes_version: str - :param name: Pool name. + :param name: The Agent Pool name. :type name: str - :param os_type: Required. OsType to be used to specify os type. Choose from Linux and Windows. - Default to Linux. Possible values include: "Linux", "Windows". Default value: "Linux". + :param os_type: Required. The operating system type. The default is Linux. Possible values + include: "Linux", "Windows". Default value: "Linux". :type os_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.OSType :param upgrades: List of orchestrator types and versions available for upgrade. :type upgrades: @@ -2937,9 +3065,9 @@ def __init__( class ManagedClusterPoolUpgradeProfileUpgradesItem(msrest.serialization.Model): """ManagedClusterPoolUpgradeProfileUpgradesItem. - :param kubernetes_version: Kubernetes version (major, minor, patch). + :param kubernetes_version: The Kubernetes version (major.minor.patch). :type kubernetes_version: str - :param is_preview: Whether Kubernetes version is currently in preview. + :param is_preview: Whether the Kubernetes version is currently in preview. :type is_preview: bool """ @@ -2963,39 +3091,52 @@ def __init__( class ManagedClusterPropertiesAutoScalerProfile(msrest.serialization.Model): """Parameters to be applied to the cluster-autoscaler when enabled. - :param balance_similar_node_groups: + :param balance_similar_node_groups: Valid values are 'true' and 'false'. :type balance_similar_node_groups: str - :param expander: Possible values include: "least-waste", "most-pods", "priority", "random". + :param expander: If not specified, the default is 'random'. See `expanders + `_ + for more information. Possible values include: "least-waste", "most-pods", "priority", + "random". :type expander: str or ~azure.mgmt.containerservice.v2021_05_01.models.Expander - :param max_empty_bulk_delete: + :param max_empty_bulk_delete: The default is 10. :type max_empty_bulk_delete: str - :param max_graceful_termination_sec: + :param max_graceful_termination_sec: The default is 600. :type max_graceful_termination_sec: str - :param max_node_provision_time: + :param max_node_provision_time: The default is '15m'. Values must be an integer followed by an + 'm'. No unit of time other than minutes (m) is supported. :type max_node_provision_time: str - :param max_total_unready_percentage: + :param max_total_unready_percentage: The default is 45. The maximum is 100 and the minimum is + 0. :type max_total_unready_percentage: str - :param new_pod_scale_up_delay: + :param new_pod_scale_up_delay: For scenarios like burst/batch scale where you don't want CA to + act before the kubernetes scheduler could schedule all the pods, you can tell CA to ignore + unscheduled pods before they're a certain age. The default is '0s'. Values must be an integer + followed by a unit ('s' for seconds, 'm' for minutes, 'h' for hours, etc). :type new_pod_scale_up_delay: str - :param ok_total_unready_count: + :param ok_total_unready_count: This must be an integer. The default is 3. :type ok_total_unready_count: str - :param scan_interval: + :param scan_interval: The default is '10'. Values must be an integer number of seconds. :type scan_interval: str - :param scale_down_delay_after_add: + :param scale_down_delay_after_add: The default is '10m'. Values must be an integer followed by + an 'm'. No unit of time other than minutes (m) is supported. :type scale_down_delay_after_add: str - :param scale_down_delay_after_delete: + :param scale_down_delay_after_delete: The default is the scan-interval. Values must be an + integer followed by an 'm'. No unit of time other than minutes (m) is supported. :type scale_down_delay_after_delete: str - :param scale_down_delay_after_failure: + :param scale_down_delay_after_failure: The default is '3m'. Values must be an integer followed + by an 'm'. No unit of time other than minutes (m) is supported. :type scale_down_delay_after_failure: str - :param scale_down_unneeded_time: + :param scale_down_unneeded_time: The default is '10m'. Values must be an integer followed by an + 'm'. No unit of time other than minutes (m) is supported. :type scale_down_unneeded_time: str - :param scale_down_unready_time: + :param scale_down_unready_time: The default is '20m'. Values must be an integer followed by an + 'm'. No unit of time other than minutes (m) is supported. :type scale_down_unready_time: str - :param scale_down_utilization_threshold: + :param scale_down_utilization_threshold: The default is '0.5'. :type scale_down_utilization_threshold: str - :param skip_nodes_with_local_storage: + :param skip_nodes_with_local_storage: The default is true. :type skip_nodes_with_local_storage: str - :param skip_nodes_with_system_pods: + :param skip_nodes_with_system_pods: The default is true. :type skip_nodes_with_system_pods: str """ @@ -3094,11 +3235,13 @@ def __init__( class ManagedClusterSKU(msrest.serialization.Model): - """ManagedClusterSKU. + """The SKU of a Managed Cluster. - :param name: Name of a managed cluster SKU. Possible values include: "Basic". + :param name: The name of a managed cluster SKU. Possible values include: "Basic". :type name: str or ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterSKUName - :param tier: Tier of a managed cluster SKU. Possible values include: "Paid", "Free". + :param tier: If not specified, the default is 'Free'. See `uptime SLA + `_ for more details. Possible values include: + "Paid", "Free". :type tier: str or ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterSKUTier """ @@ -3126,11 +3269,11 @@ class ManagedClusterUpgradeProfile(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar id: Id of upgrade profile. + :ivar id: The ID of the upgrade profile. :vartype id: str - :ivar name: Name of upgrade profile. + :ivar name: The name of the upgrade profile. :vartype name: str - :ivar type: Type of upgrade profile. + :ivar type: The type of the upgrade profile. :vartype type: str :param control_plane_profile: Required. The list of available upgrade versions for the control plane. @@ -3173,12 +3316,12 @@ def __init__( class ManagedClusterWindowsProfile(msrest.serialization.Model): - """Profile for Windows VMs in the container service cluster. + """Profile for Windows VMs in the managed cluster. All required parameters must be populated in order to send to Azure. :param admin_username: Required. Specifies the name of the administrator account. - :code:`
`:code:`
` **restriction:** Cannot end in "." :code:`
`:code:`
` + :code:`
`:code:`
` **Restriction:** Cannot end in "." :code:`
`:code:`
` **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", @@ -3193,10 +3336,12 @@ class ManagedClusterWindowsProfile(msrest.serialization.Model): :code:`
`:code:`
` **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!". :type admin_password: str - :param license_type: The licenseType to use for Windows VMs. Windows_Server is used to enable - Azure Hybrid User Benefits for Windows VMs. Possible values include: "None", "Windows_Server". + :param license_type: The license type to use for Windows VMs. See `Azure Hybrid User Benefits + `_ for more details. Possible values + include: "None", "Windows_Server". :type license_type: str or ~azure.mgmt.containerservice.v2021_05_01.models.LicenseType - :param enable_csi_proxy: Whether to enable CSI proxy. + :param enable_csi_proxy: For more details on CSI proxy, see the `CSI proxy GitHub repo + `_. :type enable_csi_proxy: bool """ @@ -3228,11 +3373,11 @@ def __init__( class OperationListResult(msrest.serialization.Model): - """The List Compute Operation operation response. + """The List Operation response. Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: The list of compute operations. + :ivar value: The list of operations. :vartype value: list[~azure.mgmt.containerservice.v2021_05_01.models.OperationValue] """ @@ -3253,15 +3398,15 @@ def __init__( class OperationValue(msrest.serialization.Model): - """Describes the properties of a Compute Operation value. + """Describes the properties of a Operation value. Variables are only populated by the server, and will be ignored when sending a request. - :ivar origin: The origin of the compute operation. + :ivar origin: The origin of the operation. :vartype origin: str - :ivar name: The name of the compute operation. + :ivar name: The name of the operation. :vartype name: str - :ivar operation: The display name of the compute operation. + :ivar operation: The display name of the operation. :vartype operation: str :ivar resource: The display name of the resource the operation applies to. :vartype resource: str @@ -3309,13 +3454,13 @@ class OSOptionProfile(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :ivar id: Id of the OS option profile. + :ivar id: The ID of the OS option resource. :vartype id: str - :ivar name: Name of the OS option profile. + :ivar name: The name of the OS option resource. :vartype name: str - :ivar type: Type of the OS option profile. + :ivar type: The type of the OS option resource. :vartype type: str - :param os_option_property_list: Required. The list of OS option properties. + :param os_option_property_list: Required. The list of OS options. :type os_option_property_list: list[~azure.mgmt.containerservice.v2021_05_01.models.OSOptionProperty] """ @@ -3352,9 +3497,9 @@ class OSOptionProperty(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. - :param os_type: Required. OS type. + :param os_type: Required. The OS type. :type os_type: str - :param enable_fips_image: Required. Whether FIPS image is enabled. + :param enable_fips_image: Required. Whether the image is FIPS-enabled. :type enable_fips_image: bool """ @@ -3466,7 +3611,7 @@ def __init__( class PrivateEndpoint(msrest.serialization.Model): """Private endpoint which a connection belongs to. - :param id: The resource Id for private endpoint. + :param id: The resource ID of the private endpoint. :type id: str """ @@ -3573,7 +3718,7 @@ class PrivateLinkResource(msrest.serialization.Model): :type type: str :param group_id: The group ID of the resource. :type group_id: str - :param required_members: RequiredMembers of the resource. + :param required_members: The RequiredMembers of the resource. :type required_members: list[str] :ivar private_link_service_id: The private link service ID of the resource, this field is exposed only to NRP internally. @@ -3682,13 +3827,13 @@ def __init__( class RunCommandRequest(msrest.serialization.Model): - """run command request. + """A run command request. All required parameters must be populated in order to send to Azure. - :param command: Required. command to run. + :param command: Required. The command to run. :type command: str - :param context: base64 encoded zip file, contains files required by the command. + :param context: A base64 encoded zip file containing the files required by the command. :type context: str :param cluster_token: AuthToken issued for AKS AAD Server App. :type cluster_token: str @@ -3723,19 +3868,19 @@ class RunCommandResult(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: command id. + :ivar id: The command id. :vartype id: str :ivar provisioning_state: provisioning State. :vartype provisioning_state: str - :ivar exit_code: exit code of the command. + :ivar exit_code: The exit code of the command. :vartype exit_code: int - :ivar started_at: time when the command started. + :ivar started_at: The time when the command started. :vartype started_at: ~datetime.datetime - :ivar finished_at: time when the command finished. + :ivar finished_at: The time when the command finished. :vartype finished_at: ~datetime.datetime - :ivar logs: command output. + :ivar logs: The command output. :vartype logs: str - :ivar reason: explain why provisioningState is set to failed (if so). + :ivar reason: An explanation of why provisioningState is set to failed (if so). :vartype reason: str """ @@ -3937,7 +4082,7 @@ class SystemData(msrest.serialization.Model): :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.containerservice.v2021_05_01.models.CreatedByType - :param created_at: The timestamp of resource creation (UTC). + :param created_at: The UTC timestamp of resource creation. :type created_at: ~datetime.datetime :param last_modified_by: The identity that last modified the resource. :type last_modified_by: str @@ -4002,10 +4147,12 @@ def __init__( class TimeInWeek(msrest.serialization.Model): """Time in a week. - :param day: A day in a week. Possible values include: "Sunday", "Monday", "Tuesday", + :param day: The day of the week. Possible values include: "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday". :type day: str or ~azure.mgmt.containerservice.v2021_05_01.models.WeekDay - :param hour_slots: hour slots in a day. + :param hour_slots: Each integer hour represents a time range beginning at 0m after the hour + ending at the next hour (non-inclusive). 0 corresponds to 00:00 UTC, 23 corresponds to 23:00 + UTC. Specifying [0, 1] means the 00:00 - 02:00 UTC time range. :type hour_slots: list[int] """ @@ -4027,7 +4174,7 @@ def __init__( class TimeSpan(msrest.serialization.Model): - """The time span with start and end properties. + """For example, between 2021-05-25T13:00:00Z and 2021-05-25T14:00:00Z. :param start: The start of a time span. :type start: ~datetime.datetime diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_agent_pools_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_agent_pools_operations.py index 76b28d7fd51c..35911eea6d77 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_agent_pools_operations.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_agent_pools_operations.py @@ -56,8 +56,7 @@ def list( # type: (...) -> Iterable["_models.AgentPoolListResult"] """Gets a list of agent pools in the specified managed cluster. - Gets a list of agent pools in the specified managed cluster. The operation returns properties - of each agent pool. + Gets a list of agent pools in the specified managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -133,9 +132,9 @@ def get( **kwargs # type: Any ): # type: (...) -> "_models.AgentPool" - """Gets the agent pool. + """Gets the specified managed cluster agent pool. - Gets the details of the agent pool by managed cluster and resource group. + Gets the specified managed cluster agent pool. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -259,7 +258,7 @@ def begin_create_or_update( **kwargs # type: Any ): # type: (...) -> LROPoller["_models.AgentPool"] - """Creates or updates an agent pool. + """Creates or updates an agent pool in the specified managed cluster. Creates or updates an agent pool in the specified managed cluster. @@ -269,7 +268,7 @@ def begin_create_or_update( :type resource_name: str :param agent_pool_name: The name of the agent pool. :type agent_pool_name: str - :param parameters: Parameters supplied to the Create or Update an agent pool operation. + :param parameters: The agent pool to create or update. :type parameters: ~azure.mgmt.containerservice.v2021_05_01.models.AgentPool :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. @@ -384,9 +383,9 @@ def begin_delete( **kwargs # type: Any ): # type: (...) -> LROPoller[None] - """Deletes an agent pool. + """Deletes an agent pool in the specified managed cluster. - Deletes the agent pool in the specified managed cluster. + Deletes an agent pool in the specified managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -456,10 +455,9 @@ def get_upgrade_profile( **kwargs # type: Any ): # type: (...) -> "_models.AgentPoolUpgradeProfile" - """Gets upgrade profile for an agent pool. + """Gets the upgrade profile for an agent pool. - Gets the details of the upgrade profile for an agent pool with a specified resource group and - managed cluster name. + Gets the upgrade profile for an agent pool. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -521,9 +519,11 @@ def get_available_agent_pool_versions( **kwargs # type: Any ): # type: (...) -> "_models.AgentPoolAvailableVersions" - """Gets a list of supported versions for the specified agent pool. + """Gets a list of supported Kubernetes versions for the specified agent pool. - Gets a list of supported versions for the specified agent pool. + See `supported Kubernetes versions + `_ for more details about + the version lifecycle. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -635,9 +635,11 @@ def begin_upgrade_node_image_version( **kwargs # type: Any ): # type: (...) -> LROPoller["_models.AgentPool"] - """Upgrade node image version of an agent pool to the latest. + """Upgrades the node image version of an agent pool to the latest. - Upgrade node image version of an agent pool to the latest. + Upgrading the node image version of an agent pool applies the newest OS and runtime updates to + the nodes. AKS provides one new image per week with the latest updates. For more details on + node image versions, see: https://docs.microsoft.com/azure/aks/node-image-upgrade. :param resource_group_name: The name of the resource group. :type resource_group_name: str diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_maintenance_configurations_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_maintenance_configurations_operations.py index 0fdcd1ee2fa2..304c6b195833 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_maintenance_configurations_operations.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_maintenance_configurations_operations.py @@ -54,8 +54,7 @@ def list_by_managed_cluster( # type: (...) -> Iterable["_models.MaintenanceConfigurationListResult"] """Gets a list of maintenance configurations in the specified managed cluster. - Gets a list of maintenance configurations in the specified managed cluster. The operation - returns properties of each maintenance configuration. + Gets a list of maintenance configurations in the specified managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -131,9 +130,9 @@ def get( **kwargs # type: Any ): # type: (...) -> "_models.MaintenanceConfiguration" - """Gets the maintenance configuration. + """Gets the specified maintenance configuration of a managed cluster. - Gets the details of maintenance configurations by managed cluster and resource group. + Gets the specified maintenance configuration of a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -197,7 +196,7 @@ def create_or_update( **kwargs # type: Any ): # type: (...) -> "_models.MaintenanceConfiguration" - """Creates or updates a maintenance configurations. + """Creates or updates a maintenance configuration in the specified managed cluster. Creates or updates a maintenance configuration in the specified managed cluster. @@ -207,8 +206,7 @@ def create_or_update( :type resource_name: str :param config_name: The name of the maintenance configuration. :type config_name: str - :param parameters: Parameters supplied to the Create or Update a default maintenance - configuration. + :param parameters: The maintenance configuration to create or update. :type parameters: ~azure.mgmt.containerservice.v2021_05_01.models.MaintenanceConfiguration :keyword callable cls: A custom type or function that will be passed the direct response :return: MaintenanceConfiguration, or the result of cls(response) @@ -272,7 +270,7 @@ def delete( # type: (...) -> None """Deletes a maintenance configuration. - Deletes the maintenance configuration in the specified managed cluster. + Deletes a maintenance configuration. :param resource_group_name: The name of the resource group. :type resource_group_name: str diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_managed_clusters_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_managed_clusters_operations.py index db49ec983fd2..fa0d76950e13 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_managed_clusters_operations.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_managed_clusters_operations.py @@ -60,7 +60,7 @@ def get_os_options( :param location: The name of a supported Azure region. :type location: str - :param resource_type: resource type for which the OS options needs to be returned. + :param resource_type: The resource type for which the OS options needs to be returned. :type resource_type: str :keyword callable cls: A custom type or function that will be passed the direct response :return: OSOptionProfile, or the result of cls(response) @@ -116,8 +116,7 @@ def list( # type: (...) -> Iterable["_models.ManagedClusterListResult"] """Gets a list of managed clusters in the specified subscription. - Gets a list of managed clusters in the specified subscription. The operation returns properties - of each managed cluster. + Gets a list of managed clusters in the specified subscription. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ManagedClusterListResult or the result of cls(response) @@ -187,8 +186,7 @@ def list_by_resource_group( # type: (...) -> Iterable["_models.ManagedClusterListResult"] """Lists managed clusters in the specified subscription and resource group. - Lists managed clusters in the specified subscription and resource group. The operation returns - properties of each managed cluster. + Lists managed clusters in the specified subscription and resource group. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -260,10 +258,9 @@ def get_upgrade_profile( **kwargs # type: Any ): # type: (...) -> "_models.ManagedClusterUpgradeProfile" - """Gets upgrade profile for a managed cluster. + """Gets the upgrade profile of a managed cluster. - Gets the details of the upgrade profile for a managed cluster with a specified resource group - and name. + Gets the upgrade profile of a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -325,12 +322,10 @@ def get_access_profile( # type: (...) -> "_models.ManagedClusterAccessProfile" """Gets an access profile of a managed cluster. - Gets the accessProfile for the specified role name of the managed cluster with a specified - resource group and name. **WARNING**\ : This API will be deprecated. Instead use - `ListClusterUserCredentials - `_ or + **WARNING**\ : This API will be deprecated. Instead use `ListClusterUserCredentials + `_ or `ListClusterAdminCredentials - `_ . + `_ . :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -393,9 +388,9 @@ def list_cluster_admin_credentials( **kwargs # type: Any ): # type: (...) -> "_models.CredentialResults" - """Gets cluster admin credential of a managed cluster. + """Lists the admin credentials of a managed cluster. - Gets cluster admin credential of the managed cluster with a specified resource group and name. + Lists the admin credentials of a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -459,9 +454,9 @@ def list_cluster_user_credentials( **kwargs # type: Any ): # type: (...) -> "_models.CredentialResults" - """Gets cluster user credential of a managed cluster. + """Lists the user credentials of a managed cluster. - Gets cluster user credential of the managed cluster with a specified resource group and name. + Lists the user credentials of a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -525,10 +520,9 @@ def list_cluster_monitoring_user_credentials( **kwargs # type: Any ): # type: (...) -> "_models.CredentialResults" - """Gets cluster monitoring user credential of a managed cluster. + """Lists the cluster monitoring user credentials of a managed cluster. - Gets cluster monitoring user credential of the managed cluster with a specified resource group - and name. + Lists the cluster monitoring user credentials of a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -593,7 +587,7 @@ def get( # type: (...) -> "_models.ManagedCluster" """Gets a managed cluster. - Gets the details of the managed cluster with a specified resource group and name. + Gets a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -713,14 +707,13 @@ def begin_create_or_update( # type: (...) -> LROPoller["_models.ManagedCluster"] """Creates or updates a managed cluster. - Creates or updates a managed cluster with the specified configuration for agents and Kubernetes - version. + Creates or updates a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str :param resource_name: The name of the managed cluster resource. :type resource_name: str - :param parameters: Parameters supplied to the Create or Update a Managed Cluster operation. + :param parameters: The managed cluster to create or update. :type parameters: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedCluster :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. @@ -842,7 +835,7 @@ def begin_update_tags( # type: (...) -> LROPoller["_models.ManagedCluster"] """Updates tags on a managed cluster. - Updates a managed cluster with the specified tags. + Updates tags on a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -960,7 +953,7 @@ def begin_delete( # type: (...) -> LROPoller[None] """Deletes a managed cluster. - Deletes the managed cluster with a specified resource group and name. + Deletes a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -1077,16 +1070,15 @@ def begin_reset_service_principal_profile( **kwargs # type: Any ): # type: (...) -> LROPoller[None] - """Reset Service Principal Profile of a managed cluster. + """Reset the Service Principal Profile of a managed cluster. - Update the service principal Profile for a managed cluster. + This action cannot be performed on a cluster that is not using a service principal. :param resource_group_name: The name of the resource group. :type resource_group_name: str :param resource_name: The name of the managed cluster resource. :type resource_name: str - :param parameters: Parameters supplied to the Reset Service Principal Profile operation for a - Managed Cluster. + :param parameters: The service principal profile to set on the managed cluster. :type parameters: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterServicePrincipalProfile :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. @@ -1200,16 +1192,15 @@ def begin_reset_aad_profile( **kwargs # type: Any ): # type: (...) -> LROPoller[None] - """Reset AAD Profile of a managed cluster. + """Reset the AAD Profile of a managed cluster. - Update the AAD Profile for a managed cluster. + Reset the AAD Profile of a managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str :param resource_name: The name of the managed cluster resource. :type resource_name: str - :param parameters: Parameters supplied to the Reset AAD Profile operation for a Managed - Cluster. + :param parameters: The AAD profile to set on the Managed Cluster. :type parameters: ~azure.mgmt.containerservice.v2021_05_01.models.ManagedClusterAADProfile :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. @@ -1316,9 +1307,10 @@ def begin_rotate_cluster_certificates( **kwargs # type: Any ): # type: (...) -> LROPoller[None] - """Rotate certificates of a managed cluster. + """Rotates the certificates of a managed cluster. - Rotate certificates of a managed cluster. + See `Certificate rotation `_ for + more details about rotating managed cluster certificates. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -1428,9 +1420,13 @@ def begin_stop( **kwargs # type: Any ): # type: (...) -> LROPoller[None] - """Stop Managed Cluster. + """Stops a Managed Cluster. - Stops a Running Managed Cluster. + This can only be performed on Azure Virtual Machine Scale set backed clusters. Stopping a + cluster stops the control plane and agent nodes entirely, while maintaining all object and + cluster state. A cluster does not accrue charges while it is stopped. See `stopping a cluster + `_ for more details about stopping a + cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -1540,9 +1536,10 @@ def begin_start( **kwargs # type: Any ): # type: (...) -> LROPoller[None] - """Start Managed Cluster. + """Starts a previously stopped Managed Cluster. - Starts a Stopped Managed Cluster. + See `starting a cluster `_ for more + details about starting a cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -1664,16 +1661,17 @@ def begin_run_command( **kwargs # type: Any ): # type: (...) -> LROPoller["_models.RunCommandResult"] - """Run Command against Managed Kubernetes Service. + """Submits a command to run against the Managed Cluster. - Submit a command to run against managed kubernetes service, it will create a pod to run the - command. + AKS will create a pod to run the command. This is primarily useful for private clusters. For + more information see `AKS Run Command + `_. :param resource_group_name: The name of the resource group. :type resource_group_name: str :param resource_name: The name of the managed cluster resource. :type resource_name: str - :param request_payload: Parameters supplied to the RunCommand operation. + :param request_payload: The run command request. :type request_payload: ~azure.mgmt.containerservice.v2021_05_01.models.RunCommandRequest :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. @@ -1739,15 +1737,15 @@ def get_command_result( **kwargs # type: Any ): # type: (...) -> Optional["_models.RunCommandResult"] - """Get command result. + """Gets the results of a command which has been run on the Managed Cluster. - Get command result from previous runCommand invoke. + Gets the results of a command which has been run on the Managed Cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str :param resource_name: The name of the managed cluster resource. :type resource_name: str - :param command_id: Id of the command request. + :param command_id: Id of the command. :type command_id: str :keyword callable cls: A custom type or function that will be passed the direct response :return: RunCommandResult, or the result of cls(response) diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_operations.py index c26019e7667c..4932d0d0e94b 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_operations.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_operations.py @@ -50,7 +50,9 @@ def list( **kwargs # type: Any ): # type: (...) -> Iterable["_models.OperationListResult"] - """Gets a list of compute operations. + """Gets a list of operations. + + Gets a list of operations. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either OperationListResult or the result of cls(response) diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_private_endpoint_connections_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_private_endpoint_connections_operations.py index 4cebbb525d11..32afc4933599 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_private_endpoint_connections_operations.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_private_endpoint_connections_operations.py @@ -55,8 +55,8 @@ def list( # type: (...) -> "_models.PrivateEndpointConnectionListResult" """Gets a list of private endpoint connections in the specified managed cluster. - Gets a list of private endpoint connections in the specified managed cluster. The operation - returns properties of each private endpoint connection. + To learn more about private clusters, see: + https://docs.microsoft.com/azure/aks/private-clusters. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -116,9 +116,10 @@ def get( **kwargs # type: Any ): # type: (...) -> "_models.PrivateEndpointConnection" - """Gets the private endpoint connection. + """Gets the specified private endpoint connection. - Gets the details of the private endpoint connection by managed cluster and resource group. + To learn more about private clusters, see: + https://docs.microsoft.com/azure/aks/private-clusters. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -184,7 +185,7 @@ def update( # type: (...) -> "_models.PrivateEndpointConnection" """Updates a private endpoint connection. - Updates a private endpoint connection in the specified managed cluster. + Updates a private endpoint connection. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -192,7 +193,7 @@ def update( :type resource_name: str :param private_endpoint_connection_name: The name of the private endpoint connection. :type private_endpoint_connection_name: str - :param parameters: Parameters supplied to the Update a private endpoint connection operation. + :param parameters: The updated private endpoint connection. :type parameters: ~azure.mgmt.containerservice.v2021_05_01.models.PrivateEndpointConnection :keyword callable cls: A custom type or function that will be passed the direct response :return: PrivateEndpointConnection, or the result of cls(response) @@ -303,7 +304,7 @@ def begin_delete( # type: (...) -> LROPoller[None] """Deletes a private endpoint connection. - Deletes the private endpoint connection in the specified managed cluster. + Deletes a private endpoint connection. :param resource_group_name: The name of the resource group. :type resource_group_name: str diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_private_link_resources_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_private_link_resources_operations.py index 09f87df3e667..842312f3a90f 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_private_link_resources_operations.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_private_link_resources_operations.py @@ -53,8 +53,8 @@ def list( # type: (...) -> "_models.PrivateLinkResourcesListResult" """Gets a list of private link resources in the specified managed cluster. - Gets a list of private link resources in the specified managed cluster. The operation returns - properties of each private link resource. + To learn more about private clusters, see: + https://docs.microsoft.com/azure/aks/private-clusters. :param resource_group_name: The name of the resource group. :type resource_group_name: str diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_resolve_private_link_service_id_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_resolve_private_link_service_id_operations.py index 888fd53525f6..7be840c05e18 100644 --- a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_resolve_private_link_service_id_operations.py +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01/operations/_resolve_private_link_service_id_operations.py @@ -54,14 +54,13 @@ def post( # type: (...) -> "_models.PrivateLinkResource" """Gets the private link service ID for the specified managed cluster. - Gets the private link service ID the specified managed cluster. + Gets the private link service ID for the specified managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str :param resource_name: The name of the managed cluster resource. :type resource_name: str - :param parameters: Parameters (name, groupId) supplied in order to resolve a private link - service ID. + :param parameters: Parameters required in order to resolve a private link service ID. :type parameters: ~azure.mgmt.containerservice.v2021_05_01.models.PrivateLinkResource :keyword callable cls: A custom type or function that will be passed the direct response :return: PrivateLinkResource, or the result of cls(response) diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/__init__.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/__init__.py new file mode 100644 index 000000000000..eb3d7ba7a265 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/__init__.py @@ -0,0 +1,16 @@ +# 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 ._container_service_client import ContainerServiceClient +__all__ = ['ContainerServiceClient'] + +try: + from ._patch import patch_sdk # type: ignore + patch_sdk() +except ImportError: + pass diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/_configuration.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/_configuration.py new file mode 100644 index 000000000000..07afbf85a157 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/_configuration.py @@ -0,0 +1,70 @@ +# 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 + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies +from azure.mgmt.core.policies import ARMHttpLoggingPolicy + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any + + from azure.core.credentials import TokenCredential + +VERSION = "unknown" + +class ContainerServiceClientConfiguration(Configuration): + """Configuration for ContainerServiceClient. + + Note that all parameters used to create this instance are saved as instance + attributes. + + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials.TokenCredential + :param subscription_id: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + :type subscription_id: str + """ + + def __init__( + self, + credential, # type: "TokenCredential" + subscription_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + if credential is None: + raise ValueError("Parameter 'credential' must not be None.") + if subscription_id is None: + raise ValueError("Parameter 'subscription_id' must not be None.") + super(ContainerServiceClientConfiguration, self).__init__(**kwargs) + + self.credential = credential + self.subscription_id = subscription_id + self.api_version = "2021-07-01" + self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) + kwargs.setdefault('sdk_moniker', 'mgmt-containerservice/{}'.format(VERSION)) + self._configure(**kwargs) + + def _configure( + self, + **kwargs # type: Any + ): + # type: (...) -> None + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') + if self.credential and not self.authentication_policy: + self.authentication_policy = policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/_container_service_client.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/_container_service_client.py new file mode 100644 index 000000000000..f6d6b5c7484a --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/_container_service_client.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 TYPE_CHECKING + +from azure.mgmt.core import ARMPipelineClient +from msrest import Deserializer, Serializer + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Optional + + from azure.core.credentials import TokenCredential + from azure.core.pipeline.transport import HttpRequest, HttpResponse + +from ._configuration import ContainerServiceClientConfiguration +from .operations import Operations +from .operations import ManagedClustersOperations +from .operations import MaintenanceConfigurationsOperations +from .operations import AgentPoolsOperations +from .operations import PrivateEndpointConnectionsOperations +from .operations import PrivateLinkResourcesOperations +from .operations import ResolvePrivateLinkServiceIdOperations +from . import models + + +class ContainerServiceClient(object): + """The Container Service Client. + + :ivar operations: Operations operations + :vartype operations: azure.mgmt.containerservice.v2021_07_01.operations.Operations + :ivar managed_clusters: ManagedClustersOperations operations + :vartype managed_clusters: azure.mgmt.containerservice.v2021_07_01.operations.ManagedClustersOperations + :ivar maintenance_configurations: MaintenanceConfigurationsOperations operations + :vartype maintenance_configurations: azure.mgmt.containerservice.v2021_07_01.operations.MaintenanceConfigurationsOperations + :ivar agent_pools: AgentPoolsOperations operations + :vartype agent_pools: azure.mgmt.containerservice.v2021_07_01.operations.AgentPoolsOperations + :ivar private_endpoint_connections: PrivateEndpointConnectionsOperations operations + :vartype private_endpoint_connections: azure.mgmt.containerservice.v2021_07_01.operations.PrivateEndpointConnectionsOperations + :ivar private_link_resources: PrivateLinkResourcesOperations operations + :vartype private_link_resources: azure.mgmt.containerservice.v2021_07_01.operations.PrivateLinkResourcesOperations + :ivar resolve_private_link_service_id: ResolvePrivateLinkServiceIdOperations operations + :vartype resolve_private_link_service_id: azure.mgmt.containerservice.v2021_07_01.operations.ResolvePrivateLinkServiceIdOperations + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials.TokenCredential + :param subscription_id: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + :type subscription_id: str + :param str base_url: Service URL + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + """ + + def __init__( + self, + credential, # type: "TokenCredential" + subscription_id, # type: str + base_url=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> None + if not base_url: + base_url = 'https://management.azure.com' + self._config = ContainerServiceClientConfiguration(credential, subscription_id, **kwargs) + self._client = ARMPipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False + self._deserialize = Deserializer(client_models) + + self.operations = Operations( + self._client, self._config, self._serialize, self._deserialize) + self.managed_clusters = ManagedClustersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.maintenance_configurations = MaintenanceConfigurationsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.agent_pools = AgentPoolsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.private_endpoint_connections = PrivateEndpointConnectionsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.private_link_resources = PrivateLinkResourcesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.resolve_private_link_service_id = ResolvePrivateLinkServiceIdOperations( + 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'), + } + 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 + self._client.close() + + def __enter__(self): + # type: () -> ContainerServiceClient + self._client.__enter__() + return self + + def __exit__(self, *exc_details): + # type: (Any) -> None + self._client.__exit__(*exc_details) diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/_metadata.json b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/_metadata.json new file mode 100644 index 000000000000..3d55a4978276 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/_metadata.json @@ -0,0 +1,109 @@ +{ + "chosen_version": "2021-07-01", + "total_api_version_list": ["2021-07-01"], + "client": { + "name": "ContainerServiceClient", + "filename": "_container_service_client", + "description": "The Container Service Client.", + "base_url": "\u0027https://management.azure.com\u0027", + "custom_base_url": null, + "azure_arm": true, + "has_lro_operations": true, + "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\": [\"ContainerServiceClientConfiguration\"]}}, \"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\": [\"ContainerServiceClientConfiguration\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Optional\"]}, \"azurecore\": {\"azure.core.pipeline.transport\": [\"AsyncHttpResponse\", \"HttpRequest\"]}}}" + }, + "global_parameters": { + "sync": { + "credential": { + "signature": "credential, # type: \"TokenCredential\"", + "description": "Credential needed for the client to connect to Azure.", + "docstring_type": "~azure.core.credentials.TokenCredential", + "required": true + }, + "subscription_id": { + "signature": "subscription_id, # type: str", + "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + "docstring_type": "str", + "required": true + } + }, + "async": { + "credential": { + "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: str,", + "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + "docstring_type": "str", + "required": true + } + }, + "constant": { + }, + "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, + "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": { + "operations": "Operations", + "managed_clusters": "ManagedClustersOperations", + "maintenance_configurations": "MaintenanceConfigurationsOperations", + "agent_pools": "AgentPoolsOperations", + "private_endpoint_connections": "PrivateEndpointConnectionsOperations", + "private_link_resources": "PrivateLinkResourcesOperations", + "resolve_private_link_service_id": "ResolvePrivateLinkServiceIdOperations" + } +} \ No newline at end of file diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/__init__.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/__init__.py new file mode 100644 index 000000000000..4ad2bb20096a --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/__init__.py @@ -0,0 +1,10 @@ +# 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 ._container_service_client import ContainerServiceClient +__all__ = ['ContainerServiceClient'] diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/_configuration.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/_configuration.py new file mode 100644 index 000000000000..f7e266a3188b --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/_configuration.py @@ -0,0 +1,66 @@ +# 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, TYPE_CHECKING + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies +from azure.mgmt.core.policies import ARMHttpLoggingPolicy + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials_async import AsyncTokenCredential + +VERSION = "unknown" + +class ContainerServiceClientConfiguration(Configuration): + """Configuration for ContainerServiceClient. + + Note that all parameters used to create this instance are saved as instance + attributes. + + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :param subscription_id: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + :type subscription_id: str + """ + + def __init__( + self, + credential: "AsyncTokenCredential", + subscription_id: str, + **kwargs: Any + ) -> None: + if credential is None: + raise ValueError("Parameter 'credential' must not be None.") + if subscription_id is None: + raise ValueError("Parameter 'subscription_id' must not be None.") + super(ContainerServiceClientConfiguration, self).__init__(**kwargs) + + self.credential = credential + self.subscription_id = subscription_id + self.api_version = "2021-07-01" + self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) + kwargs.setdefault('sdk_moniker', 'mgmt-containerservice/{}'.format(VERSION)) + self._configure(**kwargs) + + def _configure( + self, + **kwargs: Any + ) -> None: + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') + if self.credential and not self.authentication_policy: + self.authentication_policy = policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/_container_service_client.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/_container_service_client.py new file mode 100644 index 000000000000..169392b48bf0 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/_container_service_client.py @@ -0,0 +1,112 @@ +# 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, Optional, TYPE_CHECKING + +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core import AsyncARMPipelineClient +from msrest import Deserializer, Serializer + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials_async import AsyncTokenCredential + +from ._configuration import ContainerServiceClientConfiguration +from .operations import Operations +from .operations import ManagedClustersOperations +from .operations import MaintenanceConfigurationsOperations +from .operations import AgentPoolsOperations +from .operations import PrivateEndpointConnectionsOperations +from .operations import PrivateLinkResourcesOperations +from .operations import ResolvePrivateLinkServiceIdOperations +from .. import models + + +class ContainerServiceClient(object): + """The Container Service Client. + + :ivar operations: Operations operations + :vartype operations: azure.mgmt.containerservice.v2021_07_01.aio.operations.Operations + :ivar managed_clusters: ManagedClustersOperations operations + :vartype managed_clusters: azure.mgmt.containerservice.v2021_07_01.aio.operations.ManagedClustersOperations + :ivar maintenance_configurations: MaintenanceConfigurationsOperations operations + :vartype maintenance_configurations: azure.mgmt.containerservice.v2021_07_01.aio.operations.MaintenanceConfigurationsOperations + :ivar agent_pools: AgentPoolsOperations operations + :vartype agent_pools: azure.mgmt.containerservice.v2021_07_01.aio.operations.AgentPoolsOperations + :ivar private_endpoint_connections: PrivateEndpointConnectionsOperations operations + :vartype private_endpoint_connections: azure.mgmt.containerservice.v2021_07_01.aio.operations.PrivateEndpointConnectionsOperations + :ivar private_link_resources: PrivateLinkResourcesOperations operations + :vartype private_link_resources: azure.mgmt.containerservice.v2021_07_01.aio.operations.PrivateLinkResourcesOperations + :ivar resolve_private_link_service_id: ResolvePrivateLinkServiceIdOperations operations + :vartype resolve_private_link_service_id: azure.mgmt.containerservice.v2021_07_01.aio.operations.ResolvePrivateLinkServiceIdOperations + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :param subscription_id: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + :type subscription_id: str + :param str base_url: Service URL + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + """ + + def __init__( + self, + credential: "AsyncTokenCredential", + subscription_id: str, + base_url: Optional[str] = None, + **kwargs: Any + ) -> None: + if not base_url: + base_url = 'https://management.azure.com' + self._config = ContainerServiceClientConfiguration(credential, subscription_id, **kwargs) + self._client = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False + self._deserialize = Deserializer(client_models) + + self.operations = Operations( + self._client, self._config, self._serialize, self._deserialize) + self.managed_clusters = ManagedClustersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.maintenance_configurations = MaintenanceConfigurationsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.agent_pools = AgentPoolsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.private_endpoint_connections = PrivateEndpointConnectionsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.private_link_resources = PrivateLinkResourcesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.resolve_private_link_service_id = ResolvePrivateLinkServiceIdOperations( + 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'), + } + 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() + + async def __aenter__(self) -> "ContainerServiceClient": + await self._client.__aenter__() + return self + + async def __aexit__(self, *exc_details) -> None: + await self._client.__aexit__(*exc_details) diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/__init__.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/__init__.py new file mode 100644 index 000000000000..3942e0ca6a01 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/__init__.py @@ -0,0 +1,25 @@ +# 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 ._operations import Operations +from ._managed_clusters_operations import ManagedClustersOperations +from ._maintenance_configurations_operations import MaintenanceConfigurationsOperations +from ._agent_pools_operations import AgentPoolsOperations +from ._private_endpoint_connections_operations import PrivateEndpointConnectionsOperations +from ._private_link_resources_operations import PrivateLinkResourcesOperations +from ._resolve_private_link_service_id_operations import ResolvePrivateLinkServiceIdOperations + +__all__ = [ + 'Operations', + 'ManagedClustersOperations', + 'MaintenanceConfigurationsOperations', + 'AgentPoolsOperations', + 'PrivateEndpointConnectionsOperations', + 'PrivateLinkResourcesOperations', + 'ResolvePrivateLinkServiceIdOperations', +] diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_agent_pools_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_agent_pools_operations.py new file mode 100644 index 000000000000..1d91c5f9a227 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_agent_pools_operations.py @@ -0,0 +1,691 @@ +# 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 AgentPoolsOperations: + """AgentPoolsOperations 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.containerservice.v2021_07_01.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, + resource_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.AgentPoolListResult"]: + """Gets a list of agent pools in the specified managed cluster. + + Gets a list of agent pools in the specified managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either AgentPoolListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AgentPoolListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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('AgentPoolListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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.ContainerService/managedClusters/{resourceName}/agentPools'} # type: ignore + + async def get( + self, + resource_group_name: str, + resource_name: str, + agent_pool_name: str, + **kwargs: Any + ) -> "_models.AgentPool": + """Gets the specified managed cluster agent pool. + + Gets the specified managed cluster agent pool. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param agent_pool_name: The name of the agent pool. + :type agent_pool_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AgentPool, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.AgentPool + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AgentPool"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_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['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('AgentPool', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}'} # type: ignore + + async def _create_or_update_initial( + self, + resource_group_name: str, + resource_name: str, + agent_pool_name: str, + parameters: "_models.AgentPool", + **kwargs: Any + ) -> "_models.AgentPool": + cls = kwargs.pop('cls', None) # type: ClsType["_models.AgentPool"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_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(parameters, 'AgentPool') + 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('AgentPool', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('AgentPool', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}'} # type: ignore + + async def begin_create_or_update( + self, + resource_group_name: str, + resource_name: str, + agent_pool_name: str, + parameters: "_models.AgentPool", + **kwargs: Any + ) -> AsyncLROPoller["_models.AgentPool"]: + """Creates or updates an agent pool in the specified managed cluster. + + Creates or updates an agent pool in the specified managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param agent_pool_name: The name of the agent pool. + :type agent_pool_name: str + :param parameters: The agent pool to create or update. + :type parameters: ~azure.mgmt.containerservice.v2021_07_01.models.AgentPool + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 AgentPool or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.containerservice.v2021_07_01.models.AgentPool] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.AgentPool"] + 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_or_update_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + agent_pool_name=agent_pool_name, + parameters=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('AgentPool', 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_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_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}'} # type: ignore + + async def _delete_initial( + self, + resource_group_name: str, + resource_name: str, + agent_pool_name: str, + **kwargs: Any + ) -> 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-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_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['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.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}'} # type: ignore + + async def begin_delete( + self, + resource_group_name: str, + resource_name: str, + agent_pool_name: str, + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Deletes an agent pool in the specified managed cluster. + + Deletes an agent pool in the specified managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param agent_pool_name: The name of the agent pool. + :type agent_pool_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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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, + resource_name=resource_name, + agent_pool_name=agent_pool_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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_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_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}'} # type: ignore + + async def get_upgrade_profile( + self, + resource_group_name: str, + resource_name: str, + agent_pool_name: str, + **kwargs: Any + ) -> "_models.AgentPoolUpgradeProfile": + """Gets the upgrade profile for an agent pool. + + Gets the upgrade profile for an agent pool. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param agent_pool_name: The name of the agent pool. + :type agent_pool_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AgentPoolUpgradeProfile, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolUpgradeProfile + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AgentPoolUpgradeProfile"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.get_upgrade_profile.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_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['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('AgentPoolUpgradeProfile', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_upgrade_profile.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}/upgradeProfiles/default'} # type: ignore + + async def get_available_agent_pool_versions( + self, + resource_group_name: str, + resource_name: str, + **kwargs: Any + ) -> "_models.AgentPoolAvailableVersions": + """Gets a list of supported Kubernetes versions for the specified agent pool. + + See `supported Kubernetes versions + `_ for more details about + the version lifecycle. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AgentPoolAvailableVersions, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolAvailableVersions + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AgentPoolAvailableVersions"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.get_available_agent_pool_versions.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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('AgentPoolAvailableVersions', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_available_agent_pool_versions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/availableAgentPoolVersions'} # type: ignore + + async def _upgrade_node_image_version_initial( + self, + resource_group_name: str, + resource_name: str, + agent_pool_name: str, + **kwargs: Any + ) -> Optional["_models.AgentPool"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.AgentPool"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self._upgrade_node_image_version_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_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['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 == 202: + deserialized = self._deserialize('AgentPool', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _upgrade_node_image_version_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}/upgradeNodeImageVersion'} # type: ignore + + async def begin_upgrade_node_image_version( + self, + resource_group_name: str, + resource_name: str, + agent_pool_name: str, + **kwargs: Any + ) -> AsyncLROPoller["_models.AgentPool"]: + """Upgrades the node image version of an agent pool to the latest. + + Upgrading the node image version of an agent pool applies the newest OS and runtime updates to + the nodes. AKS provides one new image per week with the latest updates. For more details on + node image versions, see: https://docs.microsoft.com/azure/aks/node-image-upgrade. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param agent_pool_name: The name of the agent pool. + :type agent_pool_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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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["_models.AgentPool"] + 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._upgrade_node_image_version_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + agent_pool_name=agent_pool_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('AgentPool', 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_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_upgrade_node_image_version.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}/upgradeNodeImageVersion'} # type: ignore diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_maintenance_configurations_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_maintenance_configurations_operations.py new file mode 100644 index 000000000000..ac3341c5a79c --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_maintenance_configurations_operations.py @@ -0,0 +1,315 @@ +# 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 MaintenanceConfigurationsOperations: + """MaintenanceConfigurationsOperations 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.containerservice.v2021_07_01.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_managed_cluster( + self, + resource_group_name: str, + resource_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.MaintenanceConfigurationListResult"]: + """Gets a list of maintenance configurations in the specified managed cluster. + + Gets a list of maintenance configurations in the specified managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either MaintenanceConfigurationListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.containerservice.v2021_07_01.models.MaintenanceConfigurationListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MaintenanceConfigurationListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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_managed_cluster.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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('MaintenanceConfigurationListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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_managed_cluster.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/maintenanceConfigurations'} # type: ignore + + async def get( + self, + resource_group_name: str, + resource_name: str, + config_name: str, + **kwargs: Any + ) -> "_models.MaintenanceConfiguration": + """Gets the specified maintenance configuration of a managed cluster. + + Gets the specified maintenance configuration of a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param config_name: The name of the maintenance configuration. + :type config_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MaintenanceConfiguration, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.MaintenanceConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MaintenanceConfiguration"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'configName': self._serialize.url("config_name", config_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['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('MaintenanceConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/maintenanceConfigurations/{configName}'} # type: ignore + + async def create_or_update( + self, + resource_group_name: str, + resource_name: str, + config_name: str, + parameters: "_models.MaintenanceConfiguration", + **kwargs: Any + ) -> "_models.MaintenanceConfiguration": + """Creates or updates a maintenance configuration in the specified managed cluster. + + Creates or updates a maintenance configuration in the specified managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param config_name: The name of the maintenance configuration. + :type config_name: str + :param parameters: The maintenance configuration to create or update. + :type parameters: ~azure.mgmt.containerservice.v2021_07_01.models.MaintenanceConfiguration + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MaintenanceConfiguration, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.MaintenanceConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MaintenanceConfiguration"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'configName': self._serialize.url("config_name", config_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(parameters, 'MaintenanceConfiguration') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MaintenanceConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/maintenanceConfigurations/{configName}'} # type: ignore + + async def delete( + self, + resource_group_name: str, + resource_name: str, + config_name: str, + **kwargs: Any + ) -> None: + """Deletes a maintenance configuration. + + Deletes a maintenance configuration. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param config_name: The name of the maintenance configuration. + :type config_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-07-01" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'configName': self._serialize.url("config_name", config_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['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, 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/maintenanceConfigurations/{configName}'} # type: ignore diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_managed_clusters_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_managed_clusters_operations.py new file mode 100644 index 000000000000..d8a9e18ee86e --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_managed_clusters_operations.py @@ -0,0 +1,1842 @@ +# 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 ManagedClustersOperations: + """ManagedClustersOperations 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.containerservice.v2021_07_01.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 + + async def get_os_options( + self, + location: str, + resource_type: Optional[str] = None, + **kwargs: Any + ) -> "_models.OSOptionProfile": + """Gets supported OS options in the specified subscription. + + Gets supported OS options in the specified subscription. + + :param location: The name of a supported Azure region. + :type location: str + :param resource_type: The resource type for which the OS options needs to be returned. + :type resource_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: OSOptionProfile, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.OSOptionProfile + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.OSOptionProfile"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.get_os_options.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + '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') + if resource_type is not None: + query_parameters['resource-type'] = self._serialize.query("resource_type", resource_type, '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('OSOptionProfile', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_os_options.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.ContainerService/locations/{location}/osOptions/default'} # type: ignore + + def list( + self, + **kwargs: Any + ) -> AsyncIterable["_models.ManagedClusterListResult"]: + """Gets a list of managed clusters in the specified subscription. + + Gets a list of managed clusters in the specified subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ManagedClusterListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedClusterListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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'), + } + 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('ManagedClusterListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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.ContainerService/managedClusters'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.ManagedClusterListResult"]: + """Lists managed clusters in the specified subscription and resource group. + + Lists managed clusters in the specified subscription and resource group. + + :param resource_group_name: The name of the resource group. + :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 ManagedClusterListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedClusterListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, '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('ManagedClusterListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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.ContainerService/managedClusters'} # type: ignore + + async def get_upgrade_profile( + self, + resource_group_name: str, + resource_name: str, + **kwargs: Any + ) -> "_models.ManagedClusterUpgradeProfile": + """Gets the upgrade profile of a managed cluster. + + Gets the upgrade profile of a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ManagedClusterUpgradeProfile, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterUpgradeProfile + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedClusterUpgradeProfile"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.get_upgrade_profile.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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('ManagedClusterUpgradeProfile', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_upgrade_profile.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/upgradeProfiles/default'} # type: ignore + + async def get_access_profile( + self, + resource_group_name: str, + resource_name: str, + role_name: str, + **kwargs: Any + ) -> "_models.ManagedClusterAccessProfile": + """Gets an access profile of a managed cluster. + + **WARNING**\ : This API will be deprecated. Instead use `ListClusterUserCredentials + `_ or + `ListClusterAdminCredentials + `_ . + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param role_name: The name of the role for managed cluster accessProfile resource. + :type role_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ManagedClusterAccessProfile, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterAccessProfile + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedClusterAccessProfile"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.get_access_profile.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'roleName': self._serialize.url("role_name", role_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['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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ManagedClusterAccessProfile', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_access_profile.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/accessProfiles/{roleName}/listCredential'} # type: ignore + + async def list_cluster_admin_credentials( + self, + resource_group_name: str, + resource_name: str, + server_fqdn: Optional[str] = None, + **kwargs: Any + ) -> "_models.CredentialResults": + """Lists the admin credentials of a managed cluster. + + Lists the admin credentials of a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param server_fqdn: server fqdn type for credentials to be returned. + :type server_fqdn: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CredentialResults, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.CredentialResults + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CredentialResults"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.list_cluster_admin_credentials.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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') + if server_fqdn is not None: + query_parameters['server-fqdn'] = self._serialize.query("server_fqdn", server_fqdn, '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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CredentialResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_cluster_admin_credentials.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/listClusterAdminCredential'} # type: ignore + + async def list_cluster_user_credentials( + self, + resource_group_name: str, + resource_name: str, + server_fqdn: Optional[str] = None, + **kwargs: Any + ) -> "_models.CredentialResults": + """Lists the user credentials of a managed cluster. + + Lists the user credentials of a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param server_fqdn: server fqdn type for credentials to be returned. + :type server_fqdn: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CredentialResults, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.CredentialResults + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CredentialResults"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.list_cluster_user_credentials.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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') + if server_fqdn is not None: + query_parameters['server-fqdn'] = self._serialize.query("server_fqdn", server_fqdn, '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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CredentialResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_cluster_user_credentials.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/listClusterUserCredential'} # type: ignore + + async def list_cluster_monitoring_user_credentials( + self, + resource_group_name: str, + resource_name: str, + server_fqdn: Optional[str] = None, + **kwargs: Any + ) -> "_models.CredentialResults": + """Lists the cluster monitoring user credentials of a managed cluster. + + Lists the cluster monitoring user credentials of a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param server_fqdn: server fqdn type for credentials to be returned. + :type server_fqdn: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CredentialResults, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.CredentialResults + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CredentialResults"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.list_cluster_monitoring_user_credentials.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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') + if server_fqdn is not None: + query_parameters['server-fqdn'] = self._serialize.query("server_fqdn", server_fqdn, '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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CredentialResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_cluster_monitoring_user_credentials.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/listClusterMonitoringUserCredential'} # type: ignore + + async def get( + self, + resource_group_name: str, + resource_name: str, + **kwargs: Any + ) -> "_models.ManagedCluster": + """Gets a managed cluster. + + Gets a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ManagedCluster, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedCluster + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedCluster"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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('ManagedCluster', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}'} # type: ignore + + async def _create_or_update_initial( + self, + resource_group_name: str, + resource_name: str, + parameters: "_models.ManagedCluster", + **kwargs: Any + ) -> "_models.ManagedCluster": + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedCluster"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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(parameters, 'ManagedCluster') + 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('ManagedCluster', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('ManagedCluster', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}'} # type: ignore + + async def begin_create_or_update( + self, + resource_group_name: str, + resource_name: str, + parameters: "_models.ManagedCluster", + **kwargs: Any + ) -> AsyncLROPoller["_models.ManagedCluster"]: + """Creates or updates a managed cluster. + + Creates or updates a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param parameters: The managed cluster to create or update. + :type parameters: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedCluster + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 ManagedCluster or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.containerservice.v2021_07_01.models.ManagedCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedCluster"] + 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_or_update_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + parameters=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('ManagedCluster', 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}'} # type: ignore + + async def _update_tags_initial( + self, + resource_group_name: str, + resource_name: str, + parameters: "_models.TagsObject", + **kwargs: Any + ) -> "_models.ManagedCluster": + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedCluster"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._update_tags_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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(parameters, 'TagsObject') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ManagedCluster', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _update_tags_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}'} # type: ignore + + async def begin_update_tags( + self, + resource_group_name: str, + resource_name: str, + parameters: "_models.TagsObject", + **kwargs: Any + ) -> AsyncLROPoller["_models.ManagedCluster"]: + """Updates tags on a managed cluster. + + Updates tags on a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param parameters: Parameters supplied to the Update Managed Cluster Tags operation. + :type parameters: ~azure.mgmt.containerservice.v2021_07_01.models.TagsObject + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 ManagedCluster or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.containerservice.v2021_07_01.models.ManagedCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedCluster"] + 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_tags_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + parameters=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('ManagedCluster', 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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_tags.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}'} # type: ignore + + async def _delete_initial( + self, + resource_group_name: str, + resource_name: str, + **kwargs: Any + ) -> 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-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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.ContainerService/managedClusters/{resourceName}'} # type: ignore + + async def begin_delete( + self, + resource_group_name: str, + resource_name: str, + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Deletes a managed cluster. + + Deletes a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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, + resource_name=resource_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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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.ContainerService/managedClusters/{resourceName}'} # type: ignore + + async def _reset_service_principal_profile_initial( + self, + resource_group_name: str, + resource_name: str, + parameters: "_models.ManagedClusterServicePrincipalProfile", + **kwargs: Any + ) -> 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-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._reset_service_principal_profile_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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(parameters, 'ManagedClusterServicePrincipalProfile') + 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) + + if cls: + return cls(pipeline_response, None, {}) + + _reset_service_principal_profile_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resetServicePrincipalProfile'} # type: ignore + + async def begin_reset_service_principal_profile( + self, + resource_group_name: str, + resource_name: str, + parameters: "_models.ManagedClusterServicePrincipalProfile", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Reset the Service Principal Profile of a managed cluster. + + This action cannot be performed on a cluster that is not using a service principal. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param parameters: The service principal profile to set on the managed cluster. + :type parameters: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterServicePrincipalProfile + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._reset_service_principal_profile_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + parameters=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): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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_reset_service_principal_profile.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resetServicePrincipalProfile'} # type: ignore + + async def _reset_aad_profile_initial( + self, + resource_group_name: str, + resource_name: str, + parameters: "_models.ManagedClusterAADProfile", + **kwargs: Any + ) -> 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-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._reset_aad_profile_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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(parameters, 'ManagedClusterAADProfile') + 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) + + if cls: + return cls(pipeline_response, None, {}) + + _reset_aad_profile_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resetAADProfile'} # type: ignore + + async def begin_reset_aad_profile( + self, + resource_group_name: str, + resource_name: str, + parameters: "_models.ManagedClusterAADProfile", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Reset the AAD Profile of a managed cluster. + + Reset the AAD Profile of a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param parameters: The AAD profile to set on the Managed Cluster. + :type parameters: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterAADProfile + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._reset_aad_profile_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + parameters=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): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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_reset_aad_profile.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resetAADProfile'} # type: ignore + + async def _rotate_cluster_certificates_initial( + self, + resource_group_name: str, + resource_name: str, + **kwargs: Any + ) -> 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-07-01" + accept = "application/json" + + # Construct URL + url = self._rotate_cluster_certificates_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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 [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, {}) + + _rotate_cluster_certificates_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/rotateClusterCertificates'} # type: ignore + + async def begin_rotate_cluster_certificates( + self, + resource_group_name: str, + resource_name: str, + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Rotates the certificates of a managed cluster. + + See `Certificate rotation `_ for + more details about rotating managed cluster certificates. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._rotate_cluster_certificates_initial( + resource_group_name=resource_group_name, + resource_name=resource_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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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_rotate_cluster_certificates.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/rotateClusterCertificates'} # type: ignore + + async def _stop_initial( + self, + resource_group_name: str, + resource_name: str, + **kwargs: Any + ) -> 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-07-01" + accept = "application/json" + + # Construct URL + url = self._stop_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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 [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, {}) + + _stop_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/stop'} # type: ignore + + async def begin_stop( + self, + resource_group_name: str, + resource_name: str, + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Stops a Managed Cluster. + + This can only be performed on Azure Virtual Machine Scale set backed clusters. Stopping a + cluster stops the control plane and agent nodes entirely, while maintaining all object and + cluster state. A cluster does not accrue charges while it is stopped. See `stopping a cluster + `_ for more details about stopping a + cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._stop_initial( + resource_group_name=resource_group_name, + resource_name=resource_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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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_stop.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/stop'} # type: ignore + + async def _start_initial( + self, + resource_group_name: str, + resource_name: str, + **kwargs: Any + ) -> 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-07-01" + accept = "application/json" + + # Construct URL + url = self._start_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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 [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, {}) + + _start_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/start'} # type: ignore + + async def begin_start( + self, + resource_group_name: str, + resource_name: str, + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Starts a previously stopped Managed Cluster. + + See `starting a cluster `_ for more + details about starting a cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._start_initial( + resource_group_name=resource_group_name, + resource_name=resource_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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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_start.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/start'} # type: ignore + + async def _run_command_initial( + self, + resource_group_name: str, + resource_name: str, + request_payload: "_models.RunCommandRequest", + **kwargs: Any + ) -> Optional["_models.RunCommandResult"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.RunCommandResult"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._run_command_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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(request_payload, 'RunCommandRequest') + 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('RunCommandResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _run_command_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/runCommand'} # type: ignore + + async def begin_run_command( + self, + resource_group_name: str, + resource_name: str, + request_payload: "_models.RunCommandRequest", + **kwargs: Any + ) -> AsyncLROPoller["_models.RunCommandResult"]: + """Submits a command to run against the Managed Cluster. + + AKS will create a pod to run the command. This is primarily useful for private clusters. For + more information see `AKS Run Command + `_. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param request_payload: The run command request. + :type request_payload: ~azure.mgmt.containerservice.v2021_07_01.models.RunCommandRequest + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 RunCommandResult or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.containerservice.v2021_07_01.models.RunCommandResult] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RunCommandResult"] + 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._run_command_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + request_payload=request_payload, + 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('RunCommandResult', 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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_run_command.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/runCommand'} # type: ignore + + async def get_command_result( + self, + resource_group_name: str, + resource_name: str, + command_id: str, + **kwargs: Any + ) -> Optional["_models.RunCommandResult"]: + """Gets the results of a command which has been run on the Managed Cluster. + + Gets the results of a command which has been run on the Managed Cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param command_id: Id of the command. + :type command_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RunCommandResult, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.RunCommandResult or None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.RunCommandResult"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.get_command_result.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'commandId': self._serialize.url("command_id", command_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, 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('RunCommandResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_command_result.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/commandResults/{commandId}'} # type: ignore + + def list_outbound_network_dependencies_endpoints( + self, + resource_group_name: str, + resource_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.OutboundEnvironmentEndpointCollection"]: + """Gets a list of egress endpoints (network endpoints of all outbound dependencies) in the specified managed cluster. + + Gets a list of egress endpoints (network endpoints of all outbound dependencies) in the + specified managed cluster. The operation returns properties of each egress endpoint. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either OutboundEnvironmentEndpointCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.containerservice.v2021_07_01.models.OutboundEnvironmentEndpointCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.OutboundEnvironmentEndpointCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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_outbound_network_dependencies_endpoints.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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('OutboundEnvironmentEndpointCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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_outbound_network_dependencies_endpoints.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/outboundNetworkDependenciesEndpoints'} # type: ignore diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_operations.py new file mode 100644 index 000000000000..91b99d99e7f2 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_operations.py @@ -0,0 +1,106 @@ +# 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 Operations: + """Operations 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.containerservice.v2021_07_01.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, + **kwargs: Any + ) -> AsyncIterable["_models.OperationListResult"]: + """Gets a list of operations. + + Gets a list of operations. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either OperationListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.containerservice.v2021_07_01.models.OperationListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.OperationListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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 + # 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('OperationListResult', 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': '/providers/Microsoft.ContainerService/operations'} # type: ignore diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_private_endpoint_connections_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_private_endpoint_connections_operations.py new file mode 100644 index 000000000000..3a44043241a3 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_private_endpoint_connections_operations.py @@ -0,0 +1,358 @@ +# 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, Callable, Dict, Generic, Optional, TypeVar, Union +import warnings + +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 PrivateEndpointConnectionsOperations: + """PrivateEndpointConnectionsOperations 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.containerservice.v2021_07_01.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 + + async def list( + self, + resource_group_name: str, + resource_name: str, + **kwargs: Any + ) -> "_models.PrivateEndpointConnectionListResult": + """Gets a list of private endpoint connections in the specified managed cluster. + + To learn more about private clusters, see: + https://docs.microsoft.com/azure/aks/private-clusters. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateEndpointConnectionListResult, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.PrivateEndpointConnectionListResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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('PrivateEndpointConnectionListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateEndpointConnections'} # type: ignore + + async def get( + self, + resource_group_name: str, + resource_name: str, + private_endpoint_connection_name: str, + **kwargs: Any + ) -> "_models.PrivateEndpointConnection": + """Gets the specified private endpoint connection. + + To learn more about private clusters, see: + https://docs.microsoft.com/azure/aks/private-clusters. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param private_endpoint_connection_name: The name of the private endpoint connection. + :type private_endpoint_connection_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateEndpointConnection, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.PrivateEndpointConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_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['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('PrivateEndpointConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def update( + self, + resource_group_name: str, + resource_name: str, + private_endpoint_connection_name: str, + parameters: "_models.PrivateEndpointConnection", + **kwargs: Any + ) -> "_models.PrivateEndpointConnection": + """Updates a private endpoint connection. + + Updates a private endpoint connection. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param private_endpoint_connection_name: The name of the private endpoint connection. + :type private_endpoint_connection_name: str + :param parameters: The updated private endpoint connection. + :type parameters: ~azure.mgmt.containerservice.v2021_07_01.models.PrivateEndpointConnection + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateEndpointConnection, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.PrivateEndpointConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_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(parameters, 'PrivateEndpointConnection') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateEndpointConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def _delete_initial( + self, + resource_group_name: str, + resource_name: str, + private_endpoint_connection_name: str, + **kwargs: Any + ) -> 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-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_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['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, 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.ContainerService/managedClusters/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def begin_delete( + self, + resource_group_name: str, + resource_name: str, + private_endpoint_connection_name: str, + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Deletes a private endpoint connection. + + Deletes a private endpoint connection. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param private_endpoint_connection_name: The name of the private endpoint connection. + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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, + resource_name=resource_name, + private_endpoint_connection_name=private_endpoint_connection_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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_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_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_private_link_resources_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_private_link_resources_operations.py new file mode 100644 index 000000000000..e42908b0f503 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_private_link_resources_operations.py @@ -0,0 +1,102 @@ +# 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, Callable, Dict, Generic, Optional, TypeVar +import warnings + +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 PrivateLinkResourcesOperations: + """PrivateLinkResourcesOperations 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.containerservice.v2021_07_01.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 + + async def list( + self, + resource_group_name: str, + resource_name: str, + **kwargs: Any + ) -> "_models.PrivateLinkResourcesListResult": + """Gets a list of private link resources in the specified managed cluster. + + To learn more about private clusters, see: + https://docs.microsoft.com/azure/aks/private-clusters. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateLinkResourcesListResult, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.PrivateLinkResourcesListResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourcesListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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('PrivateLinkResourcesListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateLinkResources'} # type: ignore diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_resolve_private_link_service_id_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_resolve_private_link_service_id_operations.py new file mode 100644 index 000000000000..a2569183ede1 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/aio/operations/_resolve_private_link_service_id_operations.py @@ -0,0 +1,109 @@ +# 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, Callable, Dict, Generic, Optional, TypeVar +import warnings + +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 ResolvePrivateLinkServiceIdOperations: + """ResolvePrivateLinkServiceIdOperations 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.containerservice.v2021_07_01.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 + + async def post( + self, + resource_group_name: str, + resource_name: str, + parameters: "_models.PrivateLinkResource", + **kwargs: Any + ) -> "_models.PrivateLinkResource": + """Gets the private link service ID for the specified managed cluster. + + Gets the private link service ID for the specified managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param parameters: Parameters required in order to resolve a private link service ID. + :type parameters: ~azure.mgmt.containerservice.v2021_07_01.models.PrivateLinkResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateLinkResource, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.PrivateLinkResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.post.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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(parameters, 'PrivateLinkResource') + 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) + + deserialized = self._deserialize('PrivateLinkResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + post.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resolvePrivateLinkServiceId'} # type: ignore diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/models/__init__.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/models/__init__.py new file mode 100644 index 000000000000..ee70a6503d8b --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/models/__init__.py @@ -0,0 +1,324 @@ +# 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. +# -------------------------------------------------------------------------- + +try: + from ._models_py3 import AgentPool + from ._models_py3 import AgentPoolAvailableVersions + from ._models_py3 import AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem + from ._models_py3 import AgentPoolListResult + from ._models_py3 import AgentPoolUpgradeProfile + from ._models_py3 import AgentPoolUpgradeProfilePropertiesUpgradesItem + from ._models_py3 import AgentPoolUpgradeSettings + from ._models_py3 import CloudErrorBody + from ._models_py3 import ContainerServiceDiagnosticsProfile + from ._models_py3 import ContainerServiceLinuxProfile + from ._models_py3 import ContainerServiceMasterProfile + from ._models_py3 import ContainerServiceNetworkProfile + from ._models_py3 import ContainerServiceSshConfiguration + from ._models_py3 import ContainerServiceSshPublicKey + from ._models_py3 import ContainerServiceVMDiagnostics + from ._models_py3 import CredentialResult + from ._models_py3 import CredentialResults + from ._models_py3 import EndpointDependency + from ._models_py3 import EndpointDetail + from ._models_py3 import ExtendedLocation + from ._models_py3 import KubeletConfig + from ._models_py3 import LinuxOSConfig + from ._models_py3 import MaintenanceConfiguration + from ._models_py3 import MaintenanceConfigurationListResult + from ._models_py3 import ManagedCluster + from ._models_py3 import ManagedClusterAADProfile + from ._models_py3 import ManagedClusterAPIServerAccessProfile + from ._models_py3 import ManagedClusterAccessProfile + from ._models_py3 import ManagedClusterAddonProfile + from ._models_py3 import ManagedClusterAddonProfileIdentity + from ._models_py3 import ManagedClusterAgentPoolProfile + from ._models_py3 import ManagedClusterAgentPoolProfileProperties + from ._models_py3 import ManagedClusterAutoUpgradeProfile + from ._models_py3 import ManagedClusterHTTPProxyConfig + from ._models_py3 import ManagedClusterIdentity + from ._models_py3 import ManagedClusterListResult + from ._models_py3 import ManagedClusterLoadBalancerProfile + from ._models_py3 import ManagedClusterLoadBalancerProfileManagedOutboundIPs + from ._models_py3 import ManagedClusterLoadBalancerProfileOutboundIPPrefixes + from ._models_py3 import ManagedClusterLoadBalancerProfileOutboundIPs + from ._models_py3 import ManagedClusterManagedOutboundIPProfile + from ._models_py3 import ManagedClusterNATGatewayProfile + from ._models_py3 import ManagedClusterPodIdentity + from ._models_py3 import ManagedClusterPodIdentityException + from ._models_py3 import ManagedClusterPodIdentityProfile + from ._models_py3 import ManagedClusterPodIdentityProvisioningError + from ._models_py3 import ManagedClusterPodIdentityProvisioningErrorBody + from ._models_py3 import ManagedClusterPodIdentityProvisioningInfo + from ._models_py3 import ManagedClusterPoolUpgradeProfile + from ._models_py3 import ManagedClusterPoolUpgradeProfileUpgradesItem + from ._models_py3 import ManagedClusterPropertiesAutoScalerProfile + from ._models_py3 import ManagedClusterSKU + from ._models_py3 import ManagedClusterSecurityProfile + from ._models_py3 import ManagedClusterSecurityProfileAzureDefender + from ._models_py3 import ManagedClusterServicePrincipalProfile + from ._models_py3 import ManagedClusterUpgradeProfile + from ._models_py3 import ManagedClusterWindowsProfile + from ._models_py3 import ManagedServiceIdentityUserAssignedIdentitiesValue + from ._models_py3 import OSOptionProfile + from ._models_py3 import OSOptionProperty + from ._models_py3 import OperationListResult + from ._models_py3 import OperationValue + from ._models_py3 import OutboundEnvironmentEndpoint + from ._models_py3 import OutboundEnvironmentEndpointCollection + from ._models_py3 import PowerState + from ._models_py3 import PrivateEndpoint + from ._models_py3 import PrivateEndpointConnection + from ._models_py3 import PrivateEndpointConnectionListResult + from ._models_py3 import PrivateLinkResource + from ._models_py3 import PrivateLinkResourcesListResult + from ._models_py3 import PrivateLinkServiceConnectionState + from ._models_py3 import Resource + from ._models_py3 import ResourceReference + from ._models_py3 import RunCommandRequest + from ._models_py3 import RunCommandResult + from ._models_py3 import SubResource + from ._models_py3 import SysctlConfig + from ._models_py3 import SystemData + from ._models_py3 import TagsObject + from ._models_py3 import TimeInWeek + from ._models_py3 import TimeSpan + from ._models_py3 import UserAssignedIdentity +except (SyntaxError, ImportError): + from ._models import AgentPool # type: ignore + from ._models import AgentPoolAvailableVersions # type: ignore + from ._models import AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem # type: ignore + from ._models import AgentPoolListResult # type: ignore + from ._models import AgentPoolUpgradeProfile # type: ignore + from ._models import AgentPoolUpgradeProfilePropertiesUpgradesItem # type: ignore + from ._models import AgentPoolUpgradeSettings # type: ignore + from ._models import CloudErrorBody # type: ignore + from ._models import ContainerServiceDiagnosticsProfile # type: ignore + from ._models import ContainerServiceLinuxProfile # type: ignore + from ._models import ContainerServiceMasterProfile # type: ignore + from ._models import ContainerServiceNetworkProfile # type: ignore + from ._models import ContainerServiceSshConfiguration # type: ignore + from ._models import ContainerServiceSshPublicKey # type: ignore + from ._models import ContainerServiceVMDiagnostics # type: ignore + from ._models import CredentialResult # type: ignore + from ._models import CredentialResults # type: ignore + from ._models import EndpointDependency # type: ignore + from ._models import EndpointDetail # type: ignore + from ._models import ExtendedLocation # type: ignore + from ._models import KubeletConfig # type: ignore + from ._models import LinuxOSConfig # type: ignore + from ._models import MaintenanceConfiguration # type: ignore + from ._models import MaintenanceConfigurationListResult # type: ignore + from ._models import ManagedCluster # type: ignore + from ._models import ManagedClusterAADProfile # type: ignore + from ._models import ManagedClusterAPIServerAccessProfile # type: ignore + from ._models import ManagedClusterAccessProfile # type: ignore + from ._models import ManagedClusterAddonProfile # type: ignore + from ._models import ManagedClusterAddonProfileIdentity # type: ignore + from ._models import ManagedClusterAgentPoolProfile # type: ignore + from ._models import ManagedClusterAgentPoolProfileProperties # type: ignore + from ._models import ManagedClusterAutoUpgradeProfile # type: ignore + from ._models import ManagedClusterHTTPProxyConfig # type: ignore + from ._models import ManagedClusterIdentity # type: ignore + from ._models import ManagedClusterListResult # type: ignore + from ._models import ManagedClusterLoadBalancerProfile # type: ignore + from ._models import ManagedClusterLoadBalancerProfileManagedOutboundIPs # type: ignore + from ._models import ManagedClusterLoadBalancerProfileOutboundIPPrefixes # type: ignore + from ._models import ManagedClusterLoadBalancerProfileOutboundIPs # type: ignore + from ._models import ManagedClusterManagedOutboundIPProfile # type: ignore + from ._models import ManagedClusterNATGatewayProfile # type: ignore + from ._models import ManagedClusterPodIdentity # type: ignore + from ._models import ManagedClusterPodIdentityException # type: ignore + from ._models import ManagedClusterPodIdentityProfile # type: ignore + from ._models import ManagedClusterPodIdentityProvisioningError # type: ignore + from ._models import ManagedClusterPodIdentityProvisioningErrorBody # type: ignore + from ._models import ManagedClusterPodIdentityProvisioningInfo # type: ignore + from ._models import ManagedClusterPoolUpgradeProfile # type: ignore + from ._models import ManagedClusterPoolUpgradeProfileUpgradesItem # type: ignore + from ._models import ManagedClusterPropertiesAutoScalerProfile # type: ignore + from ._models import ManagedClusterSKU # type: ignore + from ._models import ManagedClusterSecurityProfile # type: ignore + from ._models import ManagedClusterSecurityProfileAzureDefender # type: ignore + from ._models import ManagedClusterServicePrincipalProfile # type: ignore + from ._models import ManagedClusterUpgradeProfile # type: ignore + from ._models import ManagedClusterWindowsProfile # type: ignore + from ._models import ManagedServiceIdentityUserAssignedIdentitiesValue # type: ignore + from ._models import OSOptionProfile # type: ignore + from ._models import OSOptionProperty # type: ignore + from ._models import OperationListResult # type: ignore + from ._models import OperationValue # type: ignore + from ._models import OutboundEnvironmentEndpoint # type: ignore + from ._models import OutboundEnvironmentEndpointCollection # type: ignore + from ._models import PowerState # type: ignore + from ._models import PrivateEndpoint # type: ignore + from ._models import PrivateEndpointConnection # type: ignore + from ._models import PrivateEndpointConnectionListResult # type: ignore + from ._models import PrivateLinkResource # type: ignore + from ._models import PrivateLinkResourcesListResult # type: ignore + from ._models import PrivateLinkServiceConnectionState # type: ignore + from ._models import Resource # type: ignore + from ._models import ResourceReference # type: ignore + from ._models import RunCommandRequest # type: ignore + from ._models import RunCommandResult # type: ignore + from ._models import SubResource # type: ignore + from ._models import SysctlConfig # type: ignore + from ._models import SystemData # type: ignore + from ._models import TagsObject # type: ignore + from ._models import TimeInWeek # type: ignore + from ._models import TimeSpan # type: ignore + from ._models import UserAssignedIdentity # type: ignore + +from ._container_service_client_enums import ( + AgentPoolMode, + AgentPoolType, + Code, + ConnectionStatus, + ContainerServiceStorageProfileTypes, + ContainerServiceVMSizeTypes, + Count, + CreatedByType, + Expander, + ExtendedLocationTypes, + GPUInstanceProfile, + KubeletDiskType, + LicenseType, + LoadBalancerSku, + ManagedClusterPodIdentityProvisioningState, + ManagedClusterSKUName, + ManagedClusterSKUTier, + NetworkMode, + NetworkPlugin, + NetworkPolicy, + OSDiskType, + OSSKU, + OSType, + OutboundType, + PrivateEndpointConnectionProvisioningState, + ResourceIdentityType, + ScaleDownMode, + ScaleSetEvictionPolicy, + ScaleSetPriority, + UpgradeChannel, + WeekDay, +) + +__all__ = [ + 'AgentPool', + 'AgentPoolAvailableVersions', + 'AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem', + 'AgentPoolListResult', + 'AgentPoolUpgradeProfile', + 'AgentPoolUpgradeProfilePropertiesUpgradesItem', + 'AgentPoolUpgradeSettings', + 'CloudErrorBody', + 'ContainerServiceDiagnosticsProfile', + 'ContainerServiceLinuxProfile', + 'ContainerServiceMasterProfile', + 'ContainerServiceNetworkProfile', + 'ContainerServiceSshConfiguration', + 'ContainerServiceSshPublicKey', + 'ContainerServiceVMDiagnostics', + 'CredentialResult', + 'CredentialResults', + 'EndpointDependency', + 'EndpointDetail', + 'ExtendedLocation', + 'KubeletConfig', + 'LinuxOSConfig', + 'MaintenanceConfiguration', + 'MaintenanceConfigurationListResult', + 'ManagedCluster', + 'ManagedClusterAADProfile', + 'ManagedClusterAPIServerAccessProfile', + 'ManagedClusterAccessProfile', + 'ManagedClusterAddonProfile', + 'ManagedClusterAddonProfileIdentity', + 'ManagedClusterAgentPoolProfile', + 'ManagedClusterAgentPoolProfileProperties', + 'ManagedClusterAutoUpgradeProfile', + 'ManagedClusterHTTPProxyConfig', + 'ManagedClusterIdentity', + 'ManagedClusterListResult', + 'ManagedClusterLoadBalancerProfile', + 'ManagedClusterLoadBalancerProfileManagedOutboundIPs', + 'ManagedClusterLoadBalancerProfileOutboundIPPrefixes', + 'ManagedClusterLoadBalancerProfileOutboundIPs', + 'ManagedClusterManagedOutboundIPProfile', + 'ManagedClusterNATGatewayProfile', + 'ManagedClusterPodIdentity', + 'ManagedClusterPodIdentityException', + 'ManagedClusterPodIdentityProfile', + 'ManagedClusterPodIdentityProvisioningError', + 'ManagedClusterPodIdentityProvisioningErrorBody', + 'ManagedClusterPodIdentityProvisioningInfo', + 'ManagedClusterPoolUpgradeProfile', + 'ManagedClusterPoolUpgradeProfileUpgradesItem', + 'ManagedClusterPropertiesAutoScalerProfile', + 'ManagedClusterSKU', + 'ManagedClusterSecurityProfile', + 'ManagedClusterSecurityProfileAzureDefender', + 'ManagedClusterServicePrincipalProfile', + 'ManagedClusterUpgradeProfile', + 'ManagedClusterWindowsProfile', + 'ManagedServiceIdentityUserAssignedIdentitiesValue', + 'OSOptionProfile', + 'OSOptionProperty', + 'OperationListResult', + 'OperationValue', + 'OutboundEnvironmentEndpoint', + 'OutboundEnvironmentEndpointCollection', + 'PowerState', + 'PrivateEndpoint', + 'PrivateEndpointConnection', + 'PrivateEndpointConnectionListResult', + 'PrivateLinkResource', + 'PrivateLinkResourcesListResult', + 'PrivateLinkServiceConnectionState', + 'Resource', + 'ResourceReference', + 'RunCommandRequest', + 'RunCommandResult', + 'SubResource', + 'SysctlConfig', + 'SystemData', + 'TagsObject', + 'TimeInWeek', + 'TimeSpan', + 'UserAssignedIdentity', + 'AgentPoolMode', + 'AgentPoolType', + 'Code', + 'ConnectionStatus', + 'ContainerServiceStorageProfileTypes', + 'ContainerServiceVMSizeTypes', + 'Count', + 'CreatedByType', + 'Expander', + 'ExtendedLocationTypes', + 'GPUInstanceProfile', + 'KubeletDiskType', + 'LicenseType', + 'LoadBalancerSku', + 'ManagedClusterPodIdentityProvisioningState', + 'ManagedClusterSKUName', + 'ManagedClusterSKUTier', + 'NetworkMode', + 'NetworkPlugin', + 'NetworkPolicy', + 'OSDiskType', + 'OSSKU', + 'OSType', + 'OutboundType', + 'PrivateEndpointConnectionProvisioningState', + 'ResourceIdentityType', + 'ScaleDownMode', + 'ScaleSetEvictionPolicy', + 'ScaleSetPriority', + 'UpgradeChannel', + 'WeekDay', +] diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/models/_container_service_client_enums.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/models/_container_service_client_enums.py new file mode 100644 index 000000000000..0aa1a761f144 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/models/_container_service_client_enums.py @@ -0,0 +1,560 @@ +# 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 enum import Enum, EnumMeta +from six import with_metaclass + +class _CaseInsensitiveEnumMeta(EnumMeta): + def __getitem__(self, name): + return super().__getitem__(name.upper()) + + def __getattr__(cls, name): + """Return the enum member matching `name` + We use __getattr__ instead of descriptors or inserting into the enum + class' __dict__ in order to support `name` and `value` being both + properties for enum members (which live in the class' __dict__) and + enum members themselves. + """ + try: + return cls._member_map_[name.upper()] + except KeyError: + raise AttributeError(name) + + +class AgentPoolMode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """A cluster must have at least one 'System' Agent Pool at all times. For additional information + on agent pool restrictions and best practices, see: + https://docs.microsoft.com/azure/aks/use-system-pools + """ + + #: System agent pools are primarily for hosting critical system pods such as CoreDNS and + #: metrics-server. System agent pools osType must be Linux. System agent pools VM SKU must have at + #: least 2vCPUs and 4GB of memory. + SYSTEM = "System" + #: User agent pools are primarily for hosting your application pods. + USER = "User" + +class AgentPoolType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The type of Agent Pool. + """ + + #: Create an Agent Pool backed by a Virtual Machine Scale Set. + VIRTUAL_MACHINE_SCALE_SETS = "VirtualMachineScaleSets" + #: Use of this is strongly discouraged. + AVAILABILITY_SET = "AvailabilitySet" + +class Code(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Tells whether the cluster is Running or Stopped + """ + + #: The cluster is running. + RUNNING = "Running" + #: The cluster is stopped. + STOPPED = "Stopped" + +class ConnectionStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The private link service connection status. + """ + + PENDING = "Pending" + APPROVED = "Approved" + REJECTED = "Rejected" + DISCONNECTED = "Disconnected" + +class ContainerServiceStorageProfileTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Specifies what kind of storage to use. If omitted, the default will be chosen on your behalf + based on the choice of orchestrator. + """ + + STORAGE_ACCOUNT = "StorageAccount" + MANAGED_DISKS = "ManagedDisks" + +class ContainerServiceVMSizeTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Size of agent VMs. Note: This is no longer maintained. + """ + + STANDARD_A1 = "Standard_A1" + STANDARD_A10 = "Standard_A10" + STANDARD_A11 = "Standard_A11" + STANDARD_A1_V2 = "Standard_A1_v2" + STANDARD_A2 = "Standard_A2" + STANDARD_A2_V2 = "Standard_A2_v2" + STANDARD_A2_M_V2 = "Standard_A2m_v2" + STANDARD_A3 = "Standard_A3" + STANDARD_A4 = "Standard_A4" + STANDARD_A4_V2 = "Standard_A4_v2" + STANDARD_A4_M_V2 = "Standard_A4m_v2" + STANDARD_A5 = "Standard_A5" + STANDARD_A6 = "Standard_A6" + STANDARD_A7 = "Standard_A7" + STANDARD_A8 = "Standard_A8" + STANDARD_A8_V2 = "Standard_A8_v2" + STANDARD_A8_M_V2 = "Standard_A8m_v2" + STANDARD_A9 = "Standard_A9" + STANDARD_B2_MS = "Standard_B2ms" + STANDARD_B2_S = "Standard_B2s" + STANDARD_B4_MS = "Standard_B4ms" + STANDARD_B8_MS = "Standard_B8ms" + STANDARD_D1 = "Standard_D1" + STANDARD_D11 = "Standard_D11" + STANDARD_D11_V2 = "Standard_D11_v2" + STANDARD_D11_V2_PROMO = "Standard_D11_v2_Promo" + STANDARD_D12 = "Standard_D12" + STANDARD_D12_V2 = "Standard_D12_v2" + STANDARD_D12_V2_PROMO = "Standard_D12_v2_Promo" + STANDARD_D13 = "Standard_D13" + STANDARD_D13_V2 = "Standard_D13_v2" + STANDARD_D13_V2_PROMO = "Standard_D13_v2_Promo" + STANDARD_D14 = "Standard_D14" + STANDARD_D14_V2 = "Standard_D14_v2" + STANDARD_D14_V2_PROMO = "Standard_D14_v2_Promo" + STANDARD_D15_V2 = "Standard_D15_v2" + STANDARD_D16_V3 = "Standard_D16_v3" + STANDARD_D16_S_V3 = "Standard_D16s_v3" + STANDARD_D1_V2 = "Standard_D1_v2" + STANDARD_D2 = "Standard_D2" + STANDARD_D2_V2 = "Standard_D2_v2" + STANDARD_D2_V2_PROMO = "Standard_D2_v2_Promo" + STANDARD_D2_V3 = "Standard_D2_v3" + STANDARD_D2_S_V3 = "Standard_D2s_v3" + STANDARD_D3 = "Standard_D3" + STANDARD_D32_V3 = "Standard_D32_v3" + STANDARD_D32_S_V3 = "Standard_D32s_v3" + STANDARD_D3_V2 = "Standard_D3_v2" + STANDARD_D3_V2_PROMO = "Standard_D3_v2_Promo" + STANDARD_D4 = "Standard_D4" + STANDARD_D4_V2 = "Standard_D4_v2" + STANDARD_D4_V2_PROMO = "Standard_D4_v2_Promo" + STANDARD_D4_V3 = "Standard_D4_v3" + STANDARD_D4_S_V3 = "Standard_D4s_v3" + STANDARD_D5_V2 = "Standard_D5_v2" + STANDARD_D5_V2_PROMO = "Standard_D5_v2_Promo" + STANDARD_D64_V3 = "Standard_D64_v3" + STANDARD_D64_S_V3 = "Standard_D64s_v3" + STANDARD_D8_V3 = "Standard_D8_v3" + STANDARD_D8_S_V3 = "Standard_D8s_v3" + STANDARD_DS1 = "Standard_DS1" + STANDARD_DS11 = "Standard_DS11" + STANDARD_DS11_V2 = "Standard_DS11_v2" + STANDARD_DS11_V2_PROMO = "Standard_DS11_v2_Promo" + STANDARD_DS12 = "Standard_DS12" + STANDARD_DS12_V2 = "Standard_DS12_v2" + STANDARD_DS12_V2_PROMO = "Standard_DS12_v2_Promo" + STANDARD_DS13 = "Standard_DS13" + STANDARD_DS13_2_V2 = "Standard_DS13-2_v2" + STANDARD_DS13_4_V2 = "Standard_DS13-4_v2" + STANDARD_DS13_V2 = "Standard_DS13_v2" + STANDARD_DS13_V2_PROMO = "Standard_DS13_v2_Promo" + STANDARD_DS14 = "Standard_DS14" + STANDARD_DS14_4_V2 = "Standard_DS14-4_v2" + STANDARD_DS14_8_V2 = "Standard_DS14-8_v2" + STANDARD_DS14_V2 = "Standard_DS14_v2" + STANDARD_DS14_V2_PROMO = "Standard_DS14_v2_Promo" + STANDARD_DS15_V2 = "Standard_DS15_v2" + STANDARD_DS1_V2 = "Standard_DS1_v2" + STANDARD_DS2 = "Standard_DS2" + STANDARD_DS2_V2 = "Standard_DS2_v2" + STANDARD_DS2_V2_PROMO = "Standard_DS2_v2_Promo" + STANDARD_DS3 = "Standard_DS3" + STANDARD_DS3_V2 = "Standard_DS3_v2" + STANDARD_DS3_V2_PROMO = "Standard_DS3_v2_Promo" + STANDARD_DS4 = "Standard_DS4" + STANDARD_DS4_V2 = "Standard_DS4_v2" + STANDARD_DS4_V2_PROMO = "Standard_DS4_v2_Promo" + STANDARD_DS5_V2 = "Standard_DS5_v2" + STANDARD_DS5_V2_PROMO = "Standard_DS5_v2_Promo" + STANDARD_E16_V3 = "Standard_E16_v3" + STANDARD_E16_S_V3 = "Standard_E16s_v3" + STANDARD_E2_V3 = "Standard_E2_v3" + STANDARD_E2_S_V3 = "Standard_E2s_v3" + STANDARD_E32_16_S_V3 = "Standard_E32-16s_v3" + STANDARD_E32_8_S_V3 = "Standard_E32-8s_v3" + STANDARD_E32_V3 = "Standard_E32_v3" + STANDARD_E32_S_V3 = "Standard_E32s_v3" + STANDARD_E4_V3 = "Standard_E4_v3" + STANDARD_E4_S_V3 = "Standard_E4s_v3" + STANDARD_E64_16_S_V3 = "Standard_E64-16s_v3" + STANDARD_E64_32_S_V3 = "Standard_E64-32s_v3" + STANDARD_E64_V3 = "Standard_E64_v3" + STANDARD_E64_S_V3 = "Standard_E64s_v3" + STANDARD_E8_V3 = "Standard_E8_v3" + STANDARD_E8_S_V3 = "Standard_E8s_v3" + STANDARD_F1 = "Standard_F1" + STANDARD_F16 = "Standard_F16" + STANDARD_F16_S = "Standard_F16s" + STANDARD_F16_S_V2 = "Standard_F16s_v2" + STANDARD_F1_S = "Standard_F1s" + STANDARD_F2 = "Standard_F2" + STANDARD_F2_S = "Standard_F2s" + STANDARD_F2_S_V2 = "Standard_F2s_v2" + STANDARD_F32_S_V2 = "Standard_F32s_v2" + STANDARD_F4 = "Standard_F4" + STANDARD_F4_S = "Standard_F4s" + STANDARD_F4_S_V2 = "Standard_F4s_v2" + STANDARD_F64_S_V2 = "Standard_F64s_v2" + STANDARD_F72_S_V2 = "Standard_F72s_v2" + STANDARD_F8 = "Standard_F8" + STANDARD_F8_S = "Standard_F8s" + STANDARD_F8_S_V2 = "Standard_F8s_v2" + STANDARD_G1 = "Standard_G1" + STANDARD_G2 = "Standard_G2" + STANDARD_G3 = "Standard_G3" + STANDARD_G4 = "Standard_G4" + STANDARD_G5 = "Standard_G5" + STANDARD_GS1 = "Standard_GS1" + STANDARD_GS2 = "Standard_GS2" + STANDARD_GS3 = "Standard_GS3" + STANDARD_GS4 = "Standard_GS4" + STANDARD_GS4_4 = "Standard_GS4-4" + STANDARD_GS4_8 = "Standard_GS4-8" + STANDARD_GS5 = "Standard_GS5" + STANDARD_GS5_16 = "Standard_GS5-16" + STANDARD_GS5_8 = "Standard_GS5-8" + STANDARD_H16 = "Standard_H16" + STANDARD_H16_M = "Standard_H16m" + STANDARD_H16_MR = "Standard_H16mr" + STANDARD_H16_R = "Standard_H16r" + STANDARD_H8 = "Standard_H8" + STANDARD_H8_M = "Standard_H8m" + STANDARD_L16_S = "Standard_L16s" + STANDARD_L32_S = "Standard_L32s" + STANDARD_L4_S = "Standard_L4s" + STANDARD_L8_S = "Standard_L8s" + STANDARD_M128_32_MS = "Standard_M128-32ms" + STANDARD_M128_64_MS = "Standard_M128-64ms" + STANDARD_M128_MS = "Standard_M128ms" + STANDARD_M128_S = "Standard_M128s" + STANDARD_M64_16_MS = "Standard_M64-16ms" + STANDARD_M64_32_MS = "Standard_M64-32ms" + STANDARD_M64_MS = "Standard_M64ms" + STANDARD_M64_S = "Standard_M64s" + STANDARD_NC12 = "Standard_NC12" + STANDARD_NC12_S_V2 = "Standard_NC12s_v2" + STANDARD_NC12_S_V3 = "Standard_NC12s_v3" + STANDARD_NC24 = "Standard_NC24" + STANDARD_NC24_R = "Standard_NC24r" + STANDARD_NC24_RS_V2 = "Standard_NC24rs_v2" + STANDARD_NC24_RS_V3 = "Standard_NC24rs_v3" + STANDARD_NC24_S_V2 = "Standard_NC24s_v2" + STANDARD_NC24_S_V3 = "Standard_NC24s_v3" + STANDARD_NC6 = "Standard_NC6" + STANDARD_NC6_S_V2 = "Standard_NC6s_v2" + STANDARD_NC6_S_V3 = "Standard_NC6s_v3" + STANDARD_ND12_S = "Standard_ND12s" + STANDARD_ND24_RS = "Standard_ND24rs" + STANDARD_ND24_S = "Standard_ND24s" + STANDARD_ND6_S = "Standard_ND6s" + STANDARD_NV12 = "Standard_NV12" + STANDARD_NV24 = "Standard_NV24" + STANDARD_NV6 = "Standard_NV6" + +class Count(with_metaclass(_CaseInsensitiveEnumMeta, int, Enum)): + """Number of masters (VMs) in the container service cluster. Allowed values are 1, 3, and 5. The + default value is 1. + """ + + ONE = 1 + THREE = 3 + FIVE = 5 + +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 Expander(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """If not specified, the default is 'random'. See `expanders + `_ + for more information. + """ + + #: Selects the node group that will have the least idle CPU (if tied, unused memory) after + #: scale-up. This is useful when you have different classes of nodes, for example, high CPU or + #: high memory nodes, and only want to expand those when there are pending pods that need a lot of + #: those resources. + LEAST_WASTE = "least-waste" + #: Selects the node group that would be able to schedule the most pods when scaling up. This is + #: useful when you are using nodeSelector to make sure certain pods land on certain nodes. Note + #: that this won't cause the autoscaler to select bigger nodes vs. smaller, as it can add multiple + #: smaller nodes at once. + MOST_PODS = "most-pods" + #: Selects the node group that has the highest priority assigned by the user. It's configuration + #: is described in more details `here + #: `_. + PRIORITY = "priority" + #: Used when you don't have a particular need for the node groups to scale differently. + RANDOM = "random" + +class ExtendedLocationTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The type of extendedLocation. + """ + + EDGE_ZONE = "EdgeZone" + +class GPUInstanceProfile(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU. + """ + + MIG1_G = "MIG1g" + MIG2_G = "MIG2g" + MIG3_G = "MIG3g" + MIG4_G = "MIG4g" + MIG7_G = "MIG7g" + +class KubeletDiskType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Determines the placement of emptyDir volumes, container runtime data root, and Kubelet + ephemeral storage. + """ + + #: Kubelet will use the OS disk for its data. + OS = "OS" + #: Kubelet will use the temporary disk for its data. + TEMPORARY = "Temporary" + +class LicenseType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The license type to use for Windows VMs. See `Azure Hybrid User Benefits + `_ for more details. + """ + + #: No additional licensing is applied. + NONE = "None" + #: Enables Azure Hybrid User Benefits for Windows VMs. + WINDOWS_SERVER = "Windows_Server" + +class LoadBalancerSku(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The default is 'standard'. See `Azure Load Balancer SKUs + `_ for more information about the + differences between load balancer SKUs. + """ + + #: Use a a standard Load Balancer. This is the recommended Load Balancer SKU. For more information + #: about on working with the load balancer in the managed cluster, see the `standard Load Balancer + #: `_ article. + STANDARD = "standard" + #: Use a basic Load Balancer with limited functionality. + BASIC = "basic" + +class ManagedClusterPodIdentityProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The current provisioning state of the pod identity. + """ + + ASSIGNED = "Assigned" + UPDATING = "Updating" + DELETING = "Deleting" + FAILED = "Failed" + +class ManagedClusterSKUName(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The name of a managed cluster SKU. + """ + + BASIC = "Basic" + +class ManagedClusterSKUTier(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """If not specified, the default is 'Free'. See `uptime SLA + `_ for more details. + """ + + #: Guarantees 99.95% availability of the Kubernetes API server endpoint for clusters that use + #: Availability Zones and 99.9% of availability for clusters that don't use Availability Zones. + PAID = "Paid" + #: No guaranteed SLA, no additional charges. Free tier clusters have an SLO of 99.5%. + FREE = "Free" + +class NetworkMode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """This cannot be specified if networkPlugin is anything other than 'azure'. + """ + + #: No bridge is created. Intra-VM Pod to Pod communication is through IP routes created by Azure + #: CNI. See `Transparent Mode `_ for + #: more information. + TRANSPARENT = "transparent" + #: This is no longer supported. + BRIDGE = "bridge" + +class NetworkPlugin(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Network plugin used for building the Kubernetes network. + """ + + #: Use the Azure CNI network plugin. See `Azure CNI (advanced) networking + #: `_ for + #: more information. + AZURE = "azure" + #: Use the Kubenet network plugin. See `Kubenet (basic) networking + #: `_ for more + #: information. + KUBENET = "kubenet" + +class NetworkPolicy(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Network policy used for building the Kubernetes network. + """ + + #: Use Calico network policies. See `differences between Azure and Calico policies + #: `_ + #: for more information. + CALICO = "calico" + #: Use Azure network policies. See `differences between Azure and Calico policies + #: `_ + #: for more information. + AZURE = "azure" + +class OSDiskType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested + OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed after creation. For more + information see `Ephemeral OS + `_. + """ + + #: Azure replicates the operating system disk for a virtual machine to Azure storage to avoid data + #: loss should the VM need to be relocated to another host. Since containers aren't designed to + #: have local state persisted, this behavior offers limited value while providing some drawbacks, + #: including slower node provisioning and higher read/write latency. + MANAGED = "Managed" + #: Ephemeral OS disks are stored only on the host machine, just like a temporary disk. This + #: provides lower read/write latency, along with faster node scaling and cluster upgrades. + EPHEMERAL = "Ephemeral" + +class OSSKU(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Specifies an OS SKU. This value must not be specified if OSType is Windows. + """ + + UBUNTU = "Ubuntu" + CBL_MARINER = "CBLMariner" + +class OSType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The operating system type. The default is Linux. + """ + + #: Use Linux. + LINUX = "Linux" + #: Use Windows. + WINDOWS = "Windows" + +class OutboundType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """This can only be set at cluster creation time and cannot be changed later. For more information + see `egress outbound type `_. + """ + + #: The load balancer is used for egress through an AKS assigned public IP. This supports + #: Kubernetes services of type 'loadBalancer'. For more information see `outbound type + #: loadbalancer + #: `_. + LOAD_BALANCER = "loadBalancer" + #: Egress paths must be defined by the user. This is an advanced scenario and requires proper + #: network configuration. For more information see `outbound type userDefinedRouting + #: `_. + USER_DEFINED_ROUTING = "userDefinedRouting" + #: The AKS-managed NAT gateway is used for egress. + MANAGED_NAT_GATEWAY = "managedNATGateway" + #: The user-assigned NAT gateway associated to the cluster subnet is used for egress. This is an + #: advanced scenario and requires proper network configuration. + USER_ASSIGNED_NAT_GATEWAY = "userAssignedNATGateway" + +class PrivateEndpointConnectionProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The current provisioning state. + """ + + SUCCEEDED = "Succeeded" + CREATING = "Creating" + DELETING = "Deleting" + FAILED = "Failed" + +class ResourceIdentityType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """For more information see `use managed identities in AKS + `_. + """ + + #: Use an implicitly created system assigned managed identity to manage cluster resources. Master + #: components in the control plane such as kube-controller-manager will use the system assigned + #: managed identity to manipulate Azure resources. + SYSTEM_ASSIGNED = "SystemAssigned" + #: Use a user-specified identity to manage cluster resources. Master components in the control + #: plane such as kube-controller-manager will use the specified user assigned managed identity to + #: manipulate Azure resources. + USER_ASSIGNED = "UserAssigned" + #: Do not use a managed identity for the Managed Cluster, service principal will be used instead. + NONE = "None" + +class ScaleDownMode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Describes how VMs are added to or removed from Agent Pools. See `billing states + `_. + """ + + #: Create new instances during scale up and remove instances during scale down. + DELETE = "Delete" + #: Attempt to start deallocated instances (if they exist) during scale up and deallocate instances + #: during scale down. + DEALLOCATE = "Deallocate" + +class ScaleSetEvictionPolicy(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The eviction policy specifies what to do with the VM when it is evicted. The default is Delete. + For more information about eviction see `spot VMs + `_ + """ + + #: Nodes in the underlying Scale Set of the node pool are deleted when they're evicted. + DELETE = "Delete" + #: Nodes in the underlying Scale Set of the node pool are set to the stopped-deallocated state + #: upon eviction. Nodes in the stopped-deallocated state count against your compute quota and can + #: cause issues with cluster scaling or upgrading. + DEALLOCATE = "Deallocate" + +class ScaleSetPriority(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The Virtual Machine Scale Set priority. + """ + + #: Spot priority VMs will be used. There is no SLA for spot nodes. See `spot on AKS + #: `_ for more information. + SPOT = "Spot" + #: Regular VMs will be used. + REGULAR = "Regular" + +class UpgradeChannel(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """For more information see `setting the AKS cluster auto-upgrade channel + `_. + """ + + #: Automatically upgrade the cluster to the latest supported patch release on the latest supported + #: minor version. In cases where the cluster is at a version of Kubernetes that is at an N-2 minor + #: version where N is the latest supported minor version, the cluster first upgrades to the latest + #: supported patch version on N-1 minor version. For example, if a cluster is running version + #: 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster first is + #: upgraded to 1.18.6, then is upgraded to 1.19.1. + RAPID = "rapid" + #: Automatically upgrade the cluster to the latest supported patch release on minor version N-1, + #: where N is the latest supported minor version. For example, if a cluster is running version + #: 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster is upgraded + #: to 1.18.6. + STABLE = "stable" + #: Automatically upgrade the cluster to the latest supported patch version when it becomes + #: available while keeping the minor version the same. For example, if a cluster is running + #: version 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster is + #: upgraded to 1.17.9. + PATCH = "patch" + #: Automatically upgrade the node image to the latest version available. Microsoft provides + #: patches and new images for image nodes frequently (usually weekly), but your running nodes + #: won't get the new images unless you do a node image upgrade. Turning on the node-image channel + #: will automatically update your node images whenever a new version is available. + NODE_IMAGE = "node-image" + #: Disables auto-upgrades and keeps the cluster at its current version of Kubernetes. + NONE = "none" + +class WeekDay(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The weekday enum. + """ + + SUNDAY = "Sunday" + MONDAY = "Monday" + TUESDAY = "Tuesday" + WEDNESDAY = "Wednesday" + THURSDAY = "Thursday" + FRIDAY = "Friday" + SATURDAY = "Saturday" diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/models/_models.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/models/_models.py new file mode 100644 index 000000000000..3bab92669398 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/models/_models.py @@ -0,0 +1,3678 @@ +# 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. +# -------------------------------------------------------------------------- + +import msrest.serialization + + +class SubResource(msrest.serialization.Model): + """Reference to another subresource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: The name of the resource that is unique within a resource group. This name can be + used to access the resource. + :vartype name: str + :ivar type: Resource type. + :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(SubResource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + + +class AgentPool(SubResource): + """Agent Pool. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: The name of the resource that is unique within a resource group. This name can be + used to access the resource. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param count: Number of agents (VMs) to host docker containers. Allowed values must be in the + range of 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for + system pools. The default value is 1. + :type count: int + :param vm_size: VM size availability varies by region. If a node contains insufficient compute + resources (memory, cpu, etc) pods might fail to run correctly. For more details on restricted + VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions. + :type vm_size: str + :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every + machine in the master/agent pool. If you specify 0, it will apply the default osDisk size + according to the vmSize specified. + :type os_disk_size_gb: int + :param os_disk_type: The default is 'Ephemeral' if the VM supports it and has a cache disk + larger than the requested OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed + after creation. For more information see `Ephemeral OS + `_. Possible values + include: "Managed", "Ephemeral". + :type os_disk_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSDiskType + :param kubelet_disk_type: Determines the placement of emptyDir volumes, container runtime data + root, and Kubelet ephemeral storage. Possible values include: "OS", "Temporary". + :type kubelet_disk_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.KubeletDiskType + :param vnet_subnet_id: If this is not specified, a VNET and subnet will be generated and used. + If no podSubnetID is specified, this applies to nodes and pods, otherwise it applies to just + nodes. This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. + :type vnet_subnet_id: str + :param pod_subnet_id: If omitted, pod IPs are statically assigned on the node subnet (see + vnetSubnetID for more details). This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. + :type pod_subnet_id: str + :param max_pods: The maximum number of pods that can run on a node. + :type max_pods: int + :param os_type: The operating system type. The default is Linux. Possible values include: + "Linux", "Windows". Default value: "Linux". + :type os_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSType + :param os_sku: Specifies an OS SKU. This value must not be specified if OSType is Windows. + Possible values include: "Ubuntu", "CBLMariner". + :type os_sku: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSSKU + :param max_count: The maximum number of nodes for auto-scaling. + :type max_count: int + :param min_count: The minimum number of nodes for auto-scaling. + :type min_count: int + :param enable_auto_scaling: Whether to enable auto-scaler. + :type enable_auto_scaling: bool + :param scale_down_mode: This also effects the cluster autoscaler behavior. If not specified, it + defaults to Delete. Possible values include: "Delete", "Deallocate". + :type scale_down_mode: str or ~azure.mgmt.containerservice.v2021_07_01.models.ScaleDownMode + :param type_properties_type: The type of Agent Pool. Possible values include: + "VirtualMachineScaleSets", "AvailabilitySet". + :type type_properties_type: str or + ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolType + :param mode: A cluster must have at least one 'System' Agent Pool at all times. For additional + information on agent pool restrictions and best practices, see: + https://docs.microsoft.com/azure/aks/use-system-pools. Possible values include: "System", + "User". + :type mode: str or ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolMode + :param orchestrator_version: As a best practice, you should upgrade all node pools in an AKS + cluster to the same Kubernetes version. The node pool version must have the same major version + as the control plane. The node pool minor version must be within two minor versions of the + control plane version. The node pool version cannot be greater than the control plane version. + For more information see `upgrading a node pool + `_. + :type orchestrator_version: str + :ivar node_image_version: The version of node image. + :vartype node_image_version: str + :param upgrade_settings: Settings for upgrading the agentpool. + :type upgrade_settings: + ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolUpgradeSettings + :ivar provisioning_state: The current deployment or provisioning state. + :vartype provisioning_state: str + :ivar power_state: Describes whether the Agent Pool is Running or Stopped. + :vartype power_state: ~azure.mgmt.containerservice.v2021_07_01.models.PowerState + :param availability_zones: The list of Availability zones to use for nodes. This can only be + specified if the AgentPoolType property is 'VirtualMachineScaleSets'. + :type availability_zones: list[str] + :param enable_node_public_ip: Some scenarios may require nodes in a node pool to receive their + own dedicated public IP addresses. A common scenario is for gaming workloads, where a console + needs to make a direct connection to a cloud virtual machine to minimize hops. For more + information see `assigning a public IP per node + `_. + The default is false. + :type enable_node_public_ip: bool + :param node_public_ip_prefix_id: This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}. + :type node_public_ip_prefix_id: str + :param scale_set_priority: The Virtual Machine Scale Set priority. If not specified, the + default is 'Regular'. Possible values include: "Spot", "Regular". Default value: "Regular". + :type scale_set_priority: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ScaleSetPriority + :param scale_set_eviction_policy: This cannot be specified unless the scaleSetPriority is + 'Spot'. If not specified, the default is 'Delete'. Possible values include: "Delete", + "Deallocate". Default value: "Delete". + :type scale_set_eviction_policy: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ScaleSetEvictionPolicy + :param spot_max_price: Possible values are any decimal value greater than zero or -1 which + indicates the willingness to pay any on-demand price. For more details on spot pricing, see + `spot VMs pricing `_. + :type spot_max_price: float + :param tags: A set of tags. The tags to be persisted on the agent pool virtual machine scale + set. + :type tags: dict[str, str] + :param node_labels: The node labels to be persisted across all nodes in agent pool. + :type node_labels: dict[str, str] + :param node_taints: The taints added to new nodes during node pool create and scale. For + example, key=value:NoSchedule. + :type node_taints: list[str] + :param proximity_placement_group_id: The ID for Proximity Placement Group. + :type proximity_placement_group_id: str + :param kubelet_config: The Kubelet configuration on the agent pool nodes. + :type kubelet_config: ~azure.mgmt.containerservice.v2021_07_01.models.KubeletConfig + :param linux_os_config: The OS configuration of Linux agent nodes. + :type linux_os_config: ~azure.mgmt.containerservice.v2021_07_01.models.LinuxOSConfig + :param enable_encryption_at_host: This is only supported on certain VM sizes and in certain + Azure regions. For more information, see: + https://docs.microsoft.com/azure/aks/enable-host-encryption. + :type enable_encryption_at_host: bool + :param enable_ultra_ssd: Whether to enable UltraSSD. + :type enable_ultra_ssd: bool + :param enable_fips: See `Add a FIPS-enabled node pool + `_ + for more details. + :type enable_fips: bool + :param gpu_instance_profile: GPUInstanceProfile to be used to specify GPU MIG instance profile + for supported GPU VM SKU. Possible values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". + :type gpu_instance_profile: str or + ~azure.mgmt.containerservice.v2021_07_01.models.GPUInstanceProfile + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'os_disk_size_gb': {'maximum': 2048, 'minimum': 0}, + 'node_image_version': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'power_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'count': {'key': 'properties.count', 'type': 'int'}, + 'vm_size': {'key': 'properties.vmSize', 'type': 'str'}, + 'os_disk_size_gb': {'key': 'properties.osDiskSizeGB', 'type': 'int'}, + 'os_disk_type': {'key': 'properties.osDiskType', 'type': 'str'}, + 'kubelet_disk_type': {'key': 'properties.kubeletDiskType', 'type': 'str'}, + 'vnet_subnet_id': {'key': 'properties.vnetSubnetID', 'type': 'str'}, + 'pod_subnet_id': {'key': 'properties.podSubnetID', 'type': 'str'}, + 'max_pods': {'key': 'properties.maxPods', 'type': 'int'}, + 'os_type': {'key': 'properties.osType', 'type': 'str'}, + 'os_sku': {'key': 'properties.osSKU', 'type': 'str'}, + 'max_count': {'key': 'properties.maxCount', 'type': 'int'}, + 'min_count': {'key': 'properties.minCount', 'type': 'int'}, + 'enable_auto_scaling': {'key': 'properties.enableAutoScaling', 'type': 'bool'}, + 'scale_down_mode': {'key': 'properties.scaleDownMode', 'type': 'str'}, + 'type_properties_type': {'key': 'properties.type', 'type': 'str'}, + 'mode': {'key': 'properties.mode', 'type': 'str'}, + 'orchestrator_version': {'key': 'properties.orchestratorVersion', 'type': 'str'}, + 'node_image_version': {'key': 'properties.nodeImageVersion', 'type': 'str'}, + 'upgrade_settings': {'key': 'properties.upgradeSettings', 'type': 'AgentPoolUpgradeSettings'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'power_state': {'key': 'properties.powerState', 'type': 'PowerState'}, + 'availability_zones': {'key': 'properties.availabilityZones', 'type': '[str]'}, + 'enable_node_public_ip': {'key': 'properties.enableNodePublicIP', 'type': 'bool'}, + 'node_public_ip_prefix_id': {'key': 'properties.nodePublicIPPrefixID', 'type': 'str'}, + 'scale_set_priority': {'key': 'properties.scaleSetPriority', 'type': 'str'}, + 'scale_set_eviction_policy': {'key': 'properties.scaleSetEvictionPolicy', 'type': 'str'}, + 'spot_max_price': {'key': 'properties.spotMaxPrice', 'type': 'float'}, + 'tags': {'key': 'properties.tags', 'type': '{str}'}, + 'node_labels': {'key': 'properties.nodeLabels', 'type': '{str}'}, + 'node_taints': {'key': 'properties.nodeTaints', 'type': '[str]'}, + 'proximity_placement_group_id': {'key': 'properties.proximityPlacementGroupID', 'type': 'str'}, + 'kubelet_config': {'key': 'properties.kubeletConfig', 'type': 'KubeletConfig'}, + 'linux_os_config': {'key': 'properties.linuxOSConfig', 'type': 'LinuxOSConfig'}, + 'enable_encryption_at_host': {'key': 'properties.enableEncryptionAtHost', 'type': 'bool'}, + 'enable_ultra_ssd': {'key': 'properties.enableUltraSSD', 'type': 'bool'}, + 'enable_fips': {'key': 'properties.enableFIPS', 'type': 'bool'}, + 'gpu_instance_profile': {'key': 'properties.gpuInstanceProfile', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AgentPool, self).__init__(**kwargs) + self.count = kwargs.get('count', None) + self.vm_size = kwargs.get('vm_size', None) + self.os_disk_size_gb = kwargs.get('os_disk_size_gb', None) + self.os_disk_type = kwargs.get('os_disk_type', None) + self.kubelet_disk_type = kwargs.get('kubelet_disk_type', None) + self.vnet_subnet_id = kwargs.get('vnet_subnet_id', None) + self.pod_subnet_id = kwargs.get('pod_subnet_id', None) + self.max_pods = kwargs.get('max_pods', None) + self.os_type = kwargs.get('os_type', "Linux") + self.os_sku = kwargs.get('os_sku', None) + self.max_count = kwargs.get('max_count', None) + self.min_count = kwargs.get('min_count', None) + self.enable_auto_scaling = kwargs.get('enable_auto_scaling', None) + self.scale_down_mode = kwargs.get('scale_down_mode', None) + self.type_properties_type = kwargs.get('type_properties_type', None) + self.mode = kwargs.get('mode', None) + self.orchestrator_version = kwargs.get('orchestrator_version', None) + self.node_image_version = None + self.upgrade_settings = kwargs.get('upgrade_settings', None) + self.provisioning_state = None + self.power_state = None + self.availability_zones = kwargs.get('availability_zones', None) + self.enable_node_public_ip = kwargs.get('enable_node_public_ip', None) + self.node_public_ip_prefix_id = kwargs.get('node_public_ip_prefix_id', None) + self.scale_set_priority = kwargs.get('scale_set_priority', "Regular") + self.scale_set_eviction_policy = kwargs.get('scale_set_eviction_policy', "Delete") + self.spot_max_price = kwargs.get('spot_max_price', -1) + self.tags = kwargs.get('tags', None) + self.node_labels = kwargs.get('node_labels', None) + self.node_taints = kwargs.get('node_taints', None) + self.proximity_placement_group_id = kwargs.get('proximity_placement_group_id', None) + self.kubelet_config = kwargs.get('kubelet_config', None) + self.linux_os_config = kwargs.get('linux_os_config', None) + self.enable_encryption_at_host = kwargs.get('enable_encryption_at_host', None) + self.enable_ultra_ssd = kwargs.get('enable_ultra_ssd', None) + self.enable_fips = kwargs.get('enable_fips', None) + self.gpu_instance_profile = kwargs.get('gpu_instance_profile', None) + + +class AgentPoolAvailableVersions(msrest.serialization.Model): + """The list of available versions for an agent pool. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The ID of the agent pool version list. + :vartype id: str + :ivar name: The name of the agent pool version list. + :vartype name: str + :ivar type: Type of the agent pool version list. + :vartype type: str + :param agent_pool_versions: List of versions available for agent pool. + :type agent_pool_versions: + list[~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem] + """ + + _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'}, + 'agent_pool_versions': {'key': 'properties.agentPoolVersions', 'type': '[AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem]'}, + } + + def __init__( + self, + **kwargs + ): + super(AgentPoolAvailableVersions, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.agent_pool_versions = kwargs.get('agent_pool_versions', None) + + +class AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem(msrest.serialization.Model): + """AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem. + + :param default: Whether this version is the default agent pool version. + :type default: bool + :param kubernetes_version: The Kubernetes version (major.minor.patch). + :type kubernetes_version: str + :param is_preview: Whether Kubernetes version is currently in preview. + :type is_preview: bool + """ + + _attribute_map = { + 'default': {'key': 'default', 'type': 'bool'}, + 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem, self).__init__(**kwargs) + self.default = kwargs.get('default', None) + self.kubernetes_version = kwargs.get('kubernetes_version', None) + self.is_preview = kwargs.get('is_preview', None) + + +class AgentPoolListResult(msrest.serialization.Model): + """The response from the List Agent Pools operation. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param value: The list of agent pools. + :type value: list[~azure.mgmt.containerservice.v2021_07_01.models.AgentPool] + :ivar next_link: The URL to get the next set of agent pool results. + :vartype next_link: str + """ + + _validation = { + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[AgentPool]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AgentPoolListResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + self.next_link = None + + +class AgentPoolUpgradeProfile(msrest.serialization.Model): + """The list of available upgrades for an agent pool. + + 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 ID of the agent pool upgrade profile. + :vartype id: str + :ivar name: The name of the agent pool upgrade profile. + :vartype name: str + :ivar type: The type of the agent pool upgrade profile. + :vartype type: str + :param kubernetes_version: Required. The Kubernetes version (major.minor.patch). + :type kubernetes_version: str + :param os_type: Required. The operating system type. The default is Linux. Possible values + include: "Linux", "Windows". Default value: "Linux". + :type os_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSType + :param upgrades: List of orchestrator types and versions available for upgrade. + :type upgrades: + list[~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolUpgradeProfilePropertiesUpgradesItem] + :param latest_node_image_version: The latest AKS supported node image version. + :type latest_node_image_version: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'kubernetes_version': {'required': True}, + 'os_type': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'kubernetes_version': {'key': 'properties.kubernetesVersion', 'type': 'str'}, + 'os_type': {'key': 'properties.osType', 'type': 'str'}, + 'upgrades': {'key': 'properties.upgrades', 'type': '[AgentPoolUpgradeProfilePropertiesUpgradesItem]'}, + 'latest_node_image_version': {'key': 'properties.latestNodeImageVersion', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AgentPoolUpgradeProfile, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.kubernetes_version = kwargs['kubernetes_version'] + self.os_type = kwargs.get('os_type', "Linux") + self.upgrades = kwargs.get('upgrades', None) + self.latest_node_image_version = kwargs.get('latest_node_image_version', None) + + +class AgentPoolUpgradeProfilePropertiesUpgradesItem(msrest.serialization.Model): + """AgentPoolUpgradeProfilePropertiesUpgradesItem. + + :param kubernetes_version: The Kubernetes version (major.minor.patch). + :type kubernetes_version: str + :param is_preview: Whether the Kubernetes version is currently in preview. + :type is_preview: bool + """ + + _attribute_map = { + 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(AgentPoolUpgradeProfilePropertiesUpgradesItem, self).__init__(**kwargs) + self.kubernetes_version = kwargs.get('kubernetes_version', None) + self.is_preview = kwargs.get('is_preview', None) + + +class AgentPoolUpgradeSettings(msrest.serialization.Model): + """Settings for upgrading an agentpool. + + :param max_surge: This can either be set to an integer (e.g. '5') or a percentage (e.g. '50%'). + If a percentage is specified, it is the percentage of the total agent pool size at the time of + the upgrade. For percentages, fractional nodes are rounded up. If not specified, the default is + 1. For more information, including best practices, see: + https://docs.microsoft.com/azure/aks/upgrade-cluster#customize-node-surge-upgrade. + :type max_surge: str + """ + + _attribute_map = { + 'max_surge': {'key': 'maxSurge', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AgentPoolUpgradeSettings, self).__init__(**kwargs) + self.max_surge = kwargs.get('max_surge', None) + + +class CloudErrorBody(msrest.serialization.Model): + """An error response from the Container service. + + :param code: An identifier for the error. Codes are invariant and are intended to be consumed + programmatically. + :type code: str + :param message: A message describing the error, intended to be suitable for display in a user + interface. + :type message: str + :param target: The target of the particular error. For example, the name of the property in + error. + :type target: str + :param details: A list of additional details about the error. + :type details: list[~azure.mgmt.containerservice.v2021_07_01.models.CloudErrorBody] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[CloudErrorBody]'}, + } + + def __init__( + self, + **kwargs + ): + super(CloudErrorBody, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.target = kwargs.get('target', None) + self.details = kwargs.get('details', None) + + +class ContainerServiceDiagnosticsProfile(msrest.serialization.Model): + """Profile for diagnostics on the container service cluster. + + All required parameters must be populated in order to send to Azure. + + :param vm_diagnostics: Required. Profile for diagnostics on the container service VMs. + :type vm_diagnostics: + ~azure.mgmt.containerservice.v2021_07_01.models.ContainerServiceVMDiagnostics + """ + + _validation = { + 'vm_diagnostics': {'required': True}, + } + + _attribute_map = { + 'vm_diagnostics': {'key': 'vmDiagnostics', 'type': 'ContainerServiceVMDiagnostics'}, + } + + def __init__( + self, + **kwargs + ): + super(ContainerServiceDiagnosticsProfile, self).__init__(**kwargs) + self.vm_diagnostics = kwargs['vm_diagnostics'] + + +class ContainerServiceLinuxProfile(msrest.serialization.Model): + """Profile for Linux VMs in the container service cluster. + + All required parameters must be populated in order to send to Azure. + + :param admin_username: Required. The administrator username to use for Linux VMs. + :type admin_username: str + :param ssh: Required. The SSH configuration for Linux-based VMs running on Azure. + :type ssh: ~azure.mgmt.containerservice.v2021_07_01.models.ContainerServiceSshConfiguration + """ + + _validation = { + 'admin_username': {'required': True, 'pattern': r'^[A-Za-z][-A-Za-z0-9_]*$'}, + 'ssh': {'required': True}, + } + + _attribute_map = { + 'admin_username': {'key': 'adminUsername', 'type': 'str'}, + 'ssh': {'key': 'ssh', 'type': 'ContainerServiceSshConfiguration'}, + } + + def __init__( + self, + **kwargs + ): + super(ContainerServiceLinuxProfile, self).__init__(**kwargs) + self.admin_username = kwargs['admin_username'] + self.ssh = kwargs['ssh'] + + +class ContainerServiceMasterProfile(msrest.serialization.Model): + """Profile for the container service master. + + 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 count: Number of masters (VMs) in the container service cluster. Allowed values are 1, + 3, and 5. The default value is 1. Possible values include: 1, 3, 5. Default value: "1". + :type count: str or ~azure.mgmt.containerservice.v2021_07_01.models.Count + :param dns_prefix: Required. DNS prefix to be used to create the FQDN for the master pool. + :type dns_prefix: str + :param vm_size: Required. Size of agent VMs. Possible values include: "Standard_A1", + "Standard_A10", "Standard_A11", "Standard_A1_v2", "Standard_A2", "Standard_A2_v2", + "Standard_A2m_v2", "Standard_A3", "Standard_A4", "Standard_A4_v2", "Standard_A4m_v2", + "Standard_A5", "Standard_A6", "Standard_A7", "Standard_A8", "Standard_A8_v2", + "Standard_A8m_v2", "Standard_A9", "Standard_B2ms", "Standard_B2s", "Standard_B4ms", + "Standard_B8ms", "Standard_D1", "Standard_D11", "Standard_D11_v2", "Standard_D11_v2_Promo", + "Standard_D12", "Standard_D12_v2", "Standard_D12_v2_Promo", "Standard_D13", "Standard_D13_v2", + "Standard_D13_v2_Promo", "Standard_D14", "Standard_D14_v2", "Standard_D14_v2_Promo", + "Standard_D15_v2", "Standard_D16_v3", "Standard_D16s_v3", "Standard_D1_v2", "Standard_D2", + "Standard_D2_v2", "Standard_D2_v2_Promo", "Standard_D2_v3", "Standard_D2s_v3", "Standard_D3", + "Standard_D32_v3", "Standard_D32s_v3", "Standard_D3_v2", "Standard_D3_v2_Promo", "Standard_D4", + "Standard_D4_v2", "Standard_D4_v2_Promo", "Standard_D4_v3", "Standard_D4s_v3", + "Standard_D5_v2", "Standard_D5_v2_Promo", "Standard_D64_v3", "Standard_D64s_v3", + "Standard_D8_v3", "Standard_D8s_v3", "Standard_DS1", "Standard_DS11", "Standard_DS11_v2", + "Standard_DS11_v2_Promo", "Standard_DS12", "Standard_DS12_v2", "Standard_DS12_v2_Promo", + "Standard_DS13", "Standard_DS13-2_v2", "Standard_DS13-4_v2", "Standard_DS13_v2", + "Standard_DS13_v2_Promo", "Standard_DS14", "Standard_DS14-4_v2", "Standard_DS14-8_v2", + "Standard_DS14_v2", "Standard_DS14_v2_Promo", "Standard_DS15_v2", "Standard_DS1_v2", + "Standard_DS2", "Standard_DS2_v2", "Standard_DS2_v2_Promo", "Standard_DS3", "Standard_DS3_v2", + "Standard_DS3_v2_Promo", "Standard_DS4", "Standard_DS4_v2", "Standard_DS4_v2_Promo", + "Standard_DS5_v2", "Standard_DS5_v2_Promo", "Standard_E16_v3", "Standard_E16s_v3", + "Standard_E2_v3", "Standard_E2s_v3", "Standard_E32-16s_v3", "Standard_E32-8s_v3", + "Standard_E32_v3", "Standard_E32s_v3", "Standard_E4_v3", "Standard_E4s_v3", + "Standard_E64-16s_v3", "Standard_E64-32s_v3", "Standard_E64_v3", "Standard_E64s_v3", + "Standard_E8_v3", "Standard_E8s_v3", "Standard_F1", "Standard_F16", "Standard_F16s", + "Standard_F16s_v2", "Standard_F1s", "Standard_F2", "Standard_F2s", "Standard_F2s_v2", + "Standard_F32s_v2", "Standard_F4", "Standard_F4s", "Standard_F4s_v2", "Standard_F64s_v2", + "Standard_F72s_v2", "Standard_F8", "Standard_F8s", "Standard_F8s_v2", "Standard_G1", + "Standard_G2", "Standard_G3", "Standard_G4", "Standard_G5", "Standard_GS1", "Standard_GS2", + "Standard_GS3", "Standard_GS4", "Standard_GS4-4", "Standard_GS4-8", "Standard_GS5", + "Standard_GS5-16", "Standard_GS5-8", "Standard_H16", "Standard_H16m", "Standard_H16mr", + "Standard_H16r", "Standard_H8", "Standard_H8m", "Standard_L16s", "Standard_L32s", + "Standard_L4s", "Standard_L8s", "Standard_M128-32ms", "Standard_M128-64ms", "Standard_M128ms", + "Standard_M128s", "Standard_M64-16ms", "Standard_M64-32ms", "Standard_M64ms", "Standard_M64s", + "Standard_NC12", "Standard_NC12s_v2", "Standard_NC12s_v3", "Standard_NC24", "Standard_NC24r", + "Standard_NC24rs_v2", "Standard_NC24rs_v3", "Standard_NC24s_v2", "Standard_NC24s_v3", + "Standard_NC6", "Standard_NC6s_v2", "Standard_NC6s_v3", "Standard_ND12s", "Standard_ND24rs", + "Standard_ND24s", "Standard_ND6s", "Standard_NV12", "Standard_NV24", "Standard_NV6". + :type vm_size: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ContainerServiceVMSizeTypes + :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every + machine in this master/agent pool. If you specify 0, it will apply the default osDisk size + according to the vmSize specified. + :type os_disk_size_gb: int + :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet identifier. + :type vnet_subnet_id: str + :param first_consecutive_static_ip: FirstConsecutiveStaticIP used to specify the first static + ip of masters. + :type first_consecutive_static_ip: str + :param storage_profile: Storage profile specifies what kind of storage used. Choose from + StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the + orchestrator choice. Possible values include: "StorageAccount", "ManagedDisks". + :type storage_profile: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ContainerServiceStorageProfileTypes + :ivar fqdn: FQDN for the master pool. + :vartype fqdn: str + """ + + _validation = { + 'dns_prefix': {'required': True}, + 'vm_size': {'required': True}, + 'os_disk_size_gb': {'maximum': 2048, 'minimum': 0}, + 'fqdn': {'readonly': True}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + 'dns_prefix': {'key': 'dnsPrefix', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'os_disk_size_gb': {'key': 'osDiskSizeGB', 'type': 'int'}, + 'vnet_subnet_id': {'key': 'vnetSubnetID', 'type': 'str'}, + 'first_consecutive_static_ip': {'key': 'firstConsecutiveStaticIP', 'type': 'str'}, + 'storage_profile': {'key': 'storageProfile', 'type': 'str'}, + 'fqdn': {'key': 'fqdn', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ContainerServiceMasterProfile, self).__init__(**kwargs) + self.count = kwargs.get('count', "1") + self.dns_prefix = kwargs['dns_prefix'] + self.vm_size = kwargs['vm_size'] + self.os_disk_size_gb = kwargs.get('os_disk_size_gb', None) + self.vnet_subnet_id = kwargs.get('vnet_subnet_id', None) + self.first_consecutive_static_ip = kwargs.get('first_consecutive_static_ip', "10.240.255.5") + self.storage_profile = kwargs.get('storage_profile', None) + self.fqdn = None + + +class ContainerServiceNetworkProfile(msrest.serialization.Model): + """Profile of network configuration. + + :param network_plugin: Network plugin used for building the Kubernetes network. Possible values + include: "azure", "kubenet". Default value: "kubenet". + :type network_plugin: str or ~azure.mgmt.containerservice.v2021_07_01.models.NetworkPlugin + :param network_policy: Network policy used for building the Kubernetes network. Possible values + include: "calico", "azure". + :type network_policy: str or ~azure.mgmt.containerservice.v2021_07_01.models.NetworkPolicy + :param network_mode: This cannot be specified if networkPlugin is anything other than 'azure'. + Possible values include: "transparent", "bridge". + :type network_mode: str or ~azure.mgmt.containerservice.v2021_07_01.models.NetworkMode + :param pod_cidr: A CIDR notation IP range from which to assign pod IPs when kubenet is used. + :type pod_cidr: str + :param service_cidr: A CIDR notation IP range from which to assign service cluster IPs. It must + not overlap with any Subnet IP ranges. + :type service_cidr: str + :param dns_service_ip: An IP address assigned to the Kubernetes DNS service. It must be within + the Kubernetes service address range specified in serviceCidr. + :type dns_service_ip: str + :param docker_bridge_cidr: A CIDR notation IP range assigned to the Docker bridge network. It + must not overlap with any Subnet IP ranges or the Kubernetes service address range. + :type docker_bridge_cidr: str + :param outbound_type: This can only be set at cluster creation time and cannot be changed + later. For more information see `egress outbound type + `_. Possible values include: + "loadBalancer", "userDefinedRouting", "managedNATGateway", "userAssignedNATGateway". Default + value: "loadBalancer". + :type outbound_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OutboundType + :param load_balancer_sku: The default is 'standard'. See `Azure Load Balancer SKUs + `_ for more information about the + differences between load balancer SKUs. Possible values include: "standard", "basic". + :type load_balancer_sku: str or ~azure.mgmt.containerservice.v2021_07_01.models.LoadBalancerSku + :param load_balancer_profile: Profile of the cluster load balancer. + :type load_balancer_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterLoadBalancerProfile + :param nat_gateway_profile: Profile of the cluster NAT gateway. + :type nat_gateway_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterNATGatewayProfile + """ + + _validation = { + 'pod_cidr': {'pattern': r'^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$'}, + 'service_cidr': {'pattern': r'^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$'}, + 'dns_service_ip': {'pattern': r'^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'}, + 'docker_bridge_cidr': {'pattern': r'^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$'}, + } + + _attribute_map = { + 'network_plugin': {'key': 'networkPlugin', 'type': 'str'}, + 'network_policy': {'key': 'networkPolicy', 'type': 'str'}, + 'network_mode': {'key': 'networkMode', 'type': 'str'}, + 'pod_cidr': {'key': 'podCidr', 'type': 'str'}, + 'service_cidr': {'key': 'serviceCidr', 'type': 'str'}, + 'dns_service_ip': {'key': 'dnsServiceIP', 'type': 'str'}, + 'docker_bridge_cidr': {'key': 'dockerBridgeCidr', 'type': 'str'}, + 'outbound_type': {'key': 'outboundType', 'type': 'str'}, + 'load_balancer_sku': {'key': 'loadBalancerSku', 'type': 'str'}, + 'load_balancer_profile': {'key': 'loadBalancerProfile', 'type': 'ManagedClusterLoadBalancerProfile'}, + 'nat_gateway_profile': {'key': 'natGatewayProfile', 'type': 'ManagedClusterNATGatewayProfile'}, + } + + def __init__( + self, + **kwargs + ): + super(ContainerServiceNetworkProfile, self).__init__(**kwargs) + self.network_plugin = kwargs.get('network_plugin', "kubenet") + self.network_policy = kwargs.get('network_policy', None) + self.network_mode = kwargs.get('network_mode', None) + self.pod_cidr = kwargs.get('pod_cidr', "10.244.0.0/16") + self.service_cidr = kwargs.get('service_cidr', "10.0.0.0/16") + self.dns_service_ip = kwargs.get('dns_service_ip', "10.0.0.10") + self.docker_bridge_cidr = kwargs.get('docker_bridge_cidr', "172.17.0.1/16") + self.outbound_type = kwargs.get('outbound_type', "loadBalancer") + self.load_balancer_sku = kwargs.get('load_balancer_sku', None) + self.load_balancer_profile = kwargs.get('load_balancer_profile', None) + self.nat_gateway_profile = kwargs.get('nat_gateway_profile', None) + + +class ContainerServiceSshConfiguration(msrest.serialization.Model): + """SSH configuration for Linux-based VMs running on Azure. + + All required parameters must be populated in order to send to Azure. + + :param public_keys: Required. The list of SSH public keys used to authenticate with Linux-based + VMs. A maximum of 1 key may be specified. + :type public_keys: + list[~azure.mgmt.containerservice.v2021_07_01.models.ContainerServiceSshPublicKey] + """ + + _validation = { + 'public_keys': {'required': True}, + } + + _attribute_map = { + 'public_keys': {'key': 'publicKeys', 'type': '[ContainerServiceSshPublicKey]'}, + } + + def __init__( + self, + **kwargs + ): + super(ContainerServiceSshConfiguration, self).__init__(**kwargs) + self.public_keys = kwargs['public_keys'] + + +class ContainerServiceSshPublicKey(msrest.serialization.Model): + """Contains information about SSH certificate public key data. + + All required parameters must be populated in order to send to Azure. + + :param key_data: Required. Certificate public key used to authenticate with VMs through SSH. + The certificate must be in PEM format with or without headers. + :type key_data: str + """ + + _validation = { + 'key_data': {'required': True}, + } + + _attribute_map = { + 'key_data': {'key': 'keyData', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ContainerServiceSshPublicKey, self).__init__(**kwargs) + self.key_data = kwargs['key_data'] + + +class ContainerServiceVMDiagnostics(msrest.serialization.Model): + """Profile for diagnostics on the container service VMs. + + 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 enabled: Required. Whether the VM diagnostic agent is provisioned on the VM. + :type enabled: bool + :ivar storage_uri: The URI of the storage account where diagnostics are stored. + :vartype storage_uri: str + """ + + _validation = { + 'enabled': {'required': True}, + 'storage_uri': {'readonly': True}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'storage_uri': {'key': 'storageUri', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ContainerServiceVMDiagnostics, self).__init__(**kwargs) + self.enabled = kwargs['enabled'] + self.storage_uri = None + + +class CredentialResult(msrest.serialization.Model): + """The credential result response. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar name: The name of the credential. + :vartype name: str + :ivar value: Base64-encoded Kubernetes configuration file. + :vartype value: bytearray + """ + + _validation = { + 'name': {'readonly': True}, + 'value': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'bytearray'}, + } + + def __init__( + self, + **kwargs + ): + super(CredentialResult, self).__init__(**kwargs) + self.name = None + self.value = None + + +class CredentialResults(msrest.serialization.Model): + """The list credential result response. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar kubeconfigs: Base64-encoded Kubernetes configuration file. + :vartype kubeconfigs: list[~azure.mgmt.containerservice.v2021_07_01.models.CredentialResult] + """ + + _validation = { + 'kubeconfigs': {'readonly': True}, + } + + _attribute_map = { + 'kubeconfigs': {'key': 'kubeconfigs', 'type': '[CredentialResult]'}, + } + + def __init__( + self, + **kwargs + ): + super(CredentialResults, self).__init__(**kwargs) + self.kubeconfigs = None + + +class EndpointDependency(msrest.serialization.Model): + """A domain name that AKS agent nodes are reaching at. + + :param domain_name: The domain name of the dependency. + :type domain_name: str + :param endpoint_details: The Ports and Protocols used when connecting to domainName. + :type endpoint_details: list[~azure.mgmt.containerservice.v2021_07_01.models.EndpointDetail] + """ + + _attribute_map = { + 'domain_name': {'key': 'domainName', 'type': 'str'}, + 'endpoint_details': {'key': 'endpointDetails', 'type': '[EndpointDetail]'}, + } + + def __init__( + self, + **kwargs + ): + super(EndpointDependency, self).__init__(**kwargs) + self.domain_name = kwargs.get('domain_name', None) + self.endpoint_details = kwargs.get('endpoint_details', None) + + +class EndpointDetail(msrest.serialization.Model): + """connect information from the AKS agent nodes to a single endpoint. + + :param ip_address: An IP Address that Domain Name currently resolves to. + :type ip_address: str + :param port: The port an endpoint is connected to. + :type port: int + :param protocol: The protocol used for connection. + :type protocol: str + :param description: Description of the detail. + :type description: str + """ + + _attribute_map = { + 'ip_address': {'key': 'ipAddress', 'type': 'str'}, + 'port': {'key': 'port', 'type': 'int'}, + 'protocol': {'key': 'protocol', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(EndpointDetail, self).__init__(**kwargs) + self.ip_address = kwargs.get('ip_address', None) + self.port = kwargs.get('port', None) + self.protocol = kwargs.get('protocol', None) + self.description = kwargs.get('description', None) + + +class ExtendedLocation(msrest.serialization.Model): + """The complex type of the extended location. + + :param name: The name of the extended location. + :type name: str + :param type: The type of the extended location. Possible values include: "EdgeZone". + :type type: str or ~azure.mgmt.containerservice.v2021_07_01.models.ExtendedLocationTypes + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ExtendedLocation, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.type = kwargs.get('type', None) + + +class KubeletConfig(msrest.serialization.Model): + """See `AKS custom node configuration `_ for more details. + + :param cpu_manager_policy: The default is 'none'. See `Kubernetes CPU management policies + `_ + for more information. Allowed values are 'none' and 'static'. + :type cpu_manager_policy: str + :param cpu_cfs_quota: The default is true. + :type cpu_cfs_quota: bool + :param cpu_cfs_quota_period: The default is '100ms.' Valid values are a sequence of decimal + numbers with an optional fraction and a unit suffix. For example: '300ms', '2h45m'. Supported + units are 'ns', 'us', 'ms', 's', 'm', and 'h'. + :type cpu_cfs_quota_period: str + :param image_gc_high_threshold: To disable image garbage collection, set to 100. The default is + 85%. + :type image_gc_high_threshold: int + :param image_gc_low_threshold: This cannot be set higher than imageGcHighThreshold. The default + is 80%. + :type image_gc_low_threshold: int + :param topology_manager_policy: For more information see `Kubernetes Topology Manager + `_. The default is + 'none'. Allowed values are 'none', 'best-effort', 'restricted', and 'single-numa-node'. + :type topology_manager_policy: str + :param allowed_unsafe_sysctls: Allowed list of unsafe sysctls or unsafe sysctl patterns (ending + in ``*``\ ). + :type allowed_unsafe_sysctls: list[str] + :param fail_swap_on: If set to true it will make the Kubelet fail to start if swap is enabled + on the node. + :type fail_swap_on: bool + :param container_log_max_size_mb: The maximum size (e.g. 10Mi) of container log file before it + is rotated. + :type container_log_max_size_mb: int + :param container_log_max_files: The maximum number of container log files that can be present + for a container. The number must be ≥ 2. + :type container_log_max_files: int + :param pod_max_pids: The maximum number of processes per pod. + :type pod_max_pids: int + """ + + _validation = { + 'container_log_max_files': {'minimum': 2}, + } + + _attribute_map = { + 'cpu_manager_policy': {'key': 'cpuManagerPolicy', 'type': 'str'}, + 'cpu_cfs_quota': {'key': 'cpuCfsQuota', 'type': 'bool'}, + 'cpu_cfs_quota_period': {'key': 'cpuCfsQuotaPeriod', 'type': 'str'}, + 'image_gc_high_threshold': {'key': 'imageGcHighThreshold', 'type': 'int'}, + 'image_gc_low_threshold': {'key': 'imageGcLowThreshold', 'type': 'int'}, + 'topology_manager_policy': {'key': 'topologyManagerPolicy', 'type': 'str'}, + 'allowed_unsafe_sysctls': {'key': 'allowedUnsafeSysctls', 'type': '[str]'}, + 'fail_swap_on': {'key': 'failSwapOn', 'type': 'bool'}, + 'container_log_max_size_mb': {'key': 'containerLogMaxSizeMB', 'type': 'int'}, + 'container_log_max_files': {'key': 'containerLogMaxFiles', 'type': 'int'}, + 'pod_max_pids': {'key': 'podMaxPids', 'type': 'int'}, + } + + def __init__( + self, + **kwargs + ): + super(KubeletConfig, self).__init__(**kwargs) + self.cpu_manager_policy = kwargs.get('cpu_manager_policy', None) + self.cpu_cfs_quota = kwargs.get('cpu_cfs_quota', None) + self.cpu_cfs_quota_period = kwargs.get('cpu_cfs_quota_period', None) + self.image_gc_high_threshold = kwargs.get('image_gc_high_threshold', None) + self.image_gc_low_threshold = kwargs.get('image_gc_low_threshold', None) + self.topology_manager_policy = kwargs.get('topology_manager_policy', None) + self.allowed_unsafe_sysctls = kwargs.get('allowed_unsafe_sysctls', None) + self.fail_swap_on = kwargs.get('fail_swap_on', None) + self.container_log_max_size_mb = kwargs.get('container_log_max_size_mb', None) + self.container_log_max_files = kwargs.get('container_log_max_files', None) + self.pod_max_pids = kwargs.get('pod_max_pids', None) + + +class LinuxOSConfig(msrest.serialization.Model): + """See `AKS custom node configuration `_ for more details. + + :param sysctls: Sysctl settings for Linux agent nodes. + :type sysctls: ~azure.mgmt.containerservice.v2021_07_01.models.SysctlConfig + :param transparent_huge_page_enabled: Valid values are 'always', 'madvise', and 'never'. The + default is 'always'. For more information see `Transparent Hugepages + `_. + :type transparent_huge_page_enabled: str + :param transparent_huge_page_defrag: Valid values are 'always', 'defer', 'defer+madvise', + 'madvise' and 'never'. The default is 'madvise'. For more information see `Transparent + Hugepages + `_. + :type transparent_huge_page_defrag: str + :param swap_file_size_mb: The size in MB of a swap file that will be created on each node. + :type swap_file_size_mb: int + """ + + _attribute_map = { + 'sysctls': {'key': 'sysctls', 'type': 'SysctlConfig'}, + 'transparent_huge_page_enabled': {'key': 'transparentHugePageEnabled', 'type': 'str'}, + 'transparent_huge_page_defrag': {'key': 'transparentHugePageDefrag', 'type': 'str'}, + 'swap_file_size_mb': {'key': 'swapFileSizeMB', 'type': 'int'}, + } + + def __init__( + self, + **kwargs + ): + super(LinuxOSConfig, self).__init__(**kwargs) + self.sysctls = kwargs.get('sysctls', None) + self.transparent_huge_page_enabled = kwargs.get('transparent_huge_page_enabled', None) + self.transparent_huge_page_defrag = kwargs.get('transparent_huge_page_defrag', None) + self.swap_file_size_mb = kwargs.get('swap_file_size_mb', None) + + +class MaintenanceConfiguration(SubResource): + """See `planned maintenance `_ for more information about planned maintenance. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: The name of the resource that is unique within a resource group. This name can be + used to access the resource. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :ivar system_data: The system metadata relating to this resource. + :vartype system_data: ~azure.mgmt.containerservice.v2021_07_01.models.SystemData + :param time_in_week: If two array entries specify the same day of the week, the applied + configuration is the union of times in both entries. + :type time_in_week: list[~azure.mgmt.containerservice.v2021_07_01.models.TimeInWeek] + :param not_allowed_time: Time slots on which upgrade is not allowed. + :type not_allowed_time: list[~azure.mgmt.containerservice.v2021_07_01.models.TimeSpan] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'system_data': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'system_data': {'key': 'systemData', 'type': 'SystemData'}, + 'time_in_week': {'key': 'properties.timeInWeek', 'type': '[TimeInWeek]'}, + 'not_allowed_time': {'key': 'properties.notAllowedTime', 'type': '[TimeSpan]'}, + } + + def __init__( + self, + **kwargs + ): + super(MaintenanceConfiguration, self).__init__(**kwargs) + self.system_data = None + self.time_in_week = kwargs.get('time_in_week', None) + self.not_allowed_time = kwargs.get('not_allowed_time', None) + + +class MaintenanceConfigurationListResult(msrest.serialization.Model): + """The response from the List maintenance configurations operation. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param value: The list of maintenance configurations. + :type value: list[~azure.mgmt.containerservice.v2021_07_01.models.MaintenanceConfiguration] + :ivar next_link: The URL to get the next set of maintenance configuration results. + :vartype next_link: str + """ + + _validation = { + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[MaintenanceConfiguration]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(MaintenanceConfigurationListResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + self.next_link = None + + +class Resource(msrest.serialization.Model): + """The Resource model definition. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param location: Required. Resource location. + :type location: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'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}'}, + } + + def __init__( + self, + **kwargs + ): + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.location = kwargs['location'] + self.tags = kwargs.get('tags', None) + + +class ManagedCluster(Resource): + """Managed cluster. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param location: Required. Resource location. + :type location: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param sku: The managed cluster SKU. + :type sku: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterSKU + :param extended_location: The extended location of the Virtual Machine. + :type extended_location: ~azure.mgmt.containerservice.v2021_07_01.models.ExtendedLocation + :param identity: The identity of the managed cluster, if configured. + :type identity: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterIdentity + :ivar provisioning_state: The current provisioning state. + :vartype provisioning_state: str + :ivar power_state: The Power State of the cluster. + :vartype power_state: ~azure.mgmt.containerservice.v2021_07_01.models.PowerState + :ivar max_agent_pools: The max number of agent pools for the managed cluster. + :vartype max_agent_pools: int + :param kubernetes_version: When you upgrade a supported AKS cluster, Kubernetes minor versions + cannot be skipped. All upgrades must be performed sequentially by major version number. For + example, upgrades between 1.14.x -> 1.15.x or 1.15.x -> 1.16.x are allowed, however 1.14.x -> + 1.16.x is not allowed. See `upgrading an AKS cluster + `_ for more details. + :type kubernetes_version: str + :param dns_prefix: This cannot be updated once the Managed Cluster has been created. + :type dns_prefix: str + :param fqdn_subdomain: This cannot be updated once the Managed Cluster has been created. + :type fqdn_subdomain: str + :ivar fqdn: The FQDN of the master pool. + :vartype fqdn: str + :ivar private_fqdn: The FQDN of private cluster. + :vartype private_fqdn: str + :ivar azure_portal_fqdn: The Azure Portal requires certain Cross-Origin Resource Sharing (CORS) + headers to be sent in some responses, which Kubernetes APIServer doesn't handle by default. + This special FQDN supports CORS, allowing the Azure Portal to function properly. + :vartype azure_portal_fqdn: str + :param agent_pool_profiles: The agent pool properties. + :type agent_pool_profiles: + list[~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterAgentPoolProfile] + :param linux_profile: The profile for Linux VMs in the Managed Cluster. + :type linux_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ContainerServiceLinuxProfile + :param windows_profile: The profile for Windows VMs in the Managed Cluster. + :type windows_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterWindowsProfile + :param service_principal_profile: Information about a service principal identity for the + cluster to use for manipulating Azure APIs. + :type service_principal_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterServicePrincipalProfile + :param addon_profiles: The profile of managed cluster add-on. + :type addon_profiles: dict[str, + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterAddonProfile] + :param pod_identity_profile: See `use AAD pod identity + `_ for more details on AAD pod + identity integration. + :type pod_identity_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPodIdentityProfile + :param node_resource_group: The name of the resource group containing agent pool nodes. + :type node_resource_group: str + :param enable_rbac: Whether to enable Kubernetes Role-Based Access Control. + :type enable_rbac: bool + :param enable_pod_security_policy: (DEPRECATING) Whether to enable Kubernetes pod security + policy (preview). This feature is set for removal on October 15th, 2020. Learn more at + aka.ms/aks/azpodpolicy. + :type enable_pod_security_policy: bool + :param network_profile: The network configuration profile. + :type network_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ContainerServiceNetworkProfile + :param aad_profile: The Azure Active Directory configuration. + :type aad_profile: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterAADProfile + :param auto_upgrade_profile: The auto upgrade configuration. + :type auto_upgrade_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterAutoUpgradeProfile + :param auto_scaler_profile: Parameters to be applied to the cluster-autoscaler when enabled. + :type auto_scaler_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPropertiesAutoScalerProfile + :param api_server_access_profile: The access profile for managed cluster API server. + :type api_server_access_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterAPIServerAccessProfile + :param disk_encryption_set_id: This is of the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}'. + :type disk_encryption_set_id: str + :param identity_profile: Identities associated with the cluster. + :type identity_profile: dict[str, + ~azure.mgmt.containerservice.v2021_07_01.models.UserAssignedIdentity] + :param private_link_resources: Private link resources associated with the cluster. + :type private_link_resources: + list[~azure.mgmt.containerservice.v2021_07_01.models.PrivateLinkResource] + :param disable_local_accounts: If set to true, getting static credentials will be disabled for + this cluster. This must only be used on Managed Clusters that are AAD enabled. For more details + see `disable local accounts + `_. + :type disable_local_accounts: bool + :param http_proxy_config: Configurations for provisioning the cluster with HTTP proxy servers. + :type http_proxy_config: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterHTTPProxyConfig + :param security_profile: Security profile for the managed cluster. + :type security_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterSecurityProfile + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + 'provisioning_state': {'readonly': True}, + 'power_state': {'readonly': True}, + 'max_agent_pools': {'readonly': True}, + 'fqdn': {'readonly': True}, + 'private_fqdn': {'readonly': True}, + 'azure_portal_fqdn': {'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}'}, + 'sku': {'key': 'sku', 'type': 'ManagedClusterSKU'}, + 'extended_location': {'key': 'extendedLocation', 'type': 'ExtendedLocation'}, + 'identity': {'key': 'identity', 'type': 'ManagedClusterIdentity'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'power_state': {'key': 'properties.powerState', 'type': 'PowerState'}, + 'max_agent_pools': {'key': 'properties.maxAgentPools', 'type': 'int'}, + 'kubernetes_version': {'key': 'properties.kubernetesVersion', 'type': 'str'}, + 'dns_prefix': {'key': 'properties.dnsPrefix', 'type': 'str'}, + 'fqdn_subdomain': {'key': 'properties.fqdnSubdomain', 'type': 'str'}, + 'fqdn': {'key': 'properties.fqdn', 'type': 'str'}, + 'private_fqdn': {'key': 'properties.privateFQDN', 'type': 'str'}, + 'azure_portal_fqdn': {'key': 'properties.azurePortalFQDN', 'type': 'str'}, + 'agent_pool_profiles': {'key': 'properties.agentPoolProfiles', 'type': '[ManagedClusterAgentPoolProfile]'}, + 'linux_profile': {'key': 'properties.linuxProfile', 'type': 'ContainerServiceLinuxProfile'}, + 'windows_profile': {'key': 'properties.windowsProfile', 'type': 'ManagedClusterWindowsProfile'}, + 'service_principal_profile': {'key': 'properties.servicePrincipalProfile', 'type': 'ManagedClusterServicePrincipalProfile'}, + 'addon_profiles': {'key': 'properties.addonProfiles', 'type': '{ManagedClusterAddonProfile}'}, + 'pod_identity_profile': {'key': 'properties.podIdentityProfile', 'type': 'ManagedClusterPodIdentityProfile'}, + 'node_resource_group': {'key': 'properties.nodeResourceGroup', 'type': 'str'}, + 'enable_rbac': {'key': 'properties.enableRBAC', 'type': 'bool'}, + 'enable_pod_security_policy': {'key': 'properties.enablePodSecurityPolicy', 'type': 'bool'}, + 'network_profile': {'key': 'properties.networkProfile', 'type': 'ContainerServiceNetworkProfile'}, + 'aad_profile': {'key': 'properties.aadProfile', 'type': 'ManagedClusterAADProfile'}, + 'auto_upgrade_profile': {'key': 'properties.autoUpgradeProfile', 'type': 'ManagedClusterAutoUpgradeProfile'}, + 'auto_scaler_profile': {'key': 'properties.autoScalerProfile', 'type': 'ManagedClusterPropertiesAutoScalerProfile'}, + 'api_server_access_profile': {'key': 'properties.apiServerAccessProfile', 'type': 'ManagedClusterAPIServerAccessProfile'}, + 'disk_encryption_set_id': {'key': 'properties.diskEncryptionSetID', 'type': 'str'}, + 'identity_profile': {'key': 'properties.identityProfile', 'type': '{UserAssignedIdentity}'}, + 'private_link_resources': {'key': 'properties.privateLinkResources', 'type': '[PrivateLinkResource]'}, + 'disable_local_accounts': {'key': 'properties.disableLocalAccounts', 'type': 'bool'}, + 'http_proxy_config': {'key': 'properties.httpProxyConfig', 'type': 'ManagedClusterHTTPProxyConfig'}, + 'security_profile': {'key': 'properties.securityProfile', 'type': 'ManagedClusterSecurityProfile'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedCluster, self).__init__(**kwargs) + self.sku = kwargs.get('sku', None) + self.extended_location = kwargs.get('extended_location', None) + self.identity = kwargs.get('identity', None) + self.provisioning_state = None + self.power_state = None + self.max_agent_pools = None + self.kubernetes_version = kwargs.get('kubernetes_version', None) + self.dns_prefix = kwargs.get('dns_prefix', None) + self.fqdn_subdomain = kwargs.get('fqdn_subdomain', None) + self.fqdn = None + self.private_fqdn = None + self.azure_portal_fqdn = None + self.agent_pool_profiles = kwargs.get('agent_pool_profiles', None) + self.linux_profile = kwargs.get('linux_profile', None) + self.windows_profile = kwargs.get('windows_profile', None) + self.service_principal_profile = kwargs.get('service_principal_profile', None) + self.addon_profiles = kwargs.get('addon_profiles', None) + self.pod_identity_profile = kwargs.get('pod_identity_profile', None) + self.node_resource_group = kwargs.get('node_resource_group', None) + self.enable_rbac = kwargs.get('enable_rbac', None) + self.enable_pod_security_policy = kwargs.get('enable_pod_security_policy', None) + self.network_profile = kwargs.get('network_profile', None) + self.aad_profile = kwargs.get('aad_profile', None) + self.auto_upgrade_profile = kwargs.get('auto_upgrade_profile', None) + self.auto_scaler_profile = kwargs.get('auto_scaler_profile', None) + self.api_server_access_profile = kwargs.get('api_server_access_profile', None) + self.disk_encryption_set_id = kwargs.get('disk_encryption_set_id', None) + self.identity_profile = kwargs.get('identity_profile', None) + self.private_link_resources = kwargs.get('private_link_resources', None) + self.disable_local_accounts = kwargs.get('disable_local_accounts', None) + self.http_proxy_config = kwargs.get('http_proxy_config', None) + self.security_profile = kwargs.get('security_profile', None) + + +class ManagedClusterAADProfile(msrest.serialization.Model): + """For more details see `managed AAD on AKS `_. + + :param managed: Whether to enable managed AAD. + :type managed: bool + :param enable_azure_rbac: Whether to enable Azure RBAC for Kubernetes authorization. + :type enable_azure_rbac: bool + :param admin_group_object_i_ds: The list of AAD group object IDs that will have admin role of + the cluster. + :type admin_group_object_i_ds: list[str] + :param client_app_id: The client AAD application ID. + :type client_app_id: str + :param server_app_id: The server AAD application ID. + :type server_app_id: str + :param server_app_secret: The server AAD application secret. + :type server_app_secret: str + :param tenant_id: The AAD tenant ID to use for authentication. If not specified, will use the + tenant of the deployment subscription. + :type tenant_id: str + """ + + _attribute_map = { + 'managed': {'key': 'managed', 'type': 'bool'}, + 'enable_azure_rbac': {'key': 'enableAzureRBAC', 'type': 'bool'}, + 'admin_group_object_i_ds': {'key': 'adminGroupObjectIDs', 'type': '[str]'}, + 'client_app_id': {'key': 'clientAppID', 'type': 'str'}, + 'server_app_id': {'key': 'serverAppID', 'type': 'str'}, + 'server_app_secret': {'key': 'serverAppSecret', 'type': 'str'}, + 'tenant_id': {'key': 'tenantID', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterAADProfile, self).__init__(**kwargs) + self.managed = kwargs.get('managed', None) + self.enable_azure_rbac = kwargs.get('enable_azure_rbac', None) + self.admin_group_object_i_ds = kwargs.get('admin_group_object_i_ds', None) + self.client_app_id = kwargs.get('client_app_id', None) + self.server_app_id = kwargs.get('server_app_id', None) + self.server_app_secret = kwargs.get('server_app_secret', None) + self.tenant_id = kwargs.get('tenant_id', None) + + +class ManagedClusterAccessProfile(Resource): + """Managed cluster Access Profile. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param location: Required. Resource location. + :type location: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param kube_config: Base64-encoded Kubernetes configuration file. + :type kube_config: bytearray + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'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}'}, + 'kube_config': {'key': 'properties.kubeConfig', 'type': 'bytearray'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterAccessProfile, self).__init__(**kwargs) + self.kube_config = kwargs.get('kube_config', None) + + +class ManagedClusterAddonProfile(msrest.serialization.Model): + """A Kubernetes add-on profile for a managed cluster. + + 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 enabled: Required. Whether the add-on is enabled or not. + :type enabled: bool + :param config: Key-value pairs for configuring an add-on. + :type config: dict[str, str] + :ivar identity: Information of user assigned identity used by this add-on. + :vartype identity: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterAddonProfileIdentity + """ + + _validation = { + 'enabled': {'required': True}, + 'identity': {'readonly': True}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'config': {'key': 'config', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedClusterAddonProfileIdentity'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterAddonProfile, self).__init__(**kwargs) + self.enabled = kwargs['enabled'] + self.config = kwargs.get('config', None) + self.identity = None + + +class UserAssignedIdentity(msrest.serialization.Model): + """Details about a user assigned identity. + + :param resource_id: The resource ID of the user assigned identity. + :type resource_id: str + :param client_id: The client ID of the user assigned identity. + :type client_id: str + :param object_id: The object ID of the user assigned identity. + :type object_id: str + """ + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + 'client_id': {'key': 'clientId', 'type': 'str'}, + 'object_id': {'key': 'objectId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(UserAssignedIdentity, self).__init__(**kwargs) + self.resource_id = kwargs.get('resource_id', None) + self.client_id = kwargs.get('client_id', None) + self.object_id = kwargs.get('object_id', None) + + +class ManagedClusterAddonProfileIdentity(UserAssignedIdentity): + """Information of user assigned identity used by this add-on. + + :param resource_id: The resource ID of the user assigned identity. + :type resource_id: str + :param client_id: The client ID of the user assigned identity. + :type client_id: str + :param object_id: The object ID of the user assigned identity. + :type object_id: str + """ + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + 'client_id': {'key': 'clientId', 'type': 'str'}, + 'object_id': {'key': 'objectId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterAddonProfileIdentity, self).__init__(**kwargs) + + +class ManagedClusterAgentPoolProfileProperties(msrest.serialization.Model): + """Properties for the container service agent pool profile. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param count: Number of agents (VMs) to host docker containers. Allowed values must be in the + range of 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for + system pools. The default value is 1. + :type count: int + :param vm_size: VM size availability varies by region. If a node contains insufficient compute + resources (memory, cpu, etc) pods might fail to run correctly. For more details on restricted + VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions. + :type vm_size: str + :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every + machine in the master/agent pool. If you specify 0, it will apply the default osDisk size + according to the vmSize specified. + :type os_disk_size_gb: int + :param os_disk_type: The default is 'Ephemeral' if the VM supports it and has a cache disk + larger than the requested OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed + after creation. For more information see `Ephemeral OS + `_. Possible values + include: "Managed", "Ephemeral". + :type os_disk_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSDiskType + :param kubelet_disk_type: Determines the placement of emptyDir volumes, container runtime data + root, and Kubelet ephemeral storage. Possible values include: "OS", "Temporary". + :type kubelet_disk_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.KubeletDiskType + :param vnet_subnet_id: If this is not specified, a VNET and subnet will be generated and used. + If no podSubnetID is specified, this applies to nodes and pods, otherwise it applies to just + nodes. This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. + :type vnet_subnet_id: str + :param pod_subnet_id: If omitted, pod IPs are statically assigned on the node subnet (see + vnetSubnetID for more details). This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. + :type pod_subnet_id: str + :param max_pods: The maximum number of pods that can run on a node. + :type max_pods: int + :param os_type: The operating system type. The default is Linux. Possible values include: + "Linux", "Windows". Default value: "Linux". + :type os_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSType + :param os_sku: Specifies an OS SKU. This value must not be specified if OSType is Windows. + Possible values include: "Ubuntu", "CBLMariner". + :type os_sku: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSSKU + :param max_count: The maximum number of nodes for auto-scaling. + :type max_count: int + :param min_count: The minimum number of nodes for auto-scaling. + :type min_count: int + :param enable_auto_scaling: Whether to enable auto-scaler. + :type enable_auto_scaling: bool + :param scale_down_mode: This also effects the cluster autoscaler behavior. If not specified, it + defaults to Delete. Possible values include: "Delete", "Deallocate". + :type scale_down_mode: str or ~azure.mgmt.containerservice.v2021_07_01.models.ScaleDownMode + :param type: The type of Agent Pool. Possible values include: "VirtualMachineScaleSets", + "AvailabilitySet". + :type type: str or ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolType + :param mode: A cluster must have at least one 'System' Agent Pool at all times. For additional + information on agent pool restrictions and best practices, see: + https://docs.microsoft.com/azure/aks/use-system-pools. Possible values include: "System", + "User". + :type mode: str or ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolMode + :param orchestrator_version: As a best practice, you should upgrade all node pools in an AKS + cluster to the same Kubernetes version. The node pool version must have the same major version + as the control plane. The node pool minor version must be within two minor versions of the + control plane version. The node pool version cannot be greater than the control plane version. + For more information see `upgrading a node pool + `_. + :type orchestrator_version: str + :ivar node_image_version: The version of node image. + :vartype node_image_version: str + :param upgrade_settings: Settings for upgrading the agentpool. + :type upgrade_settings: + ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolUpgradeSettings + :ivar provisioning_state: The current deployment or provisioning state. + :vartype provisioning_state: str + :ivar power_state: Describes whether the Agent Pool is Running or Stopped. + :vartype power_state: ~azure.mgmt.containerservice.v2021_07_01.models.PowerState + :param availability_zones: The list of Availability zones to use for nodes. This can only be + specified if the AgentPoolType property is 'VirtualMachineScaleSets'. + :type availability_zones: list[str] + :param enable_node_public_ip: Some scenarios may require nodes in a node pool to receive their + own dedicated public IP addresses. A common scenario is for gaming workloads, where a console + needs to make a direct connection to a cloud virtual machine to minimize hops. For more + information see `assigning a public IP per node + `_. + The default is false. + :type enable_node_public_ip: bool + :param node_public_ip_prefix_id: This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}. + :type node_public_ip_prefix_id: str + :param scale_set_priority: The Virtual Machine Scale Set priority. If not specified, the + default is 'Regular'. Possible values include: "Spot", "Regular". Default value: "Regular". + :type scale_set_priority: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ScaleSetPriority + :param scale_set_eviction_policy: This cannot be specified unless the scaleSetPriority is + 'Spot'. If not specified, the default is 'Delete'. Possible values include: "Delete", + "Deallocate". Default value: "Delete". + :type scale_set_eviction_policy: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ScaleSetEvictionPolicy + :param spot_max_price: Possible values are any decimal value greater than zero or -1 which + indicates the willingness to pay any on-demand price. For more details on spot pricing, see + `spot VMs pricing `_. + :type spot_max_price: float + :param tags: A set of tags. The tags to be persisted on the agent pool virtual machine scale + set. + :type tags: dict[str, str] + :param node_labels: The node labels to be persisted across all nodes in agent pool. + :type node_labels: dict[str, str] + :param node_taints: The taints added to new nodes during node pool create and scale. For + example, key=value:NoSchedule. + :type node_taints: list[str] + :param proximity_placement_group_id: The ID for Proximity Placement Group. + :type proximity_placement_group_id: str + :param kubelet_config: The Kubelet configuration on the agent pool nodes. + :type kubelet_config: ~azure.mgmt.containerservice.v2021_07_01.models.KubeletConfig + :param linux_os_config: The OS configuration of Linux agent nodes. + :type linux_os_config: ~azure.mgmt.containerservice.v2021_07_01.models.LinuxOSConfig + :param enable_encryption_at_host: This is only supported on certain VM sizes and in certain + Azure regions. For more information, see: + https://docs.microsoft.com/azure/aks/enable-host-encryption. + :type enable_encryption_at_host: bool + :param enable_ultra_ssd: Whether to enable UltraSSD. + :type enable_ultra_ssd: bool + :param enable_fips: See `Add a FIPS-enabled node pool + `_ + for more details. + :type enable_fips: bool + :param gpu_instance_profile: GPUInstanceProfile to be used to specify GPU MIG instance profile + for supported GPU VM SKU. Possible values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". + :type gpu_instance_profile: str or + ~azure.mgmt.containerservice.v2021_07_01.models.GPUInstanceProfile + """ + + _validation = { + 'os_disk_size_gb': {'maximum': 2048, 'minimum': 0}, + 'node_image_version': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'power_state': {'readonly': True}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'os_disk_size_gb': {'key': 'osDiskSizeGB', 'type': 'int'}, + 'os_disk_type': {'key': 'osDiskType', 'type': 'str'}, + 'kubelet_disk_type': {'key': 'kubeletDiskType', 'type': 'str'}, + 'vnet_subnet_id': {'key': 'vnetSubnetID', 'type': 'str'}, + 'pod_subnet_id': {'key': 'podSubnetID', 'type': 'str'}, + 'max_pods': {'key': 'maxPods', 'type': 'int'}, + 'os_type': {'key': 'osType', 'type': 'str'}, + 'os_sku': {'key': 'osSKU', 'type': 'str'}, + 'max_count': {'key': 'maxCount', 'type': 'int'}, + 'min_count': {'key': 'minCount', 'type': 'int'}, + 'enable_auto_scaling': {'key': 'enableAutoScaling', 'type': 'bool'}, + 'scale_down_mode': {'key': 'scaleDownMode', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'mode': {'key': 'mode', 'type': 'str'}, + 'orchestrator_version': {'key': 'orchestratorVersion', 'type': 'str'}, + 'node_image_version': {'key': 'nodeImageVersion', 'type': 'str'}, + 'upgrade_settings': {'key': 'upgradeSettings', 'type': 'AgentPoolUpgradeSettings'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'power_state': {'key': 'powerState', 'type': 'PowerState'}, + 'availability_zones': {'key': 'availabilityZones', 'type': '[str]'}, + 'enable_node_public_ip': {'key': 'enableNodePublicIP', 'type': 'bool'}, + 'node_public_ip_prefix_id': {'key': 'nodePublicIPPrefixID', 'type': 'str'}, + 'scale_set_priority': {'key': 'scaleSetPriority', 'type': 'str'}, + 'scale_set_eviction_policy': {'key': 'scaleSetEvictionPolicy', 'type': 'str'}, + 'spot_max_price': {'key': 'spotMaxPrice', 'type': 'float'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'node_labels': {'key': 'nodeLabels', 'type': '{str}'}, + 'node_taints': {'key': 'nodeTaints', 'type': '[str]'}, + 'proximity_placement_group_id': {'key': 'proximityPlacementGroupID', 'type': 'str'}, + 'kubelet_config': {'key': 'kubeletConfig', 'type': 'KubeletConfig'}, + 'linux_os_config': {'key': 'linuxOSConfig', 'type': 'LinuxOSConfig'}, + 'enable_encryption_at_host': {'key': 'enableEncryptionAtHost', 'type': 'bool'}, + 'enable_ultra_ssd': {'key': 'enableUltraSSD', 'type': 'bool'}, + 'enable_fips': {'key': 'enableFIPS', 'type': 'bool'}, + 'gpu_instance_profile': {'key': 'gpuInstanceProfile', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterAgentPoolProfileProperties, self).__init__(**kwargs) + self.count = kwargs.get('count', None) + self.vm_size = kwargs.get('vm_size', None) + self.os_disk_size_gb = kwargs.get('os_disk_size_gb', None) + self.os_disk_type = kwargs.get('os_disk_type', None) + self.kubelet_disk_type = kwargs.get('kubelet_disk_type', None) + self.vnet_subnet_id = kwargs.get('vnet_subnet_id', None) + self.pod_subnet_id = kwargs.get('pod_subnet_id', None) + self.max_pods = kwargs.get('max_pods', None) + self.os_type = kwargs.get('os_type', "Linux") + self.os_sku = kwargs.get('os_sku', None) + self.max_count = kwargs.get('max_count', None) + self.min_count = kwargs.get('min_count', None) + self.enable_auto_scaling = kwargs.get('enable_auto_scaling', None) + self.scale_down_mode = kwargs.get('scale_down_mode', None) + self.type = kwargs.get('type', None) + self.mode = kwargs.get('mode', None) + self.orchestrator_version = kwargs.get('orchestrator_version', None) + self.node_image_version = None + self.upgrade_settings = kwargs.get('upgrade_settings', None) + self.provisioning_state = None + self.power_state = None + self.availability_zones = kwargs.get('availability_zones', None) + self.enable_node_public_ip = kwargs.get('enable_node_public_ip', None) + self.node_public_ip_prefix_id = kwargs.get('node_public_ip_prefix_id', None) + self.scale_set_priority = kwargs.get('scale_set_priority', "Regular") + self.scale_set_eviction_policy = kwargs.get('scale_set_eviction_policy', "Delete") + self.spot_max_price = kwargs.get('spot_max_price', -1) + self.tags = kwargs.get('tags', None) + self.node_labels = kwargs.get('node_labels', None) + self.node_taints = kwargs.get('node_taints', None) + self.proximity_placement_group_id = kwargs.get('proximity_placement_group_id', None) + self.kubelet_config = kwargs.get('kubelet_config', None) + self.linux_os_config = kwargs.get('linux_os_config', None) + self.enable_encryption_at_host = kwargs.get('enable_encryption_at_host', None) + self.enable_ultra_ssd = kwargs.get('enable_ultra_ssd', None) + self.enable_fips = kwargs.get('enable_fips', None) + self.gpu_instance_profile = kwargs.get('gpu_instance_profile', None) + + +class ManagedClusterAgentPoolProfile(ManagedClusterAgentPoolProfileProperties): + """Profile for the container service agent pool. + + 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 count: Number of agents (VMs) to host docker containers. Allowed values must be in the + range of 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for + system pools. The default value is 1. + :type count: int + :param vm_size: VM size availability varies by region. If a node contains insufficient compute + resources (memory, cpu, etc) pods might fail to run correctly. For more details on restricted + VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions. + :type vm_size: str + :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every + machine in the master/agent pool. If you specify 0, it will apply the default osDisk size + according to the vmSize specified. + :type os_disk_size_gb: int + :param os_disk_type: The default is 'Ephemeral' if the VM supports it and has a cache disk + larger than the requested OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed + after creation. For more information see `Ephemeral OS + `_. Possible values + include: "Managed", "Ephemeral". + :type os_disk_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSDiskType + :param kubelet_disk_type: Determines the placement of emptyDir volumes, container runtime data + root, and Kubelet ephemeral storage. Possible values include: "OS", "Temporary". + :type kubelet_disk_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.KubeletDiskType + :param vnet_subnet_id: If this is not specified, a VNET and subnet will be generated and used. + If no podSubnetID is specified, this applies to nodes and pods, otherwise it applies to just + nodes. This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. + :type vnet_subnet_id: str + :param pod_subnet_id: If omitted, pod IPs are statically assigned on the node subnet (see + vnetSubnetID for more details). This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. + :type pod_subnet_id: str + :param max_pods: The maximum number of pods that can run on a node. + :type max_pods: int + :param os_type: The operating system type. The default is Linux. Possible values include: + "Linux", "Windows". Default value: "Linux". + :type os_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSType + :param os_sku: Specifies an OS SKU. This value must not be specified if OSType is Windows. + Possible values include: "Ubuntu", "CBLMariner". + :type os_sku: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSSKU + :param max_count: The maximum number of nodes for auto-scaling. + :type max_count: int + :param min_count: The minimum number of nodes for auto-scaling. + :type min_count: int + :param enable_auto_scaling: Whether to enable auto-scaler. + :type enable_auto_scaling: bool + :param scale_down_mode: This also effects the cluster autoscaler behavior. If not specified, it + defaults to Delete. Possible values include: "Delete", "Deallocate". + :type scale_down_mode: str or ~azure.mgmt.containerservice.v2021_07_01.models.ScaleDownMode + :param type: The type of Agent Pool. Possible values include: "VirtualMachineScaleSets", + "AvailabilitySet". + :type type: str or ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolType + :param mode: A cluster must have at least one 'System' Agent Pool at all times. For additional + information on agent pool restrictions and best practices, see: + https://docs.microsoft.com/azure/aks/use-system-pools. Possible values include: "System", + "User". + :type mode: str or ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolMode + :param orchestrator_version: As a best practice, you should upgrade all node pools in an AKS + cluster to the same Kubernetes version. The node pool version must have the same major version + as the control plane. The node pool minor version must be within two minor versions of the + control plane version. The node pool version cannot be greater than the control plane version. + For more information see `upgrading a node pool + `_. + :type orchestrator_version: str + :ivar node_image_version: The version of node image. + :vartype node_image_version: str + :param upgrade_settings: Settings for upgrading the agentpool. + :type upgrade_settings: + ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolUpgradeSettings + :ivar provisioning_state: The current deployment or provisioning state. + :vartype provisioning_state: str + :ivar power_state: Describes whether the Agent Pool is Running or Stopped. + :vartype power_state: ~azure.mgmt.containerservice.v2021_07_01.models.PowerState + :param availability_zones: The list of Availability zones to use for nodes. This can only be + specified if the AgentPoolType property is 'VirtualMachineScaleSets'. + :type availability_zones: list[str] + :param enable_node_public_ip: Some scenarios may require nodes in a node pool to receive their + own dedicated public IP addresses. A common scenario is for gaming workloads, where a console + needs to make a direct connection to a cloud virtual machine to minimize hops. For more + information see `assigning a public IP per node + `_. + The default is false. + :type enable_node_public_ip: bool + :param node_public_ip_prefix_id: This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}. + :type node_public_ip_prefix_id: str + :param scale_set_priority: The Virtual Machine Scale Set priority. If not specified, the + default is 'Regular'. Possible values include: "Spot", "Regular". Default value: "Regular". + :type scale_set_priority: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ScaleSetPriority + :param scale_set_eviction_policy: This cannot be specified unless the scaleSetPriority is + 'Spot'. If not specified, the default is 'Delete'. Possible values include: "Delete", + "Deallocate". Default value: "Delete". + :type scale_set_eviction_policy: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ScaleSetEvictionPolicy + :param spot_max_price: Possible values are any decimal value greater than zero or -1 which + indicates the willingness to pay any on-demand price. For more details on spot pricing, see + `spot VMs pricing `_. + :type spot_max_price: float + :param tags: A set of tags. The tags to be persisted on the agent pool virtual machine scale + set. + :type tags: dict[str, str] + :param node_labels: The node labels to be persisted across all nodes in agent pool. + :type node_labels: dict[str, str] + :param node_taints: The taints added to new nodes during node pool create and scale. For + example, key=value:NoSchedule. + :type node_taints: list[str] + :param proximity_placement_group_id: The ID for Proximity Placement Group. + :type proximity_placement_group_id: str + :param kubelet_config: The Kubelet configuration on the agent pool nodes. + :type kubelet_config: ~azure.mgmt.containerservice.v2021_07_01.models.KubeletConfig + :param linux_os_config: The OS configuration of Linux agent nodes. + :type linux_os_config: ~azure.mgmt.containerservice.v2021_07_01.models.LinuxOSConfig + :param enable_encryption_at_host: This is only supported on certain VM sizes and in certain + Azure regions. For more information, see: + https://docs.microsoft.com/azure/aks/enable-host-encryption. + :type enable_encryption_at_host: bool + :param enable_ultra_ssd: Whether to enable UltraSSD. + :type enable_ultra_ssd: bool + :param enable_fips: See `Add a FIPS-enabled node pool + `_ + for more details. + :type enable_fips: bool + :param gpu_instance_profile: GPUInstanceProfile to be used to specify GPU MIG instance profile + for supported GPU VM SKU. Possible values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". + :type gpu_instance_profile: str or + ~azure.mgmt.containerservice.v2021_07_01.models.GPUInstanceProfile + :param name: Required. Windows agent pool names must be 6 characters or less. + :type name: str + """ + + _validation = { + 'os_disk_size_gb': {'maximum': 2048, 'minimum': 0}, + 'node_image_version': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'power_state': {'readonly': True}, + 'name': {'required': True, 'pattern': r'^[a-z][a-z0-9]{0,11}$'}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'os_disk_size_gb': {'key': 'osDiskSizeGB', 'type': 'int'}, + 'os_disk_type': {'key': 'osDiskType', 'type': 'str'}, + 'kubelet_disk_type': {'key': 'kubeletDiskType', 'type': 'str'}, + 'vnet_subnet_id': {'key': 'vnetSubnetID', 'type': 'str'}, + 'pod_subnet_id': {'key': 'podSubnetID', 'type': 'str'}, + 'max_pods': {'key': 'maxPods', 'type': 'int'}, + 'os_type': {'key': 'osType', 'type': 'str'}, + 'os_sku': {'key': 'osSKU', 'type': 'str'}, + 'max_count': {'key': 'maxCount', 'type': 'int'}, + 'min_count': {'key': 'minCount', 'type': 'int'}, + 'enable_auto_scaling': {'key': 'enableAutoScaling', 'type': 'bool'}, + 'scale_down_mode': {'key': 'scaleDownMode', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'mode': {'key': 'mode', 'type': 'str'}, + 'orchestrator_version': {'key': 'orchestratorVersion', 'type': 'str'}, + 'node_image_version': {'key': 'nodeImageVersion', 'type': 'str'}, + 'upgrade_settings': {'key': 'upgradeSettings', 'type': 'AgentPoolUpgradeSettings'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'power_state': {'key': 'powerState', 'type': 'PowerState'}, + 'availability_zones': {'key': 'availabilityZones', 'type': '[str]'}, + 'enable_node_public_ip': {'key': 'enableNodePublicIP', 'type': 'bool'}, + 'node_public_ip_prefix_id': {'key': 'nodePublicIPPrefixID', 'type': 'str'}, + 'scale_set_priority': {'key': 'scaleSetPriority', 'type': 'str'}, + 'scale_set_eviction_policy': {'key': 'scaleSetEvictionPolicy', 'type': 'str'}, + 'spot_max_price': {'key': 'spotMaxPrice', 'type': 'float'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'node_labels': {'key': 'nodeLabels', 'type': '{str}'}, + 'node_taints': {'key': 'nodeTaints', 'type': '[str]'}, + 'proximity_placement_group_id': {'key': 'proximityPlacementGroupID', 'type': 'str'}, + 'kubelet_config': {'key': 'kubeletConfig', 'type': 'KubeletConfig'}, + 'linux_os_config': {'key': 'linuxOSConfig', 'type': 'LinuxOSConfig'}, + 'enable_encryption_at_host': {'key': 'enableEncryptionAtHost', 'type': 'bool'}, + 'enable_ultra_ssd': {'key': 'enableUltraSSD', 'type': 'bool'}, + 'enable_fips': {'key': 'enableFIPS', 'type': 'bool'}, + 'gpu_instance_profile': {'key': 'gpuInstanceProfile', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterAgentPoolProfile, self).__init__(**kwargs) + self.name = kwargs['name'] + + +class ManagedClusterAPIServerAccessProfile(msrest.serialization.Model): + """Access profile for managed cluster API server. + + :param authorized_ip_ranges: IP ranges are specified in CIDR format, e.g. 137.117.106.88/29. + This feature is not compatible with clusters that use Public IP Per Node, or clusters that are + using a Basic Load Balancer. For more information see `API server authorized IP ranges + `_. + :type authorized_ip_ranges: list[str] + :param enable_private_cluster: For more details, see `Creating a private AKS cluster + `_. + :type enable_private_cluster: bool + :param private_dns_zone: The default is System. For more details see `configure private DNS + zone `_. + Allowed values are 'system' and 'none'. + :type private_dns_zone: str + :param enable_private_cluster_public_fqdn: Whether to create additional public FQDN for private + cluster or not. + :type enable_private_cluster_public_fqdn: bool + """ + + _attribute_map = { + 'authorized_ip_ranges': {'key': 'authorizedIPRanges', 'type': '[str]'}, + 'enable_private_cluster': {'key': 'enablePrivateCluster', 'type': 'bool'}, + 'private_dns_zone': {'key': 'privateDNSZone', 'type': 'str'}, + 'enable_private_cluster_public_fqdn': {'key': 'enablePrivateClusterPublicFQDN', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterAPIServerAccessProfile, self).__init__(**kwargs) + self.authorized_ip_ranges = kwargs.get('authorized_ip_ranges', None) + self.enable_private_cluster = kwargs.get('enable_private_cluster', None) + self.private_dns_zone = kwargs.get('private_dns_zone', None) + self.enable_private_cluster_public_fqdn = kwargs.get('enable_private_cluster_public_fqdn', None) + + +class ManagedClusterAutoUpgradeProfile(msrest.serialization.Model): + """Auto upgrade profile for a managed cluster. + + :param upgrade_channel: For more information see `setting the AKS cluster auto-upgrade channel + `_. Possible + values include: "rapid", "stable", "patch", "node-image", "none". + :type upgrade_channel: str or ~azure.mgmt.containerservice.v2021_07_01.models.UpgradeChannel + """ + + _attribute_map = { + 'upgrade_channel': {'key': 'upgradeChannel', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterAutoUpgradeProfile, self).__init__(**kwargs) + self.upgrade_channel = kwargs.get('upgrade_channel', None) + + +class ManagedClusterHTTPProxyConfig(msrest.serialization.Model): + """Cluster HTTP proxy configuration. + + :param http_proxy: The HTTP proxy server endpoint to use. + :type http_proxy: str + :param https_proxy: The HTTPS proxy server endpoint to use. + :type https_proxy: str + :param no_proxy: The endpoints that should not go through proxy. + :type no_proxy: list[str] + :param trusted_ca: Alternative CA cert to use for connecting to proxy servers. + :type trusted_ca: str + """ + + _attribute_map = { + 'http_proxy': {'key': 'httpProxy', 'type': 'str'}, + 'https_proxy': {'key': 'httpsProxy', 'type': 'str'}, + 'no_proxy': {'key': 'noProxy', 'type': '[str]'}, + 'trusted_ca': {'key': 'trustedCa', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterHTTPProxyConfig, self).__init__(**kwargs) + self.http_proxy = kwargs.get('http_proxy', None) + self.https_proxy = kwargs.get('https_proxy', None) + self.no_proxy = kwargs.get('no_proxy', None) + self.trusted_ca = kwargs.get('trusted_ca', None) + + +class ManagedClusterIdentity(msrest.serialization.Model): + """Identity for the managed cluster. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar principal_id: The principal id of the system assigned identity which is used by master + components. + :vartype principal_id: str + :ivar tenant_id: The tenant id of the system assigned identity which is used by master + components. + :vartype tenant_id: str + :param type: For more information see `use managed identities in AKS + `_. Possible values include: + "SystemAssigned", "UserAssigned", "None". + :type type: str or ~azure.mgmt.containerservice.v2021_07_01.models.ResourceIdentityType + :param user_assigned_identities: The keys must be ARM resource IDs in the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + :type user_assigned_identities: dict[str, + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedServiceIdentityUserAssignedIdentitiesValue] + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + } + + _attribute_map = { + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'user_assigned_identities': {'key': 'userAssignedIdentities', 'type': '{ManagedServiceIdentityUserAssignedIdentitiesValue}'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterIdentity, self).__init__(**kwargs) + self.principal_id = None + self.tenant_id = None + self.type = kwargs.get('type', None) + self.user_assigned_identities = kwargs.get('user_assigned_identities', None) + + +class ManagedClusterListResult(msrest.serialization.Model): + """The response from the List Managed Clusters operation. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param value: The list of managed clusters. + :type value: list[~azure.mgmt.containerservice.v2021_07_01.models.ManagedCluster] + :ivar next_link: The URL to get the next set of managed cluster results. + :vartype next_link: str + """ + + _validation = { + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ManagedCluster]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterListResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + self.next_link = None + + +class ManagedClusterLoadBalancerProfile(msrest.serialization.Model): + """Profile of the managed cluster load balancer. + + :param managed_outbound_i_ps: Desired managed outbound IPs for the cluster load balancer. + :type managed_outbound_i_ps: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterLoadBalancerProfileManagedOutboundIPs + :param outbound_ip_prefixes: Desired outbound IP Prefix resources for the cluster load + balancer. + :type outbound_ip_prefixes: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterLoadBalancerProfileOutboundIPPrefixes + :param outbound_i_ps: Desired outbound IP resources for the cluster load balancer. + :type outbound_i_ps: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterLoadBalancerProfileOutboundIPs + :param effective_outbound_i_ps: The effective outbound IP resources of the cluster load + balancer. + :type effective_outbound_i_ps: + list[~azure.mgmt.containerservice.v2021_07_01.models.ResourceReference] + :param allocated_outbound_ports: The desired number of allocated SNAT ports per VM. Allowed + values are in the range of 0 to 64000 (inclusive). The default value is 0 which results in + Azure dynamically allocating ports. + :type allocated_outbound_ports: int + :param idle_timeout_in_minutes: Desired outbound flow idle timeout in minutes. Allowed values + are in the range of 4 to 120 (inclusive). The default value is 30 minutes. + :type idle_timeout_in_minutes: int + """ + + _validation = { + 'allocated_outbound_ports': {'maximum': 64000, 'minimum': 0}, + 'idle_timeout_in_minutes': {'maximum': 120, 'minimum': 4}, + } + + _attribute_map = { + 'managed_outbound_i_ps': {'key': 'managedOutboundIPs', 'type': 'ManagedClusterLoadBalancerProfileManagedOutboundIPs'}, + 'outbound_ip_prefixes': {'key': 'outboundIPPrefixes', 'type': 'ManagedClusterLoadBalancerProfileOutboundIPPrefixes'}, + 'outbound_i_ps': {'key': 'outboundIPs', 'type': 'ManagedClusterLoadBalancerProfileOutboundIPs'}, + 'effective_outbound_i_ps': {'key': 'effectiveOutboundIPs', 'type': '[ResourceReference]'}, + 'allocated_outbound_ports': {'key': 'allocatedOutboundPorts', 'type': 'int'}, + 'idle_timeout_in_minutes': {'key': 'idleTimeoutInMinutes', 'type': 'int'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterLoadBalancerProfile, self).__init__(**kwargs) + self.managed_outbound_i_ps = kwargs.get('managed_outbound_i_ps', None) + self.outbound_ip_prefixes = kwargs.get('outbound_ip_prefixes', None) + self.outbound_i_ps = kwargs.get('outbound_i_ps', None) + self.effective_outbound_i_ps = kwargs.get('effective_outbound_i_ps', None) + self.allocated_outbound_ports = kwargs.get('allocated_outbound_ports', 0) + self.idle_timeout_in_minutes = kwargs.get('idle_timeout_in_minutes', 30) + + +class ManagedClusterLoadBalancerProfileManagedOutboundIPs(msrest.serialization.Model): + """Desired managed outbound IPs for the cluster load balancer. + + :param count: The desired number of outbound IPs created/managed by Azure for the cluster load + balancer. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1. + :type count: int + """ + + _validation = { + 'count': {'maximum': 100, 'minimum': 1}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterLoadBalancerProfileManagedOutboundIPs, self).__init__(**kwargs) + self.count = kwargs.get('count', 1) + + +class ManagedClusterLoadBalancerProfileOutboundIPPrefixes(msrest.serialization.Model): + """Desired outbound IP Prefix resources for the cluster load balancer. + + :param public_ip_prefixes: A list of public IP prefix resources. + :type public_ip_prefixes: + list[~azure.mgmt.containerservice.v2021_07_01.models.ResourceReference] + """ + + _attribute_map = { + 'public_ip_prefixes': {'key': 'publicIPPrefixes', 'type': '[ResourceReference]'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterLoadBalancerProfileOutboundIPPrefixes, self).__init__(**kwargs) + self.public_ip_prefixes = kwargs.get('public_ip_prefixes', None) + + +class ManagedClusterLoadBalancerProfileOutboundIPs(msrest.serialization.Model): + """Desired outbound IP resources for the cluster load balancer. + + :param public_i_ps: A list of public IP resources. + :type public_i_ps: list[~azure.mgmt.containerservice.v2021_07_01.models.ResourceReference] + """ + + _attribute_map = { + 'public_i_ps': {'key': 'publicIPs', 'type': '[ResourceReference]'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterLoadBalancerProfileOutboundIPs, self).__init__(**kwargs) + self.public_i_ps = kwargs.get('public_i_ps', None) + + +class ManagedClusterManagedOutboundIPProfile(msrest.serialization.Model): + """Profile of the managed outbound IP resources of the managed cluster. + + :param count: The desired number of outbound IPs created/managed by Azure. Allowed values must + be in the range of 1 to 16 (inclusive). The default value is 1. + :type count: int + """ + + _validation = { + 'count': {'maximum': 16, 'minimum': 1}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterManagedOutboundIPProfile, self).__init__(**kwargs) + self.count = kwargs.get('count', 1) + + +class ManagedClusterNATGatewayProfile(msrest.serialization.Model): + """Profile of the managed cluster NAT gateway. + + :param managed_outbound_ip_profile: Profile of the managed outbound IP resources of the cluster + NAT gateway. + :type managed_outbound_ip_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterManagedOutboundIPProfile + :param effective_outbound_i_ps: The effective outbound IP resources of the cluster NAT gateway. + :type effective_outbound_i_ps: + list[~azure.mgmt.containerservice.v2021_07_01.models.ResourceReference] + :param idle_timeout_in_minutes: Desired outbound flow idle timeout in minutes. Allowed values + are in the range of 4 to 120 (inclusive). The default value is 4 minutes. + :type idle_timeout_in_minutes: int + """ + + _validation = { + 'idle_timeout_in_minutes': {'maximum': 120, 'minimum': 4}, + } + + _attribute_map = { + 'managed_outbound_ip_profile': {'key': 'managedOutboundIPProfile', 'type': 'ManagedClusterManagedOutboundIPProfile'}, + 'effective_outbound_i_ps': {'key': 'effectiveOutboundIPs', 'type': '[ResourceReference]'}, + 'idle_timeout_in_minutes': {'key': 'idleTimeoutInMinutes', 'type': 'int'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterNATGatewayProfile, self).__init__(**kwargs) + self.managed_outbound_ip_profile = kwargs.get('managed_outbound_ip_profile', None) + self.effective_outbound_i_ps = kwargs.get('effective_outbound_i_ps', None) + self.idle_timeout_in_minutes = kwargs.get('idle_timeout_in_minutes', 4) + + +class ManagedClusterPodIdentity(msrest.serialization.Model): + """Details about the pod identity assigned to the Managed Cluster. + + 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 name: Required. The name of the pod identity. + :type name: str + :param namespace: Required. The namespace of the pod identity. + :type namespace: str + :param binding_selector: The binding selector to use for the AzureIdentityBinding resource. + :type binding_selector: str + :param identity: Required. The user assigned identity details. + :type identity: ~azure.mgmt.containerservice.v2021_07_01.models.UserAssignedIdentity + :ivar provisioning_state: The current provisioning state of the pod identity. Possible values + include: "Assigned", "Updating", "Deleting", "Failed". + :vartype provisioning_state: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPodIdentityProvisioningState + :ivar provisioning_info: + :vartype provisioning_info: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPodIdentityProvisioningInfo + """ + + _validation = { + 'name': {'required': True}, + 'namespace': {'required': True}, + 'identity': {'required': True}, + 'provisioning_state': {'readonly': True}, + 'provisioning_info': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'namespace': {'key': 'namespace', 'type': 'str'}, + 'binding_selector': {'key': 'bindingSelector', 'type': 'str'}, + 'identity': {'key': 'identity', 'type': 'UserAssignedIdentity'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'provisioning_info': {'key': 'provisioningInfo', 'type': 'ManagedClusterPodIdentityProvisioningInfo'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterPodIdentity, self).__init__(**kwargs) + self.name = kwargs['name'] + self.namespace = kwargs['namespace'] + self.binding_selector = kwargs.get('binding_selector', None) + self.identity = kwargs['identity'] + self.provisioning_state = None + self.provisioning_info = None + + +class ManagedClusterPodIdentityException(msrest.serialization.Model): + """See `disable AAD Pod Identity for a specific Pod/Application `_ for more details. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the pod identity exception. + :type name: str + :param namespace: Required. The namespace of the pod identity exception. + :type namespace: str + :param pod_labels: Required. The pod labels to match. + :type pod_labels: dict[str, str] + """ + + _validation = { + 'name': {'required': True}, + 'namespace': {'required': True}, + 'pod_labels': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'namespace': {'key': 'namespace', 'type': 'str'}, + 'pod_labels': {'key': 'podLabels', 'type': '{str}'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterPodIdentityException, self).__init__(**kwargs) + self.name = kwargs['name'] + self.namespace = kwargs['namespace'] + self.pod_labels = kwargs['pod_labels'] + + +class ManagedClusterPodIdentityProfile(msrest.serialization.Model): + """See `use AAD pod identity `_ for more details on pod identity integration. + + :param enabled: Whether the pod identity addon is enabled. + :type enabled: bool + :param allow_network_plugin_kubenet: Running in Kubenet is disabled by default due to the + security related nature of AAD Pod Identity and the risks of IP spoofing. See `using Kubenet + network plugin with AAD Pod Identity + `_ + for more information. + :type allow_network_plugin_kubenet: bool + :param user_assigned_identities: The pod identities to use in the cluster. + :type user_assigned_identities: + list[~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPodIdentity] + :param user_assigned_identity_exceptions: The pod identity exceptions to allow. + :type user_assigned_identity_exceptions: + list[~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPodIdentityException] + """ + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'allow_network_plugin_kubenet': {'key': 'allowNetworkPluginKubenet', 'type': 'bool'}, + 'user_assigned_identities': {'key': 'userAssignedIdentities', 'type': '[ManagedClusterPodIdentity]'}, + 'user_assigned_identity_exceptions': {'key': 'userAssignedIdentityExceptions', 'type': '[ManagedClusterPodIdentityException]'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterPodIdentityProfile, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.allow_network_plugin_kubenet = kwargs.get('allow_network_plugin_kubenet', None) + self.user_assigned_identities = kwargs.get('user_assigned_identities', None) + self.user_assigned_identity_exceptions = kwargs.get('user_assigned_identity_exceptions', None) + + +class ManagedClusterPodIdentityProvisioningError(msrest.serialization.Model): + """An error response from the pod identity provisioning. + + :param error: Details about the error. + :type error: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPodIdentityProvisioningErrorBody + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ManagedClusterPodIdentityProvisioningErrorBody'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterPodIdentityProvisioningError, self).__init__(**kwargs) + self.error = kwargs.get('error', None) + + +class ManagedClusterPodIdentityProvisioningErrorBody(msrest.serialization.Model): + """An error response from the pod identity provisioning. + + :param code: An identifier for the error. Codes are invariant and are intended to be consumed + programmatically. + :type code: str + :param message: A message describing the error, intended to be suitable for display in a user + interface. + :type message: str + :param target: The target of the particular error. For example, the name of the property in + error. + :type target: str + :param details: A list of additional details about the error. + :type details: + list[~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPodIdentityProvisioningErrorBody] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[ManagedClusterPodIdentityProvisioningErrorBody]'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterPodIdentityProvisioningErrorBody, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.target = kwargs.get('target', None) + self.details = kwargs.get('details', None) + + +class ManagedClusterPodIdentityProvisioningInfo(msrest.serialization.Model): + """ManagedClusterPodIdentityProvisioningInfo. + + :param error: Pod identity assignment error (if any). + :type error: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPodIdentityProvisioningError + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ManagedClusterPodIdentityProvisioningError'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterPodIdentityProvisioningInfo, self).__init__(**kwargs) + self.error = kwargs.get('error', None) + + +class ManagedClusterPoolUpgradeProfile(msrest.serialization.Model): + """The list of available upgrade versions. + + All required parameters must be populated in order to send to Azure. + + :param kubernetes_version: Required. The Kubernetes version (major.minor.patch). + :type kubernetes_version: str + :param name: The Agent Pool name. + :type name: str + :param os_type: Required. The operating system type. The default is Linux. Possible values + include: "Linux", "Windows". Default value: "Linux". + :type os_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSType + :param upgrades: List of orchestrator types and versions available for upgrade. + :type upgrades: + list[~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPoolUpgradeProfileUpgradesItem] + """ + + _validation = { + 'kubernetes_version': {'required': True}, + 'os_type': {'required': True}, + } + + _attribute_map = { + 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'os_type': {'key': 'osType', 'type': 'str'}, + 'upgrades': {'key': 'upgrades', 'type': '[ManagedClusterPoolUpgradeProfileUpgradesItem]'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterPoolUpgradeProfile, self).__init__(**kwargs) + self.kubernetes_version = kwargs['kubernetes_version'] + self.name = kwargs.get('name', None) + self.os_type = kwargs.get('os_type', "Linux") + self.upgrades = kwargs.get('upgrades', None) + + +class ManagedClusterPoolUpgradeProfileUpgradesItem(msrest.serialization.Model): + """ManagedClusterPoolUpgradeProfileUpgradesItem. + + :param kubernetes_version: The Kubernetes version (major.minor.patch). + :type kubernetes_version: str + :param is_preview: Whether the Kubernetes version is currently in preview. + :type is_preview: bool + """ + + _attribute_map = { + 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterPoolUpgradeProfileUpgradesItem, self).__init__(**kwargs) + self.kubernetes_version = kwargs.get('kubernetes_version', None) + self.is_preview = kwargs.get('is_preview', None) + + +class ManagedClusterPropertiesAutoScalerProfile(msrest.serialization.Model): + """Parameters to be applied to the cluster-autoscaler when enabled. + + :param balance_similar_node_groups: Valid values are 'true' and 'false'. + :type balance_similar_node_groups: str + :param expander: If not specified, the default is 'random'. See `expanders + `_ + for more information. Possible values include: "least-waste", "most-pods", "priority", + "random". + :type expander: str or ~azure.mgmt.containerservice.v2021_07_01.models.Expander + :param max_empty_bulk_delete: The default is 10. + :type max_empty_bulk_delete: str + :param max_graceful_termination_sec: The default is 600. + :type max_graceful_termination_sec: str + :param max_node_provision_time: The default is '15m'. Values must be an integer followed by an + 'm'. No unit of time other than minutes (m) is supported. + :type max_node_provision_time: str + :param max_total_unready_percentage: The default is 45. The maximum is 100 and the minimum is + 0. + :type max_total_unready_percentage: str + :param new_pod_scale_up_delay: For scenarios like burst/batch scale where you don't want CA to + act before the kubernetes scheduler could schedule all the pods, you can tell CA to ignore + unscheduled pods before they're a certain age. The default is '0s'. Values must be an integer + followed by a unit ('s' for seconds, 'm' for minutes, 'h' for hours, etc). + :type new_pod_scale_up_delay: str + :param ok_total_unready_count: This must be an integer. The default is 3. + :type ok_total_unready_count: str + :param scan_interval: The default is '10'. Values must be an integer number of seconds. + :type scan_interval: str + :param scale_down_delay_after_add: The default is '10m'. Values must be an integer followed by + an 'm'. No unit of time other than minutes (m) is supported. + :type scale_down_delay_after_add: str + :param scale_down_delay_after_delete: The default is the scan-interval. Values must be an + integer followed by an 'm'. No unit of time other than minutes (m) is supported. + :type scale_down_delay_after_delete: str + :param scale_down_delay_after_failure: The default is '3m'. Values must be an integer followed + by an 'm'. No unit of time other than minutes (m) is supported. + :type scale_down_delay_after_failure: str + :param scale_down_unneeded_time: The default is '10m'. Values must be an integer followed by an + 'm'. No unit of time other than minutes (m) is supported. + :type scale_down_unneeded_time: str + :param scale_down_unready_time: The default is '20m'. Values must be an integer followed by an + 'm'. No unit of time other than minutes (m) is supported. + :type scale_down_unready_time: str + :param scale_down_utilization_threshold: The default is '0.5'. + :type scale_down_utilization_threshold: str + :param skip_nodes_with_local_storage: The default is true. + :type skip_nodes_with_local_storage: str + :param skip_nodes_with_system_pods: The default is true. + :type skip_nodes_with_system_pods: str + """ + + _attribute_map = { + 'balance_similar_node_groups': {'key': 'balance-similar-node-groups', 'type': 'str'}, + 'expander': {'key': 'expander', 'type': 'str'}, + 'max_empty_bulk_delete': {'key': 'max-empty-bulk-delete', 'type': 'str'}, + 'max_graceful_termination_sec': {'key': 'max-graceful-termination-sec', 'type': 'str'}, + 'max_node_provision_time': {'key': 'max-node-provision-time', 'type': 'str'}, + 'max_total_unready_percentage': {'key': 'max-total-unready-percentage', 'type': 'str'}, + 'new_pod_scale_up_delay': {'key': 'new-pod-scale-up-delay', 'type': 'str'}, + 'ok_total_unready_count': {'key': 'ok-total-unready-count', 'type': 'str'}, + 'scan_interval': {'key': 'scan-interval', 'type': 'str'}, + 'scale_down_delay_after_add': {'key': 'scale-down-delay-after-add', 'type': 'str'}, + 'scale_down_delay_after_delete': {'key': 'scale-down-delay-after-delete', 'type': 'str'}, + 'scale_down_delay_after_failure': {'key': 'scale-down-delay-after-failure', 'type': 'str'}, + 'scale_down_unneeded_time': {'key': 'scale-down-unneeded-time', 'type': 'str'}, + 'scale_down_unready_time': {'key': 'scale-down-unready-time', 'type': 'str'}, + 'scale_down_utilization_threshold': {'key': 'scale-down-utilization-threshold', 'type': 'str'}, + 'skip_nodes_with_local_storage': {'key': 'skip-nodes-with-local-storage', 'type': 'str'}, + 'skip_nodes_with_system_pods': {'key': 'skip-nodes-with-system-pods', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterPropertiesAutoScalerProfile, self).__init__(**kwargs) + self.balance_similar_node_groups = kwargs.get('balance_similar_node_groups', None) + self.expander = kwargs.get('expander', None) + self.max_empty_bulk_delete = kwargs.get('max_empty_bulk_delete', None) + self.max_graceful_termination_sec = kwargs.get('max_graceful_termination_sec', None) + self.max_node_provision_time = kwargs.get('max_node_provision_time', None) + self.max_total_unready_percentage = kwargs.get('max_total_unready_percentage', None) + self.new_pod_scale_up_delay = kwargs.get('new_pod_scale_up_delay', None) + self.ok_total_unready_count = kwargs.get('ok_total_unready_count', None) + self.scan_interval = kwargs.get('scan_interval', None) + self.scale_down_delay_after_add = kwargs.get('scale_down_delay_after_add', None) + self.scale_down_delay_after_delete = kwargs.get('scale_down_delay_after_delete', None) + self.scale_down_delay_after_failure = kwargs.get('scale_down_delay_after_failure', None) + self.scale_down_unneeded_time = kwargs.get('scale_down_unneeded_time', None) + self.scale_down_unready_time = kwargs.get('scale_down_unready_time', None) + self.scale_down_utilization_threshold = kwargs.get('scale_down_utilization_threshold', None) + self.skip_nodes_with_local_storage = kwargs.get('skip_nodes_with_local_storage', None) + self.skip_nodes_with_system_pods = kwargs.get('skip_nodes_with_system_pods', None) + + +class ManagedClusterSecurityProfile(msrest.serialization.Model): + """Security profile for the container service cluster. + + :param azure_defender: Azure Defender settings for the security profile. + :type azure_defender: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterSecurityProfileAzureDefender + """ + + _attribute_map = { + 'azure_defender': {'key': 'azureDefender', 'type': 'ManagedClusterSecurityProfileAzureDefender'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterSecurityProfile, self).__init__(**kwargs) + self.azure_defender = kwargs.get('azure_defender', None) + + +class ManagedClusterSecurityProfileAzureDefender(msrest.serialization.Model): + """Azure Defender settings for the security profile. + + :param enabled: Whether to enable Azure Defender. + :type enabled: bool + :param log_analytics_workspace_resource_id: Resource ID of the Log Analytics workspace to be + associated with Azure Defender. When Azure Defender is enabled, this field is required and + must be a valid workspace resource ID. When Azure Defender is disabled, leave the field empty. + :type log_analytics_workspace_resource_id: str + """ + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'log_analytics_workspace_resource_id': {'key': 'logAnalyticsWorkspaceResourceId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterSecurityProfileAzureDefender, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.log_analytics_workspace_resource_id = kwargs.get('log_analytics_workspace_resource_id', None) + + +class ManagedClusterServicePrincipalProfile(msrest.serialization.Model): + """Information about a service principal identity for the cluster to use for manipulating Azure APIs. + + All required parameters must be populated in order to send to Azure. + + :param client_id: Required. The ID for the service principal. + :type client_id: str + :param secret: The secret password associated with the service principal in plain text. + :type secret: str + """ + + _validation = { + 'client_id': {'required': True}, + } + + _attribute_map = { + 'client_id': {'key': 'clientId', 'type': 'str'}, + 'secret': {'key': 'secret', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterServicePrincipalProfile, self).__init__(**kwargs) + self.client_id = kwargs['client_id'] + self.secret = kwargs.get('secret', None) + + +class ManagedClusterSKU(msrest.serialization.Model): + """The SKU of a Managed Cluster. + + :param name: The name of a managed cluster SKU. Possible values include: "Basic". + :type name: str or ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterSKUName + :param tier: If not specified, the default is 'Free'. See `uptime SLA + `_ for more details. Possible values include: + "Paid", "Free". + :type tier: str or ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterSKUTier + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'tier': {'key': 'tier', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterSKU, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.tier = kwargs.get('tier', None) + + +class ManagedClusterUpgradeProfile(msrest.serialization.Model): + """The list of available upgrades for compute pools. + + 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 ID of the upgrade profile. + :vartype id: str + :ivar name: The name of the upgrade profile. + :vartype name: str + :ivar type: The type of the upgrade profile. + :vartype type: str + :param control_plane_profile: Required. The list of available upgrade versions for the control + plane. + :type control_plane_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPoolUpgradeProfile + :param agent_pool_profiles: Required. The list of available upgrade versions for agent pools. + :type agent_pool_profiles: + list[~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPoolUpgradeProfile] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'control_plane_profile': {'required': True}, + 'agent_pool_profiles': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'control_plane_profile': {'key': 'properties.controlPlaneProfile', 'type': 'ManagedClusterPoolUpgradeProfile'}, + 'agent_pool_profiles': {'key': 'properties.agentPoolProfiles', 'type': '[ManagedClusterPoolUpgradeProfile]'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterUpgradeProfile, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.control_plane_profile = kwargs['control_plane_profile'] + self.agent_pool_profiles = kwargs['agent_pool_profiles'] + + +class ManagedClusterWindowsProfile(msrest.serialization.Model): + """Profile for Windows VMs in the managed cluster. + + All required parameters must be populated in order to send to Azure. + + :param admin_username: Required. Specifies the name of the administrator account. + :code:`
`:code:`
` **Restriction:** Cannot end in "." :code:`
`:code:`
` + **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", + "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", + "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", + "sys", "test2", "test3", "user4", "user5". :code:`
`:code:`
` **Minimum-length:** 1 + character :code:`
`:code:`
` **Max-length:** 20 characters. + :type admin_username: str + :param admin_password: Specifies the password of the administrator account. + :code:`
`:code:`
` **Minimum-length:** 8 characters :code:`
`:code:`
` + **Max-length:** 123 characters :code:`
`:code:`
` **Complexity requirements:** 3 out of 4 + conditions below need to be fulfilled :code:`
` Has lower characters :code:`
`Has upper + characters :code:`
` Has a digit :code:`
` Has a special character (Regex match [\W_]) + :code:`
`:code:`
` **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", + "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!". + :type admin_password: str + :param license_type: The license type to use for Windows VMs. See `Azure Hybrid User Benefits + `_ for more details. Possible values + include: "None", "Windows_Server". + :type license_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.LicenseType + :param enable_csi_proxy: For more details on CSI proxy, see the `CSI proxy GitHub repo + `_. + :type enable_csi_proxy: bool + """ + + _validation = { + 'admin_username': {'required': True}, + } + + _attribute_map = { + 'admin_username': {'key': 'adminUsername', 'type': 'str'}, + 'admin_password': {'key': 'adminPassword', 'type': 'str'}, + 'license_type': {'key': 'licenseType', 'type': 'str'}, + 'enable_csi_proxy': {'key': 'enableCSIProxy', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedClusterWindowsProfile, self).__init__(**kwargs) + self.admin_username = kwargs['admin_username'] + self.admin_password = kwargs.get('admin_password', None) + self.license_type = kwargs.get('license_type', None) + self.enable_csi_proxy = kwargs.get('enable_csi_proxy', None) + + +class ManagedServiceIdentityUserAssignedIdentitiesValue(msrest.serialization.Model): + """ManagedServiceIdentityUserAssignedIdentitiesValue. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar principal_id: The principal id of user assigned identity. + :vartype principal_id: str + :ivar client_id: The client id of user assigned identity. + :vartype client_id: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'client_id': {'readonly': True}, + } + + _attribute_map = { + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'client_id': {'key': 'clientId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedServiceIdentityUserAssignedIdentitiesValue, self).__init__(**kwargs) + self.principal_id = None + self.client_id = None + + +class OperationListResult(msrest.serialization.Model): + """The List Operation response. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: The list of operations. + :vartype value: list[~azure.mgmt.containerservice.v2021_07_01.models.OperationValue] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[OperationValue]'}, + } + + def __init__( + self, + **kwargs + ): + super(OperationListResult, self).__init__(**kwargs) + self.value = None + + +class OperationValue(msrest.serialization.Model): + """Describes the properties of a Operation value. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar origin: The origin of the operation. + :vartype origin: str + :ivar name: The name of the operation. + :vartype name: str + :ivar operation: The display name of the operation. + :vartype operation: str + :ivar resource: The display name of the resource the operation applies to. + :vartype resource: str + :ivar description: The description of the operation. + :vartype description: str + :ivar provider: The resource provider for the operation. + :vartype provider: str + """ + + _validation = { + 'origin': {'readonly': True}, + 'name': {'readonly': True}, + 'operation': {'readonly': True}, + 'resource': {'readonly': True}, + 'description': {'readonly': True}, + 'provider': {'readonly': True}, + } + + _attribute_map = { + 'origin': {'key': 'origin', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'operation': {'key': 'display.operation', 'type': 'str'}, + 'resource': {'key': 'display.resource', 'type': 'str'}, + 'description': {'key': 'display.description', 'type': 'str'}, + 'provider': {'key': 'display.provider', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(OperationValue, self).__init__(**kwargs) + self.origin = None + self.name = None + self.operation = None + self.resource = None + self.description = None + self.provider = None + + +class OSOptionProfile(msrest.serialization.Model): + """The OS option profile. + + 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 ID of the OS option resource. + :vartype id: str + :ivar name: The name of the OS option resource. + :vartype name: str + :ivar type: The type of the OS option resource. + :vartype type: str + :param os_option_property_list: Required. The list of OS options. + :type os_option_property_list: + list[~azure.mgmt.containerservice.v2021_07_01.models.OSOptionProperty] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'os_option_property_list': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'os_option_property_list': {'key': 'properties.osOptionPropertyList', 'type': '[OSOptionProperty]'}, + } + + def __init__( + self, + **kwargs + ): + super(OSOptionProfile, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.os_option_property_list = kwargs['os_option_property_list'] + + +class OSOptionProperty(msrest.serialization.Model): + """OS option property. + + All required parameters must be populated in order to send to Azure. + + :param os_type: Required. The OS type. + :type os_type: str + :param enable_fips_image: Required. Whether the image is FIPS-enabled. + :type enable_fips_image: bool + """ + + _validation = { + 'os_type': {'required': True}, + 'enable_fips_image': {'required': True}, + } + + _attribute_map = { + 'os_type': {'key': 'os-type', 'type': 'str'}, + 'enable_fips_image': {'key': 'enable-fips-image', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(OSOptionProperty, self).__init__(**kwargs) + self.os_type = kwargs['os_type'] + self.enable_fips_image = kwargs['enable_fips_image'] + + +class OutboundEnvironmentEndpoint(msrest.serialization.Model): + """Egress endpoints which AKS agent nodes connect to for common purpose. + + :param category: The category of endpoints accessed by the AKS agent node, e.g. + azure-resource-management, apiserver, etc. + :type category: str + :param endpoints: The endpoints that AKS agent nodes connect to. + :type endpoints: list[~azure.mgmt.containerservice.v2021_07_01.models.EndpointDependency] + """ + + _attribute_map = { + 'category': {'key': 'category', 'type': 'str'}, + 'endpoints': {'key': 'endpoints', 'type': '[EndpointDependency]'}, + } + + def __init__( + self, + **kwargs + ): + super(OutboundEnvironmentEndpoint, self).__init__(**kwargs) + self.category = kwargs.get('category', None) + self.endpoints = kwargs.get('endpoints', None) + + +class OutboundEnvironmentEndpointCollection(msrest.serialization.Model): + """Collection of OutboundEnvironmentEndpoint. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.containerservice.v2021_07_01.models.OutboundEnvironmentEndpoint] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[OutboundEnvironmentEndpoint]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(OutboundEnvironmentEndpointCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class PowerState(msrest.serialization.Model): + """Describes the Power State of the cluster. + + :param code: Tells whether the cluster is Running or Stopped. Possible values include: + "Running", "Stopped". + :type code: str or ~azure.mgmt.containerservice.v2021_07_01.models.Code + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PowerState, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + + +class PrivateEndpoint(msrest.serialization.Model): + """Private endpoint which a connection belongs to. + + :param id: The resource ID of the private endpoint. + :type id: str + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateEndpoint, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + + +class PrivateEndpointConnection(msrest.serialization.Model): + """A private endpoint connection. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The ID of the private endpoint connection. + :vartype id: str + :ivar name: The name of the private endpoint connection. + :vartype name: str + :ivar type: The resource type. + :vartype type: str + :ivar provisioning_state: The current provisioning state. Possible values include: "Succeeded", + "Creating", "Deleting", "Failed". + :vartype provisioning_state: str or + ~azure.mgmt.containerservice.v2021_07_01.models.PrivateEndpointConnectionProvisioningState + :param private_endpoint: The resource of private endpoint. + :type private_endpoint: ~azure.mgmt.containerservice.v2021_07_01.models.PrivateEndpoint + :param private_link_service_connection_state: A collection of information about the state of + the connection between service consumer and provider. + :type private_link_service_connection_state: + ~azure.mgmt.containerservice.v2021_07_01.models.PrivateLinkServiceConnectionState + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'private_endpoint': {'key': 'properties.privateEndpoint', 'type': 'PrivateEndpoint'}, + 'private_link_service_connection_state': {'key': 'properties.privateLinkServiceConnectionState', 'type': 'PrivateLinkServiceConnectionState'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateEndpointConnection, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.provisioning_state = None + self.private_endpoint = kwargs.get('private_endpoint', None) + self.private_link_service_connection_state = kwargs.get('private_link_service_connection_state', None) + + +class PrivateEndpointConnectionListResult(msrest.serialization.Model): + """A list of private endpoint connections. + + :param value: The collection value. + :type value: list[~azure.mgmt.containerservice.v2021_07_01.models.PrivateEndpointConnection] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PrivateEndpointConnection]'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateEndpointConnectionListResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + + +class PrivateLinkResource(msrest.serialization.Model): + """A private link resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param id: The ID of the private link resource. + :type id: str + :param name: The name of the private link resource. + :type name: str + :param type: The resource type. + :type type: str + :param group_id: The group ID of the resource. + :type group_id: str + :param required_members: The RequiredMembers of the resource. + :type required_members: list[str] + :ivar private_link_service_id: The private link service ID of the resource, this field is + exposed only to NRP internally. + :vartype private_link_service_id: str + """ + + _validation = { + 'private_link_service_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'group_id': {'key': 'groupId', 'type': 'str'}, + 'required_members': {'key': 'requiredMembers', 'type': '[str]'}, + 'private_link_service_id': {'key': 'privateLinkServiceID', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkResource, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.name = kwargs.get('name', None) + self.type = kwargs.get('type', None) + self.group_id = kwargs.get('group_id', None) + self.required_members = kwargs.get('required_members', None) + self.private_link_service_id = None + + +class PrivateLinkResourcesListResult(msrest.serialization.Model): + """A list of private link resources. + + :param value: The collection value. + :type value: list[~azure.mgmt.containerservice.v2021_07_01.models.PrivateLinkResource] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PrivateLinkResource]'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkResourcesListResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + + +class PrivateLinkServiceConnectionState(msrest.serialization.Model): + """The state of a private link service connection. + + :param status: The private link service connection status. Possible values include: "Pending", + "Approved", "Rejected", "Disconnected". + :type status: str or ~azure.mgmt.containerservice.v2021_07_01.models.ConnectionStatus + :param description: The private link service connection description. + :type description: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkServiceConnectionState, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.description = kwargs.get('description', None) + + +class ResourceReference(msrest.serialization.Model): + """A reference to an Azure resource. + + :param id: The fully qualified Azure resource id. + :type id: str + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ResourceReference, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + + +class RunCommandRequest(msrest.serialization.Model): + """A run command request. + + All required parameters must be populated in order to send to Azure. + + :param command: Required. The command to run. + :type command: str + :param context: A base64 encoded zip file containing the files required by the command. + :type context: str + :param cluster_token: AuthToken issued for AKS AAD Server App. + :type cluster_token: str + """ + + _validation = { + 'command': {'required': True}, + } + + _attribute_map = { + 'command': {'key': 'command', 'type': 'str'}, + 'context': {'key': 'context', 'type': 'str'}, + 'cluster_token': {'key': 'clusterToken', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RunCommandRequest, self).__init__(**kwargs) + self.command = kwargs['command'] + self.context = kwargs.get('context', None) + self.cluster_token = kwargs.get('cluster_token', None) + + +class RunCommandResult(msrest.serialization.Model): + """run command result. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The command id. + :vartype id: str + :ivar provisioning_state: provisioning State. + :vartype provisioning_state: str + :ivar exit_code: The exit code of the command. + :vartype exit_code: int + :ivar started_at: The time when the command started. + :vartype started_at: ~datetime.datetime + :ivar finished_at: The time when the command finished. + :vartype finished_at: ~datetime.datetime + :ivar logs: The command output. + :vartype logs: str + :ivar reason: An explanation of why provisioningState is set to failed (if so). + :vartype reason: str + """ + + _validation = { + 'id': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'exit_code': {'readonly': True}, + 'started_at': {'readonly': True}, + 'finished_at': {'readonly': True}, + 'logs': {'readonly': True}, + 'reason': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'exit_code': {'key': 'properties.exitCode', 'type': 'int'}, + 'started_at': {'key': 'properties.startedAt', 'type': 'iso-8601'}, + 'finished_at': {'key': 'properties.finishedAt', 'type': 'iso-8601'}, + 'logs': {'key': 'properties.logs', 'type': 'str'}, + 'reason': {'key': 'properties.reason', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RunCommandResult, self).__init__(**kwargs) + self.id = None + self.provisioning_state = None + self.exit_code = None + self.started_at = None + self.finished_at = None + self.logs = None + self.reason = None + + +class SysctlConfig(msrest.serialization.Model): + """Sysctl settings for Linux agent nodes. + + :param net_core_somaxconn: Sysctl setting net.core.somaxconn. + :type net_core_somaxconn: int + :param net_core_netdev_max_backlog: Sysctl setting net.core.netdev_max_backlog. + :type net_core_netdev_max_backlog: int + :param net_core_rmem_default: Sysctl setting net.core.rmem_default. + :type net_core_rmem_default: int + :param net_core_rmem_max: Sysctl setting net.core.rmem_max. + :type net_core_rmem_max: int + :param net_core_wmem_default: Sysctl setting net.core.wmem_default. + :type net_core_wmem_default: int + :param net_core_wmem_max: Sysctl setting net.core.wmem_max. + :type net_core_wmem_max: int + :param net_core_optmem_max: Sysctl setting net.core.optmem_max. + :type net_core_optmem_max: int + :param net_ipv4_tcp_max_syn_backlog: Sysctl setting net.ipv4.tcp_max_syn_backlog. + :type net_ipv4_tcp_max_syn_backlog: int + :param net_ipv4_tcp_max_tw_buckets: Sysctl setting net.ipv4.tcp_max_tw_buckets. + :type net_ipv4_tcp_max_tw_buckets: int + :param net_ipv4_tcp_fin_timeout: Sysctl setting net.ipv4.tcp_fin_timeout. + :type net_ipv4_tcp_fin_timeout: int + :param net_ipv4_tcp_keepalive_time: Sysctl setting net.ipv4.tcp_keepalive_time. + :type net_ipv4_tcp_keepalive_time: int + :param net_ipv4_tcp_keepalive_probes: Sysctl setting net.ipv4.tcp_keepalive_probes. + :type net_ipv4_tcp_keepalive_probes: int + :param net_ipv4_tcpkeepalive_intvl: Sysctl setting net.ipv4.tcp_keepalive_intvl. + :type net_ipv4_tcpkeepalive_intvl: int + :param net_ipv4_tcp_tw_reuse: Sysctl setting net.ipv4.tcp_tw_reuse. + :type net_ipv4_tcp_tw_reuse: bool + :param net_ipv4_ip_local_port_range: Sysctl setting net.ipv4.ip_local_port_range. + :type net_ipv4_ip_local_port_range: str + :param net_ipv4_neigh_default_gc_thresh1: Sysctl setting net.ipv4.neigh.default.gc_thresh1. + :type net_ipv4_neigh_default_gc_thresh1: int + :param net_ipv4_neigh_default_gc_thresh2: Sysctl setting net.ipv4.neigh.default.gc_thresh2. + :type net_ipv4_neigh_default_gc_thresh2: int + :param net_ipv4_neigh_default_gc_thresh3: Sysctl setting net.ipv4.neigh.default.gc_thresh3. + :type net_ipv4_neigh_default_gc_thresh3: int + :param net_netfilter_nf_conntrack_max: Sysctl setting net.netfilter.nf_conntrack_max. + :type net_netfilter_nf_conntrack_max: int + :param net_netfilter_nf_conntrack_buckets: Sysctl setting net.netfilter.nf_conntrack_buckets. + :type net_netfilter_nf_conntrack_buckets: int + :param fs_inotify_max_user_watches: Sysctl setting fs.inotify.max_user_watches. + :type fs_inotify_max_user_watches: int + :param fs_file_max: Sysctl setting fs.file-max. + :type fs_file_max: int + :param fs_aio_max_nr: Sysctl setting fs.aio-max-nr. + :type fs_aio_max_nr: int + :param fs_nr_open: Sysctl setting fs.nr_open. + :type fs_nr_open: int + :param kernel_threads_max: Sysctl setting kernel.threads-max. + :type kernel_threads_max: int + :param vm_max_map_count: Sysctl setting vm.max_map_count. + :type vm_max_map_count: int + :param vm_swappiness: Sysctl setting vm.swappiness. + :type vm_swappiness: int + :param vm_vfs_cache_pressure: Sysctl setting vm.vfs_cache_pressure. + :type vm_vfs_cache_pressure: int + """ + + _attribute_map = { + 'net_core_somaxconn': {'key': 'netCoreSomaxconn', 'type': 'int'}, + 'net_core_netdev_max_backlog': {'key': 'netCoreNetdevMaxBacklog', 'type': 'int'}, + 'net_core_rmem_default': {'key': 'netCoreRmemDefault', 'type': 'int'}, + 'net_core_rmem_max': {'key': 'netCoreRmemMax', 'type': 'int'}, + 'net_core_wmem_default': {'key': 'netCoreWmemDefault', 'type': 'int'}, + 'net_core_wmem_max': {'key': 'netCoreWmemMax', 'type': 'int'}, + 'net_core_optmem_max': {'key': 'netCoreOptmemMax', 'type': 'int'}, + 'net_ipv4_tcp_max_syn_backlog': {'key': 'netIpv4TcpMaxSynBacklog', 'type': 'int'}, + 'net_ipv4_tcp_max_tw_buckets': {'key': 'netIpv4TcpMaxTwBuckets', 'type': 'int'}, + 'net_ipv4_tcp_fin_timeout': {'key': 'netIpv4TcpFinTimeout', 'type': 'int'}, + 'net_ipv4_tcp_keepalive_time': {'key': 'netIpv4TcpKeepaliveTime', 'type': 'int'}, + 'net_ipv4_tcp_keepalive_probes': {'key': 'netIpv4TcpKeepaliveProbes', 'type': 'int'}, + 'net_ipv4_tcpkeepalive_intvl': {'key': 'netIpv4TcpkeepaliveIntvl', 'type': 'int'}, + 'net_ipv4_tcp_tw_reuse': {'key': 'netIpv4TcpTwReuse', 'type': 'bool'}, + 'net_ipv4_ip_local_port_range': {'key': 'netIpv4IpLocalPortRange', 'type': 'str'}, + 'net_ipv4_neigh_default_gc_thresh1': {'key': 'netIpv4NeighDefaultGcThresh1', 'type': 'int'}, + 'net_ipv4_neigh_default_gc_thresh2': {'key': 'netIpv4NeighDefaultGcThresh2', 'type': 'int'}, + 'net_ipv4_neigh_default_gc_thresh3': {'key': 'netIpv4NeighDefaultGcThresh3', 'type': 'int'}, + 'net_netfilter_nf_conntrack_max': {'key': 'netNetfilterNfConntrackMax', 'type': 'int'}, + 'net_netfilter_nf_conntrack_buckets': {'key': 'netNetfilterNfConntrackBuckets', 'type': 'int'}, + 'fs_inotify_max_user_watches': {'key': 'fsInotifyMaxUserWatches', 'type': 'int'}, + 'fs_file_max': {'key': 'fsFileMax', 'type': 'int'}, + 'fs_aio_max_nr': {'key': 'fsAioMaxNr', 'type': 'int'}, + 'fs_nr_open': {'key': 'fsNrOpen', 'type': 'int'}, + 'kernel_threads_max': {'key': 'kernelThreadsMax', 'type': 'int'}, + 'vm_max_map_count': {'key': 'vmMaxMapCount', 'type': 'int'}, + 'vm_swappiness': {'key': 'vmSwappiness', 'type': 'int'}, + 'vm_vfs_cache_pressure': {'key': 'vmVfsCachePressure', 'type': 'int'}, + } + + def __init__( + self, + **kwargs + ): + super(SysctlConfig, self).__init__(**kwargs) + self.net_core_somaxconn = kwargs.get('net_core_somaxconn', None) + self.net_core_netdev_max_backlog = kwargs.get('net_core_netdev_max_backlog', None) + self.net_core_rmem_default = kwargs.get('net_core_rmem_default', None) + self.net_core_rmem_max = kwargs.get('net_core_rmem_max', None) + self.net_core_wmem_default = kwargs.get('net_core_wmem_default', None) + self.net_core_wmem_max = kwargs.get('net_core_wmem_max', None) + self.net_core_optmem_max = kwargs.get('net_core_optmem_max', None) + self.net_ipv4_tcp_max_syn_backlog = kwargs.get('net_ipv4_tcp_max_syn_backlog', None) + self.net_ipv4_tcp_max_tw_buckets = kwargs.get('net_ipv4_tcp_max_tw_buckets', None) + self.net_ipv4_tcp_fin_timeout = kwargs.get('net_ipv4_tcp_fin_timeout', None) + self.net_ipv4_tcp_keepalive_time = kwargs.get('net_ipv4_tcp_keepalive_time', None) + self.net_ipv4_tcp_keepalive_probes = kwargs.get('net_ipv4_tcp_keepalive_probes', None) + self.net_ipv4_tcpkeepalive_intvl = kwargs.get('net_ipv4_tcpkeepalive_intvl', None) + self.net_ipv4_tcp_tw_reuse = kwargs.get('net_ipv4_tcp_tw_reuse', None) + self.net_ipv4_ip_local_port_range = kwargs.get('net_ipv4_ip_local_port_range', None) + self.net_ipv4_neigh_default_gc_thresh1 = kwargs.get('net_ipv4_neigh_default_gc_thresh1', None) + self.net_ipv4_neigh_default_gc_thresh2 = kwargs.get('net_ipv4_neigh_default_gc_thresh2', None) + self.net_ipv4_neigh_default_gc_thresh3 = kwargs.get('net_ipv4_neigh_default_gc_thresh3', None) + self.net_netfilter_nf_conntrack_max = kwargs.get('net_netfilter_nf_conntrack_max', None) + self.net_netfilter_nf_conntrack_buckets = kwargs.get('net_netfilter_nf_conntrack_buckets', None) + self.fs_inotify_max_user_watches = kwargs.get('fs_inotify_max_user_watches', None) + self.fs_file_max = kwargs.get('fs_file_max', None) + self.fs_aio_max_nr = kwargs.get('fs_aio_max_nr', None) + self.fs_nr_open = kwargs.get('fs_nr_open', None) + self.kernel_threads_max = kwargs.get('kernel_threads_max', None) + self.vm_max_map_count = kwargs.get('vm_max_map_count', None) + self.vm_swappiness = kwargs.get('vm_swappiness', None) + self.vm_vfs_cache_pressure = kwargs.get('vm_vfs_cache_pressure', 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.containerservice.v2021_07_01.models.CreatedByType + :param created_at: The UTC timestamp of resource creation. + :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.containerservice.v2021_07_01.models.CreatedByType + :param last_modified_at: The type of identity that last modified the resource. + :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 TagsObject(msrest.serialization.Model): + """Tags object for patch operations. + + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + """ + + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__( + self, + **kwargs + ): + super(TagsObject, self).__init__(**kwargs) + self.tags = kwargs.get('tags', None) + + +class TimeInWeek(msrest.serialization.Model): + """Time in a week. + + :param day: The day of the week. Possible values include: "Sunday", "Monday", "Tuesday", + "Wednesday", "Thursday", "Friday", "Saturday". + :type day: str or ~azure.mgmt.containerservice.v2021_07_01.models.WeekDay + :param hour_slots: Each integer hour represents a time range beginning at 0m after the hour + ending at the next hour (non-inclusive). 0 corresponds to 00:00 UTC, 23 corresponds to 23:00 + UTC. Specifying [0, 1] means the 00:00 - 02:00 UTC time range. + :type hour_slots: list[int] + """ + + _attribute_map = { + 'day': {'key': 'day', 'type': 'str'}, + 'hour_slots': {'key': 'hourSlots', 'type': '[int]'}, + } + + def __init__( + self, + **kwargs + ): + super(TimeInWeek, self).__init__(**kwargs) + self.day = kwargs.get('day', None) + self.hour_slots = kwargs.get('hour_slots', None) + + +class TimeSpan(msrest.serialization.Model): + """For example, between 2021-05-25T13:00:00Z and 2021-05-25T14:00:00Z. + + :param start: The start of a time span. + :type start: ~datetime.datetime + :param end: The end of a time span. + :type end: ~datetime.datetime + """ + + _attribute_map = { + 'start': {'key': 'start', 'type': 'iso-8601'}, + 'end': {'key': 'end', 'type': 'iso-8601'}, + } + + def __init__( + self, + **kwargs + ): + super(TimeSpan, self).__init__(**kwargs) + self.start = kwargs.get('start', None) + self.end = kwargs.get('end', None) diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/models/_models_py3.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/models/_models_py3.py new file mode 100644 index 000000000000..da9735f90647 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/models/_models_py3.py @@ -0,0 +1,4115 @@ +# 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. +# -------------------------------------------------------------------------- + +import datetime +from typing import Dict, List, Optional, Union + +import msrest.serialization + +from ._container_service_client_enums import * + + +class SubResource(msrest.serialization.Model): + """Reference to another subresource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: The name of the resource that is unique within a resource group. This name can be + used to access the resource. + :vartype name: str + :ivar type: Resource type. + :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(SubResource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + + +class AgentPool(SubResource): + """Agent Pool. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: The name of the resource that is unique within a resource group. This name can be + used to access the resource. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param count: Number of agents (VMs) to host docker containers. Allowed values must be in the + range of 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for + system pools. The default value is 1. + :type count: int + :param vm_size: VM size availability varies by region. If a node contains insufficient compute + resources (memory, cpu, etc) pods might fail to run correctly. For more details on restricted + VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions. + :type vm_size: str + :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every + machine in the master/agent pool. If you specify 0, it will apply the default osDisk size + according to the vmSize specified. + :type os_disk_size_gb: int + :param os_disk_type: The default is 'Ephemeral' if the VM supports it and has a cache disk + larger than the requested OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed + after creation. For more information see `Ephemeral OS + `_. Possible values + include: "Managed", "Ephemeral". + :type os_disk_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSDiskType + :param kubelet_disk_type: Determines the placement of emptyDir volumes, container runtime data + root, and Kubelet ephemeral storage. Possible values include: "OS", "Temporary". + :type kubelet_disk_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.KubeletDiskType + :param vnet_subnet_id: If this is not specified, a VNET and subnet will be generated and used. + If no podSubnetID is specified, this applies to nodes and pods, otherwise it applies to just + nodes. This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. + :type vnet_subnet_id: str + :param pod_subnet_id: If omitted, pod IPs are statically assigned on the node subnet (see + vnetSubnetID for more details). This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. + :type pod_subnet_id: str + :param max_pods: The maximum number of pods that can run on a node. + :type max_pods: int + :param os_type: The operating system type. The default is Linux. Possible values include: + "Linux", "Windows". Default value: "Linux". + :type os_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSType + :param os_sku: Specifies an OS SKU. This value must not be specified if OSType is Windows. + Possible values include: "Ubuntu", "CBLMariner". + :type os_sku: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSSKU + :param max_count: The maximum number of nodes for auto-scaling. + :type max_count: int + :param min_count: The minimum number of nodes for auto-scaling. + :type min_count: int + :param enable_auto_scaling: Whether to enable auto-scaler. + :type enable_auto_scaling: bool + :param scale_down_mode: This also effects the cluster autoscaler behavior. If not specified, it + defaults to Delete. Possible values include: "Delete", "Deallocate". + :type scale_down_mode: str or ~azure.mgmt.containerservice.v2021_07_01.models.ScaleDownMode + :param type_properties_type: The type of Agent Pool. Possible values include: + "VirtualMachineScaleSets", "AvailabilitySet". + :type type_properties_type: str or + ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolType + :param mode: A cluster must have at least one 'System' Agent Pool at all times. For additional + information on agent pool restrictions and best practices, see: + https://docs.microsoft.com/azure/aks/use-system-pools. Possible values include: "System", + "User". + :type mode: str or ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolMode + :param orchestrator_version: As a best practice, you should upgrade all node pools in an AKS + cluster to the same Kubernetes version. The node pool version must have the same major version + as the control plane. The node pool minor version must be within two minor versions of the + control plane version. The node pool version cannot be greater than the control plane version. + For more information see `upgrading a node pool + `_. + :type orchestrator_version: str + :ivar node_image_version: The version of node image. + :vartype node_image_version: str + :param upgrade_settings: Settings for upgrading the agentpool. + :type upgrade_settings: + ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolUpgradeSettings + :ivar provisioning_state: The current deployment or provisioning state. + :vartype provisioning_state: str + :ivar power_state: Describes whether the Agent Pool is Running or Stopped. + :vartype power_state: ~azure.mgmt.containerservice.v2021_07_01.models.PowerState + :param availability_zones: The list of Availability zones to use for nodes. This can only be + specified if the AgentPoolType property is 'VirtualMachineScaleSets'. + :type availability_zones: list[str] + :param enable_node_public_ip: Some scenarios may require nodes in a node pool to receive their + own dedicated public IP addresses. A common scenario is for gaming workloads, where a console + needs to make a direct connection to a cloud virtual machine to minimize hops. For more + information see `assigning a public IP per node + `_. + The default is false. + :type enable_node_public_ip: bool + :param node_public_ip_prefix_id: This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}. + :type node_public_ip_prefix_id: str + :param scale_set_priority: The Virtual Machine Scale Set priority. If not specified, the + default is 'Regular'. Possible values include: "Spot", "Regular". Default value: "Regular". + :type scale_set_priority: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ScaleSetPriority + :param scale_set_eviction_policy: This cannot be specified unless the scaleSetPriority is + 'Spot'. If not specified, the default is 'Delete'. Possible values include: "Delete", + "Deallocate". Default value: "Delete". + :type scale_set_eviction_policy: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ScaleSetEvictionPolicy + :param spot_max_price: Possible values are any decimal value greater than zero or -1 which + indicates the willingness to pay any on-demand price. For more details on spot pricing, see + `spot VMs pricing `_. + :type spot_max_price: float + :param tags: A set of tags. The tags to be persisted on the agent pool virtual machine scale + set. + :type tags: dict[str, str] + :param node_labels: The node labels to be persisted across all nodes in agent pool. + :type node_labels: dict[str, str] + :param node_taints: The taints added to new nodes during node pool create and scale. For + example, key=value:NoSchedule. + :type node_taints: list[str] + :param proximity_placement_group_id: The ID for Proximity Placement Group. + :type proximity_placement_group_id: str + :param kubelet_config: The Kubelet configuration on the agent pool nodes. + :type kubelet_config: ~azure.mgmt.containerservice.v2021_07_01.models.KubeletConfig + :param linux_os_config: The OS configuration of Linux agent nodes. + :type linux_os_config: ~azure.mgmt.containerservice.v2021_07_01.models.LinuxOSConfig + :param enable_encryption_at_host: This is only supported on certain VM sizes and in certain + Azure regions. For more information, see: + https://docs.microsoft.com/azure/aks/enable-host-encryption. + :type enable_encryption_at_host: bool + :param enable_ultra_ssd: Whether to enable UltraSSD. + :type enable_ultra_ssd: bool + :param enable_fips: See `Add a FIPS-enabled node pool + `_ + for more details. + :type enable_fips: bool + :param gpu_instance_profile: GPUInstanceProfile to be used to specify GPU MIG instance profile + for supported GPU VM SKU. Possible values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". + :type gpu_instance_profile: str or + ~azure.mgmt.containerservice.v2021_07_01.models.GPUInstanceProfile + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'os_disk_size_gb': {'maximum': 2048, 'minimum': 0}, + 'node_image_version': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'power_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'count': {'key': 'properties.count', 'type': 'int'}, + 'vm_size': {'key': 'properties.vmSize', 'type': 'str'}, + 'os_disk_size_gb': {'key': 'properties.osDiskSizeGB', 'type': 'int'}, + 'os_disk_type': {'key': 'properties.osDiskType', 'type': 'str'}, + 'kubelet_disk_type': {'key': 'properties.kubeletDiskType', 'type': 'str'}, + 'vnet_subnet_id': {'key': 'properties.vnetSubnetID', 'type': 'str'}, + 'pod_subnet_id': {'key': 'properties.podSubnetID', 'type': 'str'}, + 'max_pods': {'key': 'properties.maxPods', 'type': 'int'}, + 'os_type': {'key': 'properties.osType', 'type': 'str'}, + 'os_sku': {'key': 'properties.osSKU', 'type': 'str'}, + 'max_count': {'key': 'properties.maxCount', 'type': 'int'}, + 'min_count': {'key': 'properties.minCount', 'type': 'int'}, + 'enable_auto_scaling': {'key': 'properties.enableAutoScaling', 'type': 'bool'}, + 'scale_down_mode': {'key': 'properties.scaleDownMode', 'type': 'str'}, + 'type_properties_type': {'key': 'properties.type', 'type': 'str'}, + 'mode': {'key': 'properties.mode', 'type': 'str'}, + 'orchestrator_version': {'key': 'properties.orchestratorVersion', 'type': 'str'}, + 'node_image_version': {'key': 'properties.nodeImageVersion', 'type': 'str'}, + 'upgrade_settings': {'key': 'properties.upgradeSettings', 'type': 'AgentPoolUpgradeSettings'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'power_state': {'key': 'properties.powerState', 'type': 'PowerState'}, + 'availability_zones': {'key': 'properties.availabilityZones', 'type': '[str]'}, + 'enable_node_public_ip': {'key': 'properties.enableNodePublicIP', 'type': 'bool'}, + 'node_public_ip_prefix_id': {'key': 'properties.nodePublicIPPrefixID', 'type': 'str'}, + 'scale_set_priority': {'key': 'properties.scaleSetPriority', 'type': 'str'}, + 'scale_set_eviction_policy': {'key': 'properties.scaleSetEvictionPolicy', 'type': 'str'}, + 'spot_max_price': {'key': 'properties.spotMaxPrice', 'type': 'float'}, + 'tags': {'key': 'properties.tags', 'type': '{str}'}, + 'node_labels': {'key': 'properties.nodeLabels', 'type': '{str}'}, + 'node_taints': {'key': 'properties.nodeTaints', 'type': '[str]'}, + 'proximity_placement_group_id': {'key': 'properties.proximityPlacementGroupID', 'type': 'str'}, + 'kubelet_config': {'key': 'properties.kubeletConfig', 'type': 'KubeletConfig'}, + 'linux_os_config': {'key': 'properties.linuxOSConfig', 'type': 'LinuxOSConfig'}, + 'enable_encryption_at_host': {'key': 'properties.enableEncryptionAtHost', 'type': 'bool'}, + 'enable_ultra_ssd': {'key': 'properties.enableUltraSSD', 'type': 'bool'}, + 'enable_fips': {'key': 'properties.enableFIPS', 'type': 'bool'}, + 'gpu_instance_profile': {'key': 'properties.gpuInstanceProfile', 'type': 'str'}, + } + + def __init__( + self, + *, + count: Optional[int] = None, + vm_size: Optional[str] = None, + os_disk_size_gb: Optional[int] = None, + os_disk_type: Optional[Union[str, "OSDiskType"]] = None, + kubelet_disk_type: Optional[Union[str, "KubeletDiskType"]] = None, + vnet_subnet_id: Optional[str] = None, + pod_subnet_id: Optional[str] = None, + max_pods: Optional[int] = None, + os_type: Optional[Union[str, "OSType"]] = "Linux", + os_sku: Optional[Union[str, "OSSKU"]] = None, + max_count: Optional[int] = None, + min_count: Optional[int] = None, + enable_auto_scaling: Optional[bool] = None, + scale_down_mode: Optional[Union[str, "ScaleDownMode"]] = None, + type_properties_type: Optional[Union[str, "AgentPoolType"]] = None, + mode: Optional[Union[str, "AgentPoolMode"]] = None, + orchestrator_version: Optional[str] = None, + upgrade_settings: Optional["AgentPoolUpgradeSettings"] = None, + availability_zones: Optional[List[str]] = None, + enable_node_public_ip: Optional[bool] = None, + node_public_ip_prefix_id: Optional[str] = None, + scale_set_priority: Optional[Union[str, "ScaleSetPriority"]] = "Regular", + scale_set_eviction_policy: Optional[Union[str, "ScaleSetEvictionPolicy"]] = "Delete", + spot_max_price: Optional[float] = -1, + tags: Optional[Dict[str, str]] = None, + node_labels: Optional[Dict[str, str]] = None, + node_taints: Optional[List[str]] = None, + proximity_placement_group_id: Optional[str] = None, + kubelet_config: Optional["KubeletConfig"] = None, + linux_os_config: Optional["LinuxOSConfig"] = None, + enable_encryption_at_host: Optional[bool] = None, + enable_ultra_ssd: Optional[bool] = None, + enable_fips: Optional[bool] = None, + gpu_instance_profile: Optional[Union[str, "GPUInstanceProfile"]] = None, + **kwargs + ): + super(AgentPool, self).__init__(**kwargs) + self.count = count + self.vm_size = vm_size + self.os_disk_size_gb = os_disk_size_gb + self.os_disk_type = os_disk_type + self.kubelet_disk_type = kubelet_disk_type + self.vnet_subnet_id = vnet_subnet_id + self.pod_subnet_id = pod_subnet_id + self.max_pods = max_pods + self.os_type = os_type + self.os_sku = os_sku + self.max_count = max_count + self.min_count = min_count + self.enable_auto_scaling = enable_auto_scaling + self.scale_down_mode = scale_down_mode + self.type_properties_type = type_properties_type + self.mode = mode + self.orchestrator_version = orchestrator_version + self.node_image_version = None + self.upgrade_settings = upgrade_settings + self.provisioning_state = None + self.power_state = None + self.availability_zones = availability_zones + self.enable_node_public_ip = enable_node_public_ip + self.node_public_ip_prefix_id = node_public_ip_prefix_id + self.scale_set_priority = scale_set_priority + self.scale_set_eviction_policy = scale_set_eviction_policy + self.spot_max_price = spot_max_price + self.tags = tags + self.node_labels = node_labels + self.node_taints = node_taints + self.proximity_placement_group_id = proximity_placement_group_id + self.kubelet_config = kubelet_config + self.linux_os_config = linux_os_config + self.enable_encryption_at_host = enable_encryption_at_host + self.enable_ultra_ssd = enable_ultra_ssd + self.enable_fips = enable_fips + self.gpu_instance_profile = gpu_instance_profile + + +class AgentPoolAvailableVersions(msrest.serialization.Model): + """The list of available versions for an agent pool. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The ID of the agent pool version list. + :vartype id: str + :ivar name: The name of the agent pool version list. + :vartype name: str + :ivar type: Type of the agent pool version list. + :vartype type: str + :param agent_pool_versions: List of versions available for agent pool. + :type agent_pool_versions: + list[~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem] + """ + + _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'}, + 'agent_pool_versions': {'key': 'properties.agentPoolVersions', 'type': '[AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem]'}, + } + + def __init__( + self, + *, + agent_pool_versions: Optional[List["AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem"]] = None, + **kwargs + ): + super(AgentPoolAvailableVersions, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.agent_pool_versions = agent_pool_versions + + +class AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem(msrest.serialization.Model): + """AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem. + + :param default: Whether this version is the default agent pool version. + :type default: bool + :param kubernetes_version: The Kubernetes version (major.minor.patch). + :type kubernetes_version: str + :param is_preview: Whether Kubernetes version is currently in preview. + :type is_preview: bool + """ + + _attribute_map = { + 'default': {'key': 'default', 'type': 'bool'}, + 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + } + + def __init__( + self, + *, + default: Optional[bool] = None, + kubernetes_version: Optional[str] = None, + is_preview: Optional[bool] = None, + **kwargs + ): + super(AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem, self).__init__(**kwargs) + self.default = default + self.kubernetes_version = kubernetes_version + self.is_preview = is_preview + + +class AgentPoolListResult(msrest.serialization.Model): + """The response from the List Agent Pools operation. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param value: The list of agent pools. + :type value: list[~azure.mgmt.containerservice.v2021_07_01.models.AgentPool] + :ivar next_link: The URL to get the next set of agent pool results. + :vartype next_link: str + """ + + _validation = { + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[AgentPool]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: Optional[List["AgentPool"]] = None, + **kwargs + ): + super(AgentPoolListResult, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class AgentPoolUpgradeProfile(msrest.serialization.Model): + """The list of available upgrades for an agent pool. + + 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 ID of the agent pool upgrade profile. + :vartype id: str + :ivar name: The name of the agent pool upgrade profile. + :vartype name: str + :ivar type: The type of the agent pool upgrade profile. + :vartype type: str + :param kubernetes_version: Required. The Kubernetes version (major.minor.patch). + :type kubernetes_version: str + :param os_type: Required. The operating system type. The default is Linux. Possible values + include: "Linux", "Windows". Default value: "Linux". + :type os_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSType + :param upgrades: List of orchestrator types and versions available for upgrade. + :type upgrades: + list[~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolUpgradeProfilePropertiesUpgradesItem] + :param latest_node_image_version: The latest AKS supported node image version. + :type latest_node_image_version: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'kubernetes_version': {'required': True}, + 'os_type': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'kubernetes_version': {'key': 'properties.kubernetesVersion', 'type': 'str'}, + 'os_type': {'key': 'properties.osType', 'type': 'str'}, + 'upgrades': {'key': 'properties.upgrades', 'type': '[AgentPoolUpgradeProfilePropertiesUpgradesItem]'}, + 'latest_node_image_version': {'key': 'properties.latestNodeImageVersion', 'type': 'str'}, + } + + def __init__( + self, + *, + kubernetes_version: str, + os_type: Union[str, "OSType"] = "Linux", + upgrades: Optional[List["AgentPoolUpgradeProfilePropertiesUpgradesItem"]] = None, + latest_node_image_version: Optional[str] = None, + **kwargs + ): + super(AgentPoolUpgradeProfile, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.kubernetes_version = kubernetes_version + self.os_type = os_type + self.upgrades = upgrades + self.latest_node_image_version = latest_node_image_version + + +class AgentPoolUpgradeProfilePropertiesUpgradesItem(msrest.serialization.Model): + """AgentPoolUpgradeProfilePropertiesUpgradesItem. + + :param kubernetes_version: The Kubernetes version (major.minor.patch). + :type kubernetes_version: str + :param is_preview: Whether the Kubernetes version is currently in preview. + :type is_preview: bool + """ + + _attribute_map = { + 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + } + + def __init__( + self, + *, + kubernetes_version: Optional[str] = None, + is_preview: Optional[bool] = None, + **kwargs + ): + super(AgentPoolUpgradeProfilePropertiesUpgradesItem, self).__init__(**kwargs) + self.kubernetes_version = kubernetes_version + self.is_preview = is_preview + + +class AgentPoolUpgradeSettings(msrest.serialization.Model): + """Settings for upgrading an agentpool. + + :param max_surge: This can either be set to an integer (e.g. '5') or a percentage (e.g. '50%'). + If a percentage is specified, it is the percentage of the total agent pool size at the time of + the upgrade. For percentages, fractional nodes are rounded up. If not specified, the default is + 1. For more information, including best practices, see: + https://docs.microsoft.com/azure/aks/upgrade-cluster#customize-node-surge-upgrade. + :type max_surge: str + """ + + _attribute_map = { + 'max_surge': {'key': 'maxSurge', 'type': 'str'}, + } + + def __init__( + self, + *, + max_surge: Optional[str] = None, + **kwargs + ): + super(AgentPoolUpgradeSettings, self).__init__(**kwargs) + self.max_surge = max_surge + + +class CloudErrorBody(msrest.serialization.Model): + """An error response from the Container service. + + :param code: An identifier for the error. Codes are invariant and are intended to be consumed + programmatically. + :type code: str + :param message: A message describing the error, intended to be suitable for display in a user + interface. + :type message: str + :param target: The target of the particular error. For example, the name of the property in + error. + :type target: str + :param details: A list of additional details about the error. + :type details: list[~azure.mgmt.containerservice.v2021_07_01.models.CloudErrorBody] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[CloudErrorBody]'}, + } + + def __init__( + self, + *, + code: Optional[str] = None, + message: Optional[str] = None, + target: Optional[str] = None, + details: Optional[List["CloudErrorBody"]] = None, + **kwargs + ): + super(CloudErrorBody, self).__init__(**kwargs) + self.code = code + self.message = message + self.target = target + self.details = details + + +class ContainerServiceDiagnosticsProfile(msrest.serialization.Model): + """Profile for diagnostics on the container service cluster. + + All required parameters must be populated in order to send to Azure. + + :param vm_diagnostics: Required. Profile for diagnostics on the container service VMs. + :type vm_diagnostics: + ~azure.mgmt.containerservice.v2021_07_01.models.ContainerServiceVMDiagnostics + """ + + _validation = { + 'vm_diagnostics': {'required': True}, + } + + _attribute_map = { + 'vm_diagnostics': {'key': 'vmDiagnostics', 'type': 'ContainerServiceVMDiagnostics'}, + } + + def __init__( + self, + *, + vm_diagnostics: "ContainerServiceVMDiagnostics", + **kwargs + ): + super(ContainerServiceDiagnosticsProfile, self).__init__(**kwargs) + self.vm_diagnostics = vm_diagnostics + + +class ContainerServiceLinuxProfile(msrest.serialization.Model): + """Profile for Linux VMs in the container service cluster. + + All required parameters must be populated in order to send to Azure. + + :param admin_username: Required. The administrator username to use for Linux VMs. + :type admin_username: str + :param ssh: Required. The SSH configuration for Linux-based VMs running on Azure. + :type ssh: ~azure.mgmt.containerservice.v2021_07_01.models.ContainerServiceSshConfiguration + """ + + _validation = { + 'admin_username': {'required': True, 'pattern': r'^[A-Za-z][-A-Za-z0-9_]*$'}, + 'ssh': {'required': True}, + } + + _attribute_map = { + 'admin_username': {'key': 'adminUsername', 'type': 'str'}, + 'ssh': {'key': 'ssh', 'type': 'ContainerServiceSshConfiguration'}, + } + + def __init__( + self, + *, + admin_username: str, + ssh: "ContainerServiceSshConfiguration", + **kwargs + ): + super(ContainerServiceLinuxProfile, self).__init__(**kwargs) + self.admin_username = admin_username + self.ssh = ssh + + +class ContainerServiceMasterProfile(msrest.serialization.Model): + """Profile for the container service master. + + 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 count: Number of masters (VMs) in the container service cluster. Allowed values are 1, + 3, and 5. The default value is 1. Possible values include: 1, 3, 5. Default value: "1". + :type count: str or ~azure.mgmt.containerservice.v2021_07_01.models.Count + :param dns_prefix: Required. DNS prefix to be used to create the FQDN for the master pool. + :type dns_prefix: str + :param vm_size: Required. Size of agent VMs. Possible values include: "Standard_A1", + "Standard_A10", "Standard_A11", "Standard_A1_v2", "Standard_A2", "Standard_A2_v2", + "Standard_A2m_v2", "Standard_A3", "Standard_A4", "Standard_A4_v2", "Standard_A4m_v2", + "Standard_A5", "Standard_A6", "Standard_A7", "Standard_A8", "Standard_A8_v2", + "Standard_A8m_v2", "Standard_A9", "Standard_B2ms", "Standard_B2s", "Standard_B4ms", + "Standard_B8ms", "Standard_D1", "Standard_D11", "Standard_D11_v2", "Standard_D11_v2_Promo", + "Standard_D12", "Standard_D12_v2", "Standard_D12_v2_Promo", "Standard_D13", "Standard_D13_v2", + "Standard_D13_v2_Promo", "Standard_D14", "Standard_D14_v2", "Standard_D14_v2_Promo", + "Standard_D15_v2", "Standard_D16_v3", "Standard_D16s_v3", "Standard_D1_v2", "Standard_D2", + "Standard_D2_v2", "Standard_D2_v2_Promo", "Standard_D2_v3", "Standard_D2s_v3", "Standard_D3", + "Standard_D32_v3", "Standard_D32s_v3", "Standard_D3_v2", "Standard_D3_v2_Promo", "Standard_D4", + "Standard_D4_v2", "Standard_D4_v2_Promo", "Standard_D4_v3", "Standard_D4s_v3", + "Standard_D5_v2", "Standard_D5_v2_Promo", "Standard_D64_v3", "Standard_D64s_v3", + "Standard_D8_v3", "Standard_D8s_v3", "Standard_DS1", "Standard_DS11", "Standard_DS11_v2", + "Standard_DS11_v2_Promo", "Standard_DS12", "Standard_DS12_v2", "Standard_DS12_v2_Promo", + "Standard_DS13", "Standard_DS13-2_v2", "Standard_DS13-4_v2", "Standard_DS13_v2", + "Standard_DS13_v2_Promo", "Standard_DS14", "Standard_DS14-4_v2", "Standard_DS14-8_v2", + "Standard_DS14_v2", "Standard_DS14_v2_Promo", "Standard_DS15_v2", "Standard_DS1_v2", + "Standard_DS2", "Standard_DS2_v2", "Standard_DS2_v2_Promo", "Standard_DS3", "Standard_DS3_v2", + "Standard_DS3_v2_Promo", "Standard_DS4", "Standard_DS4_v2", "Standard_DS4_v2_Promo", + "Standard_DS5_v2", "Standard_DS5_v2_Promo", "Standard_E16_v3", "Standard_E16s_v3", + "Standard_E2_v3", "Standard_E2s_v3", "Standard_E32-16s_v3", "Standard_E32-8s_v3", + "Standard_E32_v3", "Standard_E32s_v3", "Standard_E4_v3", "Standard_E4s_v3", + "Standard_E64-16s_v3", "Standard_E64-32s_v3", "Standard_E64_v3", "Standard_E64s_v3", + "Standard_E8_v3", "Standard_E8s_v3", "Standard_F1", "Standard_F16", "Standard_F16s", + "Standard_F16s_v2", "Standard_F1s", "Standard_F2", "Standard_F2s", "Standard_F2s_v2", + "Standard_F32s_v2", "Standard_F4", "Standard_F4s", "Standard_F4s_v2", "Standard_F64s_v2", + "Standard_F72s_v2", "Standard_F8", "Standard_F8s", "Standard_F8s_v2", "Standard_G1", + "Standard_G2", "Standard_G3", "Standard_G4", "Standard_G5", "Standard_GS1", "Standard_GS2", + "Standard_GS3", "Standard_GS4", "Standard_GS4-4", "Standard_GS4-8", "Standard_GS5", + "Standard_GS5-16", "Standard_GS5-8", "Standard_H16", "Standard_H16m", "Standard_H16mr", + "Standard_H16r", "Standard_H8", "Standard_H8m", "Standard_L16s", "Standard_L32s", + "Standard_L4s", "Standard_L8s", "Standard_M128-32ms", "Standard_M128-64ms", "Standard_M128ms", + "Standard_M128s", "Standard_M64-16ms", "Standard_M64-32ms", "Standard_M64ms", "Standard_M64s", + "Standard_NC12", "Standard_NC12s_v2", "Standard_NC12s_v3", "Standard_NC24", "Standard_NC24r", + "Standard_NC24rs_v2", "Standard_NC24rs_v3", "Standard_NC24s_v2", "Standard_NC24s_v3", + "Standard_NC6", "Standard_NC6s_v2", "Standard_NC6s_v3", "Standard_ND12s", "Standard_ND24rs", + "Standard_ND24s", "Standard_ND6s", "Standard_NV12", "Standard_NV24", "Standard_NV6". + :type vm_size: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ContainerServiceVMSizeTypes + :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every + machine in this master/agent pool. If you specify 0, it will apply the default osDisk size + according to the vmSize specified. + :type os_disk_size_gb: int + :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet identifier. + :type vnet_subnet_id: str + :param first_consecutive_static_ip: FirstConsecutiveStaticIP used to specify the first static + ip of masters. + :type first_consecutive_static_ip: str + :param storage_profile: Storage profile specifies what kind of storage used. Choose from + StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the + orchestrator choice. Possible values include: "StorageAccount", "ManagedDisks". + :type storage_profile: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ContainerServiceStorageProfileTypes + :ivar fqdn: FQDN for the master pool. + :vartype fqdn: str + """ + + _validation = { + 'dns_prefix': {'required': True}, + 'vm_size': {'required': True}, + 'os_disk_size_gb': {'maximum': 2048, 'minimum': 0}, + 'fqdn': {'readonly': True}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + 'dns_prefix': {'key': 'dnsPrefix', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'os_disk_size_gb': {'key': 'osDiskSizeGB', 'type': 'int'}, + 'vnet_subnet_id': {'key': 'vnetSubnetID', 'type': 'str'}, + 'first_consecutive_static_ip': {'key': 'firstConsecutiveStaticIP', 'type': 'str'}, + 'storage_profile': {'key': 'storageProfile', 'type': 'str'}, + 'fqdn': {'key': 'fqdn', 'type': 'str'}, + } + + def __init__( + self, + *, + dns_prefix: str, + vm_size: Union[str, "ContainerServiceVMSizeTypes"], + count: Optional[Union[int, "Count"]] = "1", + os_disk_size_gb: Optional[int] = None, + vnet_subnet_id: Optional[str] = None, + first_consecutive_static_ip: Optional[str] = "10.240.255.5", + storage_profile: Optional[Union[str, "ContainerServiceStorageProfileTypes"]] = None, + **kwargs + ): + super(ContainerServiceMasterProfile, self).__init__(**kwargs) + self.count = count + self.dns_prefix = dns_prefix + self.vm_size = vm_size + self.os_disk_size_gb = os_disk_size_gb + self.vnet_subnet_id = vnet_subnet_id + self.first_consecutive_static_ip = first_consecutive_static_ip + self.storage_profile = storage_profile + self.fqdn = None + + +class ContainerServiceNetworkProfile(msrest.serialization.Model): + """Profile of network configuration. + + :param network_plugin: Network plugin used for building the Kubernetes network. Possible values + include: "azure", "kubenet". Default value: "kubenet". + :type network_plugin: str or ~azure.mgmt.containerservice.v2021_07_01.models.NetworkPlugin + :param network_policy: Network policy used for building the Kubernetes network. Possible values + include: "calico", "azure". + :type network_policy: str or ~azure.mgmt.containerservice.v2021_07_01.models.NetworkPolicy + :param network_mode: This cannot be specified if networkPlugin is anything other than 'azure'. + Possible values include: "transparent", "bridge". + :type network_mode: str or ~azure.mgmt.containerservice.v2021_07_01.models.NetworkMode + :param pod_cidr: A CIDR notation IP range from which to assign pod IPs when kubenet is used. + :type pod_cidr: str + :param service_cidr: A CIDR notation IP range from which to assign service cluster IPs. It must + not overlap with any Subnet IP ranges. + :type service_cidr: str + :param dns_service_ip: An IP address assigned to the Kubernetes DNS service. It must be within + the Kubernetes service address range specified in serviceCidr. + :type dns_service_ip: str + :param docker_bridge_cidr: A CIDR notation IP range assigned to the Docker bridge network. It + must not overlap with any Subnet IP ranges or the Kubernetes service address range. + :type docker_bridge_cidr: str + :param outbound_type: This can only be set at cluster creation time and cannot be changed + later. For more information see `egress outbound type + `_. Possible values include: + "loadBalancer", "userDefinedRouting", "managedNATGateway", "userAssignedNATGateway". Default + value: "loadBalancer". + :type outbound_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OutboundType + :param load_balancer_sku: The default is 'standard'. See `Azure Load Balancer SKUs + `_ for more information about the + differences between load balancer SKUs. Possible values include: "standard", "basic". + :type load_balancer_sku: str or ~azure.mgmt.containerservice.v2021_07_01.models.LoadBalancerSku + :param load_balancer_profile: Profile of the cluster load balancer. + :type load_balancer_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterLoadBalancerProfile + :param nat_gateway_profile: Profile of the cluster NAT gateway. + :type nat_gateway_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterNATGatewayProfile + """ + + _validation = { + 'pod_cidr': {'pattern': r'^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$'}, + 'service_cidr': {'pattern': r'^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$'}, + 'dns_service_ip': {'pattern': r'^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'}, + 'docker_bridge_cidr': {'pattern': r'^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$'}, + } + + _attribute_map = { + 'network_plugin': {'key': 'networkPlugin', 'type': 'str'}, + 'network_policy': {'key': 'networkPolicy', 'type': 'str'}, + 'network_mode': {'key': 'networkMode', 'type': 'str'}, + 'pod_cidr': {'key': 'podCidr', 'type': 'str'}, + 'service_cidr': {'key': 'serviceCidr', 'type': 'str'}, + 'dns_service_ip': {'key': 'dnsServiceIP', 'type': 'str'}, + 'docker_bridge_cidr': {'key': 'dockerBridgeCidr', 'type': 'str'}, + 'outbound_type': {'key': 'outboundType', 'type': 'str'}, + 'load_balancer_sku': {'key': 'loadBalancerSku', 'type': 'str'}, + 'load_balancer_profile': {'key': 'loadBalancerProfile', 'type': 'ManagedClusterLoadBalancerProfile'}, + 'nat_gateway_profile': {'key': 'natGatewayProfile', 'type': 'ManagedClusterNATGatewayProfile'}, + } + + def __init__( + self, + *, + network_plugin: Optional[Union[str, "NetworkPlugin"]] = "kubenet", + network_policy: Optional[Union[str, "NetworkPolicy"]] = None, + network_mode: Optional[Union[str, "NetworkMode"]] = None, + pod_cidr: Optional[str] = "10.244.0.0/16", + service_cidr: Optional[str] = "10.0.0.0/16", + dns_service_ip: Optional[str] = "10.0.0.10", + docker_bridge_cidr: Optional[str] = "172.17.0.1/16", + outbound_type: Optional[Union[str, "OutboundType"]] = "loadBalancer", + load_balancer_sku: Optional[Union[str, "LoadBalancerSku"]] = None, + load_balancer_profile: Optional["ManagedClusterLoadBalancerProfile"] = None, + nat_gateway_profile: Optional["ManagedClusterNATGatewayProfile"] = None, + **kwargs + ): + super(ContainerServiceNetworkProfile, self).__init__(**kwargs) + self.network_plugin = network_plugin + self.network_policy = network_policy + self.network_mode = network_mode + self.pod_cidr = pod_cidr + self.service_cidr = service_cidr + self.dns_service_ip = dns_service_ip + self.docker_bridge_cidr = docker_bridge_cidr + self.outbound_type = outbound_type + self.load_balancer_sku = load_balancer_sku + self.load_balancer_profile = load_balancer_profile + self.nat_gateway_profile = nat_gateway_profile + + +class ContainerServiceSshConfiguration(msrest.serialization.Model): + """SSH configuration for Linux-based VMs running on Azure. + + All required parameters must be populated in order to send to Azure. + + :param public_keys: Required. The list of SSH public keys used to authenticate with Linux-based + VMs. A maximum of 1 key may be specified. + :type public_keys: + list[~azure.mgmt.containerservice.v2021_07_01.models.ContainerServiceSshPublicKey] + """ + + _validation = { + 'public_keys': {'required': True}, + } + + _attribute_map = { + 'public_keys': {'key': 'publicKeys', 'type': '[ContainerServiceSshPublicKey]'}, + } + + def __init__( + self, + *, + public_keys: List["ContainerServiceSshPublicKey"], + **kwargs + ): + super(ContainerServiceSshConfiguration, self).__init__(**kwargs) + self.public_keys = public_keys + + +class ContainerServiceSshPublicKey(msrest.serialization.Model): + """Contains information about SSH certificate public key data. + + All required parameters must be populated in order to send to Azure. + + :param key_data: Required. Certificate public key used to authenticate with VMs through SSH. + The certificate must be in PEM format with or without headers. + :type key_data: str + """ + + _validation = { + 'key_data': {'required': True}, + } + + _attribute_map = { + 'key_data': {'key': 'keyData', 'type': 'str'}, + } + + def __init__( + self, + *, + key_data: str, + **kwargs + ): + super(ContainerServiceSshPublicKey, self).__init__(**kwargs) + self.key_data = key_data + + +class ContainerServiceVMDiagnostics(msrest.serialization.Model): + """Profile for diagnostics on the container service VMs. + + 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 enabled: Required. Whether the VM diagnostic agent is provisioned on the VM. + :type enabled: bool + :ivar storage_uri: The URI of the storage account where diagnostics are stored. + :vartype storage_uri: str + """ + + _validation = { + 'enabled': {'required': True}, + 'storage_uri': {'readonly': True}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'storage_uri': {'key': 'storageUri', 'type': 'str'}, + } + + def __init__( + self, + *, + enabled: bool, + **kwargs + ): + super(ContainerServiceVMDiagnostics, self).__init__(**kwargs) + self.enabled = enabled + self.storage_uri = None + + +class CredentialResult(msrest.serialization.Model): + """The credential result response. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar name: The name of the credential. + :vartype name: str + :ivar value: Base64-encoded Kubernetes configuration file. + :vartype value: bytearray + """ + + _validation = { + 'name': {'readonly': True}, + 'value': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'bytearray'}, + } + + def __init__( + self, + **kwargs + ): + super(CredentialResult, self).__init__(**kwargs) + self.name = None + self.value = None + + +class CredentialResults(msrest.serialization.Model): + """The list credential result response. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar kubeconfigs: Base64-encoded Kubernetes configuration file. + :vartype kubeconfigs: list[~azure.mgmt.containerservice.v2021_07_01.models.CredentialResult] + """ + + _validation = { + 'kubeconfigs': {'readonly': True}, + } + + _attribute_map = { + 'kubeconfigs': {'key': 'kubeconfigs', 'type': '[CredentialResult]'}, + } + + def __init__( + self, + **kwargs + ): + super(CredentialResults, self).__init__(**kwargs) + self.kubeconfigs = None + + +class EndpointDependency(msrest.serialization.Model): + """A domain name that AKS agent nodes are reaching at. + + :param domain_name: The domain name of the dependency. + :type domain_name: str + :param endpoint_details: The Ports and Protocols used when connecting to domainName. + :type endpoint_details: list[~azure.mgmt.containerservice.v2021_07_01.models.EndpointDetail] + """ + + _attribute_map = { + 'domain_name': {'key': 'domainName', 'type': 'str'}, + 'endpoint_details': {'key': 'endpointDetails', 'type': '[EndpointDetail]'}, + } + + def __init__( + self, + *, + domain_name: Optional[str] = None, + endpoint_details: Optional[List["EndpointDetail"]] = None, + **kwargs + ): + super(EndpointDependency, self).__init__(**kwargs) + self.domain_name = domain_name + self.endpoint_details = endpoint_details + + +class EndpointDetail(msrest.serialization.Model): + """connect information from the AKS agent nodes to a single endpoint. + + :param ip_address: An IP Address that Domain Name currently resolves to. + :type ip_address: str + :param port: The port an endpoint is connected to. + :type port: int + :param protocol: The protocol used for connection. + :type protocol: str + :param description: Description of the detail. + :type description: str + """ + + _attribute_map = { + 'ip_address': {'key': 'ipAddress', 'type': 'str'}, + 'port': {'key': 'port', 'type': 'int'}, + 'protocol': {'key': 'protocol', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__( + self, + *, + ip_address: Optional[str] = None, + port: Optional[int] = None, + protocol: Optional[str] = None, + description: Optional[str] = None, + **kwargs + ): + super(EndpointDetail, self).__init__(**kwargs) + self.ip_address = ip_address + self.port = port + self.protocol = protocol + self.description = description + + +class ExtendedLocation(msrest.serialization.Model): + """The complex type of the extended location. + + :param name: The name of the extended location. + :type name: str + :param type: The type of the extended location. Possible values include: "EdgeZone". + :type type: str or ~azure.mgmt.containerservice.v2021_07_01.models.ExtendedLocationTypes + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + type: Optional[Union[str, "ExtendedLocationTypes"]] = None, + **kwargs + ): + super(ExtendedLocation, self).__init__(**kwargs) + self.name = name + self.type = type + + +class KubeletConfig(msrest.serialization.Model): + """See `AKS custom node configuration `_ for more details. + + :param cpu_manager_policy: The default is 'none'. See `Kubernetes CPU management policies + `_ + for more information. Allowed values are 'none' and 'static'. + :type cpu_manager_policy: str + :param cpu_cfs_quota: The default is true. + :type cpu_cfs_quota: bool + :param cpu_cfs_quota_period: The default is '100ms.' Valid values are a sequence of decimal + numbers with an optional fraction and a unit suffix. For example: '300ms', '2h45m'. Supported + units are 'ns', 'us', 'ms', 's', 'm', and 'h'. + :type cpu_cfs_quota_period: str + :param image_gc_high_threshold: To disable image garbage collection, set to 100. The default is + 85%. + :type image_gc_high_threshold: int + :param image_gc_low_threshold: This cannot be set higher than imageGcHighThreshold. The default + is 80%. + :type image_gc_low_threshold: int + :param topology_manager_policy: For more information see `Kubernetes Topology Manager + `_. The default is + 'none'. Allowed values are 'none', 'best-effort', 'restricted', and 'single-numa-node'. + :type topology_manager_policy: str + :param allowed_unsafe_sysctls: Allowed list of unsafe sysctls or unsafe sysctl patterns (ending + in ``*``\ ). + :type allowed_unsafe_sysctls: list[str] + :param fail_swap_on: If set to true it will make the Kubelet fail to start if swap is enabled + on the node. + :type fail_swap_on: bool + :param container_log_max_size_mb: The maximum size (e.g. 10Mi) of container log file before it + is rotated. + :type container_log_max_size_mb: int + :param container_log_max_files: The maximum number of container log files that can be present + for a container. The number must be ≥ 2. + :type container_log_max_files: int + :param pod_max_pids: The maximum number of processes per pod. + :type pod_max_pids: int + """ + + _validation = { + 'container_log_max_files': {'minimum': 2}, + } + + _attribute_map = { + 'cpu_manager_policy': {'key': 'cpuManagerPolicy', 'type': 'str'}, + 'cpu_cfs_quota': {'key': 'cpuCfsQuota', 'type': 'bool'}, + 'cpu_cfs_quota_period': {'key': 'cpuCfsQuotaPeriod', 'type': 'str'}, + 'image_gc_high_threshold': {'key': 'imageGcHighThreshold', 'type': 'int'}, + 'image_gc_low_threshold': {'key': 'imageGcLowThreshold', 'type': 'int'}, + 'topology_manager_policy': {'key': 'topologyManagerPolicy', 'type': 'str'}, + 'allowed_unsafe_sysctls': {'key': 'allowedUnsafeSysctls', 'type': '[str]'}, + 'fail_swap_on': {'key': 'failSwapOn', 'type': 'bool'}, + 'container_log_max_size_mb': {'key': 'containerLogMaxSizeMB', 'type': 'int'}, + 'container_log_max_files': {'key': 'containerLogMaxFiles', 'type': 'int'}, + 'pod_max_pids': {'key': 'podMaxPids', 'type': 'int'}, + } + + def __init__( + self, + *, + cpu_manager_policy: Optional[str] = None, + cpu_cfs_quota: Optional[bool] = None, + cpu_cfs_quota_period: Optional[str] = None, + image_gc_high_threshold: Optional[int] = None, + image_gc_low_threshold: Optional[int] = None, + topology_manager_policy: Optional[str] = None, + allowed_unsafe_sysctls: Optional[List[str]] = None, + fail_swap_on: Optional[bool] = None, + container_log_max_size_mb: Optional[int] = None, + container_log_max_files: Optional[int] = None, + pod_max_pids: Optional[int] = None, + **kwargs + ): + super(KubeletConfig, self).__init__(**kwargs) + self.cpu_manager_policy = cpu_manager_policy + self.cpu_cfs_quota = cpu_cfs_quota + self.cpu_cfs_quota_period = cpu_cfs_quota_period + self.image_gc_high_threshold = image_gc_high_threshold + self.image_gc_low_threshold = image_gc_low_threshold + self.topology_manager_policy = topology_manager_policy + self.allowed_unsafe_sysctls = allowed_unsafe_sysctls + self.fail_swap_on = fail_swap_on + self.container_log_max_size_mb = container_log_max_size_mb + self.container_log_max_files = container_log_max_files + self.pod_max_pids = pod_max_pids + + +class LinuxOSConfig(msrest.serialization.Model): + """See `AKS custom node configuration `_ for more details. + + :param sysctls: Sysctl settings for Linux agent nodes. + :type sysctls: ~azure.mgmt.containerservice.v2021_07_01.models.SysctlConfig + :param transparent_huge_page_enabled: Valid values are 'always', 'madvise', and 'never'. The + default is 'always'. For more information see `Transparent Hugepages + `_. + :type transparent_huge_page_enabled: str + :param transparent_huge_page_defrag: Valid values are 'always', 'defer', 'defer+madvise', + 'madvise' and 'never'. The default is 'madvise'. For more information see `Transparent + Hugepages + `_. + :type transparent_huge_page_defrag: str + :param swap_file_size_mb: The size in MB of a swap file that will be created on each node. + :type swap_file_size_mb: int + """ + + _attribute_map = { + 'sysctls': {'key': 'sysctls', 'type': 'SysctlConfig'}, + 'transparent_huge_page_enabled': {'key': 'transparentHugePageEnabled', 'type': 'str'}, + 'transparent_huge_page_defrag': {'key': 'transparentHugePageDefrag', 'type': 'str'}, + 'swap_file_size_mb': {'key': 'swapFileSizeMB', 'type': 'int'}, + } + + def __init__( + self, + *, + sysctls: Optional["SysctlConfig"] = None, + transparent_huge_page_enabled: Optional[str] = None, + transparent_huge_page_defrag: Optional[str] = None, + swap_file_size_mb: Optional[int] = None, + **kwargs + ): + super(LinuxOSConfig, self).__init__(**kwargs) + self.sysctls = sysctls + self.transparent_huge_page_enabled = transparent_huge_page_enabled + self.transparent_huge_page_defrag = transparent_huge_page_defrag + self.swap_file_size_mb = swap_file_size_mb + + +class MaintenanceConfiguration(SubResource): + """See `planned maintenance `_ for more information about planned maintenance. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: The name of the resource that is unique within a resource group. This name can be + used to access the resource. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :ivar system_data: The system metadata relating to this resource. + :vartype system_data: ~azure.mgmt.containerservice.v2021_07_01.models.SystemData + :param time_in_week: If two array entries specify the same day of the week, the applied + configuration is the union of times in both entries. + :type time_in_week: list[~azure.mgmt.containerservice.v2021_07_01.models.TimeInWeek] + :param not_allowed_time: Time slots on which upgrade is not allowed. + :type not_allowed_time: list[~azure.mgmt.containerservice.v2021_07_01.models.TimeSpan] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'system_data': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'system_data': {'key': 'systemData', 'type': 'SystemData'}, + 'time_in_week': {'key': 'properties.timeInWeek', 'type': '[TimeInWeek]'}, + 'not_allowed_time': {'key': 'properties.notAllowedTime', 'type': '[TimeSpan]'}, + } + + def __init__( + self, + *, + time_in_week: Optional[List["TimeInWeek"]] = None, + not_allowed_time: Optional[List["TimeSpan"]] = None, + **kwargs + ): + super(MaintenanceConfiguration, self).__init__(**kwargs) + self.system_data = None + self.time_in_week = time_in_week + self.not_allowed_time = not_allowed_time + + +class MaintenanceConfigurationListResult(msrest.serialization.Model): + """The response from the List maintenance configurations operation. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param value: The list of maintenance configurations. + :type value: list[~azure.mgmt.containerservice.v2021_07_01.models.MaintenanceConfiguration] + :ivar next_link: The URL to get the next set of maintenance configuration results. + :vartype next_link: str + """ + + _validation = { + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[MaintenanceConfiguration]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: Optional[List["MaintenanceConfiguration"]] = None, + **kwargs + ): + super(MaintenanceConfigurationListResult, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class Resource(msrest.serialization.Model): + """The Resource model definition. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param location: Required. Resource location. + :type location: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'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}'}, + } + + def __init__( + self, + *, + location: str, + tags: Optional[Dict[str, str]] = None, + **kwargs + ): + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.location = location + self.tags = tags + + +class ManagedCluster(Resource): + """Managed cluster. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param location: Required. Resource location. + :type location: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param sku: The managed cluster SKU. + :type sku: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterSKU + :param extended_location: The extended location of the Virtual Machine. + :type extended_location: ~azure.mgmt.containerservice.v2021_07_01.models.ExtendedLocation + :param identity: The identity of the managed cluster, if configured. + :type identity: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterIdentity + :ivar provisioning_state: The current provisioning state. + :vartype provisioning_state: str + :ivar power_state: The Power State of the cluster. + :vartype power_state: ~azure.mgmt.containerservice.v2021_07_01.models.PowerState + :ivar max_agent_pools: The max number of agent pools for the managed cluster. + :vartype max_agent_pools: int + :param kubernetes_version: When you upgrade a supported AKS cluster, Kubernetes minor versions + cannot be skipped. All upgrades must be performed sequentially by major version number. For + example, upgrades between 1.14.x -> 1.15.x or 1.15.x -> 1.16.x are allowed, however 1.14.x -> + 1.16.x is not allowed. See `upgrading an AKS cluster + `_ for more details. + :type kubernetes_version: str + :param dns_prefix: This cannot be updated once the Managed Cluster has been created. + :type dns_prefix: str + :param fqdn_subdomain: This cannot be updated once the Managed Cluster has been created. + :type fqdn_subdomain: str + :ivar fqdn: The FQDN of the master pool. + :vartype fqdn: str + :ivar private_fqdn: The FQDN of private cluster. + :vartype private_fqdn: str + :ivar azure_portal_fqdn: The Azure Portal requires certain Cross-Origin Resource Sharing (CORS) + headers to be sent in some responses, which Kubernetes APIServer doesn't handle by default. + This special FQDN supports CORS, allowing the Azure Portal to function properly. + :vartype azure_portal_fqdn: str + :param agent_pool_profiles: The agent pool properties. + :type agent_pool_profiles: + list[~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterAgentPoolProfile] + :param linux_profile: The profile for Linux VMs in the Managed Cluster. + :type linux_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ContainerServiceLinuxProfile + :param windows_profile: The profile for Windows VMs in the Managed Cluster. + :type windows_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterWindowsProfile + :param service_principal_profile: Information about a service principal identity for the + cluster to use for manipulating Azure APIs. + :type service_principal_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterServicePrincipalProfile + :param addon_profiles: The profile of managed cluster add-on. + :type addon_profiles: dict[str, + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterAddonProfile] + :param pod_identity_profile: See `use AAD pod identity + `_ for more details on AAD pod + identity integration. + :type pod_identity_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPodIdentityProfile + :param node_resource_group: The name of the resource group containing agent pool nodes. + :type node_resource_group: str + :param enable_rbac: Whether to enable Kubernetes Role-Based Access Control. + :type enable_rbac: bool + :param enable_pod_security_policy: (DEPRECATING) Whether to enable Kubernetes pod security + policy (preview). This feature is set for removal on October 15th, 2020. Learn more at + aka.ms/aks/azpodpolicy. + :type enable_pod_security_policy: bool + :param network_profile: The network configuration profile. + :type network_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ContainerServiceNetworkProfile + :param aad_profile: The Azure Active Directory configuration. + :type aad_profile: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterAADProfile + :param auto_upgrade_profile: The auto upgrade configuration. + :type auto_upgrade_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterAutoUpgradeProfile + :param auto_scaler_profile: Parameters to be applied to the cluster-autoscaler when enabled. + :type auto_scaler_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPropertiesAutoScalerProfile + :param api_server_access_profile: The access profile for managed cluster API server. + :type api_server_access_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterAPIServerAccessProfile + :param disk_encryption_set_id: This is of the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}'. + :type disk_encryption_set_id: str + :param identity_profile: Identities associated with the cluster. + :type identity_profile: dict[str, + ~azure.mgmt.containerservice.v2021_07_01.models.UserAssignedIdentity] + :param private_link_resources: Private link resources associated with the cluster. + :type private_link_resources: + list[~azure.mgmt.containerservice.v2021_07_01.models.PrivateLinkResource] + :param disable_local_accounts: If set to true, getting static credentials will be disabled for + this cluster. This must only be used on Managed Clusters that are AAD enabled. For more details + see `disable local accounts + `_. + :type disable_local_accounts: bool + :param http_proxy_config: Configurations for provisioning the cluster with HTTP proxy servers. + :type http_proxy_config: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterHTTPProxyConfig + :param security_profile: Security profile for the managed cluster. + :type security_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterSecurityProfile + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + 'provisioning_state': {'readonly': True}, + 'power_state': {'readonly': True}, + 'max_agent_pools': {'readonly': True}, + 'fqdn': {'readonly': True}, + 'private_fqdn': {'readonly': True}, + 'azure_portal_fqdn': {'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}'}, + 'sku': {'key': 'sku', 'type': 'ManagedClusterSKU'}, + 'extended_location': {'key': 'extendedLocation', 'type': 'ExtendedLocation'}, + 'identity': {'key': 'identity', 'type': 'ManagedClusterIdentity'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'power_state': {'key': 'properties.powerState', 'type': 'PowerState'}, + 'max_agent_pools': {'key': 'properties.maxAgentPools', 'type': 'int'}, + 'kubernetes_version': {'key': 'properties.kubernetesVersion', 'type': 'str'}, + 'dns_prefix': {'key': 'properties.dnsPrefix', 'type': 'str'}, + 'fqdn_subdomain': {'key': 'properties.fqdnSubdomain', 'type': 'str'}, + 'fqdn': {'key': 'properties.fqdn', 'type': 'str'}, + 'private_fqdn': {'key': 'properties.privateFQDN', 'type': 'str'}, + 'azure_portal_fqdn': {'key': 'properties.azurePortalFQDN', 'type': 'str'}, + 'agent_pool_profiles': {'key': 'properties.agentPoolProfiles', 'type': '[ManagedClusterAgentPoolProfile]'}, + 'linux_profile': {'key': 'properties.linuxProfile', 'type': 'ContainerServiceLinuxProfile'}, + 'windows_profile': {'key': 'properties.windowsProfile', 'type': 'ManagedClusterWindowsProfile'}, + 'service_principal_profile': {'key': 'properties.servicePrincipalProfile', 'type': 'ManagedClusterServicePrincipalProfile'}, + 'addon_profiles': {'key': 'properties.addonProfiles', 'type': '{ManagedClusterAddonProfile}'}, + 'pod_identity_profile': {'key': 'properties.podIdentityProfile', 'type': 'ManagedClusterPodIdentityProfile'}, + 'node_resource_group': {'key': 'properties.nodeResourceGroup', 'type': 'str'}, + 'enable_rbac': {'key': 'properties.enableRBAC', 'type': 'bool'}, + 'enable_pod_security_policy': {'key': 'properties.enablePodSecurityPolicy', 'type': 'bool'}, + 'network_profile': {'key': 'properties.networkProfile', 'type': 'ContainerServiceNetworkProfile'}, + 'aad_profile': {'key': 'properties.aadProfile', 'type': 'ManagedClusterAADProfile'}, + 'auto_upgrade_profile': {'key': 'properties.autoUpgradeProfile', 'type': 'ManagedClusterAutoUpgradeProfile'}, + 'auto_scaler_profile': {'key': 'properties.autoScalerProfile', 'type': 'ManagedClusterPropertiesAutoScalerProfile'}, + 'api_server_access_profile': {'key': 'properties.apiServerAccessProfile', 'type': 'ManagedClusterAPIServerAccessProfile'}, + 'disk_encryption_set_id': {'key': 'properties.diskEncryptionSetID', 'type': 'str'}, + 'identity_profile': {'key': 'properties.identityProfile', 'type': '{UserAssignedIdentity}'}, + 'private_link_resources': {'key': 'properties.privateLinkResources', 'type': '[PrivateLinkResource]'}, + 'disable_local_accounts': {'key': 'properties.disableLocalAccounts', 'type': 'bool'}, + 'http_proxy_config': {'key': 'properties.httpProxyConfig', 'type': 'ManagedClusterHTTPProxyConfig'}, + 'security_profile': {'key': 'properties.securityProfile', 'type': 'ManagedClusterSecurityProfile'}, + } + + def __init__( + self, + *, + location: str, + tags: Optional[Dict[str, str]] = None, + sku: Optional["ManagedClusterSKU"] = None, + extended_location: Optional["ExtendedLocation"] = None, + identity: Optional["ManagedClusterIdentity"] = None, + kubernetes_version: Optional[str] = None, + dns_prefix: Optional[str] = None, + fqdn_subdomain: Optional[str] = None, + agent_pool_profiles: Optional[List["ManagedClusterAgentPoolProfile"]] = None, + linux_profile: Optional["ContainerServiceLinuxProfile"] = None, + windows_profile: Optional["ManagedClusterWindowsProfile"] = None, + service_principal_profile: Optional["ManagedClusterServicePrincipalProfile"] = None, + addon_profiles: Optional[Dict[str, "ManagedClusterAddonProfile"]] = None, + pod_identity_profile: Optional["ManagedClusterPodIdentityProfile"] = None, + node_resource_group: Optional[str] = None, + enable_rbac: Optional[bool] = None, + enable_pod_security_policy: Optional[bool] = None, + network_profile: Optional["ContainerServiceNetworkProfile"] = None, + aad_profile: Optional["ManagedClusterAADProfile"] = None, + auto_upgrade_profile: Optional["ManagedClusterAutoUpgradeProfile"] = None, + auto_scaler_profile: Optional["ManagedClusterPropertiesAutoScalerProfile"] = None, + api_server_access_profile: Optional["ManagedClusterAPIServerAccessProfile"] = None, + disk_encryption_set_id: Optional[str] = None, + identity_profile: Optional[Dict[str, "UserAssignedIdentity"]] = None, + private_link_resources: Optional[List["PrivateLinkResource"]] = None, + disable_local_accounts: Optional[bool] = None, + http_proxy_config: Optional["ManagedClusterHTTPProxyConfig"] = None, + security_profile: Optional["ManagedClusterSecurityProfile"] = None, + **kwargs + ): + super(ManagedCluster, self).__init__(location=location, tags=tags, **kwargs) + self.sku = sku + self.extended_location = extended_location + self.identity = identity + self.provisioning_state = None + self.power_state = None + self.max_agent_pools = None + self.kubernetes_version = kubernetes_version + self.dns_prefix = dns_prefix + self.fqdn_subdomain = fqdn_subdomain + self.fqdn = None + self.private_fqdn = None + self.azure_portal_fqdn = None + self.agent_pool_profiles = agent_pool_profiles + self.linux_profile = linux_profile + self.windows_profile = windows_profile + self.service_principal_profile = service_principal_profile + self.addon_profiles = addon_profiles + self.pod_identity_profile = pod_identity_profile + self.node_resource_group = node_resource_group + self.enable_rbac = enable_rbac + self.enable_pod_security_policy = enable_pod_security_policy + self.network_profile = network_profile + self.aad_profile = aad_profile + self.auto_upgrade_profile = auto_upgrade_profile + self.auto_scaler_profile = auto_scaler_profile + self.api_server_access_profile = api_server_access_profile + self.disk_encryption_set_id = disk_encryption_set_id + self.identity_profile = identity_profile + self.private_link_resources = private_link_resources + self.disable_local_accounts = disable_local_accounts + self.http_proxy_config = http_proxy_config + self.security_profile = security_profile + + +class ManagedClusterAADProfile(msrest.serialization.Model): + """For more details see `managed AAD on AKS `_. + + :param managed: Whether to enable managed AAD. + :type managed: bool + :param enable_azure_rbac: Whether to enable Azure RBAC for Kubernetes authorization. + :type enable_azure_rbac: bool + :param admin_group_object_i_ds: The list of AAD group object IDs that will have admin role of + the cluster. + :type admin_group_object_i_ds: list[str] + :param client_app_id: The client AAD application ID. + :type client_app_id: str + :param server_app_id: The server AAD application ID. + :type server_app_id: str + :param server_app_secret: The server AAD application secret. + :type server_app_secret: str + :param tenant_id: The AAD tenant ID to use for authentication. If not specified, will use the + tenant of the deployment subscription. + :type tenant_id: str + """ + + _attribute_map = { + 'managed': {'key': 'managed', 'type': 'bool'}, + 'enable_azure_rbac': {'key': 'enableAzureRBAC', 'type': 'bool'}, + 'admin_group_object_i_ds': {'key': 'adminGroupObjectIDs', 'type': '[str]'}, + 'client_app_id': {'key': 'clientAppID', 'type': 'str'}, + 'server_app_id': {'key': 'serverAppID', 'type': 'str'}, + 'server_app_secret': {'key': 'serverAppSecret', 'type': 'str'}, + 'tenant_id': {'key': 'tenantID', 'type': 'str'}, + } + + def __init__( + self, + *, + managed: Optional[bool] = None, + enable_azure_rbac: Optional[bool] = None, + admin_group_object_i_ds: Optional[List[str]] = None, + client_app_id: Optional[str] = None, + server_app_id: Optional[str] = None, + server_app_secret: Optional[str] = None, + tenant_id: Optional[str] = None, + **kwargs + ): + super(ManagedClusterAADProfile, self).__init__(**kwargs) + self.managed = managed + self.enable_azure_rbac = enable_azure_rbac + self.admin_group_object_i_ds = admin_group_object_i_ds + self.client_app_id = client_app_id + self.server_app_id = server_app_id + self.server_app_secret = server_app_secret + self.tenant_id = tenant_id + + +class ManagedClusterAccessProfile(Resource): + """Managed cluster Access Profile. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param location: Required. Resource location. + :type location: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param kube_config: Base64-encoded Kubernetes configuration file. + :type kube_config: bytearray + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'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}'}, + 'kube_config': {'key': 'properties.kubeConfig', 'type': 'bytearray'}, + } + + def __init__( + self, + *, + location: str, + tags: Optional[Dict[str, str]] = None, + kube_config: Optional[bytearray] = None, + **kwargs + ): + super(ManagedClusterAccessProfile, self).__init__(location=location, tags=tags, **kwargs) + self.kube_config = kube_config + + +class ManagedClusterAddonProfile(msrest.serialization.Model): + """A Kubernetes add-on profile for a managed cluster. + + 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 enabled: Required. Whether the add-on is enabled or not. + :type enabled: bool + :param config: Key-value pairs for configuring an add-on. + :type config: dict[str, str] + :ivar identity: Information of user assigned identity used by this add-on. + :vartype identity: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterAddonProfileIdentity + """ + + _validation = { + 'enabled': {'required': True}, + 'identity': {'readonly': True}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'config': {'key': 'config', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedClusterAddonProfileIdentity'}, + } + + def __init__( + self, + *, + enabled: bool, + config: Optional[Dict[str, str]] = None, + **kwargs + ): + super(ManagedClusterAddonProfile, self).__init__(**kwargs) + self.enabled = enabled + self.config = config + self.identity = None + + +class UserAssignedIdentity(msrest.serialization.Model): + """Details about a user assigned identity. + + :param resource_id: The resource ID of the user assigned identity. + :type resource_id: str + :param client_id: The client ID of the user assigned identity. + :type client_id: str + :param object_id: The object ID of the user assigned identity. + :type object_id: str + """ + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + 'client_id': {'key': 'clientId', 'type': 'str'}, + 'object_id': {'key': 'objectId', 'type': 'str'}, + } + + def __init__( + self, + *, + resource_id: Optional[str] = None, + client_id: Optional[str] = None, + object_id: Optional[str] = None, + **kwargs + ): + super(UserAssignedIdentity, self).__init__(**kwargs) + self.resource_id = resource_id + self.client_id = client_id + self.object_id = object_id + + +class ManagedClusterAddonProfileIdentity(UserAssignedIdentity): + """Information of user assigned identity used by this add-on. + + :param resource_id: The resource ID of the user assigned identity. + :type resource_id: str + :param client_id: The client ID of the user assigned identity. + :type client_id: str + :param object_id: The object ID of the user assigned identity. + :type object_id: str + """ + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + 'client_id': {'key': 'clientId', 'type': 'str'}, + 'object_id': {'key': 'objectId', 'type': 'str'}, + } + + def __init__( + self, + *, + resource_id: Optional[str] = None, + client_id: Optional[str] = None, + object_id: Optional[str] = None, + **kwargs + ): + super(ManagedClusterAddonProfileIdentity, self).__init__(resource_id=resource_id, client_id=client_id, object_id=object_id, **kwargs) + + +class ManagedClusterAgentPoolProfileProperties(msrest.serialization.Model): + """Properties for the container service agent pool profile. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param count: Number of agents (VMs) to host docker containers. Allowed values must be in the + range of 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for + system pools. The default value is 1. + :type count: int + :param vm_size: VM size availability varies by region. If a node contains insufficient compute + resources (memory, cpu, etc) pods might fail to run correctly. For more details on restricted + VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions. + :type vm_size: str + :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every + machine in the master/agent pool. If you specify 0, it will apply the default osDisk size + according to the vmSize specified. + :type os_disk_size_gb: int + :param os_disk_type: The default is 'Ephemeral' if the VM supports it and has a cache disk + larger than the requested OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed + after creation. For more information see `Ephemeral OS + `_. Possible values + include: "Managed", "Ephemeral". + :type os_disk_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSDiskType + :param kubelet_disk_type: Determines the placement of emptyDir volumes, container runtime data + root, and Kubelet ephemeral storage. Possible values include: "OS", "Temporary". + :type kubelet_disk_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.KubeletDiskType + :param vnet_subnet_id: If this is not specified, a VNET and subnet will be generated and used. + If no podSubnetID is specified, this applies to nodes and pods, otherwise it applies to just + nodes. This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. + :type vnet_subnet_id: str + :param pod_subnet_id: If omitted, pod IPs are statically assigned on the node subnet (see + vnetSubnetID for more details). This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. + :type pod_subnet_id: str + :param max_pods: The maximum number of pods that can run on a node. + :type max_pods: int + :param os_type: The operating system type. The default is Linux. Possible values include: + "Linux", "Windows". Default value: "Linux". + :type os_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSType + :param os_sku: Specifies an OS SKU. This value must not be specified if OSType is Windows. + Possible values include: "Ubuntu", "CBLMariner". + :type os_sku: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSSKU + :param max_count: The maximum number of nodes for auto-scaling. + :type max_count: int + :param min_count: The minimum number of nodes for auto-scaling. + :type min_count: int + :param enable_auto_scaling: Whether to enable auto-scaler. + :type enable_auto_scaling: bool + :param scale_down_mode: This also effects the cluster autoscaler behavior. If not specified, it + defaults to Delete. Possible values include: "Delete", "Deallocate". + :type scale_down_mode: str or ~azure.mgmt.containerservice.v2021_07_01.models.ScaleDownMode + :param type: The type of Agent Pool. Possible values include: "VirtualMachineScaleSets", + "AvailabilitySet". + :type type: str or ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolType + :param mode: A cluster must have at least one 'System' Agent Pool at all times. For additional + information on agent pool restrictions and best practices, see: + https://docs.microsoft.com/azure/aks/use-system-pools. Possible values include: "System", + "User". + :type mode: str or ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolMode + :param orchestrator_version: As a best practice, you should upgrade all node pools in an AKS + cluster to the same Kubernetes version. The node pool version must have the same major version + as the control plane. The node pool minor version must be within two minor versions of the + control plane version. The node pool version cannot be greater than the control plane version. + For more information see `upgrading a node pool + `_. + :type orchestrator_version: str + :ivar node_image_version: The version of node image. + :vartype node_image_version: str + :param upgrade_settings: Settings for upgrading the agentpool. + :type upgrade_settings: + ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolUpgradeSettings + :ivar provisioning_state: The current deployment or provisioning state. + :vartype provisioning_state: str + :ivar power_state: Describes whether the Agent Pool is Running or Stopped. + :vartype power_state: ~azure.mgmt.containerservice.v2021_07_01.models.PowerState + :param availability_zones: The list of Availability zones to use for nodes. This can only be + specified if the AgentPoolType property is 'VirtualMachineScaleSets'. + :type availability_zones: list[str] + :param enable_node_public_ip: Some scenarios may require nodes in a node pool to receive their + own dedicated public IP addresses. A common scenario is for gaming workloads, where a console + needs to make a direct connection to a cloud virtual machine to minimize hops. For more + information see `assigning a public IP per node + `_. + The default is false. + :type enable_node_public_ip: bool + :param node_public_ip_prefix_id: This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}. + :type node_public_ip_prefix_id: str + :param scale_set_priority: The Virtual Machine Scale Set priority. If not specified, the + default is 'Regular'. Possible values include: "Spot", "Regular". Default value: "Regular". + :type scale_set_priority: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ScaleSetPriority + :param scale_set_eviction_policy: This cannot be specified unless the scaleSetPriority is + 'Spot'. If not specified, the default is 'Delete'. Possible values include: "Delete", + "Deallocate". Default value: "Delete". + :type scale_set_eviction_policy: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ScaleSetEvictionPolicy + :param spot_max_price: Possible values are any decimal value greater than zero or -1 which + indicates the willingness to pay any on-demand price. For more details on spot pricing, see + `spot VMs pricing `_. + :type spot_max_price: float + :param tags: A set of tags. The tags to be persisted on the agent pool virtual machine scale + set. + :type tags: dict[str, str] + :param node_labels: The node labels to be persisted across all nodes in agent pool. + :type node_labels: dict[str, str] + :param node_taints: The taints added to new nodes during node pool create and scale. For + example, key=value:NoSchedule. + :type node_taints: list[str] + :param proximity_placement_group_id: The ID for Proximity Placement Group. + :type proximity_placement_group_id: str + :param kubelet_config: The Kubelet configuration on the agent pool nodes. + :type kubelet_config: ~azure.mgmt.containerservice.v2021_07_01.models.KubeletConfig + :param linux_os_config: The OS configuration of Linux agent nodes. + :type linux_os_config: ~azure.mgmt.containerservice.v2021_07_01.models.LinuxOSConfig + :param enable_encryption_at_host: This is only supported on certain VM sizes and in certain + Azure regions. For more information, see: + https://docs.microsoft.com/azure/aks/enable-host-encryption. + :type enable_encryption_at_host: bool + :param enable_ultra_ssd: Whether to enable UltraSSD. + :type enable_ultra_ssd: bool + :param enable_fips: See `Add a FIPS-enabled node pool + `_ + for more details. + :type enable_fips: bool + :param gpu_instance_profile: GPUInstanceProfile to be used to specify GPU MIG instance profile + for supported GPU VM SKU. Possible values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". + :type gpu_instance_profile: str or + ~azure.mgmt.containerservice.v2021_07_01.models.GPUInstanceProfile + """ + + _validation = { + 'os_disk_size_gb': {'maximum': 2048, 'minimum': 0}, + 'node_image_version': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'power_state': {'readonly': True}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'os_disk_size_gb': {'key': 'osDiskSizeGB', 'type': 'int'}, + 'os_disk_type': {'key': 'osDiskType', 'type': 'str'}, + 'kubelet_disk_type': {'key': 'kubeletDiskType', 'type': 'str'}, + 'vnet_subnet_id': {'key': 'vnetSubnetID', 'type': 'str'}, + 'pod_subnet_id': {'key': 'podSubnetID', 'type': 'str'}, + 'max_pods': {'key': 'maxPods', 'type': 'int'}, + 'os_type': {'key': 'osType', 'type': 'str'}, + 'os_sku': {'key': 'osSKU', 'type': 'str'}, + 'max_count': {'key': 'maxCount', 'type': 'int'}, + 'min_count': {'key': 'minCount', 'type': 'int'}, + 'enable_auto_scaling': {'key': 'enableAutoScaling', 'type': 'bool'}, + 'scale_down_mode': {'key': 'scaleDownMode', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'mode': {'key': 'mode', 'type': 'str'}, + 'orchestrator_version': {'key': 'orchestratorVersion', 'type': 'str'}, + 'node_image_version': {'key': 'nodeImageVersion', 'type': 'str'}, + 'upgrade_settings': {'key': 'upgradeSettings', 'type': 'AgentPoolUpgradeSettings'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'power_state': {'key': 'powerState', 'type': 'PowerState'}, + 'availability_zones': {'key': 'availabilityZones', 'type': '[str]'}, + 'enable_node_public_ip': {'key': 'enableNodePublicIP', 'type': 'bool'}, + 'node_public_ip_prefix_id': {'key': 'nodePublicIPPrefixID', 'type': 'str'}, + 'scale_set_priority': {'key': 'scaleSetPriority', 'type': 'str'}, + 'scale_set_eviction_policy': {'key': 'scaleSetEvictionPolicy', 'type': 'str'}, + 'spot_max_price': {'key': 'spotMaxPrice', 'type': 'float'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'node_labels': {'key': 'nodeLabels', 'type': '{str}'}, + 'node_taints': {'key': 'nodeTaints', 'type': '[str]'}, + 'proximity_placement_group_id': {'key': 'proximityPlacementGroupID', 'type': 'str'}, + 'kubelet_config': {'key': 'kubeletConfig', 'type': 'KubeletConfig'}, + 'linux_os_config': {'key': 'linuxOSConfig', 'type': 'LinuxOSConfig'}, + 'enable_encryption_at_host': {'key': 'enableEncryptionAtHost', 'type': 'bool'}, + 'enable_ultra_ssd': {'key': 'enableUltraSSD', 'type': 'bool'}, + 'enable_fips': {'key': 'enableFIPS', 'type': 'bool'}, + 'gpu_instance_profile': {'key': 'gpuInstanceProfile', 'type': 'str'}, + } + + def __init__( + self, + *, + count: Optional[int] = None, + vm_size: Optional[str] = None, + os_disk_size_gb: Optional[int] = None, + os_disk_type: Optional[Union[str, "OSDiskType"]] = None, + kubelet_disk_type: Optional[Union[str, "KubeletDiskType"]] = None, + vnet_subnet_id: Optional[str] = None, + pod_subnet_id: Optional[str] = None, + max_pods: Optional[int] = None, + os_type: Optional[Union[str, "OSType"]] = "Linux", + os_sku: Optional[Union[str, "OSSKU"]] = None, + max_count: Optional[int] = None, + min_count: Optional[int] = None, + enable_auto_scaling: Optional[bool] = None, + scale_down_mode: Optional[Union[str, "ScaleDownMode"]] = None, + type: Optional[Union[str, "AgentPoolType"]] = None, + mode: Optional[Union[str, "AgentPoolMode"]] = None, + orchestrator_version: Optional[str] = None, + upgrade_settings: Optional["AgentPoolUpgradeSettings"] = None, + availability_zones: Optional[List[str]] = None, + enable_node_public_ip: Optional[bool] = None, + node_public_ip_prefix_id: Optional[str] = None, + scale_set_priority: Optional[Union[str, "ScaleSetPriority"]] = "Regular", + scale_set_eviction_policy: Optional[Union[str, "ScaleSetEvictionPolicy"]] = "Delete", + spot_max_price: Optional[float] = -1, + tags: Optional[Dict[str, str]] = None, + node_labels: Optional[Dict[str, str]] = None, + node_taints: Optional[List[str]] = None, + proximity_placement_group_id: Optional[str] = None, + kubelet_config: Optional["KubeletConfig"] = None, + linux_os_config: Optional["LinuxOSConfig"] = None, + enable_encryption_at_host: Optional[bool] = None, + enable_ultra_ssd: Optional[bool] = None, + enable_fips: Optional[bool] = None, + gpu_instance_profile: Optional[Union[str, "GPUInstanceProfile"]] = None, + **kwargs + ): + super(ManagedClusterAgentPoolProfileProperties, self).__init__(**kwargs) + self.count = count + self.vm_size = vm_size + self.os_disk_size_gb = os_disk_size_gb + self.os_disk_type = os_disk_type + self.kubelet_disk_type = kubelet_disk_type + self.vnet_subnet_id = vnet_subnet_id + self.pod_subnet_id = pod_subnet_id + self.max_pods = max_pods + self.os_type = os_type + self.os_sku = os_sku + self.max_count = max_count + self.min_count = min_count + self.enable_auto_scaling = enable_auto_scaling + self.scale_down_mode = scale_down_mode + self.type = type + self.mode = mode + self.orchestrator_version = orchestrator_version + self.node_image_version = None + self.upgrade_settings = upgrade_settings + self.provisioning_state = None + self.power_state = None + self.availability_zones = availability_zones + self.enable_node_public_ip = enable_node_public_ip + self.node_public_ip_prefix_id = node_public_ip_prefix_id + self.scale_set_priority = scale_set_priority + self.scale_set_eviction_policy = scale_set_eviction_policy + self.spot_max_price = spot_max_price + self.tags = tags + self.node_labels = node_labels + self.node_taints = node_taints + self.proximity_placement_group_id = proximity_placement_group_id + self.kubelet_config = kubelet_config + self.linux_os_config = linux_os_config + self.enable_encryption_at_host = enable_encryption_at_host + self.enable_ultra_ssd = enable_ultra_ssd + self.enable_fips = enable_fips + self.gpu_instance_profile = gpu_instance_profile + + +class ManagedClusterAgentPoolProfile(ManagedClusterAgentPoolProfileProperties): + """Profile for the container service agent pool. + + 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 count: Number of agents (VMs) to host docker containers. Allowed values must be in the + range of 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for + system pools. The default value is 1. + :type count: int + :param vm_size: VM size availability varies by region. If a node contains insufficient compute + resources (memory, cpu, etc) pods might fail to run correctly. For more details on restricted + VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions. + :type vm_size: str + :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every + machine in the master/agent pool. If you specify 0, it will apply the default osDisk size + according to the vmSize specified. + :type os_disk_size_gb: int + :param os_disk_type: The default is 'Ephemeral' if the VM supports it and has a cache disk + larger than the requested OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed + after creation. For more information see `Ephemeral OS + `_. Possible values + include: "Managed", "Ephemeral". + :type os_disk_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSDiskType + :param kubelet_disk_type: Determines the placement of emptyDir volumes, container runtime data + root, and Kubelet ephemeral storage. Possible values include: "OS", "Temporary". + :type kubelet_disk_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.KubeletDiskType + :param vnet_subnet_id: If this is not specified, a VNET and subnet will be generated and used. + If no podSubnetID is specified, this applies to nodes and pods, otherwise it applies to just + nodes. This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. + :type vnet_subnet_id: str + :param pod_subnet_id: If omitted, pod IPs are statically assigned on the node subnet (see + vnetSubnetID for more details). This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}. + :type pod_subnet_id: str + :param max_pods: The maximum number of pods that can run on a node. + :type max_pods: int + :param os_type: The operating system type. The default is Linux. Possible values include: + "Linux", "Windows". Default value: "Linux". + :type os_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSType + :param os_sku: Specifies an OS SKU. This value must not be specified if OSType is Windows. + Possible values include: "Ubuntu", "CBLMariner". + :type os_sku: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSSKU + :param max_count: The maximum number of nodes for auto-scaling. + :type max_count: int + :param min_count: The minimum number of nodes for auto-scaling. + :type min_count: int + :param enable_auto_scaling: Whether to enable auto-scaler. + :type enable_auto_scaling: bool + :param scale_down_mode: This also effects the cluster autoscaler behavior. If not specified, it + defaults to Delete. Possible values include: "Delete", "Deallocate". + :type scale_down_mode: str or ~azure.mgmt.containerservice.v2021_07_01.models.ScaleDownMode + :param type: The type of Agent Pool. Possible values include: "VirtualMachineScaleSets", + "AvailabilitySet". + :type type: str or ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolType + :param mode: A cluster must have at least one 'System' Agent Pool at all times. For additional + information on agent pool restrictions and best practices, see: + https://docs.microsoft.com/azure/aks/use-system-pools. Possible values include: "System", + "User". + :type mode: str or ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolMode + :param orchestrator_version: As a best practice, you should upgrade all node pools in an AKS + cluster to the same Kubernetes version. The node pool version must have the same major version + as the control plane. The node pool minor version must be within two minor versions of the + control plane version. The node pool version cannot be greater than the control plane version. + For more information see `upgrading a node pool + `_. + :type orchestrator_version: str + :ivar node_image_version: The version of node image. + :vartype node_image_version: str + :param upgrade_settings: Settings for upgrading the agentpool. + :type upgrade_settings: + ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolUpgradeSettings + :ivar provisioning_state: The current deployment or provisioning state. + :vartype provisioning_state: str + :ivar power_state: Describes whether the Agent Pool is Running or Stopped. + :vartype power_state: ~azure.mgmt.containerservice.v2021_07_01.models.PowerState + :param availability_zones: The list of Availability zones to use for nodes. This can only be + specified if the AgentPoolType property is 'VirtualMachineScaleSets'. + :type availability_zones: list[str] + :param enable_node_public_ip: Some scenarios may require nodes in a node pool to receive their + own dedicated public IP addresses. A common scenario is for gaming workloads, where a console + needs to make a direct connection to a cloud virtual machine to minimize hops. For more + information see `assigning a public IP per node + `_. + The default is false. + :type enable_node_public_ip: bool + :param node_public_ip_prefix_id: This is of the form: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}. + :type node_public_ip_prefix_id: str + :param scale_set_priority: The Virtual Machine Scale Set priority. If not specified, the + default is 'Regular'. Possible values include: "Spot", "Regular". Default value: "Regular". + :type scale_set_priority: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ScaleSetPriority + :param scale_set_eviction_policy: This cannot be specified unless the scaleSetPriority is + 'Spot'. If not specified, the default is 'Delete'. Possible values include: "Delete", + "Deallocate". Default value: "Delete". + :type scale_set_eviction_policy: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ScaleSetEvictionPolicy + :param spot_max_price: Possible values are any decimal value greater than zero or -1 which + indicates the willingness to pay any on-demand price. For more details on spot pricing, see + `spot VMs pricing `_. + :type spot_max_price: float + :param tags: A set of tags. The tags to be persisted on the agent pool virtual machine scale + set. + :type tags: dict[str, str] + :param node_labels: The node labels to be persisted across all nodes in agent pool. + :type node_labels: dict[str, str] + :param node_taints: The taints added to new nodes during node pool create and scale. For + example, key=value:NoSchedule. + :type node_taints: list[str] + :param proximity_placement_group_id: The ID for Proximity Placement Group. + :type proximity_placement_group_id: str + :param kubelet_config: The Kubelet configuration on the agent pool nodes. + :type kubelet_config: ~azure.mgmt.containerservice.v2021_07_01.models.KubeletConfig + :param linux_os_config: The OS configuration of Linux agent nodes. + :type linux_os_config: ~azure.mgmt.containerservice.v2021_07_01.models.LinuxOSConfig + :param enable_encryption_at_host: This is only supported on certain VM sizes and in certain + Azure regions. For more information, see: + https://docs.microsoft.com/azure/aks/enable-host-encryption. + :type enable_encryption_at_host: bool + :param enable_ultra_ssd: Whether to enable UltraSSD. + :type enable_ultra_ssd: bool + :param enable_fips: See `Add a FIPS-enabled node pool + `_ + for more details. + :type enable_fips: bool + :param gpu_instance_profile: GPUInstanceProfile to be used to specify GPU MIG instance profile + for supported GPU VM SKU. Possible values include: "MIG1g", "MIG2g", "MIG3g", "MIG4g", "MIG7g". + :type gpu_instance_profile: str or + ~azure.mgmt.containerservice.v2021_07_01.models.GPUInstanceProfile + :param name: Required. Windows agent pool names must be 6 characters or less. + :type name: str + """ + + _validation = { + 'os_disk_size_gb': {'maximum': 2048, 'minimum': 0}, + 'node_image_version': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'power_state': {'readonly': True}, + 'name': {'required': True, 'pattern': r'^[a-z][a-z0-9]{0,11}$'}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'os_disk_size_gb': {'key': 'osDiskSizeGB', 'type': 'int'}, + 'os_disk_type': {'key': 'osDiskType', 'type': 'str'}, + 'kubelet_disk_type': {'key': 'kubeletDiskType', 'type': 'str'}, + 'vnet_subnet_id': {'key': 'vnetSubnetID', 'type': 'str'}, + 'pod_subnet_id': {'key': 'podSubnetID', 'type': 'str'}, + 'max_pods': {'key': 'maxPods', 'type': 'int'}, + 'os_type': {'key': 'osType', 'type': 'str'}, + 'os_sku': {'key': 'osSKU', 'type': 'str'}, + 'max_count': {'key': 'maxCount', 'type': 'int'}, + 'min_count': {'key': 'minCount', 'type': 'int'}, + 'enable_auto_scaling': {'key': 'enableAutoScaling', 'type': 'bool'}, + 'scale_down_mode': {'key': 'scaleDownMode', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'mode': {'key': 'mode', 'type': 'str'}, + 'orchestrator_version': {'key': 'orchestratorVersion', 'type': 'str'}, + 'node_image_version': {'key': 'nodeImageVersion', 'type': 'str'}, + 'upgrade_settings': {'key': 'upgradeSettings', 'type': 'AgentPoolUpgradeSettings'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'power_state': {'key': 'powerState', 'type': 'PowerState'}, + 'availability_zones': {'key': 'availabilityZones', 'type': '[str]'}, + 'enable_node_public_ip': {'key': 'enableNodePublicIP', 'type': 'bool'}, + 'node_public_ip_prefix_id': {'key': 'nodePublicIPPrefixID', 'type': 'str'}, + 'scale_set_priority': {'key': 'scaleSetPriority', 'type': 'str'}, + 'scale_set_eviction_policy': {'key': 'scaleSetEvictionPolicy', 'type': 'str'}, + 'spot_max_price': {'key': 'spotMaxPrice', 'type': 'float'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'node_labels': {'key': 'nodeLabels', 'type': '{str}'}, + 'node_taints': {'key': 'nodeTaints', 'type': '[str]'}, + 'proximity_placement_group_id': {'key': 'proximityPlacementGroupID', 'type': 'str'}, + 'kubelet_config': {'key': 'kubeletConfig', 'type': 'KubeletConfig'}, + 'linux_os_config': {'key': 'linuxOSConfig', 'type': 'LinuxOSConfig'}, + 'enable_encryption_at_host': {'key': 'enableEncryptionAtHost', 'type': 'bool'}, + 'enable_ultra_ssd': {'key': 'enableUltraSSD', 'type': 'bool'}, + 'enable_fips': {'key': 'enableFIPS', 'type': 'bool'}, + 'gpu_instance_profile': {'key': 'gpuInstanceProfile', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + } + + def __init__( + self, + *, + name: str, + count: Optional[int] = None, + vm_size: Optional[str] = None, + os_disk_size_gb: Optional[int] = None, + os_disk_type: Optional[Union[str, "OSDiskType"]] = None, + kubelet_disk_type: Optional[Union[str, "KubeletDiskType"]] = None, + vnet_subnet_id: Optional[str] = None, + pod_subnet_id: Optional[str] = None, + max_pods: Optional[int] = None, + os_type: Optional[Union[str, "OSType"]] = "Linux", + os_sku: Optional[Union[str, "OSSKU"]] = None, + max_count: Optional[int] = None, + min_count: Optional[int] = None, + enable_auto_scaling: Optional[bool] = None, + scale_down_mode: Optional[Union[str, "ScaleDownMode"]] = None, + type: Optional[Union[str, "AgentPoolType"]] = None, + mode: Optional[Union[str, "AgentPoolMode"]] = None, + orchestrator_version: Optional[str] = None, + upgrade_settings: Optional["AgentPoolUpgradeSettings"] = None, + availability_zones: Optional[List[str]] = None, + enable_node_public_ip: Optional[bool] = None, + node_public_ip_prefix_id: Optional[str] = None, + scale_set_priority: Optional[Union[str, "ScaleSetPriority"]] = "Regular", + scale_set_eviction_policy: Optional[Union[str, "ScaleSetEvictionPolicy"]] = "Delete", + spot_max_price: Optional[float] = -1, + tags: Optional[Dict[str, str]] = None, + node_labels: Optional[Dict[str, str]] = None, + node_taints: Optional[List[str]] = None, + proximity_placement_group_id: Optional[str] = None, + kubelet_config: Optional["KubeletConfig"] = None, + linux_os_config: Optional["LinuxOSConfig"] = None, + enable_encryption_at_host: Optional[bool] = None, + enable_ultra_ssd: Optional[bool] = None, + enable_fips: Optional[bool] = None, + gpu_instance_profile: Optional[Union[str, "GPUInstanceProfile"]] = None, + **kwargs + ): + super(ManagedClusterAgentPoolProfile, self).__init__(count=count, vm_size=vm_size, os_disk_size_gb=os_disk_size_gb, os_disk_type=os_disk_type, kubelet_disk_type=kubelet_disk_type, vnet_subnet_id=vnet_subnet_id, pod_subnet_id=pod_subnet_id, max_pods=max_pods, os_type=os_type, os_sku=os_sku, max_count=max_count, min_count=min_count, enable_auto_scaling=enable_auto_scaling, scale_down_mode=scale_down_mode, type=type, mode=mode, orchestrator_version=orchestrator_version, upgrade_settings=upgrade_settings, availability_zones=availability_zones, enable_node_public_ip=enable_node_public_ip, node_public_ip_prefix_id=node_public_ip_prefix_id, scale_set_priority=scale_set_priority, scale_set_eviction_policy=scale_set_eviction_policy, spot_max_price=spot_max_price, tags=tags, node_labels=node_labels, node_taints=node_taints, proximity_placement_group_id=proximity_placement_group_id, kubelet_config=kubelet_config, linux_os_config=linux_os_config, enable_encryption_at_host=enable_encryption_at_host, enable_ultra_ssd=enable_ultra_ssd, enable_fips=enable_fips, gpu_instance_profile=gpu_instance_profile, **kwargs) + self.name = name + + +class ManagedClusterAPIServerAccessProfile(msrest.serialization.Model): + """Access profile for managed cluster API server. + + :param authorized_ip_ranges: IP ranges are specified in CIDR format, e.g. 137.117.106.88/29. + This feature is not compatible with clusters that use Public IP Per Node, or clusters that are + using a Basic Load Balancer. For more information see `API server authorized IP ranges + `_. + :type authorized_ip_ranges: list[str] + :param enable_private_cluster: For more details, see `Creating a private AKS cluster + `_. + :type enable_private_cluster: bool + :param private_dns_zone: The default is System. For more details see `configure private DNS + zone `_. + Allowed values are 'system' and 'none'. + :type private_dns_zone: str + :param enable_private_cluster_public_fqdn: Whether to create additional public FQDN for private + cluster or not. + :type enable_private_cluster_public_fqdn: bool + """ + + _attribute_map = { + 'authorized_ip_ranges': {'key': 'authorizedIPRanges', 'type': '[str]'}, + 'enable_private_cluster': {'key': 'enablePrivateCluster', 'type': 'bool'}, + 'private_dns_zone': {'key': 'privateDNSZone', 'type': 'str'}, + 'enable_private_cluster_public_fqdn': {'key': 'enablePrivateClusterPublicFQDN', 'type': 'bool'}, + } + + def __init__( + self, + *, + authorized_ip_ranges: Optional[List[str]] = None, + enable_private_cluster: Optional[bool] = None, + private_dns_zone: Optional[str] = None, + enable_private_cluster_public_fqdn: Optional[bool] = None, + **kwargs + ): + super(ManagedClusterAPIServerAccessProfile, self).__init__(**kwargs) + self.authorized_ip_ranges = authorized_ip_ranges + self.enable_private_cluster = enable_private_cluster + self.private_dns_zone = private_dns_zone + self.enable_private_cluster_public_fqdn = enable_private_cluster_public_fqdn + + +class ManagedClusterAutoUpgradeProfile(msrest.serialization.Model): + """Auto upgrade profile for a managed cluster. + + :param upgrade_channel: For more information see `setting the AKS cluster auto-upgrade channel + `_. Possible + values include: "rapid", "stable", "patch", "node-image", "none". + :type upgrade_channel: str or ~azure.mgmt.containerservice.v2021_07_01.models.UpgradeChannel + """ + + _attribute_map = { + 'upgrade_channel': {'key': 'upgradeChannel', 'type': 'str'}, + } + + def __init__( + self, + *, + upgrade_channel: Optional[Union[str, "UpgradeChannel"]] = None, + **kwargs + ): + super(ManagedClusterAutoUpgradeProfile, self).__init__(**kwargs) + self.upgrade_channel = upgrade_channel + + +class ManagedClusterHTTPProxyConfig(msrest.serialization.Model): + """Cluster HTTP proxy configuration. + + :param http_proxy: The HTTP proxy server endpoint to use. + :type http_proxy: str + :param https_proxy: The HTTPS proxy server endpoint to use. + :type https_proxy: str + :param no_proxy: The endpoints that should not go through proxy. + :type no_proxy: list[str] + :param trusted_ca: Alternative CA cert to use for connecting to proxy servers. + :type trusted_ca: str + """ + + _attribute_map = { + 'http_proxy': {'key': 'httpProxy', 'type': 'str'}, + 'https_proxy': {'key': 'httpsProxy', 'type': 'str'}, + 'no_proxy': {'key': 'noProxy', 'type': '[str]'}, + 'trusted_ca': {'key': 'trustedCa', 'type': 'str'}, + } + + def __init__( + self, + *, + http_proxy: Optional[str] = None, + https_proxy: Optional[str] = None, + no_proxy: Optional[List[str]] = None, + trusted_ca: Optional[str] = None, + **kwargs + ): + super(ManagedClusterHTTPProxyConfig, self).__init__(**kwargs) + self.http_proxy = http_proxy + self.https_proxy = https_proxy + self.no_proxy = no_proxy + self.trusted_ca = trusted_ca + + +class ManagedClusterIdentity(msrest.serialization.Model): + """Identity for the managed cluster. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar principal_id: The principal id of the system assigned identity which is used by master + components. + :vartype principal_id: str + :ivar tenant_id: The tenant id of the system assigned identity which is used by master + components. + :vartype tenant_id: str + :param type: For more information see `use managed identities in AKS + `_. Possible values include: + "SystemAssigned", "UserAssigned", "None". + :type type: str or ~azure.mgmt.containerservice.v2021_07_01.models.ResourceIdentityType + :param user_assigned_identities: The keys must be ARM resource IDs in the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + :type user_assigned_identities: dict[str, + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedServiceIdentityUserAssignedIdentitiesValue] + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + } + + _attribute_map = { + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'user_assigned_identities': {'key': 'userAssignedIdentities', 'type': '{ManagedServiceIdentityUserAssignedIdentitiesValue}'}, + } + + def __init__( + self, + *, + type: Optional[Union[str, "ResourceIdentityType"]] = None, + user_assigned_identities: Optional[Dict[str, "ManagedServiceIdentityUserAssignedIdentitiesValue"]] = None, + **kwargs + ): + super(ManagedClusterIdentity, self).__init__(**kwargs) + self.principal_id = None + self.tenant_id = None + self.type = type + self.user_assigned_identities = user_assigned_identities + + +class ManagedClusterListResult(msrest.serialization.Model): + """The response from the List Managed Clusters operation. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param value: The list of managed clusters. + :type value: list[~azure.mgmt.containerservice.v2021_07_01.models.ManagedCluster] + :ivar next_link: The URL to get the next set of managed cluster results. + :vartype next_link: str + """ + + _validation = { + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ManagedCluster]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: Optional[List["ManagedCluster"]] = None, + **kwargs + ): + super(ManagedClusterListResult, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class ManagedClusterLoadBalancerProfile(msrest.serialization.Model): + """Profile of the managed cluster load balancer. + + :param managed_outbound_i_ps: Desired managed outbound IPs for the cluster load balancer. + :type managed_outbound_i_ps: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterLoadBalancerProfileManagedOutboundIPs + :param outbound_ip_prefixes: Desired outbound IP Prefix resources for the cluster load + balancer. + :type outbound_ip_prefixes: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterLoadBalancerProfileOutboundIPPrefixes + :param outbound_i_ps: Desired outbound IP resources for the cluster load balancer. + :type outbound_i_ps: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterLoadBalancerProfileOutboundIPs + :param effective_outbound_i_ps: The effective outbound IP resources of the cluster load + balancer. + :type effective_outbound_i_ps: + list[~azure.mgmt.containerservice.v2021_07_01.models.ResourceReference] + :param allocated_outbound_ports: The desired number of allocated SNAT ports per VM. Allowed + values are in the range of 0 to 64000 (inclusive). The default value is 0 which results in + Azure dynamically allocating ports. + :type allocated_outbound_ports: int + :param idle_timeout_in_minutes: Desired outbound flow idle timeout in minutes. Allowed values + are in the range of 4 to 120 (inclusive). The default value is 30 minutes. + :type idle_timeout_in_minutes: int + """ + + _validation = { + 'allocated_outbound_ports': {'maximum': 64000, 'minimum': 0}, + 'idle_timeout_in_minutes': {'maximum': 120, 'minimum': 4}, + } + + _attribute_map = { + 'managed_outbound_i_ps': {'key': 'managedOutboundIPs', 'type': 'ManagedClusterLoadBalancerProfileManagedOutboundIPs'}, + 'outbound_ip_prefixes': {'key': 'outboundIPPrefixes', 'type': 'ManagedClusterLoadBalancerProfileOutboundIPPrefixes'}, + 'outbound_i_ps': {'key': 'outboundIPs', 'type': 'ManagedClusterLoadBalancerProfileOutboundIPs'}, + 'effective_outbound_i_ps': {'key': 'effectiveOutboundIPs', 'type': '[ResourceReference]'}, + 'allocated_outbound_ports': {'key': 'allocatedOutboundPorts', 'type': 'int'}, + 'idle_timeout_in_minutes': {'key': 'idleTimeoutInMinutes', 'type': 'int'}, + } + + def __init__( + self, + *, + managed_outbound_i_ps: Optional["ManagedClusterLoadBalancerProfileManagedOutboundIPs"] = None, + outbound_ip_prefixes: Optional["ManagedClusterLoadBalancerProfileOutboundIPPrefixes"] = None, + outbound_i_ps: Optional["ManagedClusterLoadBalancerProfileOutboundIPs"] = None, + effective_outbound_i_ps: Optional[List["ResourceReference"]] = None, + allocated_outbound_ports: Optional[int] = 0, + idle_timeout_in_minutes: Optional[int] = 30, + **kwargs + ): + super(ManagedClusterLoadBalancerProfile, self).__init__(**kwargs) + self.managed_outbound_i_ps = managed_outbound_i_ps + self.outbound_ip_prefixes = outbound_ip_prefixes + self.outbound_i_ps = outbound_i_ps + self.effective_outbound_i_ps = effective_outbound_i_ps + self.allocated_outbound_ports = allocated_outbound_ports + self.idle_timeout_in_minutes = idle_timeout_in_minutes + + +class ManagedClusterLoadBalancerProfileManagedOutboundIPs(msrest.serialization.Model): + """Desired managed outbound IPs for the cluster load balancer. + + :param count: The desired number of outbound IPs created/managed by Azure for the cluster load + balancer. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1. + :type count: int + """ + + _validation = { + 'count': {'maximum': 100, 'minimum': 1}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + } + + def __init__( + self, + *, + count: Optional[int] = 1, + **kwargs + ): + super(ManagedClusterLoadBalancerProfileManagedOutboundIPs, self).__init__(**kwargs) + self.count = count + + +class ManagedClusterLoadBalancerProfileOutboundIPPrefixes(msrest.serialization.Model): + """Desired outbound IP Prefix resources for the cluster load balancer. + + :param public_ip_prefixes: A list of public IP prefix resources. + :type public_ip_prefixes: + list[~azure.mgmt.containerservice.v2021_07_01.models.ResourceReference] + """ + + _attribute_map = { + 'public_ip_prefixes': {'key': 'publicIPPrefixes', 'type': '[ResourceReference]'}, + } + + def __init__( + self, + *, + public_ip_prefixes: Optional[List["ResourceReference"]] = None, + **kwargs + ): + super(ManagedClusterLoadBalancerProfileOutboundIPPrefixes, self).__init__(**kwargs) + self.public_ip_prefixes = public_ip_prefixes + + +class ManagedClusterLoadBalancerProfileOutboundIPs(msrest.serialization.Model): + """Desired outbound IP resources for the cluster load balancer. + + :param public_i_ps: A list of public IP resources. + :type public_i_ps: list[~azure.mgmt.containerservice.v2021_07_01.models.ResourceReference] + """ + + _attribute_map = { + 'public_i_ps': {'key': 'publicIPs', 'type': '[ResourceReference]'}, + } + + def __init__( + self, + *, + public_i_ps: Optional[List["ResourceReference"]] = None, + **kwargs + ): + super(ManagedClusterLoadBalancerProfileOutboundIPs, self).__init__(**kwargs) + self.public_i_ps = public_i_ps + + +class ManagedClusterManagedOutboundIPProfile(msrest.serialization.Model): + """Profile of the managed outbound IP resources of the managed cluster. + + :param count: The desired number of outbound IPs created/managed by Azure. Allowed values must + be in the range of 1 to 16 (inclusive). The default value is 1. + :type count: int + """ + + _validation = { + 'count': {'maximum': 16, 'minimum': 1}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + } + + def __init__( + self, + *, + count: Optional[int] = 1, + **kwargs + ): + super(ManagedClusterManagedOutboundIPProfile, self).__init__(**kwargs) + self.count = count + + +class ManagedClusterNATGatewayProfile(msrest.serialization.Model): + """Profile of the managed cluster NAT gateway. + + :param managed_outbound_ip_profile: Profile of the managed outbound IP resources of the cluster + NAT gateway. + :type managed_outbound_ip_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterManagedOutboundIPProfile + :param effective_outbound_i_ps: The effective outbound IP resources of the cluster NAT gateway. + :type effective_outbound_i_ps: + list[~azure.mgmt.containerservice.v2021_07_01.models.ResourceReference] + :param idle_timeout_in_minutes: Desired outbound flow idle timeout in minutes. Allowed values + are in the range of 4 to 120 (inclusive). The default value is 4 minutes. + :type idle_timeout_in_minutes: int + """ + + _validation = { + 'idle_timeout_in_minutes': {'maximum': 120, 'minimum': 4}, + } + + _attribute_map = { + 'managed_outbound_ip_profile': {'key': 'managedOutboundIPProfile', 'type': 'ManagedClusterManagedOutboundIPProfile'}, + 'effective_outbound_i_ps': {'key': 'effectiveOutboundIPs', 'type': '[ResourceReference]'}, + 'idle_timeout_in_minutes': {'key': 'idleTimeoutInMinutes', 'type': 'int'}, + } + + def __init__( + self, + *, + managed_outbound_ip_profile: Optional["ManagedClusterManagedOutboundIPProfile"] = None, + effective_outbound_i_ps: Optional[List["ResourceReference"]] = None, + idle_timeout_in_minutes: Optional[int] = 4, + **kwargs + ): + super(ManagedClusterNATGatewayProfile, self).__init__(**kwargs) + self.managed_outbound_ip_profile = managed_outbound_ip_profile + self.effective_outbound_i_ps = effective_outbound_i_ps + self.idle_timeout_in_minutes = idle_timeout_in_minutes + + +class ManagedClusterPodIdentity(msrest.serialization.Model): + """Details about the pod identity assigned to the Managed Cluster. + + 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 name: Required. The name of the pod identity. + :type name: str + :param namespace: Required. The namespace of the pod identity. + :type namespace: str + :param binding_selector: The binding selector to use for the AzureIdentityBinding resource. + :type binding_selector: str + :param identity: Required. The user assigned identity details. + :type identity: ~azure.mgmt.containerservice.v2021_07_01.models.UserAssignedIdentity + :ivar provisioning_state: The current provisioning state of the pod identity. Possible values + include: "Assigned", "Updating", "Deleting", "Failed". + :vartype provisioning_state: str or + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPodIdentityProvisioningState + :ivar provisioning_info: + :vartype provisioning_info: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPodIdentityProvisioningInfo + """ + + _validation = { + 'name': {'required': True}, + 'namespace': {'required': True}, + 'identity': {'required': True}, + 'provisioning_state': {'readonly': True}, + 'provisioning_info': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'namespace': {'key': 'namespace', 'type': 'str'}, + 'binding_selector': {'key': 'bindingSelector', 'type': 'str'}, + 'identity': {'key': 'identity', 'type': 'UserAssignedIdentity'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'provisioning_info': {'key': 'provisioningInfo', 'type': 'ManagedClusterPodIdentityProvisioningInfo'}, + } + + def __init__( + self, + *, + name: str, + namespace: str, + identity: "UserAssignedIdentity", + binding_selector: Optional[str] = None, + **kwargs + ): + super(ManagedClusterPodIdentity, self).__init__(**kwargs) + self.name = name + self.namespace = namespace + self.binding_selector = binding_selector + self.identity = identity + self.provisioning_state = None + self.provisioning_info = None + + +class ManagedClusterPodIdentityException(msrest.serialization.Model): + """See `disable AAD Pod Identity for a specific Pod/Application `_ for more details. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the pod identity exception. + :type name: str + :param namespace: Required. The namespace of the pod identity exception. + :type namespace: str + :param pod_labels: Required. The pod labels to match. + :type pod_labels: dict[str, str] + """ + + _validation = { + 'name': {'required': True}, + 'namespace': {'required': True}, + 'pod_labels': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'namespace': {'key': 'namespace', 'type': 'str'}, + 'pod_labels': {'key': 'podLabels', 'type': '{str}'}, + } + + def __init__( + self, + *, + name: str, + namespace: str, + pod_labels: Dict[str, str], + **kwargs + ): + super(ManagedClusterPodIdentityException, self).__init__(**kwargs) + self.name = name + self.namespace = namespace + self.pod_labels = pod_labels + + +class ManagedClusterPodIdentityProfile(msrest.serialization.Model): + """See `use AAD pod identity `_ for more details on pod identity integration. + + :param enabled: Whether the pod identity addon is enabled. + :type enabled: bool + :param allow_network_plugin_kubenet: Running in Kubenet is disabled by default due to the + security related nature of AAD Pod Identity and the risks of IP spoofing. See `using Kubenet + network plugin with AAD Pod Identity + `_ + for more information. + :type allow_network_plugin_kubenet: bool + :param user_assigned_identities: The pod identities to use in the cluster. + :type user_assigned_identities: + list[~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPodIdentity] + :param user_assigned_identity_exceptions: The pod identity exceptions to allow. + :type user_assigned_identity_exceptions: + list[~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPodIdentityException] + """ + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'allow_network_plugin_kubenet': {'key': 'allowNetworkPluginKubenet', 'type': 'bool'}, + 'user_assigned_identities': {'key': 'userAssignedIdentities', 'type': '[ManagedClusterPodIdentity]'}, + 'user_assigned_identity_exceptions': {'key': 'userAssignedIdentityExceptions', 'type': '[ManagedClusterPodIdentityException]'}, + } + + def __init__( + self, + *, + enabled: Optional[bool] = None, + allow_network_plugin_kubenet: Optional[bool] = None, + user_assigned_identities: Optional[List["ManagedClusterPodIdentity"]] = None, + user_assigned_identity_exceptions: Optional[List["ManagedClusterPodIdentityException"]] = None, + **kwargs + ): + super(ManagedClusterPodIdentityProfile, self).__init__(**kwargs) + self.enabled = enabled + self.allow_network_plugin_kubenet = allow_network_plugin_kubenet + self.user_assigned_identities = user_assigned_identities + self.user_assigned_identity_exceptions = user_assigned_identity_exceptions + + +class ManagedClusterPodIdentityProvisioningError(msrest.serialization.Model): + """An error response from the pod identity provisioning. + + :param error: Details about the error. + :type error: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPodIdentityProvisioningErrorBody + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ManagedClusterPodIdentityProvisioningErrorBody'}, + } + + def __init__( + self, + *, + error: Optional["ManagedClusterPodIdentityProvisioningErrorBody"] = None, + **kwargs + ): + super(ManagedClusterPodIdentityProvisioningError, self).__init__(**kwargs) + self.error = error + + +class ManagedClusterPodIdentityProvisioningErrorBody(msrest.serialization.Model): + """An error response from the pod identity provisioning. + + :param code: An identifier for the error. Codes are invariant and are intended to be consumed + programmatically. + :type code: str + :param message: A message describing the error, intended to be suitable for display in a user + interface. + :type message: str + :param target: The target of the particular error. For example, the name of the property in + error. + :type target: str + :param details: A list of additional details about the error. + :type details: + list[~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPodIdentityProvisioningErrorBody] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[ManagedClusterPodIdentityProvisioningErrorBody]'}, + } + + def __init__( + self, + *, + code: Optional[str] = None, + message: Optional[str] = None, + target: Optional[str] = None, + details: Optional[List["ManagedClusterPodIdentityProvisioningErrorBody"]] = None, + **kwargs + ): + super(ManagedClusterPodIdentityProvisioningErrorBody, self).__init__(**kwargs) + self.code = code + self.message = message + self.target = target + self.details = details + + +class ManagedClusterPodIdentityProvisioningInfo(msrest.serialization.Model): + """ManagedClusterPodIdentityProvisioningInfo. + + :param error: Pod identity assignment error (if any). + :type error: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPodIdentityProvisioningError + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ManagedClusterPodIdentityProvisioningError'}, + } + + def __init__( + self, + *, + error: Optional["ManagedClusterPodIdentityProvisioningError"] = None, + **kwargs + ): + super(ManagedClusterPodIdentityProvisioningInfo, self).__init__(**kwargs) + self.error = error + + +class ManagedClusterPoolUpgradeProfile(msrest.serialization.Model): + """The list of available upgrade versions. + + All required parameters must be populated in order to send to Azure. + + :param kubernetes_version: Required. The Kubernetes version (major.minor.patch). + :type kubernetes_version: str + :param name: The Agent Pool name. + :type name: str + :param os_type: Required. The operating system type. The default is Linux. Possible values + include: "Linux", "Windows". Default value: "Linux". + :type os_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.OSType + :param upgrades: List of orchestrator types and versions available for upgrade. + :type upgrades: + list[~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPoolUpgradeProfileUpgradesItem] + """ + + _validation = { + 'kubernetes_version': {'required': True}, + 'os_type': {'required': True}, + } + + _attribute_map = { + 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'os_type': {'key': 'osType', 'type': 'str'}, + 'upgrades': {'key': 'upgrades', 'type': '[ManagedClusterPoolUpgradeProfileUpgradesItem]'}, + } + + def __init__( + self, + *, + kubernetes_version: str, + os_type: Union[str, "OSType"] = "Linux", + name: Optional[str] = None, + upgrades: Optional[List["ManagedClusterPoolUpgradeProfileUpgradesItem"]] = None, + **kwargs + ): + super(ManagedClusterPoolUpgradeProfile, self).__init__(**kwargs) + self.kubernetes_version = kubernetes_version + self.name = name + self.os_type = os_type + self.upgrades = upgrades + + +class ManagedClusterPoolUpgradeProfileUpgradesItem(msrest.serialization.Model): + """ManagedClusterPoolUpgradeProfileUpgradesItem. + + :param kubernetes_version: The Kubernetes version (major.minor.patch). + :type kubernetes_version: str + :param is_preview: Whether the Kubernetes version is currently in preview. + :type is_preview: bool + """ + + _attribute_map = { + 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + } + + def __init__( + self, + *, + kubernetes_version: Optional[str] = None, + is_preview: Optional[bool] = None, + **kwargs + ): + super(ManagedClusterPoolUpgradeProfileUpgradesItem, self).__init__(**kwargs) + self.kubernetes_version = kubernetes_version + self.is_preview = is_preview + + +class ManagedClusterPropertiesAutoScalerProfile(msrest.serialization.Model): + """Parameters to be applied to the cluster-autoscaler when enabled. + + :param balance_similar_node_groups: Valid values are 'true' and 'false'. + :type balance_similar_node_groups: str + :param expander: If not specified, the default is 'random'. See `expanders + `_ + for more information. Possible values include: "least-waste", "most-pods", "priority", + "random". + :type expander: str or ~azure.mgmt.containerservice.v2021_07_01.models.Expander + :param max_empty_bulk_delete: The default is 10. + :type max_empty_bulk_delete: str + :param max_graceful_termination_sec: The default is 600. + :type max_graceful_termination_sec: str + :param max_node_provision_time: The default is '15m'. Values must be an integer followed by an + 'm'. No unit of time other than minutes (m) is supported. + :type max_node_provision_time: str + :param max_total_unready_percentage: The default is 45. The maximum is 100 and the minimum is + 0. + :type max_total_unready_percentage: str + :param new_pod_scale_up_delay: For scenarios like burst/batch scale where you don't want CA to + act before the kubernetes scheduler could schedule all the pods, you can tell CA to ignore + unscheduled pods before they're a certain age. The default is '0s'. Values must be an integer + followed by a unit ('s' for seconds, 'm' for minutes, 'h' for hours, etc). + :type new_pod_scale_up_delay: str + :param ok_total_unready_count: This must be an integer. The default is 3. + :type ok_total_unready_count: str + :param scan_interval: The default is '10'. Values must be an integer number of seconds. + :type scan_interval: str + :param scale_down_delay_after_add: The default is '10m'. Values must be an integer followed by + an 'm'. No unit of time other than minutes (m) is supported. + :type scale_down_delay_after_add: str + :param scale_down_delay_after_delete: The default is the scan-interval. Values must be an + integer followed by an 'm'. No unit of time other than minutes (m) is supported. + :type scale_down_delay_after_delete: str + :param scale_down_delay_after_failure: The default is '3m'. Values must be an integer followed + by an 'm'. No unit of time other than minutes (m) is supported. + :type scale_down_delay_after_failure: str + :param scale_down_unneeded_time: The default is '10m'. Values must be an integer followed by an + 'm'. No unit of time other than minutes (m) is supported. + :type scale_down_unneeded_time: str + :param scale_down_unready_time: The default is '20m'. Values must be an integer followed by an + 'm'. No unit of time other than minutes (m) is supported. + :type scale_down_unready_time: str + :param scale_down_utilization_threshold: The default is '0.5'. + :type scale_down_utilization_threshold: str + :param skip_nodes_with_local_storage: The default is true. + :type skip_nodes_with_local_storage: str + :param skip_nodes_with_system_pods: The default is true. + :type skip_nodes_with_system_pods: str + """ + + _attribute_map = { + 'balance_similar_node_groups': {'key': 'balance-similar-node-groups', 'type': 'str'}, + 'expander': {'key': 'expander', 'type': 'str'}, + 'max_empty_bulk_delete': {'key': 'max-empty-bulk-delete', 'type': 'str'}, + 'max_graceful_termination_sec': {'key': 'max-graceful-termination-sec', 'type': 'str'}, + 'max_node_provision_time': {'key': 'max-node-provision-time', 'type': 'str'}, + 'max_total_unready_percentage': {'key': 'max-total-unready-percentage', 'type': 'str'}, + 'new_pod_scale_up_delay': {'key': 'new-pod-scale-up-delay', 'type': 'str'}, + 'ok_total_unready_count': {'key': 'ok-total-unready-count', 'type': 'str'}, + 'scan_interval': {'key': 'scan-interval', 'type': 'str'}, + 'scale_down_delay_after_add': {'key': 'scale-down-delay-after-add', 'type': 'str'}, + 'scale_down_delay_after_delete': {'key': 'scale-down-delay-after-delete', 'type': 'str'}, + 'scale_down_delay_after_failure': {'key': 'scale-down-delay-after-failure', 'type': 'str'}, + 'scale_down_unneeded_time': {'key': 'scale-down-unneeded-time', 'type': 'str'}, + 'scale_down_unready_time': {'key': 'scale-down-unready-time', 'type': 'str'}, + 'scale_down_utilization_threshold': {'key': 'scale-down-utilization-threshold', 'type': 'str'}, + 'skip_nodes_with_local_storage': {'key': 'skip-nodes-with-local-storage', 'type': 'str'}, + 'skip_nodes_with_system_pods': {'key': 'skip-nodes-with-system-pods', 'type': 'str'}, + } + + def __init__( + self, + *, + balance_similar_node_groups: Optional[str] = None, + expander: Optional[Union[str, "Expander"]] = None, + max_empty_bulk_delete: Optional[str] = None, + max_graceful_termination_sec: Optional[str] = None, + max_node_provision_time: Optional[str] = None, + max_total_unready_percentage: Optional[str] = None, + new_pod_scale_up_delay: Optional[str] = None, + ok_total_unready_count: Optional[str] = None, + scan_interval: Optional[str] = None, + scale_down_delay_after_add: Optional[str] = None, + scale_down_delay_after_delete: Optional[str] = None, + scale_down_delay_after_failure: Optional[str] = None, + scale_down_unneeded_time: Optional[str] = None, + scale_down_unready_time: Optional[str] = None, + scale_down_utilization_threshold: Optional[str] = None, + skip_nodes_with_local_storage: Optional[str] = None, + skip_nodes_with_system_pods: Optional[str] = None, + **kwargs + ): + super(ManagedClusterPropertiesAutoScalerProfile, self).__init__(**kwargs) + self.balance_similar_node_groups = balance_similar_node_groups + self.expander = expander + self.max_empty_bulk_delete = max_empty_bulk_delete + self.max_graceful_termination_sec = max_graceful_termination_sec + self.max_node_provision_time = max_node_provision_time + self.max_total_unready_percentage = max_total_unready_percentage + self.new_pod_scale_up_delay = new_pod_scale_up_delay + self.ok_total_unready_count = ok_total_unready_count + self.scan_interval = scan_interval + self.scale_down_delay_after_add = scale_down_delay_after_add + self.scale_down_delay_after_delete = scale_down_delay_after_delete + self.scale_down_delay_after_failure = scale_down_delay_after_failure + self.scale_down_unneeded_time = scale_down_unneeded_time + self.scale_down_unready_time = scale_down_unready_time + self.scale_down_utilization_threshold = scale_down_utilization_threshold + self.skip_nodes_with_local_storage = skip_nodes_with_local_storage + self.skip_nodes_with_system_pods = skip_nodes_with_system_pods + + +class ManagedClusterSecurityProfile(msrest.serialization.Model): + """Security profile for the container service cluster. + + :param azure_defender: Azure Defender settings for the security profile. + :type azure_defender: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterSecurityProfileAzureDefender + """ + + _attribute_map = { + 'azure_defender': {'key': 'azureDefender', 'type': 'ManagedClusterSecurityProfileAzureDefender'}, + } + + def __init__( + self, + *, + azure_defender: Optional["ManagedClusterSecurityProfileAzureDefender"] = None, + **kwargs + ): + super(ManagedClusterSecurityProfile, self).__init__(**kwargs) + self.azure_defender = azure_defender + + +class ManagedClusterSecurityProfileAzureDefender(msrest.serialization.Model): + """Azure Defender settings for the security profile. + + :param enabled: Whether to enable Azure Defender. + :type enabled: bool + :param log_analytics_workspace_resource_id: Resource ID of the Log Analytics workspace to be + associated with Azure Defender. When Azure Defender is enabled, this field is required and + must be a valid workspace resource ID. When Azure Defender is disabled, leave the field empty. + :type log_analytics_workspace_resource_id: str + """ + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'log_analytics_workspace_resource_id': {'key': 'logAnalyticsWorkspaceResourceId', 'type': 'str'}, + } + + def __init__( + self, + *, + enabled: Optional[bool] = None, + log_analytics_workspace_resource_id: Optional[str] = None, + **kwargs + ): + super(ManagedClusterSecurityProfileAzureDefender, self).__init__(**kwargs) + self.enabled = enabled + self.log_analytics_workspace_resource_id = log_analytics_workspace_resource_id + + +class ManagedClusterServicePrincipalProfile(msrest.serialization.Model): + """Information about a service principal identity for the cluster to use for manipulating Azure APIs. + + All required parameters must be populated in order to send to Azure. + + :param client_id: Required. The ID for the service principal. + :type client_id: str + :param secret: The secret password associated with the service principal in plain text. + :type secret: str + """ + + _validation = { + 'client_id': {'required': True}, + } + + _attribute_map = { + 'client_id': {'key': 'clientId', 'type': 'str'}, + 'secret': {'key': 'secret', 'type': 'str'}, + } + + def __init__( + self, + *, + client_id: str, + secret: Optional[str] = None, + **kwargs + ): + super(ManagedClusterServicePrincipalProfile, self).__init__(**kwargs) + self.client_id = client_id + self.secret = secret + + +class ManagedClusterSKU(msrest.serialization.Model): + """The SKU of a Managed Cluster. + + :param name: The name of a managed cluster SKU. Possible values include: "Basic". + :type name: str or ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterSKUName + :param tier: If not specified, the default is 'Free'. See `uptime SLA + `_ for more details. Possible values include: + "Paid", "Free". + :type tier: str or ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterSKUTier + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'tier': {'key': 'tier', 'type': 'str'}, + } + + def __init__( + self, + *, + name: Optional[Union[str, "ManagedClusterSKUName"]] = None, + tier: Optional[Union[str, "ManagedClusterSKUTier"]] = None, + **kwargs + ): + super(ManagedClusterSKU, self).__init__(**kwargs) + self.name = name + self.tier = tier + + +class ManagedClusterUpgradeProfile(msrest.serialization.Model): + """The list of available upgrades for compute pools. + + 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 ID of the upgrade profile. + :vartype id: str + :ivar name: The name of the upgrade profile. + :vartype name: str + :ivar type: The type of the upgrade profile. + :vartype type: str + :param control_plane_profile: Required. The list of available upgrade versions for the control + plane. + :type control_plane_profile: + ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPoolUpgradeProfile + :param agent_pool_profiles: Required. The list of available upgrade versions for agent pools. + :type agent_pool_profiles: + list[~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterPoolUpgradeProfile] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'control_plane_profile': {'required': True}, + 'agent_pool_profiles': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'control_plane_profile': {'key': 'properties.controlPlaneProfile', 'type': 'ManagedClusterPoolUpgradeProfile'}, + 'agent_pool_profiles': {'key': 'properties.agentPoolProfiles', 'type': '[ManagedClusterPoolUpgradeProfile]'}, + } + + def __init__( + self, + *, + control_plane_profile: "ManagedClusterPoolUpgradeProfile", + agent_pool_profiles: List["ManagedClusterPoolUpgradeProfile"], + **kwargs + ): + super(ManagedClusterUpgradeProfile, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.control_plane_profile = control_plane_profile + self.agent_pool_profiles = agent_pool_profiles + + +class ManagedClusterWindowsProfile(msrest.serialization.Model): + """Profile for Windows VMs in the managed cluster. + + All required parameters must be populated in order to send to Azure. + + :param admin_username: Required. Specifies the name of the administrator account. + :code:`
`:code:`
` **Restriction:** Cannot end in "." :code:`
`:code:`
` + **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", + "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", + "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", + "sys", "test2", "test3", "user4", "user5". :code:`
`:code:`
` **Minimum-length:** 1 + character :code:`
`:code:`
` **Max-length:** 20 characters. + :type admin_username: str + :param admin_password: Specifies the password of the administrator account. + :code:`
`:code:`
` **Minimum-length:** 8 characters :code:`
`:code:`
` + **Max-length:** 123 characters :code:`
`:code:`
` **Complexity requirements:** 3 out of 4 + conditions below need to be fulfilled :code:`
` Has lower characters :code:`
`Has upper + characters :code:`
` Has a digit :code:`
` Has a special character (Regex match [\W_]) + :code:`
`:code:`
` **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", + "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!". + :type admin_password: str + :param license_type: The license type to use for Windows VMs. See `Azure Hybrid User Benefits + `_ for more details. Possible values + include: "None", "Windows_Server". + :type license_type: str or ~azure.mgmt.containerservice.v2021_07_01.models.LicenseType + :param enable_csi_proxy: For more details on CSI proxy, see the `CSI proxy GitHub repo + `_. + :type enable_csi_proxy: bool + """ + + _validation = { + 'admin_username': {'required': True}, + } + + _attribute_map = { + 'admin_username': {'key': 'adminUsername', 'type': 'str'}, + 'admin_password': {'key': 'adminPassword', 'type': 'str'}, + 'license_type': {'key': 'licenseType', 'type': 'str'}, + 'enable_csi_proxy': {'key': 'enableCSIProxy', 'type': 'bool'}, + } + + def __init__( + self, + *, + admin_username: str, + admin_password: Optional[str] = None, + license_type: Optional[Union[str, "LicenseType"]] = None, + enable_csi_proxy: Optional[bool] = None, + **kwargs + ): + super(ManagedClusterWindowsProfile, self).__init__(**kwargs) + self.admin_username = admin_username + self.admin_password = admin_password + self.license_type = license_type + self.enable_csi_proxy = enable_csi_proxy + + +class ManagedServiceIdentityUserAssignedIdentitiesValue(msrest.serialization.Model): + """ManagedServiceIdentityUserAssignedIdentitiesValue. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar principal_id: The principal id of user assigned identity. + :vartype principal_id: str + :ivar client_id: The client id of user assigned identity. + :vartype client_id: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'client_id': {'readonly': True}, + } + + _attribute_map = { + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'client_id': {'key': 'clientId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedServiceIdentityUserAssignedIdentitiesValue, self).__init__(**kwargs) + self.principal_id = None + self.client_id = None + + +class OperationListResult(msrest.serialization.Model): + """The List Operation response. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: The list of operations. + :vartype value: list[~azure.mgmt.containerservice.v2021_07_01.models.OperationValue] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[OperationValue]'}, + } + + def __init__( + self, + **kwargs + ): + super(OperationListResult, self).__init__(**kwargs) + self.value = None + + +class OperationValue(msrest.serialization.Model): + """Describes the properties of a Operation value. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar origin: The origin of the operation. + :vartype origin: str + :ivar name: The name of the operation. + :vartype name: str + :ivar operation: The display name of the operation. + :vartype operation: str + :ivar resource: The display name of the resource the operation applies to. + :vartype resource: str + :ivar description: The description of the operation. + :vartype description: str + :ivar provider: The resource provider for the operation. + :vartype provider: str + """ + + _validation = { + 'origin': {'readonly': True}, + 'name': {'readonly': True}, + 'operation': {'readonly': True}, + 'resource': {'readonly': True}, + 'description': {'readonly': True}, + 'provider': {'readonly': True}, + } + + _attribute_map = { + 'origin': {'key': 'origin', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'operation': {'key': 'display.operation', 'type': 'str'}, + 'resource': {'key': 'display.resource', 'type': 'str'}, + 'description': {'key': 'display.description', 'type': 'str'}, + 'provider': {'key': 'display.provider', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(OperationValue, self).__init__(**kwargs) + self.origin = None + self.name = None + self.operation = None + self.resource = None + self.description = None + self.provider = None + + +class OSOptionProfile(msrest.serialization.Model): + """The OS option profile. + + 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 ID of the OS option resource. + :vartype id: str + :ivar name: The name of the OS option resource. + :vartype name: str + :ivar type: The type of the OS option resource. + :vartype type: str + :param os_option_property_list: Required. The list of OS options. + :type os_option_property_list: + list[~azure.mgmt.containerservice.v2021_07_01.models.OSOptionProperty] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'os_option_property_list': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'os_option_property_list': {'key': 'properties.osOptionPropertyList', 'type': '[OSOptionProperty]'}, + } + + def __init__( + self, + *, + os_option_property_list: List["OSOptionProperty"], + **kwargs + ): + super(OSOptionProfile, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.os_option_property_list = os_option_property_list + + +class OSOptionProperty(msrest.serialization.Model): + """OS option property. + + All required parameters must be populated in order to send to Azure. + + :param os_type: Required. The OS type. + :type os_type: str + :param enable_fips_image: Required. Whether the image is FIPS-enabled. + :type enable_fips_image: bool + """ + + _validation = { + 'os_type': {'required': True}, + 'enable_fips_image': {'required': True}, + } + + _attribute_map = { + 'os_type': {'key': 'os-type', 'type': 'str'}, + 'enable_fips_image': {'key': 'enable-fips-image', 'type': 'bool'}, + } + + def __init__( + self, + *, + os_type: str, + enable_fips_image: bool, + **kwargs + ): + super(OSOptionProperty, self).__init__(**kwargs) + self.os_type = os_type + self.enable_fips_image = enable_fips_image + + +class OutboundEnvironmentEndpoint(msrest.serialization.Model): + """Egress endpoints which AKS agent nodes connect to for common purpose. + + :param category: The category of endpoints accessed by the AKS agent node, e.g. + azure-resource-management, apiserver, etc. + :type category: str + :param endpoints: The endpoints that AKS agent nodes connect to. + :type endpoints: list[~azure.mgmt.containerservice.v2021_07_01.models.EndpointDependency] + """ + + _attribute_map = { + 'category': {'key': 'category', 'type': 'str'}, + 'endpoints': {'key': 'endpoints', 'type': '[EndpointDependency]'}, + } + + def __init__( + self, + *, + category: Optional[str] = None, + endpoints: Optional[List["EndpointDependency"]] = None, + **kwargs + ): + super(OutboundEnvironmentEndpoint, self).__init__(**kwargs) + self.category = category + self.endpoints = endpoints + + +class OutboundEnvironmentEndpointCollection(msrest.serialization.Model): + """Collection of OutboundEnvironmentEndpoint. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.containerservice.v2021_07_01.models.OutboundEnvironmentEndpoint] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[OutboundEnvironmentEndpoint]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["OutboundEnvironmentEndpoint"], + **kwargs + ): + super(OutboundEnvironmentEndpointCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class PowerState(msrest.serialization.Model): + """Describes the Power State of the cluster. + + :param code: Tells whether the cluster is Running or Stopped. Possible values include: + "Running", "Stopped". + :type code: str or ~azure.mgmt.containerservice.v2021_07_01.models.Code + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + } + + def __init__( + self, + *, + code: Optional[Union[str, "Code"]] = None, + **kwargs + ): + super(PowerState, self).__init__(**kwargs) + self.code = code + + +class PrivateEndpoint(msrest.serialization.Model): + """Private endpoint which a connection belongs to. + + :param id: The resource ID of the private endpoint. + :type id: str + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__( + self, + *, + id: Optional[str] = None, + **kwargs + ): + super(PrivateEndpoint, self).__init__(**kwargs) + self.id = id + + +class PrivateEndpointConnection(msrest.serialization.Model): + """A private endpoint connection. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The ID of the private endpoint connection. + :vartype id: str + :ivar name: The name of the private endpoint connection. + :vartype name: str + :ivar type: The resource type. + :vartype type: str + :ivar provisioning_state: The current provisioning state. Possible values include: "Succeeded", + "Creating", "Deleting", "Failed". + :vartype provisioning_state: str or + ~azure.mgmt.containerservice.v2021_07_01.models.PrivateEndpointConnectionProvisioningState + :param private_endpoint: The resource of private endpoint. + :type private_endpoint: ~azure.mgmt.containerservice.v2021_07_01.models.PrivateEndpoint + :param private_link_service_connection_state: A collection of information about the state of + the connection between service consumer and provider. + :type private_link_service_connection_state: + ~azure.mgmt.containerservice.v2021_07_01.models.PrivateLinkServiceConnectionState + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'private_endpoint': {'key': 'properties.privateEndpoint', 'type': 'PrivateEndpoint'}, + 'private_link_service_connection_state': {'key': 'properties.privateLinkServiceConnectionState', 'type': 'PrivateLinkServiceConnectionState'}, + } + + def __init__( + self, + *, + private_endpoint: Optional["PrivateEndpoint"] = None, + private_link_service_connection_state: Optional["PrivateLinkServiceConnectionState"] = None, + **kwargs + ): + super(PrivateEndpointConnection, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.provisioning_state = None + self.private_endpoint = private_endpoint + self.private_link_service_connection_state = private_link_service_connection_state + + +class PrivateEndpointConnectionListResult(msrest.serialization.Model): + """A list of private endpoint connections. + + :param value: The collection value. + :type value: list[~azure.mgmt.containerservice.v2021_07_01.models.PrivateEndpointConnection] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PrivateEndpointConnection]'}, + } + + def __init__( + self, + *, + value: Optional[List["PrivateEndpointConnection"]] = None, + **kwargs + ): + super(PrivateEndpointConnectionListResult, self).__init__(**kwargs) + self.value = value + + +class PrivateLinkResource(msrest.serialization.Model): + """A private link resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param id: The ID of the private link resource. + :type id: str + :param name: The name of the private link resource. + :type name: str + :param type: The resource type. + :type type: str + :param group_id: The group ID of the resource. + :type group_id: str + :param required_members: The RequiredMembers of the resource. + :type required_members: list[str] + :ivar private_link_service_id: The private link service ID of the resource, this field is + exposed only to NRP internally. + :vartype private_link_service_id: str + """ + + _validation = { + 'private_link_service_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'group_id': {'key': 'groupId', 'type': 'str'}, + 'required_members': {'key': 'requiredMembers', 'type': '[str]'}, + 'private_link_service_id': {'key': 'privateLinkServiceID', 'type': 'str'}, + } + + def __init__( + self, + *, + id: Optional[str] = None, + name: Optional[str] = None, + type: Optional[str] = None, + group_id: Optional[str] = None, + required_members: Optional[List[str]] = None, + **kwargs + ): + super(PrivateLinkResource, self).__init__(**kwargs) + self.id = id + self.name = name + self.type = type + self.group_id = group_id + self.required_members = required_members + self.private_link_service_id = None + + +class PrivateLinkResourcesListResult(msrest.serialization.Model): + """A list of private link resources. + + :param value: The collection value. + :type value: list[~azure.mgmt.containerservice.v2021_07_01.models.PrivateLinkResource] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PrivateLinkResource]'}, + } + + def __init__( + self, + *, + value: Optional[List["PrivateLinkResource"]] = None, + **kwargs + ): + super(PrivateLinkResourcesListResult, self).__init__(**kwargs) + self.value = value + + +class PrivateLinkServiceConnectionState(msrest.serialization.Model): + """The state of a private link service connection. + + :param status: The private link service connection status. Possible values include: "Pending", + "Approved", "Rejected", "Disconnected". + :type status: str or ~azure.mgmt.containerservice.v2021_07_01.models.ConnectionStatus + :param description: The private link service connection description. + :type description: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__( + self, + *, + status: Optional[Union[str, "ConnectionStatus"]] = None, + description: Optional[str] = None, + **kwargs + ): + super(PrivateLinkServiceConnectionState, self).__init__(**kwargs) + self.status = status + self.description = description + + +class ResourceReference(msrest.serialization.Model): + """A reference to an Azure resource. + + :param id: The fully qualified Azure resource id. + :type id: str + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__( + self, + *, + id: Optional[str] = None, + **kwargs + ): + super(ResourceReference, self).__init__(**kwargs) + self.id = id + + +class RunCommandRequest(msrest.serialization.Model): + """A run command request. + + All required parameters must be populated in order to send to Azure. + + :param command: Required. The command to run. + :type command: str + :param context: A base64 encoded zip file containing the files required by the command. + :type context: str + :param cluster_token: AuthToken issued for AKS AAD Server App. + :type cluster_token: str + """ + + _validation = { + 'command': {'required': True}, + } + + _attribute_map = { + 'command': {'key': 'command', 'type': 'str'}, + 'context': {'key': 'context', 'type': 'str'}, + 'cluster_token': {'key': 'clusterToken', 'type': 'str'}, + } + + def __init__( + self, + *, + command: str, + context: Optional[str] = None, + cluster_token: Optional[str] = None, + **kwargs + ): + super(RunCommandRequest, self).__init__(**kwargs) + self.command = command + self.context = context + self.cluster_token = cluster_token + + +class RunCommandResult(msrest.serialization.Model): + """run command result. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The command id. + :vartype id: str + :ivar provisioning_state: provisioning State. + :vartype provisioning_state: str + :ivar exit_code: The exit code of the command. + :vartype exit_code: int + :ivar started_at: The time when the command started. + :vartype started_at: ~datetime.datetime + :ivar finished_at: The time when the command finished. + :vartype finished_at: ~datetime.datetime + :ivar logs: The command output. + :vartype logs: str + :ivar reason: An explanation of why provisioningState is set to failed (if so). + :vartype reason: str + """ + + _validation = { + 'id': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'exit_code': {'readonly': True}, + 'started_at': {'readonly': True}, + 'finished_at': {'readonly': True}, + 'logs': {'readonly': True}, + 'reason': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'exit_code': {'key': 'properties.exitCode', 'type': 'int'}, + 'started_at': {'key': 'properties.startedAt', 'type': 'iso-8601'}, + 'finished_at': {'key': 'properties.finishedAt', 'type': 'iso-8601'}, + 'logs': {'key': 'properties.logs', 'type': 'str'}, + 'reason': {'key': 'properties.reason', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RunCommandResult, self).__init__(**kwargs) + self.id = None + self.provisioning_state = None + self.exit_code = None + self.started_at = None + self.finished_at = None + self.logs = None + self.reason = None + + +class SysctlConfig(msrest.serialization.Model): + """Sysctl settings for Linux agent nodes. + + :param net_core_somaxconn: Sysctl setting net.core.somaxconn. + :type net_core_somaxconn: int + :param net_core_netdev_max_backlog: Sysctl setting net.core.netdev_max_backlog. + :type net_core_netdev_max_backlog: int + :param net_core_rmem_default: Sysctl setting net.core.rmem_default. + :type net_core_rmem_default: int + :param net_core_rmem_max: Sysctl setting net.core.rmem_max. + :type net_core_rmem_max: int + :param net_core_wmem_default: Sysctl setting net.core.wmem_default. + :type net_core_wmem_default: int + :param net_core_wmem_max: Sysctl setting net.core.wmem_max. + :type net_core_wmem_max: int + :param net_core_optmem_max: Sysctl setting net.core.optmem_max. + :type net_core_optmem_max: int + :param net_ipv4_tcp_max_syn_backlog: Sysctl setting net.ipv4.tcp_max_syn_backlog. + :type net_ipv4_tcp_max_syn_backlog: int + :param net_ipv4_tcp_max_tw_buckets: Sysctl setting net.ipv4.tcp_max_tw_buckets. + :type net_ipv4_tcp_max_tw_buckets: int + :param net_ipv4_tcp_fin_timeout: Sysctl setting net.ipv4.tcp_fin_timeout. + :type net_ipv4_tcp_fin_timeout: int + :param net_ipv4_tcp_keepalive_time: Sysctl setting net.ipv4.tcp_keepalive_time. + :type net_ipv4_tcp_keepalive_time: int + :param net_ipv4_tcp_keepalive_probes: Sysctl setting net.ipv4.tcp_keepalive_probes. + :type net_ipv4_tcp_keepalive_probes: int + :param net_ipv4_tcpkeepalive_intvl: Sysctl setting net.ipv4.tcp_keepalive_intvl. + :type net_ipv4_tcpkeepalive_intvl: int + :param net_ipv4_tcp_tw_reuse: Sysctl setting net.ipv4.tcp_tw_reuse. + :type net_ipv4_tcp_tw_reuse: bool + :param net_ipv4_ip_local_port_range: Sysctl setting net.ipv4.ip_local_port_range. + :type net_ipv4_ip_local_port_range: str + :param net_ipv4_neigh_default_gc_thresh1: Sysctl setting net.ipv4.neigh.default.gc_thresh1. + :type net_ipv4_neigh_default_gc_thresh1: int + :param net_ipv4_neigh_default_gc_thresh2: Sysctl setting net.ipv4.neigh.default.gc_thresh2. + :type net_ipv4_neigh_default_gc_thresh2: int + :param net_ipv4_neigh_default_gc_thresh3: Sysctl setting net.ipv4.neigh.default.gc_thresh3. + :type net_ipv4_neigh_default_gc_thresh3: int + :param net_netfilter_nf_conntrack_max: Sysctl setting net.netfilter.nf_conntrack_max. + :type net_netfilter_nf_conntrack_max: int + :param net_netfilter_nf_conntrack_buckets: Sysctl setting net.netfilter.nf_conntrack_buckets. + :type net_netfilter_nf_conntrack_buckets: int + :param fs_inotify_max_user_watches: Sysctl setting fs.inotify.max_user_watches. + :type fs_inotify_max_user_watches: int + :param fs_file_max: Sysctl setting fs.file-max. + :type fs_file_max: int + :param fs_aio_max_nr: Sysctl setting fs.aio-max-nr. + :type fs_aio_max_nr: int + :param fs_nr_open: Sysctl setting fs.nr_open. + :type fs_nr_open: int + :param kernel_threads_max: Sysctl setting kernel.threads-max. + :type kernel_threads_max: int + :param vm_max_map_count: Sysctl setting vm.max_map_count. + :type vm_max_map_count: int + :param vm_swappiness: Sysctl setting vm.swappiness. + :type vm_swappiness: int + :param vm_vfs_cache_pressure: Sysctl setting vm.vfs_cache_pressure. + :type vm_vfs_cache_pressure: int + """ + + _attribute_map = { + 'net_core_somaxconn': {'key': 'netCoreSomaxconn', 'type': 'int'}, + 'net_core_netdev_max_backlog': {'key': 'netCoreNetdevMaxBacklog', 'type': 'int'}, + 'net_core_rmem_default': {'key': 'netCoreRmemDefault', 'type': 'int'}, + 'net_core_rmem_max': {'key': 'netCoreRmemMax', 'type': 'int'}, + 'net_core_wmem_default': {'key': 'netCoreWmemDefault', 'type': 'int'}, + 'net_core_wmem_max': {'key': 'netCoreWmemMax', 'type': 'int'}, + 'net_core_optmem_max': {'key': 'netCoreOptmemMax', 'type': 'int'}, + 'net_ipv4_tcp_max_syn_backlog': {'key': 'netIpv4TcpMaxSynBacklog', 'type': 'int'}, + 'net_ipv4_tcp_max_tw_buckets': {'key': 'netIpv4TcpMaxTwBuckets', 'type': 'int'}, + 'net_ipv4_tcp_fin_timeout': {'key': 'netIpv4TcpFinTimeout', 'type': 'int'}, + 'net_ipv4_tcp_keepalive_time': {'key': 'netIpv4TcpKeepaliveTime', 'type': 'int'}, + 'net_ipv4_tcp_keepalive_probes': {'key': 'netIpv4TcpKeepaliveProbes', 'type': 'int'}, + 'net_ipv4_tcpkeepalive_intvl': {'key': 'netIpv4TcpkeepaliveIntvl', 'type': 'int'}, + 'net_ipv4_tcp_tw_reuse': {'key': 'netIpv4TcpTwReuse', 'type': 'bool'}, + 'net_ipv4_ip_local_port_range': {'key': 'netIpv4IpLocalPortRange', 'type': 'str'}, + 'net_ipv4_neigh_default_gc_thresh1': {'key': 'netIpv4NeighDefaultGcThresh1', 'type': 'int'}, + 'net_ipv4_neigh_default_gc_thresh2': {'key': 'netIpv4NeighDefaultGcThresh2', 'type': 'int'}, + 'net_ipv4_neigh_default_gc_thresh3': {'key': 'netIpv4NeighDefaultGcThresh3', 'type': 'int'}, + 'net_netfilter_nf_conntrack_max': {'key': 'netNetfilterNfConntrackMax', 'type': 'int'}, + 'net_netfilter_nf_conntrack_buckets': {'key': 'netNetfilterNfConntrackBuckets', 'type': 'int'}, + 'fs_inotify_max_user_watches': {'key': 'fsInotifyMaxUserWatches', 'type': 'int'}, + 'fs_file_max': {'key': 'fsFileMax', 'type': 'int'}, + 'fs_aio_max_nr': {'key': 'fsAioMaxNr', 'type': 'int'}, + 'fs_nr_open': {'key': 'fsNrOpen', 'type': 'int'}, + 'kernel_threads_max': {'key': 'kernelThreadsMax', 'type': 'int'}, + 'vm_max_map_count': {'key': 'vmMaxMapCount', 'type': 'int'}, + 'vm_swappiness': {'key': 'vmSwappiness', 'type': 'int'}, + 'vm_vfs_cache_pressure': {'key': 'vmVfsCachePressure', 'type': 'int'}, + } + + def __init__( + self, + *, + net_core_somaxconn: Optional[int] = None, + net_core_netdev_max_backlog: Optional[int] = None, + net_core_rmem_default: Optional[int] = None, + net_core_rmem_max: Optional[int] = None, + net_core_wmem_default: Optional[int] = None, + net_core_wmem_max: Optional[int] = None, + net_core_optmem_max: Optional[int] = None, + net_ipv4_tcp_max_syn_backlog: Optional[int] = None, + net_ipv4_tcp_max_tw_buckets: Optional[int] = None, + net_ipv4_tcp_fin_timeout: Optional[int] = None, + net_ipv4_tcp_keepalive_time: Optional[int] = None, + net_ipv4_tcp_keepalive_probes: Optional[int] = None, + net_ipv4_tcpkeepalive_intvl: Optional[int] = None, + net_ipv4_tcp_tw_reuse: Optional[bool] = None, + net_ipv4_ip_local_port_range: Optional[str] = None, + net_ipv4_neigh_default_gc_thresh1: Optional[int] = None, + net_ipv4_neigh_default_gc_thresh2: Optional[int] = None, + net_ipv4_neigh_default_gc_thresh3: Optional[int] = None, + net_netfilter_nf_conntrack_max: Optional[int] = None, + net_netfilter_nf_conntrack_buckets: Optional[int] = None, + fs_inotify_max_user_watches: Optional[int] = None, + fs_file_max: Optional[int] = None, + fs_aio_max_nr: Optional[int] = None, + fs_nr_open: Optional[int] = None, + kernel_threads_max: Optional[int] = None, + vm_max_map_count: Optional[int] = None, + vm_swappiness: Optional[int] = None, + vm_vfs_cache_pressure: Optional[int] = None, + **kwargs + ): + super(SysctlConfig, self).__init__(**kwargs) + self.net_core_somaxconn = net_core_somaxconn + self.net_core_netdev_max_backlog = net_core_netdev_max_backlog + self.net_core_rmem_default = net_core_rmem_default + self.net_core_rmem_max = net_core_rmem_max + self.net_core_wmem_default = net_core_wmem_default + self.net_core_wmem_max = net_core_wmem_max + self.net_core_optmem_max = net_core_optmem_max + self.net_ipv4_tcp_max_syn_backlog = net_ipv4_tcp_max_syn_backlog + self.net_ipv4_tcp_max_tw_buckets = net_ipv4_tcp_max_tw_buckets + self.net_ipv4_tcp_fin_timeout = net_ipv4_tcp_fin_timeout + self.net_ipv4_tcp_keepalive_time = net_ipv4_tcp_keepalive_time + self.net_ipv4_tcp_keepalive_probes = net_ipv4_tcp_keepalive_probes + self.net_ipv4_tcpkeepalive_intvl = net_ipv4_tcpkeepalive_intvl + self.net_ipv4_tcp_tw_reuse = net_ipv4_tcp_tw_reuse + self.net_ipv4_ip_local_port_range = net_ipv4_ip_local_port_range + self.net_ipv4_neigh_default_gc_thresh1 = net_ipv4_neigh_default_gc_thresh1 + self.net_ipv4_neigh_default_gc_thresh2 = net_ipv4_neigh_default_gc_thresh2 + self.net_ipv4_neigh_default_gc_thresh3 = net_ipv4_neigh_default_gc_thresh3 + self.net_netfilter_nf_conntrack_max = net_netfilter_nf_conntrack_max + self.net_netfilter_nf_conntrack_buckets = net_netfilter_nf_conntrack_buckets + self.fs_inotify_max_user_watches = fs_inotify_max_user_watches + self.fs_file_max = fs_file_max + self.fs_aio_max_nr = fs_aio_max_nr + self.fs_nr_open = fs_nr_open + self.kernel_threads_max = kernel_threads_max + self.vm_max_map_count = vm_max_map_count + self.vm_swappiness = vm_swappiness + self.vm_vfs_cache_pressure = vm_vfs_cache_pressure + + +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.containerservice.v2021_07_01.models.CreatedByType + :param created_at: The UTC timestamp of resource creation. + :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.containerservice.v2021_07_01.models.CreatedByType + :param last_modified_at: The type of identity that last modified the resource. + :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 TagsObject(msrest.serialization.Model): + """Tags object for patch operations. + + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + """ + + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__( + self, + *, + tags: Optional[Dict[str, str]] = None, + **kwargs + ): + super(TagsObject, self).__init__(**kwargs) + self.tags = tags + + +class TimeInWeek(msrest.serialization.Model): + """Time in a week. + + :param day: The day of the week. Possible values include: "Sunday", "Monday", "Tuesday", + "Wednesday", "Thursday", "Friday", "Saturday". + :type day: str or ~azure.mgmt.containerservice.v2021_07_01.models.WeekDay + :param hour_slots: Each integer hour represents a time range beginning at 0m after the hour + ending at the next hour (non-inclusive). 0 corresponds to 00:00 UTC, 23 corresponds to 23:00 + UTC. Specifying [0, 1] means the 00:00 - 02:00 UTC time range. + :type hour_slots: list[int] + """ + + _attribute_map = { + 'day': {'key': 'day', 'type': 'str'}, + 'hour_slots': {'key': 'hourSlots', 'type': '[int]'}, + } + + def __init__( + self, + *, + day: Optional[Union[str, "WeekDay"]] = None, + hour_slots: Optional[List[int]] = None, + **kwargs + ): + super(TimeInWeek, self).__init__(**kwargs) + self.day = day + self.hour_slots = hour_slots + + +class TimeSpan(msrest.serialization.Model): + """For example, between 2021-05-25T13:00:00Z and 2021-05-25T14:00:00Z. + + :param start: The start of a time span. + :type start: ~datetime.datetime + :param end: The end of a time span. + :type end: ~datetime.datetime + """ + + _attribute_map = { + 'start': {'key': 'start', 'type': 'iso-8601'}, + 'end': {'key': 'end', 'type': 'iso-8601'}, + } + + def __init__( + self, + *, + start: Optional[datetime.datetime] = None, + end: Optional[datetime.datetime] = None, + **kwargs + ): + super(TimeSpan, self).__init__(**kwargs) + self.start = start + self.end = end diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/__init__.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/__init__.py new file mode 100644 index 000000000000..3942e0ca6a01 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/__init__.py @@ -0,0 +1,25 @@ +# 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 ._operations import Operations +from ._managed_clusters_operations import ManagedClustersOperations +from ._maintenance_configurations_operations import MaintenanceConfigurationsOperations +from ._agent_pools_operations import AgentPoolsOperations +from ._private_endpoint_connections_operations import PrivateEndpointConnectionsOperations +from ._private_link_resources_operations import PrivateLinkResourcesOperations +from ._resolve_private_link_service_id_operations import ResolvePrivateLinkServiceIdOperations + +__all__ = [ + 'Operations', + 'ManagedClustersOperations', + 'MaintenanceConfigurationsOperations', + 'AgentPoolsOperations', + 'PrivateEndpointConnectionsOperations', + 'PrivateLinkResourcesOperations', + 'ResolvePrivateLinkServiceIdOperations', +] diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_agent_pools_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_agent_pools_operations.py new file mode 100644 index 000000000000..608f1f9fe7ca --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_agent_pools_operations.py @@ -0,0 +1,705 @@ +# 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 AgentPoolsOperations(object): + """AgentPoolsOperations 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.containerservice.v2021_07_01.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 + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.AgentPoolListResult"] + """Gets a list of agent pools in the specified managed cluster. + + Gets a list of agent pools in the specified managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either AgentPoolListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AgentPoolListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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('AgentPoolListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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.ContainerService/managedClusters/{resourceName}/agentPools'} # type: ignore + + def get( + self, + resource_group_name, # type: str + resource_name, # type: str + agent_pool_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.AgentPool" + """Gets the specified managed cluster agent pool. + + Gets the specified managed cluster agent pool. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param agent_pool_name: The name of the agent pool. + :type agent_pool_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AgentPool, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.AgentPool + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AgentPool"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_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['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('AgentPool', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}'} # type: ignore + + def _create_or_update_initial( + self, + resource_group_name, # type: str + resource_name, # type: str + agent_pool_name, # type: str + parameters, # type: "_models.AgentPool" + **kwargs # type: Any + ): + # type: (...) -> "_models.AgentPool" + cls = kwargs.pop('cls', None) # type: ClsType["_models.AgentPool"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_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(parameters, 'AgentPool') + 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('AgentPool', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('AgentPool', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}'} # type: ignore + + def begin_create_or_update( + self, + resource_group_name, # type: str + resource_name, # type: str + agent_pool_name, # type: str + parameters, # type: "_models.AgentPool" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.AgentPool"] + """Creates or updates an agent pool in the specified managed cluster. + + Creates or updates an agent pool in the specified managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param agent_pool_name: The name of the agent pool. + :type agent_pool_name: str + :param parameters: The agent pool to create or update. + :type parameters: ~azure.mgmt.containerservice.v2021_07_01.models.AgentPool + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 AgentPool or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.containerservice.v2021_07_01.models.AgentPool] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.AgentPool"] + 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_or_update_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + agent_pool_name=agent_pool_name, + parameters=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('AgentPool', 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_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_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}'} # type: ignore + + def _delete_initial( + self, + resource_group_name, # type: str + resource_name, # type: str + agent_pool_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-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_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['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.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}'} # type: ignore + + def begin_delete( + self, + resource_group_name, # type: str + resource_name, # type: str + agent_pool_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Deletes an agent pool in the specified managed cluster. + + Deletes an agent pool in the specified managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param agent_pool_name: The name of the agent pool. + :type agent_pool_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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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, + resource_name=resource_name, + agent_pool_name=agent_pool_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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_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_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}'} # type: ignore + + def get_upgrade_profile( + self, + resource_group_name, # type: str + resource_name, # type: str + agent_pool_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.AgentPoolUpgradeProfile" + """Gets the upgrade profile for an agent pool. + + Gets the upgrade profile for an agent pool. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param agent_pool_name: The name of the agent pool. + :type agent_pool_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AgentPoolUpgradeProfile, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolUpgradeProfile + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AgentPoolUpgradeProfile"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.get_upgrade_profile.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_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['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('AgentPoolUpgradeProfile', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_upgrade_profile.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}/upgradeProfiles/default'} # type: ignore + + def get_available_agent_pool_versions( + self, + resource_group_name, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.AgentPoolAvailableVersions" + """Gets a list of supported Kubernetes versions for the specified agent pool. + + See `supported Kubernetes versions + `_ for more details about + the version lifecycle. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AgentPoolAvailableVersions, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.AgentPoolAvailableVersions + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AgentPoolAvailableVersions"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.get_available_agent_pool_versions.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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('AgentPoolAvailableVersions', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_available_agent_pool_versions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/availableAgentPoolVersions'} # type: ignore + + def _upgrade_node_image_version_initial( + self, + resource_group_name, # type: str + resource_name, # type: str + agent_pool_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Optional["_models.AgentPool"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.AgentPool"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self._upgrade_node_image_version_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_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['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 == 202: + deserialized = self._deserialize('AgentPool', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _upgrade_node_image_version_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}/upgradeNodeImageVersion'} # type: ignore + + def begin_upgrade_node_image_version( + self, + resource_group_name, # type: str + resource_name, # type: str + agent_pool_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.AgentPool"] + """Upgrades the node image version of an agent pool to the latest. + + Upgrading the node image version of an agent pool applies the newest OS and runtime updates to + the nodes. AKS provides one new image per week with the latest updates. For more details on + node image versions, see: https://docs.microsoft.com/azure/aks/node-image-upgrade. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param agent_pool_name: The name of the agent pool. + :type agent_pool_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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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["_models.AgentPool"] + 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._upgrade_node_image_version_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + agent_pool_name=agent_pool_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('AgentPool', 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_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_upgrade_node_image_version.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}/upgradeNodeImageVersion'} # type: ignore diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_maintenance_configurations_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_maintenance_configurations_operations.py new file mode 100644 index 000000000000..3299a7c82061 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_maintenance_configurations_operations.py @@ -0,0 +1,323 @@ +# 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 MaintenanceConfigurationsOperations(object): + """MaintenanceConfigurationsOperations 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.containerservice.v2021_07_01.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_managed_cluster( + self, + resource_group_name, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.MaintenanceConfigurationListResult"] + """Gets a list of maintenance configurations in the specified managed cluster. + + Gets a list of maintenance configurations in the specified managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either MaintenanceConfigurationListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.containerservice.v2021_07_01.models.MaintenanceConfigurationListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MaintenanceConfigurationListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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_managed_cluster.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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('MaintenanceConfigurationListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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_managed_cluster.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/maintenanceConfigurations'} # type: ignore + + def get( + self, + resource_group_name, # type: str + resource_name, # type: str + config_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.MaintenanceConfiguration" + """Gets the specified maintenance configuration of a managed cluster. + + Gets the specified maintenance configuration of a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param config_name: The name of the maintenance configuration. + :type config_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MaintenanceConfiguration, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.MaintenanceConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MaintenanceConfiguration"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'configName': self._serialize.url("config_name", config_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['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('MaintenanceConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/maintenanceConfigurations/{configName}'} # type: ignore + + def create_or_update( + self, + resource_group_name, # type: str + resource_name, # type: str + config_name, # type: str + parameters, # type: "_models.MaintenanceConfiguration" + **kwargs # type: Any + ): + # type: (...) -> "_models.MaintenanceConfiguration" + """Creates or updates a maintenance configuration in the specified managed cluster. + + Creates or updates a maintenance configuration in the specified managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param config_name: The name of the maintenance configuration. + :type config_name: str + :param parameters: The maintenance configuration to create or update. + :type parameters: ~azure.mgmt.containerservice.v2021_07_01.models.MaintenanceConfiguration + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MaintenanceConfiguration, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.MaintenanceConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MaintenanceConfiguration"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'configName': self._serialize.url("config_name", config_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(parameters, 'MaintenanceConfiguration') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MaintenanceConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/maintenanceConfigurations/{configName}'} # type: ignore + + def delete( + self, + resource_group_name, # type: str + resource_name, # type: str + config_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a maintenance configuration. + + Deletes a maintenance configuration. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param config_name: The name of the maintenance configuration. + :type config_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-07-01" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'configName': self._serialize.url("config_name", config_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['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, 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/maintenanceConfigurations/{configName}'} # type: ignore diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_managed_clusters_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_managed_clusters_operations.py new file mode 100644 index 000000000000..2cb300f06452 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_managed_clusters_operations.py @@ -0,0 +1,1875 @@ +# 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 ManagedClustersOperations(object): + """ManagedClustersOperations 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.containerservice.v2021_07_01.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 get_os_options( + self, + location, # type: str + resource_type=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.OSOptionProfile" + """Gets supported OS options in the specified subscription. + + Gets supported OS options in the specified subscription. + + :param location: The name of a supported Azure region. + :type location: str + :param resource_type: The resource type for which the OS options needs to be returned. + :type resource_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: OSOptionProfile, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.OSOptionProfile + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.OSOptionProfile"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.get_os_options.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + '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') + if resource_type is not None: + query_parameters['resource-type'] = self._serialize.query("resource_type", resource_type, '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('OSOptionProfile', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_os_options.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.ContainerService/locations/{location}/osOptions/default'} # type: ignore + + def list( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ManagedClusterListResult"] + """Gets a list of managed clusters in the specified subscription. + + Gets a list of managed clusters in the specified subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ManagedClusterListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedClusterListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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'), + } + 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('ManagedClusterListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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.ContainerService/managedClusters'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ManagedClusterListResult"] + """Lists managed clusters in the specified subscription and resource group. + + Lists managed clusters in the specified subscription and resource group. + + :param resource_group_name: The name of the resource group. + :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 ManagedClusterListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedClusterListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, '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('ManagedClusterListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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.ContainerService/managedClusters'} # type: ignore + + def get_upgrade_profile( + self, + resource_group_name, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ManagedClusterUpgradeProfile" + """Gets the upgrade profile of a managed cluster. + + Gets the upgrade profile of a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ManagedClusterUpgradeProfile, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterUpgradeProfile + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedClusterUpgradeProfile"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.get_upgrade_profile.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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('ManagedClusterUpgradeProfile', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_upgrade_profile.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/upgradeProfiles/default'} # type: ignore + + def get_access_profile( + self, + resource_group_name, # type: str + resource_name, # type: str + role_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ManagedClusterAccessProfile" + """Gets an access profile of a managed cluster. + + **WARNING**\ : This API will be deprecated. Instead use `ListClusterUserCredentials + `_ or + `ListClusterAdminCredentials + `_ . + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param role_name: The name of the role for managed cluster accessProfile resource. + :type role_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ManagedClusterAccessProfile, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterAccessProfile + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedClusterAccessProfile"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.get_access_profile.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'roleName': self._serialize.url("role_name", role_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['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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ManagedClusterAccessProfile', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_access_profile.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/accessProfiles/{roleName}/listCredential'} # type: ignore + + def list_cluster_admin_credentials( + self, + resource_group_name, # type: str + resource_name, # type: str + server_fqdn=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.CredentialResults" + """Lists the admin credentials of a managed cluster. + + Lists the admin credentials of a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param server_fqdn: server fqdn type for credentials to be returned. + :type server_fqdn: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CredentialResults, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.CredentialResults + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CredentialResults"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.list_cluster_admin_credentials.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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') + if server_fqdn is not None: + query_parameters['server-fqdn'] = self._serialize.query("server_fqdn", server_fqdn, '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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CredentialResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_cluster_admin_credentials.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/listClusterAdminCredential'} # type: ignore + + def list_cluster_user_credentials( + self, + resource_group_name, # type: str + resource_name, # type: str + server_fqdn=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.CredentialResults" + """Lists the user credentials of a managed cluster. + + Lists the user credentials of a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param server_fqdn: server fqdn type for credentials to be returned. + :type server_fqdn: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CredentialResults, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.CredentialResults + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CredentialResults"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.list_cluster_user_credentials.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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') + if server_fqdn is not None: + query_parameters['server-fqdn'] = self._serialize.query("server_fqdn", server_fqdn, '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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CredentialResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_cluster_user_credentials.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/listClusterUserCredential'} # type: ignore + + def list_cluster_monitoring_user_credentials( + self, + resource_group_name, # type: str + resource_name, # type: str + server_fqdn=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.CredentialResults" + """Lists the cluster monitoring user credentials of a managed cluster. + + Lists the cluster monitoring user credentials of a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param server_fqdn: server fqdn type for credentials to be returned. + :type server_fqdn: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CredentialResults, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.CredentialResults + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CredentialResults"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.list_cluster_monitoring_user_credentials.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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') + if server_fqdn is not None: + query_parameters['server-fqdn'] = self._serialize.query("server_fqdn", server_fqdn, '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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CredentialResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_cluster_monitoring_user_credentials.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/listClusterMonitoringUserCredential'} # type: ignore + + def get( + self, + resource_group_name, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ManagedCluster" + """Gets a managed cluster. + + Gets a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ManagedCluster, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedCluster + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedCluster"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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('ManagedCluster', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}'} # type: ignore + + def _create_or_update_initial( + self, + resource_group_name, # type: str + resource_name, # type: str + parameters, # type: "_models.ManagedCluster" + **kwargs # type: Any + ): + # type: (...) -> "_models.ManagedCluster" + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedCluster"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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(parameters, 'ManagedCluster') + 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('ManagedCluster', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('ManagedCluster', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}'} # type: ignore + + def begin_create_or_update( + self, + resource_group_name, # type: str + resource_name, # type: str + parameters, # type: "_models.ManagedCluster" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.ManagedCluster"] + """Creates or updates a managed cluster. + + Creates or updates a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param parameters: The managed cluster to create or update. + :type parameters: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedCluster + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 ManagedCluster or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.containerservice.v2021_07_01.models.ManagedCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedCluster"] + 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_or_update_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + parameters=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('ManagedCluster', 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}'} # type: ignore + + def _update_tags_initial( + self, + resource_group_name, # type: str + resource_name, # type: str + parameters, # type: "_models.TagsObject" + **kwargs # type: Any + ): + # type: (...) -> "_models.ManagedCluster" + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedCluster"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._update_tags_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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(parameters, 'TagsObject') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ManagedCluster', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _update_tags_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}'} # type: ignore + + def begin_update_tags( + self, + resource_group_name, # type: str + resource_name, # type: str + parameters, # type: "_models.TagsObject" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.ManagedCluster"] + """Updates tags on a managed cluster. + + Updates tags on a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param parameters: Parameters supplied to the Update Managed Cluster Tags operation. + :type parameters: ~azure.mgmt.containerservice.v2021_07_01.models.TagsObject + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 ManagedCluster or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.containerservice.v2021_07_01.models.ManagedCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ManagedCluster"] + 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_tags_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + parameters=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('ManagedCluster', 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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_tags.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}'} # type: ignore + + def _delete_initial( + self, + resource_group_name, # type: str + resource_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-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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.ContainerService/managedClusters/{resourceName}'} # type: ignore + + def begin_delete( + self, + resource_group_name, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Deletes a managed cluster. + + Deletes a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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, + resource_name=resource_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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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.ContainerService/managedClusters/{resourceName}'} # type: ignore + + def _reset_service_principal_profile_initial( + self, + resource_group_name, # type: str + resource_name, # type: str + parameters, # type: "_models.ManagedClusterServicePrincipalProfile" + **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-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._reset_service_principal_profile_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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(parameters, 'ManagedClusterServicePrincipalProfile') + 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) + + if cls: + return cls(pipeline_response, None, {}) + + _reset_service_principal_profile_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resetServicePrincipalProfile'} # type: ignore + + def begin_reset_service_principal_profile( + self, + resource_group_name, # type: str + resource_name, # type: str + parameters, # type: "_models.ManagedClusterServicePrincipalProfile" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Reset the Service Principal Profile of a managed cluster. + + This action cannot be performed on a cluster that is not using a service principal. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param parameters: The service principal profile to set on the managed cluster. + :type parameters: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterServicePrincipalProfile + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._reset_service_principal_profile_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + parameters=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): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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_reset_service_principal_profile.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resetServicePrincipalProfile'} # type: ignore + + def _reset_aad_profile_initial( + self, + resource_group_name, # type: str + resource_name, # type: str + parameters, # type: "_models.ManagedClusterAADProfile" + **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-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._reset_aad_profile_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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(parameters, 'ManagedClusterAADProfile') + 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) + + if cls: + return cls(pipeline_response, None, {}) + + _reset_aad_profile_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resetAADProfile'} # type: ignore + + def begin_reset_aad_profile( + self, + resource_group_name, # type: str + resource_name, # type: str + parameters, # type: "_models.ManagedClusterAADProfile" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Reset the AAD Profile of a managed cluster. + + Reset the AAD Profile of a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param parameters: The AAD profile to set on the Managed Cluster. + :type parameters: ~azure.mgmt.containerservice.v2021_07_01.models.ManagedClusterAADProfile + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._reset_aad_profile_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + parameters=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): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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_reset_aad_profile.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resetAADProfile'} # type: ignore + + def _rotate_cluster_certificates_initial( + self, + resource_group_name, # type: str + resource_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-07-01" + accept = "application/json" + + # Construct URL + url = self._rotate_cluster_certificates_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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 [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, {}) + + _rotate_cluster_certificates_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/rotateClusterCertificates'} # type: ignore + + def begin_rotate_cluster_certificates( + self, + resource_group_name, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Rotates the certificates of a managed cluster. + + See `Certificate rotation `_ for + more details about rotating managed cluster certificates. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._rotate_cluster_certificates_initial( + resource_group_name=resource_group_name, + resource_name=resource_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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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_rotate_cluster_certificates.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/rotateClusterCertificates'} # type: ignore + + def _stop_initial( + self, + resource_group_name, # type: str + resource_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-07-01" + accept = "application/json" + + # Construct URL + url = self._stop_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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 [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, {}) + + _stop_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/stop'} # type: ignore + + def begin_stop( + self, + resource_group_name, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Stops a Managed Cluster. + + This can only be performed on Azure Virtual Machine Scale set backed clusters. Stopping a + cluster stops the control plane and agent nodes entirely, while maintaining all object and + cluster state. A cluster does not accrue charges while it is stopped. See `stopping a cluster + `_ for more details about stopping a + cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._stop_initial( + resource_group_name=resource_group_name, + resource_name=resource_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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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_stop.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/stop'} # type: ignore + + def _start_initial( + self, + resource_group_name, # type: str + resource_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-07-01" + accept = "application/json" + + # Construct URL + url = self._start_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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 [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, {}) + + _start_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/start'} # type: ignore + + def begin_start( + self, + resource_group_name, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Starts a previously stopped Managed Cluster. + + See `starting a cluster `_ for more + details about starting a cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._start_initial( + resource_group_name=resource_group_name, + resource_name=resource_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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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_start.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/start'} # type: ignore + + def _run_command_initial( + self, + resource_group_name, # type: str + resource_name, # type: str + request_payload, # type: "_models.RunCommandRequest" + **kwargs # type: Any + ): + # type: (...) -> Optional["_models.RunCommandResult"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.RunCommandResult"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._run_command_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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(request_payload, 'RunCommandRequest') + 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('RunCommandResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _run_command_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/runCommand'} # type: ignore + + def begin_run_command( + self, + resource_group_name, # type: str + resource_name, # type: str + request_payload, # type: "_models.RunCommandRequest" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.RunCommandResult"] + """Submits a command to run against the Managed Cluster. + + AKS will create a pod to run the command. This is primarily useful for private clusters. For + more information see `AKS Run Command + `_. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param request_payload: The run command request. + :type request_payload: ~azure.mgmt.containerservice.v2021_07_01.models.RunCommandRequest + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 RunCommandResult or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.containerservice.v2021_07_01.models.RunCommandResult] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RunCommandResult"] + 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._run_command_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + request_payload=request_payload, + 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('RunCommandResult', 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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_run_command.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/runCommand'} # type: ignore + + def get_command_result( + self, + resource_group_name, # type: str + resource_name, # type: str + command_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> Optional["_models.RunCommandResult"] + """Gets the results of a command which has been run on the Managed Cluster. + + Gets the results of a command which has been run on the Managed Cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param command_id: Id of the command. + :type command_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RunCommandResult, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.RunCommandResult or None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.RunCommandResult"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # Construct URL + url = self.get_command_result.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'commandId': self._serialize.url("command_id", command_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, 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('RunCommandResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_command_result.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/commandResults/{commandId}'} # type: ignore + + def list_outbound_network_dependencies_endpoints( + self, + resource_group_name, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.OutboundEnvironmentEndpointCollection"] + """Gets a list of egress endpoints (network endpoints of all outbound dependencies) in the specified managed cluster. + + Gets a list of egress endpoints (network endpoints of all outbound dependencies) in the + specified managed cluster. The operation returns properties of each egress endpoint. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either OutboundEnvironmentEndpointCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.containerservice.v2021_07_01.models.OutboundEnvironmentEndpointCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.OutboundEnvironmentEndpointCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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_outbound_network_dependencies_endpoints.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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('OutboundEnvironmentEndpointCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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_outbound_network_dependencies_endpoints.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/outboundNetworkDependenciesEndpoints'} # type: ignore diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_operations.py new file mode 100644 index 000000000000..000327841653 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_operations.py @@ -0,0 +1,111 @@ +# 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 Operations(object): + """Operations 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.containerservice.v2021_07_01.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, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.OperationListResult"] + """Gets a list of operations. + + Gets a list of operations. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either OperationListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.containerservice.v2021_07_01.models.OperationListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.OperationListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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 + # 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('OperationListResult', 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': '/providers/Microsoft.ContainerService/operations'} # type: ignore diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_private_endpoint_connections_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_private_endpoint_connections_operations.py new file mode 100644 index 000000000000..2f4f8abff564 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_private_endpoint_connections_operations.py @@ -0,0 +1,367 @@ +# 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.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, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class PrivateEndpointConnectionsOperations(object): + """PrivateEndpointConnectionsOperations 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.containerservice.v2021_07_01.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 + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PrivateEndpointConnectionListResult" + """Gets a list of private endpoint connections in the specified managed cluster. + + To learn more about private clusters, see: + https://docs.microsoft.com/azure/aks/private-clusters. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateEndpointConnectionListResult, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.PrivateEndpointConnectionListResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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('PrivateEndpointConnectionListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateEndpointConnections'} # type: ignore + + def get( + self, + resource_group_name, # type: str + resource_name, # type: str + private_endpoint_connection_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PrivateEndpointConnection" + """Gets the specified private endpoint connection. + + To learn more about private clusters, see: + https://docs.microsoft.com/azure/aks/private-clusters. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param private_endpoint_connection_name: The name of the private endpoint connection. + :type private_endpoint_connection_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateEndpointConnection, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.PrivateEndpointConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_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['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('PrivateEndpointConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def update( + self, + resource_group_name, # type: str + resource_name, # type: str + private_endpoint_connection_name, # type: str + parameters, # type: "_models.PrivateEndpointConnection" + **kwargs # type: Any + ): + # type: (...) -> "_models.PrivateEndpointConnection" + """Updates a private endpoint connection. + + Updates a private endpoint connection. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param private_endpoint_connection_name: The name of the private endpoint connection. + :type private_endpoint_connection_name: str + :param parameters: The updated private endpoint connection. + :type parameters: ~azure.mgmt.containerservice.v2021_07_01.models.PrivateEndpointConnection + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateEndpointConnection, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.PrivateEndpointConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_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(parameters, 'PrivateEndpointConnection') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateEndpointConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def _delete_initial( + self, + resource_group_name, # type: str + resource_name, # type: str + private_endpoint_connection_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-07-01" + 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_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['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, 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.ContainerService/managedClusters/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def begin_delete( + self, + resource_group_name, # type: str + resource_name, # type: str + private_endpoint_connection_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Deletes a private endpoint connection. + + Deletes a private endpoint connection. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param private_endpoint_connection_name: The name of the private endpoint connection. + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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, + resource_name=resource_name, + private_endpoint_connection_name=private_endpoint_connection_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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_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_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_private_link_resources_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_private_link_resources_operations.py new file mode 100644 index 000000000000..4b0e3b6c04b7 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_private_link_resources_operations.py @@ -0,0 +1,107 @@ +# 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.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, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class PrivateLinkResourcesOperations(object): + """PrivateLinkResourcesOperations 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.containerservice.v2021_07_01.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 + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PrivateLinkResourcesListResult" + """Gets a list of private link resources in the specified managed cluster. + + To learn more about private clusters, see: + https://docs.microsoft.com/azure/aks/private-clusters. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateLinkResourcesListResult, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.PrivateLinkResourcesListResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourcesListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + accept = "application/json" + + # 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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('PrivateLinkResourcesListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateLinkResources'} # type: ignore diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_resolve_private_link_service_id_operations.py b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_resolve_private_link_service_id_operations.py new file mode 100644 index 000000000000..88129d99ad06 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/operations/_resolve_private_link_service_id_operations.py @@ -0,0 +1,114 @@ +# 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.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, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class ResolvePrivateLinkServiceIdOperations(object): + """ResolvePrivateLinkServiceIdOperations 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.containerservice.v2021_07_01.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 post( + self, + resource_group_name, # type: str + resource_name, # type: str + parameters, # type: "_models.PrivateLinkResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.PrivateLinkResource" + """Gets the private link service ID for the specified managed cluster. + + Gets the private link service ID for the specified managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param parameters: Parameters required in order to resolve a private link service ID. + :type parameters: ~azure.mgmt.containerservice.v2021_07_01.models.PrivateLinkResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateLinkResource, or the result of cls(response) + :rtype: ~azure.mgmt.containerservice.v2021_07_01.models.PrivateLinkResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.post.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[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(parameters, 'PrivateLinkResource') + 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) + + deserialized = self._deserialize('PrivateLinkResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + post.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resolvePrivateLinkServiceId'} # type: ignore diff --git a/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/py.typed b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/py.typed new file mode 100644 index 000000000000..e5aff4f83af8 --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01/py.typed @@ -0,0 +1 @@ +# Marker file for PEP 561. \ No newline at end of file From 9ce578d601194afb2b867a1c3126d0d3b6843bdb Mon Sep 17 00:00:00 2001 From: msyyc <70930885+msyyc@users.noreply.github.com> Date: Mon, 9 Aug 2021 10:18:00 +0800 Subject: [PATCH 010/104] [pipeline] add variable for paste issue_link (#20128) * Update create_auto_release_pr * Update create_auto_release_pr.py * Update create_auto_release_pr.py * Update create_auto_release_pr.py * Update create_auto_release_pr.py * Update create_auto_release_pr.py * Update PythonSdkLiveTest.yml Co-authored-by: BigCat20196 <1095260342@qq.com> Co-authored-by: Jiefeng Chen <51037443+BigCat20196@users.noreply.github.com> --- scripts/auto_release/PythonSdkLiveTest.yml | 26 ++++++++----------- .../auto_release/create_auto_release_pr.py | 15 +++++++++++ scripts/auto_release/livetest_package.txt | 3 ++- 3 files changed, 28 insertions(+), 16 deletions(-) create mode 100644 scripts/auto_release/create_auto_release_pr.py diff --git a/scripts/auto_release/PythonSdkLiveTest.yml b/scripts/auto_release/PythonSdkLiveTest.yml index c57509e2776f..d5fab7b46809 100644 --- a/scripts/auto_release/PythonSdkLiveTest.yml +++ b/scripts/auto_release/PythonSdkLiveTest.yml @@ -23,12 +23,12 @@ jobs: addToPath: true architecture: 'x64' - bash: | - # verify $ISSUE_LINK and $BASE_BRANCH is not null + # verify $ISSUE_LINK and $BASE_BRANCH are not null if [ -z "$(BASE_BRANCH)" -o -z "$(ISSUE_LINK)" ]; then echo "ISSUE_LINK or BASE_BRANCH do not exist, pipeline fail!!!" exit 1 fi - + script_path=$(pwd)/scripts/auto_release cd .. git config --global user.email "PythonSdkPipelines" @@ -66,28 +66,24 @@ jobs: exit 1 fi - test_result="" + test_result="Live test success" if [ -f "$output_path/live_test_fail.txt" ]; then test_result="Live test fail, detailed info is in pipeline log(search keyword FAILED)!!!\n" fi # create PR - new_branch=`sed -n '1p' $output_path/output.txt` - target_branch=`sed -n '2p' $output_path/output.txt` - curl \ - --user "anything:$(USR_TOKEN)" \ - -d "{\ - \"title\":\"[AutoRelease] $new_branch(Do not merge)\",\ - \"body\":\"$test_result $(ISSUE_LINK) \",\ - \"head\":\"$(USR_NAME):$new_branch\",\ - \"base\":\"$target_branch\"\ - }" \ - https://api.github.com/repos/Azure/azure-sdk-for-python/pulls + export NEW_BRANCH=`sed -n '1p' $output_path/output.txt` + export TARGET_BRANCH=`sed -n '2p' $output_path/output.txt` + export ISSUE_LINK=$(ISSUE_LINK) + export USR_NAME=$(USR_NAME) + export USR_TOKEN=$(USR_TOKEN) + export TEST_RESULT=$test_result + python $script_path/create_auto_release_pr.py echo "\'[AutoRelease] $new_branch \' has been created!!!" # if test fail, still push and crete PR. But pipeline would fail to remind user if [ -f "$output_path/live_test_fail.txt" ]; then - echo "please fix failure test!!! $(ISSUE_LINK) \'[AutoRelease] $new_branch \' has been created!!!" + echo "please fix failure test $(ISSUE_LINK)!!! \'[AutoRelease] $new_branch \' has been created!!!" exit 1 fi diff --git a/scripts/auto_release/create_auto_release_pr.py b/scripts/auto_release/create_auto_release_pr.py new file mode 100644 index 000000000000..9f1ef8f0d2ad --- /dev/null +++ b/scripts/auto_release/create_auto_release_pr.py @@ -0,0 +1,15 @@ +import os + +from ghapi.all import GhApi + +def main(): + # Generate PR for auto release SDK + api = GhApi(owner='Azure', repo='azure-sdk-for-python', token=os.getenv('USR_TOKEN')) + pr_title = "[AutoRelease] {}(Do not merge)".format(os.getenv('NEW_BRANCH')) + pr_head = "{}:{}".format(os.getenv('USR_NAME'), os.getenv('NEW_BRANCH')) + pr_base = os.getenv('TARGET_BRANCH') + pr_body = "{} \n{}".format(os.getenv('ISSUE_LINK'), os.getenv('TEST_RESULT')) + api.pulls.create(pr_title, pr_head, pr_base, pr_body) + +if __name__ == '__main__': + main() diff --git a/scripts/auto_release/livetest_package.txt b/scripts/auto_release/livetest_package.txt index 74fd8517c3fa..91e9a0d7efe3 100644 --- a/scripts/auto_release/livetest_package.txt +++ b/scripts/auto_release/livetest_package.txt @@ -1,2 +1,3 @@ azure-identity -python-dotenv==0.15.0 \ No newline at end of file +python-dotenv==0.15.0 +ghapi \ No newline at end of file From 70255ab208e0d8f25c719374318949d355ad3aaf Mon Sep 17 00:00:00 2001 From: msyyc <70930885+msyyc@users.noreply.github.com> Date: Mon, 9 Aug 2021 15:14:25 +0800 Subject: [PATCH 011/104] [pipeline] add variable for pipeline to paste issue link (#20147) * Update create_auto_release_pr * Update create_auto_release_pr.py * Update create_auto_release_pr.py * Update create_auto_release_pr.py * Update create_auto_release_pr.py * Update create_auto_release_pr.py * Update PythonSdkLiveTest.yml * Update create_auto_release_pr.py * Update PythonSdkLiveTest.yml Co-authored-by: BigCat20196 <1095260342@qq.com> Co-authored-by: Jiefeng Chen <51037443+BigCat20196@users.noreply.github.com> --- scripts/auto_release/PythonSdkLiveTest.yml | 1 + scripts/auto_release/create_auto_release_pr.py | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/auto_release/PythonSdkLiveTest.yml b/scripts/auto_release/PythonSdkLiveTest.yml index d5fab7b46809..0930961468d3 100644 --- a/scripts/auto_release/PythonSdkLiveTest.yml +++ b/scripts/auto_release/PythonSdkLiveTest.yml @@ -78,6 +78,7 @@ jobs: export USR_NAME=$(USR_NAME) export USR_TOKEN=$(USR_TOKEN) export TEST_RESULT=$test_result + export UPDATE_TOKEN=$(UPDATE_TOKEN) python $script_path/create_auto_release_pr.py echo "\'[AutoRelease] $new_branch \' has been created!!!" diff --git a/scripts/auto_release/create_auto_release_pr.py b/scripts/auto_release/create_auto_release_pr.py index 9f1ef8f0d2ad..99391623fe25 100644 --- a/scripts/auto_release/create_auto_release_pr.py +++ b/scripts/auto_release/create_auto_release_pr.py @@ -9,7 +9,12 @@ def main(): pr_head = "{}:{}".format(os.getenv('USR_NAME'), os.getenv('NEW_BRANCH')) pr_base = os.getenv('TARGET_BRANCH') pr_body = "{} \n{}".format(os.getenv('ISSUE_LINK'), os.getenv('TEST_RESULT')) - api.pulls.create(pr_title, pr_head, pr_base, pr_body) + res_create = api.pulls.create(pr_title, pr_head, pr_base, pr_body) + pr_number = res_create.number + + # Add issue link on PR + api = GhApi(owner='Azure', repo='azure-sdk-for-python', token=os.getenv('UPDATE_TOKEN')) + api.issues.create_comment(issue_number=pr_number, body='issue link:{}'.format(os.getenv('ISSUE_LINK'))) if __name__ == '__main__': main() From f71759cc279dd664cb03c4b27417f6198756ae3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= <39780829+mccoyp@users.noreply.github.com> Date: Mon, 9 Aug 2021 10:01:19 -0700 Subject: [PATCH 012/104] [Key Vault] Un-skip tests using key import with 7.3-preview (#20140) --- ...encrypt_and_decrypt_7_3_preview_vault.yaml | 168 +++- ...est_sign_and_verify_7_3_preview_vault.yaml | 168 +++- ...encrypt_and_decrypt_7_3_preview_vault.yaml | 123 ++- ...est_sign_and_verify_7_3_preview_vault.yaml | 123 ++- ...key_crud_operations_7_3_preview_vault.yaml | 894 +++++++++++++++++- ...key_crud_operations_7_3_preview_vault.yaml | 722 +++++++++++++- .../tests/test_crypto_client.py | 7 +- .../tests/test_crypto_client_async.py | 7 +- .../tests/test_key_client.py | 3 +- .../tests/test_keys_async.py | 3 +- 10 files changed, 2157 insertions(+), 61 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_encrypt_and_decrypt_7_3_preview_vault.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_encrypt_and_decrypt_7_3_preview_vault.yaml index 2e8c5b209abf..6df483b1a064 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_encrypt_and_decrypt_7_3_preview_vault.yaml +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_encrypt_and_decrypt_7_3_preview_vault.yaml @@ -13,37 +13,189 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT uri: https://vaultname.vault.azure.net/keys/livekvtestkeycrypta8618f1?api-version=7.3-preview response: body: - string: '{"error":{"code":"VaultNotFound","message":"Azure Key Vault ''vaultname'' - does not exist."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '90' + - '97' content-type: - application/json; charset=utf-8 date: - - Tue, 06 Jul 2021 21:01:27 GMT + - Sat, 07 Aug 2021 00:52:31 GMT expires: - '-1' pragma: - no-cache strict-transport-security: - max-age=31536000;includeSubDomains + www-authenticate: + - Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" x-content-type-options: - nosniff x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 x-ms-keyvault-service-version: - - 1.9.12.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 401 + message: Unauthorized +- request: + body: '{"key": {"kty": "RSA", "key_ops": ["encrypt", "decrypt", "sign", "verify", + "wrapKey", "unwrapKey"], "n": "AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU", + "e": "AQAB", "d": "Ynx9JGaBSP4iUsf6ZJ6opantRNdcdmzaQrKbZg6ZQE8Ohi1FYabJWvaoPSE-CiJEsDzShXZHMhUHN4X7Bn8BXaGQhK3p9HXgiwQKmix7oAJTu4ElUIyd8UC3UWHSZr40el4PaQD-HYu_eMzCXus34MnRiNbh_BUWm6T-Eidhk9d3kNIyaSi9YNDQHW6tjWrEhhq63O7JU1j9ZonFChZxpKk20jdkQKQURVAdpOdL-5j4I70ZxFuU6wHZj8DS8oRQfwGOvZKbgYDb5jgf3UNL_7eACqq92XPVX56vm7iKbqeyjCqAIx5y3hrSRIJtZlWCwjYnYQGd4unxDLi8wmJWSQ", + "dp": "AMmhWb5yZcu6vJr8xJZ-t0_likxJRUMZAtEULaWZt2DgODj4y9JrZDJP6mvckzhQP0WXk2NuWbU2HR5pUeCN2wieG1B76VKoH76vfnaJDqT1NuJVBcP2SLHog3ffwZtMME5zjfygchG3kihqOSpwTQ9ETAqAJTkRC38fEhwAz_Cp", + "dq": "AKC9TAo9n2RDaggjdLXK8kiLrBVoaWFTpqXkzYXRhtsx4vWPAkxhfSnze05rVMl6HiXv7FnE0f0wYawzUJzoyuXBH0zS6D9BqCZPeF543AmWB27iPf38Q9Z8Rjr6oBgMSnGDV_mm8nDVQkeaDyE4cOZh-5UKvKShTKKQVwunmDNH", + "qi": "AJ_nrkLpK8BPzVeARkvSHQyKwMWZ-a8CD95qsKfn0dOZAvXY-2xhQYTEwbED-0bpTNEKbIpA-ZkaHygmnzJkNbbFAnb9pkkzU8ZQqDP3JNgMfVIroWx58Oth9nJza2j7i-MkPRCUPEq3Ao0J52z7WJIiLji8TTVYW_NaiM1oxzsH", + "p": "ANHerI1o3dLB_VLVmZZVss8VZSYN5SaeQ_0qhfOSgOFwj__waCFmy2EG7l6l6f_Z-Y0L7Mn_LNov68lyWSFa2EuQUeVj4UoFHc5Di8ZUGiSsTwFM-XMtNuv8HmGgDYLL5BIJD3eTz71LdgW-Ez38OZH34b7VeG8zfeUDb8Hi30zz", + "q": "AMPcZrZBqbc82DO8Q5zTT8ZXRGWrW36KktMllaIk1W2RHnRiQiW0jBWmcCgqUcQNHa1LwumjyNqwx28QBS37BTvG7ULGUoio6LrOeoiBGEMj-U19sX6m37plEhj5Mak7j3OPPY_T9rohjTW5aGGg9YSwq4jdz0RrmBX00ofYOjI3"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1724' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: PUT + uri: https://vaultname.vault.azure.net/keys/livekvtestkeycrypta8618f1?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestkeycrypta8618f1/b41fc7b698144b91be28f48861a54355","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"oJFNACNKxoOyG0wV1b7Yh73JWcLlevVK5zTo8Acg13XSdeRVIH43hM7rYKUKRlXdcqepTScejuj3lZpmnKbndb8OI7ra6ZG0Up2XhSi0vZBSHTLdJlZ5a6gra7_HZoyPXutQU3R_0ZkxnSmoRA0I9EEtUn_5MR7acYJZILR7HEaxGrPpHXMWQH6Jx_NA97haNAQs5RdDsn1HGEA9NMe0OK9hgb4F5NEeuYXTglPX_pv1P8LxsALSLS15P6eaUEtqtC0EkoBNcHHXJ6Bs86iJOqVCsVA_gyspY3G2cH1NxuNy-P5n2N7RyQj95FzgO8CGpxSH-nXkOqDgZ5qg0g7-NQ","e":"AQAB"},"attributes":{"enabled":true,"created":1628297551,"updated":1628297551,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: + - no-cache + content-length: + - '691' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:52:31 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/keys/livekvtestkeycrypta8618f1/b41fc7b698144b91be28f48861a54355?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestkeycrypta8618f1/b41fc7b698144b91be28f48861a54355","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"oJFNACNKxoOyG0wV1b7Yh73JWcLlevVK5zTo8Acg13XSdeRVIH43hM7rYKUKRlXdcqepTScejuj3lZpmnKbndb8OI7ra6ZG0Up2XhSi0vZBSHTLdJlZ5a6gra7_HZoyPXutQU3R_0ZkxnSmoRA0I9EEtUn_5MR7acYJZILR7HEaxGrPpHXMWQH6Jx_NA97haNAQs5RdDsn1HGEA9NMe0OK9hgb4F5NEeuYXTglPX_pv1P8LxsALSLS15P6eaUEtqtC0EkoBNcHHXJ6Bs86iJOqVCsVA_gyspY3G2cH1NxuNy-P5n2N7RyQj95FzgO8CGpxSH-nXkOqDgZ5qg0g7-NQ","e":"AQAB"},"attributes":{"enabled":true,"created":1628297551,"updated":1628297551,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: + - no-cache + content-length: + - '691' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:52:31 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "RSA-OAEP", "value": "htBUpMTM3iQs-7cWLPlF147AWBIr02Xx7i8TAESEvGIY-4ZnBnWThmpeOfuk-OAmDvzG-DbygjRL6HJe1-WlaWngJXD7rCA1KQNF03d5qZuXbyY4nLnDnu8eYqlI9FUimTCozHofBJnvKJYcPtfqzhMKuIMiDZp1QEA8oHlvRjtgEi1NrkcxwJrQHYO9kXDSfXyzgGiyN6G4saM2YdqTbcJBrSuadhZ3tRWrzD9Iprmqz5jlL18SB6kKhrTgl8EDoxm1JGC6ZsXwkAaEm0P5ORsaShEDxbeh-yzRYtZXBtZnqv1__eLcDO-WFV8FJSltPtgiNxzHPaYIKzZtpmUOrw"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '374' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/keys/livekvtestkeycrypta8618f1/b41fc7b698144b91be28f48861a54355/decrypt?api-version=7.3-preview + response: + body: + string: '{"kid":"https://vaultname.vault.azure.net/keys/livekvtestkeycrypta8618f1/b41fc7b698144b91be28f48861a54355","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + cache-control: + - no-cache + content-length: + - '386' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:52:31 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_sign_and_verify_7_3_preview_vault.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_sign_and_verify_7_3_preview_vault.yaml index 6bda077ec8b7..47a40bd314b1 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_sign_and_verify_7_3_preview_vault.yaml +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client.test_sign_and_verify_7_3_preview_vault.yaml @@ -13,37 +13,189 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT uri: https://vaultname.vault.azure.net/keys/livekvtestkeysigna60c1737?api-version=7.3-preview response: body: - string: '{"error":{"code":"VaultNotFound","message":"Azure Key Vault ''vaultname'' - does not exist."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '90' + - '97' content-type: - application/json; charset=utf-8 date: - - Tue, 06 Jul 2021 21:01:32 GMT + - Sat, 07 Aug 2021 00:53:08 GMT expires: - '-1' pragma: - no-cache strict-transport-security: - max-age=31536000;includeSubDomains + www-authenticate: + - Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" x-content-type-options: - nosniff x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 x-ms-keyvault-service-version: - - 1.9.12.0 + - 1.9.48.0 x-powered-by: - ASP.NET status: - code: 404 - message: Not Found + code: 401 + message: Unauthorized +- request: + body: '{"key": {"kty": "RSA", "key_ops": ["encrypt", "decrypt", "sign", "verify", + "wrapKey", "unwrapKey"], "n": "AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU", + "e": "AQAB", "d": "Ynx9JGaBSP4iUsf6ZJ6opantRNdcdmzaQrKbZg6ZQE8Ohi1FYabJWvaoPSE-CiJEsDzShXZHMhUHN4X7Bn8BXaGQhK3p9HXgiwQKmix7oAJTu4ElUIyd8UC3UWHSZr40el4PaQD-HYu_eMzCXus34MnRiNbh_BUWm6T-Eidhk9d3kNIyaSi9YNDQHW6tjWrEhhq63O7JU1j9ZonFChZxpKk20jdkQKQURVAdpOdL-5j4I70ZxFuU6wHZj8DS8oRQfwGOvZKbgYDb5jgf3UNL_7eACqq92XPVX56vm7iKbqeyjCqAIx5y3hrSRIJtZlWCwjYnYQGd4unxDLi8wmJWSQ", + "dp": "AMmhWb5yZcu6vJr8xJZ-t0_likxJRUMZAtEULaWZt2DgODj4y9JrZDJP6mvckzhQP0WXk2NuWbU2HR5pUeCN2wieG1B76VKoH76vfnaJDqT1NuJVBcP2SLHog3ffwZtMME5zjfygchG3kihqOSpwTQ9ETAqAJTkRC38fEhwAz_Cp", + "dq": "AKC9TAo9n2RDaggjdLXK8kiLrBVoaWFTpqXkzYXRhtsx4vWPAkxhfSnze05rVMl6HiXv7FnE0f0wYawzUJzoyuXBH0zS6D9BqCZPeF543AmWB27iPf38Q9Z8Rjr6oBgMSnGDV_mm8nDVQkeaDyE4cOZh-5UKvKShTKKQVwunmDNH", + "qi": "AJ_nrkLpK8BPzVeARkvSHQyKwMWZ-a8CD95qsKfn0dOZAvXY-2xhQYTEwbED-0bpTNEKbIpA-ZkaHygmnzJkNbbFAnb9pkkzU8ZQqDP3JNgMfVIroWx58Oth9nJza2j7i-MkPRCUPEq3Ao0J52z7WJIiLji8TTVYW_NaiM1oxzsH", + "p": "ANHerI1o3dLB_VLVmZZVss8VZSYN5SaeQ_0qhfOSgOFwj__waCFmy2EG7l6l6f_Z-Y0L7Mn_LNov68lyWSFa2EuQUeVj4UoFHc5Di8ZUGiSsTwFM-XMtNuv8HmGgDYLL5BIJD3eTz71LdgW-Ez38OZH34b7VeG8zfeUDb8Hi30zz", + "q": "AMPcZrZBqbc82DO8Q5zTT8ZXRGWrW36KktMllaIk1W2RHnRiQiW0jBWmcCgqUcQNHa1LwumjyNqwx28QBS37BTvG7ULGUoio6LrOeoiBGEMj-U19sX6m37plEhj5Mak7j3OPPY_T9rohjTW5aGGg9YSwq4jdz0RrmBX00ofYOjI3"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1724' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: PUT + uri: https://vaultname.vault.azure.net/keys/livekvtestkeysigna60c1737?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestkeysigna60c1737/1c62b16430fa46aaa02d7b0b6b6c96b9","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"oJFNACNKxoOyG0wV1b7Yh73JWcLlevVK5zTo8Acg13XSdeRVIH43hM7rYKUKRlXdcqepTScejuj3lZpmnKbndb8OI7ra6ZG0Up2XhSi0vZBSHTLdJlZ5a6gra7_HZoyPXutQU3R_0ZkxnSmoRA0I9EEtUn_5MR7acYJZILR7HEaxGrPpHXMWQH6Jx_NA97haNAQs5RdDsn1HGEA9NMe0OK9hgb4F5NEeuYXTglPX_pv1P8LxsALSLS15P6eaUEtqtC0EkoBNcHHXJ6Bs86iJOqVCsVA_gyspY3G2cH1NxuNy-P5n2N7RyQj95FzgO8CGpxSH-nXkOqDgZ5qg0g7-NQ","e":"AQAB"},"attributes":{"enabled":true,"created":1628297588,"updated":1628297588,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: + - no-cache + content-length: + - '691' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:53:08 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/keys/livekvtestkeysigna60c1737/1c62b16430fa46aaa02d7b0b6b6c96b9?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestkeysigna60c1737/1c62b16430fa46aaa02d7b0b6b6c96b9","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"oJFNACNKxoOyG0wV1b7Yh73JWcLlevVK5zTo8Acg13XSdeRVIH43hM7rYKUKRlXdcqepTScejuj3lZpmnKbndb8OI7ra6ZG0Up2XhSi0vZBSHTLdJlZ5a6gra7_HZoyPXutQU3R_0ZkxnSmoRA0I9EEtUn_5MR7acYJZILR7HEaxGrPpHXMWQH6Jx_NA97haNAQs5RdDsn1HGEA9NMe0OK9hgb4F5NEeuYXTglPX_pv1P8LxsALSLS15P6eaUEtqtC0EkoBNcHHXJ6Bs86iJOqVCsVA_gyspY3G2cH1NxuNy-P5n2N7RyQj95FzgO8CGpxSH-nXkOqDgZ5qg0g7-NQ","e":"AQAB"},"attributes":{"enabled":true,"created":1628297588,"updated":1628297588,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: + - no-cache + content-length: + - '691' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:53:08 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"alg": "RS256", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '72' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/keys/livekvtestkeysigna60c1737/1c62b16430fa46aaa02d7b0b6b6c96b9/sign?api-version=7.3-preview + response: + body: + string: '{"kid":"https://vaultname.vault.azure.net/keys/livekvtestkeysigna60c1737/1c62b16430fa46aaa02d7b0b6b6c96b9","value":"YX0IOuHlYW7IEVboW0c8M_geUfp2pKoCw7ujVZfXZOy0890603_QcjCSzuw_qUWehJ8IYVlfaXeF3Ebu36oB6cD8oG8OfI6rLM9BKQUR2KE5VoCBKAGit7FxhAnLRFGP69dF6gyO_wv_-zCJnXLIOg1Pu0K80WVSYkj6Wzczj35OQHEptDqRmxdwQoDYoEk5iYcb3JOeWC1frcGVEf9qs0yzwx1AbgkAOPElweovZZlleS6MALP0HTt7L5zJg7kjnCsuksVsEfM2R0_Mzt8nT24LczCNyZac50hHVkCepaZDRs26KodYnSs3doFlYOUJpCu8sxil7VBTEtFY38dENg"}' + headers: + cache-control: + - no-cache + content-length: + - '461' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:53:08 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_encrypt_and_decrypt_7_3_preview_vault.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_encrypt_and_decrypt_7_3_preview_vault.yaml index 546881588395..735e6af43eb0 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_encrypt_and_decrypt_7_3_preview_vault.yaml +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_encrypt_and_decrypt_7_3_preview_vault.yaml @@ -9,27 +9,132 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT uri: https://vaultname.vault.azure.net/keys/livekvtestkeycryptabd41b6e?api-version=7.3-preview response: body: - string: '{"error":{"code":"VaultNotFound","message":"Azure Key Vault ''vaultname'' - does not exist."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '90' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 06 Jul 2021 21:48:52 GMT + date: Sat, 07 Aug 2021 00:53:36 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains + www-authenticate: Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-service-version: 1.9.12.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://vaultname.vault.azure.net/keys/livekvtestkeycryptabd41b6e?api-version=7.3-preview + code: 401 + message: Unauthorized + url: https://mcpatinokv.vault.azure.net/keys/livekvtestkeycryptabd41b6e?api-version=7.3-preview +- request: + body: '{"key": {"kty": "RSA", "key_ops": ["encrypt", "decrypt", "sign", "verify", + "wrapKey", "unwrapKey"], "n": "AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU", + "e": "AQAB", "d": "Ynx9JGaBSP4iUsf6ZJ6opantRNdcdmzaQrKbZg6ZQE8Ohi1FYabJWvaoPSE-CiJEsDzShXZHMhUHN4X7Bn8BXaGQhK3p9HXgiwQKmix7oAJTu4ElUIyd8UC3UWHSZr40el4PaQD-HYu_eMzCXus34MnRiNbh_BUWm6T-Eidhk9d3kNIyaSi9YNDQHW6tjWrEhhq63O7JU1j9ZonFChZxpKk20jdkQKQURVAdpOdL-5j4I70ZxFuU6wHZj8DS8oRQfwGOvZKbgYDb5jgf3UNL_7eACqq92XPVX56vm7iKbqeyjCqAIx5y3hrSRIJtZlWCwjYnYQGd4unxDLi8wmJWSQ", + "dp": "AMmhWb5yZcu6vJr8xJZ-t0_likxJRUMZAtEULaWZt2DgODj4y9JrZDJP6mvckzhQP0WXk2NuWbU2HR5pUeCN2wieG1B76VKoH76vfnaJDqT1NuJVBcP2SLHog3ffwZtMME5zjfygchG3kihqOSpwTQ9ETAqAJTkRC38fEhwAz_Cp", + "dq": "AKC9TAo9n2RDaggjdLXK8kiLrBVoaWFTpqXkzYXRhtsx4vWPAkxhfSnze05rVMl6HiXv7FnE0f0wYawzUJzoyuXBH0zS6D9BqCZPeF543AmWB27iPf38Q9Z8Rjr6oBgMSnGDV_mm8nDVQkeaDyE4cOZh-5UKvKShTKKQVwunmDNH", + "qi": "AJ_nrkLpK8BPzVeARkvSHQyKwMWZ-a8CD95qsKfn0dOZAvXY-2xhQYTEwbED-0bpTNEKbIpA-ZkaHygmnzJkNbbFAnb9pkkzU8ZQqDP3JNgMfVIroWx58Oth9nJza2j7i-MkPRCUPEq3Ao0J52z7WJIiLji8TTVYW_NaiM1oxzsH", + "p": "ANHerI1o3dLB_VLVmZZVss8VZSYN5SaeQ_0qhfOSgOFwj__waCFmy2EG7l6l6f_Z-Y0L7Mn_LNov68lyWSFa2EuQUeVj4UoFHc5Di8ZUGiSsTwFM-XMtNuv8HmGgDYLL5BIJD3eTz71LdgW-Ez38OZH34b7VeG8zfeUDb8Hi30zz", + "q": "AMPcZrZBqbc82DO8Q5zTT8ZXRGWrW36KktMllaIk1W2RHnRiQiW0jBWmcCgqUcQNHa1LwumjyNqwx28QBS37BTvG7ULGUoio6LrOeoiBGEMj-U19sX6m37plEhj5Mak7j3OPPY_T9rohjTW5aGGg9YSwq4jdz0RrmBX00ofYOjI3"}}' + headers: + Accept: + - application/json + Content-Length: + - '1724' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: PUT + uri: https://vaultname.vault.azure.net/keys/livekvtestkeycryptabd41b6e?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestkeycryptabd41b6e/973585f66bad47c785269626d5be88c9","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"oJFNACNKxoOyG0wV1b7Yh73JWcLlevVK5zTo8Acg13XSdeRVIH43hM7rYKUKRlXdcqepTScejuj3lZpmnKbndb8OI7ra6ZG0Up2XhSi0vZBSHTLdJlZ5a6gra7_HZoyPXutQU3R_0ZkxnSmoRA0I9EEtUn_5MR7acYJZILR7HEaxGrPpHXMWQH6Jx_NA97haNAQs5RdDsn1HGEA9NMe0OK9hgb4F5NEeuYXTglPX_pv1P8LxsALSLS15P6eaUEtqtC0EkoBNcHHXJ6Bs86iJOqVCsVA_gyspY3G2cH1NxuNy-P5n2N7RyQj95FzgO8CGpxSH-nXkOqDgZ5qg0g7-NQ","e":"AQAB"},"attributes":{"enabled":true,"created":1628297617,"updated":1628297617,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: no-cache + content-length: '692' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:53:36 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/keys/livekvtestkeycryptabd41b6e?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/keys/livekvtestkeycryptabd41b6e/973585f66bad47c785269626d5be88c9?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestkeycryptabd41b6e/973585f66bad47c785269626d5be88c9","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"oJFNACNKxoOyG0wV1b7Yh73JWcLlevVK5zTo8Acg13XSdeRVIH43hM7rYKUKRlXdcqepTScejuj3lZpmnKbndb8OI7ra6ZG0Up2XhSi0vZBSHTLdJlZ5a6gra7_HZoyPXutQU3R_0ZkxnSmoRA0I9EEtUn_5MR7acYJZILR7HEaxGrPpHXMWQH6Jx_NA97haNAQs5RdDsn1HGEA9NMe0OK9hgb4F5NEeuYXTglPX_pv1P8LxsALSLS15P6eaUEtqtC0EkoBNcHHXJ6Bs86iJOqVCsVA_gyspY3G2cH1NxuNy-P5n2N7RyQj95FzgO8CGpxSH-nXkOqDgZ5qg0g7-NQ","e":"AQAB"},"attributes":{"enabled":true,"created":1628297617,"updated":1628297617,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: no-cache + content-length: '692' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:53:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/keys/livekvtestkeycryptabd41b6e/973585f66bad47c785269626d5be88c9?api-version=7.3-preview +- request: + body: '{"alg": "RSA-OAEP", "value": "Nr75vX5NaY1D-WkBlOi6maHZyU8VNRn33U-TVkCIoOdidVy3YZ7G1GM3wHh5TsgvMhZeWyXPmLub8ETgPMPgRmZBoVegfyM-JVOpjukQEguxni9UUUedcPWWCuB0RauS_xI9hu6ya3UKD2kxnPGjbQBrsPkEQY55p8UJ7Um0cg0d5aU-u9oGWN2tceMPlclSj99JPomqvErQGdPsNw7SSnB9iiu5FJHuYAUZPsIfPA1XpAt-j6MacPUlDL1vrkZXt16_gM3v220F0vPIrTP8CLGbef2C2ebhJpDp-BrvmBORoFEJ344yXNjuwN2wIJY9Lahkfk1nQiy9h6GE60xzXg"}' + headers: + Accept: + - application/json + Content-Length: + - '374' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/keys/livekvtestkeycryptabd41b6e/973585f66bad47c785269626d5be88c9/decrypt?api-version=7.3-preview + response: + body: + string: '{"kid":"https://vaultname.vault.azure.net/keys/livekvtestkeycryptabd41b6e/973585f66bad47c785269626d5be88c9","value":"NTA2M2U2YWFhODQ1ZjE1MDIwMDU0Nzk0NGZkMTk5Njc5Yzk4ZWQ2Zjk5ZGEwYTBiMmRhZmVhZjFmNDY4NDQ5NmZkNTMyYzFjMjI5OTY4Y2I5ZGVlNDQ5NTdmY2VmN2NjZWY1OWNlZGEwYjM2MmU1NmJjZDc4ZmQzZmFlZTU3ODFjNjIzYzBiYjIyYjM1YmVhYmRlMDY2NGZkMzBlMGU4MjRhYmEzZGQxYjBhZmZmYzRhM2Q5NTVlZGUyMGNmNmE4NTRkNTJjZmQ"}' + headers: + cache-control: no-cache + content-length: '387' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:53:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/keys/livekvtestkeycryptabd41b6e/973585f66bad47c785269626d5be88c9/decrypt?api-version=7.3-preview version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_sign_and_verify_7_3_preview_vault.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_sign_and_verify_7_3_preview_vault.yaml index a4a27c680925..f1bae54e4cc6 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_sign_and_verify_7_3_preview_vault.yaml +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_crypto_client_async.test_sign_and_verify_7_3_preview_vault.yaml @@ -9,27 +9,132 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT uri: https://vaultname.vault.azure.net/keys/livekvtestkeysign3d7519b4?api-version=7.3-preview response: body: - string: '{"error":{"code":"VaultNotFound","message":"Azure Key Vault ''vaultname'' - does not exist."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '90' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 06 Jul 2021 21:48:57 GMT + date: Sat, 07 Aug 2021 00:53:21 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains + www-authenticate: Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-service-version: 1.9.12.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: - code: 404 - message: Not Found - url: https://vaultname.vault.azure.net/keys/livekvtestkeysign3d7519b4?api-version=7.3-preview + code: 401 + message: Unauthorized + url: https://mcpatinokv.vault.azure.net/keys/livekvtestkeysign3d7519b4?api-version=7.3-preview +- request: + body: '{"key": {"kty": "RSA", "key_ops": ["encrypt", "decrypt", "sign", "verify", + "wrapKey", "unwrapKey"], "n": "AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU", + "e": "AQAB", "d": "Ynx9JGaBSP4iUsf6ZJ6opantRNdcdmzaQrKbZg6ZQE8Ohi1FYabJWvaoPSE-CiJEsDzShXZHMhUHN4X7Bn8BXaGQhK3p9HXgiwQKmix7oAJTu4ElUIyd8UC3UWHSZr40el4PaQD-HYu_eMzCXus34MnRiNbh_BUWm6T-Eidhk9d3kNIyaSi9YNDQHW6tjWrEhhq63O7JU1j9ZonFChZxpKk20jdkQKQURVAdpOdL-5j4I70ZxFuU6wHZj8DS8oRQfwGOvZKbgYDb5jgf3UNL_7eACqq92XPVX56vm7iKbqeyjCqAIx5y3hrSRIJtZlWCwjYnYQGd4unxDLi8wmJWSQ", + "dp": "AMmhWb5yZcu6vJr8xJZ-t0_likxJRUMZAtEULaWZt2DgODj4y9JrZDJP6mvckzhQP0WXk2NuWbU2HR5pUeCN2wieG1B76VKoH76vfnaJDqT1NuJVBcP2SLHog3ffwZtMME5zjfygchG3kihqOSpwTQ9ETAqAJTkRC38fEhwAz_Cp", + "dq": "AKC9TAo9n2RDaggjdLXK8kiLrBVoaWFTpqXkzYXRhtsx4vWPAkxhfSnze05rVMl6HiXv7FnE0f0wYawzUJzoyuXBH0zS6D9BqCZPeF543AmWB27iPf38Q9Z8Rjr6oBgMSnGDV_mm8nDVQkeaDyE4cOZh-5UKvKShTKKQVwunmDNH", + "qi": "AJ_nrkLpK8BPzVeARkvSHQyKwMWZ-a8CD95qsKfn0dOZAvXY-2xhQYTEwbED-0bpTNEKbIpA-ZkaHygmnzJkNbbFAnb9pkkzU8ZQqDP3JNgMfVIroWx58Oth9nJza2j7i-MkPRCUPEq3Ao0J52z7WJIiLji8TTVYW_NaiM1oxzsH", + "p": "ANHerI1o3dLB_VLVmZZVss8VZSYN5SaeQ_0qhfOSgOFwj__waCFmy2EG7l6l6f_Z-Y0L7Mn_LNov68lyWSFa2EuQUeVj4UoFHc5Di8ZUGiSsTwFM-XMtNuv8HmGgDYLL5BIJD3eTz71LdgW-Ez38OZH34b7VeG8zfeUDb8Hi30zz", + "q": "AMPcZrZBqbc82DO8Q5zTT8ZXRGWrW36KktMllaIk1W2RHnRiQiW0jBWmcCgqUcQNHa1LwumjyNqwx28QBS37BTvG7ULGUoio6LrOeoiBGEMj-U19sX6m37plEhj5Mak7j3OPPY_T9rohjTW5aGGg9YSwq4jdz0RrmBX00ofYOjI3"}}' + headers: + Accept: + - application/json + Content-Length: + - '1724' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: PUT + uri: https://vaultname.vault.azure.net/keys/livekvtestkeysign3d7519b4?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestkeysign3d7519b4/1f3b06825d264472a23e6b8119fce4c1","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"oJFNACNKxoOyG0wV1b7Yh73JWcLlevVK5zTo8Acg13XSdeRVIH43hM7rYKUKRlXdcqepTScejuj3lZpmnKbndb8OI7ra6ZG0Up2XhSi0vZBSHTLdJlZ5a6gra7_HZoyPXutQU3R_0ZkxnSmoRA0I9EEtUn_5MR7acYJZILR7HEaxGrPpHXMWQH6Jx_NA97haNAQs5RdDsn1HGEA9NMe0OK9hgb4F5NEeuYXTglPX_pv1P8LxsALSLS15P6eaUEtqtC0EkoBNcHHXJ6Bs86iJOqVCsVA_gyspY3G2cH1NxuNy-P5n2N7RyQj95FzgO8CGpxSH-nXkOqDgZ5qg0g7-NQ","e":"AQAB"},"attributes":{"enabled":true,"created":1628297601,"updated":1628297601,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: no-cache + content-length: '691' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:53:21 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/keys/livekvtestkeysign3d7519b4?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/keys/livekvtestkeysign3d7519b4/1f3b06825d264472a23e6b8119fce4c1?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestkeysign3d7519b4/1f3b06825d264472a23e6b8119fce4c1","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"oJFNACNKxoOyG0wV1b7Yh73JWcLlevVK5zTo8Acg13XSdeRVIH43hM7rYKUKRlXdcqepTScejuj3lZpmnKbndb8OI7ra6ZG0Up2XhSi0vZBSHTLdJlZ5a6gra7_HZoyPXutQU3R_0ZkxnSmoRA0I9EEtUn_5MR7acYJZILR7HEaxGrPpHXMWQH6Jx_NA97haNAQs5RdDsn1HGEA9NMe0OK9hgb4F5NEeuYXTglPX_pv1P8LxsALSLS15P6eaUEtqtC0EkoBNcHHXJ6Bs86iJOqVCsVA_gyspY3G2cH1NxuNy-P5n2N7RyQj95FzgO8CGpxSH-nXkOqDgZ5qg0g7-NQ","e":"AQAB"},"attributes":{"enabled":true,"created":1628297601,"updated":1628297601,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: no-cache + content-length: '691' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:53:22 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/keys/livekvtestkeysign3d7519b4/1f3b06825d264472a23e6b8119fce4c1?api-version=7.3-preview +- request: + body: '{"alg": "RS256", "value": "vgZc0NQUb6WMKX___V2JntcFRO_vszKwSAj7R2rL1zg"}' + headers: + Accept: + - application/json + Content-Length: + - '72' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/keys/livekvtestkeysign3d7519b4/1f3b06825d264472a23e6b8119fce4c1/sign?api-version=7.3-preview + response: + body: + string: '{"kid":"https://vaultname.vault.azure.net/keys/livekvtestkeysign3d7519b4/1f3b06825d264472a23e6b8119fce4c1","value":"YX0IOuHlYW7IEVboW0c8M_geUfp2pKoCw7ujVZfXZOy0890603_QcjCSzuw_qUWehJ8IYVlfaXeF3Ebu36oB6cD8oG8OfI6rLM9BKQUR2KE5VoCBKAGit7FxhAnLRFGP69dF6gyO_wv_-zCJnXLIOg1Pu0K80WVSYkj6Wzczj35OQHEptDqRmxdwQoDYoEk5iYcb3JOeWC1frcGVEf9qs0yzwx1AbgkAOPElweovZZlleS6MALP0HTt7L5zJg7kjnCsuksVsEfM2R0_Mzt8nT24LczCNyZac50hHVkCepaZDRs26KodYnSs3doFlYOUJpCu8sxil7VBTEtFY38dENg"}' + headers: + cache-control: no-cache + content-length: '461' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:53:22 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/keys/livekvtestkeysign3d7519b4/1f3b06825d264472a23e6b8119fce4c1/sign?api-version=7.3-preview version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_key_crud_operations_7_3_preview_vault.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_key_crud_operations_7_3_preview_vault.yaml index ce6a6c178076..e754a14cb83d 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_key_crud_operations_7_3_preview_vault.yaml +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_key_client.test_key_crud_operations_7_3_preview_vault.yaml @@ -13,37 +13,919 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/keys/livekvtestcrud-ec-keybafd17a1/create?api-version=7.3-preview response: body: - string: '{"error":{"code":"VaultNotFound","message":"Azure Key Vault ''vaultname'' - does not exist."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: - no-cache content-length: - - '90' + - '97' content-type: - application/json; charset=utf-8 date: - - Tue, 06 Jul 2021 18:36:21 GMT + - Sat, 07 Aug 2021 00:30:19 GMT expires: - '-1' pragma: - no-cache strict-transport-security: - max-age=31536000;includeSubDomains + www-authenticate: + - Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" x-content-type-options: - nosniff x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 x-ms-keyvault-service-version: - - 1.9.12.0 + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 401 + message: Unauthorized +- request: + body: '{"kty": "EC-HSM", "attributes": {"enabled": true}, "tags": {"purpose": + "unit test", "test name": "CreateECKeyTest"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '116' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/keys/livekvtestcrud-ec-keybafd17a1/create?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-ec-keybafd17a1/11fe2189022947008417c6c8bf5b2ab9","kty":"EC-HSM","key_ops":["sign","verify"],"crv":"P-256","x":"pc5MThywnfZDA91WCRaT1qylxrMLnb44O9di-XM6MAk","y":"9rmlnrm3SXXGiSx23EKAqakhMnYAj8qBufX2GpuVaGQ"},"attributes":{"enabled":true,"created":1628296220,"updated":1628296220,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"purpose":"unit + test","test name":"CreateECKeyTest"}}' + headers: + cache-control: + - no-cache + content-length: + - '471' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:21 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"kty": "EC", "crv": "P-256"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '29' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/keys/livekvtestcrud-P-256-ec-keybafd17a1/create?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-P-256-ec-keybafd17a1/3325caa1af3b4ec5964cb7f7e93c517b","kty":"EC","key_ops":["sign","verify"],"crv":"P-256","x":"JKEEaNhBclLVSMGbkBZOvU0zHgULXUHnwJe24scam0M","y":"5Mn7Pvf0h9hWAf0BbiDYNmj4kf7cewwHMz8SLBT0NfU"},"attributes":{"enabled":true,"created":1628296224,"updated":1628296224,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: + - no-cache + content-length: + - '412' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:24 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"key": {"kty": "RSA", "key_ops": ["encrypt", "decrypt", "sign", "verify", + "wrapKey", "unwrapKey"], "n": "AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU", + "e": "AQAB", "d": "Ynx9JGaBSP4iUsf6ZJ6opantRNdcdmzaQrKbZg6ZQE8Ohi1FYabJWvaoPSE-CiJEsDzShXZHMhUHN4X7Bn8BXaGQhK3p9HXgiwQKmix7oAJTu4ElUIyd8UC3UWHSZr40el4PaQD-HYu_eMzCXus34MnRiNbh_BUWm6T-Eidhk9d3kNIyaSi9YNDQHW6tjWrEhhq63O7JU1j9ZonFChZxpKk20jdkQKQURVAdpOdL-5j4I70ZxFuU6wHZj8DS8oRQfwGOvZKbgYDb5jgf3UNL_7eACqq92XPVX56vm7iKbqeyjCqAIx5y3hrSRIJtZlWCwjYnYQGd4unxDLi8wmJWSQ", + "dp": "AMmhWb5yZcu6vJr8xJZ-t0_likxJRUMZAtEULaWZt2DgODj4y9JrZDJP6mvckzhQP0WXk2NuWbU2HR5pUeCN2wieG1B76VKoH76vfnaJDqT1NuJVBcP2SLHog3ffwZtMME5zjfygchG3kihqOSpwTQ9ETAqAJTkRC38fEhwAz_Cp", + "dq": "AKC9TAo9n2RDaggjdLXK8kiLrBVoaWFTpqXkzYXRhtsx4vWPAkxhfSnze05rVMl6HiXv7FnE0f0wYawzUJzoyuXBH0zS6D9BqCZPeF543AmWB27iPf38Q9Z8Rjr6oBgMSnGDV_mm8nDVQkeaDyE4cOZh-5UKvKShTKKQVwunmDNH", + "qi": "AJ_nrkLpK8BPzVeARkvSHQyKwMWZ-a8CD95qsKfn0dOZAvXY-2xhQYTEwbED-0bpTNEKbIpA-ZkaHygmnzJkNbbFAnb9pkkzU8ZQqDP3JNgMfVIroWx58Oth9nJza2j7i-MkPRCUPEq3Ao0J52z7WJIiLji8TTVYW_NaiM1oxzsH", + "p": "ANHerI1o3dLB_VLVmZZVss8VZSYN5SaeQ_0qhfOSgOFwj__waCFmy2EG7l6l6f_Z-Y0L7Mn_LNov68lyWSFa2EuQUeVj4UoFHc5Di8ZUGiSsTwFM-XMtNuv8HmGgDYLL5BIJD3eTz71LdgW-Ez38OZH34b7VeG8zfeUDb8Hi30zz", + "q": "AMPcZrZBqbc82DO8Q5zTT8ZXRGWrW36KktMllaIk1W2RHnRiQiW0jBWmcCgqUcQNHa1LwumjyNqwx28QBS37BTvG7ULGUoio6LrOeoiBGEMj-U19sX6m37plEhj5Mak7j3OPPY_T9rohjTW5aGGg9YSwq4jdz0RrmBX00ofYOjI3"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1724' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: PUT + uri: https://vaultname.vault.azure.net/keys/livekvtestimport-test-keybafd17a1?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestimport-test-keybafd17a1/35809865eee14bc7be457fa5220aa41f","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"oJFNACNKxoOyG0wV1b7Yh73JWcLlevVK5zTo8Acg13XSdeRVIH43hM7rYKUKRlXdcqepTScejuj3lZpmnKbndb8OI7ra6ZG0Up2XhSi0vZBSHTLdJlZ5a6gra7_HZoyPXutQU3R_0ZkxnSmoRA0I9EEtUn_5MR7acYJZILR7HEaxGrPpHXMWQH6Jx_NA97haNAQs5RdDsn1HGEA9NMe0OK9hgb4F5NEeuYXTglPX_pv1P8LxsALSLS15P6eaUEtqtC0EkoBNcHHXJ6Bs86iJOqVCsVA_gyspY3G2cH1NxuNy-P5n2N7RyQj95FzgO8CGpxSH-nXkOqDgZ5qg0g7-NQ","e":"AQAB"},"attributes":{"enabled":true,"created":1628296224,"updated":1628296224,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: + - no-cache + content-length: + - '699' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:24 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"kty": "RSA", "key_size": 2048, "key_ops": ["encrypt", "decrypt", "sign", + "verify", "wrapKey", "unwrapKey"], "tags": {"purpose": "unit test", "test name + ": "CreateRSAKeyTest"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '177' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybafd17a1/create?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybafd17a1/59895f7d63f14d2e95b771b7fc773b78","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"ujVKB64ua5WAoIeY-bAVsp8-CphR80oW_OvdIV_n1yq-DZbp28n1vSDex5LSBD8GmsYBXA9fM4AWBbJzJy7q9Rpy06wj2QrbTrMWmWCYO6KyxXFsdMVqnsYrygOBugdDdGaih70M30MsxS9uggo0JZZcqazBjbvon8XB260VtYD9e-D-rPIkd8r5JCK2q4uKchOeeXUhP6rOwGa6TmjzangAc9ItAJOiBovTh2lxrInxFOC0venCNWDZdw81yAm3E3KUsOtJmMC8HFWhQ2q_wwaY2zzeSk-c2ypsMsuMsdg-knb1WkLkydTFUK-iCOkZE3HC7q5gCxVQom3W5lQO1Q","e":"AQAB"},"attributes":{"enabled":true,"created":1628296226,"updated":1628296226,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"purpose":"unit + test","test name ":"CreateRSAKeyTest"}}' + headers: + cache-control: + - no-cache + content-length: + - '759' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:27 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybafd17a1/59895f7d63f14d2e95b771b7fc773b78?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybafd17a1/59895f7d63f14d2e95b771b7fc773b78","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"ujVKB64ua5WAoIeY-bAVsp8-CphR80oW_OvdIV_n1yq-DZbp28n1vSDex5LSBD8GmsYBXA9fM4AWBbJzJy7q9Rpy06wj2QrbTrMWmWCYO6KyxXFsdMVqnsYrygOBugdDdGaih70M30MsxS9uggo0JZZcqazBjbvon8XB260VtYD9e-D-rPIkd8r5JCK2q4uKchOeeXUhP6rOwGa6TmjzangAc9ItAJOiBovTh2lxrInxFOC0venCNWDZdw81yAm3E3KUsOtJmMC8HFWhQ2q_wwaY2zzeSk-c2ypsMsuMsdg-knb1WkLkydTFUK-iCOkZE3HC7q5gCxVQom3W5lQO1Q","e":"AQAB"},"attributes":{"enabled":true,"created":1628296226,"updated":1628296226,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"purpose":"unit + test","test name ":"CreateRSAKeyTest"}}' + headers: + cache-control: + - no-cache + content-length: + - '759' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:27 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybafd17a1/?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybafd17a1/59895f7d63f14d2e95b771b7fc773b78","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"ujVKB64ua5WAoIeY-bAVsp8-CphR80oW_OvdIV_n1yq-DZbp28n1vSDex5LSBD8GmsYBXA9fM4AWBbJzJy7q9Rpy06wj2QrbTrMWmWCYO6KyxXFsdMVqnsYrygOBugdDdGaih70M30MsxS9uggo0JZZcqazBjbvon8XB260VtYD9e-D-rPIkd8r5JCK2q4uKchOeeXUhP6rOwGa6TmjzangAc9ItAJOiBovTh2lxrInxFOC0venCNWDZdw81yAm3E3KUsOtJmMC8HFWhQ2q_wwaY2zzeSk-c2ypsMsuMsdg-knb1WkLkydTFUK-iCOkZE3HC7q5gCxVQom3W5lQO1Q","e":"AQAB"},"attributes":{"enabled":true,"created":1628296226,"updated":1628296226,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"purpose":"unit + test","test name ":"CreateRSAKeyTest"}}' + headers: + cache-control: + - no-cache + content-length: + - '759' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:27 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"key_ops": ["decrypt", "encrypt"], "attributes": {"exp": 2524723200}, + "tags": {"foo": "updated tag"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '102' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: PATCH + uri: https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybafd17a1/?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybafd17a1/59895f7d63f14d2e95b771b7fc773b78","kty":"RSA","key_ops":["decrypt","encrypt"],"n":"ujVKB64ua5WAoIeY-bAVsp8-CphR80oW_OvdIV_n1yq-DZbp28n1vSDex5LSBD8GmsYBXA9fM4AWBbJzJy7q9Rpy06wj2QrbTrMWmWCYO6KyxXFsdMVqnsYrygOBugdDdGaih70M30MsxS9uggo0JZZcqazBjbvon8XB260VtYD9e-D-rPIkd8r5JCK2q4uKchOeeXUhP6rOwGa6TmjzangAc9ItAJOiBovTh2lxrInxFOC0venCNWDZdw81yAm3E3KUsOtJmMC8HFWhQ2q_wwaY2zzeSk-c2ypsMsuMsdg-knb1WkLkydTFUK-iCOkZE3HC7q5gCxVQom3W5lQO1Q","e":"AQAB"},"attributes":{"enabled":true,"exp":2524723200,"created":1628296226,"updated":1628296228,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"foo":"updated + tag"}}' + headers: + cache-control: + - no-cache + content-length: + - '704' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:28 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybafd17a1?api-version=7.3-preview + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybafd17a1","deletedDate":1628296228,"scheduledPurgeDate":1636072228,"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybafd17a1/59895f7d63f14d2e95b771b7fc773b78","kty":"RSA","key_ops":["decrypt","encrypt"],"n":"ujVKB64ua5WAoIeY-bAVsp8-CphR80oW_OvdIV_n1yq-DZbp28n1vSDex5LSBD8GmsYBXA9fM4AWBbJzJy7q9Rpy06wj2QrbTrMWmWCYO6KyxXFsdMVqnsYrygOBugdDdGaih70M30MsxS9uggo0JZZcqazBjbvon8XB260VtYD9e-D-rPIkd8r5JCK2q4uKchOeeXUhP6rOwGa6TmjzangAc9ItAJOiBovTh2lxrInxFOC0venCNWDZdw81yAm3E3KUsOtJmMC8HFWhQ2q_wwaY2zzeSk-c2ypsMsuMsdg-knb1WkLkydTFUK-iCOkZE3HC7q5gCxVQom3W5lQO1Q","e":"AQAB"},"attributes":{"enabled":true,"exp":2524723200,"created":1628296226,"updated":1628296228,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"foo":"updated + tag"}}' + headers: + cache-control: + - no-cache + content-length: + - '854' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:28 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybafd17a1?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybafd17a1"}}' + headers: + cache-control: + - no-cache + content-length: + - '98' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:28 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybafd17a1?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybafd17a1"}}' + headers: + cache-control: + - no-cache + content-length: + - '98' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:30 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybafd17a1?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybafd17a1"}}' + headers: + cache-control: + - no-cache + content-length: + - '98' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:32 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybafd17a1?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybafd17a1"}}' + headers: + cache-control: + - no-cache + content-length: + - '98' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:34 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybafd17a1?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybafd17a1"}}' + headers: + cache-control: + - no-cache + content-length: + - '98' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:36 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybafd17a1?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybafd17a1"}}' + headers: + cache-control: + - no-cache + content-length: + - '98' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:38 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybafd17a1?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybafd17a1"}}' + headers: + cache-control: + - no-cache + content-length: + - '98' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:41 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybafd17a1?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybafd17a1"}}' + headers: + cache-control: + - no-cache + content-length: + - '98' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:42 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybafd17a1?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybafd17a1"}}' + headers: + cache-control: + - no-cache + content-length: + - '98' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:44 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 x-powered-by: - ASP.NET status: code: 404 message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybafd17a1?api-version=7.3-preview + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybafd17a1","deletedDate":1628296228,"scheduledPurgeDate":1636072228,"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybafd17a1/59895f7d63f14d2e95b771b7fc773b78","kty":"RSA","key_ops":["decrypt","encrypt"],"n":"ujVKB64ua5WAoIeY-bAVsp8-CphR80oW_OvdIV_n1yq-DZbp28n1vSDex5LSBD8GmsYBXA9fM4AWBbJzJy7q9Rpy06wj2QrbTrMWmWCYO6KyxXFsdMVqnsYrygOBugdDdGaih70M30MsxS9uggo0JZZcqazBjbvon8XB260VtYD9e-D-rPIkd8r5JCK2q4uKchOeeXUhP6rOwGa6TmjzangAc9ItAJOiBovTh2lxrInxFOC0venCNWDZdw81yAm3E3KUsOtJmMC8HFWhQ2q_wwaY2zzeSk-c2ypsMsuMsdg-knb1WkLkydTFUK-iCOkZE3HC7q5gCxVQom3W5lQO1Q","e":"AQAB"},"attributes":{"enabled":true,"exp":2524723200,"created":1628296226,"updated":1628296228,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"foo":"updated + tag"}}' + headers: + cache-control: + - no-cache + content-length: + - '854' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:46 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybafd17a1?api-version=7.3-preview + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybafd17a1","deletedDate":1628296228,"scheduledPurgeDate":1636072228,"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybafd17a1/59895f7d63f14d2e95b771b7fc773b78","kty":"RSA","key_ops":["decrypt","encrypt"],"n":"ujVKB64ua5WAoIeY-bAVsp8-CphR80oW_OvdIV_n1yq-DZbp28n1vSDex5LSBD8GmsYBXA9fM4AWBbJzJy7q9Rpy06wj2QrbTrMWmWCYO6KyxXFsdMVqnsYrygOBugdDdGaih70M30MsxS9uggo0JZZcqazBjbvon8XB260VtYD9e-D-rPIkd8r5JCK2q4uKchOeeXUhP6rOwGa6TmjzangAc9ItAJOiBovTh2lxrInxFOC0venCNWDZdw81yAm3E3KUsOtJmMC8HFWhQ2q_wwaY2zzeSk-c2ypsMsuMsdg-knb1WkLkydTFUK-iCOkZE3HC7q5gCxVQom3W5lQO1Q","e":"AQAB"},"attributes":{"enabled":true,"exp":2524723200,"created":1628296226,"updated":1628296228,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"foo":"updated + tag"}}' + headers: + cache-control: + - no-cache + content-length: + - '854' + content-type: + - application/json; charset=utf-8 + date: + - Sat, 07 Aug 2021 00:30:46 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000;includeSubDomains + x-content-type-options: + - nosniff + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: + - westus2 + x-ms-keyvault-service-version: + - 1.9.48.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_key_crud_operations_7_3_preview_vault.yaml b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_key_crud_operations_7_3_preview_vault.yaml index d72efec651e3..b9e4b7562350 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_key_crud_operations_7_3_preview_vault.yaml +++ b/sdk/keyvault/azure-keyvault-keys/tests/recordings/test_keys_async.test_key_crud_operations_7_3_preview_vault.yaml @@ -9,27 +9,735 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://vaultname.vault.azure.net/keys/livekvtestcrud-ec-keybe9317b3/create?api-version=7.3-preview response: body: - string: '{"error":{"code":"VaultNotFound","message":"Azure Key Vault ''vaultname'' - does not exist."}}' + string: '{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing + a Bearer or PoP token."}}' headers: cache-control: no-cache - content-length: '90' + content-length: '97' content-type: application/json; charset=utf-8 - date: Tue, 06 Jul 2021 19:43:06 GMT + date: Sat, 07 Aug 2021 00:32:30 GMT expires: '-1' pragma: no-cache strict-transport-security: max-age=31536000;includeSubDomains + www-authenticate: Bearer authorization="https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47", + resource="https://vault.azure.net" x-content-type-options: nosniff x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; - x-ms-keyvault-service-version: 1.9.12.0 + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 401 + message: Unauthorized + url: https://mcpatinokv.vault.azure.net/keys/livekvtestcrud-ec-keybe9317b3/create?api-version=7.3-preview +- request: + body: '{"kty": "EC-HSM", "attributes": {"enabled": true}, "tags": {"purpose": + "unit test", "test name": "CreateECKeyTest"}}' + headers: + Accept: + - application/json + Content-Length: + - '116' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/keys/livekvtestcrud-ec-keybe9317b3/create?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-ec-keybe9317b3/1d162b9eb22f452583fe47d35e993402","kty":"EC-HSM","key_ops":["sign","verify"],"crv":"P-256","x":"-_ywb3xJ3f5J6zuF7k48LLE6DbEugVC3KfyKoyZb01M","y":"TR8wPFKil5wUW1Ko-xe3jdPVTXJp0bmXhZ48HEKgBzM"},"attributes":{"enabled":true,"created":1628296350,"updated":1628296350,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"purpose":"unit + test","test name":"CreateECKeyTest"}}' + headers: + cache-control: no-cache + content-length: '471' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:30 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/keys/livekvtestcrud-ec-keybe9317b3/create?api-version=7.3-preview +- request: + body: '{"kty": "EC", "crv": "P-256"}' + headers: + Accept: + - application/json + Content-Length: + - '29' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/keys/livekvtestcrud-P-256-ec-keybe9317b3/create?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-P-256-ec-keybe9317b3/a4ecca2cb2f04eb6824c2173de8709e9","kty":"EC","key_ops":["sign","verify"],"crv":"P-256","x":"lAfP8kZbXDzXngjA7EkovY4lIdqPK9HMFRxLuZKrSTo","y":"8GP2F8pp7CZfqyb66qt1AJl7S8pdOrbo_bkRA8soDkE"},"attributes":{"enabled":true,"created":1628296352,"updated":1628296352,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: no-cache + content-length: '412' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:32 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/keys/livekvtestcrud-P-256-ec-keybe9317b3/create?api-version=7.3-preview +- request: + body: '{"key": {"kty": "RSA", "key_ops": ["encrypt", "decrypt", "sign", "verify", + "wrapKey", "unwrapKey"], "n": "AKCRTQAjSsaDshtMFdW-2Ie9yVnC5Xr1Suc06PAHINd10nXkVSB-N4TO62ClCkZV3XKnqU0nHo7o95WaZpym53W_DiO62umRtFKdl4UotL2QUh0y3SZWeWuoK2u_x2aMj17rUFN0f9GZMZ0pqEQNCPRBLVJ_-TEe2nGCWSC0exxGsRqz6R1zFkB-icfzQPe4WjQELOUXQ7J9RxhAPTTHtDivYYG-BeTRHrmF04JT1_6b9T_C8bAC0i0teT-nmlBLarQtBJKATXBx1yegbPOoiTqlQrFQP4MrKWNxtnB9Tcbjcvj-Z9je0ckI_eRc4DvAhqcUh_p15Dqg4GeaoNIO_jU", + "e": "AQAB", "d": "Ynx9JGaBSP4iUsf6ZJ6opantRNdcdmzaQrKbZg6ZQE8Ohi1FYabJWvaoPSE-CiJEsDzShXZHMhUHN4X7Bn8BXaGQhK3p9HXgiwQKmix7oAJTu4ElUIyd8UC3UWHSZr40el4PaQD-HYu_eMzCXus34MnRiNbh_BUWm6T-Eidhk9d3kNIyaSi9YNDQHW6tjWrEhhq63O7JU1j9ZonFChZxpKk20jdkQKQURVAdpOdL-5j4I70ZxFuU6wHZj8DS8oRQfwGOvZKbgYDb5jgf3UNL_7eACqq92XPVX56vm7iKbqeyjCqAIx5y3hrSRIJtZlWCwjYnYQGd4unxDLi8wmJWSQ", + "dp": "AMmhWb5yZcu6vJr8xJZ-t0_likxJRUMZAtEULaWZt2DgODj4y9JrZDJP6mvckzhQP0WXk2NuWbU2HR5pUeCN2wieG1B76VKoH76vfnaJDqT1NuJVBcP2SLHog3ffwZtMME5zjfygchG3kihqOSpwTQ9ETAqAJTkRC38fEhwAz_Cp", + "dq": "AKC9TAo9n2RDaggjdLXK8kiLrBVoaWFTpqXkzYXRhtsx4vWPAkxhfSnze05rVMl6HiXv7FnE0f0wYawzUJzoyuXBH0zS6D9BqCZPeF543AmWB27iPf38Q9Z8Rjr6oBgMSnGDV_mm8nDVQkeaDyE4cOZh-5UKvKShTKKQVwunmDNH", + "qi": "AJ_nrkLpK8BPzVeARkvSHQyKwMWZ-a8CD95qsKfn0dOZAvXY-2xhQYTEwbED-0bpTNEKbIpA-ZkaHygmnzJkNbbFAnb9pkkzU8ZQqDP3JNgMfVIroWx58Oth9nJza2j7i-MkPRCUPEq3Ao0J52z7WJIiLji8TTVYW_NaiM1oxzsH", + "p": "ANHerI1o3dLB_VLVmZZVss8VZSYN5SaeQ_0qhfOSgOFwj__waCFmy2EG7l6l6f_Z-Y0L7Mn_LNov68lyWSFa2EuQUeVj4UoFHc5Di8ZUGiSsTwFM-XMtNuv8HmGgDYLL5BIJD3eTz71LdgW-Ez38OZH34b7VeG8zfeUDb8Hi30zz", + "q": "AMPcZrZBqbc82DO8Q5zTT8ZXRGWrW36KktMllaIk1W2RHnRiQiW0jBWmcCgqUcQNHa1LwumjyNqwx28QBS37BTvG7ULGUoio6LrOeoiBGEMj-U19sX6m37plEhj5Mak7j3OPPY_T9rohjTW5aGGg9YSwq4jdz0RrmBX00ofYOjI3"}}' + headers: + Accept: + - application/json + Content-Length: + - '1724' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: PUT + uri: https://vaultname.vault.azure.net/keys/livekvtestimport-test-keybe9317b3?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestimport-test-keybe9317b3/1341d845efc44ab2a6788e4db83c6611","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"oJFNACNKxoOyG0wV1b7Yh73JWcLlevVK5zTo8Acg13XSdeRVIH43hM7rYKUKRlXdcqepTScejuj3lZpmnKbndb8OI7ra6ZG0Up2XhSi0vZBSHTLdJlZ5a6gra7_HZoyPXutQU3R_0ZkxnSmoRA0I9EEtUn_5MR7acYJZILR7HEaxGrPpHXMWQH6Jx_NA97haNAQs5RdDsn1HGEA9NMe0OK9hgb4F5NEeuYXTglPX_pv1P8LxsALSLS15P6eaUEtqtC0EkoBNcHHXJ6Bs86iJOqVCsVA_gyspY3G2cH1NxuNy-P5n2N7RyQj95FzgO8CGpxSH-nXkOqDgZ5qg0g7-NQ","e":"AQAB"},"attributes":{"enabled":true,"created":1628296353,"updated":1628296353,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90}}' + headers: + cache-control: no-cache + content-length: '699' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:33 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/keys/livekvtestimport-test-keybe9317b3?api-version=7.3-preview +- request: + body: '{"kty": "RSA", "key_size": 2048, "key_ops": ["encrypt", "decrypt", "sign", + "verify", "wrapKey", "unwrapKey"], "tags": {"purpose": "unit test", "test name + ": "CreateRSAKeyTest"}}' + headers: + Accept: + - application/json + Content-Length: + - '177' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybe9317b3/create?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybe9317b3/d21434d83ccb4b48ae71e059839adf32","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"0tbQpJwpJe0SS6MvFeNbsLFVs1O_WqwwC7aytBwzhXkamat72-w3J0xQ35uR1dEH4ZqkCoDNycP99Z-lPPWyxtRJ1GCB-rU8aV0m6DSDGbIXXVwKgM_vaSJWxJn_jzR891YQzTa9SgkfY8urPtEDzFq0omkXK_cB7diZEJjsPGx8G5oPkFR7U4fHnNWMHgu-OlBDYKsAZZj1Gf_UUOyxQkp3lPI7Meh80K8FVLheeBPf88qIZCJwBtOFSoXqN4ntkKPjjQp42vrdZhDLw14vVLIRZbC4SQ_4vVvNv3MGI5u176JozSKyqcURvTaz-Yz5Sy1os_fLfoBaIPOy0YQkDQ","e":"AQAB"},"attributes":{"enabled":true,"created":1628296355,"updated":1628296355,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"purpose":"unit + test","test name ":"CreateRSAKeyTest"}}' + headers: + cache-control: no-cache + content-length: '759' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/keys/livekvtestcrud-rsa-keybe9317b3/create?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybe9317b3/d21434d83ccb4b48ae71e059839adf32?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybe9317b3/d21434d83ccb4b48ae71e059839adf32","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"0tbQpJwpJe0SS6MvFeNbsLFVs1O_WqwwC7aytBwzhXkamat72-w3J0xQ35uR1dEH4ZqkCoDNycP99Z-lPPWyxtRJ1GCB-rU8aV0m6DSDGbIXXVwKgM_vaSJWxJn_jzR891YQzTa9SgkfY8urPtEDzFq0omkXK_cB7diZEJjsPGx8G5oPkFR7U4fHnNWMHgu-OlBDYKsAZZj1Gf_UUOyxQkp3lPI7Meh80K8FVLheeBPf88qIZCJwBtOFSoXqN4ntkKPjjQp42vrdZhDLw14vVLIRZbC4SQ_4vVvNv3MGI5u176JozSKyqcURvTaz-Yz5Sy1os_fLfoBaIPOy0YQkDQ","e":"AQAB"},"attributes":{"enabled":true,"created":1628296355,"updated":1628296355,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"purpose":"unit + test","test name ":"CreateRSAKeyTest"}}' + headers: + cache-control: no-cache + content-length: '759' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/keys/livekvtestcrud-rsa-keybe9317b3/d21434d83ccb4b48ae71e059839adf32?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybe9317b3/?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybe9317b3/d21434d83ccb4b48ae71e059839adf32","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"0tbQpJwpJe0SS6MvFeNbsLFVs1O_WqwwC7aytBwzhXkamat72-w3J0xQ35uR1dEH4ZqkCoDNycP99Z-lPPWyxtRJ1GCB-rU8aV0m6DSDGbIXXVwKgM_vaSJWxJn_jzR891YQzTa9SgkfY8urPtEDzFq0omkXK_cB7diZEJjsPGx8G5oPkFR7U4fHnNWMHgu-OlBDYKsAZZj1Gf_UUOyxQkp3lPI7Meh80K8FVLheeBPf88qIZCJwBtOFSoXqN4ntkKPjjQp42vrdZhDLw14vVLIRZbC4SQ_4vVvNv3MGI5u176JozSKyqcURvTaz-Yz5Sy1os_fLfoBaIPOy0YQkDQ","e":"AQAB"},"attributes":{"enabled":true,"created":1628296355,"updated":1628296355,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"purpose":"unit + test","test name ":"CreateRSAKeyTest"}}' + headers: + cache-control: no-cache + content-length: '759' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:37 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/keys/livekvtestcrud-rsa-keybe9317b3/?api-version=7.3-preview +- request: + body: '{"attributes": {"exp": 2524723200}, "tags": {"foo": "updated tag"}}' + headers: + Accept: + - application/json + Content-Length: + - '67' + Content-Type: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: PATCH + uri: https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybe9317b3/?api-version=7.3-preview + response: + body: + string: '{"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybe9317b3/d21434d83ccb4b48ae71e059839adf32","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"0tbQpJwpJe0SS6MvFeNbsLFVs1O_WqwwC7aytBwzhXkamat72-w3J0xQ35uR1dEH4ZqkCoDNycP99Z-lPPWyxtRJ1GCB-rU8aV0m6DSDGbIXXVwKgM_vaSJWxJn_jzR891YQzTa9SgkfY8urPtEDzFq0omkXK_cB7diZEJjsPGx8G5oPkFR7U4fHnNWMHgu-OlBDYKsAZZj1Gf_UUOyxQkp3lPI7Meh80K8FVLheeBPf88qIZCJwBtOFSoXqN4ntkKPjjQp42vrdZhDLw14vVLIRZbC4SQ_4vVvNv3MGI5u176JozSKyqcURvTaz-Yz5Sy1os_fLfoBaIPOy0YQkDQ","e":"AQAB"},"attributes":{"enabled":true,"exp":2524723200,"created":1628296355,"updated":1628296359,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"foo":"updated + tag"}}' + headers: + cache-control: no-cache + content-length: '742' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:39 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/keys/livekvtestcrud-rsa-keybe9317b3/?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3","deletedDate":1628296359,"scheduledPurgeDate":1636072359,"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybe9317b3/d21434d83ccb4b48ae71e059839adf32","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"0tbQpJwpJe0SS6MvFeNbsLFVs1O_WqwwC7aytBwzhXkamat72-w3J0xQ35uR1dEH4ZqkCoDNycP99Z-lPPWyxtRJ1GCB-rU8aV0m6DSDGbIXXVwKgM_vaSJWxJn_jzR891YQzTa9SgkfY8urPtEDzFq0omkXK_cB7diZEJjsPGx8G5oPkFR7U4fHnNWMHgu-OlBDYKsAZZj1Gf_UUOyxQkp3lPI7Meh80K8FVLheeBPf88qIZCJwBtOFSoXqN4ntkKPjjQp42vrdZhDLw14vVLIRZbC4SQ_4vVvNv3MGI5u176JozSKyqcURvTaz-Yz5Sy1os_fLfoBaIPOy0YQkDQ","e":"AQAB"},"attributes":{"enabled":true,"exp":2524723200,"created":1628296355,"updated":1628296359,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"foo":"updated + tag"}}' + headers: + cache-control: no-cache + content-length: '892' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:39 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/keys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybe9317b3"}}' + headers: + cache-control: no-cache + content-length: '98' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:39 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybe9317b3"}}' + headers: + cache-control: no-cache + content-length: '98' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:41 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybe9317b3"}}' + headers: + cache-control: no-cache + content-length: '98' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:43 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybe9317b3"}}' + headers: + cache-control: no-cache + content-length: '98' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:45 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybe9317b3"}}' + headers: + cache-control: no-cache + content-length: '98' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:47 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybe9317b3"}}' + headers: + cache-control: no-cache + content-length: '98' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:49 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybe9317b3"}}' + headers: + cache-control: no-cache + content-length: '98' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:51 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybe9317b3"}}' + headers: + cache-control: no-cache + content-length: '98' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:53 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybe9317b3"}}' + headers: + cache-control: no-cache + content-length: '98' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:55 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybe9317b3"}}' + headers: + cache-control: no-cache + content-length: '98' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:57 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybe9317b3"}}' + headers: + cache-control: no-cache + content-length: '98' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:32:59 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybe9317b3"}}' + headers: + cache-control: no-cache + content-length: '98' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:33:01 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 x-powered-by: ASP.NET status: code: 404 message: Not Found - url: https://vaultname.vault.azure.net/keys/livekvtestcrud-ec-keybe9317b3/create?api-version=7.3-preview + url: https://mcpatinokv.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"KeyNotFound","message":"Deleted Key not found: livekvtestcrud-rsa-keybe9317b3"}}' + headers: + cache-control: no-cache + content-length: '98' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:33:03 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 404 + message: Not Found + url: https://mcpatinokv.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3","deletedDate":1628296359,"scheduledPurgeDate":1636072359,"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybe9317b3/d21434d83ccb4b48ae71e059839adf32","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"0tbQpJwpJe0SS6MvFeNbsLFVs1O_WqwwC7aytBwzhXkamat72-w3J0xQ35uR1dEH4ZqkCoDNycP99Z-lPPWyxtRJ1GCB-rU8aV0m6DSDGbIXXVwKgM_vaSJWxJn_jzR891YQzTa9SgkfY8urPtEDzFq0omkXK_cB7diZEJjsPGx8G5oPkFR7U4fHnNWMHgu-OlBDYKsAZZj1Gf_UUOyxQkp3lPI7Meh80K8FVLheeBPf88qIZCJwBtOFSoXqN4ntkKPjjQp42vrdZhDLw14vVLIRZbC4SQ_4vVvNv3MGI5u176JozSKyqcURvTaz-Yz5Sy1os_fLfoBaIPOy0YQkDQ","e":"AQAB"},"attributes":{"enabled":true,"exp":2524723200,"created":1628296355,"updated":1628296359,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"foo":"updated + tag"}}' + headers: + cache-control: no-cache + content-length: '892' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:33:06 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b2 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview + response: + body: + string: '{"recoveryId":"https://vaultname.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3","deletedDate":1628296359,"scheduledPurgeDate":1636072359,"key":{"kid":"https://vaultname.vault.azure.net/keys/livekvtestcrud-rsa-keybe9317b3/d21434d83ccb4b48ae71e059839adf32","kty":"RSA","key_ops":["encrypt","decrypt","sign","verify","wrapKey","unwrapKey"],"n":"0tbQpJwpJe0SS6MvFeNbsLFVs1O_WqwwC7aytBwzhXkamat72-w3J0xQ35uR1dEH4ZqkCoDNycP99Z-lPPWyxtRJ1GCB-rU8aV0m6DSDGbIXXVwKgM_vaSJWxJn_jzR891YQzTa9SgkfY8urPtEDzFq0omkXK_cB7diZEJjsPGx8G5oPkFR7U4fHnNWMHgu-OlBDYKsAZZj1Gf_UUOyxQkp3lPI7Meh80K8FVLheeBPf88qIZCJwBtOFSoXqN4ntkKPjjQp42vrdZhDLw14vVLIRZbC4SQ_4vVvNv3MGI5u176JozSKyqcURvTaz-Yz5Sy1os_fLfoBaIPOy0YQkDQ","e":"AQAB"},"attributes":{"enabled":true,"exp":2524723200,"created":1628296355,"updated":1628296359,"recoveryLevel":"Recoverable+Purgeable","recoverableDays":90},"tags":{"foo":"updated + tag"}}' + headers: + cache-control: no-cache + content-length: '892' + content-type: application/json; charset=utf-8 + date: Sat, 07 Aug 2021 00:33:06 GMT + expires: '-1' + pragma: no-cache + strict-transport-security: max-age=31536000;includeSubDomains + x-content-type-options: nosniff + x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=InterNetwork; + x-ms-keyvault-region: westus2 + x-ms-keyvault-service-version: 1.9.48.0 + x-powered-by: ASP.NET + status: + code: 200 + message: OK + url: https://mcpatinokv.vault.azure.net/deletedkeys/livekvtestcrud-rsa-keybe9317b3?api-version=7.3-preview version: 1 diff --git a/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client.py b/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client.py index d2d1704f36e6..c99f28fac923 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client.py @@ -33,9 +33,6 @@ all_api_versions = get_decorator() only_hsm = get_decorator(only_hsm=True) no_get = get_decorator(permissions=NO_GET) -no_get_exclude_7_3_preview = get_decorator( - api_versions=[v for v in ApiVersion if v != ApiVersion.V7_3_PREVIEW], permissions=NO_GET -) class CryptoClientTests(KeysTestCase, KeyVaultTestCase): @@ -177,7 +174,7 @@ def test_rsa_key_id(self, key_client, is_hsm, **kwargs): crypto_client.verify(SignatureAlgorithm.rs256, hashlib.sha256(self.plaintext).digest(), self.plaintext) crypto_client.wrap_key(KeyWrapAlgorithm.rsa_oaep, self.plaintext) - @no_get_exclude_7_3_preview() + @no_get() @client_setup def test_encrypt_and_decrypt(self, key_client, is_hsm, **kwargs): key_name = self.get_resource_name("keycrypt") @@ -193,7 +190,7 @@ def test_encrypt_and_decrypt(self, key_client, is_hsm, **kwargs): self.assertEqual(EncryptionAlgorithm.rsa_oaep, result.algorithm) self.assertEqual(self.plaintext, result.plaintext) - @no_get_exclude_7_3_preview() + @no_get() @client_setup def test_sign_and_verify(self, key_client, is_hsm, **kwargs): key_name = self.get_resource_name("keysign") diff --git a/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client_async.py b/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client_async.py index 345347e5dae5..0b6a417777da 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client_async.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_crypto_client_async.py @@ -30,9 +30,6 @@ all_api_versions = get_decorator(is_async=True) only_hsm = get_decorator(only_hsm=True, is_async=True) no_get = get_decorator(is_async=True, permissions=NO_GET) -no_get_exclude_7_3_preview = get_decorator( - api_versions=[v for v in ApiVersion if v != ApiVersion.V7_3_PREVIEW], is_async=True, permissions=NO_GET -) class CryptoClientTests(KeysTestCase, KeyVaultTestCase): @@ -172,7 +169,7 @@ async def test_rsa_key_id(self, key_client, is_hsm, **kwargs): await crypto_client.verify(SignatureAlgorithm.rs256, hashlib.sha256(self.plaintext).digest(), self.plaintext) await crypto_client.wrap_key(KeyWrapAlgorithm.rsa_oaep, self.plaintext) - @no_get_exclude_7_3_preview() + @no_get() @client_setup async def test_encrypt_and_decrypt(self, key_client, is_hsm, **kwargs): key_name = self.get_resource_name("keycrypt") @@ -188,7 +185,7 @@ async def test_encrypt_and_decrypt(self, key_client, is_hsm, **kwargs): self.assertEqual(EncryptionAlgorithm.rsa_oaep, result.algorithm) self.assertEqual(self.plaintext, result.plaintext) - @no_get_exclude_7_3_preview() + @no_get() @client_setup async def test_sign_and_verify(self, key_client, is_hsm, **kwargs): key_name = self.get_resource_name("keysign") diff --git a/sdk/keyvault/azure-keyvault-keys/tests/test_key_client.py b/sdk/keyvault/azure-keyvault-keys/tests/test_key_client.py index 32bdac2d91bc..384f3e23db77 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_key_client.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_key_client.py @@ -20,7 +20,6 @@ all_api_versions = get_decorator() -exclude_7_3_preview = get_decorator(api_versions=[v for v in ApiVersion if v != ApiVersion.V7_3_PREVIEW]) only_hsm = get_decorator(only_hsm=True) only_hsm_7_3_preview = get_decorator(only_hsm=True, api_versions=[ApiVersion.V7_3_PREVIEW]) logging_enabled = get_decorator(logging_enable=True) @@ -150,7 +149,7 @@ def _to_bytes(hex): self._validate_rsa_key_bundle(imported_key, client.vault_url, name, key.kty, key.key_ops) return imported_key - @exclude_7_3_preview() + @all_api_versions() @client_setup def test_key_crud_operations(self, client, is_hsm, **kwargs): self.assertIsNotNone(client) diff --git a/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py b/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py index 2b881c6f11c7..cecba8d3cf97 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py @@ -21,7 +21,6 @@ all_api_versions = get_decorator(is_async=True) -exclude_7_3_preview = get_decorator(api_versions=[v for v in ApiVersion if v != ApiVersion.V7_3_PREVIEW], is_async=True) only_hsm = get_decorator(only_hsm=True, is_async=True) only_hsm_7_3_preview = get_decorator(only_hsm=True, is_async=True, api_versions=[ApiVersion.V7_3_PREVIEW]) logging_enabled = get_decorator(is_async=True, logging_enable=True) @@ -173,7 +172,7 @@ def _to_bytes(hex): self._validate_rsa_key_bundle(imported_key, client.vault_url, name, key.kty, key.key_ops) return imported_key - @exclude_7_3_preview() + @all_api_versions() @client_setup async def test_key_crud_operations(self, client, is_hsm, **kwargs): self.assertIsNotNone(client) From c94979d9210344297325b799621a8ff8f2b45c21 Mon Sep 17 00:00:00 2001 From: Krista Pratico Date: Mon, 9 Aug 2021 10:52:27 -0700 Subject: [PATCH 013/104] [textanalytics] release prep (#20152) * update changelog * docs fixes * run black formatting --- .../azure-ai-textanalytics/CHANGELOG.md | 5 +- .../azure/ai/textanalytics/__init__.py | 4 +- .../azure/ai/textanalytics/_models.py | 101 +++++++++--------- .../ai/textanalytics/_response_handlers.py | 36 +++++-- .../textanalytics/_text_analytics_client.py | 43 +++++--- .../azure/ai/textanalytics/aio/_lro_async.py | 4 +- .../aio/_text_analytics_client_async.py | 47 +++++--- 7 files changed, 145 insertions(+), 95 deletions(-) diff --git a/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md b/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md index c845a3c4a3b3..c4edcbc79782 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md +++ b/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md @@ -1,19 +1,16 @@ # Release History -## 5.2.0b1 (Unreleased) +## 5.2.0b1 (2021-08-10) This version of the SDK defaults to the latest supported API version, which currently is `v3.2-preview.1`. ### Features Added - Added support for Extractive Summarization actions through the `ExtractSummaryAction` type. -### Breaking Changes - ### Bugs Fixed - `RecognizePiiEntitiesAction` option `disable_service_logs` now correctly defaults to `True`. ### Other Changes - - Python 3.5 is no longer supported. ## 5.1.0 (2021-07-07) diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/__init__.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/__init__.py index c55d2759f463..d78a7244020b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/__init__.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/__init__.py @@ -52,7 +52,7 @@ HealthcareEntityCategory, ExtractSummaryAction, ExtractSummaryResult, - SummarySentence + SummarySentence, ) from ._lro import AnalyzeHealthcareEntitiesLROPoller, AnalyzeActionsLROPoller @@ -106,7 +106,7 @@ "HealthcareEntityCategory", "ExtractSummaryAction", "ExtractSummaryResult", - "SummarySentence" + "SummarySentence", ] __version__ = VERSION diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_models.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_models.py index 3e8baf3caa47..8a43a22eaf52 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_models.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_models.py @@ -123,8 +123,7 @@ class HealthcareEntityRelation(str, Enum): class PiiEntityCategory(str, Enum): - """Categories of Personally Identifiable Information (PII). - """ + """Categories of Personally Identifiable Information (PII).""" ABA_ROUTING_NUMBER = "ABARoutingNumber" AR_NATIONAL_IDENTITY_NUMBER = "ARNationalIdentityNumber" @@ -506,10 +505,13 @@ def __init__(self, **kwargs): @classmethod def _from_generated(cls, healthcare_result): entities = [ - HealthcareEntity._from_generated(e) for e in healthcare_result.entities # pylint: disable=protected-access + HealthcareEntity._from_generated(e) # pylint: disable=protected-access + for e in healthcare_result.entities ] relations = [ - HealthcareRelation._from_generated(r, entities) # pylint: disable=protected-access + HealthcareRelation._from_generated( # pylint: disable=protected-access + r, entities + ) for r in healthcare_result.relations ] @@ -518,7 +520,9 @@ def _from_generated(cls, healthcare_result): entities=entities, entity_relations=relations, warnings=[ - TextAnalyticsWarning._from_generated(w) # pylint: disable=protected-access + TextAnalyticsWarning._from_generated( # pylint: disable=protected-access + w + ) for w in healthcare_result.warnings ], statistics=TextDocumentStatistics._from_generated( # pylint: disable=protected-access @@ -1291,7 +1295,8 @@ def _from_generated(cls, entity): return cls( name=entity.name, matches=[ - LinkedEntityMatch._from_generated(e) for e in entity.matches # pylint: disable=protected-access + LinkedEntityMatch._from_generated(e) # pylint: disable=protected-access + for e in entity.matches ], language=entity.language, data_source_entity_id=entity.id, @@ -1493,7 +1498,9 @@ def _from_generated(cls, sentence, results, sentiment): if hasattr(sentence, "targets"): mined_opinions = ( [ - MinedOpinion._from_generated(target, results, sentiment) # pylint: disable=protected-access + MinedOpinion._from_generated( # pylint: disable=protected-access + target, results, sentiment + ) for target in sentence.targets ] if sentence.targets @@ -2080,7 +2087,7 @@ def _to_generated(self, api_version): class ExtractSummaryAction(DictMixin): """ExtractSummaryAction encapsulates the parameters for starting a long-running Extractive - Text Summarization operation. + Text Summarization operation. :keyword str model_version: The model version to use for the analysis. :keyword str string_index_type: Specifies the method used to interpret string offsets. @@ -2115,11 +2122,11 @@ class ExtractSummaryAction(DictMixin): """ def __init__(self, **kwargs): - self.model_version = kwargs.get('model_version', "latest") + self.model_version = kwargs.get("model_version", "latest") self.string_index_type = kwargs.get("string_index_type", "UnicodeCodePoint") self.disable_service_logs = kwargs.get("disable_service_logs", False) - self.max_sentence_count = kwargs.get('max_sentence_count', 3) - self.order_by = kwargs.get('order_by', "Offset") + self.max_sentence_count = kwargs.get("max_sentence_count", 3) + self.order_by = kwargs.get("order_by", "Offset") def __repr__(self): return ( @@ -2129,7 +2136,7 @@ def __repr__(self): self.string_index_type, self.disable_service_logs, self.max_sentence_count, - self.order_by + self.order_by, )[:1024] ) @@ -2140,7 +2147,7 @@ def _to_generated(self, api_version): # pylint: disable=unused-argument string_index_type=self.string_index_type, logging_opt_out=self.disable_service_logs, sentence_count=self.max_sentence_count, - sort_by=self.order_by + sort_by=self.order_by, ) ) @@ -2161,37 +2168,38 @@ class ExtractSummaryResult(DictMixin): results. Always False for an instance of an ExtractSummaryResult. """ - def __init__( - self, - **kwargs - ): - self.id = kwargs.get('id', None) - self.sentences = kwargs.get('sentences', None) - self.warnings = kwargs.get('warnings', None) - self.statistics = kwargs.get('statistics', None) + def __init__(self, **kwargs): + self.id = kwargs.get("id", None) + self.sentences = kwargs.get("sentences", None) + self.warnings = kwargs.get("warnings", None) + self.statistics = kwargs.get("statistics", None) self.is_error = False def __repr__(self): - return ( - "ExtractSummaryResult(id={}, sentences={}, warnings={}, statistics={}, is_error={})".format( - self.id, - repr(self.sentences), - repr(self.warnings), - repr(self.statistics), - self.is_error - )[:1024] - ) + return "ExtractSummaryResult(id={}, sentences={}, warnings={}, statistics={}, is_error={})".format( + self.id, + repr(self.sentences), + repr(self.warnings), + repr(self.statistics), + self.is_error, + )[ + :1024 + ] @classmethod def _from_generated(cls, summary): return cls( id=summary.id, sentences=[ - SummarySentence._from_generated(sentence) # pylint: disable=protected-access + SummarySentence._from_generated( # pylint: disable=protected-access + sentence + ) for sentence in summary.sentences ], warnings=[ - TextAnalyticsWarning._from_generated(w) # pylint: disable=protected-access + TextAnalyticsWarning._from_generated( # pylint: disable=protected-access + w + ) for w in summary.warnings ], statistics=TextDocumentStatistics._from_generated( # pylint: disable=protected-access @@ -2214,24 +2222,19 @@ class SummarySentence(DictMixin): by default. """ - def __init__( - self, - **kwargs - ): - self.text = kwargs.get('text', None) - self.rank_score = kwargs.get('rank_score', None) - self.offset = kwargs.get('offset', None) - self.length = kwargs.get('length', None) + def __init__(self, **kwargs): + self.text = kwargs.get("text", None) + self.rank_score = kwargs.get("rank_score", None) + self.offset = kwargs.get("offset", None) + self.length = kwargs.get("length", None) def __repr__(self): - return ( - "SummarySentence(text={}, rank_score={}, offset={}, length={})".format( - self.text, - self.rank_score, - self.offset, - self.length, - )[:1024] - ) + return "SummarySentence(text={}, rank_score={}, offset={}, length={})".format( + self.text, + self.rank_score, + self.offset, + self.length, + )[:1024] @classmethod def _from_generated(cls, sentence): @@ -2239,5 +2242,5 @@ def _from_generated(cls, sentence): text=sentence.text, rank_score=sentence.rank_score, offset=sentence.offset, - length=sentence.length + length=sentence.length, ) diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_response_handlers.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_response_handlers.py index 58fe761cb3e2..d412ddf32643 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_response_handlers.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_response_handlers.py @@ -101,7 +101,10 @@ def wrapper( for idx, item in enumerate(results): if hasattr(item, "error"): results[idx] = DocumentError( - id=item.id, error=TextAnalyticsError._from_generated(item.error) # pylint: disable=protected-access + id=item.id, + error=TextAnalyticsError._from_generated( # pylint: disable=protected-access + item.error + ), ) else: results[idx] = func(item, results) @@ -124,7 +127,8 @@ def language_result(language, results): # pylint: disable=unused-argument language.detected_language ), warnings=[ - TextAnalyticsWarning._from_generated(w) for w in language.warnings # pylint: disable=protected-access + TextAnalyticsWarning._from_generated(w) # pylint: disable=protected-access + for w in language.warnings ], statistics=TextDocumentStatistics._from_generated( # pylint: disable=protected-access language.statistics @@ -139,10 +143,12 @@ def entities_result( return RecognizeEntitiesResult( id=entity.id, entities=[ - CategorizedEntity._from_generated(e) for e in entity.entities # pylint: disable=protected-access + CategorizedEntity._from_generated(e) # pylint: disable=protected-access + for e in entity.entities ], warnings=[ - TextAnalyticsWarning._from_generated(w) for w in entity.warnings # pylint: disable=protected-access + TextAnalyticsWarning._from_generated(w) # pylint: disable=protected-access + for w in entity.warnings ], statistics=TextDocumentStatistics._from_generated( # pylint: disable=protected-access entity.statistics @@ -157,10 +163,12 @@ def linked_entities_result( return RecognizeLinkedEntitiesResult( id=entity.id, entities=[ - LinkedEntity._from_generated(e) for e in entity.entities # pylint: disable=protected-access + LinkedEntity._from_generated(e) # pylint: disable=protected-access + for e in entity.entities ], warnings=[ - TextAnalyticsWarning._from_generated(w) for w in entity.warnings # pylint: disable=protected-access + TextAnalyticsWarning._from_generated(w) # pylint: disable=protected-access + for w in entity.warnings ], statistics=TextDocumentStatistics._from_generated( # pylint: disable=protected-access entity.statistics @@ -176,7 +184,8 @@ def key_phrases_result( id=phrases.id, key_phrases=phrases.key_phrases, warnings=[ - TextAnalyticsWarning._from_generated(w) for w in phrases.warnings # pylint: disable=protected-access + TextAnalyticsWarning._from_generated(w) # pylint: disable=protected-access + for w in phrases.warnings ], statistics=TextDocumentStatistics._from_generated( # pylint: disable=protected-access phrases.statistics @@ -192,7 +201,8 @@ def sentiment_result( id=sentiment.id, sentiment=sentiment.sentiment, warnings=[ - TextAnalyticsWarning._from_generated(w) for w in sentiment.warnings # pylint: disable=protected-access + TextAnalyticsWarning._from_generated(w) # pylint: disable=protected-access + for w in sentiment.warnings ], statistics=TextDocumentStatistics._from_generated( # pylint: disable=protected-access sentiment.statistics @@ -201,7 +211,9 @@ def sentiment_result( sentiment.confidence_scores ), sentences=[ - SentenceSentiment._from_generated(s, results, sentiment) # pylint: disable=protected-access + SentenceSentiment._from_generated( # pylint: disable=protected-access + s, results, sentiment + ) for s in sentiment.sentences ], ) @@ -214,13 +226,15 @@ def pii_entities_result( return RecognizePiiEntitiesResult( id=entity.id, entities=[ - PiiEntity._from_generated(e) for e in entity.entities # pylint: disable=protected-access + PiiEntity._from_generated(e) # pylint: disable=protected-access + for e in entity.entities ], redacted_text=entity.redacted_text if hasattr(entity, "redacted_text") else None, warnings=[ - TextAnalyticsWarning._from_generated(w) for w in entity.warnings # pylint: disable=protected-access + TextAnalyticsWarning._from_generated(w) # pylint: disable=protected-access + for w in entity.warnings ], statistics=TextDocumentStatistics._from_generated( # pylint: disable=protected-access entity.statistics diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_text_analytics_client.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_text_analytics_client.py index 94a4223a62de..bc93cc5d6ae7 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_text_analytics_client.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_text_analytics_client.py @@ -63,7 +63,7 @@ AnalyzeSentimentAction, AnalyzeHealthcareEntitiesResult, ExtractSummaryAction, - ExtractSummaryResult + ExtractSummaryResult, ) from ._lro import AnalyzeHealthcareEntitiesLROPoller, AnalyzeActionsLROPoller @@ -923,7 +923,9 @@ def begin_analyze_actions( # type: ignore display_name = kwargs.pop("display_name", None) language_arg = kwargs.pop("language", None) language = language_arg if language_arg is not None else self._default_language - docs = self._client.models(api_version=self._api_version).MultiLanguageBatchInput( + docs = self._client.models( + api_version=self._api_version + ).MultiLanguageBatchInput( documents=_validate_input(documents, "language", language) ) show_stats = kwargs.pop("show_stats", False) @@ -936,9 +938,13 @@ def begin_analyze_actions( # type: ignore raise ValueError("Multiple of the same action is not currently supported.") try: - analyze_tasks = self._client.models(api_version=self._api_version).JobManifestTasks( + analyze_tasks = self._client.models( + api_version=self._api_version + ).JobManifestTasks( entity_recognition_tasks=[ - t._to_generated(self._api_version) # pylint: disable=protected-access + t._to_generated( # pylint: disable=protected-access + self._api_version + ) for t in [ a for a in actions @@ -947,7 +953,9 @@ def begin_analyze_actions( # type: ignore ] ], entity_recognition_pii_tasks=[ - t._to_generated(self._api_version) # pylint: disable=protected-access + t._to_generated( # pylint: disable=protected-access + self._api_version + ) for t in [ a for a in actions @@ -956,7 +964,9 @@ def begin_analyze_actions( # type: ignore ] ], key_phrase_extraction_tasks=[ - t._to_generated(self._api_version) # pylint: disable=protected-access + t._to_generated( # pylint: disable=protected-access + self._api_version + ) for t in [ a for a in actions @@ -965,7 +975,9 @@ def begin_analyze_actions( # type: ignore ] ], entity_linking_tasks=[ - t._to_generated(self._api_version) # pylint: disable=protected-access + t._to_generated( # pylint: disable=protected-access + self._api_version + ) for t in [ a for a in actions @@ -974,7 +986,9 @@ def begin_analyze_actions( # type: ignore ] ], sentiment_analysis_tasks=[ - t._to_generated(self._api_version) # pylint: disable=protected-access + t._to_generated( # pylint: disable=protected-access + self._api_version + ) for t in [ a for a in actions @@ -983,15 +997,20 @@ def begin_analyze_actions( # type: ignore ] ], extractive_summarization_tasks=[ - t._to_generated(self._api_version) # pylint: disable=protected-access + t._to_generated( # pylint: disable=protected-access + self._api_version + ) for t in [ a for a in actions - if _determine_action_type(a) == _AnalyzeActionsType.EXTRACT_SUMMARY + if _determine_action_type(a) + == _AnalyzeActionsType.EXTRACT_SUMMARY ] - ] + ], ) - analyze_body = self._client.models(api_version=self._api_version).AnalyzeBatchInput( + analyze_body = self._client.models( + api_version=self._api_version + ).AnalyzeBatchInput( display_name=display_name, tasks=analyze_tasks, analysis_input=docs ) return self._client.begin_analyze( diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_lro_async.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_lro_async.py index 3e2c9e503e53..de578bb7e70b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_lro_async.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_lro_async.py @@ -159,9 +159,7 @@ def id(self) -> str: """ return self.polling_method().id - async def cancel( # type: ignore - self, **kwargs - ) -> "AsyncLROPoller[None]": + async def cancel(self, **kwargs) -> "AsyncLROPoller[None]": # type: ignore """Cancel the operation currently being polled. :keyword int polling_interval: The polling interval to use to poll the cancellation status. diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_text_analytics_client_async.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_text_analytics_client_async.py index 717443efcb91..f85d08348cc4 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_text_analytics_client_async.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_text_analytics_client_async.py @@ -48,7 +48,7 @@ AnalyzeSentimentAction, AnalyzeHealthcareEntitiesResult, ExtractSummaryAction, - ExtractSummaryResult + ExtractSummaryResult, ) from .._lro import TextAnalyticsOperationResourcePolling from ._lro_async import ( @@ -850,7 +850,7 @@ async def begin_analyze_actions( # type: ignore RecognizePiiEntitiesAction, ExtractKeyPhrasesAction, AnalyzeSentimentAction, - ExtractSummaryAction + ExtractSummaryAction, ] ], # pylint: disable=line-too-long **kwargs: Any, @@ -913,7 +913,7 @@ async def begin_analyze_actions( # type: ignore :rtype: ~azure.ai.textanalytics.aio.AsyncAnalyzeActionsLROPoller[~azure.core.async_paging.AsyncItemPaged[ list[Union[RecognizeEntitiesResult, RecognizeLinkedEntitiesResult, RecognizePiiEntitiesResult, - ExtractKeyPhrasesResult, AnalyzeSentimentResult, ExtractSummaryAction, DocumentError]]]] + ExtractKeyPhrasesResult, AnalyzeSentimentResult, ExtractSummaryResult, DocumentError]]]] :raises ~azure.core.exceptions.HttpResponseError or TypeError or ValueError or NotImplementedError: .. versionadded:: v3.1 @@ -935,7 +935,9 @@ async def begin_analyze_actions( # type: ignore display_name = kwargs.pop("display_name", None) language_arg = kwargs.pop("language", None) language = language_arg if language_arg is not None else self._default_language - docs = self._client.models(api_version=self._api_version).MultiLanguageBatchInput( + docs = self._client.models( + api_version=self._api_version + ).MultiLanguageBatchInput( documents=_validate_input(documents, "language", language) ) show_stats = kwargs.pop("show_stats", False) @@ -948,9 +950,13 @@ async def begin_analyze_actions( # type: ignore raise ValueError("Multiple of the same action is not currently supported.") try: - analyze_tasks = self._client.models(api_version=self._api_version).JobManifestTasks( + analyze_tasks = self._client.models( + api_version=self._api_version + ).JobManifestTasks( entity_recognition_tasks=[ - t._to_generated(self._api_version) # pylint: disable=protected-access + t._to_generated( # pylint: disable=protected-access + self._api_version + ) for t in [ a for a in actions @@ -959,7 +965,9 @@ async def begin_analyze_actions( # type: ignore ] ], entity_recognition_pii_tasks=[ - t._to_generated(self._api_version) # pylint: disable=protected-access + t._to_generated( # pylint: disable=protected-access + self._api_version + ) for t in [ a for a in actions @@ -968,7 +976,9 @@ async def begin_analyze_actions( # type: ignore ] ], key_phrase_extraction_tasks=[ - t._to_generated(self._api_version) # pylint: disable=protected-access + t._to_generated( # pylint: disable=protected-access + self._api_version + ) for t in [ a for a in actions @@ -977,7 +987,9 @@ async def begin_analyze_actions( # type: ignore ] ], entity_linking_tasks=[ - t._to_generated(self._api_version) # pylint: disable=protected-access + t._to_generated( # pylint: disable=protected-access + self._api_version + ) for t in [ a for a in actions @@ -986,7 +998,9 @@ async def begin_analyze_actions( # type: ignore ] ], sentiment_analysis_tasks=[ - t._to_generated(self._api_version) # pylint: disable=protected-access + t._to_generated( # pylint: disable=protected-access + self._api_version + ) for t in [ a for a in actions @@ -995,15 +1009,20 @@ async def begin_analyze_actions( # type: ignore ] ], extractive_summarization_tasks=[ - t._to_generated(self._api_version) # pylint: disable=protected-access + t._to_generated( # pylint: disable=protected-access + self._api_version + ) for t in [ a for a in actions - if _determine_action_type(a) == _AnalyzeActionsType.EXTRACT_SUMMARY + if _determine_action_type(a) + == _AnalyzeActionsType.EXTRACT_SUMMARY ] - ] + ], ) - analyze_body = self._client.models(api_version=self._api_version).AnalyzeBatchInput( + analyze_body = self._client.models( + api_version=self._api_version + ).AnalyzeBatchInput( display_name=display_name, tasks=analyze_tasks, analysis_input=docs ) return await self._client.begin_analyze( From bbbd3d062eb4c1817ba50a4a6774b6786731bdc7 Mon Sep 17 00:00:00 2001 From: Krista Pratico Date: Mon, 9 Aug 2021 11:34:31 -0700 Subject: [PATCH 014/104] [translation] release prep (#20154) * update changelog * update glossary samples to use single overload --- .../CHANGELOG.md | 7 ++----- ...ample_translation_with_glossaries_async.py | 20 ++++++------------ .../sample_translation_with_glossaries.py | 21 ++++++------------- 3 files changed, 14 insertions(+), 34 deletions(-) diff --git a/sdk/translation/azure-ai-translation-document/CHANGELOG.md b/sdk/translation/azure-ai-translation-document/CHANGELOG.md index 82a2b72288ef..0cd57f540f68 100644 --- a/sdk/translation/azure-ai-translation-document/CHANGELOG.md +++ b/sdk/translation/azure-ai-translation-document/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 1.0.0b4 (Unreleased) +## 1.0.0b4 (2021-08-10) ### Features Added @@ -13,10 +13,7 @@ for `list_all_document_statuses`. - Changed: renamed `order_by` sorting query option `createdDateTimeUtc` to `created_on` for `list_all_translation_statuses` and `list_all_document_statuses`. - -### Bugs Fixed - -### Other Changes + ## 1.0.0b3 (2021-07-07) diff --git a/sdk/translation/azure-ai-translation-document/samples/async_samples/sample_translation_with_glossaries_async.py b/sdk/translation/azure-ai-translation-document/samples/async_samples/sample_translation_with_glossaries_async.py index 557984c8d1c3..9185699ce53e 100644 --- a/sdk/translation/azure-ai-translation-document/samples/async_samples/sample_translation_with_glossaries_async.py +++ b/sdk/translation/azure-ai-translation-document/samples/async_samples/sample_translation_with_glossaries_async.py @@ -34,8 +34,6 @@ async def sample_translation_with_glossaries_async(): from azure.core.credentials import AzureKeyCredential from azure.ai.translation.document.aio import DocumentTranslationClient from azure.ai.translation.document import ( - DocumentTranslationInput, - TranslationTarget, TranslationGlossary ) @@ -47,19 +45,13 @@ async def sample_translation_with_glossaries_async(): client = DocumentTranslationClient(endpoint, AzureKeyCredential(key)) - inputs = DocumentTranslationInput( - source_url=source_container_url, - targets=[ - TranslationTarget( - target_url=target_container_url, - language_code="es", - glossaries=[TranslationGlossary(glossary_url=glossary_url, file_format="TSV")] - ) - ] - ) - async with client: - poller = await client.begin_translation(inputs=[inputs]) + poller = await client.begin_translation( + source_container_url, + target_container_url, + "es", + glossaries=[TranslationGlossary(glossary_url=glossary_url, file_format="TSV")] + ) result = await poller.result() diff --git a/sdk/translation/azure-ai-translation-document/samples/sample_translation_with_glossaries.py b/sdk/translation/azure-ai-translation-document/samples/sample_translation_with_glossaries.py index f09750e17ac9..bfcdf3eb2ff1 100644 --- a/sdk/translation/azure-ai-translation-document/samples/sample_translation_with_glossaries.py +++ b/sdk/translation/azure-ai-translation-document/samples/sample_translation_with_glossaries.py @@ -32,8 +32,6 @@ def sample_translation_with_glossaries(): from azure.core.credentials import AzureKeyCredential from azure.ai.translation.document import ( DocumentTranslationClient, - DocumentTranslationInput, - TranslationTarget, TranslationGlossary ) @@ -45,19 +43,12 @@ def sample_translation_with_glossaries(): client = DocumentTranslationClient(endpoint, AzureKeyCredential(key)) - inputs = DocumentTranslationInput( - source_url=source_container_url, - targets=[ - TranslationTarget( - target_url=target_container_url, - language_code="es", - glossaries=[TranslationGlossary(glossary_url=glossary_url, file_format="TSV")] - ) - ] - ) - - - poller = client.begin_translation(inputs=[inputs]) + poller = client.begin_translation( + source_container_url, + target_container_url, + "es", + glossaries=[TranslationGlossary(glossary_url=glossary_url, file_format="TSV")] + ) result = poller.result() From b3354003b8b5bc8f161b60765597b0cda3791cdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= <39780829+mccoyp@users.noreply.github.com> Date: Mon, 9 Aug 2021 12:45:39 -0700 Subject: [PATCH 015/104] Update changelog for release (#20165) --- sdk/keyvault/azure-keyvault-keys/CHANGELOG.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-keys/CHANGELOG.md b/sdk/keyvault/azure-keyvault-keys/CHANGELOG.md index 9ced373b99d4..a7991fb601ba 100644 --- a/sdk/keyvault/azure-keyvault-keys/CHANGELOG.md +++ b/sdk/keyvault/azure-keyvault-keys/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 4.5.0b2 (Unreleased) +## 4.5.0b2 (2021-08-10) ### Features Added - Added support for secure key release from a Managed HSM @@ -16,10 +16,7 @@ > Only code written against a beta version such as 4.5.0b1 may be affected. - `KeyClient.get_random_bytes` now returns a `RandomBytes` model with bytes in a `value` property, rather than returning the bytes directly - -### Bugs Fixed - -### Other Changes + ([#19895](https://github.com/Azure/azure-sdk-for-python/issues/19895)) ## 4.5.0b1 (2021-07-08) Beginning with this release, this library requires Python 2.7 or 3.6+. From 7192532668cd03f64afece9a3d742f0bdbdcd5eb Mon Sep 17 00:00:00 2001 From: Krista Pratico Date: Mon, 9 Aug 2021 12:54:39 -0700 Subject: [PATCH 016/104] Update CHANGELOG.md (#20174) --- sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md b/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md index c4edcbc79782..4cb398deb2ce 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md +++ b/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 5.2.0b1 (2021-08-10) +## 5.2.0b1 (2021-08-09) This version of the SDK defaults to the latest supported API version, which currently is `v3.2-preview.1`. From 287c9b16ae52f1033742d770f219c388e11d4a40 Mon Sep 17 00:00:00 2001 From: Rob Emanuele Date: Mon, 9 Aug 2021 16:18:57 -0400 Subject: [PATCH 017/104] Fix documentation for TaskExecutionInformation (#18079) The docstring for TaskExecutionResult states that if the value of `result` references a value of 'failed', but the possible values are listed are 'success' and 'failure' --- sdk/batch/azure-batch/azure/batch/models/_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/batch/azure-batch/azure/batch/models/_models.py b/sdk/batch/azure-batch/azure/batch/models/_models.py index c08540591efe..001e9b7037ba 100644 --- a/sdk/batch/azure-batch/azure/batch/models/_models.py +++ b/sdk/batch/azure-batch/azure/batch/models/_models.py @@ -9873,7 +9873,7 @@ class TaskExecutionInformation(Model): :param last_requeue_time: This property is set only if the requeueCount is nonzero. :type last_requeue_time: datetime - :param result: The result of the Task execution. If the value is 'failed', + :param result: The result of the Task execution. If the value is 'failure', then the details of the failure can be found in the failureInfo property. Possible values include: 'success', 'failure' :type result: str or ~azure.batch.models.TaskExecutionResult From e72950cb7d1cbe406ef15fe11ab771597ff5ef67 Mon Sep 17 00:00:00 2001 From: Laurent Mazuel Date: Mon, 9 Aug 2021 13:23:02 -0700 Subject: [PATCH 018/104] Remove 3.5 from template system (#17199) * Remove 3.5 from setup.py * Update README.md --- tools/azure-sdk-tools/packaging_tools/templates/README.md | 2 +- tools/azure-sdk-tools/packaging_tools/templates/setup.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/azure-sdk-tools/packaging_tools/templates/README.md b/tools/azure-sdk-tools/packaging_tools/templates/README.md index a9b71fd1c104..3ce3b6dee0ef 100644 --- a/tools/azure-sdk-tools/packaging_tools/templates/README.md +++ b/tools/azure-sdk-tools/packaging_tools/templates/README.md @@ -1,7 +1,7 @@ # Microsoft Azure SDK for Python This is the Microsoft Azure {{package_pprint_name}} Client Library. -This package has been tested with Python 2.7, 3.5, 3.6, 3.7 and 3.8. +This package has been tested with Python 2.7, 3.6+. For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). diff --git a/tools/azure-sdk-tools/packaging_tools/templates/setup.py b/tools/azure-sdk-tools/packaging_tools/templates/setup.py index 219a14488c8a..40f72f8b053b 100644 --- a/tools/azure-sdk-tools/packaging_tools/templates/setup.py +++ b/tools/azure-sdk-tools/packaging_tools/templates/setup.py @@ -66,7 +66,6 @@ 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', From 56680968278e77ae8b664de58f4d508d287ca1cf Mon Sep 17 00:00:00 2001 From: Meera Haridasa <22649188+meeraharidasa@users.noreply.github.com> Date: Mon, 9 Aug 2021 13:24:45 -0700 Subject: [PATCH 019/104] Update CODEOWNERS (#16767) updating "Communication" label owner --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index db866fa72a18..06411c643b65 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -38,7 +38,7 @@ /sdk/cognitiveservices/azure-cognitiveservices-vision-customvision/ @areddish # PRLabel: %Communication -/sdk/communication/ @turalf @ankitarorabit @memontic-ms @Azure/azure-sdk-communication-code-reviewers +/sdk/communication/ @acsdevx-msft # PRLabel: %KeyVault /sdk/keyvault/ @schaabs @chlowell @mccoyp From 24b3652a5ff207af50b84c84c62f4774962f6be5 Mon Sep 17 00:00:00 2001 From: Gene Hazan Date: Mon, 9 Aug 2021 13:32:03 -0700 Subject: [PATCH 020/104] Update CODEOWNERS (#14540) @divyajay FYI --- .github/CODEOWNERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 06411c643b65..3efc8ea7bc47 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -28,8 +28,8 @@ # PRLabel: %App Configuration /sdk/appconfiguration/ @xiangyan99 @seankane-msft -/sdk/applicationinsights/azure-applicationinsights/ @divya-jay @geneh @alongafni -/sdk/loganalytics/azure-loganalytics/ @divya-jay @geneh @alongafni +/sdk/applicationinsights/azure-applicationinsights/ @divyajay @geneh @alongafni +/sdk/loganalytics/azure-loganalytics/ @divyajay @geneh @alongafni /sdk/attestation/azure-security-attestation @larryosterman @anilba06 @Azure/azure-sdk-write-attestation From 4bb5583dec9e442c65903b053cdc618c20e6f93b Mon Sep 17 00:00:00 2001 From: "Tong Xu (MSFT)" <57166602+v-xuto@users.noreply.github.com> Date: Tue, 10 Aug 2021 04:51:40 +0800 Subject: [PATCH 021/104] Fix Media analytics edge Readme issues (#18067) * fix Media analytics edge Readme issues * Update README.md Co-authored-by: Laurent Mazuel --- .../azure-media-analytics-edge/README.md | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/sdk/media/azure-media-analytics-edge/README.md b/sdk/media/azure-media-analytics-edge/README.md index 7f7a20279d16..482f2148acad 100644 --- a/sdk/media/azure-media-analytics-edge/README.md +++ b/sdk/media/azure-media-analytics-edge/README.md @@ -48,10 +48,13 @@ The second parameter, `payload`, sends the entire serialization of the media gra ### Creating a graph topology To create a graph topology you need to define parameters, sources, and sinks. ``` +from azure.media.analyticsedge import * + #Parameters user_name_param = MediaGraphParameterDeclaration(name="rtspUserName",type="String",default="dummyusername") password_param = MediaGraphParameterDeclaration(name="rtspPassword",type="String",default="dummypassword") url_param = MediaGraphParameterDeclaration(name="rtspUrl",type="String",default="rtsp://rtspsim:554/media/camera-300s.mkv") +graph_topology_name = "graphTopology1" #Source and Sink source = MediaGraphRtspSource(name="rtspSource", endpoint=MediaGraphUnsecuredEndpoint(url="${rtspUrl}",credentials=MediaGraphUsernamePasswordCredentials(username="${rtspUserName}",password="${rtspPassword}"))) @@ -67,6 +70,13 @@ graph_topology = MediaGraphTopology(name=graph_topology_name,properties=graph_pr ### Creating a graph instance To create a graph instance, you need to have an existing graph topology. ``` +from azure.media.analyticsedge import * + +#Parameters +graph_instance_name = "graphInstance1" +graph_topology_name = "graphTopology1" +graph_url = "rtsp://sample-url-from-camera" + url_param = MediaGraphParameterDefinition(name="rtspUrl", value=graph_url) graph_instance_properties = MediaGraphInstanceProperties(description="Sample graph description", topology_name=graph_topology_name, parameters=[url_param]) @@ -77,6 +87,12 @@ graph_instance = MediaGraphInstance(name=graph_instance_name, properties=graph_i ### Invoking a graph method request To invoke a graph method on your device you need to first define the request using the lva sdk. Then send that method request using the iot sdk's `CloudToDeviceMethod` ``` +from azure.media.analyticsedge import * +from azure.iot.hub import IoTHubRegistryManager +from azure.iot.hub.models import CloudToDeviceMethod + +module_d = "mediaedge" +connection_string = "HostName=lvasamplehubcx5a4jgbixyvg.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=/53Qw6ifN0ka4so72a1gVEhmyiz5fLb9iw+oWoyoQxk=" set_method_request = MediaGraphTopologySetRequest(graph=graph_topology) direct_method = CloudToDeviceMethod(method_name=set_method_request.method_name, payload=set_method_request.serialize()) registry_manager = IoTHubRegistryManager(connection_string) @@ -125,7 +141,7 @@ additional questions or comments. [coc_faq]: https://opensource.microsoft.com/codeofconduct/faq/ [coc_contact]: mailto:opencode@microsoft.com -[package]: TODO://link-to-published-package +[package]: https://pypi.org/project/azure-media-analytics-edge/ [source]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/media [samples]: https://github.com/Azure-Samples/live-video-analytics-iot-edge-python @@ -137,4 +153,4 @@ additional questions or comments. [iot-hub-sdk]: https://pypi.org/project/azure-iot-hub/ [iot_device_connection_string]: https://docs.microsoft.com/azure/media-services/live-video-analytics-edge/get-started-detect-motion-emit-events-quickstart -[github-page-issues]: https://github.com/Azure/azure-sdk-for-python/issues \ No newline at end of file +[github-page-issues]: https://github.com/Azure/azure-sdk-for-python/issues From 24fbbcc5111fdd78be3ae9716e52d5dd89c5923f Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Mon, 9 Aug 2021 14:23:14 -0700 Subject: [PATCH 022/104] Increment package version after release of azure-ai-textanalytics (#20188) --- sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md | 10 ++++++++++ .../azure/ai/textanalytics/_version.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md b/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md index 4cb398deb2ce..c0b59419cb3c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md +++ b/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md @@ -1,5 +1,15 @@ # Release History +## 5.2.0b2 (Unreleased) + +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes + ## 5.2.0b1 (2021-08-09) This version of the SDK defaults to the latest supported API version, which currently is `v3.2-preview.1`. diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_version.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_version.py index 2ac5a2006647..adb97393c714 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_version.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_version.py @@ -4,5 +4,5 @@ # Licensed under the MIT License. # ------------------------------------ -VERSION = "5.2.0b1" +VERSION = "5.2.0b2" DEFAULT_API_VERSION = "v3.2-preview.1" From 332f659bfbe2619098a254b34cc2a14b78d5fea1 Mon Sep 17 00:00:00 2001 From: Rakshith Bhyravabhotla Date: Mon, 9 Aug 2021 14:28:51 -0700 Subject: [PATCH 023/104] Update CHANGELOG.md (#20191) --- sdk/monitor/azure-monitor-query/CHANGELOG.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/sdk/monitor/azure-monitor-query/CHANGELOG.md b/sdk/monitor/azure-monitor-query/CHANGELOG.md index 199d700da31d..bedaba585974 100644 --- a/sdk/monitor/azure-monitor-query/CHANGELOG.md +++ b/sdk/monitor/azure-monitor-query/CHANGELOG.md @@ -1,7 +1,7 @@ # Release History -## 1.0.0b3 (Unreleased) +## 1.0.0b3 (2021-08-09) ### Features Added @@ -18,10 +18,6 @@ - `LogsQueryResults` is now renamed to `LogsQueryResult` - `LogsBatchQueryResult` now has 4 additional attributes - `tables`, `error`, `statistics` and `render` instead of `body` attribute. -### Bugs Fixed - -### Other Changes - ## 1.0.0b2 (2021-07-06) ### Breaking Changes From 8880f1ee5cbd41425fa7b47aefd749a952106e56 Mon Sep 17 00:00:00 2001 From: "Adam Ling (MSFT)" Date: Tue, 10 Aug 2021 05:33:58 +0800 Subject: [PATCH 024/104] [ServiceBus] Changelog update (#20189) --- sdk/servicebus/azure-servicebus/CHANGELOG.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/sdk/servicebus/azure-servicebus/CHANGELOG.md b/sdk/servicebus/azure-servicebus/CHANGELOG.md index f5dc972aa803..ad3a2300e074 100644 --- a/sdk/servicebus/azure-servicebus/CHANGELOG.md +++ b/sdk/servicebus/azure-servicebus/CHANGELOG.md @@ -1,17 +1,12 @@ # Release History -## 7.3.2 (Unreleased) - -### Features Added - -### Breaking Changes +## 7.3.2 (2021-08-10) ### Bugs Fixed + - Fixed a bug that `azure.servicebus.aio.AutoLockRenewer` crashes on disposal if no messages have been registered (#19642). - Fixed a bug that `azure.servicebus.AutoLockRenewer` only supports auto lock renewal for `max_workers` amount of messages/sessions at a time (#19362). -### Other Changes - ## 7.3.1 (2021-07-07) ### Fixed From 498eb822a655f489fbfffd96cda7a9a4fee158a1 Mon Sep 17 00:00:00 2001 From: Charles Lowell Date: Mon, 9 Aug 2021 15:07:21 -0700 Subject: [PATCH 025/104] Update changelog for azure-identity 1.7.0b3 (#20151) --- sdk/identity/azure-identity/CHANGELOG.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sdk/identity/azure-identity/CHANGELOG.md b/sdk/identity/azure-identity/CHANGELOG.md index c5d81fdaf9b9..d06a420fd1e8 100644 --- a/sdk/identity/azure-identity/CHANGELOG.md +++ b/sdk/identity/azure-identity/CHANGELOG.md @@ -1,8 +1,6 @@ # Release History -## 1.7.0b3 (Unreleased) - -### Features Added +## 1.7.0b3 (2020-08-10) ### Breaking Changes > These changes do not impact the API of stable versions such as 1.6.0. From 8ea2919cfbe12422369401b09b790873dc6122a3 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Mon, 9 Aug 2021 16:09:47 -0700 Subject: [PATCH 026/104] Increment package version after release of azure-monitor-query (#20194) --- sdk/monitor/azure-monitor-query/CHANGELOG.md | 9 +++++++++ .../azure-monitor-query/azure/monitor/query/_version.py | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/sdk/monitor/azure-monitor-query/CHANGELOG.md b/sdk/monitor/azure-monitor-query/CHANGELOG.md index bedaba585974..1b58d121087f 100644 --- a/sdk/monitor/azure-monitor-query/CHANGELOG.md +++ b/sdk/monitor/azure-monitor-query/CHANGELOG.md @@ -1,5 +1,14 @@ # Release History +## 1.0.0b4 (Unreleased) + +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes ## 1.0.0b3 (2021-08-09) diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_version.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_version.py index 01c327e5d6a4..3938d6c3e835 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_version.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_version.py @@ -5,4 +5,4 @@ # license information. # -------------------------------------------------------------------------- -VERSION = "1.0.0b3" +VERSION = "1.0.0b4" From d2dc638943a7d06a9cdb0397a6ce9677ff363ee8 Mon Sep 17 00:00:00 2001 From: Rakshith Bhyravabhotla Date: Mon, 9 Aug 2021 16:46:35 -0700 Subject: [PATCH 027/104] Update batch API (#20192) * Rename LogsBatchQueryRequest to LogsBatchQuery * rename batch query to query batch --- sdk/monitor/azure-monitor-query/CHANGELOG.md | 3 ++ sdk/monitor/azure-monitor-query/README.md | 6 ++-- .../azure/monitor/query/__init__.py | 4 +-- .../azure/monitor/query/_logs_query_client.py | 14 ++++---- .../azure/monitor/query/_models.py | 2 +- .../query/aio/_logs_query_client_async.py | 10 +++--- .../samples/sample_batch_query.py | 14 ++++---- .../samples/sample_batch_query_serialized.py | 2 +- .../tests/async/test_logs_client_async.py | 22 ++++++------- .../tests/perfstress_tests/batch_query.py | 4 +-- .../tests/test_logs_client.py | 32 +++++++++---------- .../tests/test_logs_timespans.py | 2 +- 12 files changed, 59 insertions(+), 56 deletions(-) diff --git a/sdk/monitor/azure-monitor-query/CHANGELOG.md b/sdk/monitor/azure-monitor-query/CHANGELOG.md index 1b58d121087f..9a18197b3a0d 100644 --- a/sdk/monitor/azure-monitor-query/CHANGELOG.md +++ b/sdk/monitor/azure-monitor-query/CHANGELOG.md @@ -6,6 +6,9 @@ ### Breaking Changes +- Rename `batch_query` to `query_batch`. +- Rename `LogsBatchQueryRequest` to `LogsBatchQuery`. + ### Bugs Fixed ### Other Changes diff --git a/sdk/monitor/azure-monitor-query/README.md b/sdk/monitor/azure-monitor-query/README.md index 25bacc3dc438..74c40110734d 100644 --- a/sdk/monitor/azure-monitor-query/README.md +++ b/sdk/monitor/azure-monitor-query/README.md @@ -183,12 +183,12 @@ credential = DefaultAzureCredential() client = LogsQueryClient(credential) requests = [ - LogsBatchQueryRequest( + LogsBatchQuery( query="AzureActivity | summarize count()", duration=timedelta(hours=1), workspace_id=os.environ['LOG_WORKSPACE_ID'] ), - LogsBatchQueryRequest( + LogsBatchQuery( query= """AppRequests | take 10 | summarize avgRequestDuration=avg(DurationMs) by bin(TimeGenerated, 10m), _ResourceId""", duration=timedelta(hours=1), @@ -200,7 +200,7 @@ requests = [ workspace_id=os.environ['LOG_WORKSPACE_ID'] ), ] -response = client.batch_query(requests) +response = client.query_batch(requests) for rsp in response: body = rsp.body diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/__init__.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/__init__.py index a0d12433709a..e3ceb3cbd419 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/__init__.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/__init__.py @@ -15,7 +15,7 @@ LogsQueryResultColumn, MetricsResult, LogsBatchResultError, - LogsBatchQueryRequest, + LogsBatchQuery, MetricNamespace, MetricDefinition, MetricsMetadataValue, @@ -35,7 +35,7 @@ "LogsQueryResult", "LogsQueryResultColumn", "LogsQueryResultTable", - "LogsBatchQueryRequest", + "LogsBatchQuery", "MetricsQueryClient", "MetricNamespace", "MetricDefinition", diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_logs_query_client.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_logs_query_client.py index 3c5b6fa9ada4..05b5d83a8d3e 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_logs_query_client.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_logs_query_client.py @@ -12,7 +12,7 @@ from ._generated.models import BatchRequest, QueryBody as LogsQueryBody from ._helpers import get_authentication_policy, process_error, construct_iso8601, order_results -from ._models import LogsQueryResult, LogsBatchQueryRequest, LogsBatchQueryResult +from ._models import LogsQueryResult, LogsBatchQuery, LogsBatchQueryResult if TYPE_CHECKING: from azure.core.credentials import TokenCredential @@ -130,15 +130,15 @@ def query(self, workspace_id, query, duration=None, **kwargs): except HttpResponseError as e: process_error(e) - def batch_query(self, queries, **kwargs): - # type: (Union[Sequence[Dict], Sequence[LogsBatchQueryRequest]], Any) -> Sequence[LogsBatchQueryResult] + def query_batch(self, queries, **kwargs): + # type: (Union[Sequence[Dict], Sequence[LogsBatchQuery]], Any) -> Sequence[LogsBatchQueryResult] """Execute a list of analytics queries. Each request can be either a LogQueryRequest object or an equivalent serialized model. The response is returned in the same order as that of the requests sent. :param queries: The list of queries that should be processed - :type queries: list[dict] or list[~azure.monitor.query.LogsBatchQueryRequest] + :type queries: list[dict] or list[~azure.monitor.query.LogsBatchQuery] :return: List of LogsBatchQueryResult, or the result of cls(response) :rtype: ~list[~azure.monitor.query.LogsBatchQueryResult] :raises: ~azure.core.exceptions.HttpResponseError @@ -146,14 +146,14 @@ def batch_query(self, queries, **kwargs): .. admonition:: Example: .. literalinclude:: ../samples/sample_batch_query.py - :start-after: [START send_batch_query] - :end-before: [END send_batch_query] + :start-after: [START send_query_batch] + :end-before: [END send_query_batch] :language: python :dedent: 0 :caption: Get a response for multiple Log Queries. """ try: - queries = [LogsBatchQueryRequest(**q) for q in queries] + queries = [LogsBatchQuery(**q) for q in queries] except (KeyError, TypeError): pass queries = [q._to_generated() for q in queries] # pylint: disable=protected-access diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py index 1f6553aa3bb7..4c17370450fb 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py @@ -148,7 +148,7 @@ def _from_generated(cls, generated): metrics=[Metric._from_generated(m) for m in generated.value] # pylint: disable=protected-access ) -class LogsBatchQueryRequest(object): +class LogsBatchQuery(object): """A single request in a batch. Variables are only populated by the server, and will be ignored when sending a request. diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_logs_query_client_async.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_logs_query_client_async.py index 7f1185ec1977..2557ef11d44e 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_logs_query_client_async.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_logs_query_client_async.py @@ -12,7 +12,7 @@ from .._generated.models import BatchRequest, QueryBody as LogsQueryBody from .._helpers import process_error, construct_iso8601, order_results -from .._models import LogsQueryResult, LogsBatchQueryRequest, LogsBatchQueryResult +from .._models import LogsQueryResult, LogsBatchQuery, LogsBatchQueryResult from ._helpers_asyc import get_authentication_policy if TYPE_CHECKING: @@ -114,9 +114,9 @@ async def query( except HttpResponseError as e: process_error(e) - async def batch_query( + async def query_batch( self, - queries: Union[Sequence[Dict], Sequence[LogsBatchQueryRequest]], + queries: Union[Sequence[Dict], Sequence[LogsBatchQuery]], **kwargs: Any ) -> Sequence[LogsBatchQueryResult]: """Execute a list of analytics queries. Each request can be either a LogQueryRequest @@ -125,13 +125,13 @@ async def batch_query( The response is returned in the same order as that of the requests sent. :param queries: The list of queries that should be processed - :type queries: list[dict] or list[~azure.monitor.query.LogsBatchQueryRequest] + :type queries: list[dict] or list[~azure.monitor.query.LogsBatchQuery] :return: BatchResponse, or the result of cls(response) :rtype: ~list[~azure.monitor.query.LogsBatchQueryResult] :raises: ~azure.core.exceptions.HttpResponseError """ try: - queries = [LogsBatchQueryRequest(**q) for q in queries] + queries = [LogsBatchQuery(**q) for q in queries] except (KeyError, TypeError): pass queries = [q._to_generated() for q in queries] # pylint: disable=protected-access diff --git a/sdk/monitor/azure-monitor-query/samples/sample_batch_query.py b/sdk/monitor/azure-monitor-query/samples/sample_batch_query.py index 82a176aca43a..c7e1ec025b93 100644 --- a/sdk/monitor/azure-monitor-query/samples/sample_batch_query.py +++ b/sdk/monitor/azure-monitor-query/samples/sample_batch_query.py @@ -4,7 +4,7 @@ from datetime import datetime, timedelta import os import pandas as pd -from azure.monitor.query import LogsQueryClient, LogsBatchQueryRequest +from azure.monitor.query import LogsQueryClient, LogsBatchQuery from azure.identity import DefaultAzureCredential @@ -12,27 +12,27 @@ client = LogsQueryClient(credential) -# [START send_batch_query] +# [START send_query_batch] requests = [ - LogsBatchQueryRequest( + LogsBatchQuery( query="AzureActivity | summarize count()", duration=timedelta(hours=1), workspace_id= os.environ['LOG_WORKSPACE_ID'] ), - LogsBatchQueryRequest( + LogsBatchQuery( query= """AppRequests | take 10 | summarize avgRequestDuration=avg(DurationMs) by bin(TimeGenerated, 10m), _ResourceId""", duration=timedelta(hours=1), start_time=datetime(2021, 6, 2), workspace_id= os.environ['LOG_WORKSPACE_ID'] ), - LogsBatchQueryRequest( + LogsBatchQuery( query= "AppRequestss | take 5", workspace_id= os.environ['LOG_WORKSPACE_ID'], include_statistics=True ), ] -responses = client.batch_query(requests) +responses = client.query_batch(requests) for response in responses: try: @@ -42,4 +42,4 @@ except TypeError: print(response.error) -# [END send_batch_query] \ No newline at end of file +# [END send_query_batch] \ No newline at end of file diff --git a/sdk/monitor/azure-monitor-query/samples/sample_batch_query_serialized.py b/sdk/monitor/azure-monitor-query/samples/sample_batch_query_serialized.py index 91d8a50473d4..6c06b03d34b3 100644 --- a/sdk/monitor/azure-monitor-query/samples/sample_batch_query_serialized.py +++ b/sdk/monitor/azure-monitor-query/samples/sample_batch_query_serialized.py @@ -39,7 +39,7 @@ "workspace": os.environ['LOG_WORKSPACE_ID'] } ] -responses = client.batch_query(requests) +responses = client.query_batch(requests) for response in responses: try: diff --git a/sdk/monitor/azure-monitor-query/tests/async/test_logs_client_async.py b/sdk/monitor/azure-monitor-query/tests/async/test_logs_client_async.py index 1050949bc33c..ec67406b13d2 100644 --- a/sdk/monitor/azure-monitor-query/tests/async/test_logs_client_async.py +++ b/sdk/monitor/azure-monitor-query/tests/async/test_logs_client_async.py @@ -2,7 +2,7 @@ import os from azure.identity.aio import ClientSecretCredential from azure.core.exceptions import HttpResponseError -from azure.monitor.query import LogsBatchQueryRequest +from azure.monitor.query import LogsBatchQuery from azure.monitor.query.aio import LogsQueryClient def _credential(): @@ -40,27 +40,27 @@ async def test_logs_server_timeout(): assert e.message.contains('Gateway timeout') @pytest.mark.live_test_only -async def test_logs_batch_query(): +async def test_logs_query_batch(): client = LogsQueryClient(_credential()) requests = [ - LogsBatchQueryRequest( + LogsBatchQuery( query="AzureActivity | summarize count()", timespan="PT1H", workspace_id= os.environ['LOG_WORKSPACE_ID'] ), - LogsBatchQueryRequest( + LogsBatchQuery( query= """AppRequests | take 10 | summarize avgRequestDuration=avg(DurationMs) by bin(TimeGenerated, 10m), _ResourceId""", timespan="PT1H", workspace_id= os.environ['LOG_WORKSPACE_ID'] ), - LogsBatchQueryRequest( + LogsBatchQuery( query= "AppRequests | take 2", workspace_id= os.environ['LOG_WORKSPACE_ID'] ), ] - response = await client.batch_query(requests) + response = await client.query_batch(requests) assert len(response) == 3 @@ -85,30 +85,30 @@ async def test_logs_single_query_additional_workspaces_async(): @pytest.mark.skip('https://github.com/Azure/azure-sdk-for-python/issues/19382') @pytest.mark.live_test_only @pytest.mark.asyncio -async def test_logs_batch_query_additional_workspaces(): +async def test_logs_query_batch_additional_workspaces(): client = LogsQueryClient(_credential()) query = "union * | where TimeGenerated > ago(100d) | project TenantId | summarize count() by TenantId" requests = [ - LogsBatchQueryRequest( + LogsBatchQuery( query, timespan="PT1H", workspace_id= os.environ['LOG_WORKSPACE_ID'], additional_workspaces=[os.environ['SECONDARY_WORKSPACE_ID']] ), - LogsBatchQueryRequest( + LogsBatchQuery( query, timespan="PT1H", workspace_id= os.environ['LOG_WORKSPACE_ID'], additional_workspaces=[os.environ['SECONDARY_WORKSPACE_ID']] ), - LogsBatchQueryRequest( + LogsBatchQuery( query, workspace_id= os.environ['LOG_WORKSPACE_ID'], additional_workspaces=[os.environ['SECONDARY_WORKSPACE_ID']] ), ] - response = await client.batch_query(requests) + response = await client.query_batch(requests) assert len(response) == 3 diff --git a/sdk/monitor/azure-monitor-query/tests/perfstress_tests/batch_query.py b/sdk/monitor/azure-monitor-query/tests/perfstress_tests/batch_query.py index caa250dfdc6b..a59420e5ab81 100644 --- a/sdk/monitor/azure-monitor-query/tests/perfstress_tests/batch_query.py +++ b/sdk/monitor/azure-monitor-query/tests/perfstress_tests/batch_query.py @@ -65,7 +65,7 @@ def run_sync(self): Avoid putting any ancilliary logic (e.g. generating UUIDs), and put this in the setup/init instead so that we're only measuring the client API call. """ - self.logs_client.batch_query( + self.logs_client.query_batch( self.requests ) @@ -76,6 +76,6 @@ async def run_async(self): Avoid putting any ancilliary logic (e.g. generating UUIDs), and put this in the setup/init instead so that we're only measuring the client API call. """ - await self.async_logs_client.batch_query( + await self.async_logs_client.query_batch( self.requests ) diff --git a/sdk/monitor/azure-monitor-query/tests/test_logs_client.py b/sdk/monitor/azure-monitor-query/tests/test_logs_client.py index 245a6758b57e..08c605fff41b 100644 --- a/sdk/monitor/azure-monitor-query/tests/test_logs_client.py +++ b/sdk/monitor/azure-monitor-query/tests/test_logs_client.py @@ -2,7 +2,7 @@ import os from azure.identity import ClientSecretCredential from azure.core.exceptions import HttpResponseError -from azure.monitor.query import LogsQueryClient, LogsBatchQueryRequest +from azure.monitor.query import LogsQueryClient, LogsBatchQuery def _credential(): credential = ClientSecretCredential( @@ -62,27 +62,27 @@ def test_logs_server_timeout(): assert 'Gateway timeout' in e.value.message @pytest.mark.live_test_only -def test_logs_batch_query(): +def test_logs_query_batch(): client = LogsQueryClient(_credential()) requests = [ - LogsBatchQueryRequest( + LogsBatchQuery( query="AzureActivity | summarize count()", timespan="PT1H", workspace_id= os.environ['LOG_WORKSPACE_ID'] ), - LogsBatchQueryRequest( + LogsBatchQuery( query= """AppRequests | take 10 | summarize avgRequestDuration=avg(DurationMs) by bin(TimeGenerated, 10m), _ResourceId""", timespan="PT1H", workspace_id= os.environ['LOG_WORKSPACE_ID'] ), - LogsBatchQueryRequest( + LogsBatchQuery( query= "AppRequests | take 2", workspace_id= os.environ['LOG_WORKSPACE_ID'] ), ] - response = client.batch_query(requests) + response = client.query_batch(requests) assert len(response) == 3 @@ -98,29 +98,29 @@ def test_logs_single_query_with_statistics(): assert response.statistics is not None @pytest.mark.live_test_only -def test_logs_batch_query_with_statistics_in_some(): +def test_logs_query_batch_with_statistics_in_some(): client = LogsQueryClient(_credential()) requests = [ - LogsBatchQueryRequest( + LogsBatchQuery( query="AzureActivity | summarize count()", timespan="PT1H", workspace_id= os.environ['LOG_WORKSPACE_ID'] ), - LogsBatchQueryRequest( + LogsBatchQuery( query= """AppRequests| summarize avgRequestDuration=avg(DurationMs) by bin(TimeGenerated, 10m), _ResourceId""", timespan="PT1H", workspace_id= os.environ['LOG_WORKSPACE_ID'], include_statistics=True ), - LogsBatchQueryRequest( + LogsBatchQuery( query= "AppRequests", workspace_id= os.environ['LOG_WORKSPACE_ID'], include_statistics=True ), ] - response = client.batch_query(requests) + response = client.query_batch(requests) assert len(response) == 3 assert response[0].statistics is None @@ -145,30 +145,30 @@ def test_logs_single_query_additional_workspaces(): @pytest.mark.live_test_only @pytest.mark.skip('https://github.com/Azure/azure-sdk-for-python/issues/19382') -def test_logs_batch_query_additional_workspaces(): +def test_logs_query_batch_additional_workspaces(): client = LogsQueryClient(_credential()) query = "union * | where TimeGenerated > ago(100d) | project TenantId | summarize count() by TenantId" requests = [ - LogsBatchQueryRequest( + LogsBatchQuery( query, timespan="PT1H", workspace_id= os.environ['LOG_WORKSPACE_ID'], additional_workspaces=[os.environ['SECONDARY_WORKSPACE_ID']] ), - LogsBatchQueryRequest( + LogsBatchQuery( query, timespan="PT1H", workspace_id= os.environ['LOG_WORKSPACE_ID'], additional_workspaces=[os.environ['SECONDARY_WORKSPACE_ID']] ), - LogsBatchQueryRequest( + LogsBatchQuery( query, workspace_id= os.environ['LOG_WORKSPACE_ID'], additional_workspaces=[os.environ['SECONDARY_WORKSPACE_ID']] ), ] - response = client.batch_query(requests) + response = client.query_batch(requests) for resp in response: assert len(resp.tables[0].rows) == 2 diff --git a/sdk/monitor/azure-monitor-query/tests/test_logs_timespans.py b/sdk/monitor/azure-monitor-query/tests/test_logs_timespans.py index 0f561d5f07f9..5045ebe78125 100644 --- a/sdk/monitor/azure-monitor-query/tests/test_logs_timespans.py +++ b/sdk/monitor/azure-monitor-query/tests/test_logs_timespans.py @@ -6,7 +6,7 @@ from azure.identity import ClientSecretCredential from azure.core.exceptions import HttpResponseError -from azure.monitor.query import LogsQueryClient, LogsBatchQueryRequest +from azure.monitor.query import LogsQueryClient, LogsBatchQuery from azure.monitor.query._helpers import construct_iso8601 From 216b41aafa159a62eff0363899a894d7fea14581 Mon Sep 17 00:00:00 2001 From: Xiang Yan Date: Mon, 9 Aug 2021 17:02:04 -0700 Subject: [PATCH 028/104] update default version (#20195) * update default version * update changelog --- .../azure/synapse/artifacts/_artifacts_client.py | 2 +- .../azure/synapse/artifacts/aio/_artifacts_client.py | 2 +- sdk/synapse/azure-synapse-managedprivateendpoints/CHANGELOG.md | 1 + .../azure/synapse/managedprivateendpoints/_vnet_client.py | 2 +- .../azure/synapse/managedprivateendpoints/aio/_vnet_client.py | 2 +- 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/sdk/synapse/azure-synapse-artifacts/azure/synapse/artifacts/_artifacts_client.py b/sdk/synapse/azure-synapse-artifacts/azure/synapse/artifacts/_artifacts_client.py index 4ba748549a46..4f589ed2ef42 100644 --- a/sdk/synapse/azure-synapse-artifacts/azure/synapse/artifacts/_artifacts_client.py +++ b/sdk/synapse/azure-synapse-artifacts/azure/synapse/artifacts/_artifacts_client.py @@ -67,7 +67,7 @@ def __init__( self, credential, # type: "TokenCredential" endpoint, # type: str - api_version=None, # type: Optional[str] + api_version=DEFAULT_API_VERSION, # type: Optional[str] profile=KnownProfiles.default, # type: KnownProfiles **kwargs # type: Any ): diff --git a/sdk/synapse/azure-synapse-artifacts/azure/synapse/artifacts/aio/_artifacts_client.py b/sdk/synapse/azure-synapse-artifacts/azure/synapse/artifacts/aio/_artifacts_client.py index 57bd6e84d292..c9a6a716a343 100644 --- a/sdk/synapse/azure-synapse-artifacts/azure/synapse/artifacts/aio/_artifacts_client.py +++ b/sdk/synapse/azure-synapse-artifacts/azure/synapse/artifacts/aio/_artifacts_client.py @@ -65,7 +65,7 @@ def __init__( self, credential: "AsyncTokenCredential", endpoint: str, - api_version: Optional[str] = None, + api_version: Optional[str] = DEFAULT_API_VERSION, profile: KnownProfiles = KnownProfiles.default, **kwargs # type: Any ) -> None: diff --git a/sdk/synapse/azure-synapse-managedprivateendpoints/CHANGELOG.md b/sdk/synapse/azure-synapse-managedprivateendpoints/CHANGELOG.md index bdffeef0e1bb..28f7cf9c944d 100644 --- a/sdk/synapse/azure-synapse-managedprivateendpoints/CHANGELOG.md +++ b/sdk/synapse/azure-synapse-managedprivateendpoints/CHANGELOG.md @@ -4,6 +4,7 @@ - Updated API version to "2020-12-01" which is the default API version - Added API version "2021-06-01-preview" support +- `ManagedPrivateEndpointsClient` is renamed to `VnetClient` ## 0.3.0 (2021-03-09) diff --git a/sdk/synapse/azure-synapse-managedprivateendpoints/azure/synapse/managedprivateendpoints/_vnet_client.py b/sdk/synapse/azure-synapse-managedprivateendpoints/azure/synapse/managedprivateendpoints/_vnet_client.py index eae02e1a8500..b68e7adbc4de 100644 --- a/sdk/synapse/azure-synapse-managedprivateendpoints/azure/synapse/managedprivateendpoints/_vnet_client.py +++ b/sdk/synapse/azure-synapse-managedprivateendpoints/azure/synapse/managedprivateendpoints/_vnet_client.py @@ -66,7 +66,7 @@ def __init__( self, credential, # type: "TokenCredential" endpoint, # type: str - api_version=None, # type: Optional[str] + api_version=DEFAULT_API_VERSION, # type: Optional[str] profile=KnownProfiles.default, # type: KnownProfiles **kwargs # type: Any ): diff --git a/sdk/synapse/azure-synapse-managedprivateendpoints/azure/synapse/managedprivateendpoints/aio/_vnet_client.py b/sdk/synapse/azure-synapse-managedprivateendpoints/azure/synapse/managedprivateendpoints/aio/_vnet_client.py index b81d5f5a44ca..27e328b90fd3 100644 --- a/sdk/synapse/azure-synapse-managedprivateendpoints/azure/synapse/managedprivateendpoints/aio/_vnet_client.py +++ b/sdk/synapse/azure-synapse-managedprivateendpoints/azure/synapse/managedprivateendpoints/aio/_vnet_client.py @@ -64,7 +64,7 @@ def __init__( self, credential: "AsyncTokenCredential", endpoint: str, - api_version: Optional[str] = None, + api_version: Optional[str] = DEFAULT_API_VERSION, profile: KnownProfiles = KnownProfiles.default, **kwargs # type: Any ) -> None: From 85f24798aa0d61c89857824d3cefcf8c43509880 Mon Sep 17 00:00:00 2001 From: Major Hayden Date: Mon, 9 Aug 2021 21:35:51 -0500 Subject: [PATCH 029/104] {azure-mgmt-recoveryservicesbackup} Add LICENSE to PyPi pkg (#20180) Fixes: azure/azure-sdk-for-python#20179 Signed-off-by: Major Hayden --- .../LICENSE.txt | 20 +++++++++++++++++++ .../MANIFEST.in | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/LICENSE.txt diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/LICENSE.txt b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/LICENSE.txt new file mode 100644 index 000000000000..9573b956133b --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/LICENSE.txt @@ -0,0 +1,20 @@ +The MIT License (MIT) +Copyright (c) 2014 Microsoft Corporation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/MANIFEST.in b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/MANIFEST.in index 3a9b6517412b..ef61eb0e3527 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/MANIFEST.in +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/MANIFEST.in @@ -3,4 +3,4 @@ recursive-include tests *.py *.yaml include *.md include azure/__init__.py include azure/mgmt/__init__.py - +include LICENSE.txt From 44b3e8439a7703eee3b361d219f52d18f655d897 Mon Sep 17 00:00:00 2001 From: Azure CLI Bot Date: Tue, 10 Aug 2021 14:08:01 +0800 Subject: [PATCH 030/104] [AutoRelease] t2-security-2021-08-10-85945 (#20197) * CodeGen from PR 15434 in Azure/azure-rest-api-specs Deprecate API (#15434) Co-authored-by: Orel Kayam * version,CHANGELOG Co-authored-by: SDKAuto Co-authored-by: Orel Kayam Co-authored-by: PythonSdkPipelines Co-authored-by: Zed Lei <59104634+RAY-316@users.noreply.github.com> --- sdk/security/azure-mgmt-security/CHANGELOG.md | 46 + sdk/security/azure-mgmt-security/MANIFEST.in | 1 + sdk/security/azure-mgmt-security/_meta.json | 11 + .../azure/mgmt/security/_metadata.json | 159 + .../azure/mgmt/security/_security_center.py | 97 +- .../azure/mgmt/security/_version.py | 2 +- .../mgmt/security/aio/_security_center.py | 96 +- .../mgmt/security/aio/operations/__init__.py | 34 +- ...daptive_application_controls_operations.py | 18 +- ..._adaptive_network_hardenings_operations.py | 13 +- .../_advanced_threat_protection_operations.py | 4 +- .../aio/operations/_alerts_operations.py | 206 +- .../_alerts_suppression_rules_operations.py | 8 +- .../_allowed_connections_operations.py | 6 +- .../_assessments_metadata_operations.py | 12 +- .../aio/operations/_assessments_operations.py | 12 +- .../_auto_provisioning_settings_operations.py | 6 +- .../aio/operations/_automations_operations.py | 12 +- .../_compliance_results_operations.py | 8 +- .../aio/operations/_compliances_operations.py | 12 +- .../aio/operations/_connectors_operations.py | 8 +- .../aio/operations/_device_operations.py | 98 - .../_device_security_groups_operations.py | 8 +- .../operations/_devices_for_hub_operations.py | 126 - .../_devices_for_subscription_operations.py | 123 - ...iscovered_security_solutions_operations.py | 6 +- ..._external_security_solutions_operations.py | 6 +- ...ormation_protection_policies_operations.py | 26 +- ...s.py => _ingestion_settings_operations.py} | 239 +- .../operations/_iot_alert_types_operations.py | 267 - .../aio/operations/_iot_alerts_operations.py | 375 -- .../_iot_recommendation_types_operations.py | 267 - ..._security_solution_analytics_operations.py | 4 +- .../_iot_security_solution_operations.py | 12 +- ...s_analytics_aggregated_alert_operations.py | 6 +- ...ons_analytics_recommendation_operations.py | 4 +- .../aio/operations/_iot_sensors_operations.py | 450 -- .../aio/operations/_iot_sites_operations.py | 262 - ..._jit_network_access_policies_operations.py | 16 +- .../aio/operations/_locations_operations.py | 4 +- .../_on_premise_iot_sensors_operations.py | 370 -- .../security/aio/operations/_operations.py | 2 +- .../aio/operations/_pricings_operations.py | 6 +- ...atory_compliance_assessments_operations.py | 4 +- ...gulatory_compliance_controls_operations.py | 4 +- ...ulatory_compliance_standards_operations.py | 4 +- ...re_score_control_definitions_operations.py | 4 +- .../_secure_score_controls_operations.py | 4 +- .../operations/_secure_scores_operations.py | 4 +- .../_security_contacts_operations.py | 10 +- .../_security_solutions_operations.py | 4 +- ...ity_solutions_reference_data_operations.py | 4 +- ...ver_vulnerability_assessment_operations.py | 113 +- .../aio/operations/_settings_operations.py | 24 +- ...py => _software_inventories_operations.py} | 230 +- ...ty_assessment_baseline_rules_operations.py | 10 +- ...lity_assessment_scan_results_operations.py | 4 +- ...lnerability_assessment_scans_operations.py | 4 +- .../operations/_sub_assessments_operations.py | 18 +- .../aio/operations/_tasks_operations.py | 22 +- .../aio/operations/_topology_operations.py | 6 +- .../_workspace_settings_operations.py | 10 +- .../azure/mgmt/security/models/__init__.py | 217 +- .../azure/mgmt/security/models/_models.py | 4132 ++++++---------- .../azure/mgmt/security/models/_models_py3.py | 4400 +++++++---------- .../security/models/_security_center_enums.py | 548 +- .../mgmt/security/operations/__init__.py | 34 +- ...daptive_application_controls_operations.py | 10 +- ..._adaptive_network_hardenings_operations.py | 5 +- .../security/operations/_alerts_operations.py | 184 +- .../operations/_assessments_operations.py | 4 +- .../_compliance_results_operations.py | 4 +- .../operations/_compliances_operations.py | 8 +- .../security/operations/_device_operations.py | 103 - .../operations/_devices_for_hub_operations.py | 131 - .../_devices_for_subscription_operations.py | 128 - ...ormation_protection_policies_operations.py | 20 +- ...s.py => _ingestion_settings_operations.py} | 221 +- .../operations/_iot_alert_types_operations.py | 275 -- .../operations/_iot_alerts_operations.py | 383 -- .../_iot_recommendation_types_operations.py | 275 -- .../operations/_iot_sensors_operations.py | 461 -- .../operations/_iot_sites_operations.py | 270 - .../_on_premise_iot_sensors_operations.py | 380 -- ...ver_vulnerability_assessment_operations.py | 106 +- .../operations/_settings_operations.py | 18 +- ...py => _software_inventories_operations.py} | 225 +- .../operations/_sub_assessments_operations.py | 12 +- .../security/operations/_tasks_operations.py | 8 +- sdk/security/azure-mgmt-security/setup.py | 2 +- shared_requirements.txt | 1 + 91 files changed, 5018 insertions(+), 11478 deletions(-) create mode 100644 sdk/security/azure-mgmt-security/_meta.json create mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/_metadata.json delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_device_operations.py delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_devices_for_hub_operations.py delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_devices_for_subscription_operations.py rename sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/{_iot_defender_settings_operations.py => _ingestion_settings_operations.py} (60%) delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_alert_types_operations.py delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_alerts_operations.py delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_recommendation_types_operations.py delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_sensors_operations.py delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_sites_operations.py delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_on_premise_iot_sensors_operations.py rename sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/{_iot_recommendations_operations.py => _software_inventories_operations.py} (53%) delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_device_operations.py delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_devices_for_hub_operations.py delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_devices_for_subscription_operations.py rename sdk/security/azure-mgmt-security/azure/mgmt/security/operations/{_iot_defender_settings_operations.py => _ingestion_settings_operations.py} (61%) delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_alert_types_operations.py delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_alerts_operations.py delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_recommendation_types_operations.py delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_sensors_operations.py delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_sites_operations.py delete mode 100644 sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_on_premise_iot_sensors_operations.py rename sdk/security/azure-mgmt-security/azure/mgmt/security/operations/{_iot_recommendations_operations.py => _software_inventories_operations.py} (53%) diff --git a/sdk/security/azure-mgmt-security/CHANGELOG.md b/sdk/security/azure-mgmt-security/CHANGELOG.md index fa32449ab93c..be0e6cb645bd 100644 --- a/sdk/security/azure-mgmt-security/CHANGELOG.md +++ b/sdk/security/azure-mgmt-security/CHANGELOG.md @@ -1,5 +1,51 @@ # Release History +## 2.0.0b1 (2021-08-10) + +**Features** + + - Model SecurityAssessmentMetadata has a new parameter categories + - Model SecurityAssessmentMetadataProperties has a new parameter categories + - Model IoTSecuritySolutionModel has a new parameter system_data + - Model IoTSecuritySolutionModel has a new parameter additional_workspaces + - Added operation ServerVulnerabilityAssessmentOperations.begin_delete + - Added operation AlertsOperations.list_resource_group_level_by_region + - Added operation AlertsOperations.get_resource_group_level + - Added operation AlertsOperations.update_subscription_level_state_to_dismiss + - Added operation AlertsOperations.update_resource_group_level_state_to_dismiss + - Added operation AlertsOperations.update_resource_group_level_state_to_activate + - Added operation AlertsOperations.get_subscription_level + - Added operation AlertsOperations.update_subscription_level_state_to_activate + - Added operation AlertsOperations.list_subscription_level_by_region + - Added operation AlertsOperations.begin_simulate + - Added operation group IngestionSettingsOperations + - Added operation group SoftwareInventoriesOperations + +**Breaking changes** + + - Model SecurityAssessmentMetadata no longer has parameter category + - Model SecurityAssessmentMetadataProperties no longer has parameter category + - Removed operation ServerVulnerabilityAssessmentOperations.delete + - Removed operation AlertsOperations.update_resource_group_level_alert_state_to_reactivate + - Removed operation AlertsOperations.get_resource_group_level_alerts + - Removed operation AlertsOperations.update_subscription_level_alert_state_to_dismiss + - Removed operation AlertsOperations.get_subscription_level_alert + - Removed operation AlertsOperations.update_resource_group_level_alert_state_to_dismiss + - Removed operation AlertsOperations.list_subscription_level_alerts_by_region + - Removed operation AlertsOperations.update_subscription_level_alert_state_to_reactivate + - Removed operation AlertsOperations.list_resource_group_level_alerts_by_region + - Removed operation group OnPremiseIotSensorsOperations + - Removed operation group IotRecommendationsOperations + - Removed operation group IotSensorsOperations + - Removed operation group DeviceOperations + - Removed operation group IotRecommendationTypesOperations + - Removed operation group DevicesForHubOperations + - Removed operation group IotDefenderSettingsOperations + - Removed operation group DevicesForSubscriptionOperations + - Removed operation group IotSitesOperations + - Removed operation group IotAlertTypesOperations + - Removed operation group IotAlertsOperations + ## 1.0.0 (2020-12-15) **Bugfixes** diff --git a/sdk/security/azure-mgmt-security/MANIFEST.in b/sdk/security/azure-mgmt-security/MANIFEST.in index a3cb07df8765..3a9b6517412b 100644 --- a/sdk/security/azure-mgmt-security/MANIFEST.in +++ b/sdk/security/azure-mgmt-security/MANIFEST.in @@ -1,3 +1,4 @@ +include _meta.json recursive-include tests *.py *.yaml include *.md include azure/__init__.py diff --git a/sdk/security/azure-mgmt-security/_meta.json b/sdk/security/azure-mgmt-security/_meta.json new file mode 100644 index 000000000000..4fcd76c66d92 --- /dev/null +++ b/sdk/security/azure-mgmt-security/_meta.json @@ -0,0 +1,11 @@ +{ + "autorest": "3.4.5", + "use": [ + "@autorest/python@5.8.4", + "@autorest/modelerfour@4.19.2" + ], + "commit": "a8719243647b7c6d06ed287483d788808de7ecab", + "repository_url": "https://github.com/Azure/azure-rest-api-specs", + "autorest_command": "autorest specification/security/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.8.4 --use=@autorest/modelerfour@4.19.2 --version=3.4.5", + "readme": "specification/security/resource-manager/readme.md" +} \ No newline at end of file diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/_metadata.json b/sdk/security/azure-mgmt-security/azure/mgmt/security/_metadata.json new file mode 100644 index 000000000000..57c07b73f3a8 --- /dev/null +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/_metadata.json @@ -0,0 +1,159 @@ +{ + "chosen_version": "", + "total_api_version_list": ["2015-06-01-preview", "2017-08-01", "2017-08-01-preview", "2018-06-01", "2019-01-01", "2019-01-01-preview", "2019-08-01", "2020-01-01", "2020-01-01-preview", "2020-07-01-preview", "2021-01-01", "2021-01-15-preview", "2021-05-01-preview", "2021-07-01"], + "client": { + "name": "SecurityCenter", + "filename": "_security_center", + "description": "API spec for Microsoft.Security (Azure Security Center) resource provider.", + "base_url": "\u0027https://management.azure.com\u0027", + "custom_base_url": null, + "azure_arm": true, + "has_lro_operations": true, + "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\": [\"SecurityCenterConfiguration\"]}}, \"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\": [\"SecurityCenterConfiguration\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Optional\"]}, \"azurecore\": {\"azure.core.pipeline.transport\": [\"AsyncHttpResponse\", \"HttpRequest\"]}}}" + }, + "global_parameters": { + "sync": { + "credential": { + "signature": "credential, # type: \"TokenCredential\"", + "description": "Credential needed for the client to connect to Azure.", + "docstring_type": "~azure.core.credentials.TokenCredential", + "required": true + }, + "subscription_id": { + "signature": "subscription_id, # type: str", + "description": "Azure subscription ID.", + "docstring_type": "str", + "required": true + }, + "asc_location": { + "signature": "asc_location, # type: str", + "description": "The location where ASC stores the data of the subscription. can be retrieved from Get locations.", + "docstring_type": "str", + "required": true + } + }, + "async": { + "credential": { + "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: str,", + "description": "Azure subscription ID.", + "docstring_type": "str", + "required": true + }, + "asc_location": { + "signature": "asc_location: str,", + "description": "The location where ASC stores the data of the subscription. can be retrieved from Get locations.", + "docstring_type": "str", + "required": true + } + }, + "constant": { + }, + "call": "credential, subscription_id, asc_location", + "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, + "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": { + "compliance_results": "ComplianceResultsOperations", + "pricings": "PricingsOperations", + "advanced_threat_protection": "AdvancedThreatProtectionOperations", + "device_security_groups": "DeviceSecurityGroupsOperations", + "iot_security_solution": "IotSecuritySolutionOperations", + "iot_security_solution_analytics": "IotSecuritySolutionAnalyticsOperations", + "iot_security_solutions_analytics_aggregated_alert": "IotSecuritySolutionsAnalyticsAggregatedAlertOperations", + "iot_security_solutions_analytics_recommendation": "IotSecuritySolutionsAnalyticsRecommendationOperations", + "locations": "LocationsOperations", + "operations": "Operations", + "tasks": "TasksOperations", + "auto_provisioning_settings": "AutoProvisioningSettingsOperations", + "compliances": "CompliancesOperations", + "information_protection_policies": "InformationProtectionPoliciesOperations", + "security_contacts": "SecurityContactsOperations", + "workspace_settings": "WorkspaceSettingsOperations", + "regulatory_compliance_standards": "RegulatoryComplianceStandardsOperations", + "regulatory_compliance_controls": "RegulatoryComplianceControlsOperations", + "regulatory_compliance_assessments": "RegulatoryComplianceAssessmentsOperations", + "sub_assessments": "SubAssessmentsOperations", + "automations": "AutomationsOperations", + "alerts_suppression_rules": "AlertsSuppressionRulesOperations", + "server_vulnerability_assessment": "ServerVulnerabilityAssessmentOperations", + "assessments_metadata": "AssessmentsMetadataOperations", + "assessments": "AssessmentsOperations", + "adaptive_application_controls": "AdaptiveApplicationControlsOperations", + "adaptive_network_hardenings": "AdaptiveNetworkHardeningsOperations", + "allowed_connections": "AllowedConnectionsOperations", + "topology": "TopologyOperations", + "jit_network_access_policies": "JitNetworkAccessPoliciesOperations", + "discovered_security_solutions": "DiscoveredSecuritySolutionsOperations", + "security_solutions_reference_data": "SecuritySolutionsReferenceDataOperations", + "external_security_solutions": "ExternalSecuritySolutionsOperations", + "secure_scores": "SecureScoresOperations", + "secure_score_controls": "SecureScoreControlsOperations", + "secure_score_control_definitions": "SecureScoreControlDefinitionsOperations", + "security_solutions": "SecuritySolutionsOperations", + "connectors": "ConnectorsOperations", + "sql_vulnerability_assessment_scans": "SqlVulnerabilityAssessmentScansOperations", + "sql_vulnerability_assessment_scan_results": "SqlVulnerabilityAssessmentScanResultsOperations", + "sql_vulnerability_assessment_baseline_rules": "SqlVulnerabilityAssessmentBaselineRulesOperations", + "alerts": "AlertsOperations", + "settings": "SettingsOperations", + "ingestion_settings": "IngestionSettingsOperations", + "software_inventories": "SoftwareInventoriesOperations" + } +} \ No newline at end of file diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/_security_center.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/_security_center.py index 4195f5c364a8..0c411e391bbb 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/_security_center.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/_security_center.py @@ -16,21 +16,17 @@ from typing import Any, Optional from azure.core.credentials import TokenCredential + from azure.core.pipeline.transport import HttpRequest, HttpResponse from ._configuration import SecurityCenterConfiguration from .operations import ComplianceResultsOperations from .operations import PricingsOperations -from .operations import SettingsOperations from .operations import AdvancedThreatProtectionOperations from .operations import DeviceSecurityGroupsOperations from .operations import IotSecuritySolutionOperations from .operations import IotSecuritySolutionAnalyticsOperations from .operations import IotSecuritySolutionsAnalyticsAggregatedAlertOperations from .operations import IotSecuritySolutionsAnalyticsRecommendationOperations -from .operations import IotAlertTypesOperations -from .operations import IotAlertsOperations -from .operations import IotRecommendationTypesOperations -from .operations import IotRecommendationsOperations from .operations import LocationsOperations from .operations import Operations from .operations import TasksOperations @@ -52,7 +48,6 @@ from .operations import AdaptiveNetworkHardeningsOperations from .operations import AllowedConnectionsOperations from .operations import TopologyOperations -from .operations import AlertsOperations from .operations import JitNetworkAccessPoliciesOperations from .operations import DiscoveredSecuritySolutionsOperations from .operations import SecuritySolutionsReferenceDataOperations @@ -65,13 +60,10 @@ from .operations import SqlVulnerabilityAssessmentScansOperations from .operations import SqlVulnerabilityAssessmentScanResultsOperations from .operations import SqlVulnerabilityAssessmentBaselineRulesOperations -from .operations import IotDefenderSettingsOperations -from .operations import IotSensorsOperations -from .operations import DevicesForSubscriptionOperations -from .operations import DevicesForHubOperations -from .operations import DeviceOperations -from .operations import OnPremiseIotSensorsOperations -from .operations import IotSitesOperations +from .operations import AlertsOperations +from .operations import SettingsOperations +from .operations import IngestionSettingsOperations +from .operations import SoftwareInventoriesOperations from . import models @@ -82,8 +74,6 @@ class SecurityCenter(object): :vartype compliance_results: azure.mgmt.security.operations.ComplianceResultsOperations :ivar pricings: PricingsOperations operations :vartype pricings: azure.mgmt.security.operations.PricingsOperations - :ivar settings: SettingsOperations operations - :vartype settings: azure.mgmt.security.operations.SettingsOperations :ivar advanced_threat_protection: AdvancedThreatProtectionOperations operations :vartype advanced_threat_protection: azure.mgmt.security.operations.AdvancedThreatProtectionOperations :ivar device_security_groups: DeviceSecurityGroupsOperations operations @@ -96,14 +86,6 @@ class SecurityCenter(object): :vartype iot_security_solutions_analytics_aggregated_alert: azure.mgmt.security.operations.IotSecuritySolutionsAnalyticsAggregatedAlertOperations :ivar iot_security_solutions_analytics_recommendation: IotSecuritySolutionsAnalyticsRecommendationOperations operations :vartype iot_security_solutions_analytics_recommendation: azure.mgmt.security.operations.IotSecuritySolutionsAnalyticsRecommendationOperations - :ivar iot_alert_types: IotAlertTypesOperations operations - :vartype iot_alert_types: azure.mgmt.security.operations.IotAlertTypesOperations - :ivar iot_alerts: IotAlertsOperations operations - :vartype iot_alerts: azure.mgmt.security.operations.IotAlertsOperations - :ivar iot_recommendation_types: IotRecommendationTypesOperations operations - :vartype iot_recommendation_types: azure.mgmt.security.operations.IotRecommendationTypesOperations - :ivar iot_recommendations: IotRecommendationsOperations operations - :vartype iot_recommendations: azure.mgmt.security.operations.IotRecommendationsOperations :ivar locations: LocationsOperations operations :vartype locations: azure.mgmt.security.operations.LocationsOperations :ivar operations: Operations operations @@ -146,8 +128,6 @@ class SecurityCenter(object): :vartype allowed_connections: azure.mgmt.security.operations.AllowedConnectionsOperations :ivar topology: TopologyOperations operations :vartype topology: azure.mgmt.security.operations.TopologyOperations - :ivar alerts: AlertsOperations operations - :vartype alerts: azure.mgmt.security.operations.AlertsOperations :ivar jit_network_access_policies: JitNetworkAccessPoliciesOperations operations :vartype jit_network_access_policies: azure.mgmt.security.operations.JitNetworkAccessPoliciesOperations :ivar discovered_security_solutions: DiscoveredSecuritySolutionsOperations operations @@ -172,20 +152,14 @@ class SecurityCenter(object): :vartype sql_vulnerability_assessment_scan_results: azure.mgmt.security.operations.SqlVulnerabilityAssessmentScanResultsOperations :ivar sql_vulnerability_assessment_baseline_rules: SqlVulnerabilityAssessmentBaselineRulesOperations operations :vartype sql_vulnerability_assessment_baseline_rules: azure.mgmt.security.operations.SqlVulnerabilityAssessmentBaselineRulesOperations - :ivar iot_defender_settings: IotDefenderSettingsOperations operations - :vartype iot_defender_settings: azure.mgmt.security.operations.IotDefenderSettingsOperations - :ivar iot_sensors: IotSensorsOperations operations - :vartype iot_sensors: azure.mgmt.security.operations.IotSensorsOperations - :ivar devices_for_subscription: DevicesForSubscriptionOperations operations - :vartype devices_for_subscription: azure.mgmt.security.operations.DevicesForSubscriptionOperations - :ivar devices_for_hub: DevicesForHubOperations operations - :vartype devices_for_hub: azure.mgmt.security.operations.DevicesForHubOperations - :ivar device: DeviceOperations operations - :vartype device: azure.mgmt.security.operations.DeviceOperations - :ivar on_premise_iot_sensors: OnPremiseIotSensorsOperations operations - :vartype on_premise_iot_sensors: azure.mgmt.security.operations.OnPremiseIotSensorsOperations - :ivar iot_sites: IotSitesOperations operations - :vartype iot_sites: azure.mgmt.security.operations.IotSitesOperations + :ivar alerts: AlertsOperations operations + :vartype alerts: azure.mgmt.security.operations.AlertsOperations + :ivar settings: SettingsOperations operations + :vartype settings: azure.mgmt.security.operations.SettingsOperations + :ivar ingestion_settings: IngestionSettingsOperations operations + :vartype ingestion_settings: azure.mgmt.security.operations.IngestionSettingsOperations + :ivar software_inventories: SoftwareInventoriesOperations operations + :vartype software_inventories: azure.mgmt.security.operations.SoftwareInventoriesOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials.TokenCredential :param subscription_id: Azure subscription ID. @@ -219,8 +193,6 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.pricings = PricingsOperations( self._client, self._config, self._serialize, self._deserialize) - self.settings = SettingsOperations( - self._client, self._config, self._serialize, self._deserialize) self.advanced_threat_protection = AdvancedThreatProtectionOperations( self._client, self._config, self._serialize, self._deserialize) self.device_security_groups = DeviceSecurityGroupsOperations( @@ -233,14 +205,6 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.iot_security_solutions_analytics_recommendation = IotSecuritySolutionsAnalyticsRecommendationOperations( self._client, self._config, self._serialize, self._deserialize) - self.iot_alert_types = IotAlertTypesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.iot_alerts = IotAlertsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.iot_recommendation_types = IotRecommendationTypesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.iot_recommendations = IotRecommendationsOperations( - self._client, self._config, self._serialize, self._deserialize) self.locations = LocationsOperations( self._client, self._config, self._serialize, self._deserialize) self.operations = Operations( @@ -283,8 +247,6 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.topology = TopologyOperations( self._client, self._config, self._serialize, self._deserialize) - self.alerts = AlertsOperations( - self._client, self._config, self._serialize, self._deserialize) self.jit_network_access_policies = JitNetworkAccessPoliciesOperations( self._client, self._config, self._serialize, self._deserialize) self.discovered_security_solutions = DiscoveredSecuritySolutionsOperations( @@ -309,21 +271,34 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.sql_vulnerability_assessment_baseline_rules = SqlVulnerabilityAssessmentBaselineRulesOperations( self._client, self._config, self._serialize, self._deserialize) - self.iot_defender_settings = IotDefenderSettingsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.iot_sensors = IotSensorsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.devices_for_subscription = DevicesForSubscriptionOperations( - self._client, self._config, self._serialize, self._deserialize) - self.devices_for_hub = DevicesForHubOperations( + self.alerts = AlertsOperations( self._client, self._config, self._serialize, self._deserialize) - self.device = DeviceOperations( + self.settings = SettingsOperations( self._client, self._config, self._serialize, self._deserialize) - self.on_premise_iot_sensors = OnPremiseIotSensorsOperations( + self.ingestion_settings = IngestionSettingsOperations( self._client, self._config, self._serialize, self._deserialize) - self.iot_sites = IotSitesOperations( + self.software_inventories = SoftwareInventoriesOperations( 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), + } + 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 self._client.close() diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/_version.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/_version.py index c47f66669f1b..e32dc6ec4218 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/_version.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "1.0.0" +VERSION = "2.0.0b1" diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/_security_center.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/_security_center.py index 9315ad04c5ba..b238b910a8bb 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/_security_center.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/_security_center.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 @@ -18,17 +19,12 @@ from ._configuration import SecurityCenterConfiguration from .operations import ComplianceResultsOperations from .operations import PricingsOperations -from .operations import SettingsOperations from .operations import AdvancedThreatProtectionOperations from .operations import DeviceSecurityGroupsOperations from .operations import IotSecuritySolutionOperations from .operations import IotSecuritySolutionAnalyticsOperations from .operations import IotSecuritySolutionsAnalyticsAggregatedAlertOperations from .operations import IotSecuritySolutionsAnalyticsRecommendationOperations -from .operations import IotAlertTypesOperations -from .operations import IotAlertsOperations -from .operations import IotRecommendationTypesOperations -from .operations import IotRecommendationsOperations from .operations import LocationsOperations from .operations import Operations from .operations import TasksOperations @@ -50,7 +46,6 @@ from .operations import AdaptiveNetworkHardeningsOperations from .operations import AllowedConnectionsOperations from .operations import TopologyOperations -from .operations import AlertsOperations from .operations import JitNetworkAccessPoliciesOperations from .operations import DiscoveredSecuritySolutionsOperations from .operations import SecuritySolutionsReferenceDataOperations @@ -63,13 +58,10 @@ from .operations import SqlVulnerabilityAssessmentScansOperations from .operations import SqlVulnerabilityAssessmentScanResultsOperations from .operations import SqlVulnerabilityAssessmentBaselineRulesOperations -from .operations import IotDefenderSettingsOperations -from .operations import IotSensorsOperations -from .operations import DevicesForSubscriptionOperations -from .operations import DevicesForHubOperations -from .operations import DeviceOperations -from .operations import OnPremiseIotSensorsOperations -from .operations import IotSitesOperations +from .operations import AlertsOperations +from .operations import SettingsOperations +from .operations import IngestionSettingsOperations +from .operations import SoftwareInventoriesOperations from .. import models @@ -80,8 +72,6 @@ class SecurityCenter(object): :vartype compliance_results: azure.mgmt.security.aio.operations.ComplianceResultsOperations :ivar pricings: PricingsOperations operations :vartype pricings: azure.mgmt.security.aio.operations.PricingsOperations - :ivar settings: SettingsOperations operations - :vartype settings: azure.mgmt.security.aio.operations.SettingsOperations :ivar advanced_threat_protection: AdvancedThreatProtectionOperations operations :vartype advanced_threat_protection: azure.mgmt.security.aio.operations.AdvancedThreatProtectionOperations :ivar device_security_groups: DeviceSecurityGroupsOperations operations @@ -94,14 +84,6 @@ class SecurityCenter(object): :vartype iot_security_solutions_analytics_aggregated_alert: azure.mgmt.security.aio.operations.IotSecuritySolutionsAnalyticsAggregatedAlertOperations :ivar iot_security_solutions_analytics_recommendation: IotSecuritySolutionsAnalyticsRecommendationOperations operations :vartype iot_security_solutions_analytics_recommendation: azure.mgmt.security.aio.operations.IotSecuritySolutionsAnalyticsRecommendationOperations - :ivar iot_alert_types: IotAlertTypesOperations operations - :vartype iot_alert_types: azure.mgmt.security.aio.operations.IotAlertTypesOperations - :ivar iot_alerts: IotAlertsOperations operations - :vartype iot_alerts: azure.mgmt.security.aio.operations.IotAlertsOperations - :ivar iot_recommendation_types: IotRecommendationTypesOperations operations - :vartype iot_recommendation_types: azure.mgmt.security.aio.operations.IotRecommendationTypesOperations - :ivar iot_recommendations: IotRecommendationsOperations operations - :vartype iot_recommendations: azure.mgmt.security.aio.operations.IotRecommendationsOperations :ivar locations: LocationsOperations operations :vartype locations: azure.mgmt.security.aio.operations.LocationsOperations :ivar operations: Operations operations @@ -144,8 +126,6 @@ class SecurityCenter(object): :vartype allowed_connections: azure.mgmt.security.aio.operations.AllowedConnectionsOperations :ivar topology: TopologyOperations operations :vartype topology: azure.mgmt.security.aio.operations.TopologyOperations - :ivar alerts: AlertsOperations operations - :vartype alerts: azure.mgmt.security.aio.operations.AlertsOperations :ivar jit_network_access_policies: JitNetworkAccessPoliciesOperations operations :vartype jit_network_access_policies: azure.mgmt.security.aio.operations.JitNetworkAccessPoliciesOperations :ivar discovered_security_solutions: DiscoveredSecuritySolutionsOperations operations @@ -170,20 +150,14 @@ class SecurityCenter(object): :vartype sql_vulnerability_assessment_scan_results: azure.mgmt.security.aio.operations.SqlVulnerabilityAssessmentScanResultsOperations :ivar sql_vulnerability_assessment_baseline_rules: SqlVulnerabilityAssessmentBaselineRulesOperations operations :vartype sql_vulnerability_assessment_baseline_rules: azure.mgmt.security.aio.operations.SqlVulnerabilityAssessmentBaselineRulesOperations - :ivar iot_defender_settings: IotDefenderSettingsOperations operations - :vartype iot_defender_settings: azure.mgmt.security.aio.operations.IotDefenderSettingsOperations - :ivar iot_sensors: IotSensorsOperations operations - :vartype iot_sensors: azure.mgmt.security.aio.operations.IotSensorsOperations - :ivar devices_for_subscription: DevicesForSubscriptionOperations operations - :vartype devices_for_subscription: azure.mgmt.security.aio.operations.DevicesForSubscriptionOperations - :ivar devices_for_hub: DevicesForHubOperations operations - :vartype devices_for_hub: azure.mgmt.security.aio.operations.DevicesForHubOperations - :ivar device: DeviceOperations operations - :vartype device: azure.mgmt.security.aio.operations.DeviceOperations - :ivar on_premise_iot_sensors: OnPremiseIotSensorsOperations operations - :vartype on_premise_iot_sensors: azure.mgmt.security.aio.operations.OnPremiseIotSensorsOperations - :ivar iot_sites: IotSitesOperations operations - :vartype iot_sites: azure.mgmt.security.aio.operations.IotSitesOperations + :ivar alerts: AlertsOperations operations + :vartype alerts: azure.mgmt.security.aio.operations.AlertsOperations + :ivar settings: SettingsOperations operations + :vartype settings: azure.mgmt.security.aio.operations.SettingsOperations + :ivar ingestion_settings: IngestionSettingsOperations operations + :vartype ingestion_settings: azure.mgmt.security.aio.operations.IngestionSettingsOperations + :ivar software_inventories: SoftwareInventoriesOperations operations + :vartype software_inventories: azure.mgmt.security.aio.operations.SoftwareInventoriesOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials_async.AsyncTokenCredential :param subscription_id: Azure subscription ID. @@ -216,8 +190,6 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.pricings = PricingsOperations( self._client, self._config, self._serialize, self._deserialize) - self.settings = SettingsOperations( - self._client, self._config, self._serialize, self._deserialize) self.advanced_threat_protection = AdvancedThreatProtectionOperations( self._client, self._config, self._serialize, self._deserialize) self.device_security_groups = DeviceSecurityGroupsOperations( @@ -230,14 +202,6 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.iot_security_solutions_analytics_recommendation = IotSecuritySolutionsAnalyticsRecommendationOperations( self._client, self._config, self._serialize, self._deserialize) - self.iot_alert_types = IotAlertTypesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.iot_alerts = IotAlertsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.iot_recommendation_types = IotRecommendationTypesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.iot_recommendations = IotRecommendationsOperations( - self._client, self._config, self._serialize, self._deserialize) self.locations = LocationsOperations( self._client, self._config, self._serialize, self._deserialize) self.operations = Operations( @@ -280,8 +244,6 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.topology = TopologyOperations( self._client, self._config, self._serialize, self._deserialize) - self.alerts = AlertsOperations( - self._client, self._config, self._serialize, self._deserialize) self.jit_network_access_policies = JitNetworkAccessPoliciesOperations( self._client, self._config, self._serialize, self._deserialize) self.discovered_security_solutions = DiscoveredSecuritySolutionsOperations( @@ -306,21 +268,33 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.sql_vulnerability_assessment_baseline_rules = SqlVulnerabilityAssessmentBaselineRulesOperations( self._client, self._config, self._serialize, self._deserialize) - self.iot_defender_settings = IotDefenderSettingsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.iot_sensors = IotSensorsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.devices_for_subscription = DevicesForSubscriptionOperations( - self._client, self._config, self._serialize, self._deserialize) - self.devices_for_hub = DevicesForHubOperations( + self.alerts = AlertsOperations( self._client, self._config, self._serialize, self._deserialize) - self.device = DeviceOperations( + self.settings = SettingsOperations( self._client, self._config, self._serialize, self._deserialize) - self.on_premise_iot_sensors = OnPremiseIotSensorsOperations( + self.ingestion_settings = IngestionSettingsOperations( self._client, self._config, self._serialize, self._deserialize) - self.iot_sites = IotSitesOperations( + self.software_inventories = SoftwareInventoriesOperations( 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), + } + 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/security/azure-mgmt-security/azure/mgmt/security/aio/operations/__init__.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/__init__.py index 1a08490429ea..65df4fa5ef35 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/__init__.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/__init__.py @@ -8,17 +8,12 @@ from ._compliance_results_operations import ComplianceResultsOperations from ._pricings_operations import PricingsOperations -from ._settings_operations import SettingsOperations from ._advanced_threat_protection_operations import AdvancedThreatProtectionOperations from ._device_security_groups_operations import DeviceSecurityGroupsOperations from ._iot_security_solution_operations import IotSecuritySolutionOperations from ._iot_security_solution_analytics_operations import IotSecuritySolutionAnalyticsOperations from ._iot_security_solutions_analytics_aggregated_alert_operations import IotSecuritySolutionsAnalyticsAggregatedAlertOperations from ._iot_security_solutions_analytics_recommendation_operations import IotSecuritySolutionsAnalyticsRecommendationOperations -from ._iot_alert_types_operations import IotAlertTypesOperations -from ._iot_alerts_operations import IotAlertsOperations -from ._iot_recommendation_types_operations import IotRecommendationTypesOperations -from ._iot_recommendations_operations import IotRecommendationsOperations from ._locations_operations import LocationsOperations from ._operations import Operations from ._tasks_operations import TasksOperations @@ -40,7 +35,6 @@ from ._adaptive_network_hardenings_operations import AdaptiveNetworkHardeningsOperations from ._allowed_connections_operations import AllowedConnectionsOperations from ._topology_operations import TopologyOperations -from ._alerts_operations import AlertsOperations from ._jit_network_access_policies_operations import JitNetworkAccessPoliciesOperations from ._discovered_security_solutions_operations import DiscoveredSecuritySolutionsOperations from ._security_solutions_reference_data_operations import SecuritySolutionsReferenceDataOperations @@ -53,28 +47,20 @@ from ._sql_vulnerability_assessment_scans_operations import SqlVulnerabilityAssessmentScansOperations from ._sql_vulnerability_assessment_scan_results_operations import SqlVulnerabilityAssessmentScanResultsOperations from ._sql_vulnerability_assessment_baseline_rules_operations import SqlVulnerabilityAssessmentBaselineRulesOperations -from ._iot_defender_settings_operations import IotDefenderSettingsOperations -from ._iot_sensors_operations import IotSensorsOperations -from ._devices_for_subscription_operations import DevicesForSubscriptionOperations -from ._devices_for_hub_operations import DevicesForHubOperations -from ._device_operations import DeviceOperations -from ._on_premise_iot_sensors_operations import OnPremiseIotSensorsOperations -from ._iot_sites_operations import IotSitesOperations +from ._alerts_operations import AlertsOperations +from ._settings_operations import SettingsOperations +from ._ingestion_settings_operations import IngestionSettingsOperations +from ._software_inventories_operations import SoftwareInventoriesOperations __all__ = [ 'ComplianceResultsOperations', 'PricingsOperations', - 'SettingsOperations', 'AdvancedThreatProtectionOperations', 'DeviceSecurityGroupsOperations', 'IotSecuritySolutionOperations', 'IotSecuritySolutionAnalyticsOperations', 'IotSecuritySolutionsAnalyticsAggregatedAlertOperations', 'IotSecuritySolutionsAnalyticsRecommendationOperations', - 'IotAlertTypesOperations', - 'IotAlertsOperations', - 'IotRecommendationTypesOperations', - 'IotRecommendationsOperations', 'LocationsOperations', 'Operations', 'TasksOperations', @@ -96,7 +82,6 @@ 'AdaptiveNetworkHardeningsOperations', 'AllowedConnectionsOperations', 'TopologyOperations', - 'AlertsOperations', 'JitNetworkAccessPoliciesOperations', 'DiscoveredSecuritySolutionsOperations', 'SecuritySolutionsReferenceDataOperations', @@ -109,11 +94,8 @@ 'SqlVulnerabilityAssessmentScansOperations', 'SqlVulnerabilityAssessmentScanResultsOperations', 'SqlVulnerabilityAssessmentBaselineRulesOperations', - 'IotDefenderSettingsOperations', - 'IotSensorsOperations', - 'DevicesForSubscriptionOperations', - 'DevicesForHubOperations', - 'DeviceOperations', - 'OnPremiseIotSensorsOperations', - 'IotSitesOperations', + 'AlertsOperations', + 'SettingsOperations', + 'IngestionSettingsOperations', + 'SoftwareInventoriesOperations', ] diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_adaptive_application_controls_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_adaptive_application_controls_operations.py index 52e5f1e90623..14db3cdfd414 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_adaptive_application_controls_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_adaptive_application_controls_operations.py @@ -5,7 +5,7 @@ # 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, Callable, Dict, Generic, Optional, TypeVar, Union +from typing import Any, Callable, Dict, Generic, Optional, TypeVar import warnings from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error @@ -42,16 +42,16 @@ def __init__(self, client, config, serializer, deserializer) -> None: async def list( self, - include_path_recommendations: Optional[Union[bool, "_models.Enum37"]] = None, - summary: Optional[Union[bool, "_models.Enum38"]] = None, - **kwargs + include_path_recommendations: Optional[bool] = None, + summary: Optional[bool] = None, + **kwargs: Any ) -> "_models.AdaptiveApplicationControlGroups": """Gets a list of application control machine groups for the subscription. :param include_path_recommendations: Include the policy rules. - :type include_path_recommendations: str or ~azure.mgmt.security.models.Enum37 + :type include_path_recommendations: bool :param summary: Return output in a summarized form. - :type summary: str or ~azure.mgmt.security.models.Enum38 + :type summary: bool :keyword callable cls: A custom type or function that will be passed the direct response :return: AdaptiveApplicationControlGroups, or the result of cls(response) :rtype: ~azure.mgmt.security.models.AdaptiveApplicationControlGroups @@ -103,7 +103,7 @@ async def list( async def get( self, group_name: str, - **kwargs + **kwargs: Any ) -> "_models.AdaptiveApplicationControlGroup": """Gets an application control VM/server group. @@ -159,7 +159,7 @@ async def put( self, group_name: str, body: "_models.AdaptiveApplicationControlGroup", - **kwargs + **kwargs: Any ) -> "_models.AdaptiveApplicationControlGroup": """Update an application control machine group. @@ -221,7 +221,7 @@ async def put( async def delete( self, group_name: str, - **kwargs + **kwargs: Any ) -> None: """Delete an application control machine group. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_adaptive_network_hardenings_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_adaptive_network_hardenings_operations.py index 6ad91f7eead7..3a66706140ae 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_adaptive_network_hardenings_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_adaptive_network_hardenings_operations.py @@ -49,7 +49,7 @@ def list_by_extended_resource( resource_namespace: str, resource_type: str, resource_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.AdaptiveNetworkHardeningsList"]: """Gets a list of Adaptive Network Hardenings resources in scope of an extended resource. @@ -133,7 +133,7 @@ async def get( resource_type: str, resource_name: str, adaptive_network_hardening_resource_name: str, - **kwargs + **kwargs: Any ) -> "_models.AdaptiveNetworkHardening": """Gets a single Adaptive Network Hardening resource. @@ -206,7 +206,7 @@ async def _enforce_initial( resource_name: str, adaptive_network_hardening_resource_name: str, body: "_models.AdaptiveNetworkHardeningEnforceRequest", - **kwargs + **kwargs: Any ) -> None: cls = kwargs.pop('cls', None) # type: ClsType[None] error_map = { @@ -264,7 +264,7 @@ async def begin_enforce( resource_name: str, adaptive_network_hardening_resource_name: str, body: "_models.AdaptiveNetworkHardeningEnforceRequest", - **kwargs + **kwargs: Any ) -> AsyncLROPoller[None]: """Enforces the given rules on the NSG(s) listed in the request. @@ -284,8 +284,8 @@ async def begin_enforce( :type body: ~azure.mgmt.security.models.AdaptiveNetworkHardeningEnforceRequest :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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) @@ -318,6 +318,7 @@ def get_long_running_output(pipeline_response): if cls: return cls(pipeline_response, None, {}) + adaptive_network_hardening_enforce_action = "enforce" path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_advanced_threat_protection_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_advanced_threat_protection_operations.py index 23701ea63b7b..9e1c93fc00a1 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_advanced_threat_protection_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_advanced_threat_protection_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: async def get( self, resource_id: str, - **kwargs + **kwargs: Any ) -> "_models.AdvancedThreatProtectionSetting": """Gets the Advanced Threat Protection settings for the specified resource. @@ -99,7 +99,7 @@ async def create( self, resource_id: str, advanced_threat_protection_setting: "_models.AdvancedThreatProtectionSetting", - **kwargs + **kwargs: Any ) -> "_models.AdvancedThreatProtectionSetting": """Creates or updates the Advanced Threat Protection settings on a specified resource. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_alerts_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_alerts_operations.py index 4367b7bd2c49..4374722f99e7 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_alerts_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_alerts_operations.py @@ -5,14 +5,16 @@ # 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 +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 @@ -43,7 +45,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.AlertList"]: """List all the alerts that are associated with the subscription. @@ -57,7 +59,7 @@ def list( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" def prepare_request(next_link=None): @@ -110,7 +112,7 @@ async def get_next(next_link=None): def list_by_resource_group( self, resource_group_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.AlertList"]: """List all the alerts that are associated with the resource group. @@ -127,7 +129,7 @@ def list_by_resource_group( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" def prepare_request(next_link=None): @@ -178,9 +180,9 @@ async def get_next(next_link=None): ) list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/alerts'} # type: ignore - def list_subscription_level_alerts_by_region( + def list_subscription_level_by_region( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.AlertList"]: """List all the alerts that are associated with the subscription that are stored in a specific location. @@ -195,7 +197,7 @@ def list_subscription_level_alerts_by_region( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" def prepare_request(next_link=None): @@ -205,7 +207,7 @@ def prepare_request(next_link=None): if not next_link: # Construct URL - url = self.list_subscription_level_alerts_by_region.metadata['url'] # type: ignore + url = self.list_subscription_level_by_region.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), @@ -244,12 +246,12 @@ async def get_next(next_link=None): return AsyncItemPaged( get_next, extract_data ) - list_subscription_level_alerts_by_region.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts'} # type: ignore + list_subscription_level_by_region.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts'} # type: ignore - def list_resource_group_level_alerts_by_region( + def list_resource_group_level_by_region( self, resource_group_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.AlertList"]: """List all the alerts that are associated with the resource group that are stored in a specific location. @@ -267,7 +269,7 @@ def list_resource_group_level_alerts_by_region( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" def prepare_request(next_link=None): @@ -277,7 +279,7 @@ def prepare_request(next_link=None): if not next_link: # Construct URL - url = self.list_resource_group_level_alerts_by_region.metadata['url'] # type: ignore + url = self.list_resource_group_level_by_region.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), @@ -317,12 +319,12 @@ async def get_next(next_link=None): return AsyncItemPaged( get_next, extract_data ) - list_resource_group_level_alerts_by_region.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts'} # type: ignore + list_resource_group_level_by_region.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts'} # type: ignore - async def get_subscription_level_alert( + async def get_subscription_level( self, alert_name: str, - **kwargs + **kwargs: Any ) -> "_models.Alert": """Get an alert that is associated with a subscription. @@ -338,11 +340,11 @@ async def get_subscription_level_alert( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" # Construct URL - url = self.get_subscription_level_alert.metadata['url'] # type: ignore + url = self.get_subscription_level.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), @@ -372,13 +374,13 @@ async def get_subscription_level_alert( return cls(pipeline_response, deserialized, {}) return deserialized - get_subscription_level_alert.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}'} # type: ignore + get_subscription_level.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}'} # type: ignore - async def get_resource_group_level_alerts( + async def get_resource_group_level( self, alert_name: str, resource_group_name: str, - **kwargs + **kwargs: Any ) -> "_models.Alert": """Get an alert that is associated a resource group or a resource in a resource group. @@ -397,11 +399,11 @@ async def get_resource_group_level_alerts( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" # Construct URL - url = self.get_resource_group_level_alerts.metadata['url'] # type: ignore + url = self.get_resource_group_level.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), @@ -432,12 +434,12 @@ async def get_resource_group_level_alerts( return cls(pipeline_response, deserialized, {}) return deserialized - get_resource_group_level_alerts.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}'} # type: ignore + get_resource_group_level.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}'} # type: ignore - async def update_subscription_level_alert_state_to_dismiss( + async def update_subscription_level_state_to_dismiss( self, alert_name: str, - **kwargs + **kwargs: Any ) -> None: """Update the alert's state. @@ -453,11 +455,11 @@ async def update_subscription_level_alert_state_to_dismiss( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" # Construct URL - url = self.update_subscription_level_alert_state_to_dismiss.metadata['url'] # type: ignore + url = self.update_subscription_level_state_to_dismiss.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), @@ -484,12 +486,12 @@ async def update_subscription_level_alert_state_to_dismiss( if cls: return cls(pipeline_response, None, {}) - update_subscription_level_alert_state_to_dismiss.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/dismiss'} # type: ignore + update_subscription_level_state_to_dismiss.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/dismiss'} # type: ignore async def update_subscription_level_state_to_resolve( self, alert_name: str, - **kwargs + **kwargs: Any ) -> None: """Update the alert's state. @@ -505,7 +507,7 @@ async def update_subscription_level_state_to_resolve( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" # Construct URL @@ -538,10 +540,10 @@ async def update_subscription_level_state_to_resolve( update_subscription_level_state_to_resolve.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/resolve'} # type: ignore - async def update_subscription_level_alert_state_to_reactivate( + async def update_subscription_level_state_to_activate( self, alert_name: str, - **kwargs + **kwargs: Any ) -> None: """Update the alert's state. @@ -557,11 +559,11 @@ async def update_subscription_level_alert_state_to_reactivate( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" # Construct URL - url = self.update_subscription_level_alert_state_to_reactivate.metadata['url'] # type: ignore + url = self.update_subscription_level_state_to_activate.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), @@ -588,13 +590,13 @@ async def update_subscription_level_alert_state_to_reactivate( if cls: return cls(pipeline_response, None, {}) - update_subscription_level_alert_state_to_reactivate.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/activate'} # type: ignore + update_subscription_level_state_to_activate.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/activate'} # type: ignore async def update_resource_group_level_state_to_resolve( self, alert_name: str, resource_group_name: str, - **kwargs + **kwargs: Any ) -> None: """Update the alert's state. @@ -613,7 +615,7 @@ async def update_resource_group_level_state_to_resolve( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" # Construct URL @@ -647,11 +649,11 @@ async def update_resource_group_level_state_to_resolve( update_resource_group_level_state_to_resolve.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/resolve'} # type: ignore - async def update_resource_group_level_alert_state_to_dismiss( + async def update_resource_group_level_state_to_dismiss( self, alert_name: str, resource_group_name: str, - **kwargs + **kwargs: Any ) -> None: """Update the alert's state. @@ -670,11 +672,11 @@ async def update_resource_group_level_alert_state_to_dismiss( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" # Construct URL - url = self.update_resource_group_level_alert_state_to_dismiss.metadata['url'] # type: ignore + url = self.update_resource_group_level_state_to_dismiss.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), @@ -702,13 +704,13 @@ async def update_resource_group_level_alert_state_to_dismiss( if cls: return cls(pipeline_response, None, {}) - update_resource_group_level_alert_state_to_dismiss.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/dismiss'} # type: ignore + update_resource_group_level_state_to_dismiss.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/dismiss'} # type: ignore - async def update_resource_group_level_alert_state_to_reactivate( + async def update_resource_group_level_state_to_activate( self, alert_name: str, resource_group_name: str, - **kwargs + **kwargs: Any ) -> None: """Update the alert's state. @@ -727,11 +729,11 @@ async def update_resource_group_level_alert_state_to_reactivate( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" # Construct URL - url = self.update_resource_group_level_alert_state_to_reactivate.metadata['url'] # type: ignore + url = self.update_resource_group_level_state_to_activate.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), @@ -759,4 +761,110 @@ async def update_resource_group_level_alert_state_to_reactivate( if cls: return cls(pipeline_response, None, {}) - update_resource_group_level_alert_state_to_reactivate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/activate'} # type: ignore + update_resource_group_level_state_to_activate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/activate'} # type: ignore + + async def _simulate_initial( + self, + alert_simulator_request_body: "_models.AlertSimulatorRequestBody", + **kwargs: Any + ) -> 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-01-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._simulate_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_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['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(alert_simulator_request_body, 'AlertSimulatorRequestBody') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _simulate_initial.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/default/simulate'} # type: ignore + + async def begin_simulate( + self, + alert_simulator_request_body: "_models.AlertSimulatorRequestBody", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Simulate security alerts. + + :param alert_simulator_request_body: Alert Simulator Request Properties. + :type alert_simulator_request_body: ~azure.mgmt.security.models.AlertSimulatorRequestBody + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._simulate_initial( + alert_simulator_request_body=alert_simulator_request_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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'original-uri'}, 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_simulate.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/default/simulate'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_alerts_suppression_rules_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_alerts_suppression_rules_operations.py index 868d647f6084..24ad78f67198 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_alerts_suppression_rules_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_alerts_suppression_rules_operations.py @@ -44,7 +44,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, alert_type: Optional[str] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.AlertsSuppressionRulesList"]: """List of all the dismiss rules for the given subscription. @@ -115,7 +115,7 @@ async def get_next(next_link=None): async def get( self, alerts_suppression_rule_name: str, - **kwargs + **kwargs: Any ) -> "_models.AlertsSuppressionRule": """Get dismiss rule, with name: {alertsSuppressionRuleName}, for the given subscription. @@ -170,7 +170,7 @@ async def update( self, alerts_suppression_rule_name: str, alerts_suppression_rule: "_models.AlertsSuppressionRule", - **kwargs + **kwargs: Any ) -> "_models.AlertsSuppressionRule": """Update existing rule or create new rule if it doesn't exist. @@ -231,7 +231,7 @@ async def update( async def delete( self, alerts_suppression_rule_name: str, - **kwargs + **kwargs: Any ) -> None: """Delete dismiss alert rule for this subscription. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_allowed_connections_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_allowed_connections_operations.py index 191f105c8619..86f634a6af27 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_allowed_connections_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_allowed_connections_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.AllowedConnectionsList"]: """Gets the list of all possible traffic between resources for the subscription. @@ -109,7 +109,7 @@ async def get_next(next_link=None): def list_by_home_region( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.AllowedConnectionsList"]: """Gets the list of all possible traffic between resources for the subscription and location. @@ -178,7 +178,7 @@ async def get( self, resource_group_name: str, connection_type: Union[str, "_models.ConnectionType"], - **kwargs + **kwargs: Any ) -> "_models.AllowedConnectionsResource": """Gets the list of all possible traffic between resources for the subscription and location, based on connection type. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_assessments_metadata_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_assessments_metadata_operations.py index feef47840ea2..df9555e68ef3 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_assessments_metadata_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_assessments_metadata_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.SecurityAssessmentMetadataList"]: """Get metadata information on all assessment types. @@ -106,7 +106,7 @@ async def get_next(next_link=None): async def get( self, assessment_metadata_name: str, - **kwargs + **kwargs: Any ) -> "_models.SecurityAssessmentMetadata": """Get metadata information on an assessment type. @@ -158,7 +158,7 @@ async def get( def list_by_subscription( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.SecurityAssessmentMetadataList"]: """Get metadata information on all assessment types in a specific subscription. @@ -225,7 +225,7 @@ async def get_next(next_link=None): async def get_in_subscription( self, assessment_metadata_name: str, - **kwargs + **kwargs: Any ) -> "_models.SecurityAssessmentMetadata": """Get metadata information on an assessment type in a specific subscription. @@ -280,7 +280,7 @@ async def create_in_subscription( self, assessment_metadata_name: str, assessment_metadata: "_models.SecurityAssessmentMetadata", - **kwargs + **kwargs: Any ) -> "_models.SecurityAssessmentMetadata": """Create metadata information on an assessment type in a specific subscription. @@ -341,7 +341,7 @@ async def create_in_subscription( async def delete_in_subscription( self, assessment_metadata_name: str, - **kwargs + **kwargs: Any ) -> None: """Delete metadata information on an assessment type in a specific subscription, will cause the deletion of all the assessments of that type in that subscription. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_assessments_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_assessments_operations.py index fd307bd94f27..306648b7d29e 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_assessments_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_assessments_operations.py @@ -44,12 +44,12 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, scope: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.SecurityAssessmentList"]: """Get security assessments on all your scanned resources inside a scope. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :keyword callable cls: A custom type or function that will be passed the direct response @@ -117,7 +117,7 @@ async def get( resource_id: str, assessment_name: str, expand: Optional[Union[str, "_models.ExpandEnum"]] = None, - **kwargs + **kwargs: Any ) -> "_models.SecurityAssessment": """Get a security assessment on your scanned resource. @@ -179,7 +179,7 @@ async def create_or_update( resource_id: str, assessment_name: str, assessment: "_models.SecurityAssessment", - **kwargs + **kwargs: Any ) -> "_models.SecurityAssessment": """Create a security assessment on your resource. An assessment metadata that describes this assessment must be predefined with the same name before inserting the assessment result. @@ -248,7 +248,7 @@ async def delete( self, resource_id: str, assessment_name: str, - **kwargs + **kwargs: Any ) -> None: """Delete a security assessment on your resource. An assessment metadata that describes this assessment must be predefined with the same name before inserting the assessment result. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_auto_provisioning_settings_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_auto_provisioning_settings_operations.py index 9b83c928c128..ab252d8978e6 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_auto_provisioning_settings_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_auto_provisioning_settings_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.AutoProvisioningSettingList"]: """Exposes the auto provisioning settings of the subscriptions. @@ -110,7 +110,7 @@ async def get_next(next_link=None): async def get( self, setting_name: str, - **kwargs + **kwargs: Any ) -> "_models.AutoProvisioningSetting": """Details of a specific setting. @@ -165,7 +165,7 @@ async def create( self, setting_name: str, setting: "_models.AutoProvisioningSetting", - **kwargs + **kwargs: Any ) -> "_models.AutoProvisioningSetting": """Details of a specific setting. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_automations_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_automations_operations.py index e5bd953a9539..b2f197c45478 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_automations_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_automations_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.AutomationList"]: """Lists all the security automations in the specified subscription. Use the 'nextLink' property in the response to get the next page of security automations for the specified subscription. @@ -111,7 +111,7 @@ async def get_next(next_link=None): def list_by_resource_group( self, resource_group_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.AutomationList"]: """Lists all the security automations in the specified resource group. Use the 'nextLink' property in the response to get the next page of security automations for the specified resource group. @@ -184,7 +184,7 @@ async def get( self, resource_group_name: str, automation_name: str, - **kwargs + **kwargs: Any ) -> "_models.Automation": """Retrieves information about the model of a security automation. @@ -244,7 +244,7 @@ async def create_or_update( resource_group_name: str, automation_name: str, automation: "_models.Automation", - **kwargs + **kwargs: Any ) -> "_models.Automation": """Creates or updates a security automation. If a security automation is already created and a subsequent request is issued for the same automation id, then it will be updated. @@ -315,7 +315,7 @@ async def delete( self, resource_group_name: str, automation_name: str, - **kwargs + **kwargs: Any ) -> None: """Deletes a security automation. @@ -372,7 +372,7 @@ async def validate( resource_group_name: str, automation_name: str, automation: "_models.Automation", - **kwargs + **kwargs: Any ) -> "_models.AutomationValidationStatus": """Validates the security automation model before create or update. Any validation errors are returned to the client. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_compliance_results_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_compliance_results_operations.py index 79bca04487e6..791a6cba3736 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_compliance_results_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_compliance_results_operations.py @@ -44,12 +44,12 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, scope: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.ComplianceResultList"]: """Security compliance results in the subscription. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :keyword callable cls: A custom type or function that will be passed the direct response @@ -116,7 +116,7 @@ async def get( self, resource_id: str, compliance_result_name: str, - **kwargs + **kwargs: Any ) -> "_models.ComplianceResult": """Security Compliance Result. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_compliances_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_compliances_operations.py index a3df1a6b69d4..6e8444354d24 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_compliances_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_compliances_operations.py @@ -44,12 +44,12 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, scope: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.ComplianceList"]: """The Compliance scores of the specific management group. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :keyword callable cls: A custom type or function that will be passed the direct response @@ -116,12 +116,12 @@ async def get( self, scope: str, compliance_name: str, - **kwargs + **kwargs: Any ) -> "_models.Compliance": """Details of a specific Compliance. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :param compliance_name: name of the Compliance. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_connectors_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_connectors_operations.py index 77ec91141acd..5df7e742ad66 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_connectors_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_connectors_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.ConnectorSettingList"]: """Cloud accounts connectors of a subscription. @@ -110,7 +110,7 @@ async def get_next(next_link=None): async def get( self, connector_name: str, - **kwargs + **kwargs: Any ) -> "_models.ConnectorSetting": """Details of a specific cloud account connector. @@ -165,7 +165,7 @@ async def create_or_update( self, connector_name: str, connector_setting: "_models.ConnectorSetting", - **kwargs + **kwargs: Any ) -> "_models.ConnectorSetting": """Create a cloud account connector or update an existing one. Connect to your cloud account. For AWS, use either account credentials or role-based authentication. For GCP, use account @@ -228,7 +228,7 @@ async def create_or_update( async def delete( self, connector_name: str, - **kwargs + **kwargs: Any ) -> None: """Delete a cloud account connector from a subscription. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_device_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_device_operations.py deleted file mode 100644 index 030c6d5daf7b..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_device_operations.py +++ /dev/null @@ -1,98 +0,0 @@ -# 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, Callable, Dict, Generic, Optional, TypeVar -import warnings - -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 DeviceOperations: - """DeviceOperations 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.security.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 - - async def get( - self, - resource_id: str, - device_id: str, - **kwargs - ) -> "_models.Device": - """Get device. - - :param resource_id: The identifier of the resource. - :type resource_id: str - :param device_id: Identifier of the device. - :type device_id: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: Device, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.Device - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.Device"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True), - 'deviceId': self._serialize.url("device_id", device_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('Device', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/{resourceId}/providers/Microsoft.Security/devices/{deviceId}'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_device_security_groups_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_device_security_groups_operations.py index f0b73258de94..25828e3acbb7 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_device_security_groups_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_device_security_groups_operations.py @@ -44,7 +44,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, resource_id: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.DeviceSecurityGroupList"]: """Use this method get the list of device security groups for the specified IoT Hub resource. @@ -114,7 +114,7 @@ async def get( self, resource_id: str, device_security_group_name: str, - **kwargs + **kwargs: Any ) -> "_models.DeviceSecurityGroup": """Use this method to get the device security group for the specified IoT Hub resource. @@ -173,7 +173,7 @@ async def create_or_update( resource_id: str, device_security_group_name: str, device_security_group: "_models.DeviceSecurityGroup", - **kwargs + **kwargs: Any ) -> "_models.DeviceSecurityGroup": """Use this method to creates or updates the device security group on a specified IoT Hub resource. @@ -243,7 +243,7 @@ async def delete( self, resource_id: str, device_security_group_name: str, - **kwargs + **kwargs: Any ) -> None: """User this method to deletes the device security group. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_devices_for_hub_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_devices_for_hub_operations.py deleted file mode 100644 index 45ebb8b0cfe0..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_devices_for_hub_operations.py +++ /dev/null @@ -1,126 +0,0 @@ -# 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.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 DevicesForHubOperations: - """DevicesForHubOperations 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.security.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_id: str, - limit: Optional[int] = None, - skip_token: Optional[str] = None, - device_management_type: Optional[Union[str, "_models.ManagementState"]] = None, - **kwargs - ) -> AsyncIterable["_models.DeviceList"]: - """Get list of the devices for the specified IoT Hub resource. - - :param resource_id: The identifier of the resource. - :type resource_id: str - :param limit: Limit the number of items returned in a single page. - :type limit: int - :param skip_token: Skip token used for pagination. - :type skip_token: str - :param device_management_type: Get devices only from specific type, Managed or Unmanaged. - :type device_management_type: str or ~azure.mgmt.security.models.ManagementState - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either DeviceList or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.security.models.DeviceList] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.DeviceList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-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 = { - 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True), - } - 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 limit is not None: - query_parameters['$limit'] = self._serialize.query("limit", limit, 'int') - if skip_token is not None: - query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, 'str') - if device_management_type is not None: - query_parameters['deviceManagementType'] = self._serialize.query("device_management_type", device_management_type, '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('DeviceList', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or 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': '/{resourceId}/providers/Microsoft.Security/devices'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_devices_for_subscription_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_devices_for_subscription_operations.py deleted file mode 100644 index a232897352c4..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_devices_for_subscription_operations.py +++ /dev/null @@ -1,123 +0,0 @@ -# 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.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 DevicesForSubscriptionOperations: - """DevicesForSubscriptionOperations 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.security.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, - limit: Optional[int] = None, - skip_token: Optional[str] = None, - device_management_type: Optional[Union[str, "_models.ManagementState"]] = None, - **kwargs - ) -> AsyncIterable["_models.DeviceList"]: - """Get list of the devices by their subscription. - - :param limit: Limit the number of items returned in a single page. - :type limit: int - :param skip_token: Skip token used for pagination. - :type skip_token: str - :param device_management_type: Get devices only from specific type, Managed or Unmanaged. - :type device_management_type: str or ~azure.mgmt.security.models.ManagementState - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either DeviceList or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.security.models.DeviceList] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.DeviceList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - } - 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 limit is not None: - query_parameters['$limit'] = self._serialize.query("limit", limit, 'int') - if skip_token is not None: - query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, 'str') - if device_management_type is not None: - query_parameters['deviceManagementType'] = self._serialize.query("device_management_type", device_management_type, '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('DeviceList', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or 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.Security/devices'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_discovered_security_solutions_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_discovered_security_solutions_operations.py index 010cff2b3c1e..7fac89302664 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_discovered_security_solutions_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_discovered_security_solutions_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.DiscoveredSecuritySolutionList"]: """Gets a list of discovered Security Solutions for the subscription. @@ -109,7 +109,7 @@ async def get_next(next_link=None): def list_by_home_region( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.DiscoveredSecuritySolutionList"]: """Gets a list of discovered Security Solutions for the subscription and location. @@ -178,7 +178,7 @@ async def get( self, resource_group_name: str, discovered_security_solution_name: str, - **kwargs + **kwargs: Any ) -> "_models.DiscoveredSecuritySolution": """Gets a specific discovered Security Solution. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_external_security_solutions_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_external_security_solutions_operations.py index 0a0ffa57eb8a..5734e6ff6fce 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_external_security_solutions_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_external_security_solutions_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.ExternalSecuritySolutionList"]: """Gets a list of external security solutions for the subscription. @@ -109,7 +109,7 @@ async def get_next(next_link=None): def list_by_home_region( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.ExternalSecuritySolutionList"]: """Gets a list of external Security Solutions for the subscription and location. @@ -178,7 +178,7 @@ async def get( self, resource_group_name: str, external_security_solutions_name: str, - **kwargs + **kwargs: Any ) -> "_models.ExternalSecuritySolution": """Gets a specific external Security Solution. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_information_protection_policies_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_information_protection_policies_operations.py index a9e6441c5bb8..821084dba221 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_information_protection_policies_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_information_protection_policies_operations.py @@ -44,17 +44,17 @@ def __init__(self, client, config, serializer, deserializer) -> None: async def get( self, scope: str, - information_protection_policy_name: Union[str, "_models.Enum17"], - **kwargs + information_protection_policy_name: Union[str, "_models.Enum15"], + **kwargs: Any ) -> "_models.InformationProtectionPolicy": """Details of the information protection policy. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :param information_protection_policy_name: Name of the information protection policy. - :type information_protection_policy_name: str or ~azure.mgmt.security.models.Enum17 + :type information_protection_policy_name: str or ~azure.mgmt.security.models.Enum15 :keyword callable cls: A custom type or function that will be passed the direct response :return: InformationProtectionPolicy, or the result of cls(response) :rtype: ~azure.mgmt.security.models.InformationProtectionPolicy @@ -103,18 +103,18 @@ async def get( async def create_or_update( self, scope: str, - information_protection_policy_name: Union[str, "_models.Enum17"], + information_protection_policy_name: Union[str, "_models.Enum15"], information_protection_policy: "_models.InformationProtectionPolicy", - **kwargs + **kwargs: Any ) -> "_models.InformationProtectionPolicy": """Details of the information protection policy. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :param information_protection_policy_name: Name of the information protection policy. - :type information_protection_policy_name: str or ~azure.mgmt.security.models.Enum17 + :type information_protection_policy_name: str or ~azure.mgmt.security.models.Enum15 :param information_protection_policy: Information protection policy. :type information_protection_policy: ~azure.mgmt.security.models.InformationProtectionPolicy :keyword callable cls: A custom type or function that will be passed the direct response @@ -174,12 +174,12 @@ async def create_or_update( def list( self, scope: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.InformationProtectionPolicyList"]: """Information protection policies of a specific management group. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :keyword callable cls: A custom type or function that will be passed the direct response diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_defender_settings_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_ingestion_settings_operations.py similarity index 60% rename from sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_defender_settings_operations.py rename to sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_ingestion_settings_operations.py index 384e52bff380..d601b6ff1714 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_defender_settings_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_ingestion_settings_operations.py @@ -5,9 +5,10 @@ # 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, Callable, Dict, Generic, IO, Optional, TypeVar, Union +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 @@ -18,8 +19,8 @@ T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] -class IotDefenderSettingsOperations: - """IotDefenderSettingsOperations async operations. +class IngestionSettingsOperations: + """IngestionSettingsOperations 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. @@ -40,79 +41,101 @@ def __init__(self, client, config, serializer, deserializer) -> None: self._deserialize = deserializer self._config = config - async def list( + def list( self, - **kwargs - ) -> "_models.IotDefenderSettingsList": - """List IoT Defender Settings. + **kwargs: Any + ) -> AsyncIterable["_models.IngestionSettingList"]: + """Settings for ingesting security data and logs to correlate with resources associated with the + subscription. :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotDefenderSettingsList, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotDefenderSettingsList + :return: An iterator like instance of either IngestionSettingList or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.security.models.IngestionSettingList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotDefenderSettingsList"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.IngestionSettingList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" + api_version = "2021-01-15-preview" accept = "application/json" - # 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - } - 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('IotDefenderSettingsList', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotDefenderSettings'} # type: ignore + 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + } + 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('IngestionSettingList', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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.Security/ingestionSettings'} # type: ignore async def get( self, - **kwargs - ) -> "_models.IotDefenderSettingsModel": - """Get IoT Defender Settings. - + ingestion_setting_name: str, + **kwargs: Any + ) -> "_models.IngestionSetting": + """Settings for ingesting security data and logs to correlate with resources associated with the + subscription. + + :param ingestion_setting_name: Name of the ingestion setting. + :type ingestion_setting_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotDefenderSettingsModel, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotDefenderSettingsModel + :return: IngestionSetting, or the result of cls(response) + :rtype: ~azure.mgmt.security.models.IngestionSetting :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotDefenderSettingsModel"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.IngestionSetting"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" + api_version = "2021-01-15-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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'ingestionSettingName': self._serialize.url("ingestion_setting_name", ingestion_setting_name, 'str'), } url = self._client.format_url(url, **path_format_arguments) @@ -132,41 +155,46 @@ async def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize('IotDefenderSettingsModel', pipeline_response) + deserialized = self._deserialize('IngestionSetting', pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotDefenderSettings/default'} # type: ignore + get.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/ingestionSettings/{ingestionSettingName}'} # type: ignore - async def create_or_update( + async def create( self, - iot_defender_settings_model: "_models.IotDefenderSettingsModel", - **kwargs - ) -> "_models.IotDefenderSettingsModel": - """Create or update IoT Defender settings. - - :param iot_defender_settings_model: The IoT defender settings model. - :type iot_defender_settings_model: ~azure.mgmt.security.models.IotDefenderSettingsModel + ingestion_setting_name: str, + ingestion_setting: "_models.IngestionSetting", + **kwargs: Any + ) -> "_models.IngestionSetting": + """Create setting for ingesting security data and logs to correlate with resources associated with + the subscription. + + :param ingestion_setting_name: Name of the ingestion setting. + :type ingestion_setting_name: str + :param ingestion_setting: Ingestion setting object. + :type ingestion_setting: ~azure.mgmt.security.models.IngestionSetting :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotDefenderSettingsModel, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotDefenderSettingsModel + :return: IngestionSetting, or the result of cls(response) + :rtype: ~azure.mgmt.security.models.IngestionSetting :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotDefenderSettingsModel"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.IngestionSetting"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" + api_version = "2021-01-15-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" # Construct URL - url = self.create_or_update.metadata['url'] # type: ignore + url = self.create.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'ingestionSettingName': self._serialize.url("ingestion_setting_name", ingestion_setting_name, 'str'), } url = self._client.format_url(url, **path_format_arguments) @@ -180,34 +208,33 @@ async def create_or_update( header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(iot_defender_settings_model, 'IotDefenderSettingsModel') + body_content = self._serialize.body(ingestion_setting, 'IngestionSetting') 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]: + 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 response.status_code == 200: - deserialized = self._deserialize('IotDefenderSettingsModel', pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize('IotDefenderSettingsModel', pipeline_response) + deserialized = self._deserialize('IngestionSetting', pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotDefenderSettings/default'} # type: ignore + create.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/ingestionSettings/{ingestionSettingName}'} # type: ignore async def delete( self, - **kwargs + ingestion_setting_name: str, + **kwargs: Any ) -> None: - """Delete IoT Defender settings. + """Deletes the ingestion settings for this subscription. + :param ingestion_setting_name: Name of the ingestion setting. + :type ingestion_setting_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: None, or the result of cls(response) :rtype: None @@ -218,13 +245,14 @@ async def delete( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" + api_version = "2021-01-15-preview" accept = "application/json" # Construct URL url = self.delete.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'ingestionSettingName': self._serialize.url("ingestion_setting_name", ingestion_setting_name, 'str'), } url = self._client.format_url(url, **path_format_arguments) @@ -247,31 +275,36 @@ async def delete( if cls: return cls(pipeline_response, None, {}) - delete.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotDefenderSettings/default'} # type: ignore + delete.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/ingestionSettings/{ingestionSettingName}'} # type: ignore - async def package_downloads( + async def list_tokens( self, - **kwargs - ) -> "_models.PackageDownloads": - """Information about downloadable packages. - + ingestion_setting_name: str, + **kwargs: Any + ) -> "_models.IngestionSettingToken": + """Returns the token that is used for correlating ingested telemetry with the resources in the + subscription. + + :param ingestion_setting_name: Name of the ingestion setting. + :type ingestion_setting_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: PackageDownloads, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.PackageDownloads + :return: IngestionSettingToken, or the result of cls(response) + :rtype: ~azure.mgmt.security.models.IngestionSettingToken :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.PackageDownloads"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.IngestionSettingToken"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" + api_version = "2021-01-15-preview" accept = "application/json" # Construct URL - url = self.package_downloads.metadata['url'] # type: ignore + url = self.list_tokens.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'ingestionSettingName': self._serialize.url("ingestion_setting_name", ingestion_setting_name, 'str'), } url = self._client.format_url(url, **path_format_arguments) @@ -291,37 +324,41 @@ async def package_downloads( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize('PackageDownloads', pipeline_response) + deserialized = self._deserialize('IngestionSettingToken', pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - package_downloads.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotDefenderSettings/default/packageDownloads'} # type: ignore + list_tokens.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/ingestionSettings/{ingestionSettingName}/listTokens'} # type: ignore - async def download_manager_activation( + async def list_connection_strings( self, - **kwargs - ) -> IO: - """Download manager activation data defined for this subscription. + ingestion_setting_name: str, + **kwargs: Any + ) -> "_models.ConnectionStrings": + """Connection strings for ingesting security scan logs and data. + :param ingestion_setting_name: Name of the ingestion setting. + :type ingestion_setting_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: IO, or the result of cls(response) - :rtype: IO + :return: ConnectionStrings, or the result of cls(response) + :rtype: ~azure.mgmt.security.models.ConnectionStrings :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType[IO] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConnectionStrings"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/zip" + api_version = "2021-01-15-preview" + accept = "application/json" # Construct URL - url = self.download_manager_activation.metadata['url'] # type: ignore + url = self.list_connection_strings.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'ingestionSettingName': self._serialize.url("ingestion_setting_name", ingestion_setting_name, 'str'), } url = self._client.format_url(url, **path_format_arguments) @@ -334,17 +371,17 @@ async def download_manager_activation( 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=True, **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) - deserialized = response.stream_download(self._client._pipeline) + deserialized = self._deserialize('ConnectionStrings', pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - download_manager_activation.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotDefenderSettings/default/downloadManagerActivation'} # type: ignore + list_connection_strings.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/ingestionSettings/{ingestionSettingName}/listConnectionStrings'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_alert_types_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_alert_types_operations.py deleted file mode 100644 index 2cf34373997d..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_alert_types_operations.py +++ /dev/null @@ -1,267 +0,0 @@ -# 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, Callable, Dict, Generic, Optional, TypeVar -import warnings - -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 IotAlertTypesOperations: - """IotAlertTypesOperations 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.security.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 - - async def list( - self, - resource_group_name: str, - solution_name: str, - **kwargs - ) -> "_models.IotAlertTypeList": - """List IoT alert types. - - :param resource_group_name: The name of the resource group within the user's subscription. The - name is case insensitive. - :type resource_group_name: str - :param solution_name: The name of the IoT Security solution. - :type solution_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotAlertTypeList, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotAlertTypeList - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotAlertTypeList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-08-01" - accept = "application/json" - - # 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'solutionName': self._serialize.url("solution_name", solution_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['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('IotAlertTypeList', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotAlertTypes'} # type: ignore - - async def get( - self, - resource_group_name: str, - solution_name: str, - iot_alert_type_name: str, - **kwargs - ) -> "_models.IotAlertType": - """Get IoT alert type. - - :param resource_group_name: The name of the resource group within the user's subscription. The - name is case insensitive. - :type resource_group_name: str - :param solution_name: The name of the IoT Security solution. - :type solution_name: str - :param iot_alert_type_name: Name of the alert type. - :type iot_alert_type_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotAlertType, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotAlertType - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotAlertType"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-08-01" - 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'solutionName': self._serialize.url("solution_name", solution_name, 'str'), - 'iotAlertTypeName': self._serialize.url("iot_alert_type_name", iot_alert_type_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['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('IotAlertType', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotAlertTypes/{iotAlertTypeName}'} # type: ignore - - async def list_at_subscription_scope( - self, - **kwargs - ) -> "_models.IotAlertTypeList": - """List IoT alert types. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotAlertTypeList, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotAlertTypeList - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotAlertTypeList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.list_at_subscription_scope.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - } - 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('IotAlertTypeList', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - list_at_subscription_scope.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotAlertTypes'} # type: ignore - - async def get_at_subscription_scope( - self, - iot_alert_type_name: str, - **kwargs - ) -> "_models.IotAlertType": - """Get IoT alert type. - - :param iot_alert_type_name: Name of the alert type. - :type iot_alert_type_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotAlertType, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotAlertType - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotAlertType"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.get_at_subscription_scope.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'iotAlertTypeName': self._serialize.url("iot_alert_type_name", iot_alert_type_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['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('IotAlertType', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get_at_subscription_scope.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotAlertTypes/{iotAlertTypeName}'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_alerts_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_alerts_operations.py deleted file mode 100644 index d54dc8f93dcc..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_alerts_operations.py +++ /dev/null @@ -1,375 +0,0 @@ -# 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.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 IotAlertsOperations: - """IotAlertsOperations 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.security.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, - solution_name: str, - min_start_time_utc: Optional[str] = None, - max_start_time_utc: Optional[str] = None, - alert_type: Optional[str] = None, - compromised_entity: Optional[str] = None, - limit: Optional[int] = None, - skip_token: Optional[str] = None, - **kwargs - ) -> AsyncIterable["_models.IotAlertList"]: - """List IoT alerts. - - :param resource_group_name: The name of the resource group within the user's subscription. The - name is case insensitive. - :type resource_group_name: str - :param solution_name: The name of the IoT Security solution. - :type solution_name: str - :param min_start_time_utc: Filter by minimum startTimeUtc (ISO 8601 format). - :type min_start_time_utc: str - :param max_start_time_utc: Filter by maximum startTimeUtc (ISO 8601 format). - :type max_start_time_utc: str - :param alert_type: Filter by alert type. - :type alert_type: str - :param compromised_entity: Filter by compromised device. - :type compromised_entity: str - :param limit: Limit the number of items returned in a single page. - :type limit: int - :param skip_token: Skip token used for pagination. - :type skip_token: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either IotAlertList or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.security.models.IotAlertList] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotAlertList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-08-01" - 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'solutionName': self._serialize.url("solution_name", solution_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') - if min_start_time_utc is not None: - query_parameters['startTimeUtc>'] = self._serialize.query("min_start_time_utc", min_start_time_utc, 'str') - if max_start_time_utc is not None: - query_parameters['startTimeUtc<'] = self._serialize.query("max_start_time_utc", max_start_time_utc, 'str') - if alert_type is not None: - query_parameters['alertType'] = self._serialize.query("alert_type", alert_type, 'str') - if compromised_entity is not None: - query_parameters['compromisedEntity'] = self._serialize.query("compromised_entity", compromised_entity, 'str') - if limit is not None: - query_parameters['$limit'] = self._serialize.query("limit", limit, 'int') - if skip_token is not None: - query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, '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('IotAlertList', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or 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.Security/iotSecuritySolutions/{solutionName}/iotAlerts'} # type: ignore - - async def get( - self, - resource_group_name: str, - solution_name: str, - iot_alert_id: str, - **kwargs - ) -> "_models.IotAlert": - """Get IoT alert. - - :param resource_group_name: The name of the resource group within the user's subscription. The - name is case insensitive. - :type resource_group_name: str - :param solution_name: The name of the IoT Security solution. - :type solution_name: str - :param iot_alert_id: Id of the alert. - :type iot_alert_id: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotAlert, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotAlert - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotAlert"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-08-01" - 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'solutionName': self._serialize.url("solution_name", solution_name, 'str'), - 'iotAlertId': self._serialize.url("iot_alert_id", iot_alert_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('IotAlert', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotAlerts/{iotAlertId}'} # type: ignore - - def list_at_scope( - self, - scope: str, - min_start_time_utc: Optional[str] = None, - max_start_time_utc: Optional[str] = None, - alert_type: Optional[str] = None, - device_management_type: Optional[Union[str, "_models.ManagementState"]] = None, - compromised_entity: Optional[str] = None, - limit: Optional[int] = None, - skip_token: Optional[str] = None, - **kwargs - ) -> AsyncIterable["_models.IotAlertListModel"]: - """List IoT alerts. - - :param scope: Scope of the query: Subscription (i.e. /subscriptions/{subscriptionId}) or IoT - Hub (i.e. - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Devices/iotHubs/{iotHubName}). - :type scope: str - :param min_start_time_utc: Filter by minimum startTimeUtc (ISO 8601 format). - :type min_start_time_utc: str - :param max_start_time_utc: Filter by maximum startTimeUtc (ISO 8601 format). - :type max_start_time_utc: str - :param alert_type: Filter by alert type. - :type alert_type: str - :param device_management_type: Get devices only from specific type, Managed or Unmanaged. - :type device_management_type: str or ~azure.mgmt.security.models.ManagementState - :param compromised_entity: Filter by compromised device. - :type compromised_entity: str - :param limit: Limit the number of items returned in a single page. - :type limit: int - :param skip_token: Skip token used for pagination. - :type skip_token: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either IotAlertListModel or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.security.models.IotAlertListModel] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotAlertListModel"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-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_at_scope.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - } - 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 min_start_time_utc is not None: - query_parameters['startTimeUtc>'] = self._serialize.query("min_start_time_utc", min_start_time_utc, 'str') - if max_start_time_utc is not None: - query_parameters['startTimeUtc<'] = self._serialize.query("max_start_time_utc", max_start_time_utc, 'str') - if alert_type is not None: - query_parameters['alertType'] = self._serialize.query("alert_type", alert_type, 'str') - if device_management_type is not None: - query_parameters['deviceManagementType'] = self._serialize.query("device_management_type", device_management_type, 'str') - if compromised_entity is not None: - query_parameters['compromisedEntity'] = self._serialize.query("compromised_entity", compromised_entity, 'str') - if limit is not None: - query_parameters['$limit'] = self._serialize.query("limit", limit, 'int') - if skip_token is not None: - query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, '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('IotAlertListModel', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or 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_at_scope.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotAlerts'} # type: ignore - - async def get_at_scope( - self, - scope: str, - iot_alert_id: str, - **kwargs - ) -> "_models.IotAlertModel": - """Get IoT alert. - - :param scope: Scope of the query: Subscription (i.e. /subscriptions/{subscriptionId}) or IoT - Hub (i.e. - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Devices/iotHubs/{iotHubName}). - :type scope: str - :param iot_alert_id: Id of the alert. - :type iot_alert_id: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotAlertModel, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotAlertModel - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotAlertModel"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.get_at_scope.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - 'iotAlertId': self._serialize.url("iot_alert_id", iot_alert_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('IotAlertModel', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get_at_scope.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotAlerts/{iotAlertId}'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_recommendation_types_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_recommendation_types_operations.py deleted file mode 100644 index 03eeda50a744..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_recommendation_types_operations.py +++ /dev/null @@ -1,267 +0,0 @@ -# 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, Callable, Dict, Generic, Optional, TypeVar -import warnings - -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 IotRecommendationTypesOperations: - """IotRecommendationTypesOperations 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.security.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 - - async def list( - self, - resource_group_name: str, - solution_name: str, - **kwargs - ) -> "_models.IotRecommendationTypeList": - """List IoT recommendation types. - - :param resource_group_name: The name of the resource group within the user's subscription. The - name is case insensitive. - :type resource_group_name: str - :param solution_name: The name of the IoT Security solution. - :type solution_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotRecommendationTypeList, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotRecommendationTypeList - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotRecommendationTypeList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-08-01" - accept = "application/json" - - # 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'solutionName': self._serialize.url("solution_name", solution_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['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('IotRecommendationTypeList', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotRecommendationTypes'} # type: ignore - - async def get( - self, - resource_group_name: str, - solution_name: str, - iot_recommendation_type_name: str, - **kwargs - ) -> "_models.IotRecommendationType": - """Get IoT recommendation type. - - :param resource_group_name: The name of the resource group within the user's subscription. The - name is case insensitive. - :type resource_group_name: str - :param solution_name: The name of the IoT Security solution. - :type solution_name: str - :param iot_recommendation_type_name: Name of the recommendation type. - :type iot_recommendation_type_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotRecommendationType, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotRecommendationType - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotRecommendationType"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-08-01" - 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'solutionName': self._serialize.url("solution_name", solution_name, 'str'), - 'iotRecommendationTypeName': self._serialize.url("iot_recommendation_type_name", iot_recommendation_type_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['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('IotRecommendationType', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotRecommendationTypes/{iotRecommendationTypeName}'} # type: ignore - - async def list_at_subscription_scope( - self, - **kwargs - ) -> "_models.IotRecommendationTypeList": - """List IoT recommendation types. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotRecommendationTypeList, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotRecommendationTypeList - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotRecommendationTypeList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.list_at_subscription_scope.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - } - 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('IotRecommendationTypeList', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - list_at_subscription_scope.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotRecommendationTypes'} # type: ignore - - async def get_at_subscription_scope( - self, - iot_recommendation_type_name: str, - **kwargs - ) -> "_models.IotRecommendationType": - """Get IoT recommendation type. - - :param iot_recommendation_type_name: Name of the recommendation type. - :type iot_recommendation_type_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotRecommendationType, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotRecommendationType - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotRecommendationType"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.get_at_subscription_scope.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'iotRecommendationTypeName': self._serialize.url("iot_recommendation_type_name", iot_recommendation_type_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['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('IotRecommendationType', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get_at_subscription_scope.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotRecommendationTypes/{iotRecommendationTypeName}'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_security_solution_analytics_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_security_solution_analytics_operations.py index c1360b74a96e..ec6b2c993fde 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_security_solution_analytics_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_security_solution_analytics_operations.py @@ -44,7 +44,7 @@ async def list( self, resource_group_name: str, solution_name: str, - **kwargs + **kwargs: Any ) -> "_models.IoTSecuritySolutionAnalyticsModelList": """Use this method to get IoT security Analytics metrics in an array. @@ -103,7 +103,7 @@ async def get( self, resource_group_name: str, solution_name: str, - **kwargs + **kwargs: Any ) -> "_models.IoTSecuritySolutionAnalyticsModel": """Use this method to get IoT Security Analytics metrics. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_security_solution_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_security_solution_operations.py index 7f680bd35fe4..0caa63196f55 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_security_solution_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_security_solution_operations.py @@ -44,7 +44,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list_by_subscription( self, filter: Optional[str] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.IoTSecuritySolutionsList"]: """Use this method to get the list of IoT Security solutions by subscription. @@ -117,7 +117,7 @@ def list_by_resource_group( self, resource_group_name: str, filter: Optional[str] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.IoTSecuritySolutionsList"]: """Use this method to get the list IoT Security solutions organized by resource group. @@ -194,7 +194,7 @@ async def get( self, resource_group_name: str, solution_name: str, - **kwargs + **kwargs: Any ) -> "_models.IoTSecuritySolutionModel": """User this method to get details of a specific IoT Security solution based on solution name. @@ -254,7 +254,7 @@ async def create_or_update( resource_group_name: str, solution_name: str, iot_security_solution_data: "_models.IoTSecuritySolutionModel", - **kwargs + **kwargs: Any ) -> "_models.IoTSecuritySolutionModel": """Use this method to create or update yours IoT Security solution. @@ -325,7 +325,7 @@ async def update( resource_group_name: str, solution_name: str, update_iot_security_solution_data: "_models.UpdateIotSecuritySolutionData", - **kwargs + **kwargs: Any ) -> "_models.IoTSecuritySolutionModel": """Use this method to update existing IoT Security solution tags or user defined resources. To update other fields use the CreateOrUpdate method. @@ -392,7 +392,7 @@ async def delete( self, resource_group_name: str, solution_name: str, - **kwargs + **kwargs: Any ) -> None: """Use this method to delete yours IoT Security solution. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_security_solutions_analytics_aggregated_alert_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_security_solutions_analytics_aggregated_alert_operations.py index 264d6155dbfa..80c3c47f7db1 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_security_solutions_analytics_aggregated_alert_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_security_solutions_analytics_aggregated_alert_operations.py @@ -46,7 +46,7 @@ def list( resource_group_name: str, solution_name: str, top: Optional[int] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.IoTSecurityAggregatedAlertList"]: """Use this method to get the aggregated alert list of yours IoT Security solution. @@ -126,7 +126,7 @@ async def get( resource_group_name: str, solution_name: str, aggregated_alert_name: str, - **kwargs + **kwargs: Any ) -> "_models.IoTSecurityAggregatedAlert": """Use this method to get a single the aggregated alert of yours IoT Security solution. This aggregation is performed by alert name. @@ -190,7 +190,7 @@ async def dismiss( resource_group_name: str, solution_name: str, aggregated_alert_name: str, - **kwargs + **kwargs: Any ) -> None: """Use this method to dismiss an aggregated IoT Security Solution Alert. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_security_solutions_analytics_recommendation_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_security_solutions_analytics_recommendation_operations.py index 98d5267916b4..771b12ab1ca2 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_security_solutions_analytics_recommendation_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_security_solutions_analytics_recommendation_operations.py @@ -46,7 +46,7 @@ async def get( resource_group_name: str, solution_name: str, aggregated_recommendation_name: str, - **kwargs + **kwargs: Any ) -> "_models.IoTSecurityAggregatedRecommendation": """Use this method to get the aggregated security analytics recommendation of yours IoT Security solution. This aggregation is performed by recommendation name. @@ -110,7 +110,7 @@ def list( resource_group_name: str, solution_name: str, top: Optional[int] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.IoTSecurityAggregatedRecommendationList"]: """Use this method to get the list of aggregated security analytics recommendations of yours IoT Security solution. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_sensors_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_sensors_operations.py deleted file mode 100644 index 96112139722f..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_sensors_operations.py +++ /dev/null @@ -1,450 +0,0 @@ -# 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, Callable, Dict, Generic, IO, Optional, TypeVar, Union -import warnings - -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 IotSensorsOperations: - """IotSensorsOperations 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.security.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 - - async def list( - self, - scope: str, - **kwargs - ) -> "_models.IotSensorsList": - """List IoT sensors. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotSensorsList, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotSensorsList - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotSensorsList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - } - 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('IotSensorsList', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - list.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSensors'} # type: ignore - - async def get( - self, - scope: str, - iot_sensor_name: str, - **kwargs - ) -> "_models.IotSensorsModel": - """Get IoT sensor. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :param iot_sensor_name: Name of the IoT sensor. - :type iot_sensor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotSensorsModel, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotSensorsModel - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotSensorsModel"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - 'iotSensorName': self._serialize.url("iot_sensor_name", iot_sensor_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['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('IotSensorsModel', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSensors/{iotSensorName}'} # type: ignore - - async def create_or_update( - self, - scope: str, - iot_sensor_name: str, - iot_sensors_model: "_models.IotSensorsModel", - **kwargs - ) -> "_models.IotSensorsModel": - """Create or update IoT sensor. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :param iot_sensor_name: Name of the IoT sensor. - :type iot_sensor_name: str - :param iot_sensors_model: The IoT sensor model. - :type iot_sensors_model: ~azure.mgmt.security.models.IotSensorsModel - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotSensorsModel, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotSensorsModel - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotSensorsModel"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self.create_or_update.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - 'iotSensorName': self._serialize.url("iot_sensor_name", iot_sensor_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(iot_sensors_model, 'IotSensorsModel') - 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('IotSensorsModel', pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize('IotSensorsModel', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - create_or_update.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSensors/{iotSensorName}'} # type: ignore - - async def delete( - self, - scope: str, - iot_sensor_name: str, - **kwargs - ) -> None: - """Delete IoT sensor. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :param iot_sensor_name: Name of the IoT sensor. - :type iot_sensor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: None, or the result of cls(response) - :rtype: None - :raises: ~azure.core.exceptions.HttpResponseError - """ - 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 = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.delete.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - 'iotSensorName': self._serialize.url("iot_sensor_name", iot_sensor_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['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, 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.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSensors/{iotSensorName}'} # type: ignore - - async def download_activation( - self, - scope: str, - iot_sensor_name: str, - **kwargs - ) -> IO: - """Download sensor activation file. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :param iot_sensor_name: Name of the IoT sensor. - :type iot_sensor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IO, or the result of cls(response) - :rtype: IO - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType[IO] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/zip" - - # Construct URL - url = self.download_activation.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - 'iotSensorName': self._serialize.url("iot_sensor_name", iot_sensor_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['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=True, **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 = response.stream_download(self._client._pipeline) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - download_activation.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSensors/{iotSensorName}/downloadActivation'} # type: ignore - - async def download_reset_password( - self, - scope: str, - iot_sensor_name: str, - body: "_models.ResetPasswordInput", - **kwargs - ) -> IO: - """Download file for reset password of the sensor. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :param iot_sensor_name: Name of the IoT sensor. - :type iot_sensor_name: str - :param body: The reset password input. - :type body: ~azure.mgmt.security.models.ResetPasswordInput - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IO, or the result of cls(response) - :rtype: IO - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType[IO] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/zip" - - # Construct URL - url = self.download_reset_password.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - 'iotSensorName': self._serialize.url("iot_sensor_name", iot_sensor_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(body, 'ResetPasswordInput') - 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=True, **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 = response.stream_download(self._client._pipeline) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - download_reset_password.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSensors/{iotSensorName}/downloadResetPassword'} # type: ignore - - async def trigger_ti_package_update( - self, - scope: str, - iot_sensor_name: str, - **kwargs - ) -> None: - """Trigger threat intelligence package update. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :param iot_sensor_name: Name of the IoT sensor. - :type iot_sensor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: None, or the result of cls(response) - :rtype: None - :raises: ~azure.core.exceptions.HttpResponseError - """ - 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 = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.trigger_ti_package_update.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - 'iotSensorName': self._serialize.url("iot_sensor_name", iot_sensor_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['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]: - 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, {}) - - trigger_ti_package_update.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSensors/{iotSensorName}/triggerTiPackageUpdate'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_sites_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_sites_operations.py deleted file mode 100644 index 42fb12eb2680..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_sites_operations.py +++ /dev/null @@ -1,262 +0,0 @@ -# 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, Callable, Dict, Generic, Optional, TypeVar, Union -import warnings - -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 IotSitesOperations: - """IotSitesOperations 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.security.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 - - async def list( - self, - scope: str, - **kwargs - ) -> "_models.IotSitesList": - """List IoT sites. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotSitesList, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotSitesList - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotSitesList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - } - 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('IotSitesList', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - list.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSites'} # type: ignore - - async def get( - self, - scope: str, - **kwargs - ) -> "_models.IotSitesModel": - """Get IoT site. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotSitesModel, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotSitesModel - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotSitesModel"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - } - 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('IotSitesModel', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSites/default'} # type: ignore - - async def create_or_update( - self, - scope: str, - iot_sites_model: "_models.IotSitesModel", - **kwargs - ) -> "_models.IotSitesModel": - """Create or update IoT site. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :param iot_sites_model: The IoT sites model. - :type iot_sites_model: ~azure.mgmt.security.models.IotSitesModel - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotSitesModel, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotSitesModel - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotSitesModel"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self.create_or_update.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - } - 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(iot_sites_model, 'IotSitesModel') - 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('IotSitesModel', pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize('IotSitesModel', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - create_or_update.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSites/default'} # type: ignore - - async def delete( - self, - scope: str, - **kwargs - ) -> None: - """Delete IoT site. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: None, or the result of cls(response) - :rtype: None - :raises: ~azure.core.exceptions.HttpResponseError - """ - 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 = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.delete.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - } - 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, 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.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSites/default'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_jit_network_access_policies_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_jit_network_access_policies_operations.py index ac4bf25955a0..bda90ec34063 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_jit_network_access_policies_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_jit_network_access_policies_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.JitNetworkAccessPoliciesList"]: """Policies for protecting resources using Just-in-Time access control. @@ -109,7 +109,7 @@ async def get_next(next_link=None): def list_by_region( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.JitNetworkAccessPoliciesList"]: """Policies for protecting resources using Just-in-Time access control for the subscription, location. @@ -178,7 +178,7 @@ async def get_next(next_link=None): def list_by_resource_group( self, resource_group_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.JitNetworkAccessPoliciesList"]: """Policies for protecting resources using Just-in-Time access control for the subscription, location. @@ -250,7 +250,7 @@ async def get_next(next_link=None): def list_by_resource_group_and_region( self, resource_group_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.JitNetworkAccessPoliciesList"]: """Policies for protecting resources using Just-in-Time access control for the subscription, location. @@ -324,7 +324,7 @@ async def get( self, resource_group_name: str, jit_network_access_policy_name: str, - **kwargs + **kwargs: Any ) -> "_models.JitNetworkAccessPolicy": """Policies for protecting resources using Just-in-Time access control for the subscription, location. @@ -386,7 +386,7 @@ async def create_or_update( resource_group_name: str, jit_network_access_policy_name: str, body: "_models.JitNetworkAccessPolicy", - **kwargs + **kwargs: Any ) -> "_models.JitNetworkAccessPolicy": """Create a policy for protecting resources using Just-in-Time access control. @@ -453,7 +453,7 @@ async def delete( self, resource_group_name: str, jit_network_access_policy_name: str, - **kwargs + **kwargs: Any ) -> None: """Delete a Just-in-Time access control policy. @@ -511,7 +511,7 @@ async def initiate( resource_group_name: str, jit_network_access_policy_name: str, body: "_models.JitNetworkAccessPolicyInitiateRequest", - **kwargs + **kwargs: Any ) -> "_models.JitNetworkAccessRequest": """Initiate a JIT access from a specific Just-in-Time policy configuration. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_locations_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_locations_operations.py index 13071a3bfde4..0597ef7bfed6 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_locations_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_locations_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.AscLocationList"]: """The location of the responsible ASC of the specific subscription (home region). For each subscription there is only one responsible location. The location in the response should be @@ -111,7 +111,7 @@ async def get_next(next_link=None): async def get( self, - **kwargs + **kwargs: Any ) -> "_models.AscLocation": """Details of a specific location. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_on_premise_iot_sensors_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_on_premise_iot_sensors_operations.py deleted file mode 100644 index 3ea54ecd99ea..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_on_premise_iot_sensors_operations.py +++ /dev/null @@ -1,370 +0,0 @@ -# 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, Callable, Dict, Generic, IO, Optional, TypeVar, Union -import warnings - -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 OnPremiseIotSensorsOperations: - """OnPremiseIotSensorsOperations 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.security.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 - - async def list( - self, - **kwargs - ) -> "_models.OnPremiseIotSensorsList": - """List on-premise IoT sensors. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: OnPremiseIotSensorsList, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.OnPremiseIotSensorsList - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.OnPremiseIotSensorsList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - } - 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('OnPremiseIotSensorsList', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/onPremiseIotSensors'} # type: ignore - - async def get( - self, - on_premise_iot_sensor_name: str, - **kwargs - ) -> "_models.OnPremiseIotSensor": - """Get on-premise IoT sensor. - - :param on_premise_iot_sensor_name: Name of the on-premise IoT sensor. - :type on_premise_iot_sensor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: OnPremiseIotSensor, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.OnPremiseIotSensor - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.OnPremiseIotSensor"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'onPremiseIotSensorName': self._serialize.url("on_premise_iot_sensor_name", on_premise_iot_sensor_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['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('OnPremiseIotSensor', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/onPremiseIotSensors/{onPremiseIotSensorName}'} # type: ignore - - async def create_or_update( - self, - on_premise_iot_sensor_name: str, - **kwargs - ) -> "_models.OnPremiseIotSensor": - """Create or update on-premise IoT sensor. - - :param on_premise_iot_sensor_name: Name of the on-premise IoT sensor. - :type on_premise_iot_sensor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: OnPremiseIotSensor, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.OnPremiseIotSensor - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.OnPremiseIotSensor"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.create_or_update.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'onPremiseIotSensorName': self._serialize.url("on_premise_iot_sensor_name", on_premise_iot_sensor_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['Accept'] = self._serialize.header("accept", accept, 'str') - - request = self._client.put(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, 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('OnPremiseIotSensor', pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize('OnPremiseIotSensor', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/onPremiseIotSensors/{onPremiseIotSensorName}'} # type: ignore - - async def delete( - self, - on_premise_iot_sensor_name: str, - **kwargs - ) -> None: - """Delete on-premise IoT sensor. - - :param on_premise_iot_sensor_name: Name of the on-premise IoT sensor. - :type on_premise_iot_sensor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: None, or the result of cls(response) - :rtype: None - :raises: ~azure.core.exceptions.HttpResponseError - """ - 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 = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.delete.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'onPremiseIotSensorName': self._serialize.url("on_premise_iot_sensor_name", on_premise_iot_sensor_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['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, 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.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/onPremiseIotSensors/{onPremiseIotSensorName}'} # type: ignore - - async def download_activation( - self, - on_premise_iot_sensor_name: str, - **kwargs - ) -> IO: - """Download sensor activation file. - - :param on_premise_iot_sensor_name: Name of the on-premise IoT sensor. - :type on_premise_iot_sensor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IO, or the result of cls(response) - :rtype: IO - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType[IO] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/zip" - - # Construct URL - url = self.download_activation.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'onPremiseIotSensorName': self._serialize.url("on_premise_iot_sensor_name", on_premise_iot_sensor_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['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=True, **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 = response.stream_download(self._client._pipeline) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - download_activation.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/onPremiseIotSensors/{onPremiseIotSensorName}/downloadActivation'} # type: ignore - - async def download_reset_password( - self, - on_premise_iot_sensor_name: str, - body: "_models.ResetPasswordInput", - **kwargs - ) -> IO: - """Download file for reset password of the sensor. - - :param on_premise_iot_sensor_name: Name of the on-premise IoT sensor. - :type on_premise_iot_sensor_name: str - :param body: Input for reset password. - :type body: ~azure.mgmt.security.models.ResetPasswordInput - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IO, or the result of cls(response) - :rtype: IO - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType[IO] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/zip" - - # Construct URL - url = self.download_reset_password.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'onPremiseIotSensorName': self._serialize.url("on_premise_iot_sensor_name", on_premise_iot_sensor_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(body, 'ResetPasswordInput') - 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=True, **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 = response.stream_download(self._client._pipeline) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - download_reset_password.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/onPremiseIotSensors/{onPremiseIotSensorName}/downloadResetPassword'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_operations.py index f0e4d5362d2b..81c86cb0e66b 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.OperationList"]: """Exposes all available operations for discovery purposes. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_pricings_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_pricings_operations.py index 88b4e4cf2a09..2f5c1427124a 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_pricings_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_pricings_operations.py @@ -42,7 +42,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: async def list( self, - **kwargs + **kwargs: Any ) -> "_models.PricingList": """Lists Security Center pricing configurations in the subscription. @@ -93,7 +93,7 @@ async def list( async def get( self, pricing_name: str, - **kwargs + **kwargs: Any ) -> "_models.Pricing": """Gets a provided Security Center pricing configuration in the subscription. @@ -148,7 +148,7 @@ async def update( self, pricing_name: str, pricing: "_models.Pricing", - **kwargs + **kwargs: Any ) -> "_models.Pricing": """Updates a provided Security Center pricing configuration in the subscription. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_regulatory_compliance_assessments_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_regulatory_compliance_assessments_operations.py index 930ef91b087c..32614aec3d99 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_regulatory_compliance_assessments_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_regulatory_compliance_assessments_operations.py @@ -46,7 +46,7 @@ def list( regulatory_compliance_standard_name: str, regulatory_compliance_control_name: str, filter: Optional[str] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.RegulatoryComplianceAssessmentList"]: """Details and state of assessments mapped to selected regulatory compliance control. @@ -125,7 +125,7 @@ async def get( regulatory_compliance_standard_name: str, regulatory_compliance_control_name: str, regulatory_compliance_assessment_name: str, - **kwargs + **kwargs: Any ) -> "_models.RegulatoryComplianceAssessment": """Supported regulatory compliance details and state for selected assessment. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_regulatory_compliance_controls_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_regulatory_compliance_controls_operations.py index 67e5df29aa0c..2c64a381af9c 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_regulatory_compliance_controls_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_regulatory_compliance_controls_operations.py @@ -45,7 +45,7 @@ def list( self, regulatory_compliance_standard_name: str, filter: Optional[str] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.RegulatoryComplianceControlList"]: """All supported regulatory compliance controls details and state for selected standard. @@ -120,7 +120,7 @@ async def get( self, regulatory_compliance_standard_name: str, regulatory_compliance_control_name: str, - **kwargs + **kwargs: Any ) -> "_models.RegulatoryComplianceControl": """Selected regulatory compliance control details and state. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_regulatory_compliance_standards_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_regulatory_compliance_standards_operations.py index 8a7c10f30b23..5dbcd284f0d0 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_regulatory_compliance_standards_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_regulatory_compliance_standards_operations.py @@ -44,7 +44,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, filter: Optional[str] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.RegulatoryComplianceStandardList"]: """Supported regulatory compliance standards details and state. @@ -115,7 +115,7 @@ async def get_next(next_link=None): async def get( self, regulatory_compliance_standard_name: str, - **kwargs + **kwargs: Any ) -> "_models.RegulatoryComplianceStandard": """Supported regulatory compliance details state for selected standard. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_secure_score_control_definitions_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_secure_score_control_definitions_operations.py index f04a10e7cb19..e5df37ba2e9b 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_secure_score_control_definitions_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_secure_score_control_definitions_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.SecureScoreControlDefinitionList"]: """List the available security controls, their assessments, and the max score. @@ -105,7 +105,7 @@ async def get_next(next_link=None): def list_by_subscription( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.SecureScoreControlDefinitionList"]: """For a specified subscription, list the available security controls, their assessments, and the max score. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_secure_score_controls_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_secure_score_controls_operations.py index 4a376c753457..07f3d874ea7e 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_secure_score_controls_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_secure_score_controls_operations.py @@ -45,7 +45,7 @@ def list_by_secure_score( self, secure_score_name: str, expand: Optional[Union[str, "_models.ExpandControlsEnum"]] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.SecureScoreControlList"]: """Get all security controls for a specific initiative within a scope. @@ -120,7 +120,7 @@ async def get_next(next_link=None): def list( self, expand: Optional[Union[str, "_models.ExpandControlsEnum"]] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.SecureScoreControlList"]: """Get all security controls within a scope. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_secure_scores_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_secure_scores_operations.py index 849421e1653d..90e1ceb3501b 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_secure_scores_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_secure_scores_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.SecureScoresList"]: """List secure scores for all your Security Center initiatives within your current scope. @@ -110,7 +110,7 @@ async def get_next(next_link=None): async def get( self, secure_score_name: str, - **kwargs + **kwargs: Any ) -> "_models.SecureScoreItem": """Get secure score for a specific Security Center initiative within your current scope. For the ASC Default initiative, use 'ascScore'. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_security_contacts_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_security_contacts_operations.py index b5ebee2d9517..d2466e69b609 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_security_contacts_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_security_contacts_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.SecurityContactList"]: """Security contact configurations for the subscription. @@ -110,7 +110,7 @@ async def get_next(next_link=None): async def get( self, security_contact_name: str, - **kwargs + **kwargs: Any ) -> "_models.SecurityContact": """Security contact configurations for the subscription. @@ -165,7 +165,7 @@ async def create( self, security_contact_name: str, security_contact: "_models.SecurityContact", - **kwargs + **kwargs: Any ) -> "_models.SecurityContact": """Security contact configurations for the subscription. @@ -226,7 +226,7 @@ async def create( async def delete( self, security_contact_name: str, - **kwargs + **kwargs: Any ) -> None: """Security contact configurations for the subscription. @@ -278,7 +278,7 @@ async def update( self, security_contact_name: str, security_contact: "_models.SecurityContact", - **kwargs + **kwargs: Any ) -> "_models.SecurityContact": """Security contact configurations for the subscription. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_security_solutions_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_security_solutions_operations.py index 9bcf98ef9d48..24b5cc9fe67b 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_security_solutions_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_security_solutions_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.SecuritySolutionList"]: """Gets a list of Security Solutions for the subscription. @@ -111,7 +111,7 @@ async def get( self, resource_group_name: str, security_solution_name: str, - **kwargs + **kwargs: Any ) -> "_models.SecuritySolution": """Gets a specific Security Solution. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_security_solutions_reference_data_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_security_solutions_reference_data_operations.py index 4751c0ccf7db..944d446ef9e1 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_security_solutions_reference_data_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_security_solutions_reference_data_operations.py @@ -42,7 +42,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: async def list( self, - **kwargs + **kwargs: Any ) -> "_models.SecuritySolutionsReferenceDataList": """Gets a list of all supported Security Solutions for the subscription. @@ -92,7 +92,7 @@ async def list( async def list_by_home_region( self, - **kwargs + **kwargs: Any ) -> "_models.SecuritySolutionsReferenceDataList": """Gets list of all supported Security Solutions for subscription and location. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_server_vulnerability_assessment_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_server_vulnerability_assessment_operations.py index 09abee11e506..f66bf8978920 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_server_vulnerability_assessment_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_server_vulnerability_assessment_operations.py @@ -5,13 +5,15 @@ # 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, Callable, Dict, Generic, Optional, TypeVar +from typing import Any, Callable, Dict, Generic, Optional, TypeVar, Union import warnings 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 @@ -46,7 +48,7 @@ async def list_by_extended_resource( resource_namespace: str, resource_type: str, resource_name: str, - **kwargs + **kwargs: Any ) -> "_models.ServerVulnerabilityAssessmentsList": """Gets a list of server vulnerability assessment onboarding statuses on a given resource. @@ -113,7 +115,7 @@ async def get( resource_namespace: str, resource_type: str, resource_name: str, - **kwargs + **kwargs: Any ) -> "_models.ServerVulnerabilityAssessment": """Gets a server vulnerability assessment onboarding statuses on a given resource. @@ -182,7 +184,7 @@ async def create_or_update( resource_namespace: str, resource_type: str, resource_name: str, - **kwargs + **kwargs: Any ) -> "_models.ServerVulnerabilityAssessment": """Creating a server vulnerability assessment on a resource, which will onboard a resource for having a vulnerability assessment on it. @@ -246,30 +248,14 @@ async def create_or_update( return deserialized create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceNamespace}/{resourceType}/{resourceName}/providers/Microsoft.Security/serverVulnerabilityAssessments/{serverVulnerabilityAssessment}'} # type: ignore - async def delete( + async def _delete_initial( self, resource_group_name: str, resource_namespace: str, resource_type: str, resource_name: str, - **kwargs + **kwargs: Any ) -> None: - """Removing server vulnerability assessment from a resource. - - :param resource_group_name: The name of the resource group within the user's subscription. The - name is case insensitive. - :type resource_group_name: str - :param resource_namespace: The Namespace of the resource. - :type resource_namespace: str - :param resource_type: The type of the resource. - :type resource_type: str - :param resource_name: Name of the resource. - :type resource_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: None, or the result of cls(response) - :rtype: None - :raises: ~azure.core.exceptions.HttpResponseError - """ cls = kwargs.pop('cls', None) # type: ClsType[None] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError @@ -280,7 +266,7 @@ async def delete( accept = "application/json" # Construct URL - url = self.delete.metadata['url'] # type: ignore + url = self._delete_initial.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), @@ -303,11 +289,88 @@ async def delete( pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response - if response.status_code not in [200, 204]: + 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceNamespace}/{resourceType}/{resourceName}/providers/Microsoft.Security/serverVulnerabilityAssessments/{serverVulnerabilityAssessment}'} # type: ignore + _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceNamespace}/{resourceType}/{resourceName}/providers/Microsoft.Security/serverVulnerabilityAssessments/{serverVulnerabilityAssessment}'} # type: ignore + + async def begin_delete( + self, + resource_group_name: str, + resource_namespace: str, + resource_type: str, + resource_name: str, + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Removing server vulnerability assessment from a resource. + + :param resource_group_name: The name of the resource group within the user's subscription. The + name is case insensitive. + :type resource_group_name: str + :param resource_namespace: The Namespace of the resource. + :type resource_namespace: str + :param resource_type: The type of the resource. + :type resource_type: str + :param resource_name: Name of the resource. + :type resource_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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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, + resource_namespace=resource_namespace, + resource_type=resource_type, + resource_name=resource_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, {}) + + server_vulnerability_assessment = "default" + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'resourceNamespace': self._serialize.url("resource_namespace", resource_namespace, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + 'serverVulnerabilityAssessment': self._serialize.url("server_vulnerability_assessment", server_vulnerability_assessment, 'str'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'location'}, 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/{resourceNamespace}/{resourceType}/{resourceName}/providers/Microsoft.Security/serverVulnerabilityAssessments/{serverVulnerabilityAssessment}'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_settings_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_settings_operations.py index 1fa7bef6e559..bd641d4d7e72 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_settings_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_settings_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.SettingsList"]: """Settings about different configurations in security center. @@ -57,7 +57,7 @@ def list( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-01-01" + api_version = "2021-07-01" accept = "application/json" def prepare_request(next_link=None): @@ -109,13 +109,13 @@ async def get_next(next_link=None): async def get( self, - setting_name: Union[str, "_models.Enum3"], - **kwargs + setting_name: Union[str, "_models.Enum69"], + **kwargs: Any ) -> "_models.Setting": """Settings of different configurations in security center. - :param setting_name: Name of setting: (MCAS/WDATP). - :type setting_name: str or ~azure.mgmt.security.models.Enum3 + :param setting_name: The name of the setting. + :type setting_name: str or ~azure.mgmt.security.models.Enum69 :keyword callable cls: A custom type or function that will be passed the direct response :return: Setting, or the result of cls(response) :rtype: ~azure.mgmt.security.models.Setting @@ -126,7 +126,7 @@ async def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-01-01" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -163,14 +163,14 @@ async def get( async def update( self, - setting_name: Union[str, "_models.Enum3"], + setting_name: Union[str, "_models.Enum69"], setting: "_models.Setting", - **kwargs + **kwargs: Any ) -> "_models.Setting": """updating settings about different configurations in security center. - :param setting_name: Name of setting: (MCAS/WDATP). - :type setting_name: str or ~azure.mgmt.security.models.Enum3 + :param setting_name: The name of the setting. + :type setting_name: str or ~azure.mgmt.security.models.Enum69 :param setting: Setting object. :type setting: ~azure.mgmt.security.models.Setting :keyword callable cls: A custom type or function that will be passed the direct response @@ -183,7 +183,7 @@ async def update( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-01-01" + api_version = "2021-07-01" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_recommendations_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_software_inventories_operations.py similarity index 53% rename from sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_recommendations_operations.py rename to sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_software_inventories_operations.py index 21150eab40d6..d38fc050a78a 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_iot_recommendations_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_software_inventories_operations.py @@ -19,8 +19,8 @@ T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] -class IotRecommendationsOperations: - """IotRecommendationsOperations async operations. +class SoftwareInventoriesOperations: + """SoftwareInventoriesOperations 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. @@ -41,42 +41,36 @@ def __init__(self, client, config, serializer, deserializer) -> None: self._deserialize = deserializer self._config = config - def list( + def list_by_extended_resource( self, resource_group_name: str, - solution_name: str, - recommendation_type: Optional[str] = None, - device_id: Optional[str] = None, - limit: Optional[int] = None, - skip_token: Optional[str] = None, - **kwargs - ) -> AsyncIterable["_models.IotRecommendationList"]: - """List IoT recommendations. + resource_namespace: str, + resource_type: str, + resource_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.SoftwaresList"]: + """Gets the software inventory of the virtual machine. :param resource_group_name: The name of the resource group within the user's subscription. The name is case insensitive. :type resource_group_name: str - :param solution_name: The name of the IoT Security solution. - :type solution_name: str - :param recommendation_type: Filter by recommendation type. - :type recommendation_type: str - :param device_id: Filter by device id. - :type device_id: str - :param limit: Limit the number of items returned in a single page. - :type limit: int - :param skip_token: Skip token used for pagination. - :type skip_token: str + :param resource_namespace: The namespace of the resource. + :type resource_namespace: str + :param resource_type: The type of the resource. + :type resource_type: str + :param resource_name: Name of the resource. + :type resource_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either IotRecommendationList or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.security.models.IotRecommendationList] + :return: An iterator like instance of either SoftwaresList or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.security.models.SoftwaresList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotRecommendationList"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SoftwaresList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-08-01" + api_version = "2021-05-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -86,24 +80,18 @@ def prepare_request(next_link=None): if not next_link: # Construct URL - url = self.list.metadata['url'] # type: ignore + url = self.list_by_extended_resource.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'solutionName': self._serialize.url("solution_name", solution_name, 'str'), + 'resourceNamespace': self._serialize.url("resource_namespace", resource_namespace, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_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') - if recommendation_type is not None: - query_parameters['recommendationType'] = self._serialize.query("recommendation_type", recommendation_type, 'str') - if device_id is not None: - query_parameters['deviceId'] = self._serialize.query("device_id", device_id, 'str') - if limit is not None: - query_parameters['$limit'] = self._serialize.query("limit", limit, 'int') - if skip_token is not None: - query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, 'str') request = self._client.get(url, query_parameters, header_parameters) else: @@ -113,7 +101,7 @@ def prepare_request(next_link=None): return request async def extract_data(pipeline_response): - deserialized = self._deserialize('IotRecommendationList', pipeline_response) + deserialized = self._deserialize('SoftwaresList', pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -134,105 +122,25 @@ async def get_next(next_link=None): return AsyncItemPaged( get_next, extract_data ) - list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotRecommendations'} # type: ignore + list_by_extended_resource.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceNamespace}/{resourceType}/{resourceName}/providers/Microsoft.Security/softwareInventories'} # type: ignore - async def get( + def list_by_subscription( self, - resource_group_name: str, - solution_name: str, - iot_recommendation_id: str, - **kwargs - ) -> "_models.IotRecommendation": - """Get IoT recommendation. + **kwargs: Any + ) -> AsyncIterable["_models.SoftwaresList"]: + """Gets the software inventory of all virtual machines in the subscriptions. - :param resource_group_name: The name of the resource group within the user's subscription. The - name is case insensitive. - :type resource_group_name: str - :param solution_name: The name of the IoT Security solution. - :type solution_name: str - :param iot_recommendation_id: Id of the recommendation. - :type iot_recommendation_id: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotRecommendation, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotRecommendation + :return: An iterator like instance of either SoftwaresList or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.security.models.SoftwaresList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotRecommendation"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SoftwaresList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-08-01" - 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'solutionName': self._serialize.url("solution_name", solution_name, 'str'), - 'iotRecommendationId': self._serialize.url("iot_recommendation_id", iot_recommendation_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('IotRecommendation', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotRecommendations/{iotRecommendationId}'} # type: ignore - - def list_at_scope( - self, - scope: str, - recommendation_type: Optional[str] = None, - device_id: Optional[str] = None, - limit: Optional[int] = None, - skip_token: Optional[str] = None, - **kwargs - ) -> AsyncIterable["_models.IotRecommendationListModel"]: - """List IoT recommendations. - - :param scope: Scope of the query: Subscription (i.e. /subscriptions/{subscriptionId}) or IoT - Hub (i.e. - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Devices/iotHubs/{iotHubName}). - :type scope: str - :param recommendation_type: Filter by recommendation type. - :type recommendation_type: str - :param device_id: Filter by device id. - :type device_id: str - :param limit: Limit the number of items returned in a single page. - :type limit: int - :param skip_token: Skip token used for pagination. - :type skip_token: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either IotRecommendationListModel or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.security.models.IotRecommendationListModel] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotRecommendationListModel"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" + api_version = "2021-05-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -242,22 +150,14 @@ def prepare_request(next_link=None): if not next_link: # Construct URL - url = self.list_at_scope.metadata['url'] # type: ignore + url = self.list_by_subscription.metadata['url'] # type: ignore path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), } 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 recommendation_type is not None: - query_parameters['recommendationType'] = self._serialize.query("recommendation_type", recommendation_type, 'str') - if device_id is not None: - query_parameters['deviceId'] = self._serialize.query("device_id", device_id, 'str') - if limit is not None: - query_parameters['$limit'] = self._serialize.query("limit", limit, 'int') - if skip_token is not None: - query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, 'str') request = self._client.get(url, query_parameters, header_parameters) else: @@ -267,7 +167,7 @@ def prepare_request(next_link=None): return request async def extract_data(pipeline_response): - deserialized = self._deserialize('IotRecommendationListModel', pipeline_response) + deserialized = self._deserialize('SoftwaresList', pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -288,40 +188,52 @@ async def get_next(next_link=None): return AsyncItemPaged( get_next, extract_data ) - list_at_scope.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotRecommendations'} # type: ignore + list_by_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/softwareInventories'} # type: ignore - async def get_at_scope( + async def get( self, - scope: str, - iot_recommendation_id: str, - **kwargs - ) -> "_models.IotRecommendationModel": - """Get IoT recommendation. - - :param scope: Scope of the query: Subscription (i.e. /subscriptions/{subscriptionId}) or IoT - Hub (i.e. - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Devices/iotHubs/{iotHubName}). - :type scope: str - :param iot_recommendation_id: Id of the recommendation. - :type iot_recommendation_id: str + resource_group_name: str, + resource_namespace: str, + resource_type: str, + resource_name: str, + software_name: str, + **kwargs: Any + ) -> "_models.Software": + """Gets a single software data of the virtual machine. + + :param resource_group_name: The name of the resource group within the user's subscription. The + name is case insensitive. + :type resource_group_name: str + :param resource_namespace: The namespace of the resource. + :type resource_namespace: str + :param resource_type: The type of the resource. + :type resource_type: str + :param resource_name: Name of the resource. + :type resource_name: str + :param software_name: Name of the installed software. + :type software_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotRecommendationModel, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotRecommendationModel + :return: Software, or the result of cls(response) + :rtype: ~azure.mgmt.security.models.Software :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotRecommendationModel"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Software"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" + api_version = "2021-05-01-preview" accept = "application/json" # Construct URL - url = self.get_at_scope.metadata['url'] # type: ignore + url = self.get.metadata['url'] # type: ignore path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - 'iotRecommendationId': self._serialize.url("iot_recommendation_id", iot_recommendation_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'resourceNamespace': self._serialize.url("resource_namespace", resource_namespace, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + 'softwareName': self._serialize.url("software_name", software_name, 'str'), } url = self._client.format_url(url, **path_format_arguments) @@ -341,10 +253,10 @@ async def get_at_scope( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize('IotRecommendationModel', pipeline_response) + deserialized = self._deserialize('Software', pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - get_at_scope.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotRecommendations/{iotRecommendationId}'} # type: ignore + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceNamespace}/{resourceType}/{resourceName}/providers/Microsoft.Security/softwareInventories/{softwareName}'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_sql_vulnerability_assessment_baseline_rules_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_sql_vulnerability_assessment_baseline_rules_operations.py index 53fe4b6c5066..025272f789c9 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_sql_vulnerability_assessment_baseline_rules_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_sql_vulnerability_assessment_baseline_rules_operations.py @@ -46,7 +46,7 @@ async def create_or_update( workspace_id: str, resource_id: str, body: Optional["_models.RuleResultsInput"] = None, - **kwargs + **kwargs: Any ) -> "_models.RuleResults": """Creates a Baseline for a rule in a database. Will overwrite any previously existing results. @@ -119,7 +119,7 @@ async def get( rule_id: str, workspace_id: str, resource_id: str, - **kwargs + **kwargs: Any ) -> "_models.RuleResults": """Gets the results for a given rule in the Baseline. @@ -182,7 +182,7 @@ async def delete( rule_id: str, workspace_id: str, resource_id: str, - **kwargs + **kwargs: Any ) -> None: """Deletes a rule from the Baseline of a given database. @@ -241,7 +241,7 @@ async def list( self, workspace_id: str, resource_id: str, - **kwargs + **kwargs: Any ) -> "_models.RulesResults": """Gets the results for all rules in the Baseline. @@ -301,7 +301,7 @@ async def add( workspace_id: str, resource_id: str, body: Optional["_models.RulesResultsInput"] = None, - **kwargs + **kwargs: Any ) -> "_models.RulesResults": """Add a list of baseline rules. Will overwrite any previously existing results (for all rules). diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_sql_vulnerability_assessment_scan_results_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_sql_vulnerability_assessment_scan_results_operations.py index 31723efbf0a8..0ff8ebb2bbe3 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_sql_vulnerability_assessment_scan_results_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_sql_vulnerability_assessment_scan_results_operations.py @@ -46,7 +46,7 @@ async def get( scan_result_id: str, workspace_id: str, resource_id: str, - **kwargs + **kwargs: Any ) -> "_models.ScanResult": """Gets the scan results of a single rule in a scan record. @@ -112,7 +112,7 @@ async def list( scan_id: str, workspace_id: str, resource_id: str, - **kwargs + **kwargs: Any ) -> "_models.ScanResults": """Gets a list of scan results for a single scan record. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_sql_vulnerability_assessment_scans_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_sql_vulnerability_assessment_scans_operations.py index 5c43e253a792..dc4e1348504b 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_sql_vulnerability_assessment_scans_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_sql_vulnerability_assessment_scans_operations.py @@ -45,7 +45,7 @@ async def get( scan_id: str, workspace_id: str, resource_id: str, - **kwargs + **kwargs: Any ) -> "_models.Scan": """Gets the scan details of a single scan record. @@ -107,7 +107,7 @@ async def list( self, workspace_id: str, resource_id: str, - **kwargs + **kwargs: Any ) -> "_models.Scans": """Gets a list of scan records. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_sub_assessments_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_sub_assessments_operations.py index 53f4871a1584..36f502551163 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_sub_assessments_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_sub_assessments_operations.py @@ -44,12 +44,12 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list_all( self, scope: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.SecuritySubAssessmentList"]: """Get security sub-assessments on all your scanned resources inside a subscription scope. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :keyword callable cls: A custom type or function that will be passed the direct response @@ -116,12 +116,12 @@ def list( self, scope: str, assessment_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.SecuritySubAssessmentList"]: """Get security sub-assessments on all your scanned resources inside a scope. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :param assessment_name: The Assessment Key - Unique key for the assessment type. @@ -192,12 +192,12 @@ async def get( scope: str, assessment_name: str, sub_assessment_name: str, - **kwargs + **kwargs: Any ) -> "_models.SecuritySubAssessment": """Get a security sub-assessment on your scanned resource. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :param assessment_name: The Assessment Key - Unique key for the assessment type. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_tasks_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_tasks_operations.py index cd494576ed07..db7bbd5d59af 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_tasks_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_tasks_operations.py @@ -44,7 +44,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, filter: Optional[str] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.SecurityTaskList"]: """Recommended tasks that will help improve the security of the subscription proactively. @@ -115,7 +115,7 @@ async def get_next(next_link=None): def list_by_home_region( self, filter: Optional[str] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.SecurityTaskList"]: """Recommended tasks that will help improve the security of the subscription proactively. @@ -187,7 +187,7 @@ async def get_next(next_link=None): async def get_subscription_level_task( self, task_name: str, - **kwargs + **kwargs: Any ) -> "_models.SecurityTask": """Recommended tasks that will help improve the security of the subscription proactively. @@ -242,15 +242,15 @@ async def get_subscription_level_task( async def update_subscription_level_task_state( self, task_name: str, - task_update_action_type: Union[str, "_models.Enum15"], - **kwargs + task_update_action_type: Union[str, "_models.Enum13"], + **kwargs: Any ) -> None: """Recommended tasks that will help improve the security of the subscription proactively. :param task_name: Name of the task object, will be a GUID. :type task_name: str :param task_update_action_type: Type of the action to do on the task. - :type task_update_action_type: str or ~azure.mgmt.security.models.Enum15 + :type task_update_action_type: str or ~azure.mgmt.security.models.Enum13 :keyword callable cls: A custom type or function that will be passed the direct response :return: None, or the result of cls(response) :rtype: None @@ -299,7 +299,7 @@ def list_by_resource_group( self, resource_group_name: str, filter: Optional[str] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.SecurityTaskList"]: """Recommended tasks that will help improve the security of the subscription proactively. @@ -376,7 +376,7 @@ async def get_resource_group_level_task( self, resource_group_name: str, task_name: str, - **kwargs + **kwargs: Any ) -> "_models.SecurityTask": """Recommended tasks that will help improve the security of the subscription proactively. @@ -436,8 +436,8 @@ async def update_resource_group_level_task_state( self, resource_group_name: str, task_name: str, - task_update_action_type: Union[str, "_models.Enum15"], - **kwargs + task_update_action_type: Union[str, "_models.Enum13"], + **kwargs: Any ) -> None: """Recommended tasks that will help improve the security of the subscription proactively. @@ -447,7 +447,7 @@ async def update_resource_group_level_task_state( :param task_name: Name of the task object, will be a GUID. :type task_name: str :param task_update_action_type: Type of the action to do on the task. - :type task_update_action_type: str or ~azure.mgmt.security.models.Enum15 + :type task_update_action_type: str or ~azure.mgmt.security.models.Enum13 :keyword callable cls: A custom type or function that will be passed the direct response :return: None, or the result of cls(response) :rtype: None diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_topology_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_topology_operations.py index 12a1223032bd..9f2d93a6b94c 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_topology_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_topology_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.TopologyList"]: """Gets a list that allows to build a topology view of a subscription. @@ -109,7 +109,7 @@ async def get_next(next_link=None): def list_by_home_region( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.TopologyList"]: """Gets a list that allows to build a topology view of a subscription and location. @@ -178,7 +178,7 @@ async def get( self, resource_group_name: str, topology_resource_name: str, - **kwargs + **kwargs: Any ) -> "_models.TopologyResource": """Gets a specific topology component. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_workspace_settings_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_workspace_settings_operations.py index a3389b20ece8..e2f283eec3d4 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_workspace_settings_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/aio/operations/_workspace_settings_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.WorkspaceSettingList"]: """Settings about where we should store your security data and logs. If the result is empty, it means that no custom-workspace configuration was set. @@ -111,7 +111,7 @@ async def get_next(next_link=None): async def get( self, workspace_setting_name: str, - **kwargs + **kwargs: Any ) -> "_models.WorkspaceSetting": """Settings about where we should store your security data and logs. If the result is empty, it means that no custom-workspace configuration was set. @@ -167,7 +167,7 @@ async def create( self, workspace_setting_name: str, workspace_setting: "_models.WorkspaceSetting", - **kwargs + **kwargs: Any ) -> "_models.WorkspaceSetting": """creating settings about where we should store your security data and logs. @@ -229,7 +229,7 @@ async def update( self, workspace_setting_name: str, workspace_setting: "_models.WorkspaceSetting", - **kwargs + **kwargs: Any ) -> "_models.WorkspaceSetting": """Settings about where we should store your security data and logs. @@ -290,7 +290,7 @@ async def update( async def delete( self, workspace_setting_name: str, - **kwargs + **kwargs: Any ) -> None: """Deletes the custom workspace settings for this subscription. new VMs will report to the default workspace. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/__init__.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/__init__.py index ebc6c7fb5d4a..f841b789d1e3 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/__init__.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/__init__.py @@ -18,10 +18,15 @@ from ._models_py3 import AdaptiveNetworkHardeningEnforceRequest from ._models_py3 import AdaptiveNetworkHardeningsList from ._models_py3 import AdditionalData + from ._models_py3 import AdditionalWorkspacesProperties from ._models_py3 import AdvancedThreatProtectionSetting from ._models_py3 import Alert from ._models_py3 import AlertEntity from ._models_py3 import AlertList + from ._models_py3 import AlertSimulatorBundlesRequestProperties + from ._models_py3 import AlertSimulatorRequestBody + from ._models_py3 import AlertSimulatorRequestProperties + from ._models_py3 import AlertSyncSettings from ._models_py3 import AlertsSuppressionRule from ._models_py3 import AlertsSuppressionRulesList from ._models_py3 import AllowedConnectionsList @@ -63,6 +68,7 @@ from ._models_py3 import CVSS from ._models_py3 import CefExternalSecuritySolution from ._models_py3 import CefSolutionProperties + from ._models_py3 import CloudErrorBody from ._models_py3 import Compliance from ._models_py3 import ComplianceList from ._models_py3 import ComplianceResult @@ -71,6 +77,8 @@ from ._models_py3 import ConnectableResource from ._models_py3 import ConnectedResource from ._models_py3 import ConnectedWorkspace + from ._models_py3 import ConnectionFromIpNotAllowed + from ._models_py3 import ConnectionStrings from ._models_py3 import ConnectionToIpNotAllowed from ._models_py3 import ConnectorSetting from ._models_py3 import ConnectorSettingList @@ -78,8 +86,6 @@ from ._models_py3 import CustomAlertRule from ._models_py3 import DataExportSettings from ._models_py3 import DenylistCustomAlertRule - from ._models_py3 import Device - from ._models_py3 import DeviceList from ._models_py3 import DeviceSecurityGroup from ._models_py3 import DeviceSecurityGroupList from ._models_py3 import DirectMethodInvokesNotInAllowedRange @@ -87,13 +93,13 @@ from ._models_py3 import DiscoveredSecuritySolutionList from ._models_py3 import ETag from ._models_py3 import EffectiveNetworkSecurityGroups + from ._models_py3 import ErrorAdditionalInfo from ._models_py3 import ExternalSecuritySolution from ._models_py3 import ExternalSecuritySolutionKind from ._models_py3 import ExternalSecuritySolutionList from ._models_py3 import ExternalSecuritySolutionProperties from ._models_py3 import FailedLocalLoginsNotInAllowedRange from ._models_py3 import FileUploadsNotInAllowedRange - from ._models_py3 import Firmware from ._models_py3 import GcpCredentialsDetailsProperties from ._models_py3 import HttpC2DMessagesNotInAllowedRange from ._models_py3 import HttpC2DRejectedMessagesNotInAllowedRange @@ -103,6 +109,10 @@ from ._models_py3 import InformationProtectionPolicy from ._models_py3 import InformationProtectionPolicyList from ._models_py3 import InformationType + from ._models_py3 import IngestionConnectionString + from ._models_py3 import IngestionSetting + from ._models_py3 import IngestionSettingList + from ._models_py3 import IngestionSettingToken from ._models_py3 import IoTSecurityAggregatedAlert from ._models_py3 import IoTSecurityAggregatedAlertList from ._models_py3 import IoTSecurityAggregatedAlertPropertiesTopDevicesListItem @@ -117,25 +127,6 @@ from ._models_py3 import IoTSecuritySolutionModel from ._models_py3 import IoTSecuritySolutionsList from ._models_py3 import IoTSeverityMetrics - from ._models_py3 import IotAlert - from ._models_py3 import IotAlertList - from ._models_py3 import IotAlertListModel - from ._models_py3 import IotAlertModel - from ._models_py3 import IotAlertType - from ._models_py3 import IotAlertTypeList - from ._models_py3 import IotDefenderSettingsList - from ._models_py3 import IotDefenderSettingsModel - from ._models_py3 import IotRecommendation - from ._models_py3 import IotRecommendationList - from ._models_py3 import IotRecommendationListModel - from ._models_py3 import IotRecommendationModel - from ._models_py3 import IotRecommendationType - from ._models_py3 import IotRecommendationTypeList - from ._models_py3 import IotSensorsList - from ._models_py3 import IotSensorsModel - from ._models_py3 import IotSitesList - from ._models_py3 import IotSitesModel - from ._models_py3 import IpAddress from ._models_py3 import JitNetworkAccessPoliciesList from ._models_py3 import JitNetworkAccessPolicy from ._models_py3 import JitNetworkAccessPolicyInitiatePort @@ -151,32 +142,19 @@ from ._models_py3 import LocalUserNotAllowed from ._models_py3 import Location from ._models_py3 import LogAnalyticsIdentifier - from ._models_py3 import MacAddress from ._models_py3 import MqttC2DMessagesNotInAllowedRange from ._models_py3 import MqttC2DRejectedMessagesNotInAllowedRange from ._models_py3 import MqttD2CMessagesNotInAllowedRange - from ._models_py3 import NetworkInterface - from ._models_py3 import OnPremiseIotSensor - from ._models_py3 import OnPremiseIotSensorsList from ._models_py3 import OnPremiseResourceDetails from ._models_py3 import OnPremiseSqlResourceDetails from ._models_py3 import Operation from ._models_py3 import OperationDisplay from ._models_py3 import OperationList - from ._models_py3 import PackageDownloadInfo - from ._models_py3 import PackageDownloads - from ._models_py3 import PackageDownloadsCentralManager - from ._models_py3 import PackageDownloadsCentralManagerFull - from ._models_py3 import PackageDownloadsCentralManagerFullOvf - from ._models_py3 import PackageDownloadsSensor - from ._models_py3 import PackageDownloadsSensorFull - from ._models_py3 import PackageDownloadsSensorFullOvf from ._models_py3 import PathRecommendation from ._models_py3 import Pricing from ._models_py3 import PricingList from ._models_py3 import ProcessNotAllowed from ._models_py3 import ProtectionMode - from ._models_py3 import Protocol from ._models_py3 import ProxyServerProperties from ._models_py3 import PublisherInfo from ._models_py3 import QueryCheck @@ -189,7 +167,6 @@ from ._models_py3 import RegulatoryComplianceStandard from ._models_py3 import RegulatoryComplianceStandardList from ._models_py3 import Remediation - from ._models_py3 import ResetPasswordInput from ._models_py3 import Resource from ._models_py3 import ResourceDetails from ._models_py3 import ResourceIdentifier @@ -233,17 +210,18 @@ from ._models_py3 import SecurityTaskList from ._models_py3 import SecurityTaskParameters from ._models_py3 import SensitivityLabel - from ._models_py3 import Sensor from ._models_py3 import ServerVulnerabilityAssessment from ._models_py3 import ServerVulnerabilityAssessmentsList from ._models_py3 import ServerVulnerabilityProperties from ._models_py3 import ServicePrincipalProperties from ._models_py3 import Setting from ._models_py3 import SettingsList - from ._models_py3 import Site + from ._models_py3 import Software + from ._models_py3 import SoftwaresList from ._models_py3 import SqlServerVulnerabilityProperties from ._models_py3 import SubAssessmentStatus from ._models_py3 import SuppressionAlertsScope + from ._models_py3 import SystemData from ._models_py3 import Tags from ._models_py3 import TagsResource from ._models_py3 import ThresholdCustomAlertRule @@ -257,7 +235,6 @@ from ._models_py3 import TwinUpdatesNotInAllowedRange from ._models_py3 import UnauthorizedOperationsNotInAllowedRange from ._models_py3 import UpdateIotSecuritySolutionData - from ._models_py3 import UpgradePackageDownloadInfo from ._models_py3 import UserDefinedResourcesProperties from ._models_py3 import UserRecommendation from ._models_py3 import VaRule @@ -277,10 +254,15 @@ from ._models import AdaptiveNetworkHardeningEnforceRequest # type: ignore from ._models import AdaptiveNetworkHardeningsList # type: ignore from ._models import AdditionalData # type: ignore + from ._models import AdditionalWorkspacesProperties # type: ignore from ._models import AdvancedThreatProtectionSetting # type: ignore from ._models import Alert # type: ignore from ._models import AlertEntity # type: ignore from ._models import AlertList # type: ignore + from ._models import AlertSimulatorBundlesRequestProperties # type: ignore + from ._models import AlertSimulatorRequestBody # type: ignore + from ._models import AlertSimulatorRequestProperties # type: ignore + from ._models import AlertSyncSettings # type: ignore from ._models import AlertsSuppressionRule # type: ignore from ._models import AlertsSuppressionRulesList # type: ignore from ._models import AllowedConnectionsList # type: ignore @@ -322,6 +304,7 @@ from ._models import CVSS # type: ignore from ._models import CefExternalSecuritySolution # type: ignore from ._models import CefSolutionProperties # type: ignore + from ._models import CloudErrorBody # type: ignore from ._models import Compliance # type: ignore from ._models import ComplianceList # type: ignore from ._models import ComplianceResult # type: ignore @@ -330,6 +313,8 @@ from ._models import ConnectableResource # type: ignore from ._models import ConnectedResource # type: ignore from ._models import ConnectedWorkspace # type: ignore + from ._models import ConnectionFromIpNotAllowed # type: ignore + from ._models import ConnectionStrings # type: ignore from ._models import ConnectionToIpNotAllowed # type: ignore from ._models import ConnectorSetting # type: ignore from ._models import ConnectorSettingList # type: ignore @@ -337,8 +322,6 @@ from ._models import CustomAlertRule # type: ignore from ._models import DataExportSettings # type: ignore from ._models import DenylistCustomAlertRule # type: ignore - from ._models import Device # type: ignore - from ._models import DeviceList # type: ignore from ._models import DeviceSecurityGroup # type: ignore from ._models import DeviceSecurityGroupList # type: ignore from ._models import DirectMethodInvokesNotInAllowedRange # type: ignore @@ -346,13 +329,13 @@ from ._models import DiscoveredSecuritySolutionList # type: ignore from ._models import ETag # type: ignore from ._models import EffectiveNetworkSecurityGroups # type: ignore + from ._models import ErrorAdditionalInfo # type: ignore from ._models import ExternalSecuritySolution # type: ignore from ._models import ExternalSecuritySolutionKind # type: ignore from ._models import ExternalSecuritySolutionList # type: ignore from ._models import ExternalSecuritySolutionProperties # type: ignore from ._models import FailedLocalLoginsNotInAllowedRange # type: ignore from ._models import FileUploadsNotInAllowedRange # type: ignore - from ._models import Firmware # type: ignore from ._models import GcpCredentialsDetailsProperties # type: ignore from ._models import HttpC2DMessagesNotInAllowedRange # type: ignore from ._models import HttpC2DRejectedMessagesNotInAllowedRange # type: ignore @@ -362,6 +345,10 @@ from ._models import InformationProtectionPolicy # type: ignore from ._models import InformationProtectionPolicyList # type: ignore from ._models import InformationType # type: ignore + from ._models import IngestionConnectionString # type: ignore + from ._models import IngestionSetting # type: ignore + from ._models import IngestionSettingList # type: ignore + from ._models import IngestionSettingToken # type: ignore from ._models import IoTSecurityAggregatedAlert # type: ignore from ._models import IoTSecurityAggregatedAlertList # type: ignore from ._models import IoTSecurityAggregatedAlertPropertiesTopDevicesListItem # type: ignore @@ -376,25 +363,6 @@ from ._models import IoTSecuritySolutionModel # type: ignore from ._models import IoTSecuritySolutionsList # type: ignore from ._models import IoTSeverityMetrics # type: ignore - from ._models import IotAlert # type: ignore - from ._models import IotAlertList # type: ignore - from ._models import IotAlertListModel # type: ignore - from ._models import IotAlertModel # type: ignore - from ._models import IotAlertType # type: ignore - from ._models import IotAlertTypeList # type: ignore - from ._models import IotDefenderSettingsList # type: ignore - from ._models import IotDefenderSettingsModel # type: ignore - from ._models import IotRecommendation # type: ignore - from ._models import IotRecommendationList # type: ignore - from ._models import IotRecommendationListModel # type: ignore - from ._models import IotRecommendationModel # type: ignore - from ._models import IotRecommendationType # type: ignore - from ._models import IotRecommendationTypeList # type: ignore - from ._models import IotSensorsList # type: ignore - from ._models import IotSensorsModel # type: ignore - from ._models import IotSitesList # type: ignore - from ._models import IotSitesModel # type: ignore - from ._models import IpAddress # type: ignore from ._models import JitNetworkAccessPoliciesList # type: ignore from ._models import JitNetworkAccessPolicy # type: ignore from ._models import JitNetworkAccessPolicyInitiatePort # type: ignore @@ -410,32 +378,19 @@ from ._models import LocalUserNotAllowed # type: ignore from ._models import Location # type: ignore from ._models import LogAnalyticsIdentifier # type: ignore - from ._models import MacAddress # type: ignore from ._models import MqttC2DMessagesNotInAllowedRange # type: ignore from ._models import MqttC2DRejectedMessagesNotInAllowedRange # type: ignore from ._models import MqttD2CMessagesNotInAllowedRange # type: ignore - from ._models import NetworkInterface # type: ignore - from ._models import OnPremiseIotSensor # type: ignore - from ._models import OnPremiseIotSensorsList # type: ignore from ._models import OnPremiseResourceDetails # type: ignore from ._models import OnPremiseSqlResourceDetails # type: ignore from ._models import Operation # type: ignore from ._models import OperationDisplay # type: ignore from ._models import OperationList # type: ignore - from ._models import PackageDownloadInfo # type: ignore - from ._models import PackageDownloads # type: ignore - from ._models import PackageDownloadsCentralManager # type: ignore - from ._models import PackageDownloadsCentralManagerFull # type: ignore - from ._models import PackageDownloadsCentralManagerFullOvf # type: ignore - from ._models import PackageDownloadsSensor # type: ignore - from ._models import PackageDownloadsSensorFull # type: ignore - from ._models import PackageDownloadsSensorFullOvf # type: ignore from ._models import PathRecommendation # type: ignore from ._models import Pricing # type: ignore from ._models import PricingList # type: ignore from ._models import ProcessNotAllowed # type: ignore from ._models import ProtectionMode # type: ignore - from ._models import Protocol # type: ignore from ._models import ProxyServerProperties # type: ignore from ._models import PublisherInfo # type: ignore from ._models import QueryCheck # type: ignore @@ -448,7 +403,6 @@ from ._models import RegulatoryComplianceStandard # type: ignore from ._models import RegulatoryComplianceStandardList # type: ignore from ._models import Remediation # type: ignore - from ._models import ResetPasswordInput # type: ignore from ._models import Resource # type: ignore from ._models import ResourceDetails # type: ignore from ._models import ResourceIdentifier # type: ignore @@ -492,17 +446,18 @@ from ._models import SecurityTaskList # type: ignore from ._models import SecurityTaskParameters # type: ignore from ._models import SensitivityLabel # type: ignore - from ._models import Sensor # type: ignore from ._models import ServerVulnerabilityAssessment # type: ignore from ._models import ServerVulnerabilityAssessmentsList # type: ignore from ._models import ServerVulnerabilityProperties # type: ignore from ._models import ServicePrincipalProperties # type: ignore from ._models import Setting # type: ignore from ._models import SettingsList # type: ignore - from ._models import Site # type: ignore + from ._models import Software # type: ignore + from ._models import SoftwaresList # type: ignore from ._models import SqlServerVulnerabilityProperties # type: ignore from ._models import SubAssessmentStatus # type: ignore from ._models import SuppressionAlertsScope # type: ignore + from ._models import SystemData # type: ignore from ._models import Tags # type: ignore from ._models import TagsResource # type: ignore from ._models import ThresholdCustomAlertRule # type: ignore @@ -516,7 +471,6 @@ from ._models import TwinUpdatesNotInAllowedRange # type: ignore from ._models import UnauthorizedOperationsNotInAllowedRange # type: ignore from ._models import UpdateIotSecuritySolutionData # type: ignore - from ._models import UpgradePackageDownloadInfo # type: ignore from ._models import UserDefinedResourcesProperties # type: ignore from ._models import UserRecommendation # type: ignore from ._models import VaRule # type: ignore @@ -529,7 +483,8 @@ AadConnectivityStateEnum, ActionType, AdaptiveApplicationControlIssue, - AlertIntent, + AdditionalWorkspaceDataType, + AdditionalWorkspaceType, AlertNotifications, AlertSeverity, AlertStatus, @@ -539,21 +494,21 @@ AssessmentType, AuthenticationProvisioningState, AuthenticationType, - AuthorizationState, AutoProvision, - Category, + BundleType, + Categories, ConfigurationStatus, ConnectionType, ControlType, + CreatedByType, DataSource, - DeviceCriticality, - DeviceStatus, Direction, + EndOfSupportStatus, EnforcementMode, EnforcementSupport, + Enum13, Enum15, - Enum17, - Enum3, + Enum69, EventSource, ExpandControlsEnum, ExpandEnum, @@ -563,23 +518,18 @@ HybridComputeProvisioningState, ImplementationEffort, Intent, - MacSignificance, - ManagementState, + KindEnum, Operator, PermissionProperty, PricingTier, - ProgrammingState, PropertyType, ProtocolEnum, ProvisioningState, - PurdueLevel, Rank, RecommendationAction, RecommendationConfigStatus, - RecommendationSeverity, RecommendationStatus, RecommendationType, - RelationToIpStatus, ReportedSeverity, ResourceIdentifierType, ResourceStatus, @@ -589,10 +539,8 @@ RuleType, ScanState, ScanTriggerType, - ScanningFunctionality, SecurityFamily, SecuritySolutionStatus, - SensorStatus, ServerVulnerabilityAssessmentPropertiesProvisioningState, SettingKind, Severity, @@ -603,12 +551,10 @@ StatusReason, SubAssessmentStatusCode, Threats, - TiStatus, TransportProtocol, UnmaskedIpLoggingStatus, UserImpact, ValueType, - VersionKind, ) __all__ = [ @@ -623,10 +569,15 @@ 'AdaptiveNetworkHardeningEnforceRequest', 'AdaptiveNetworkHardeningsList', 'AdditionalData', + 'AdditionalWorkspacesProperties', 'AdvancedThreatProtectionSetting', 'Alert', 'AlertEntity', 'AlertList', + 'AlertSimulatorBundlesRequestProperties', + 'AlertSimulatorRequestBody', + 'AlertSimulatorRequestProperties', + 'AlertSyncSettings', 'AlertsSuppressionRule', 'AlertsSuppressionRulesList', 'AllowedConnectionsList', @@ -668,6 +619,7 @@ 'CVSS', 'CefExternalSecuritySolution', 'CefSolutionProperties', + 'CloudErrorBody', 'Compliance', 'ComplianceList', 'ComplianceResult', @@ -676,6 +628,8 @@ 'ConnectableResource', 'ConnectedResource', 'ConnectedWorkspace', + 'ConnectionFromIpNotAllowed', + 'ConnectionStrings', 'ConnectionToIpNotAllowed', 'ConnectorSetting', 'ConnectorSettingList', @@ -683,8 +637,6 @@ 'CustomAlertRule', 'DataExportSettings', 'DenylistCustomAlertRule', - 'Device', - 'DeviceList', 'DeviceSecurityGroup', 'DeviceSecurityGroupList', 'DirectMethodInvokesNotInAllowedRange', @@ -692,13 +644,13 @@ 'DiscoveredSecuritySolutionList', 'ETag', 'EffectiveNetworkSecurityGroups', + 'ErrorAdditionalInfo', 'ExternalSecuritySolution', 'ExternalSecuritySolutionKind', 'ExternalSecuritySolutionList', 'ExternalSecuritySolutionProperties', 'FailedLocalLoginsNotInAllowedRange', 'FileUploadsNotInAllowedRange', - 'Firmware', 'GcpCredentialsDetailsProperties', 'HttpC2DMessagesNotInAllowedRange', 'HttpC2DRejectedMessagesNotInAllowedRange', @@ -708,6 +660,10 @@ 'InformationProtectionPolicy', 'InformationProtectionPolicyList', 'InformationType', + 'IngestionConnectionString', + 'IngestionSetting', + 'IngestionSettingList', + 'IngestionSettingToken', 'IoTSecurityAggregatedAlert', 'IoTSecurityAggregatedAlertList', 'IoTSecurityAggregatedAlertPropertiesTopDevicesListItem', @@ -722,25 +678,6 @@ 'IoTSecuritySolutionModel', 'IoTSecuritySolutionsList', 'IoTSeverityMetrics', - 'IotAlert', - 'IotAlertList', - 'IotAlertListModel', - 'IotAlertModel', - 'IotAlertType', - 'IotAlertTypeList', - 'IotDefenderSettingsList', - 'IotDefenderSettingsModel', - 'IotRecommendation', - 'IotRecommendationList', - 'IotRecommendationListModel', - 'IotRecommendationModel', - 'IotRecommendationType', - 'IotRecommendationTypeList', - 'IotSensorsList', - 'IotSensorsModel', - 'IotSitesList', - 'IotSitesModel', - 'IpAddress', 'JitNetworkAccessPoliciesList', 'JitNetworkAccessPolicy', 'JitNetworkAccessPolicyInitiatePort', @@ -756,32 +693,19 @@ 'LocalUserNotAllowed', 'Location', 'LogAnalyticsIdentifier', - 'MacAddress', 'MqttC2DMessagesNotInAllowedRange', 'MqttC2DRejectedMessagesNotInAllowedRange', 'MqttD2CMessagesNotInAllowedRange', - 'NetworkInterface', - 'OnPremiseIotSensor', - 'OnPremiseIotSensorsList', 'OnPremiseResourceDetails', 'OnPremiseSqlResourceDetails', 'Operation', 'OperationDisplay', 'OperationList', - 'PackageDownloadInfo', - 'PackageDownloads', - 'PackageDownloadsCentralManager', - 'PackageDownloadsCentralManagerFull', - 'PackageDownloadsCentralManagerFullOvf', - 'PackageDownloadsSensor', - 'PackageDownloadsSensorFull', - 'PackageDownloadsSensorFullOvf', 'PathRecommendation', 'Pricing', 'PricingList', 'ProcessNotAllowed', 'ProtectionMode', - 'Protocol', 'ProxyServerProperties', 'PublisherInfo', 'QueryCheck', @@ -794,7 +718,6 @@ 'RegulatoryComplianceStandard', 'RegulatoryComplianceStandardList', 'Remediation', - 'ResetPasswordInput', 'Resource', 'ResourceDetails', 'ResourceIdentifier', @@ -838,17 +761,18 @@ 'SecurityTaskList', 'SecurityTaskParameters', 'SensitivityLabel', - 'Sensor', 'ServerVulnerabilityAssessment', 'ServerVulnerabilityAssessmentsList', 'ServerVulnerabilityProperties', 'ServicePrincipalProperties', 'Setting', 'SettingsList', - 'Site', + 'Software', + 'SoftwaresList', 'SqlServerVulnerabilityProperties', 'SubAssessmentStatus', 'SuppressionAlertsScope', + 'SystemData', 'Tags', 'TagsResource', 'ThresholdCustomAlertRule', @@ -862,7 +786,6 @@ 'TwinUpdatesNotInAllowedRange', 'UnauthorizedOperationsNotInAllowedRange', 'UpdateIotSecuritySolutionData', - 'UpgradePackageDownloadInfo', 'UserDefinedResourcesProperties', 'UserRecommendation', 'VaRule', @@ -873,7 +796,8 @@ 'AadConnectivityStateEnum', 'ActionType', 'AdaptiveApplicationControlIssue', - 'AlertIntent', + 'AdditionalWorkspaceDataType', + 'AdditionalWorkspaceType', 'AlertNotifications', 'AlertSeverity', 'AlertStatus', @@ -883,21 +807,21 @@ 'AssessmentType', 'AuthenticationProvisioningState', 'AuthenticationType', - 'AuthorizationState', 'AutoProvision', - 'Category', + 'BundleType', + 'Categories', 'ConfigurationStatus', 'ConnectionType', 'ControlType', + 'CreatedByType', 'DataSource', - 'DeviceCriticality', - 'DeviceStatus', 'Direction', + 'EndOfSupportStatus', 'EnforcementMode', 'EnforcementSupport', + 'Enum13', 'Enum15', - 'Enum17', - 'Enum3', + 'Enum69', 'EventSource', 'ExpandControlsEnum', 'ExpandEnum', @@ -907,23 +831,18 @@ 'HybridComputeProvisioningState', 'ImplementationEffort', 'Intent', - 'MacSignificance', - 'ManagementState', + 'KindEnum', 'Operator', 'PermissionProperty', 'PricingTier', - 'ProgrammingState', 'PropertyType', 'ProtocolEnum', 'ProvisioningState', - 'PurdueLevel', 'Rank', 'RecommendationAction', 'RecommendationConfigStatus', - 'RecommendationSeverity', 'RecommendationStatus', 'RecommendationType', - 'RelationToIpStatus', 'ReportedSeverity', 'ResourceIdentifierType', 'ResourceStatus', @@ -933,10 +852,8 @@ 'RuleType', 'ScanState', 'ScanTriggerType', - 'ScanningFunctionality', 'SecurityFamily', 'SecuritySolutionStatus', - 'SensorStatus', 'ServerVulnerabilityAssessmentPropertiesProvisioningState', 'SettingKind', 'Severity', @@ -947,10 +864,8 @@ 'StatusReason', 'SubAssessmentStatusCode', 'Threats', - 'TiStatus', 'TransportProtocol', 'UnmaskedIpLoggingStatus', 'UserImpact', 'ValueType', - 'VersionKind', ] diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_models.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_models.py index 9a5efeb9d418..13b2d159b9d3 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_models.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_models.py @@ -205,7 +205,7 @@ class ExternalSecuritySolutionProperties(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param device_vendor: :type device_vendor: str :param device_type: @@ -240,7 +240,7 @@ class AadSolutionProperties(ExternalSecuritySolutionProperties, AadConnectivityS :type connectivity_state: str or ~azure.mgmt.security.models.AadConnectivityStateEnum :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param device_vendor: :type device_vendor: str :param device_type: @@ -752,6 +752,33 @@ def __init__( self.assessed_resource_type = None # type: Optional[str] +class AdditionalWorkspacesProperties(msrest.serialization.Model): + """Properties of the additional workspaces. + + :param workspace: Workspace resource id. + :type workspace: str + :param type: Workspace type. Possible values include: "Sentinel". Default value: "Sentinel". + :type type: str or ~azure.mgmt.security.models.AdditionalWorkspaceType + :param data_types: List of data types sent to workspace. + :type data_types: list[str or ~azure.mgmt.security.models.AdditionalWorkspaceDataType] + """ + + _attribute_map = { + 'workspace': {'key': 'workspace', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'data_types': {'key': 'dataTypes', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(AdditionalWorkspacesProperties, self).__init__(**kwargs) + self.workspace = kwargs.get('workspace', None) + self.type = kwargs.get('type', "Sentinel") + self.data_types = kwargs.get('data_types', None) + + class AdvancedThreatProtectionSetting(Resource): """The Advanced Threat Protection resource. @@ -805,16 +832,16 @@ class Alert(Resource): :ivar system_alert_id: Unique identifier for the alert. :vartype system_alert_id: str :ivar product_component_name: The name of Azure Security Center pricing tier which powering - this alert. Learn more: https://docs.microsoft.com/en-us/azure/security-center/security-center- - pricing. + this alert. Learn more: + https://docs.microsoft.com/en-us/azure/security-center/security-center-pricing. :vartype product_component_name: str :ivar alert_display_name: The display name of the alert. :vartype alert_display_name: str :ivar description: Description of the suspicious activity that was detected. :vartype description: str :ivar severity: The risk level of the threat that was detected. Learn more: - https://docs.microsoft.com/en-us/azure/security-center/security-center-alerts-overview#how-are- - alerts-classified. Possible values include: "Informational", "Low", "Medium", "High". + https://docs.microsoft.com/en-us/azure/security-center/security-center-alerts-overview#how-are-alerts-classified. + Possible values include: "Informational", "Low", "Medium", "High". :vartype severity: str or ~azure.mgmt.security.models.AlertSeverity :ivar intent: The kill chain related intent behind the alert. For list of supported values, and explanations of Azure Security Center's supported kill chain intents. Possible values include: @@ -958,7 +985,7 @@ class AlertEntity(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar type: Type of entity. :vartype type: str """ @@ -1010,6 +1037,97 @@ def __init__( self.next_link = None +class AlertSimulatorRequestProperties(msrest.serialization.Model): + """Describes properties of an alert simulation request. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: AlertSimulatorBundlesRequestProperties. + + 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, any] + :param kind: Required. The kind of alert simulation.Constant filled by server. Possible values + include: "Bundles". + :type kind: str or ~azure.mgmt.security.models.KindEnum + """ + + _validation = { + 'kind': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'kind': {'key': 'kind', 'type': 'str'}, + } + + _subtype_map = { + 'kind': {'Bundles': 'AlertSimulatorBundlesRequestProperties'} + } + + def __init__( + self, + **kwargs + ): + super(AlertSimulatorRequestProperties, self).__init__(**kwargs) + self.additional_properties = kwargs.get('additional_properties', None) + self.kind = 'AlertSimulatorRequestProperties' # type: str + + +class AlertSimulatorBundlesRequestProperties(AlertSimulatorRequestProperties): + """Simulate alerts according to this bundles. + + 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, any] + :param kind: Required. The kind of alert simulation.Constant filled by server. Possible values + include: "Bundles". + :type kind: str or ~azure.mgmt.security.models.KindEnum + :param bundles: Bundles list. + :type bundles: list[str or ~azure.mgmt.security.models.BundleType] + """ + + _validation = { + 'kind': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'bundles': {'key': 'bundles', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(AlertSimulatorBundlesRequestProperties, self).__init__(**kwargs) + self.kind = 'Bundles' # type: str + self.bundles = kwargs.get('bundles', None) + + +class AlertSimulatorRequestBody(msrest.serialization.Model): + """Alert Simulator request body. + + :param properties: Alert Simulator request body data. + :type properties: ~azure.mgmt.security.models.AlertSimulatorRequestProperties + """ + + _attribute_map = { + 'properties': {'key': 'properties', 'type': 'AlertSimulatorRequestProperties'}, + } + + def __init__( + self, + **kwargs + ): + super(AlertSimulatorRequestBody, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) + + class AlertsSuppressionRule(Resource): """Describes the suppression rule. @@ -1105,6 +1223,97 @@ def __init__( self.next_link = None +class Setting(Resource): + """The kind of the security setting. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: AlertSyncSettings, DataExportSettings. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param kind: Required. the kind of the settings string.Constant filled by server. Possible + values include: "DataExportSettings", "AlertSuppressionSetting", "AlertSyncSettings". + :type kind: str or ~azure.mgmt.security.models.SettingKind + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'kind': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + } + + _subtype_map = { + 'kind': {'AlertSyncSettings': 'AlertSyncSettings', 'DataExportSettings': 'DataExportSettings'} + } + + def __init__( + self, + **kwargs + ): + super(Setting, self).__init__(**kwargs) + self.kind = 'Setting' # type: str + + +class AlertSyncSettings(Setting): + """Represents an alert sync setting. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param kind: Required. the kind of the settings string.Constant filled by server. Possible + values include: "DataExportSettings", "AlertSuppressionSetting", "AlertSyncSettings". + :type kind: str or ~azure.mgmt.security.models.SettingKind + :param enabled: Is the alert sync setting enabled. + :type enabled: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'kind': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(AlertSyncSettings, self).__init__(**kwargs) + self.kind = 'AlertSyncSettings' # type: str + self.enabled = kwargs.get('enabled', None) + + class AllowedConnectionsList(msrest.serialization.Model): """List of all possible traffic between Azure resources. @@ -1244,7 +1453,7 @@ class AllowlistCustomAlertRule(ListCustomAlertRule): """A custom alert rule that checks if a value (depends on the custom alert type) is allowed. You probably want to use the sub-classes and not this class directly. Known - sub-classes are: ConnectionToIpNotAllowed, LocalUserNotAllowed, ProcessNotAllowed. + sub-classes are: ConnectionFromIpNotAllowed, ConnectionToIpNotAllowed, LocalUserNotAllowed, ProcessNotAllowed. Variables are only populated by the server, and will be ignored when sending a request. @@ -1285,7 +1494,7 @@ class AllowlistCustomAlertRule(ListCustomAlertRule): } _subtype_map = { - 'rule_type': {'ConnectionToIpNotAllowed': 'ConnectionToIpNotAllowed', 'LocalUserNotAllowed': 'LocalUserNotAllowed', 'ProcessNotAllowed': 'ProcessNotAllowed'} + 'rule_type': {'ConnectionFromIpNotAllowed': 'ConnectionFromIpNotAllowed', 'ConnectionToIpNotAllowed': 'ConnectionToIpNotAllowed', 'LocalUserNotAllowed': 'LocalUserNotAllowed', 'ProcessNotAllowed': 'ProcessNotAllowed'} } def __init__( @@ -1462,7 +1671,7 @@ class AscLocation(Resource): :ivar type: Resource type. :vartype type: str :param properties: Any object. - :type properties: object + :type properties: any """ _validation = { @@ -1623,7 +1832,7 @@ class AtaSolutionProperties(ExternalSecuritySolutionProperties): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param device_vendor: :type device_vendor: str :param device_type: @@ -2140,7 +2349,9 @@ class AutomationSource(msrest.serialization.Model): """The source event types which evaluate the security automation set of rules. For example - security alerts and security assessments. To learn more about the supported security events data models schemas - please visit https://aka.ms/ASCAutomationSchemas. :param event_source: A valid event source type. Possible values include: "Assessments", - "SubAssessments", "Alerts", "SecureScores", "SecureScoreControls". + "SubAssessments", "Alerts", "SecureScores", "SecureScoresSnapshot", "SecureScoreControls", + "SecureScoreControlsSnapshot", "RegulatoryComplianceAssessment", + "RegulatoryComplianceAssessmentSnapshot". :type event_source: str or ~azure.mgmt.security.models.EventSource :param rule_sets: A set of rules which evaluate upon event interception. A logical disjunction is applied between defined rule sets (logical 'or'). @@ -2683,7 +2894,7 @@ class CefSolutionProperties(ExternalSecuritySolutionProperties): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param device_vendor: :type device_vendor: str :param device_type: @@ -2718,6 +2929,51 @@ def __init__( self.last_event_received = kwargs.get('last_event_received', None) +class CloudErrorBody(msrest.serialization.Model): + """The error detail. + + 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.security.models.CloudErrorBody] + :ivar additional_info: The error additional info. + :vartype additional_info: list[~azure.mgmt.security.models.ErrorAdditionalInfo] + """ + + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + 'target': {'readonly': True}, + 'details': {'readonly': True}, + 'additional_info': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[CloudErrorBody]'}, + 'additional_info': {'key': 'additionalInfo', 'type': '[ErrorAdditionalInfo]'}, + } + + def __init__( + self, + **kwargs + ): + super(CloudErrorBody, self).__init__(**kwargs) + self.code = None + self.message = None + self.target = None + self.details = None + self.additional_info = None + + class Compliance(Resource): """Compliance of a scope. @@ -2988,6 +3244,80 @@ def __init__( self.id = kwargs.get('id', None) +class ConnectionFromIpNotAllowed(AllowlistCustomAlertRule): + """Inbound connection from an ip that isn't allowed. Allow list consists of ipv4 or ipv6 range in CIDR notation. + + 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 display_name: The display name of the custom alert. + :vartype display_name: str + :ivar description: The description of the custom alert. + :vartype description: str + :param is_enabled: Required. Status of the custom alert. + :type is_enabled: bool + :param rule_type: Required. The type of the custom alert rule.Constant filled by server. + :type rule_type: str + :ivar value_type: The value type of the items in the list. Possible values include: "IpCidr", + "String". + :vartype value_type: str or ~azure.mgmt.security.models.ValueType + :param allowlist_values: Required. The values to allow. The format of the values depends on the + rule type. + :type allowlist_values: list[str] + """ + + _validation = { + 'display_name': {'readonly': True}, + 'description': {'readonly': True}, + 'is_enabled': {'required': True}, + 'rule_type': {'required': True}, + 'value_type': {'readonly': True}, + 'allowlist_values': {'required': True}, + } + + _attribute_map = { + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, + 'rule_type': {'key': 'ruleType', 'type': 'str'}, + 'value_type': {'key': 'valueType', 'type': 'str'}, + 'allowlist_values': {'key': 'allowlistValues', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(ConnectionFromIpNotAllowed, self).__init__(**kwargs) + self.rule_type = 'ConnectionFromIpNotAllowed' # type: str + + +class ConnectionStrings(msrest.serialization.Model): + """Connection string for ingesting security data and logs. + + All required parameters must be populated in order to send to Azure. + + :param value: Required. Connection strings. + :type value: list[~azure.mgmt.security.models.IngestionConnectionString] + """ + + _validation = { + 'value': {'required': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[IngestionConnectionString]'}, + } + + def __init__( + self, + **kwargs + ): + super(ConnectionStrings, self).__init__(**kwargs) + self.value = kwargs['value'] + + class ConnectionToIpNotAllowed(AllowlistCustomAlertRule): """Outbound connection to an ip that isn't allowed. Allow list consists of ipv4 or ipv6 range in CIDR notation. @@ -3233,11 +3563,8 @@ def __init__( self.base = None -class Setting(Resource): - """The kind of the security setting. - - You probably want to use the sub-classes and not this class directly. Known - sub-classes are: DataExportSettings. +class DataExportSettings(Setting): + """Represents a data export setting. Variables are only populated by the server, and will be ignored when sending a request. @@ -3249,9 +3576,11 @@ class Setting(Resource): :vartype name: str :ivar type: Resource type. :vartype type: str - :param kind: Required. the kind of the settings string (DataExportSettings).Constant filled by - server. Possible values include: "DataExportSettings", "AlertSuppressionSetting". + :param kind: Required. the kind of the settings string.Constant filled by server. Possible + values include: "DataExportSettings", "AlertSuppressionSetting", "AlertSyncSettings". :type kind: str or ~azure.mgmt.security.models.SettingKind + :param enabled: Is the data export setting enabled. + :type enabled: bool """ _validation = { @@ -3266,53 +3595,7 @@ class Setting(Resource): 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, 'kind': {'key': 'kind', 'type': 'str'}, - } - - _subtype_map = { - 'kind': {'DataExportSettings': 'DataExportSettings'} - } - - def __init__( - self, - **kwargs - ): - super(Setting, self).__init__(**kwargs) - self.kind = 'Setting' # type: str - - -class DataExportSettings(Setting): - """Represents a data export setting. - - 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: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :param kind: Required. the kind of the settings string (DataExportSettings).Constant filled by - server. Possible values include: "DataExportSettings", "AlertSuppressionSetting". - :type kind: str or ~azure.mgmt.security.models.SettingKind - :param enabled: Is the data export setting is enabled. - :type enabled: bool - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'kind': {'required': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'kind': {'key': 'kind', 'type': 'str'}, - 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, } def __init__( @@ -3374,190 +3657,6 @@ def __init__( self.denylist_values = kwargs['denylist_values'] -class Device(Resource): - """Device model. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :param display_name: Device display name given by the collector. - :type display_name: str - :param device_type: Device type. - :type device_type: str - :ivar source_name: The source that created the device. - :vartype source_name: str - :ivar network_interfaces: List of network interfaces. - :vartype network_interfaces: list[~azure.mgmt.security.models.NetworkInterface] - :ivar vendor: Device vendor. - :vartype vendor: str - :param os_name: Device operating system name. - :type os_name: str - :ivar protocols: List of protocols. - :vartype protocols: list[~azure.mgmt.security.models.Protocol] - :ivar last_active_time: last time the device was active in the network. - :vartype last_active_time: ~datetime.datetime - :ivar last_update_time: last time the device was updated. - :vartype last_update_time: ~datetime.datetime - :ivar management_state: Managed state of the device. Possible values include: "Managed", - "Unmanaged". - :vartype management_state: str or ~azure.mgmt.security.models.ManagementState - :param authorization_state: Authorized state of the device. Possible values include: - "Authorized", "Unauthorized". Default value: "Unauthorized". - :type authorization_state: str or ~azure.mgmt.security.models.AuthorizationState - :param device_criticality: Device criticality. Possible values include: "Important", - "Standard". Default value: "Standard". - :type device_criticality: str or ~azure.mgmt.security.models.DeviceCriticality - :param purdue_level: Purdue level of the device. Possible values include: "ProcessControl", - "Supervisory", "Enterprise". Default value: "ProcessControl". - :type purdue_level: str or ~azure.mgmt.security.models.PurdueLevel - :param notes: user notes for the device, up to 300 characters. - :type notes: str - :ivar firmwares: List of device firmwares. - :vartype firmwares: list[~azure.mgmt.security.models.Firmware] - :ivar discovery_time: Discovered time of the device. - :vartype discovery_time: ~datetime.datetime - :ivar programming_state: Indicates whether this device is programming. Possible values include: - "ProgrammingDevice", "NotProgrammingDevice". - :vartype programming_state: str or ~azure.mgmt.security.models.ProgrammingState - :ivar last_programming_time: last time the device was programming or programed. - :vartype last_programming_time: ~datetime.datetime - :ivar scanning_functionality: Indicates whether the device is a scanner. Possible values - include: "ScannerDevice", "NotScannerDevice". - :vartype scanning_functionality: str or ~azure.mgmt.security.models.ScanningFunctionality - :ivar last_scan_time: last time the device was scanning. - :vartype last_scan_time: ~datetime.datetime - :ivar risk_score: risk score of the device. - :vartype risk_score: int - :ivar sensors: List of sensors that scanned this device. - :vartype sensors: list[~azure.mgmt.security.models.Sensor] - :ivar site: Site data. - :vartype site: ~azure.mgmt.security.models.Site - :ivar device_status: Device status. Possible values include: "Active", "Removed". - :vartype device_status: str or ~azure.mgmt.security.models.DeviceStatus - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'source_name': {'readonly': True}, - 'network_interfaces': {'readonly': True}, - 'vendor': {'readonly': True}, - 'protocols': {'readonly': True}, - 'last_active_time': {'readonly': True}, - 'last_update_time': {'readonly': True}, - 'management_state': {'readonly': True}, - 'firmwares': {'readonly': True}, - 'discovery_time': {'readonly': True}, - 'programming_state': {'readonly': True}, - 'last_programming_time': {'readonly': True}, - 'scanning_functionality': {'readonly': True}, - 'last_scan_time': {'readonly': True}, - 'risk_score': {'readonly': True, 'maximum': 100, 'minimum': 0}, - 'sensors': {'readonly': True}, - 'site': {'readonly': True}, - 'device_status': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'display_name': {'key': 'properties.displayName', 'type': 'str'}, - 'device_type': {'key': 'properties.deviceType', 'type': 'str'}, - 'source_name': {'key': 'properties.sourceName', 'type': 'str'}, - 'network_interfaces': {'key': 'properties.networkInterfaces', 'type': '[NetworkInterface]'}, - 'vendor': {'key': 'properties.vendor', 'type': 'str'}, - 'os_name': {'key': 'properties.osName', 'type': 'str'}, - 'protocols': {'key': 'properties.protocols', 'type': '[Protocol]'}, - 'last_active_time': {'key': 'properties.lastActiveTime', 'type': 'iso-8601'}, - 'last_update_time': {'key': 'properties.lastUpdateTime', 'type': 'iso-8601'}, - 'management_state': {'key': 'properties.managementState', 'type': 'str'}, - 'authorization_state': {'key': 'properties.authorizationState', 'type': 'str'}, - 'device_criticality': {'key': 'properties.deviceCriticality', 'type': 'str'}, - 'purdue_level': {'key': 'properties.purdueLevel', 'type': 'str'}, - 'notes': {'key': 'properties.notes', 'type': 'str'}, - 'firmwares': {'key': 'properties.firmwares', 'type': '[Firmware]'}, - 'discovery_time': {'key': 'properties.discoveryTime', 'type': 'iso-8601'}, - 'programming_state': {'key': 'properties.programmingState', 'type': 'str'}, - 'last_programming_time': {'key': 'properties.lastProgrammingTime', 'type': 'iso-8601'}, - 'scanning_functionality': {'key': 'properties.scanningFunctionality', 'type': 'str'}, - 'last_scan_time': {'key': 'properties.lastScanTime', 'type': 'iso-8601'}, - 'risk_score': {'key': 'properties.riskScore', 'type': 'int'}, - 'sensors': {'key': 'properties.sensors', 'type': '[Sensor]'}, - 'site': {'key': 'properties.site', 'type': 'Site'}, - 'device_status': {'key': 'properties.deviceStatus', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(Device, self).__init__(**kwargs) - self.display_name = kwargs.get('display_name', None) - self.device_type = kwargs.get('device_type', None) - self.source_name = None - self.network_interfaces = None - self.vendor = None - self.os_name = kwargs.get('os_name', None) - self.protocols = None - self.last_active_time = None - self.last_update_time = None - self.management_state = None - self.authorization_state = kwargs.get('authorization_state', "Unauthorized") - self.device_criticality = kwargs.get('device_criticality', "Standard") - self.purdue_level = kwargs.get('purdue_level', "ProcessControl") - self.notes = kwargs.get('notes', None) - self.firmwares = None - self.discovery_time = None - self.programming_state = None - self.last_programming_time = None - self.scanning_functionality = None - self.last_scan_time = None - self.risk_score = None - self.sensors = None - self.site = None - self.device_status = None - - -class DeviceList(msrest.serialization.Model): - """List of Devices. - - 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 value: Required. List of devices. - :type value: list[~azure.mgmt.security.models.Device] - :ivar next_link: When there are too many devices for one page, use this URI to fetch the next - page. - :vartype next_link: str - """ - - _validation = { - 'value': {'required': True}, - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[Device]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(DeviceList, self).__init__(**kwargs) - self.value = kwargs['value'] - self.next_link = None - - class DeviceSecurityGroup(Resource): """The device security group resource. @@ -3805,6 +3904,36 @@ def __init__( self.network_security_groups = kwargs.get('network_security_groups', None) +class ErrorAdditionalInfo(msrest.serialization.Model): + """The resource management error additional info. + + 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: any + """ + + _validation = { + 'type': {'readonly': True}, + 'info': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'info': {'key': 'info', 'type': 'object'}, + } + + def __init__( + self, + **kwargs + ): + super(ErrorAdditionalInfo, self).__init__(**kwargs) + self.type = None + self.info = None + + class ExternalSecuritySolutionList(msrest.serialization.Model): """ExternalSecuritySolutionList. @@ -3936,61 +4065,6 @@ def __init__( self.rule_type = 'FileUploadsNotInAllowedRange' # type: str -class Firmware(msrest.serialization.Model): - """Firmware information. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar module_address: Address of the specific module a firmware is related to. - :vartype module_address: str - :ivar rack: Rack number of the module a firmware is related to. - :vartype rack: str - :ivar slot: Slot number in the rack of the module a firmware is related to. - :vartype slot: str - :ivar serial: Serial of the firmware. - :vartype serial: str - :ivar model: Firmware model. - :vartype model: str - :ivar version: Firmware version. - :vartype version: str - :ivar additional_data: A bag of fields which extends the firmware information. - :vartype additional_data: object - """ - - _validation = { - 'module_address': {'readonly': True}, - 'rack': {'readonly': True}, - 'slot': {'readonly': True}, - 'serial': {'readonly': True}, - 'model': {'readonly': True}, - 'version': {'readonly': True}, - 'additional_data': {'readonly': True}, - } - - _attribute_map = { - 'module_address': {'key': 'moduleAddress', 'type': 'str'}, - 'rack': {'key': 'rack', 'type': 'str'}, - 'slot': {'key': 'slot', 'type': 'str'}, - 'serial': {'key': 'serial', 'type': 'str'}, - 'model': {'key': 'model', 'type': 'str'}, - 'version': {'key': 'version', 'type': 'str'}, - 'additional_data': {'key': 'additionalData', 'type': 'object'}, - } - - def __init__( - self, - **kwargs - ): - super(Firmware, self).__init__(**kwargs) - self.module_address = None - self.rack = None - self.slot = None - self.serial = None - self.model = None - self.version = None - self.additional_data = None - - class GcpCredentialsDetailsProperties(AuthenticationDetailsProperties): """GCP cloud account connector based service to service credentials, the credentials are composed of the organization ID and a JSON API key (write only). @@ -4447,106 +4521,80 @@ def __init__( self.keywords = kwargs.get('keywords', None) -class IotAlert(msrest.serialization.Model): - """IoT alert. +class IngestionConnectionString(msrest.serialization.Model): + """Connection string for ingesting security data and logs. Variables are only populated by the server, and will be ignored when sending a request. - :ivar system_alert_id: Holds the product canonical identifier of the alert within the scope of - a product. - :vartype system_alert_id: str - :ivar compromised_entity: Display name of the main entity being reported on. - :vartype compromised_entity: str - :ivar alert_type: The type name of the alert. - :vartype alert_type: str - :ivar start_time_utc: The impact start time of the alert (the time of the first event or - activity included in the alert). - :vartype start_time_utc: str - :ivar end_time_utc: The impact end time of the alert (the time of the last event or activity - included in the alert). - :vartype end_time_utc: str - :param entities: A list of entities related to the alert. - :type entities: list[object] - :param extended_properties: A bag of fields which extends the alert information. - :type extended_properties: object + :ivar location: The region where ingested logs and data resides. + :vartype location: str + :ivar value: Connection string value. + :vartype value: str """ _validation = { - 'system_alert_id': {'readonly': True}, - 'compromised_entity': {'readonly': True}, - 'alert_type': {'readonly': True}, - 'start_time_utc': {'readonly': True}, - 'end_time_utc': {'readonly': True}, + 'location': {'readonly': True}, + 'value': {'readonly': True}, } _attribute_map = { - 'system_alert_id': {'key': 'properties.systemAlertId', 'type': 'str'}, - 'compromised_entity': {'key': 'properties.compromisedEntity', 'type': 'str'}, - 'alert_type': {'key': 'properties.alertType', 'type': 'str'}, - 'start_time_utc': {'key': 'properties.startTimeUtc', 'type': 'str'}, - 'end_time_utc': {'key': 'properties.endTimeUtc', 'type': 'str'}, - 'entities': {'key': 'properties.entities', 'type': '[object]'}, - 'extended_properties': {'key': 'properties.extendedProperties', 'type': 'object'}, + 'location': {'key': 'location', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, } def __init__( self, **kwargs ): - super(IotAlert, self).__init__(**kwargs) - self.system_alert_id = None - self.compromised_entity = None - self.alert_type = None - self.start_time_utc = None - self.end_time_utc = None - self.entities = kwargs.get('entities', None) - self.extended_properties = kwargs.get('extended_properties', None) + super(IngestionConnectionString, self).__init__(**kwargs) + self.location = None + self.value = None -class IotAlertList(msrest.serialization.Model): - """List of IoT alerts. +class IngestionSetting(Resource): + """Configures how to correlate scan data and logs with resources associated with the subscription. Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: List data. - :vartype value: list[~azure.mgmt.security.models.IotAlert] - :ivar next_link: When available, follow the URI to get the next page of data. - :vartype next_link: str - :ivar total_count: Total count of alerts that conforms with the given filter options (not - affected by page size). - :vartype total_count: int + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param properties: Ingestion setting data. + :type properties: any """ _validation = { - 'value': {'readonly': True}, - 'next_link': {'readonly': True}, - 'total_count': {'readonly': True}, + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[IotAlert]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - 'total_count': {'key': 'totalCount', 'type': 'int'}, + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'object'}, } def __init__( self, **kwargs ): - super(IotAlertList, self).__init__(**kwargs) - self.value = None - self.next_link = None - self.total_count = None + super(IngestionSetting, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) -class IotAlertListModel(msrest.serialization.Model): - """List of IoT alerts. +class IngestionSettingList(msrest.serialization.Model): + """List of ingestion settings. Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: List data. - :vartype value: list[~azure.mgmt.security.models.IotAlertModel] - :ivar next_link: When available, follow the URI to get the next page of data. + :ivar value: List of ingestion settings. + :vartype value: list[~azure.mgmt.security.models.IngestionSetting] + :ivar next_link: The URI to fetch the next page. :vartype next_link: str """ @@ -4556,7 +4604,7 @@ class IotAlertListModel(msrest.serialization.Model): } _attribute_map = { - 'value': {'key': 'value', 'type': '[IotAlertModel]'}, + 'value': {'key': 'value', 'type': '[IngestionSetting]'}, 'next_link': {'key': 'nextLink', 'type': 'str'}, } @@ -4564,408 +4612,480 @@ def __init__( self, **kwargs ): - super(IotAlertListModel, self).__init__(**kwargs) + super(IngestionSettingList, self).__init__(**kwargs) self.value = None self.next_link = None -class IotAlertModel(msrest.serialization.Model): - """IoT alert. +class IngestionSettingToken(msrest.serialization.Model): + """Configures how to correlate scan data and logs with resources associated with the subscription. Variables are only populated by the server, and will be ignored when sending a request. - :ivar system_alert_id: Holds the product canonical identifier of the alert within the scope of - a product. - :vartype system_alert_id: str - :ivar compromised_entity: Display name of the main entity being reported on. - :vartype compromised_entity: str - :ivar alert_type: The type name of the alert. - :vartype alert_type: str - :ivar start_time_utc: The impact start time of the alert (the time of the first event or - activity included in the alert). - :vartype start_time_utc: str - :ivar end_time_utc: The impact end time of the alert (the time of the last event or activity - included in the alert). - :vartype end_time_utc: str - :param entities: A list of entities related to the alert. - :type entities: list[object] - :param extended_properties: A bag of fields which extends the alert information. - :type extended_properties: object + :ivar token: The token is used for correlating security data and logs with the resources in the + subscription. + :vartype token: str """ _validation = { - 'system_alert_id': {'readonly': True}, - 'compromised_entity': {'readonly': True}, - 'alert_type': {'readonly': True}, - 'start_time_utc': {'readonly': True}, - 'end_time_utc': {'readonly': True}, + 'token': {'readonly': True}, } _attribute_map = { - 'system_alert_id': {'key': 'properties.systemAlertId', 'type': 'str'}, - 'compromised_entity': {'key': 'properties.compromisedEntity', 'type': 'str'}, - 'alert_type': {'key': 'properties.alertType', 'type': 'str'}, - 'start_time_utc': {'key': 'properties.startTimeUtc', 'type': 'str'}, - 'end_time_utc': {'key': 'properties.endTimeUtc', 'type': 'str'}, - 'entities': {'key': 'properties.entities', 'type': '[object]'}, - 'extended_properties': {'key': 'properties.extendedProperties', 'type': 'object'}, + 'token': {'key': 'token', 'type': 'str'}, } def __init__( self, **kwargs ): - super(IotAlertModel, self).__init__(**kwargs) - self.system_alert_id = None - self.compromised_entity = None - self.alert_type = None - self.start_time_utc = None - self.end_time_utc = None - self.entities = kwargs.get('entities', None) - self.extended_properties = kwargs.get('extended_properties', None) + super(IngestionSettingToken, self).__init__(**kwargs) + self.token = None + + +class TagsResource(msrest.serialization.Model): + """A container holding only the Tags for a resource, allowing the user to update the tags. + + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + """ + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__( + self, + **kwargs + ): + super(TagsResource, self).__init__(**kwargs) + self.tags = kwargs.get('tags', None) -class IotAlertType(Resource): - """IoT alert type. + +class IoTSecurityAggregatedAlert(Resource, TagsResource): + """Security Solution Aggregated Alert information. Variables are only populated by the server, and will be ignored when sending a request. + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] :ivar id: Resource Id. :vartype id: str :ivar name: Resource name. :vartype name: str :ivar type: Resource type. :vartype type: str - :ivar alert_display_name: The display name of the alert. + :ivar alert_type: Name of the alert type. + :vartype alert_type: str + :ivar alert_display_name: Display name of the alert type. :vartype alert_display_name: str - :ivar severity: The severity of the alert. Possible values include: "Informational", "Low", - "Medium", "High". - :vartype severity: str or ~azure.mgmt.security.models.AlertSeverity + :ivar aggregated_date_utc: Date of detection. + :vartype aggregated_date_utc: ~datetime.date + :ivar vendor_name: Name of the organization that raised the alert. + :vartype vendor_name: str + :ivar reported_severity: Assessed alert severity. Possible values include: "Informational", + "Low", "Medium", "High". + :vartype reported_severity: str or ~azure.mgmt.security.models.ReportedSeverity + :ivar remediation_steps: Recommended steps for remediation. + :vartype remediation_steps: str :ivar description: Description of the suspected vulnerability and meaning. :vartype description: str - :ivar provider_name: The name of the alert provider or internal partner. - :vartype provider_name: str - :ivar product_name: The name of the product which published this alert. - :vartype product_name: str - :ivar product_component_name: The name of a component inside the product which generated the - alert. - :vartype product_component_name: str - :ivar vendor_name: The name of the vendor that raise the alert. - :vartype vendor_name: str - :ivar intent: Kill chain related intent behind the alert. Could contain multiple enum values - (separated by commas). Possible values include: "Unknown", "PreAttack", "InitialAccess", - "Persistence", "PrivilegeEscalation", "DefenseEvasion", "CredentialAccess", "Discovery", - "LateralMovement", "Execution", "Collection", "Exfiltration", "CommandAndControl", "Impact", - "Probing", "Exploitation". - :vartype intent: str or ~azure.mgmt.security.models.AlertIntent - :ivar remediation_steps: Manual action items to take to remediate the alert. - :vartype remediation_steps: list[str] - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'alert_display_name': {'readonly': True}, - 'severity': {'readonly': True}, - 'description': {'readonly': True}, - 'provider_name': {'readonly': True}, - 'product_name': {'readonly': True}, - 'product_component_name': {'readonly': True}, - 'vendor_name': {'readonly': True}, - 'intent': {'readonly': True}, + :ivar count: Number of alerts occurrences within the aggregated time window. + :vartype count: long + :ivar effected_resource_type: Azure resource ID of the resource that received the alerts. + :vartype effected_resource_type: str + :ivar system_source: The type of the alerted resource (Azure, Non-Azure). + :vartype system_source: str + :ivar action_taken: IoT Security solution alert response. + :vartype action_taken: str + :ivar log_analytics_query: Log analytics query for getting the list of affected devices/alerts. + :vartype log_analytics_query: str + :ivar top_devices_list: 10 devices with the highest number of occurrences of this alert type, + on this day. + :vartype top_devices_list: + list[~azure.mgmt.security.models.IoTSecurityAggregatedAlertPropertiesTopDevicesListItem] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'alert_type': {'readonly': True}, + 'alert_display_name': {'readonly': True}, + 'aggregated_date_utc': {'readonly': True}, + 'vendor_name': {'readonly': True}, + 'reported_severity': {'readonly': True}, 'remediation_steps': {'readonly': True}, + 'description': {'readonly': True}, + 'count': {'readonly': True}, + 'effected_resource_type': {'readonly': True}, + 'system_source': {'readonly': True}, + 'action_taken': {'readonly': True}, + 'log_analytics_query': {'readonly': True}, + 'top_devices_list': {'readonly': True}, } _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, + 'alert_type': {'key': 'properties.alertType', 'type': 'str'}, 'alert_display_name': {'key': 'properties.alertDisplayName', 'type': 'str'}, - 'severity': {'key': 'properties.severity', 'type': 'str'}, - 'description': {'key': 'properties.description', 'type': 'str'}, - 'provider_name': {'key': 'properties.providerName', 'type': 'str'}, - 'product_name': {'key': 'properties.productName', 'type': 'str'}, - 'product_component_name': {'key': 'properties.productComponentName', 'type': 'str'}, + 'aggregated_date_utc': {'key': 'properties.aggregatedDateUtc', 'type': 'date'}, 'vendor_name': {'key': 'properties.vendorName', 'type': 'str'}, - 'intent': {'key': 'properties.intent', 'type': 'str'}, - 'remediation_steps': {'key': 'properties.remediationSteps', 'type': '[str]'}, + 'reported_severity': {'key': 'properties.reportedSeverity', 'type': 'str'}, + 'remediation_steps': {'key': 'properties.remediationSteps', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'count': {'key': 'properties.count', 'type': 'long'}, + 'effected_resource_type': {'key': 'properties.effectedResourceType', 'type': 'str'}, + 'system_source': {'key': 'properties.systemSource', 'type': 'str'}, + 'action_taken': {'key': 'properties.actionTaken', 'type': 'str'}, + 'log_analytics_query': {'key': 'properties.logAnalyticsQuery', 'type': 'str'}, + 'top_devices_list': {'key': 'properties.topDevicesList', 'type': '[IoTSecurityAggregatedAlertPropertiesTopDevicesListItem]'}, } def __init__( self, **kwargs ): - super(IotAlertType, self).__init__(**kwargs) + super(IoTSecurityAggregatedAlert, self).__init__(**kwargs) + self.tags = kwargs.get('tags', None) + self.alert_type = None self.alert_display_name = None - self.severity = None + self.aggregated_date_utc = None + self.vendor_name = None + self.reported_severity = None + self.remediation_steps = None self.description = None - self.provider_name = None - self.product_name = None - self.product_component_name = None + self.count = None + self.effected_resource_type = None + self.system_source = None + self.action_taken = None + self.log_analytics_query = None + self.top_devices_list = None + self.id = None + self.name = None + self.type = None + self.alert_type = None + self.alert_display_name = None + self.aggregated_date_utc = None self.vendor_name = None - self.intent = None + self.reported_severity = None self.remediation_steps = None + self.description = None + self.count = None + self.effected_resource_type = None + self.system_source = None + self.action_taken = None + self.log_analytics_query = None + self.top_devices_list = None -class IotAlertTypeList(msrest.serialization.Model): - """List of alert types. +class IoTSecurityAggregatedAlertList(msrest.serialization.Model): + """List of IoT Security solution aggregated alert data. + + Variables are only populated by the server, and will be ignored when sending a request. - :param value: List data. - :type value: list[~azure.mgmt.security.models.IotAlertType] + All required parameters must be populated in order to send to Azure. + + :param value: Required. List of aggregated alerts data. + :type value: list[~azure.mgmt.security.models.IoTSecurityAggregatedAlert] + :ivar next_link: When there is too much alert data for one page, use this URI to fetch the next + page. + :vartype next_link: str """ + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + _attribute_map = { - 'value': {'key': 'value', 'type': '[IotAlertType]'}, + 'value': {'key': 'value', 'type': '[IoTSecurityAggregatedAlert]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, } def __init__( self, **kwargs ): - super(IotAlertTypeList, self).__init__(**kwargs) - self.value = kwargs.get('value', None) + super(IoTSecurityAggregatedAlertList, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None -class IotDefenderSettingsList(msrest.serialization.Model): - """List of IoT Defender settings. +class IoTSecurityAggregatedAlertPropertiesTopDevicesListItem(msrest.serialization.Model): + """IoTSecurityAggregatedAlertPropertiesTopDevicesListItem. Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: List data. - :vartype value: list[~azure.mgmt.security.models.IotDefenderSettingsModel] + :ivar device_id: Name of the device. + :vartype device_id: str + :ivar alerts_count: Number of alerts raised for this device. + :vartype alerts_count: long + :ivar last_occurrence: Most recent time this alert was raised for this device, on this day. + :vartype last_occurrence: str """ _validation = { - 'value': {'readonly': True}, + 'device_id': {'readonly': True}, + 'alerts_count': {'readonly': True}, + 'last_occurrence': {'readonly': True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[IotDefenderSettingsModel]'}, + 'device_id': {'key': 'deviceId', 'type': 'str'}, + 'alerts_count': {'key': 'alertsCount', 'type': 'long'}, + 'last_occurrence': {'key': 'lastOccurrence', 'type': 'str'}, } def __init__( self, **kwargs ): - super(IotDefenderSettingsList, self).__init__(**kwargs) - self.value = None + super(IoTSecurityAggregatedAlertPropertiesTopDevicesListItem, self).__init__(**kwargs) + self.device_id = None + self.alerts_count = None + self.last_occurrence = None -class IotDefenderSettingsModel(Resource): - """IoT Defender settings. +class IoTSecurityAggregatedRecommendation(Resource, TagsResource): + """IoT Security solution recommendation information. Variables are only populated by the server, and will be ignored when sending a request. + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] :ivar id: Resource Id. :vartype id: str :ivar name: Resource name. :vartype name: str :ivar type: Resource type. :vartype type: str - :param device_quota: Size of the device quota (as a opposed to a Pay as You Go billing model). - Value is required to be in multiples of 1000. - :type device_quota: int - :param sentinel_workspace_resource_ids: Sentinel Workspace Resource Ids. - :type sentinel_workspace_resource_ids: list[str] + :param recommendation_name: Name of the recommendation. + :type recommendation_name: str + :ivar recommendation_display_name: Display name of the recommendation type. + :vartype recommendation_display_name: str + :ivar description: Description of the suspected vulnerability and meaning. + :vartype description: str + :ivar recommendation_type_id: Recommendation-type GUID. + :vartype recommendation_type_id: str + :ivar detected_by: Name of the organization that made the recommendation. + :vartype detected_by: str + :ivar remediation_steps: Recommended steps for remediation. + :vartype remediation_steps: str + :ivar reported_severity: Assessed recommendation severity. Possible values include: + "Informational", "Low", "Medium", "High". + :vartype reported_severity: str or ~azure.mgmt.security.models.ReportedSeverity + :ivar healthy_devices: Number of healthy devices within the IoT Security solution. + :vartype healthy_devices: long + :ivar unhealthy_device_count: Number of unhealthy devices within the IoT Security solution. + :vartype unhealthy_device_count: long + :ivar log_analytics_query: Log analytics query for getting the list of affected devices/alerts. + :vartype log_analytics_query: str """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'device_quota': {'minimum': 1000}, + 'recommendation_display_name': {'readonly': True}, + 'description': {'readonly': True}, + 'recommendation_type_id': {'readonly': True}, + 'detected_by': {'readonly': True}, + 'remediation_steps': {'readonly': True}, + 'reported_severity': {'readonly': True}, + 'healthy_devices': {'readonly': True}, + 'unhealthy_device_count': {'readonly': True}, + 'log_analytics_query': {'readonly': True}, } _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, - 'device_quota': {'key': 'properties.deviceQuota', 'type': 'int'}, - 'sentinel_workspace_resource_ids': {'key': 'properties.sentinelWorkspaceResourceIds', 'type': '[str]'}, + 'recommendation_name': {'key': 'properties.recommendationName', 'type': 'str'}, + 'recommendation_display_name': {'key': 'properties.recommendationDisplayName', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'recommendation_type_id': {'key': 'properties.recommendationTypeId', 'type': 'str'}, + 'detected_by': {'key': 'properties.detectedBy', 'type': 'str'}, + 'remediation_steps': {'key': 'properties.remediationSteps', 'type': 'str'}, + 'reported_severity': {'key': 'properties.reportedSeverity', 'type': 'str'}, + 'healthy_devices': {'key': 'properties.healthyDevices', 'type': 'long'}, + 'unhealthy_device_count': {'key': 'properties.unhealthyDeviceCount', 'type': 'long'}, + 'log_analytics_query': {'key': 'properties.logAnalyticsQuery', 'type': 'str'}, } def __init__( self, **kwargs ): - super(IotDefenderSettingsModel, self).__init__(**kwargs) - self.device_quota = kwargs.get('device_quota', None) - self.sentinel_workspace_resource_ids = kwargs.get('sentinel_workspace_resource_ids', None) + super(IoTSecurityAggregatedRecommendation, self).__init__(**kwargs) + self.tags = kwargs.get('tags', None) + self.recommendation_name = kwargs.get('recommendation_name', None) + self.recommendation_display_name = None + self.description = None + self.recommendation_type_id = None + self.detected_by = None + self.remediation_steps = None + self.reported_severity = None + self.healthy_devices = None + self.unhealthy_device_count = None + self.log_analytics_query = None + self.id = None + self.name = None + self.type = None + self.recommendation_name = kwargs.get('recommendation_name', None) + self.recommendation_display_name = None + self.description = None + self.recommendation_type_id = None + self.detected_by = None + self.remediation_steps = None + self.reported_severity = None + self.healthy_devices = None + self.unhealthy_device_count = None + self.log_analytics_query = None -class IotRecommendation(Resource): - """IoT recommendation. +class IoTSecurityAggregatedRecommendationList(msrest.serialization.Model): + """List of IoT Security solution aggregated recommendations. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar device_id: Identifier of the device being reported on. - :vartype device_id: str - :ivar recommendation_type: The type name of the recommendation. - :vartype recommendation_type: str - :ivar discovered_time_utc: The discovery time of the recommendation. - :vartype discovered_time_utc: str - :param recommendation_additional_data: A bag of fields which extends the recommendation - information. - :type recommendation_additional_data: object + All required parameters must be populated in order to send to Azure. + + :param value: Required. List of aggregated recommendations data. + :type value: list[~azure.mgmt.security.models.IoTSecurityAggregatedRecommendation] + :ivar next_link: When there is too much alert data for one page, use this URI to fetch the next + page. + :vartype next_link: str """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'device_id': {'readonly': True}, - 'recommendation_type': {'readonly': True}, - 'discovered_time_utc': {'readonly': True}, + 'value': {'required': True}, + 'next_link': {'readonly': True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'device_id': {'key': 'properties.deviceId', 'type': 'str'}, - 'recommendation_type': {'key': 'properties.recommendationType', 'type': 'str'}, - 'discovered_time_utc': {'key': 'properties.discoveredTimeUtc', 'type': 'str'}, - 'recommendation_additional_data': {'key': 'properties.recommendationAdditionalData', 'type': 'object'}, + 'value': {'key': 'value', 'type': '[IoTSecurityAggregatedRecommendation]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, } def __init__( self, **kwargs ): - super(IotRecommendation, self).__init__(**kwargs) - self.device_id = None - self.recommendation_type = None - self.discovered_time_utc = None - self.recommendation_additional_data = kwargs.get('recommendation_additional_data', None) + super(IoTSecurityAggregatedRecommendationList, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None -class IotRecommendationList(msrest.serialization.Model): - """List of IoT recommendations. +class IoTSecurityAlertedDevice(msrest.serialization.Model): + """Statistical information about the number of alerts per device during last set number of days. Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: List data. - :vartype value: list[~azure.mgmt.security.models.IotRecommendation] - :ivar next_link: When available, follow the URI to get the next page of data. - :vartype next_link: str - :ivar total_count: Total count of recommendations that conforms with the given filter options - (not affected by page size). - :vartype total_count: int + :ivar device_id: Device identifier. + :vartype device_id: str + :ivar alerts_count: Number of alerts raised for this device. + :vartype alerts_count: long """ _validation = { - 'value': {'readonly': True}, - 'next_link': {'readonly': True}, - 'total_count': {'readonly': True}, + 'device_id': {'readonly': True}, + 'alerts_count': {'readonly': True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[IotRecommendation]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - 'total_count': {'key': 'totalCount', 'type': 'int'}, + 'device_id': {'key': 'deviceId', 'type': 'str'}, + 'alerts_count': {'key': 'alertsCount', 'type': 'long'}, } def __init__( self, **kwargs ): - super(IotRecommendationList, self).__init__(**kwargs) - self.value = None - self.next_link = None - self.total_count = None + super(IoTSecurityAlertedDevice, self).__init__(**kwargs) + self.device_id = None + self.alerts_count = None -class IotRecommendationListModel(msrest.serialization.Model): - """List of IoT recommendations. +class IoTSecurityDeviceAlert(msrest.serialization.Model): + """Statistical information about the number of alerts per alert type during last set number of days. Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: List data. - :vartype value: list[~azure.mgmt.security.models.IotRecommendationModel] - :ivar next_link: When available, follow the URI to get the next page of data. - :vartype next_link: str + :ivar alert_display_name: Display name of the alert. + :vartype alert_display_name: str + :ivar reported_severity: Assessed Alert severity. Possible values include: "Informational", + "Low", "Medium", "High". + :vartype reported_severity: str or ~azure.mgmt.security.models.ReportedSeverity + :ivar alerts_count: Number of alerts raised for this alert type. + :vartype alerts_count: long """ _validation = { - 'value': {'readonly': True}, - 'next_link': {'readonly': True}, + 'alert_display_name': {'readonly': True}, + 'reported_severity': {'readonly': True}, + 'alerts_count': {'readonly': True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[IotRecommendationModel]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'alert_display_name': {'key': 'alertDisplayName', 'type': 'str'}, + 'reported_severity': {'key': 'reportedSeverity', 'type': 'str'}, + 'alerts_count': {'key': 'alertsCount', 'type': 'long'}, } def __init__( self, **kwargs ): - super(IotRecommendationListModel, self).__init__(**kwargs) - self.value = None - self.next_link = None - + super(IoTSecurityDeviceAlert, self).__init__(**kwargs) + self.alert_display_name = None + self.reported_severity = None + self.alerts_count = None -class IotRecommendationModel(Resource): - """IoT recommendation. + +class IoTSecurityDeviceRecommendation(msrest.serialization.Model): + """Statistical information about the number of recommendations per device, per recommendation type. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar device_id: Identifier of the device being reported on. - :vartype device_id: str - :ivar recommendation_type: The type name of the recommendation. - :vartype recommendation_type: str - :ivar discovered_time_utc: The discovery time of the recommendation. - :vartype discovered_time_utc: str - :param recommendation_additional_data: A bag of fields which extends the recommendation - information. - :type recommendation_additional_data: object + :ivar recommendation_display_name: Display name of the recommendation. + :vartype recommendation_display_name: str + :ivar reported_severity: Assessed recommendation severity. Possible values include: + "Informational", "Low", "Medium", "High". + :vartype reported_severity: str or ~azure.mgmt.security.models.ReportedSeverity + :ivar devices_count: Number of devices with this recommendation. + :vartype devices_count: long """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'device_id': {'readonly': True}, - 'recommendation_type': {'readonly': True}, - 'discovered_time_utc': {'readonly': True}, + 'recommendation_display_name': {'readonly': True}, + 'reported_severity': {'readonly': True}, + 'devices_count': {'readonly': True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'device_id': {'key': 'properties.deviceId', 'type': 'str'}, - 'recommendation_type': {'key': 'properties.recommendationType', 'type': 'str'}, - 'discovered_time_utc': {'key': 'properties.discoveredTimeUtc', 'type': 'str'}, - 'recommendation_additional_data': {'key': 'properties.recommendationAdditionalData', 'type': 'object'}, + 'recommendation_display_name': {'key': 'recommendationDisplayName', 'type': 'str'}, + 'reported_severity': {'key': 'reportedSeverity', 'type': 'str'}, + 'devices_count': {'key': 'devicesCount', 'type': 'long'}, } def __init__( self, **kwargs ): - super(IotRecommendationModel, self).__init__(**kwargs) - self.device_id = None - self.recommendation_type = None - self.discovered_time_utc = None - self.recommendation_additional_data = kwargs.get('recommendation_additional_data', None) + super(IoTSecurityDeviceRecommendation, self).__init__(**kwargs) + self.recommendation_display_name = None + self.reported_severity = None + self.devices_count = None -class IotRecommendationType(Resource): - """IoT recommendation type. +class IoTSecuritySolutionAnalyticsModel(Resource): + """Security analytics of your IoT Security solution. Variables are only populated by the server, and will be ignored when sending a request. @@ -4975,114 +5095,115 @@ class IotRecommendationType(Resource): :vartype name: str :ivar type: Resource type. :vartype type: str - :ivar recommendation_display_name: The display name of the recommendation. - :vartype recommendation_display_name: str - :ivar severity: The severity of the recommendation. Possible values include: "Unknown", - "NotApplicable", "Healthy", "OffByPolicy", "Low", "Medium", "High". - :vartype severity: str or ~azure.mgmt.security.models.RecommendationSeverity - :ivar description: Description of the suspected vulnerability and meaning. - :vartype description: str - :ivar product_name: The name of the product which published this recommendation. - :vartype product_name: str - :ivar product_component_name: The name of a component inside the product which generated the - recommendation. - :vartype product_component_name: str - :ivar vendor_name: The name of the vendor that raised the recommendation. - :vartype vendor_name: str - :ivar control: The name of the recommendation's control category. - :vartype control: str - :ivar remediation_steps: Manual action items to take to resolve the recommendation. - :vartype remediation_steps: list[str] - :ivar data_source: The alert's data source. - :vartype data_source: str + :ivar metrics: Security analytics of your IoT Security solution. + :vartype metrics: ~azure.mgmt.security.models.IoTSeverityMetrics + :ivar unhealthy_device_count: Number of unhealthy devices within your IoT Security solution. + :vartype unhealthy_device_count: long + :ivar devices_metrics: List of device metrics by the aggregation date. + :vartype devices_metrics: + list[~azure.mgmt.security.models.IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem] + :param top_alerted_devices: List of the 3 devices with the most alerts. + :type top_alerted_devices: list[~azure.mgmt.security.models.IoTSecurityAlertedDevice] + :param most_prevalent_device_alerts: List of the 3 most prevalent device alerts. + :type most_prevalent_device_alerts: list[~azure.mgmt.security.models.IoTSecurityDeviceAlert] + :param most_prevalent_device_recommendations: List of the 3 most prevalent device + recommendations. + :type most_prevalent_device_recommendations: + list[~azure.mgmt.security.models.IoTSecurityDeviceRecommendation] """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'recommendation_display_name': {'readonly': True}, - 'severity': {'readonly': True}, - 'description': {'readonly': True}, - 'product_name': {'readonly': True}, - 'product_component_name': {'readonly': True}, - 'vendor_name': {'readonly': True}, - 'control': {'readonly': True}, - 'remediation_steps': {'readonly': True}, - 'data_source': {'readonly': True}, + 'metrics': {'readonly': True}, + 'unhealthy_device_count': {'readonly': True}, + 'devices_metrics': {'readonly': True}, } _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, - 'recommendation_display_name': {'key': 'properties.recommendationDisplayName', 'type': 'str'}, - 'severity': {'key': 'properties.severity', 'type': 'str'}, - 'description': {'key': 'properties.description', 'type': 'str'}, - 'product_name': {'key': 'properties.productName', 'type': 'str'}, - 'product_component_name': {'key': 'properties.productComponentName', 'type': 'str'}, - 'vendor_name': {'key': 'properties.vendorName', 'type': 'str'}, - 'control': {'key': 'properties.control', 'type': 'str'}, - 'remediation_steps': {'key': 'properties.remediationSteps', 'type': '[str]'}, - 'data_source': {'key': 'properties.dataSource', 'type': 'str'}, + 'metrics': {'key': 'properties.metrics', 'type': 'IoTSeverityMetrics'}, + 'unhealthy_device_count': {'key': 'properties.unhealthyDeviceCount', 'type': 'long'}, + 'devices_metrics': {'key': 'properties.devicesMetrics', 'type': '[IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem]'}, + 'top_alerted_devices': {'key': 'properties.topAlertedDevices', 'type': '[IoTSecurityAlertedDevice]'}, + 'most_prevalent_device_alerts': {'key': 'properties.mostPrevalentDeviceAlerts', 'type': '[IoTSecurityDeviceAlert]'}, + 'most_prevalent_device_recommendations': {'key': 'properties.mostPrevalentDeviceRecommendations', 'type': '[IoTSecurityDeviceRecommendation]'}, } def __init__( self, **kwargs ): - super(IotRecommendationType, self).__init__(**kwargs) - self.recommendation_display_name = None - self.severity = None - self.description = None - self.product_name = None - self.product_component_name = None - self.vendor_name = None - self.control = None - self.remediation_steps = None - self.data_source = None + super(IoTSecuritySolutionAnalyticsModel, self).__init__(**kwargs) + self.metrics = None + self.unhealthy_device_count = None + self.devices_metrics = None + self.top_alerted_devices = kwargs.get('top_alerted_devices', None) + self.most_prevalent_device_alerts = kwargs.get('most_prevalent_device_alerts', None) + self.most_prevalent_device_recommendations = kwargs.get('most_prevalent_device_recommendations', None) + + +class IoTSecuritySolutionAnalyticsModelList(msrest.serialization.Model): + """List of Security analytics of your IoT Security solution. + Variables are only populated by the server, and will be ignored when sending a request. -class IotRecommendationTypeList(msrest.serialization.Model): - """List of recommendation types. + All required parameters must be populated in order to send to Azure. - :param value: List data. - :type value: list[~azure.mgmt.security.models.IotRecommendationType] + :param value: Required. List of Security analytics of your IoT Security solution. + :type value: list[~azure.mgmt.security.models.IoTSecuritySolutionAnalyticsModel] + :ivar next_link: When there is too much alert data for one page, use this URI to fetch the next + page. + :vartype next_link: str """ + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + _attribute_map = { - 'value': {'key': 'value', 'type': '[IotRecommendationType]'}, + 'value': {'key': 'value', 'type': '[IoTSecuritySolutionAnalyticsModel]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, } def __init__( self, **kwargs ): - super(IotRecommendationTypeList, self).__init__(**kwargs) - self.value = kwargs.get('value', None) + super(IoTSecuritySolutionAnalyticsModelList, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None -class TagsResource(msrest.serialization.Model): - """A container holding only the Tags for a resource, allowing the user to update the tags. +class IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem(msrest.serialization.Model): + """IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem. - :param tags: A set of tags. Resource tags. - :type tags: dict[str, str] + :param date: Aggregation of IoT Security solution device alert metrics by date. + :type date: ~datetime.datetime + :param devices_metrics: Device alert count by severity. + :type devices_metrics: ~azure.mgmt.security.models.IoTSeverityMetrics """ _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, + 'date': {'key': 'date', 'type': 'iso-8601'}, + 'devices_metrics': {'key': 'devicesMetrics', 'type': 'IoTSeverityMetrics'}, } def __init__( self, **kwargs ): - super(TagsResource, self).__init__(**kwargs) - self.tags = kwargs.get('tags', None) + super(IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem, self).__init__(**kwargs) + self.date = kwargs.get('date', None) + self.devices_metrics = kwargs.get('devices_metrics', None) -class IoTSecurityAggregatedAlert(Resource, TagsResource): - """Security Solution Aggregated Alert information. +class IoTSecuritySolutionModel(Resource, TagsResource): + """IoT Security solution configuration and resource information. Variables are only populated by the server, and will be ignored when sending a request. @@ -5094,54 +5215,48 @@ class IoTSecurityAggregatedAlert(Resource, TagsResource): :vartype name: str :ivar type: Resource type. :vartype type: str - :ivar alert_type: Name of the alert type. - :vartype alert_type: str - :ivar alert_display_name: Display name of the alert type. - :vartype alert_display_name: str - :ivar aggregated_date_utc: Date of detection. - :vartype aggregated_date_utc: ~datetime.date - :ivar vendor_name: Name of the organization that raised the alert. - :vartype vendor_name: str - :ivar reported_severity: Assessed alert severity. Possible values include: "Informational", - "Low", "Medium", "High". - :vartype reported_severity: str or ~azure.mgmt.security.models.ReportedSeverity - :ivar remediation_steps: Recommended steps for remediation. - :vartype remediation_steps: str - :ivar description: Description of the suspected vulnerability and meaning. - :vartype description: str - :ivar count: Number of alerts occurrences within the aggregated time window. - :vartype count: int - :ivar effected_resource_type: Azure resource ID of the resource that received the alerts. - :vartype effected_resource_type: str - :ivar system_source: The type of the alerted resource (Azure, Non-Azure). - :vartype system_source: str - :ivar action_taken: IoT Security solution alert response. - :vartype action_taken: str - :ivar log_analytics_query: Log analytics query for getting the list of affected devices/alerts. - :vartype log_analytics_query: str - :ivar top_devices_list: 10 devices with the highest number of occurrences of this alert type, - on this day. - :vartype top_devices_list: - list[~azure.mgmt.security.models.IoTSecurityAggregatedAlertPropertiesTopDevicesListItem] + :param location: The resource location. + :type location: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.security.models.SystemData + :param workspace: Workspace resource ID. + :type workspace: str + :param display_name: Resource display name. + :type display_name: str + :param status: Status of the IoT Security solution. Possible values include: "Enabled", + "Disabled". Default value: "Enabled". + :type status: str or ~azure.mgmt.security.models.SecuritySolutionStatus + :param export: List of additional options for exporting to workspace data. + :type export: list[str or ~azure.mgmt.security.models.ExportData] + :param disabled_data_sources: Disabled data sources. Disabling these data sources compromises + the system. + :type disabled_data_sources: list[str or ~azure.mgmt.security.models.DataSource] + :param iot_hubs: IoT Hub resource IDs. + :type iot_hubs: list[str] + :param user_defined_resources: Properties of the IoT Security solution's user defined + resources. + :type user_defined_resources: ~azure.mgmt.security.models.UserDefinedResourcesProperties + :ivar auto_discovered_resources: List of resources that were automatically discovered as + relevant to the security solution. + :vartype auto_discovered_resources: list[str] + :param recommendations_configuration: List of the configuration status for each recommendation + type. + :type recommendations_configuration: + list[~azure.mgmt.security.models.RecommendationConfigurationProperties] + :param unmasked_ip_logging_status: Unmasked IP address logging status. Possible values include: + "Disabled", "Enabled". Default value: "Disabled". + :type unmasked_ip_logging_status: str or ~azure.mgmt.security.models.UnmaskedIpLoggingStatus + :param additional_workspaces: List of additional workspaces. + :type additional_workspaces: list[~azure.mgmt.security.models.AdditionalWorkspacesProperties] """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'alert_type': {'readonly': True}, - 'alert_display_name': {'readonly': True}, - 'aggregated_date_utc': {'readonly': True}, - 'vendor_name': {'readonly': True}, - 'reported_severity': {'readonly': True}, - 'remediation_steps': {'readonly': True}, - 'description': {'readonly': True}, - 'count': {'readonly': True}, - 'effected_resource_type': {'readonly': True}, - 'system_source': {'readonly': True}, - 'action_taken': {'readonly': True}, - 'log_analytics_query': {'readonly': True}, - 'top_devices_list': {'readonly': True}, + 'system_data': {'readonly': True}, + 'auto_discovered_resources': {'readonly': True}, } _attribute_map = { @@ -5149,69 +5264,68 @@ class IoTSecurityAggregatedAlert(Resource, TagsResource): 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, - 'alert_type': {'key': 'properties.alertType', 'type': 'str'}, - 'alert_display_name': {'key': 'properties.alertDisplayName', 'type': 'str'}, - 'aggregated_date_utc': {'key': 'properties.aggregatedDateUtc', 'type': 'date'}, - 'vendor_name': {'key': 'properties.vendorName', 'type': 'str'}, - 'reported_severity': {'key': 'properties.reportedSeverity', 'type': 'str'}, - 'remediation_steps': {'key': 'properties.remediationSteps', 'type': 'str'}, - 'description': {'key': 'properties.description', 'type': 'str'}, - 'count': {'key': 'properties.count', 'type': 'int'}, - 'effected_resource_type': {'key': 'properties.effectedResourceType', 'type': 'str'}, - 'system_source': {'key': 'properties.systemSource', 'type': 'str'}, - 'action_taken': {'key': 'properties.actionTaken', 'type': 'str'}, - 'log_analytics_query': {'key': 'properties.logAnalyticsQuery', 'type': 'str'}, - 'top_devices_list': {'key': 'properties.topDevicesList', 'type': '[IoTSecurityAggregatedAlertPropertiesTopDevicesListItem]'}, + 'location': {'key': 'location', 'type': 'str'}, + 'system_data': {'key': 'systemData', 'type': 'SystemData'}, + 'workspace': {'key': 'properties.workspace', 'type': 'str'}, + 'display_name': {'key': 'properties.displayName', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'export': {'key': 'properties.export', 'type': '[str]'}, + 'disabled_data_sources': {'key': 'properties.disabledDataSources', 'type': '[str]'}, + 'iot_hubs': {'key': 'properties.iotHubs', 'type': '[str]'}, + 'user_defined_resources': {'key': 'properties.userDefinedResources', 'type': 'UserDefinedResourcesProperties'}, + 'auto_discovered_resources': {'key': 'properties.autoDiscoveredResources', 'type': '[str]'}, + 'recommendations_configuration': {'key': 'properties.recommendationsConfiguration', 'type': '[RecommendationConfigurationProperties]'}, + 'unmasked_ip_logging_status': {'key': 'properties.unmaskedIpLoggingStatus', 'type': 'str'}, + 'additional_workspaces': {'key': 'properties.additionalWorkspaces', 'type': '[AdditionalWorkspacesProperties]'}, } def __init__( self, **kwargs ): - super(IoTSecurityAggregatedAlert, self).__init__(**kwargs) + super(IoTSecuritySolutionModel, self).__init__(**kwargs) self.tags = kwargs.get('tags', None) - self.alert_type = None - self.alert_display_name = None - self.aggregated_date_utc = None - self.vendor_name = None - self.reported_severity = None - self.remediation_steps = None - self.description = None - self.count = None - self.effected_resource_type = None - self.system_source = None - self.action_taken = None - self.log_analytics_query = None - self.top_devices_list = None - self.id = None - self.name = None - self.type = None - self.alert_type = None - self.alert_display_name = None - self.aggregated_date_utc = None - self.vendor_name = None - self.reported_severity = None - self.remediation_steps = None - self.description = None - self.count = None - self.effected_resource_type = None - self.system_source = None - self.action_taken = None - self.log_analytics_query = None - self.top_devices_list = None + self.location = kwargs.get('location', None) + self.system_data = None + self.workspace = kwargs.get('workspace', None) + self.display_name = kwargs.get('display_name', None) + self.status = kwargs.get('status', "Enabled") + self.export = kwargs.get('export', None) + self.disabled_data_sources = kwargs.get('disabled_data_sources', None) + self.iot_hubs = kwargs.get('iot_hubs', None) + self.user_defined_resources = kwargs.get('user_defined_resources', None) + self.auto_discovered_resources = None + self.recommendations_configuration = kwargs.get('recommendations_configuration', None) + self.unmasked_ip_logging_status = kwargs.get('unmasked_ip_logging_status', "Disabled") + self.additional_workspaces = kwargs.get('additional_workspaces', None) + self.id = None + self.name = None + self.type = None + self.location = kwargs.get('location', None) + self.system_data = None + self.workspace = kwargs.get('workspace', None) + self.display_name = kwargs.get('display_name', None) + self.status = kwargs.get('status', "Enabled") + self.export = kwargs.get('export', None) + self.disabled_data_sources = kwargs.get('disabled_data_sources', None) + self.iot_hubs = kwargs.get('iot_hubs', None) + self.user_defined_resources = kwargs.get('user_defined_resources', None) + self.auto_discovered_resources = None + self.recommendations_configuration = kwargs.get('recommendations_configuration', None) + self.unmasked_ip_logging_status = kwargs.get('unmasked_ip_logging_status', "Disabled") + self.additional_workspaces = kwargs.get('additional_workspaces', None) -class IoTSecurityAggregatedAlertList(msrest.serialization.Model): - """List of IoT Security solution aggregated alert data. +class IoTSecuritySolutionsList(msrest.serialization.Model): + """List of IoT Security solutions. 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 value: Required. List of aggregated alerts data. - :type value: list[~azure.mgmt.security.models.IoTSecurityAggregatedAlert] - :ivar next_link: When there is too much alert data for one page, use this URI to fetch the next - page. + :param value: Required. List of IoT Security solutions. + :type value: list[~azure.mgmt.security.models.IoTSecuritySolutionModel] + :ivar next_link: The URI to fetch the next page. :vartype next_link: str """ @@ -5221,7 +5335,7 @@ class IoTSecurityAggregatedAlertList(msrest.serialization.Model): } _attribute_map = { - 'value': {'key': 'value', 'type': '[IoTSecurityAggregatedAlert]'}, + 'value': {'key': 'value', 'type': '[IoTSecuritySolutionModel]'}, 'next_link': {'key': 'nextLink', 'type': 'str'}, } @@ -5229,2063 +5343,903 @@ def __init__( self, **kwargs ): - super(IoTSecurityAggregatedAlertList, self).__init__(**kwargs) + super(IoTSecuritySolutionsList, self).__init__(**kwargs) self.value = kwargs['value'] self.next_link = None -class IoTSecurityAggregatedAlertPropertiesTopDevicesListItem(msrest.serialization.Model): - """IoTSecurityAggregatedAlertPropertiesTopDevicesListItem. +class IoTSeverityMetrics(msrest.serialization.Model): + """IoT Security solution analytics severity metrics. + + :param high: Count of high severity alerts/recommendations. + :type high: long + :param medium: Count of medium severity alerts/recommendations. + :type medium: long + :param low: Count of low severity alerts/recommendations. + :type low: long + """ + + _attribute_map = { + 'high': {'key': 'high', 'type': 'long'}, + 'medium': {'key': 'medium', 'type': 'long'}, + 'low': {'key': 'low', 'type': 'long'}, + } + + def __init__( + self, + **kwargs + ): + super(IoTSeverityMetrics, self).__init__(**kwargs) + self.high = kwargs.get('high', None) + self.medium = kwargs.get('medium', None) + self.low = kwargs.get('low', None) + + +class JitNetworkAccessPoliciesList(msrest.serialization.Model): + """JitNetworkAccessPoliciesList. Variables are only populated by the server, and will be ignored when sending a request. - :ivar device_id: Name of the device. - :vartype device_id: str - :ivar alerts_count: Number of alerts raised for this device. - :vartype alerts_count: int - :ivar last_occurrence: Most recent time this alert was raised for this device, on this day. - :vartype last_occurrence: str + :param value: + :type value: list[~azure.mgmt.security.models.JitNetworkAccessPolicy] + :ivar next_link: The URI to fetch the next page. + :vartype next_link: str """ _validation = { - 'device_id': {'readonly': True}, - 'alerts_count': {'readonly': True}, - 'last_occurrence': {'readonly': True}, + 'next_link': {'readonly': True}, } _attribute_map = { - 'device_id': {'key': 'deviceId', 'type': 'str'}, - 'alerts_count': {'key': 'alertsCount', 'type': 'int'}, - 'last_occurrence': {'key': 'lastOccurrence', 'type': 'str'}, + 'value': {'key': 'value', 'type': '[JitNetworkAccessPolicy]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, } def __init__( self, **kwargs ): - super(IoTSecurityAggregatedAlertPropertiesTopDevicesListItem, self).__init__(**kwargs) - self.device_id = None - self.alerts_count = None - self.last_occurrence = None + super(JitNetworkAccessPoliciesList, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + self.next_link = None -class IoTSecurityAggregatedRecommendation(Resource, TagsResource): - """IoT Security solution recommendation information. +class JitNetworkAccessPolicy(Resource, Kind, Location): + """JitNetworkAccessPolicy. Variables are only populated by the server, and will be ignored when sending a request. - :param tags: A set of tags. Resource tags. - :type tags: dict[str, str] + All required parameters must be populated in order to send to Azure. + + :ivar location: Location where the resource is stored. + :vartype location: str + :param kind: Kind of the resource. + :type kind: str :ivar id: Resource Id. :vartype id: str :ivar name: Resource name. :vartype name: str :ivar type: Resource type. :vartype type: str - :param recommendation_name: Name of the recommendation. - :type recommendation_name: str - :ivar recommendation_display_name: Display name of the recommendation type. - :vartype recommendation_display_name: str - :ivar description: Description of the suspected vulnerability and meaning. - :vartype description: str - :ivar recommendation_type_id: Recommendation-type GUID. - :vartype recommendation_type_id: str - :ivar detected_by: Name of the organization that made the recommendation. - :vartype detected_by: str - :ivar remediation_steps: Recommended steps for remediation. - :vartype remediation_steps: str - :ivar reported_severity: Assessed recommendation severity. Possible values include: - "Informational", "Low", "Medium", "High". - :vartype reported_severity: str or ~azure.mgmt.security.models.ReportedSeverity - :ivar healthy_devices: Number of healthy devices within the IoT Security solution. - :vartype healthy_devices: int - :ivar unhealthy_device_count: Number of unhealthy devices within the IoT Security solution. - :vartype unhealthy_device_count: int - :ivar log_analytics_query: Log analytics query for getting the list of affected devices/alerts. - :vartype log_analytics_query: str + :param virtual_machines: Required. Configurations for Microsoft.Compute/virtualMachines + resource type. + :type virtual_machines: list[~azure.mgmt.security.models.JitNetworkAccessPolicyVirtualMachine] + :param requests: + :type requests: list[~azure.mgmt.security.models.JitNetworkAccessRequest] + :ivar provisioning_state: Gets the provisioning state of the Just-in-Time policy. + :vartype provisioning_state: str """ _validation = { + 'location': {'readonly': True}, 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'recommendation_display_name': {'readonly': True}, - 'description': {'readonly': True}, - 'recommendation_type_id': {'readonly': True}, - 'detected_by': {'readonly': True}, - 'remediation_steps': {'readonly': True}, - 'reported_severity': {'readonly': True}, - 'healthy_devices': {'readonly': True}, - 'unhealthy_device_count': {'readonly': True}, - 'log_analytics_query': {'readonly': True}, + 'virtual_machines': {'required': True}, + 'provisioning_state': {'readonly': True}, } _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, - 'recommendation_name': {'key': 'properties.recommendationName', 'type': 'str'}, - 'recommendation_display_name': {'key': 'properties.recommendationDisplayName', 'type': 'str'}, - 'description': {'key': 'properties.description', 'type': 'str'}, - 'recommendation_type_id': {'key': 'properties.recommendationTypeId', 'type': 'str'}, - 'detected_by': {'key': 'properties.detectedBy', 'type': 'str'}, - 'remediation_steps': {'key': 'properties.remediationSteps', 'type': 'str'}, - 'reported_severity': {'key': 'properties.reportedSeverity', 'type': 'str'}, - 'healthy_devices': {'key': 'properties.healthyDevices', 'type': 'int'}, - 'unhealthy_device_count': {'key': 'properties.unhealthyDeviceCount', 'type': 'int'}, - 'log_analytics_query': {'key': 'properties.logAnalyticsQuery', 'type': 'str'}, + 'virtual_machines': {'key': 'properties.virtualMachines', 'type': '[JitNetworkAccessPolicyVirtualMachine]'}, + 'requests': {'key': 'properties.requests', 'type': '[JitNetworkAccessRequest]'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, } def __init__( self, **kwargs ): - super(IoTSecurityAggregatedRecommendation, self).__init__(**kwargs) - self.tags = kwargs.get('tags', None) - self.recommendation_name = kwargs.get('recommendation_name', None) - self.recommendation_display_name = None - self.description = None - self.recommendation_type_id = None - self.detected_by = None - self.remediation_steps = None - self.reported_severity = None - self.healthy_devices = None - self.unhealthy_device_count = None - self.log_analytics_query = None + super(JitNetworkAccessPolicy, self).__init__(**kwargs) + self.location = None + self.kind = kwargs.get('kind', None) + self.virtual_machines = kwargs['virtual_machines'] + self.requests = kwargs.get('requests', None) + self.provisioning_state = None + self.location = None self.id = None self.name = None self.type = None - self.recommendation_name = kwargs.get('recommendation_name', None) - self.recommendation_display_name = None - self.description = None - self.recommendation_type_id = None - self.detected_by = None - self.remediation_steps = None - self.reported_severity = None - self.healthy_devices = None - self.unhealthy_device_count = None - self.log_analytics_query = None - + self.virtual_machines = kwargs['virtual_machines'] + self.requests = kwargs.get('requests', None) + self.provisioning_state = None + self.kind = kwargs.get('kind', None) + self.id = None + self.name = None + self.type = None + self.virtual_machines = kwargs['virtual_machines'] + self.requests = kwargs.get('requests', None) + self.provisioning_state = None -class IoTSecurityAggregatedRecommendationList(msrest.serialization.Model): - """List of IoT Security solution aggregated recommendations. - Variables are only populated by the server, and will be ignored when sending a request. +class JitNetworkAccessPolicyInitiatePort(msrest.serialization.Model): + """JitNetworkAccessPolicyInitiatePort. All required parameters must be populated in order to send to Azure. - :param value: Required. List of aggregated recommendations data. - :type value: list[~azure.mgmt.security.models.IoTSecurityAggregatedRecommendation] - :ivar next_link: When there is too much alert data for one page, use this URI to fetch the next - page. - :vartype next_link: str + :param number: Required. + :type number: int + :param allowed_source_address_prefix: Source of the allowed traffic. If omitted, the request + will be for the source IP address of the initiate request. + :type allowed_source_address_prefix: str + :param end_time_utc: Required. The time to close the request in UTC. + :type end_time_utc: ~datetime.datetime """ _validation = { - 'value': {'required': True}, - 'next_link': {'readonly': True}, + 'number': {'required': True, 'maximum': 65535, 'minimum': 0}, + 'end_time_utc': {'required': True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[IoTSecurityAggregatedRecommendation]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'number': {'key': 'number', 'type': 'int'}, + 'allowed_source_address_prefix': {'key': 'allowedSourceAddressPrefix', 'type': 'str'}, + 'end_time_utc': {'key': 'endTimeUtc', 'type': 'iso-8601'}, } def __init__( self, **kwargs ): - super(IoTSecurityAggregatedRecommendationList, self).__init__(**kwargs) - self.value = kwargs['value'] - self.next_link = None + super(JitNetworkAccessPolicyInitiatePort, self).__init__(**kwargs) + self.number = kwargs['number'] + self.allowed_source_address_prefix = kwargs.get('allowed_source_address_prefix', None) + self.end_time_utc = kwargs['end_time_utc'] -class IoTSecurityAlertedDevice(msrest.serialization.Model): - """Statistical information about the number of alerts per device during last set number of days. +class JitNetworkAccessPolicyInitiateRequest(msrest.serialization.Model): + """JitNetworkAccessPolicyInitiateRequest. - 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 device_id: Device identifier. - :vartype device_id: str - :ivar alerts_count: Number of alerts raised for this device. - :vartype alerts_count: int + :param virtual_machines: Required. A list of virtual machines & ports to open access for. + :type virtual_machines: + list[~azure.mgmt.security.models.JitNetworkAccessPolicyInitiateVirtualMachine] + :param justification: The justification for making the initiate request. + :type justification: str """ _validation = { - 'device_id': {'readonly': True}, - 'alerts_count': {'readonly': True}, + 'virtual_machines': {'required': True}, } _attribute_map = { - 'device_id': {'key': 'deviceId', 'type': 'str'}, - 'alerts_count': {'key': 'alertsCount', 'type': 'int'}, - } - - def __init__( - self, - **kwargs - ): - super(IoTSecurityAlertedDevice, self).__init__(**kwargs) - self.device_id = None - self.alerts_count = None - - -class IoTSecurityDeviceAlert(msrest.serialization.Model): - """Statistical information about the number of alerts per alert type during last set number of days. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar alert_display_name: Display name of the alert. - :vartype alert_display_name: str - :ivar reported_severity: Assessed Alert severity. Possible values include: "Informational", - "Low", "Medium", "High". - :vartype reported_severity: str or ~azure.mgmt.security.models.ReportedSeverity - :ivar alerts_count: Number of alerts raised for this alert type. - :vartype alerts_count: int - """ - - _validation = { - 'alert_display_name': {'readonly': True}, - 'reported_severity': {'readonly': True}, - 'alerts_count': {'readonly': True}, - } - - _attribute_map = { - 'alert_display_name': {'key': 'alertDisplayName', 'type': 'str'}, - 'reported_severity': {'key': 'reportedSeverity', 'type': 'str'}, - 'alerts_count': {'key': 'alertsCount', 'type': 'int'}, - } - - def __init__( - self, - **kwargs - ): - super(IoTSecurityDeviceAlert, self).__init__(**kwargs) - self.alert_display_name = None - self.reported_severity = None - self.alerts_count = None - - -class IoTSecurityDeviceRecommendation(msrest.serialization.Model): - """Statistical information about the number of recommendations per device, per recommendation type. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar recommendation_display_name: Display name of the recommendation. - :vartype recommendation_display_name: str - :ivar reported_severity: Assessed recommendation severity. Possible values include: - "Informational", "Low", "Medium", "High". - :vartype reported_severity: str or ~azure.mgmt.security.models.ReportedSeverity - :ivar devices_count: Number of devices with this recommendation. - :vartype devices_count: int - """ - - _validation = { - 'recommendation_display_name': {'readonly': True}, - 'reported_severity': {'readonly': True}, - 'devices_count': {'readonly': True}, - } - - _attribute_map = { - 'recommendation_display_name': {'key': 'recommendationDisplayName', 'type': 'str'}, - 'reported_severity': {'key': 'reportedSeverity', 'type': 'str'}, - 'devices_count': {'key': 'devicesCount', 'type': 'int'}, - } - - def __init__( - self, - **kwargs - ): - super(IoTSecurityDeviceRecommendation, self).__init__(**kwargs) - self.recommendation_display_name = None - self.reported_severity = None - self.devices_count = None - - -class IoTSecuritySolutionAnalyticsModel(Resource): - """Security analytics of your IoT Security solution. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar metrics: Security analytics of your IoT Security solution. - :vartype metrics: ~azure.mgmt.security.models.IoTSeverityMetrics - :ivar unhealthy_device_count: Number of unhealthy devices within your IoT Security solution. - :vartype unhealthy_device_count: int - :ivar devices_metrics: List of device metrics by the aggregation date. - :vartype devices_metrics: - list[~azure.mgmt.security.models.IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem] - :param top_alerted_devices: List of the 3 devices with the most alerts. - :type top_alerted_devices: list[~azure.mgmt.security.models.IoTSecurityAlertedDevice] - :param most_prevalent_device_alerts: List of the 3 most prevalent device alerts. - :type most_prevalent_device_alerts: list[~azure.mgmt.security.models.IoTSecurityDeviceAlert] - :param most_prevalent_device_recommendations: List of the 3 most prevalent device - recommendations. - :type most_prevalent_device_recommendations: - list[~azure.mgmt.security.models.IoTSecurityDeviceRecommendation] - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'metrics': {'readonly': True}, - 'unhealthy_device_count': {'readonly': True}, - 'devices_metrics': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'metrics': {'key': 'properties.metrics', 'type': 'IoTSeverityMetrics'}, - 'unhealthy_device_count': {'key': 'properties.unhealthyDeviceCount', 'type': 'int'}, - 'devices_metrics': {'key': 'properties.devicesMetrics', 'type': '[IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem]'}, - 'top_alerted_devices': {'key': 'properties.topAlertedDevices', 'type': '[IoTSecurityAlertedDevice]'}, - 'most_prevalent_device_alerts': {'key': 'properties.mostPrevalentDeviceAlerts', 'type': '[IoTSecurityDeviceAlert]'}, - 'most_prevalent_device_recommendations': {'key': 'properties.mostPrevalentDeviceRecommendations', 'type': '[IoTSecurityDeviceRecommendation]'}, - } - - def __init__( - self, - **kwargs - ): - super(IoTSecuritySolutionAnalyticsModel, self).__init__(**kwargs) - self.metrics = None - self.unhealthy_device_count = None - self.devices_metrics = None - self.top_alerted_devices = kwargs.get('top_alerted_devices', None) - self.most_prevalent_device_alerts = kwargs.get('most_prevalent_device_alerts', None) - self.most_prevalent_device_recommendations = kwargs.get('most_prevalent_device_recommendations', None) - - -class IoTSecuritySolutionAnalyticsModelList(msrest.serialization.Model): - """List of Security analytics of your IoT Security solution. - - 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 value: Required. List of Security analytics of your IoT Security solution. - :type value: list[~azure.mgmt.security.models.IoTSecuritySolutionAnalyticsModel] - :ivar next_link: When there is too much alert data for one page, use this URI to fetch the next - page. - :vartype next_link: str - """ - - _validation = { - 'value': {'required': True}, - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[IoTSecuritySolutionAnalyticsModel]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(IoTSecuritySolutionAnalyticsModelList, self).__init__(**kwargs) - self.value = kwargs['value'] - self.next_link = None - - -class IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem(msrest.serialization.Model): - """IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem. - - :param date: Aggregation of IoT Security solution device alert metrics by date. - :type date: ~datetime.datetime - :param devices_metrics: Device alert count by severity. - :type devices_metrics: ~azure.mgmt.security.models.IoTSeverityMetrics - """ - - _attribute_map = { - 'date': {'key': 'date', 'type': 'iso-8601'}, - 'devices_metrics': {'key': 'devicesMetrics', 'type': 'IoTSeverityMetrics'}, - } - - def __init__( - self, - **kwargs - ): - super(IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem, self).__init__(**kwargs) - self.date = kwargs.get('date', None) - self.devices_metrics = kwargs.get('devices_metrics', None) - - -class IoTSecuritySolutionModel(Resource, TagsResource): - """IoT Security solution configuration and resource information. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param tags: A set of tags. Resource tags. - :type tags: dict[str, str] - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :param location: The resource location. - :type location: str - :param workspace: Workspace resource ID. - :type workspace: str - :param display_name: Resource display name. - :type display_name: str - :param status: Status of the IoT Security solution. Possible values include: "Enabled", - "Disabled". Default value: "Enabled". - :type status: str or ~azure.mgmt.security.models.SecuritySolutionStatus - :param export: List of additional options for exporting to workspace data. - :type export: list[str or ~azure.mgmt.security.models.ExportData] - :param disabled_data_sources: Disabled data sources. Disabling these data sources compromises - the system. - :type disabled_data_sources: list[str or ~azure.mgmt.security.models.DataSource] - :param iot_hubs: IoT Hub resource IDs. - :type iot_hubs: list[str] - :param user_defined_resources: Properties of the IoT Security solution's user defined - resources. - :type user_defined_resources: ~azure.mgmt.security.models.UserDefinedResourcesProperties - :ivar auto_discovered_resources: List of resources that were automatically discovered as - relevant to the security solution. - :vartype auto_discovered_resources: list[str] - :param recommendations_configuration: List of the configuration status for each recommendation - type. - :type recommendations_configuration: - list[~azure.mgmt.security.models.RecommendationConfigurationProperties] - :param unmasked_ip_logging_status: Unmasked IP address logging status. Possible values include: - "Disabled", "Enabled". Default value: "Disabled". - :type unmasked_ip_logging_status: str or ~azure.mgmt.security.models.UnmaskedIpLoggingStatus - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'auto_discovered_resources': {'readonly': True}, - } - - _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'location': {'key': 'location', 'type': 'str'}, - 'workspace': {'key': 'properties.workspace', 'type': 'str'}, - 'display_name': {'key': 'properties.displayName', 'type': 'str'}, - 'status': {'key': 'properties.status', 'type': 'str'}, - 'export': {'key': 'properties.export', 'type': '[str]'}, - 'disabled_data_sources': {'key': 'properties.disabledDataSources', 'type': '[str]'}, - 'iot_hubs': {'key': 'properties.iotHubs', 'type': '[str]'}, - 'user_defined_resources': {'key': 'properties.userDefinedResources', 'type': 'UserDefinedResourcesProperties'}, - 'auto_discovered_resources': {'key': 'properties.autoDiscoveredResources', 'type': '[str]'}, - 'recommendations_configuration': {'key': 'properties.recommendationsConfiguration', 'type': '[RecommendationConfigurationProperties]'}, - 'unmasked_ip_logging_status': {'key': 'properties.unmaskedIpLoggingStatus', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(IoTSecuritySolutionModel, self).__init__(**kwargs) - self.tags = kwargs.get('tags', None) - self.location = kwargs.get('location', None) - self.workspace = kwargs.get('workspace', None) - self.display_name = kwargs.get('display_name', None) - self.status = kwargs.get('status', "Enabled") - self.export = kwargs.get('export', None) - self.disabled_data_sources = kwargs.get('disabled_data_sources', None) - self.iot_hubs = kwargs.get('iot_hubs', None) - self.user_defined_resources = kwargs.get('user_defined_resources', None) - self.auto_discovered_resources = None - self.recommendations_configuration = kwargs.get('recommendations_configuration', None) - self.unmasked_ip_logging_status = kwargs.get('unmasked_ip_logging_status', "Disabled") - self.id = None - self.name = None - self.type = None - self.location = kwargs.get('location', None) - self.workspace = kwargs.get('workspace', None) - self.display_name = kwargs.get('display_name', None) - self.status = kwargs.get('status', "Enabled") - self.export = kwargs.get('export', None) - self.disabled_data_sources = kwargs.get('disabled_data_sources', None) - self.iot_hubs = kwargs.get('iot_hubs', None) - self.user_defined_resources = kwargs.get('user_defined_resources', None) - self.auto_discovered_resources = None - self.recommendations_configuration = kwargs.get('recommendations_configuration', None) - self.unmasked_ip_logging_status = kwargs.get('unmasked_ip_logging_status', "Disabled") - - -class IoTSecuritySolutionsList(msrest.serialization.Model): - """List of IoT Security solutions. - - 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 value: Required. List of IoT Security solutions. - :type value: list[~azure.mgmt.security.models.IoTSecuritySolutionModel] - :ivar next_link: The URI to fetch the next page. - :vartype next_link: str - """ - - _validation = { - 'value': {'required': True}, - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[IoTSecuritySolutionModel]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(IoTSecuritySolutionsList, self).__init__(**kwargs) - self.value = kwargs['value'] - self.next_link = None - - -class IotSensorsList(msrest.serialization.Model): - """List of IoT sensors. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar value: List data. - :vartype value: list[~azure.mgmt.security.models.IotSensorsModel] - """ - - _validation = { - 'value': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[IotSensorsModel]'}, - } - - def __init__( - self, - **kwargs - ): - super(IotSensorsList, self).__init__(**kwargs) - self.value = None - - -class IotSensorsModel(Resource): - """IoT sensor model. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar connectivity_time: Last connectivity time of the IoT sensor. - :vartype connectivity_time: str - :ivar creation_time: Creation time of the IoT sensor. - :vartype creation_time: str - :ivar dynamic_learning: Dynamic mode status of the IoT sensor. - :vartype dynamic_learning: bool - :ivar learning_mode: Learning mode status of the IoT sensor. - :vartype learning_mode: bool - :ivar sensor_status: Status of the IoT sensor. Possible values include: "Ok", "Disconnected", - "Unavailable". - :vartype sensor_status: str or ~azure.mgmt.security.models.SensorStatus - :ivar sensor_version: Version of the IoT sensor. - :vartype sensor_version: str - :param ti_automatic_updates: TI Automatic mode status of the IoT sensor. - :type ti_automatic_updates: bool - :ivar ti_status: TI Status of the IoT sensor. Possible values include: "Ok", "Failed", - "InProgress", "UpdateAvailable". - :vartype ti_status: str or ~azure.mgmt.security.models.TiStatus - :ivar ti_version: TI Version of the IoT sensor. - :vartype ti_version: str - :param zone: Zone of the IoT sensor. - :type zone: str - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'connectivity_time': {'readonly': True}, - 'creation_time': {'readonly': True}, - 'dynamic_learning': {'readonly': True}, - 'learning_mode': {'readonly': True}, - 'sensor_status': {'readonly': True}, - 'sensor_version': {'readonly': True}, - 'ti_status': {'readonly': True}, - 'ti_version': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'connectivity_time': {'key': 'properties.connectivityTime', 'type': 'str'}, - 'creation_time': {'key': 'properties.creationTime', 'type': 'str'}, - 'dynamic_learning': {'key': 'properties.dynamicLearning', 'type': 'bool'}, - 'learning_mode': {'key': 'properties.learningMode', 'type': 'bool'}, - 'sensor_status': {'key': 'properties.sensorStatus', 'type': 'str'}, - 'sensor_version': {'key': 'properties.sensorVersion', 'type': 'str'}, - 'ti_automatic_updates': {'key': 'properties.tiAutomaticUpdates', 'type': 'bool'}, - 'ti_status': {'key': 'properties.tiStatus', 'type': 'str'}, - 'ti_version': {'key': 'properties.tiVersion', 'type': 'str'}, - 'zone': {'key': 'properties.zone', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(IotSensorsModel, self).__init__(**kwargs) - self.connectivity_time = None - self.creation_time = None - self.dynamic_learning = None - self.learning_mode = None - self.sensor_status = None - self.sensor_version = None - self.ti_automatic_updates = kwargs.get('ti_automatic_updates', None) - self.ti_status = None - self.ti_version = None - self.zone = kwargs.get('zone', None) - - -class IoTSeverityMetrics(msrest.serialization.Model): - """IoT Security solution analytics severity metrics. - - :param high: Count of high severity alerts/recommendations. - :type high: int - :param medium: Count of medium severity alerts/recommendations. - :type medium: int - :param low: Count of low severity alerts/recommendations. - :type low: int - """ - - _attribute_map = { - 'high': {'key': 'high', 'type': 'int'}, - 'medium': {'key': 'medium', 'type': 'int'}, - 'low': {'key': 'low', 'type': 'int'}, - } - - def __init__( - self, - **kwargs - ): - super(IoTSeverityMetrics, self).__init__(**kwargs) - self.high = kwargs.get('high', None) - self.medium = kwargs.get('medium', None) - self.low = kwargs.get('low', None) - - -class IotSitesList(msrest.serialization.Model): - """List of IoT sites. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar value: List data. - :vartype value: list[~azure.mgmt.security.models.IotSitesModel] - """ - - _validation = { - 'value': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[IotSitesModel]'}, - } - - def __init__( - self, - **kwargs - ): - super(IotSitesList, self).__init__(**kwargs) - self.value = None - - -class IotSitesModel(Resource): - """IoT site model. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :param display_name: Display name of the IoT site. - :type display_name: str - :param tags: A set of tags. Tags of the IoT site. - :type tags: dict[str, 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'}, - 'display_name': {'key': 'properties.displayName', 'type': 'str'}, - 'tags': {'key': 'properties.tags', 'type': '{str}'}, - } - - def __init__( - self, - **kwargs - ): - super(IotSitesModel, self).__init__(**kwargs) - self.display_name = kwargs.get('display_name', None) - self.tags = kwargs.get('tags', None) - - -class IpAddress(msrest.serialization.Model): - """IP Address information. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar v4_address: IPV4 address. - :vartype v4_address: str - :ivar detection_time: Detection time of the ip address. - :vartype detection_time: ~datetime.datetime - :ivar subnet_cidr: Subnet Classless Inter-Domain Routing. - :vartype subnet_cidr: str - :ivar fqdn: Fully qualified domain name. - :vartype fqdn: str - :ivar fqdn_last_lookup_time: FQDN last lookup time. - :vartype fqdn_last_lookup_time: ~datetime.datetime - """ - - _validation = { - 'v4_address': {'readonly': True}, - 'detection_time': {'readonly': True}, - 'subnet_cidr': {'readonly': True}, - 'fqdn': {'readonly': True}, - 'fqdn_last_lookup_time': {'readonly': True}, - } - - _attribute_map = { - 'v4_address': {'key': 'v4Address', 'type': 'str'}, - 'detection_time': {'key': 'detectionTime', 'type': 'iso-8601'}, - 'subnet_cidr': {'key': 'subnetCidr', 'type': 'str'}, - 'fqdn': {'key': 'fqdn', 'type': 'str'}, - 'fqdn_last_lookup_time': {'key': 'fqdnLastLookupTime', 'type': 'iso-8601'}, - } - - def __init__( - self, - **kwargs - ): - super(IpAddress, self).__init__(**kwargs) - self.v4_address = None - self.detection_time = None - self.subnet_cidr = None - self.fqdn = None - self.fqdn_last_lookup_time = None - - -class JitNetworkAccessPoliciesList(msrest.serialization.Model): - """JitNetworkAccessPoliciesList. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param value: - :type value: list[~azure.mgmt.security.models.JitNetworkAccessPolicy] - :ivar next_link: The URI to fetch the next page. - :vartype next_link: str - """ - - _validation = { - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[JitNetworkAccessPolicy]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(JitNetworkAccessPoliciesList, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = None - - -class JitNetworkAccessPolicy(Resource, Kind, Location): - """JitNetworkAccessPolicy. - - 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 location: Location where the resource is stored. - :vartype location: str - :param kind: Kind of the resource. - :type kind: str - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :param virtual_machines: Required. Configurations for Microsoft.Compute/virtualMachines - resource type. - :type virtual_machines: list[~azure.mgmt.security.models.JitNetworkAccessPolicyVirtualMachine] - :param requests: - :type requests: list[~azure.mgmt.security.models.JitNetworkAccessRequest] - :ivar provisioning_state: Gets the provisioning state of the Just-in-Time policy. - :vartype provisioning_state: str - """ - - _validation = { - 'location': {'readonly': True}, - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'virtual_machines': {'required': True}, - 'provisioning_state': {'readonly': True}, - } - - _attribute_map = { - 'location': {'key': 'location', 'type': 'str'}, - 'kind': {'key': 'kind', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'virtual_machines': {'key': 'properties.virtualMachines', 'type': '[JitNetworkAccessPolicyVirtualMachine]'}, - 'requests': {'key': 'properties.requests', 'type': '[JitNetworkAccessRequest]'}, - 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(JitNetworkAccessPolicy, self).__init__(**kwargs) - self.location = None - self.kind = kwargs.get('kind', None) - self.virtual_machines = kwargs['virtual_machines'] - self.requests = kwargs.get('requests', None) - self.provisioning_state = None - self.location = None - self.id = None - self.name = None - self.type = None - self.virtual_machines = kwargs['virtual_machines'] - self.requests = kwargs.get('requests', None) - self.provisioning_state = None - self.kind = kwargs.get('kind', None) - self.id = None - self.name = None - self.type = None - self.virtual_machines = kwargs['virtual_machines'] - self.requests = kwargs.get('requests', None) - self.provisioning_state = None - - -class JitNetworkAccessPolicyInitiatePort(msrest.serialization.Model): - """JitNetworkAccessPolicyInitiatePort. - - All required parameters must be populated in order to send to Azure. - - :param number: Required. - :type number: int - :param allowed_source_address_prefix: Source of the allowed traffic. If omitted, the request - will be for the source IP address of the initiate request. - :type allowed_source_address_prefix: str - :param end_time_utc: Required. The time to close the request in UTC. - :type end_time_utc: ~datetime.datetime - """ - - _validation = { - 'number': {'required': True, 'maximum': 65535, 'minimum': 0}, - 'end_time_utc': {'required': True}, - } - - _attribute_map = { - 'number': {'key': 'number', 'type': 'int'}, - 'allowed_source_address_prefix': {'key': 'allowedSourceAddressPrefix', 'type': 'str'}, - 'end_time_utc': {'key': 'endTimeUtc', 'type': 'iso-8601'}, - } - - def __init__( - self, - **kwargs - ): - super(JitNetworkAccessPolicyInitiatePort, self).__init__(**kwargs) - self.number = kwargs['number'] - self.allowed_source_address_prefix = kwargs.get('allowed_source_address_prefix', None) - self.end_time_utc = kwargs['end_time_utc'] - - -class JitNetworkAccessPolicyInitiateRequest(msrest.serialization.Model): - """JitNetworkAccessPolicyInitiateRequest. - - All required parameters must be populated in order to send to Azure. - - :param virtual_machines: Required. A list of virtual machines & ports to open access for. - :type virtual_machines: - list[~azure.mgmt.security.models.JitNetworkAccessPolicyInitiateVirtualMachine] - :param justification: The justification for making the initiate request. - :type justification: str - """ - - _validation = { - 'virtual_machines': {'required': True}, - } - - _attribute_map = { - 'virtual_machines': {'key': 'virtualMachines', 'type': '[JitNetworkAccessPolicyInitiateVirtualMachine]'}, - 'justification': {'key': 'justification', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(JitNetworkAccessPolicyInitiateRequest, self).__init__(**kwargs) - self.virtual_machines = kwargs['virtual_machines'] - self.justification = kwargs.get('justification', None) - - -class JitNetworkAccessPolicyInitiateVirtualMachine(msrest.serialization.Model): - """JitNetworkAccessPolicyInitiateVirtualMachine. - - All required parameters must be populated in order to send to Azure. - - :param id: Required. Resource ID of the virtual machine that is linked to this policy. - :type id: str - :param ports: Required. The ports to open for the resource with the ``id``. - :type ports: list[~azure.mgmt.security.models.JitNetworkAccessPolicyInitiatePort] - """ - - _validation = { - 'id': {'required': True}, - 'ports': {'required': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'ports': {'key': 'ports', 'type': '[JitNetworkAccessPolicyInitiatePort]'}, - } - - def __init__( - self, - **kwargs - ): - super(JitNetworkAccessPolicyInitiateVirtualMachine, self).__init__(**kwargs) - self.id = kwargs['id'] - self.ports = kwargs['ports'] - - -class JitNetworkAccessPolicyVirtualMachine(msrest.serialization.Model): - """JitNetworkAccessPolicyVirtualMachine. - - All required parameters must be populated in order to send to Azure. - - :param id: Required. Resource ID of the virtual machine that is linked to this policy. - :type id: str - :param ports: Required. Port configurations for the virtual machine. - :type ports: list[~azure.mgmt.security.models.JitNetworkAccessPortRule] - :param public_ip_address: Public IP address of the Azure Firewall that is linked to this - policy, if applicable. - :type public_ip_address: str - """ - - _validation = { - 'id': {'required': True}, - 'ports': {'required': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'ports': {'key': 'ports', 'type': '[JitNetworkAccessPortRule]'}, - 'public_ip_address': {'key': 'publicIpAddress', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(JitNetworkAccessPolicyVirtualMachine, self).__init__(**kwargs) - self.id = kwargs['id'] - self.ports = kwargs['ports'] - self.public_ip_address = kwargs.get('public_ip_address', None) - - -class JitNetworkAccessPortRule(msrest.serialization.Model): - """JitNetworkAccessPortRule. - - All required parameters must be populated in order to send to Azure. - - :param number: Required. - :type number: int - :param protocol: Required. Possible values include: "TCP", "UDP", "*". - :type protocol: str or ~azure.mgmt.security.models.ProtocolEnum - :param allowed_source_address_prefix: Mutually exclusive with the - "allowedSourceAddressPrefixes" parameter. Should be an IP address or CIDR, for example - "192.168.0.3" or "192.168.0.0/16". - :type allowed_source_address_prefix: str - :param allowed_source_address_prefixes: Mutually exclusive with the - "allowedSourceAddressPrefix" parameter. - :type allowed_source_address_prefixes: list[str] - :param max_request_access_duration: Required. Maximum duration requests can be made for. In ISO - 8601 duration format. Minimum 5 minutes, maximum 1 day. - :type max_request_access_duration: str - """ - - _validation = { - 'number': {'required': True, 'maximum': 65535, 'minimum': 0}, - 'protocol': {'required': True}, - 'max_request_access_duration': {'required': True}, - } - - _attribute_map = { - 'number': {'key': 'number', 'type': 'int'}, - 'protocol': {'key': 'protocol', 'type': 'str'}, - 'allowed_source_address_prefix': {'key': 'allowedSourceAddressPrefix', 'type': 'str'}, - 'allowed_source_address_prefixes': {'key': 'allowedSourceAddressPrefixes', 'type': '[str]'}, - 'max_request_access_duration': {'key': 'maxRequestAccessDuration', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(JitNetworkAccessPortRule, self).__init__(**kwargs) - self.number = kwargs['number'] - self.protocol = kwargs['protocol'] - self.allowed_source_address_prefix = kwargs.get('allowed_source_address_prefix', None) - self.allowed_source_address_prefixes = kwargs.get('allowed_source_address_prefixes', None) - self.max_request_access_duration = kwargs['max_request_access_duration'] - - -class JitNetworkAccessRequest(msrest.serialization.Model): - """JitNetworkAccessRequest. - - All required parameters must be populated in order to send to Azure. - - :param virtual_machines: Required. - :type virtual_machines: list[~azure.mgmt.security.models.JitNetworkAccessRequestVirtualMachine] - :param start_time_utc: Required. The start time of the request in UTC. - :type start_time_utc: ~datetime.datetime - :param requestor: Required. The identity of the person who made the request. - :type requestor: str - :param justification: The justification for making the initiate request. - :type justification: str - """ - - _validation = { - 'virtual_machines': {'required': True}, - 'start_time_utc': {'required': True}, - 'requestor': {'required': True}, - } - - _attribute_map = { - 'virtual_machines': {'key': 'virtualMachines', 'type': '[JitNetworkAccessRequestVirtualMachine]'}, - 'start_time_utc': {'key': 'startTimeUtc', 'type': 'iso-8601'}, - 'requestor': {'key': 'requestor', 'type': 'str'}, - 'justification': {'key': 'justification', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(JitNetworkAccessRequest, self).__init__(**kwargs) - self.virtual_machines = kwargs['virtual_machines'] - self.start_time_utc = kwargs['start_time_utc'] - self.requestor = kwargs['requestor'] - self.justification = kwargs.get('justification', None) - - -class JitNetworkAccessRequestPort(msrest.serialization.Model): - """JitNetworkAccessRequestPort. - - All required parameters must be populated in order to send to Azure. - - :param number: Required. - :type number: int - :param allowed_source_address_prefix: Mutually exclusive with the - "allowedSourceAddressPrefixes" parameter. Should be an IP address or CIDR, for example - "192.168.0.3" or "192.168.0.0/16". - :type allowed_source_address_prefix: str - :param allowed_source_address_prefixes: Mutually exclusive with the - "allowedSourceAddressPrefix" parameter. - :type allowed_source_address_prefixes: list[str] - :param end_time_utc: Required. The date & time at which the request ends in UTC. - :type end_time_utc: ~datetime.datetime - :param status: Required. The status of the port. Possible values include: "Revoked", - "Initiated". - :type status: str or ~azure.mgmt.security.models.Status - :param status_reason: Required. A description of why the ``status`` has its value. Possible - values include: "Expired", "UserRequested", "NewerRequestInitiated". - :type status_reason: str or ~azure.mgmt.security.models.StatusReason - :param mapped_port: The port which is mapped to this port's ``number`` in the Azure Firewall, - if applicable. - :type mapped_port: int - """ - - _validation = { - 'number': {'required': True, 'maximum': 65535, 'minimum': 0}, - 'end_time_utc': {'required': True}, - 'status': {'required': True}, - 'status_reason': {'required': True}, - } - - _attribute_map = { - 'number': {'key': 'number', 'type': 'int'}, - 'allowed_source_address_prefix': {'key': 'allowedSourceAddressPrefix', 'type': 'str'}, - 'allowed_source_address_prefixes': {'key': 'allowedSourceAddressPrefixes', 'type': '[str]'}, - 'end_time_utc': {'key': 'endTimeUtc', 'type': 'iso-8601'}, - 'status': {'key': 'status', 'type': 'str'}, - 'status_reason': {'key': 'statusReason', 'type': 'str'}, - 'mapped_port': {'key': 'mappedPort', 'type': 'int'}, - } - - def __init__( - self, - **kwargs - ): - super(JitNetworkAccessRequestPort, self).__init__(**kwargs) - self.number = kwargs['number'] - self.allowed_source_address_prefix = kwargs.get('allowed_source_address_prefix', None) - self.allowed_source_address_prefixes = kwargs.get('allowed_source_address_prefixes', None) - self.end_time_utc = kwargs['end_time_utc'] - self.status = kwargs['status'] - self.status_reason = kwargs['status_reason'] - self.mapped_port = kwargs.get('mapped_port', None) - - -class JitNetworkAccessRequestVirtualMachine(msrest.serialization.Model): - """JitNetworkAccessRequestVirtualMachine. - - All required parameters must be populated in order to send to Azure. - - :param id: Required. Resource ID of the virtual machine that is linked to this policy. - :type id: str - :param ports: Required. The ports that were opened for the virtual machine. - :type ports: list[~azure.mgmt.security.models.JitNetworkAccessRequestPort] - """ - - _validation = { - 'id': {'required': True}, - 'ports': {'required': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'ports': {'key': 'ports', 'type': '[JitNetworkAccessRequestPort]'}, - } - - def __init__( - self, - **kwargs - ): - super(JitNetworkAccessRequestVirtualMachine, self).__init__(**kwargs) - self.id = kwargs['id'] - self.ports = kwargs['ports'] - - -class LocalUserNotAllowed(AllowlistCustomAlertRule): - """Login by a local user that isn't allowed. Allow list consists of login names to allow. - - 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 display_name: The display name of the custom alert. - :vartype display_name: str - :ivar description: The description of the custom alert. - :vartype description: str - :param is_enabled: Required. Status of the custom alert. - :type is_enabled: bool - :param rule_type: Required. The type of the custom alert rule.Constant filled by server. - :type rule_type: str - :ivar value_type: The value type of the items in the list. Possible values include: "IpCidr", - "String". - :vartype value_type: str or ~azure.mgmt.security.models.ValueType - :param allowlist_values: Required. The values to allow. The format of the values depends on the - rule type. - :type allowlist_values: list[str] - """ - - _validation = { - 'display_name': {'readonly': True}, - 'description': {'readonly': True}, - 'is_enabled': {'required': True}, - 'rule_type': {'required': True}, - 'value_type': {'readonly': True}, - 'allowlist_values': {'required': True}, - } - - _attribute_map = { - 'display_name': {'key': 'displayName', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, - 'rule_type': {'key': 'ruleType', 'type': 'str'}, - 'value_type': {'key': 'valueType', 'type': 'str'}, - 'allowlist_values': {'key': 'allowlistValues', 'type': '[str]'}, - } - - def __init__( - self, - **kwargs - ): - super(LocalUserNotAllowed, self).__init__(**kwargs) - self.rule_type = 'LocalUserNotAllowed' # type: str - - -class LogAnalyticsIdentifier(ResourceIdentifier): - """Represents a Log Analytics workspace scope identifier. - - 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 type: Required. There can be multiple identifiers of different type per alert, this - field specify the identifier type.Constant filled by server. Possible values include: - "AzureResource", "LogAnalytics". - :type type: str or ~azure.mgmt.security.models.ResourceIdentifierType - :ivar workspace_id: The LogAnalytics workspace id that stores this alert. - :vartype workspace_id: str - :ivar workspace_subscription_id: The azure subscription id for the LogAnalytics workspace - storing this alert. - :vartype workspace_subscription_id: str - :ivar workspace_resource_group: The azure resource group for the LogAnalytics workspace storing - this alert. - :vartype workspace_resource_group: str - :ivar agent_id: (optional) The LogAnalytics agent id reporting the event that this alert is - based on. - :vartype agent_id: str - """ - - _validation = { - 'type': {'required': True}, - 'workspace_id': {'readonly': True}, - 'workspace_subscription_id': {'readonly': True, 'pattern': r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'}, - 'workspace_resource_group': {'readonly': True}, - 'agent_id': {'readonly': True}, - } - - _attribute_map = { - 'type': {'key': 'type', 'type': 'str'}, - 'workspace_id': {'key': 'workspaceId', 'type': 'str'}, - 'workspace_subscription_id': {'key': 'workspaceSubscriptionId', 'type': 'str'}, - 'workspace_resource_group': {'key': 'workspaceResourceGroup', 'type': 'str'}, - 'agent_id': {'key': 'agentId', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(LogAnalyticsIdentifier, self).__init__(**kwargs) - self.type = 'LogAnalytics' # type: str - self.workspace_id = None - self.workspace_subscription_id = None - self.workspace_resource_group = None - self.agent_id = None - - -class MacAddress(msrest.serialization.Model): - """MAC Address information. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar address: MAC address. - :vartype address: str - :ivar detection_time: Detection time of the mac address. - :vartype detection_time: ~datetime.datetime - :ivar significance: Indicates whether this is the primary secondary MAC address of the device. - Possible values include: "Primary", "Secondary". - :vartype significance: str or ~azure.mgmt.security.models.MacSignificance - :ivar relation_to_ip_status: Indicates whether the relation of the mac to the ip address is - certain or a guess. Possible values include: "Guess", "Certain". - :vartype relation_to_ip_status: str or ~azure.mgmt.security.models.RelationToIpStatus - """ - - _validation = { - 'address': {'readonly': True}, - 'detection_time': {'readonly': True}, - 'significance': {'readonly': True}, - 'relation_to_ip_status': {'readonly': True}, - } - - _attribute_map = { - 'address': {'key': 'address', 'type': 'str'}, - 'detection_time': {'key': 'detectionTime', 'type': 'iso-8601'}, - 'significance': {'key': 'significance', 'type': 'str'}, - 'relation_to_ip_status': {'key': 'relationToIpStatus', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(MacAddress, self).__init__(**kwargs) - self.address = None - self.detection_time = None - self.significance = None - self.relation_to_ip_status = None - - -class MqttC2DMessagesNotInAllowedRange(TimeWindowCustomAlertRule): - """Number of cloud to device messages (MQTT protocol) is not in allowed range. - - 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 display_name: The display name of the custom alert. - :vartype display_name: str - :ivar description: The description of the custom alert. - :vartype description: str - :param is_enabled: Required. Status of the custom alert. - :type is_enabled: bool - :param rule_type: Required. The type of the custom alert rule.Constant filled by server. - :type rule_type: str - :param min_threshold: Required. The minimum threshold. - :type min_threshold: int - :param max_threshold: Required. The maximum threshold. - :type max_threshold: int - :param time_window_size: Required. The time window size in iso8601 format. - :type time_window_size: ~datetime.timedelta - """ - - _validation = { - 'display_name': {'readonly': True}, - 'description': {'readonly': True}, - 'is_enabled': {'required': True}, - 'rule_type': {'required': True}, - 'min_threshold': {'required': True}, - 'max_threshold': {'required': True}, - 'time_window_size': {'required': True}, - } - - _attribute_map = { - 'display_name': {'key': 'displayName', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, - 'rule_type': {'key': 'ruleType', 'type': 'str'}, - 'min_threshold': {'key': 'minThreshold', 'type': 'int'}, - 'max_threshold': {'key': 'maxThreshold', 'type': 'int'}, - 'time_window_size': {'key': 'timeWindowSize', 'type': 'duration'}, - } - - def __init__( - self, - **kwargs - ): - super(MqttC2DMessagesNotInAllowedRange, self).__init__(**kwargs) - self.rule_type = 'MqttC2DMessagesNotInAllowedRange' # type: str - - -class MqttC2DRejectedMessagesNotInAllowedRange(TimeWindowCustomAlertRule): - """Number of rejected cloud to device messages (MQTT protocol) is not in allowed range. - - 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 display_name: The display name of the custom alert. - :vartype display_name: str - :ivar description: The description of the custom alert. - :vartype description: str - :param is_enabled: Required. Status of the custom alert. - :type is_enabled: bool - :param rule_type: Required. The type of the custom alert rule.Constant filled by server. - :type rule_type: str - :param min_threshold: Required. The minimum threshold. - :type min_threshold: int - :param max_threshold: Required. The maximum threshold. - :type max_threshold: int - :param time_window_size: Required. The time window size in iso8601 format. - :type time_window_size: ~datetime.timedelta - """ - - _validation = { - 'display_name': {'readonly': True}, - 'description': {'readonly': True}, - 'is_enabled': {'required': True}, - 'rule_type': {'required': True}, - 'min_threshold': {'required': True}, - 'max_threshold': {'required': True}, - 'time_window_size': {'required': True}, - } - - _attribute_map = { - 'display_name': {'key': 'displayName', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, - 'rule_type': {'key': 'ruleType', 'type': 'str'}, - 'min_threshold': {'key': 'minThreshold', 'type': 'int'}, - 'max_threshold': {'key': 'maxThreshold', 'type': 'int'}, - 'time_window_size': {'key': 'timeWindowSize', 'type': 'duration'}, - } - - def __init__( - self, - **kwargs - ): - super(MqttC2DRejectedMessagesNotInAllowedRange, self).__init__(**kwargs) - self.rule_type = 'MqttC2DRejectedMessagesNotInAllowedRange' # type: str - - -class MqttD2CMessagesNotInAllowedRange(TimeWindowCustomAlertRule): - """Number of device to cloud messages (MQTT protocol) is not in allowed range. - - 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 display_name: The display name of the custom alert. - :vartype display_name: str - :ivar description: The description of the custom alert. - :vartype description: str - :param is_enabled: Required. Status of the custom alert. - :type is_enabled: bool - :param rule_type: Required. The type of the custom alert rule.Constant filled by server. - :type rule_type: str - :param min_threshold: Required. The minimum threshold. - :type min_threshold: int - :param max_threshold: Required. The maximum threshold. - :type max_threshold: int - :param time_window_size: Required. The time window size in iso8601 format. - :type time_window_size: ~datetime.timedelta - """ - - _validation = { - 'display_name': {'readonly': True}, - 'description': {'readonly': True}, - 'is_enabled': {'required': True}, - 'rule_type': {'required': True}, - 'min_threshold': {'required': True}, - 'max_threshold': {'required': True}, - 'time_window_size': {'required': True}, - } - - _attribute_map = { - 'display_name': {'key': 'displayName', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, - 'rule_type': {'key': 'ruleType', 'type': 'str'}, - 'min_threshold': {'key': 'minThreshold', 'type': 'int'}, - 'max_threshold': {'key': 'maxThreshold', 'type': 'int'}, - 'time_window_size': {'key': 'timeWindowSize', 'type': 'duration'}, + 'virtual_machines': {'key': 'virtualMachines', 'type': '[JitNetworkAccessPolicyInitiateVirtualMachine]'}, + 'justification': {'key': 'justification', 'type': 'str'}, } def __init__( self, **kwargs ): - super(MqttD2CMessagesNotInAllowedRange, self).__init__(**kwargs) - self.rule_type = 'MqttD2CMessagesNotInAllowedRange' # type: str + super(JitNetworkAccessPolicyInitiateRequest, self).__init__(**kwargs) + self.virtual_machines = kwargs['virtual_machines'] + self.justification = kwargs.get('justification', None) -class NetworkInterface(msrest.serialization.Model): - """Network interface. +class JitNetworkAccessPolicyInitiateVirtualMachine(msrest.serialization.Model): + """JitNetworkAccessPolicyInitiateVirtualMachine. - 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 ip_address: IP Address information. - :type ip_address: ~azure.mgmt.security.models.IpAddress - :param mac_address: MAC Address information. - :type mac_address: ~azure.mgmt.security.models.MacAddress - :ivar vlans: List of device vlans. - :vartype vlans: list[str] + :param id: Required. Resource ID of the virtual machine that is linked to this policy. + :type id: str + :param ports: Required. The ports to open for the resource with the ``id``. + :type ports: list[~azure.mgmt.security.models.JitNetworkAccessPolicyInitiatePort] """ _validation = { - 'vlans': {'readonly': True}, + 'id': {'required': True}, + 'ports': {'required': True}, } _attribute_map = { - 'ip_address': {'key': 'ipAddress', 'type': 'IpAddress'}, - 'mac_address': {'key': 'macAddress', 'type': 'MacAddress'}, - 'vlans': {'key': 'vlans', 'type': '[str]'}, + 'id': {'key': 'id', 'type': 'str'}, + 'ports': {'key': 'ports', 'type': '[JitNetworkAccessPolicyInitiatePort]'}, } def __init__( self, **kwargs ): - super(NetworkInterface, self).__init__(**kwargs) - self.ip_address = kwargs.get('ip_address', None) - self.mac_address = kwargs.get('mac_address', None) - self.vlans = None + super(JitNetworkAccessPolicyInitiateVirtualMachine, self).__init__(**kwargs) + self.id = kwargs['id'] + self.ports = kwargs['ports'] -class OnPremiseIotSensor(Resource): - """On-premise IoT sensor. +class JitNetworkAccessPolicyVirtualMachine(msrest.serialization.Model): + """JitNetworkAccessPolicyVirtualMachine. - 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: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :param properties: On-premise IoT sensor properties. - :type properties: object + :param id: Required. Resource ID of the virtual machine that is linked to this policy. + :type id: str + :param ports: Required. Port configurations for the virtual machine. + :type ports: list[~azure.mgmt.security.models.JitNetworkAccessPortRule] + :param public_ip_address: Public IP address of the Azure Firewall that is linked to this + policy, if applicable. + :type public_ip_address: str """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, + 'id': {'required': True}, + 'ports': {'required': True}, } _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'properties': {'key': 'properties', 'type': 'object'}, + 'ports': {'key': 'ports', 'type': '[JitNetworkAccessPortRule]'}, + 'public_ip_address': {'key': 'publicIpAddress', 'type': 'str'}, } def __init__( self, **kwargs ): - super(OnPremiseIotSensor, self).__init__(**kwargs) - self.properties = kwargs.get('properties', None) + super(JitNetworkAccessPolicyVirtualMachine, self).__init__(**kwargs) + self.id = kwargs['id'] + self.ports = kwargs['ports'] + self.public_ip_address = kwargs.get('public_ip_address', None) -class OnPremiseIotSensorsList(msrest.serialization.Model): - """List of on-premise IoT sensors. +class JitNetworkAccessPortRule(msrest.serialization.Model): + """JitNetworkAccessPortRule. - 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 value: List data. - :vartype value: list[~azure.mgmt.security.models.OnPremiseIotSensor] + :param number: Required. + :type number: int + :param protocol: Required. Possible values include: "TCP", "UDP", "*". + :type protocol: str or ~azure.mgmt.security.models.ProtocolEnum + :param allowed_source_address_prefix: Mutually exclusive with the + "allowedSourceAddressPrefixes" parameter. Should be an IP address or CIDR, for example + "192.168.0.3" or "192.168.0.0/16". + :type allowed_source_address_prefix: str + :param allowed_source_address_prefixes: Mutually exclusive with the + "allowedSourceAddressPrefix" parameter. + :type allowed_source_address_prefixes: list[str] + :param max_request_access_duration: Required. Maximum duration requests can be made for. In ISO + 8601 duration format. Minimum 5 minutes, maximum 1 day. + :type max_request_access_duration: str """ _validation = { - 'value': {'readonly': True}, + 'number': {'required': True, 'maximum': 65535, 'minimum': 0}, + 'protocol': {'required': True}, + 'max_request_access_duration': {'required': True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[OnPremiseIotSensor]'}, + 'number': {'key': 'number', 'type': 'int'}, + 'protocol': {'key': 'protocol', 'type': 'str'}, + 'allowed_source_address_prefix': {'key': 'allowedSourceAddressPrefix', 'type': 'str'}, + 'allowed_source_address_prefixes': {'key': 'allowedSourceAddressPrefixes', 'type': '[str]'}, + 'max_request_access_duration': {'key': 'maxRequestAccessDuration', 'type': 'str'}, } def __init__( self, **kwargs ): - super(OnPremiseIotSensorsList, self).__init__(**kwargs) - self.value = None - + super(JitNetworkAccessPortRule, self).__init__(**kwargs) + self.number = kwargs['number'] + self.protocol = kwargs['protocol'] + self.allowed_source_address_prefix = kwargs.get('allowed_source_address_prefix', None) + self.allowed_source_address_prefixes = kwargs.get('allowed_source_address_prefixes', None) + self.max_request_access_duration = kwargs['max_request_access_duration'] -class OnPremiseResourceDetails(ResourceDetails): - """Details of the On Premise resource that was assessed. - You probably want to use the sub-classes and not this class directly. Known - sub-classes are: OnPremiseSqlResourceDetails. +class JitNetworkAccessRequest(msrest.serialization.Model): + """JitNetworkAccessRequest. All required parameters must be populated in order to send to Azure. - :param source: Required. The platform where the assessed resource resides.Constant filled by - server. Possible values include: "Azure", "OnPremise", "OnPremiseSql". - :type source: str or ~azure.mgmt.security.models.Source - :param workspace_id: Required. Azure resource Id of the workspace the machine is attached to. - :type workspace_id: str - :param vmuuid: Required. The unique Id of the machine. - :type vmuuid: str - :param source_computer_id: Required. The oms agent Id installed on the machine. - :type source_computer_id: str - :param machine_name: Required. The name of the machine. - :type machine_name: str + :param virtual_machines: Required. + :type virtual_machines: list[~azure.mgmt.security.models.JitNetworkAccessRequestVirtualMachine] + :param start_time_utc: Required. The start time of the request in UTC. + :type start_time_utc: ~datetime.datetime + :param requestor: Required. The identity of the person who made the request. + :type requestor: str + :param justification: The justification for making the initiate request. + :type justification: str """ _validation = { - 'source': {'required': True}, - 'workspace_id': {'required': True}, - 'vmuuid': {'required': True}, - 'source_computer_id': {'required': True}, - 'machine_name': {'required': True}, + 'virtual_machines': {'required': True}, + 'start_time_utc': {'required': True}, + 'requestor': {'required': True}, } _attribute_map = { - 'source': {'key': 'source', 'type': 'str'}, - 'workspace_id': {'key': 'workspaceId', 'type': 'str'}, - 'vmuuid': {'key': 'vmuuid', 'type': 'str'}, - 'source_computer_id': {'key': 'sourceComputerId', 'type': 'str'}, - 'machine_name': {'key': 'machineName', 'type': 'str'}, - } - - _subtype_map = { - 'source': {'OnPremiseSql': 'OnPremiseSqlResourceDetails'} + 'virtual_machines': {'key': 'virtualMachines', 'type': '[JitNetworkAccessRequestVirtualMachine]'}, + 'start_time_utc': {'key': 'startTimeUtc', 'type': 'iso-8601'}, + 'requestor': {'key': 'requestor', 'type': 'str'}, + 'justification': {'key': 'justification', 'type': 'str'}, } def __init__( self, **kwargs ): - super(OnPremiseResourceDetails, self).__init__(**kwargs) - self.source = 'OnPremise' # type: str - self.workspace_id = kwargs['workspace_id'] - self.vmuuid = kwargs['vmuuid'] - self.source_computer_id = kwargs['source_computer_id'] - self.machine_name = kwargs['machine_name'] + super(JitNetworkAccessRequest, self).__init__(**kwargs) + self.virtual_machines = kwargs['virtual_machines'] + self.start_time_utc = kwargs['start_time_utc'] + self.requestor = kwargs['requestor'] + self.justification = kwargs.get('justification', None) -class OnPremiseSqlResourceDetails(OnPremiseResourceDetails): - """Details of the On Premise Sql resource that was assessed. +class JitNetworkAccessRequestPort(msrest.serialization.Model): + """JitNetworkAccessRequestPort. All required parameters must be populated in order to send to Azure. - :param source: Required. The platform where the assessed resource resides.Constant filled by - server. Possible values include: "Azure", "OnPremise", "OnPremiseSql". - :type source: str or ~azure.mgmt.security.models.Source - :param workspace_id: Required. Azure resource Id of the workspace the machine is attached to. - :type workspace_id: str - :param vmuuid: Required. The unique Id of the machine. - :type vmuuid: str - :param source_computer_id: Required. The oms agent Id installed on the machine. - :type source_computer_id: str - :param machine_name: Required. The name of the machine. - :type machine_name: str - :param server_name: Required. The Sql server name installed on the machine. - :type server_name: str - :param database_name: Required. The Sql database name installed on the machine. - :type database_name: str + :param number: Required. + :type number: int + :param allowed_source_address_prefix: Mutually exclusive with the + "allowedSourceAddressPrefixes" parameter. Should be an IP address or CIDR, for example + "192.168.0.3" or "192.168.0.0/16". + :type allowed_source_address_prefix: str + :param allowed_source_address_prefixes: Mutually exclusive with the + "allowedSourceAddressPrefix" parameter. + :type allowed_source_address_prefixes: list[str] + :param end_time_utc: Required. The date & time at which the request ends in UTC. + :type end_time_utc: ~datetime.datetime + :param status: Required. The status of the port. Possible values include: "Revoked", + "Initiated". + :type status: str or ~azure.mgmt.security.models.Status + :param status_reason: Required. A description of why the ``status`` has its value. Possible + values include: "Expired", "UserRequested", "NewerRequestInitiated". + :type status_reason: str or ~azure.mgmt.security.models.StatusReason + :param mapped_port: The port which is mapped to this port's ``number`` in the Azure Firewall, + if applicable. + :type mapped_port: int """ _validation = { - 'source': {'required': True}, - 'workspace_id': {'required': True}, - 'vmuuid': {'required': True}, - 'source_computer_id': {'required': True}, - 'machine_name': {'required': True}, - 'server_name': {'required': True}, - 'database_name': {'required': True}, + 'number': {'required': True, 'maximum': 65535, 'minimum': 0}, + 'end_time_utc': {'required': True}, + 'status': {'required': True}, + 'status_reason': {'required': True}, } _attribute_map = { - 'source': {'key': 'source', 'type': 'str'}, - 'workspace_id': {'key': 'workspaceId', 'type': 'str'}, - 'vmuuid': {'key': 'vmuuid', 'type': 'str'}, - 'source_computer_id': {'key': 'sourceComputerId', 'type': 'str'}, - 'machine_name': {'key': 'machineName', 'type': 'str'}, - 'server_name': {'key': 'serverName', 'type': 'str'}, - 'database_name': {'key': 'databaseName', 'type': 'str'}, + 'number': {'key': 'number', 'type': 'int'}, + 'allowed_source_address_prefix': {'key': 'allowedSourceAddressPrefix', 'type': 'str'}, + 'allowed_source_address_prefixes': {'key': 'allowedSourceAddressPrefixes', 'type': '[str]'}, + 'end_time_utc': {'key': 'endTimeUtc', 'type': 'iso-8601'}, + 'status': {'key': 'status', 'type': 'str'}, + 'status_reason': {'key': 'statusReason', 'type': 'str'}, + 'mapped_port': {'key': 'mappedPort', 'type': 'int'}, } def __init__( - self, - **kwargs - ): - super(OnPremiseSqlResourceDetails, self).__init__(**kwargs) - self.source = 'OnPremiseSql' # type: str - self.server_name = kwargs['server_name'] - self.database_name = kwargs['database_name'] + self, + **kwargs + ): + super(JitNetworkAccessRequestPort, self).__init__(**kwargs) + self.number = kwargs['number'] + self.allowed_source_address_prefix = kwargs.get('allowed_source_address_prefix', None) + self.allowed_source_address_prefixes = kwargs.get('allowed_source_address_prefixes', None) + self.end_time_utc = kwargs['end_time_utc'] + self.status = kwargs['status'] + self.status_reason = kwargs['status_reason'] + self.mapped_port = kwargs.get('mapped_port', None) -class Operation(msrest.serialization.Model): - """Possible operation in the REST API of Microsoft.Security. +class JitNetworkAccessRequestVirtualMachine(msrest.serialization.Model): + """JitNetworkAccessRequestVirtualMachine. - 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 name: Name of the operation. - :vartype name: str - :ivar origin: Where the operation is originated. - :vartype origin: str - :param display: Security operation display. - :type display: ~azure.mgmt.security.models.OperationDisplay + :param id: Required. Resource ID of the virtual machine that is linked to this policy. + :type id: str + :param ports: Required. The ports that were opened for the virtual machine. + :type ports: list[~azure.mgmt.security.models.JitNetworkAccessRequestPort] """ _validation = { - 'name': {'readonly': True}, - 'origin': {'readonly': True}, + 'id': {'required': True}, + 'ports': {'required': True}, } _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'origin': {'key': 'origin', 'type': 'str'}, - 'display': {'key': 'display', 'type': 'OperationDisplay'}, + 'id': {'key': 'id', 'type': 'str'}, + 'ports': {'key': 'ports', 'type': '[JitNetworkAccessRequestPort]'}, } def __init__( self, **kwargs ): - super(Operation, self).__init__(**kwargs) - self.name = None - self.origin = None - self.display = kwargs.get('display', None) + super(JitNetworkAccessRequestVirtualMachine, self).__init__(**kwargs) + self.id = kwargs['id'] + self.ports = kwargs['ports'] -class OperationDisplay(msrest.serialization.Model): - """Security operation display. +class LocalUserNotAllowed(AllowlistCustomAlertRule): + """Login by a local user that isn't allowed. Allow list consists of login names to allow. Variables are only populated by the server, and will be ignored when sending a request. - :ivar provider: The resource provider for the operation. - :vartype provider: str - :ivar resource: The display name of the resource the operation applies to. - :vartype resource: str - :ivar operation: The display name of the security operation. - :vartype operation: str - :ivar description: The description of the operation. + All required parameters must be populated in order to send to Azure. + + :ivar display_name: The display name of the custom alert. + :vartype display_name: str + :ivar description: The description of the custom alert. :vartype description: str + :param is_enabled: Required. Status of the custom alert. + :type is_enabled: bool + :param rule_type: Required. The type of the custom alert rule.Constant filled by server. + :type rule_type: str + :ivar value_type: The value type of the items in the list. Possible values include: "IpCidr", + "String". + :vartype value_type: str or ~azure.mgmt.security.models.ValueType + :param allowlist_values: Required. The values to allow. The format of the values depends on the + rule type. + :type allowlist_values: list[str] """ _validation = { - 'provider': {'readonly': True}, - 'resource': {'readonly': True}, - 'operation': {'readonly': True}, + 'display_name': {'readonly': True}, 'description': {'readonly': True}, + 'is_enabled': {'required': True}, + 'rule_type': {'required': True}, + 'value_type': {'readonly': True}, + 'allowlist_values': {'required': True}, } _attribute_map = { - 'provider': {'key': 'provider', 'type': 'str'}, - 'resource': {'key': 'resource', 'type': 'str'}, - 'operation': {'key': 'operation', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, 'description': {'key': 'description', 'type': 'str'}, + 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, + 'rule_type': {'key': 'ruleType', 'type': 'str'}, + 'value_type': {'key': 'valueType', 'type': 'str'}, + 'allowlist_values': {'key': 'allowlistValues', 'type': '[str]'}, } def __init__( self, **kwargs ): - super(OperationDisplay, self).__init__(**kwargs) - self.provider = None - self.resource = None - self.operation = None - self.description = None + super(LocalUserNotAllowed, self).__init__(**kwargs) + self.rule_type = 'LocalUserNotAllowed' # type: str -class OperationList(msrest.serialization.Model): - """List of possible operations for Microsoft.Security resource provider. +class LogAnalyticsIdentifier(ResourceIdentifier): + """Represents a Log Analytics workspace scope identifier. Variables are only populated by the server, and will be ignored when sending a request. - :param value: List of Security operations. - :type value: list[~azure.mgmt.security.models.Operation] - :ivar next_link: The URI to fetch the next page. - :vartype next_link: str + All required parameters must be populated in order to send to Azure. + + :param type: Required. There can be multiple identifiers of different type per alert, this + field specify the identifier type.Constant filled by server. Possible values include: + "AzureResource", "LogAnalytics". + :type type: str or ~azure.mgmt.security.models.ResourceIdentifierType + :ivar workspace_id: The LogAnalytics workspace id that stores this alert. + :vartype workspace_id: str + :ivar workspace_subscription_id: The azure subscription id for the LogAnalytics workspace + storing this alert. + :vartype workspace_subscription_id: str + :ivar workspace_resource_group: The azure resource group for the LogAnalytics workspace storing + this alert. + :vartype workspace_resource_group: str + :ivar agent_id: (optional) The LogAnalytics agent id reporting the event that this alert is + based on. + :vartype agent_id: str """ _validation = { - 'next_link': {'readonly': True}, + 'type': {'required': True}, + 'workspace_id': {'readonly': True}, + 'workspace_subscription_id': {'readonly': True, 'pattern': r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'}, + 'workspace_resource_group': {'readonly': True}, + 'agent_id': {'readonly': True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[Operation]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'workspace_id': {'key': 'workspaceId', 'type': 'str'}, + 'workspace_subscription_id': {'key': 'workspaceSubscriptionId', 'type': 'str'}, + 'workspace_resource_group': {'key': 'workspaceResourceGroup', 'type': 'str'}, + 'agent_id': {'key': 'agentId', 'type': 'str'}, } def __init__( self, **kwargs ): - super(OperationList, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = None + super(LogAnalyticsIdentifier, self).__init__(**kwargs) + self.type = 'LogAnalytics' # type: str + self.workspace_id = None + self.workspace_subscription_id = None + self.workspace_resource_group = None + self.agent_id = None -class PackageDownloadInfo(msrest.serialization.Model): - """Information on a specific package download. +class MqttC2DMessagesNotInAllowedRange(TimeWindowCustomAlertRule): + """Number of cloud to device messages (MQTT protocol) is not in allowed range. Variables are only populated by the server, and will be ignored when sending a request. - :ivar version: Version number. - :vartype version: str - :ivar link: Download link. - :vartype link: str - :ivar version_kind: Kind of the version. Possible values include: "Latest", "Previous", - "Preview". - :vartype version_kind: str or ~azure.mgmt.security.models.VersionKind + All required parameters must be populated in order to send to Azure. + + :ivar display_name: The display name of the custom alert. + :vartype display_name: str + :ivar description: The description of the custom alert. + :vartype description: str + :param is_enabled: Required. Status of the custom alert. + :type is_enabled: bool + :param rule_type: Required. The type of the custom alert rule.Constant filled by server. + :type rule_type: str + :param min_threshold: Required. The minimum threshold. + :type min_threshold: int + :param max_threshold: Required. The maximum threshold. + :type max_threshold: int + :param time_window_size: Required. The time window size in iso8601 format. + :type time_window_size: ~datetime.timedelta """ _validation = { - 'version': {'readonly': True}, - 'link': {'readonly': True}, - 'version_kind': {'readonly': True}, + 'display_name': {'readonly': True}, + 'description': {'readonly': True}, + 'is_enabled': {'required': True}, + 'rule_type': {'required': True}, + 'min_threshold': {'required': True}, + 'max_threshold': {'required': True}, + 'time_window_size': {'required': True}, } _attribute_map = { - 'version': {'key': 'version', 'type': 'str'}, - 'link': {'key': 'link', 'type': 'str'}, - 'version_kind': {'key': 'versionKind', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, + 'rule_type': {'key': 'ruleType', 'type': 'str'}, + 'min_threshold': {'key': 'minThreshold', 'type': 'int'}, + 'max_threshold': {'key': 'maxThreshold', 'type': 'int'}, + 'time_window_size': {'key': 'timeWindowSize', 'type': 'duration'}, } def __init__( self, **kwargs ): - super(PackageDownloadInfo, self).__init__(**kwargs) - self.version = None - self.link = None - self.version_kind = None + super(MqttC2DMessagesNotInAllowedRange, self).__init__(**kwargs) + self.rule_type = 'MqttC2DMessagesNotInAllowedRange' # type: str -class PackageDownloads(msrest.serialization.Model): - """Information about package downloads. +class MqttC2DRejectedMessagesNotInAllowedRange(TimeWindowCustomAlertRule): + """Number of rejected cloud to device messages (MQTT protocol) is not in allowed range. Variables are only populated by the server, and will be ignored when sending a request. - :ivar sensor: Contains all Sensor binary downloads. - :vartype sensor: ~azure.mgmt.security.models.PackageDownloadsSensor - :ivar central_manager: All downloads for Central Manager. - :vartype central_manager: ~azure.mgmt.security.models.PackageDownloadsCentralManager - :ivar threat_intelligence: All downloads for threat intelligence. - :vartype threat_intelligence: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar snmp: SNMP Server file. - :vartype snmp: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar wmi_tool: Used for local configuration export. - :vartype wmi_tool: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar authorized_devices_import_template: Authorized devices import template. - :vartype authorized_devices_import_template: - list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar device_information_update_import_template: Authorized devices import template. - :vartype device_information_update_import_template: - list[~azure.mgmt.security.models.PackageDownloadInfo] + All required parameters must be populated in order to send to Azure. + + :ivar display_name: The display name of the custom alert. + :vartype display_name: str + :ivar description: The description of the custom alert. + :vartype description: str + :param is_enabled: Required. Status of the custom alert. + :type is_enabled: bool + :param rule_type: Required. The type of the custom alert rule.Constant filled by server. + :type rule_type: str + :param min_threshold: Required. The minimum threshold. + :type min_threshold: int + :param max_threshold: Required. The maximum threshold. + :type max_threshold: int + :param time_window_size: Required. The time window size in iso8601 format. + :type time_window_size: ~datetime.timedelta """ _validation = { - 'sensor': {'readonly': True}, - 'central_manager': {'readonly': True}, - 'threat_intelligence': {'readonly': True}, - 'snmp': {'readonly': True}, - 'wmi_tool': {'readonly': True}, - 'authorized_devices_import_template': {'readonly': True}, - 'device_information_update_import_template': {'readonly': True}, + 'display_name': {'readonly': True}, + 'description': {'readonly': True}, + 'is_enabled': {'required': True}, + 'rule_type': {'required': True}, + 'min_threshold': {'required': True}, + 'max_threshold': {'required': True}, + 'time_window_size': {'required': True}, } _attribute_map = { - 'sensor': {'key': 'sensor', 'type': 'PackageDownloadsSensor'}, - 'central_manager': {'key': 'centralManager', 'type': 'PackageDownloadsCentralManager'}, - 'threat_intelligence': {'key': 'threatIntelligence', 'type': '[PackageDownloadInfo]'}, - 'snmp': {'key': 'snmp', 'type': '[PackageDownloadInfo]'}, - 'wmi_tool': {'key': 'wmiTool', 'type': '[PackageDownloadInfo]'}, - 'authorized_devices_import_template': {'key': 'authorizedDevicesImportTemplate', 'type': '[PackageDownloadInfo]'}, - 'device_information_update_import_template': {'key': 'deviceInformationUpdateImportTemplate', 'type': '[PackageDownloadInfo]'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, + 'rule_type': {'key': 'ruleType', 'type': 'str'}, + 'min_threshold': {'key': 'minThreshold', 'type': 'int'}, + 'max_threshold': {'key': 'maxThreshold', 'type': 'int'}, + 'time_window_size': {'key': 'timeWindowSize', 'type': 'duration'}, } def __init__( self, **kwargs ): - super(PackageDownloads, self).__init__(**kwargs) - self.sensor = None - self.central_manager = None - self.threat_intelligence = None - self.snmp = None - self.wmi_tool = None - self.authorized_devices_import_template = None - self.device_information_update_import_template = None + super(MqttC2DRejectedMessagesNotInAllowedRange, self).__init__(**kwargs) + self.rule_type = 'MqttC2DRejectedMessagesNotInAllowedRange' # type: str -class PackageDownloadsCentralManager(msrest.serialization.Model): - """All downloads for Central Manager. +class MqttD2CMessagesNotInAllowedRange(TimeWindowCustomAlertRule): + """Number of device to cloud messages (MQTT protocol) is not in allowed range. Variables are only populated by the server, and will be ignored when sending a request. - :ivar full: Contains full package downloads. - :vartype full: ~azure.mgmt.security.models.PackageDownloadsCentralManagerFull - :ivar upgrade: Central Manager upgrade package downloads (on existing installations). - :vartype upgrade: list[~azure.mgmt.security.models.UpgradePackageDownloadInfo] + All required parameters must be populated in order to send to Azure. + + :ivar display_name: The display name of the custom alert. + :vartype display_name: str + :ivar description: The description of the custom alert. + :vartype description: str + :param is_enabled: Required. Status of the custom alert. + :type is_enabled: bool + :param rule_type: Required. The type of the custom alert rule.Constant filled by server. + :type rule_type: str + :param min_threshold: Required. The minimum threshold. + :type min_threshold: int + :param max_threshold: Required. The maximum threshold. + :type max_threshold: int + :param time_window_size: Required. The time window size in iso8601 format. + :type time_window_size: ~datetime.timedelta """ _validation = { - 'full': {'readonly': True}, - 'upgrade': {'readonly': True}, + 'display_name': {'readonly': True}, + 'description': {'readonly': True}, + 'is_enabled': {'required': True}, + 'rule_type': {'required': True}, + 'min_threshold': {'required': True}, + 'max_threshold': {'required': True}, + 'time_window_size': {'required': True}, } _attribute_map = { - 'full': {'key': 'full', 'type': 'PackageDownloadsCentralManagerFull'}, - 'upgrade': {'key': 'upgrade', 'type': '[UpgradePackageDownloadInfo]'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, + 'rule_type': {'key': 'ruleType', 'type': 'str'}, + 'min_threshold': {'key': 'minThreshold', 'type': 'int'}, + 'max_threshold': {'key': 'maxThreshold', 'type': 'int'}, + 'time_window_size': {'key': 'timeWindowSize', 'type': 'duration'}, } def __init__( self, **kwargs ): - super(PackageDownloadsCentralManager, self).__init__(**kwargs) - self.full = None - self.upgrade = None + super(MqttD2CMessagesNotInAllowedRange, self).__init__(**kwargs) + self.rule_type = 'MqttD2CMessagesNotInAllowedRange' # type: str -class PackageDownloadsCentralManagerFull(msrest.serialization.Model): - """Contains full package downloads. +class OnPremiseResourceDetails(ResourceDetails): + """Details of the On Premise resource that was assessed. - Variables are only populated by the server, and will be ignored when sending a request. + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: OnPremiseSqlResourceDetails. + + All required parameters must be populated in order to send to Azure. - :ivar iso: Contains all ISO full versions of the Central Manager. - :vartype iso: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar ovf: Contains all OVF (virtual machine) full versions of the Central Manager. - :vartype ovf: ~azure.mgmt.security.models.PackageDownloadsCentralManagerFullOvf + :param source: Required. The platform where the assessed resource resides.Constant filled by + server. Possible values include: "Azure", "OnPremise", "OnPremiseSql". + :type source: str or ~azure.mgmt.security.models.Source + :param workspace_id: Required. Azure resource Id of the workspace the machine is attached to. + :type workspace_id: str + :param vmuuid: Required. The unique Id of the machine. + :type vmuuid: str + :param source_computer_id: Required. The oms agent Id installed on the machine. + :type source_computer_id: str + :param machine_name: Required. The name of the machine. + :type machine_name: str """ _validation = { - 'iso': {'readonly': True}, - 'ovf': {'readonly': True}, + 'source': {'required': True}, + 'workspace_id': {'required': True}, + 'vmuuid': {'required': True}, + 'source_computer_id': {'required': True}, + 'machine_name': {'required': True}, } _attribute_map = { - 'iso': {'key': 'iso', 'type': '[PackageDownloadInfo]'}, - 'ovf': {'key': 'ovf', 'type': 'PackageDownloadsCentralManagerFullOvf'}, + 'source': {'key': 'source', 'type': 'str'}, + 'workspace_id': {'key': 'workspaceId', 'type': 'str'}, + 'vmuuid': {'key': 'vmuuid', 'type': 'str'}, + 'source_computer_id': {'key': 'sourceComputerId', 'type': 'str'}, + 'machine_name': {'key': 'machineName', 'type': 'str'}, + } + + _subtype_map = { + 'source': {'OnPremiseSql': 'OnPremiseSqlResourceDetails'} } def __init__( self, **kwargs ): - super(PackageDownloadsCentralManagerFull, self).__init__(**kwargs) - self.iso = None - self.ovf = None + super(OnPremiseResourceDetails, self).__init__(**kwargs) + self.source = 'OnPremise' # type: str + self.workspace_id = kwargs['workspace_id'] + self.vmuuid = kwargs['vmuuid'] + self.source_computer_id = kwargs['source_computer_id'] + self.machine_name = kwargs['machine_name'] -class PackageDownloadsCentralManagerFullOvf(msrest.serialization.Model): - """Contains all OVF (virtual machine) full versions of the Central Manager. +class OnPremiseSqlResourceDetails(OnPremiseResourceDetails): + """Details of the On Premise Sql resource that was assessed. - 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 enterprise: The Enterprise package type. - :vartype enterprise: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar enterprise_high_availability: The EnterpriseHighAvailability package type. - :vartype enterprise_high_availability: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar medium: The Medium package type. - :vartype medium: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar medium_high_availability: The MediumHighAvailability package type. - :vartype medium_high_availability: list[~azure.mgmt.security.models.PackageDownloadInfo] + :param source: Required. The platform where the assessed resource resides.Constant filled by + server. Possible values include: "Azure", "OnPremise", "OnPremiseSql". + :type source: str or ~azure.mgmt.security.models.Source + :param workspace_id: Required. Azure resource Id of the workspace the machine is attached to. + :type workspace_id: str + :param vmuuid: Required. The unique Id of the machine. + :type vmuuid: str + :param source_computer_id: Required. The oms agent Id installed on the machine. + :type source_computer_id: str + :param machine_name: Required. The name of the machine. + :type machine_name: str + :param server_name: Required. The Sql server name installed on the machine. + :type server_name: str + :param database_name: Required. The Sql database name installed on the machine. + :type database_name: str """ _validation = { - 'enterprise': {'readonly': True}, - 'enterprise_high_availability': {'readonly': True}, - 'medium': {'readonly': True}, - 'medium_high_availability': {'readonly': True}, + 'source': {'required': True}, + 'workspace_id': {'required': True}, + 'vmuuid': {'required': True}, + 'source_computer_id': {'required': True}, + 'machine_name': {'required': True}, + 'server_name': {'required': True}, + 'database_name': {'required': True}, } _attribute_map = { - 'enterprise': {'key': 'enterprise', 'type': '[PackageDownloadInfo]'}, - 'enterprise_high_availability': {'key': 'enterpriseHighAvailability', 'type': '[PackageDownloadInfo]'}, - 'medium': {'key': 'medium', 'type': '[PackageDownloadInfo]'}, - 'medium_high_availability': {'key': 'mediumHighAvailability', 'type': '[PackageDownloadInfo]'}, + 'source': {'key': 'source', 'type': 'str'}, + 'workspace_id': {'key': 'workspaceId', 'type': 'str'}, + 'vmuuid': {'key': 'vmuuid', 'type': 'str'}, + 'source_computer_id': {'key': 'sourceComputerId', 'type': 'str'}, + 'machine_name': {'key': 'machineName', 'type': 'str'}, + 'server_name': {'key': 'serverName', 'type': 'str'}, + 'database_name': {'key': 'databaseName', 'type': 'str'}, } def __init__( self, **kwargs ): - super(PackageDownloadsCentralManagerFullOvf, self).__init__(**kwargs) - self.enterprise = None - self.enterprise_high_availability = None - self.medium = None - self.medium_high_availability = None + super(OnPremiseSqlResourceDetails, self).__init__(**kwargs) + self.source = 'OnPremiseSql' # type: str + self.server_name = kwargs['server_name'] + self.database_name = kwargs['database_name'] -class PackageDownloadsSensor(msrest.serialization.Model): - """Contains all Sensor binary downloads. +class Operation(msrest.serialization.Model): + """Possible operation in the REST API of Microsoft.Security. Variables are only populated by the server, and will be ignored when sending a request. - :ivar full: Contains full package downloads. - :vartype full: ~azure.mgmt.security.models.PackageDownloadsSensorFull - :param upgrade: Sensor upgrade package downloads (on existing installations). - :type upgrade: list[~azure.mgmt.security.models.UpgradePackageDownloadInfo] + :ivar name: Name of the operation. + :vartype name: str + :ivar origin: Where the operation is originated. + :vartype origin: str + :param display: Security operation display. + :type display: ~azure.mgmt.security.models.OperationDisplay """ _validation = { - 'full': {'readonly': True}, + 'name': {'readonly': True}, + 'origin': {'readonly': True}, } _attribute_map = { - 'full': {'key': 'full', 'type': 'PackageDownloadsSensorFull'}, - 'upgrade': {'key': 'upgrade', 'type': '[UpgradePackageDownloadInfo]'}, + 'name': {'key': 'name', 'type': 'str'}, + 'origin': {'key': 'origin', 'type': 'str'}, + 'display': {'key': 'display', 'type': 'OperationDisplay'}, } def __init__( self, **kwargs ): - super(PackageDownloadsSensor, self).__init__(**kwargs) - self.full = None - self.upgrade = kwargs.get('upgrade', None) + super(Operation, self).__init__(**kwargs) + self.name = None + self.origin = None + self.display = kwargs.get('display', None) -class PackageDownloadsSensorFull(msrest.serialization.Model): - """Contains full package downloads. +class OperationDisplay(msrest.serialization.Model): + """Security operation display. Variables are only populated by the server, and will be ignored when sending a request. - :ivar iso: Contains all ISO full versions for the sensor. - :vartype iso: list[~azure.mgmt.security.models.PackageDownloadInfo] - :param ovf: Contains all OVF (virtual machine) full versions for the sensor. - :type ovf: ~azure.mgmt.security.models.PackageDownloadsSensorFullOvf + :ivar provider: The resource provider for the operation. + :vartype provider: str + :ivar resource: The display name of the resource the operation applies to. + :vartype resource: str + :ivar operation: The display name of the security operation. + :vartype operation: str + :ivar description: The description of the operation. + :vartype description: str """ _validation = { - 'iso': {'readonly': True}, + 'provider': {'readonly': True}, + 'resource': {'readonly': True}, + 'operation': {'readonly': True}, + 'description': {'readonly': True}, } _attribute_map = { - 'iso': {'key': 'iso', 'type': '[PackageDownloadInfo]'}, - 'ovf': {'key': 'ovf', 'type': 'PackageDownloadsSensorFullOvf'}, + 'provider': {'key': 'provider', 'type': 'str'}, + 'resource': {'key': 'resource', 'type': 'str'}, + 'operation': {'key': 'operation', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, } def __init__( self, **kwargs ): - super(PackageDownloadsSensorFull, self).__init__(**kwargs) - self.iso = None - self.ovf = kwargs.get('ovf', None) + super(OperationDisplay, self).__init__(**kwargs) + self.provider = None + self.resource = None + self.operation = None + self.description = None -class PackageDownloadsSensorFullOvf(msrest.serialization.Model): - """Contains all OVF (virtual machine) full versions for the sensor. +class OperationList(msrest.serialization.Model): + """List of possible operations for Microsoft.Security resource provider. Variables are only populated by the server, and will be ignored when sending a request. - :ivar enterprise: Enterprise package type. - :vartype enterprise: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar medium: Medium package type. - :vartype medium: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar line: Line package type. - :vartype line: list[~azure.mgmt.security.models.PackageDownloadInfo] + :param value: List of Security operations. + :type value: list[~azure.mgmt.security.models.Operation] + :ivar next_link: The URI to fetch the next page. + :vartype next_link: str """ _validation = { - 'enterprise': {'readonly': True}, - 'medium': {'readonly': True}, - 'line': {'readonly': True}, + 'next_link': {'readonly': True}, } _attribute_map = { - 'enterprise': {'key': 'enterprise', 'type': '[PackageDownloadInfo]'}, - 'medium': {'key': 'medium', 'type': '[PackageDownloadInfo]'}, - 'line': {'key': 'line', 'type': '[PackageDownloadInfo]'}, + 'value': {'key': 'value', 'type': '[Operation]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, } def __init__( self, **kwargs ): - super(PackageDownloadsSensorFullOvf, self).__init__(**kwargs) - self.enterprise = None - self.medium = None - self.line = None + super(OperationList, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + self.next_link = None class PathRecommendation(msrest.serialization.Model): @@ -7502,35 +6456,6 @@ def __init__( self.executable = kwargs.get('executable', None) -class Protocol(msrest.serialization.Model): - """Protocol data. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar name: Protocol name. - :vartype name: str - :param identifiers: list of protocol identifiers. - :type identifiers: str - """ - - _validation = { - 'name': {'readonly': True}, - } - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'identifiers': {'key': 'identifiers', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(Protocol, self).__init__(**kwargs) - self.name = None - self.identifiers = kwargs.get('identifiers', None) - - class ProxyServerProperties(msrest.serialization.Model): """For a non-Azure machine that is not connected directly to the internet, specify a proxy server that the non-Azure machine can use. @@ -8031,25 +6956,6 @@ def __init__( self.portal_link = kwargs.get('portal_link', None) -class ResetPasswordInput(msrest.serialization.Model): - """Reset password input. - - :param appliance_id: The appliance id of the sensor. - :type appliance_id: str - """ - - _attribute_map = { - 'appliance_id': {'key': 'applianceId', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(ResetPasswordInput, self).__init__(**kwargs) - self.appliance_id = kwargs.get('appliance_id', None) - - class Rule(msrest.serialization.Model): """Describes remote addresses that is recommended to communicate with the Azure resource on some (Protocol, Port, Direction). All other remote addresses are recommended to be blocked. @@ -8443,7 +7349,7 @@ class ScopeElement(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param field: The alert entity type to suppress by. :type field: str """ @@ -8917,8 +7823,8 @@ class SecurityAssessmentMetadata(Resource): :param remediation_description: Human readable description of what you should do to mitigate this security issue. :type remediation_description: str - :param category: - :type category: list[str or ~azure.mgmt.security.models.Category] + :param categories: + :type categories: list[str or ~azure.mgmt.security.models.Categories] :param severity: The severity level of the assessment. Possible values include: "Low", "Medium", "High". :type severity: str or ~azure.mgmt.security.models.Severity @@ -8955,7 +7861,7 @@ class SecurityAssessmentMetadata(Resource): 'policy_definition_id': {'key': 'properties.policyDefinitionId', 'type': 'str'}, 'description': {'key': 'properties.description', 'type': 'str'}, 'remediation_description': {'key': 'properties.remediationDescription', 'type': 'str'}, - 'category': {'key': 'properties.category', 'type': '[str]'}, + 'categories': {'key': 'properties.categories', 'type': '[str]'}, 'severity': {'key': 'properties.severity', 'type': 'str'}, 'user_impact': {'key': 'properties.userImpact', 'type': 'str'}, 'implementation_effort': {'key': 'properties.implementationEffort', 'type': 'str'}, @@ -8974,7 +7880,7 @@ def __init__( self.policy_definition_id = None self.description = kwargs.get('description', None) self.remediation_description = kwargs.get('remediation_description', None) - self.category = kwargs.get('category', None) + self.categories = kwargs.get('categories', None) self.severity = kwargs.get('severity', None) self.user_impact = kwargs.get('user_impact', None) self.implementation_effort = kwargs.get('implementation_effort', None) @@ -9066,8 +7972,8 @@ class SecurityAssessmentMetadataProperties(msrest.serialization.Model): :param remediation_description: Human readable description of what you should do to mitigate this security issue. :type remediation_description: str - :param category: - :type category: list[str or ~azure.mgmt.security.models.Category] + :param categories: + :type categories: list[str or ~azure.mgmt.security.models.Categories] :param severity: Required. The severity level of the assessment. Possible values include: "Low", "Medium", "High". :type severity: str or ~azure.mgmt.security.models.Severity @@ -9101,7 +8007,7 @@ class SecurityAssessmentMetadataProperties(msrest.serialization.Model): 'policy_definition_id': {'key': 'policyDefinitionId', 'type': 'str'}, 'description': {'key': 'description', 'type': 'str'}, 'remediation_description': {'key': 'remediationDescription', 'type': 'str'}, - 'category': {'key': 'category', 'type': '[str]'}, + 'categories': {'key': 'categories', 'type': '[str]'}, 'severity': {'key': 'severity', 'type': 'str'}, 'user_impact': {'key': 'userImpact', 'type': 'str'}, 'implementation_effort': {'key': 'implementationEffort', 'type': 'str'}, @@ -9120,7 +8026,7 @@ def __init__( self.policy_definition_id = None self.description = kwargs.get('description', None) self.remediation_description = kwargs.get('remediation_description', None) - self.category = kwargs.get('category', None) + self.categories = kwargs.get('categories', None) self.severity = kwargs['severity'] self.user_impact = kwargs.get('user_impact', None) self.implementation_effort = kwargs.get('implementation_effort', None) @@ -9638,7 +8544,7 @@ class SecurityTaskParameters(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar name: Name of the task type. :vartype name: str """ @@ -9697,36 +8603,6 @@ def __init__( self.enabled = kwargs.get('enabled', None) -class Sensor(msrest.serialization.Model): - """Sensor data. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar name: Sensor name. - :vartype name: str - :ivar zone: Zone Name. - :vartype zone: str - """ - - _validation = { - 'name': {'readonly': True}, - 'zone': {'readonly': True}, - } - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'zone': {'key': 'zone', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(Sensor, self).__init__(**kwargs) - self.name = None - self.zone = None - - class ServerVulnerabilityAssessment(Resource): """Describes the server vulnerability assessment details on a resource. @@ -9904,29 +8780,104 @@ def __init__( self.next_link = None -class Site(msrest.serialization.Model): - """Site data. +class Software(Resource): + """Represents a software data. Variables are only populated by the server, and will be ignored when sending a request. - :ivar display_name: Site display name. - :vartype display_name: str + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param device_id: Unique identifier for the virtual machine in the service. + :type device_id: str + :param os_platform: Platform of the operating system running on the device. + :type os_platform: str + :param vendor: Name of the software vendor. + :type vendor: str + :param software_name: Name of the software product. + :type software_name: str + :param version: Version number of the software product. + :type version: str + :param end_of_support_status: End of support status. Possible values include: "None", + "noLongerSupported", "versionNoLongerSupported", "upcomingNoLongerSupported", + "upcomingVersionNoLongerSupported". + :type end_of_support_status: str or ~azure.mgmt.security.models.EndOfSupportStatus + :param end_of_support_date: The end of support date in case the product is upcoming end of + support. + :type end_of_support_date: str + :param number_of_known_vulnerabilities: Number of weaknesses. + :type number_of_known_vulnerabilities: int + :param first_seen_at: First time that the software was seen in the device. + :type first_seen_at: str """ _validation = { - 'display_name': {'readonly': True}, + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, } _attribute_map = { - 'display_name': {'key': 'displayName', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'device_id': {'key': 'properties.deviceId', 'type': 'str'}, + 'os_platform': {'key': 'properties.osPlatform', 'type': 'str'}, + 'vendor': {'key': 'properties.vendor', 'type': 'str'}, + 'software_name': {'key': 'properties.softwareName', 'type': 'str'}, + 'version': {'key': 'properties.version', 'type': 'str'}, + 'end_of_support_status': {'key': 'properties.endOfSupportStatus', 'type': 'str'}, + 'end_of_support_date': {'key': 'properties.endOfSupportDate', 'type': 'str'}, + 'number_of_known_vulnerabilities': {'key': 'properties.numberOfKnownVulnerabilities', 'type': 'int'}, + 'first_seen_at': {'key': 'properties.firstSeenAt', 'type': 'str'}, } def __init__( self, **kwargs ): - super(Site, self).__init__(**kwargs) - self.display_name = None + super(Software, self).__init__(**kwargs) + self.device_id = kwargs.get('device_id', None) + self.os_platform = kwargs.get('os_platform', None) + self.vendor = kwargs.get('vendor', None) + self.software_name = kwargs.get('software_name', None) + self.version = kwargs.get('version', None) + self.end_of_support_status = kwargs.get('end_of_support_status', None) + self.end_of_support_date = kwargs.get('end_of_support_date', None) + self.number_of_known_vulnerabilities = kwargs.get('number_of_known_vulnerabilities', None) + self.first_seen_at = kwargs.get('first_seen_at', None) + + +class SoftwaresList(msrest.serialization.Model): + """Represents the software inventory of the virtual machine. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param value: + :type value: list[~azure.mgmt.security.models.Software] + :ivar next_link: The URI to fetch the next page. + :vartype next_link: str + """ + + _validation = { + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Software]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SoftwaresList, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + self.next_link = None class SqlServerVulnerabilityProperties(AdditionalData): @@ -10036,6 +8987,47 @@ def __init__( self.all_of = kwargs['all_of'] +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.security.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.security.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 TopologyList(msrest.serialization.Model): """TopologyList. @@ -10362,44 +9354,6 @@ def __init__( self.recommendations_configuration = kwargs.get('recommendations_configuration', None) -class UpgradePackageDownloadInfo(PackageDownloadInfo): - """Information on a specific package upgrade download. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar version: Version number. - :vartype version: str - :ivar link: Download link. - :vartype link: str - :ivar version_kind: Kind of the version. Possible values include: "Latest", "Previous", - "Preview". - :vartype version_kind: str or ~azure.mgmt.security.models.VersionKind - :ivar from_version: Minimum base version for upgrade. - :vartype from_version: str - """ - - _validation = { - 'version': {'readonly': True}, - 'link': {'readonly': True}, - 'version_kind': {'readonly': True}, - 'from_version': {'readonly': True}, - } - - _attribute_map = { - 'version': {'key': 'version', 'type': 'str'}, - 'link': {'key': 'link', 'type': 'str'}, - 'version_kind': {'key': 'versionKind', 'type': 'str'}, - 'from_version': {'key': 'fromVersion', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(UpgradePackageDownloadInfo, self).__init__(**kwargs) - self.from_version = None - - class UserDefinedResourcesProperties(msrest.serialization.Model): """Properties of the IoT Security solution's user defined resources. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_models_py3.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_models_py3.py index 5ba418c3e4eb..cc336c5b2ea0 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_models_py3.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_models_py3.py @@ -7,7 +7,7 @@ # -------------------------------------------------------------------------- import datetime -from typing import Dict, List, Optional, Union +from typing import Any, Dict, List, Optional, Union import msrest.serialization @@ -219,7 +219,7 @@ class ExternalSecuritySolutionProperties(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param device_vendor: :type device_vendor: str :param device_type: @@ -238,7 +238,7 @@ class ExternalSecuritySolutionProperties(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, device_vendor: Optional[str] = None, device_type: Optional[str] = None, workspace: Optional["ConnectedWorkspace"] = None, @@ -259,7 +259,7 @@ class AadSolutionProperties(ExternalSecuritySolutionProperties, AadConnectivityS :type connectivity_state: str or ~azure.mgmt.security.models.AadConnectivityStateEnum :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param device_vendor: :type device_vendor: str :param device_type: @@ -280,7 +280,7 @@ def __init__( self, *, connectivity_state: Optional[Union[str, "AadConnectivityStateEnum"]] = None, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, device_vendor: Optional[str] = None, device_type: Optional[str] = None, workspace: Optional["ConnectedWorkspace"] = None, @@ -813,6 +813,37 @@ def __init__( self.assessed_resource_type = None # type: Optional[str] +class AdditionalWorkspacesProperties(msrest.serialization.Model): + """Properties of the additional workspaces. + + :param workspace: Workspace resource id. + :type workspace: str + :param type: Workspace type. Possible values include: "Sentinel". Default value: "Sentinel". + :type type: str or ~azure.mgmt.security.models.AdditionalWorkspaceType + :param data_types: List of data types sent to workspace. + :type data_types: list[str or ~azure.mgmt.security.models.AdditionalWorkspaceDataType] + """ + + _attribute_map = { + 'workspace': {'key': 'workspace', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'data_types': {'key': 'dataTypes', 'type': '[str]'}, + } + + def __init__( + self, + *, + workspace: Optional[str] = None, + type: Optional[Union[str, "AdditionalWorkspaceType"]] = "Sentinel", + data_types: Optional[List[Union[str, "AdditionalWorkspaceDataType"]]] = None, + **kwargs + ): + super(AdditionalWorkspacesProperties, self).__init__(**kwargs) + self.workspace = workspace + self.type = type + self.data_types = data_types + + class AdvancedThreatProtectionSetting(Resource): """The Advanced Threat Protection resource. @@ -868,16 +899,16 @@ class Alert(Resource): :ivar system_alert_id: Unique identifier for the alert. :vartype system_alert_id: str :ivar product_component_name: The name of Azure Security Center pricing tier which powering - this alert. Learn more: https://docs.microsoft.com/en-us/azure/security-center/security-center- - pricing. + this alert. Learn more: + https://docs.microsoft.com/en-us/azure/security-center/security-center-pricing. :vartype product_component_name: str :ivar alert_display_name: The display name of the alert. :vartype alert_display_name: str :ivar description: Description of the suspicious activity that was detected. :vartype description: str :ivar severity: The risk level of the threat that was detected. Learn more: - https://docs.microsoft.com/en-us/azure/security-center/security-center-alerts-overview#how-are- - alerts-classified. Possible values include: "Informational", "Low", "Medium", "High". + https://docs.microsoft.com/en-us/azure/security-center/security-center-alerts-overview#how-are-alerts-classified. + Possible values include: "Informational", "Low", "Medium", "High". :vartype severity: str or ~azure.mgmt.security.models.AlertSeverity :ivar intent: The kill chain related intent behind the alert. For list of supported values, and explanations of Azure Security Center's supported kill chain intents. Possible values include: @@ -1023,7 +1054,7 @@ class AlertEntity(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar type: Type of entity. :vartype type: str """ @@ -1040,7 +1071,7 @@ class AlertEntity(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(AlertEntity, self).__init__(**kwargs) @@ -1079,6 +1110,104 @@ def __init__( self.next_link = None +class AlertSimulatorRequestProperties(msrest.serialization.Model): + """Describes properties of an alert simulation request. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: AlertSimulatorBundlesRequestProperties. + + 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, any] + :param kind: Required. The kind of alert simulation.Constant filled by server. Possible values + include: "Bundles". + :type kind: str or ~azure.mgmt.security.models.KindEnum + """ + + _validation = { + 'kind': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'kind': {'key': 'kind', 'type': 'str'}, + } + + _subtype_map = { + 'kind': {'Bundles': 'AlertSimulatorBundlesRequestProperties'} + } + + def __init__( + self, + *, + additional_properties: Optional[Dict[str, Any]] = None, + **kwargs + ): + super(AlertSimulatorRequestProperties, self).__init__(**kwargs) + self.additional_properties = additional_properties + self.kind = 'AlertSimulatorRequestProperties' # type: str + + +class AlertSimulatorBundlesRequestProperties(AlertSimulatorRequestProperties): + """Simulate alerts according to this bundles. + + 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, any] + :param kind: Required. The kind of alert simulation.Constant filled by server. Possible values + include: "Bundles". + :type kind: str or ~azure.mgmt.security.models.KindEnum + :param bundles: Bundles list. + :type bundles: list[str or ~azure.mgmt.security.models.BundleType] + """ + + _validation = { + 'kind': {'required': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'bundles': {'key': 'bundles', 'type': '[str]'}, + } + + def __init__( + self, + *, + additional_properties: Optional[Dict[str, Any]] = None, + bundles: Optional[List[Union[str, "BundleType"]]] = None, + **kwargs + ): + super(AlertSimulatorBundlesRequestProperties, self).__init__(additional_properties=additional_properties, **kwargs) + self.kind = 'Bundles' # type: str + self.bundles = bundles + + +class AlertSimulatorRequestBody(msrest.serialization.Model): + """Alert Simulator request body. + + :param properties: Alert Simulator request body data. + :type properties: ~azure.mgmt.security.models.AlertSimulatorRequestProperties + """ + + _attribute_map = { + 'properties': {'key': 'properties', 'type': 'AlertSimulatorRequestProperties'}, + } + + def __init__( + self, + *, + properties: Optional["AlertSimulatorRequestProperties"] = None, + **kwargs + ): + super(AlertSimulatorRequestBody, self).__init__(**kwargs) + self.properties = properties + + class AlertsSuppressionRule(Resource): """Describes the suppression rule. @@ -1183,6 +1312,99 @@ def __init__( self.next_link = None +class Setting(Resource): + """The kind of the security setting. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: AlertSyncSettings, DataExportSettings. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param kind: Required. the kind of the settings string.Constant filled by server. Possible + values include: "DataExportSettings", "AlertSuppressionSetting", "AlertSyncSettings". + :type kind: str or ~azure.mgmt.security.models.SettingKind + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'kind': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + } + + _subtype_map = { + 'kind': {'AlertSyncSettings': 'AlertSyncSettings', 'DataExportSettings': 'DataExportSettings'} + } + + def __init__( + self, + **kwargs + ): + super(Setting, self).__init__(**kwargs) + self.kind = 'Setting' # type: str + + +class AlertSyncSettings(Setting): + """Represents an alert sync setting. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param kind: Required. the kind of the settings string.Constant filled by server. Possible + values include: "DataExportSettings", "AlertSuppressionSetting", "AlertSyncSettings". + :type kind: str or ~azure.mgmt.security.models.SettingKind + :param enabled: Is the alert sync setting enabled. + :type enabled: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'kind': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + } + + def __init__( + self, + *, + enabled: Optional[bool] = None, + **kwargs + ): + super(AlertSyncSettings, self).__init__(**kwargs) + self.kind = 'AlertSyncSettings' # type: str + self.enabled = enabled + + class AllowedConnectionsList(msrest.serialization.Model): """List of all possible traffic between Azure resources. @@ -1324,7 +1546,7 @@ class AllowlistCustomAlertRule(ListCustomAlertRule): """A custom alert rule that checks if a value (depends on the custom alert type) is allowed. You probably want to use the sub-classes and not this class directly. Known - sub-classes are: ConnectionToIpNotAllowed, LocalUserNotAllowed, ProcessNotAllowed. + sub-classes are: ConnectionFromIpNotAllowed, ConnectionToIpNotAllowed, LocalUserNotAllowed, ProcessNotAllowed. Variables are only populated by the server, and will be ignored when sending a request. @@ -1365,7 +1587,7 @@ class AllowlistCustomAlertRule(ListCustomAlertRule): } _subtype_map = { - 'rule_type': {'ConnectionToIpNotAllowed': 'ConnectionToIpNotAllowed', 'LocalUserNotAllowed': 'LocalUserNotAllowed', 'ProcessNotAllowed': 'ProcessNotAllowed'} + 'rule_type': {'ConnectionFromIpNotAllowed': 'ConnectionFromIpNotAllowed', 'ConnectionToIpNotAllowed': 'ConnectionToIpNotAllowed', 'LocalUserNotAllowed': 'LocalUserNotAllowed', 'ProcessNotAllowed': 'ProcessNotAllowed'} } def __init__( @@ -1560,7 +1782,7 @@ class AscLocation(Resource): :ivar type: Resource type. :vartype type: str :param properties: Any object. - :type properties: object + :type properties: any """ _validation = { @@ -1579,7 +1801,7 @@ class AscLocation(Resource): def __init__( self, *, - properties: Optional[object] = None, + properties: Optional[Any] = None, **kwargs ): super(AscLocation, self).__init__(**kwargs) @@ -1730,7 +1952,7 @@ class AtaSolutionProperties(ExternalSecuritySolutionProperties): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param device_vendor: :type device_vendor: str :param device_type: @@ -1752,7 +1974,7 @@ class AtaSolutionProperties(ExternalSecuritySolutionProperties): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, device_vendor: Optional[str] = None, device_type: Optional[str] = None, workspace: Optional["ConnectedWorkspace"] = None, @@ -2291,7 +2513,9 @@ class AutomationSource(msrest.serialization.Model): """The source event types which evaluate the security automation set of rules. For example - security alerts and security assessments. To learn more about the supported security events data models schemas - please visit https://aka.ms/ASCAutomationSchemas. :param event_source: A valid event source type. Possible values include: "Assessments", - "SubAssessments", "Alerts", "SecureScores", "SecureScoreControls". + "SubAssessments", "Alerts", "SecureScores", "SecureScoresSnapshot", "SecureScoreControls", + "SecureScoreControlsSnapshot", "RegulatoryComplianceAssessment", + "RegulatoryComplianceAssessmentSnapshot". :type event_source: str or ~azure.mgmt.security.models.EventSource :param rule_sets: A set of rules which evaluate upon event interception. A logical disjunction is applied between defined rule sets (logical 'or'). @@ -2869,7 +3093,7 @@ class CefSolutionProperties(ExternalSecuritySolutionProperties): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param device_vendor: :type device_vendor: str :param device_type: @@ -2897,7 +3121,7 @@ class CefSolutionProperties(ExternalSecuritySolutionProperties): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, device_vendor: Optional[str] = None, device_type: Optional[str] = None, workspace: Optional["ConnectedWorkspace"] = None, @@ -2912,6 +3136,51 @@ def __init__( self.last_event_received = last_event_received +class CloudErrorBody(msrest.serialization.Model): + """The error detail. + + 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.security.models.CloudErrorBody] + :ivar additional_info: The error additional info. + :vartype additional_info: list[~azure.mgmt.security.models.ErrorAdditionalInfo] + """ + + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + 'target': {'readonly': True}, + 'details': {'readonly': True}, + 'additional_info': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[CloudErrorBody]'}, + 'additional_info': {'key': 'additionalInfo', 'type': '[ErrorAdditionalInfo]'}, + } + + def __init__( + self, + **kwargs + ): + super(CloudErrorBody, self).__init__(**kwargs) + self.code = None + self.message = None + self.target = None + self.details = None + self.additional_info = None + + class Compliance(Resource): """Compliance of a scope. @@ -3188,6 +3457,85 @@ def __init__( self.id = id +class ConnectionFromIpNotAllowed(AllowlistCustomAlertRule): + """Inbound connection from an ip that isn't allowed. Allow list consists of ipv4 or ipv6 range in CIDR notation. + + 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 display_name: The display name of the custom alert. + :vartype display_name: str + :ivar description: The description of the custom alert. + :vartype description: str + :param is_enabled: Required. Status of the custom alert. + :type is_enabled: bool + :param rule_type: Required. The type of the custom alert rule.Constant filled by server. + :type rule_type: str + :ivar value_type: The value type of the items in the list. Possible values include: "IpCidr", + "String". + :vartype value_type: str or ~azure.mgmt.security.models.ValueType + :param allowlist_values: Required. The values to allow. The format of the values depends on the + rule type. + :type allowlist_values: list[str] + """ + + _validation = { + 'display_name': {'readonly': True}, + 'description': {'readonly': True}, + 'is_enabled': {'required': True}, + 'rule_type': {'required': True}, + 'value_type': {'readonly': True}, + 'allowlist_values': {'required': True}, + } + + _attribute_map = { + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, + 'rule_type': {'key': 'ruleType', 'type': 'str'}, + 'value_type': {'key': 'valueType', 'type': 'str'}, + 'allowlist_values': {'key': 'allowlistValues', 'type': '[str]'}, + } + + def __init__( + self, + *, + is_enabled: bool, + allowlist_values: List[str], + **kwargs + ): + super(ConnectionFromIpNotAllowed, self).__init__(is_enabled=is_enabled, allowlist_values=allowlist_values, **kwargs) + self.rule_type = 'ConnectionFromIpNotAllowed' # type: str + + +class ConnectionStrings(msrest.serialization.Model): + """Connection string for ingesting security data and logs. + + All required parameters must be populated in order to send to Azure. + + :param value: Required. Connection strings. + :type value: list[~azure.mgmt.security.models.IngestionConnectionString] + """ + + _validation = { + 'value': {'required': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[IngestionConnectionString]'}, + } + + def __init__( + self, + *, + value: List["IngestionConnectionString"], + **kwargs + ): + super(ConnectionStrings, self).__init__(**kwargs) + self.value = value + + class ConnectionToIpNotAllowed(AllowlistCustomAlertRule): """Outbound connection to an ip that isn't allowed. Allow list consists of ipv4 or ipv6 range in CIDR notation. @@ -3441,53 +3789,6 @@ def __init__( self.base = None -class Setting(Resource): - """The kind of the security setting. - - You probably want to use the sub-classes and not this class directly. Known - sub-classes are: DataExportSettings. - - 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: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :param kind: Required. the kind of the settings string (DataExportSettings).Constant filled by - server. Possible values include: "DataExportSettings", "AlertSuppressionSetting". - :type kind: str or ~azure.mgmt.security.models.SettingKind - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'kind': {'required': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'kind': {'key': 'kind', 'type': 'str'}, - } - - _subtype_map = { - 'kind': {'DataExportSettings': 'DataExportSettings'} - } - - def __init__( - self, - **kwargs - ): - super(Setting, self).__init__(**kwargs) - self.kind = 'Setting' # type: str - - class DataExportSettings(Setting): """Represents a data export setting. @@ -3501,10 +3802,10 @@ class DataExportSettings(Setting): :vartype name: str :ivar type: Resource type. :vartype type: str - :param kind: Required. the kind of the settings string (DataExportSettings).Constant filled by - server. Possible values include: "DataExportSettings", "AlertSuppressionSetting". + :param kind: Required. the kind of the settings string.Constant filled by server. Possible + values include: "DataExportSettings", "AlertSuppressionSetting", "AlertSyncSettings". :type kind: str or ~azure.mgmt.security.models.SettingKind - :param enabled: Is the data export setting is enabled. + :param enabled: Is the data export setting enabled. :type enabled: bool """ @@ -3587,200 +3888,6 @@ def __init__( self.denylist_values = denylist_values -class Device(Resource): - """Device model. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :param display_name: Device display name given by the collector. - :type display_name: str - :param device_type: Device type. - :type device_type: str - :ivar source_name: The source that created the device. - :vartype source_name: str - :ivar network_interfaces: List of network interfaces. - :vartype network_interfaces: list[~azure.mgmt.security.models.NetworkInterface] - :ivar vendor: Device vendor. - :vartype vendor: str - :param os_name: Device operating system name. - :type os_name: str - :ivar protocols: List of protocols. - :vartype protocols: list[~azure.mgmt.security.models.Protocol] - :ivar last_active_time: last time the device was active in the network. - :vartype last_active_time: ~datetime.datetime - :ivar last_update_time: last time the device was updated. - :vartype last_update_time: ~datetime.datetime - :ivar management_state: Managed state of the device. Possible values include: "Managed", - "Unmanaged". - :vartype management_state: str or ~azure.mgmt.security.models.ManagementState - :param authorization_state: Authorized state of the device. Possible values include: - "Authorized", "Unauthorized". Default value: "Unauthorized". - :type authorization_state: str or ~azure.mgmt.security.models.AuthorizationState - :param device_criticality: Device criticality. Possible values include: "Important", - "Standard". Default value: "Standard". - :type device_criticality: str or ~azure.mgmt.security.models.DeviceCriticality - :param purdue_level: Purdue level of the device. Possible values include: "ProcessControl", - "Supervisory", "Enterprise". Default value: "ProcessControl". - :type purdue_level: str or ~azure.mgmt.security.models.PurdueLevel - :param notes: user notes for the device, up to 300 characters. - :type notes: str - :ivar firmwares: List of device firmwares. - :vartype firmwares: list[~azure.mgmt.security.models.Firmware] - :ivar discovery_time: Discovered time of the device. - :vartype discovery_time: ~datetime.datetime - :ivar programming_state: Indicates whether this device is programming. Possible values include: - "ProgrammingDevice", "NotProgrammingDevice". - :vartype programming_state: str or ~azure.mgmt.security.models.ProgrammingState - :ivar last_programming_time: last time the device was programming or programed. - :vartype last_programming_time: ~datetime.datetime - :ivar scanning_functionality: Indicates whether the device is a scanner. Possible values - include: "ScannerDevice", "NotScannerDevice". - :vartype scanning_functionality: str or ~azure.mgmt.security.models.ScanningFunctionality - :ivar last_scan_time: last time the device was scanning. - :vartype last_scan_time: ~datetime.datetime - :ivar risk_score: risk score of the device. - :vartype risk_score: int - :ivar sensors: List of sensors that scanned this device. - :vartype sensors: list[~azure.mgmt.security.models.Sensor] - :ivar site: Site data. - :vartype site: ~azure.mgmt.security.models.Site - :ivar device_status: Device status. Possible values include: "Active", "Removed". - :vartype device_status: str or ~azure.mgmt.security.models.DeviceStatus - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'source_name': {'readonly': True}, - 'network_interfaces': {'readonly': True}, - 'vendor': {'readonly': True}, - 'protocols': {'readonly': True}, - 'last_active_time': {'readonly': True}, - 'last_update_time': {'readonly': True}, - 'management_state': {'readonly': True}, - 'firmwares': {'readonly': True}, - 'discovery_time': {'readonly': True}, - 'programming_state': {'readonly': True}, - 'last_programming_time': {'readonly': True}, - 'scanning_functionality': {'readonly': True}, - 'last_scan_time': {'readonly': True}, - 'risk_score': {'readonly': True, 'maximum': 100, 'minimum': 0}, - 'sensors': {'readonly': True}, - 'site': {'readonly': True}, - 'device_status': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'display_name': {'key': 'properties.displayName', 'type': 'str'}, - 'device_type': {'key': 'properties.deviceType', 'type': 'str'}, - 'source_name': {'key': 'properties.sourceName', 'type': 'str'}, - 'network_interfaces': {'key': 'properties.networkInterfaces', 'type': '[NetworkInterface]'}, - 'vendor': {'key': 'properties.vendor', 'type': 'str'}, - 'os_name': {'key': 'properties.osName', 'type': 'str'}, - 'protocols': {'key': 'properties.protocols', 'type': '[Protocol]'}, - 'last_active_time': {'key': 'properties.lastActiveTime', 'type': 'iso-8601'}, - 'last_update_time': {'key': 'properties.lastUpdateTime', 'type': 'iso-8601'}, - 'management_state': {'key': 'properties.managementState', 'type': 'str'}, - 'authorization_state': {'key': 'properties.authorizationState', 'type': 'str'}, - 'device_criticality': {'key': 'properties.deviceCriticality', 'type': 'str'}, - 'purdue_level': {'key': 'properties.purdueLevel', 'type': 'str'}, - 'notes': {'key': 'properties.notes', 'type': 'str'}, - 'firmwares': {'key': 'properties.firmwares', 'type': '[Firmware]'}, - 'discovery_time': {'key': 'properties.discoveryTime', 'type': 'iso-8601'}, - 'programming_state': {'key': 'properties.programmingState', 'type': 'str'}, - 'last_programming_time': {'key': 'properties.lastProgrammingTime', 'type': 'iso-8601'}, - 'scanning_functionality': {'key': 'properties.scanningFunctionality', 'type': 'str'}, - 'last_scan_time': {'key': 'properties.lastScanTime', 'type': 'iso-8601'}, - 'risk_score': {'key': 'properties.riskScore', 'type': 'int'}, - 'sensors': {'key': 'properties.sensors', 'type': '[Sensor]'}, - 'site': {'key': 'properties.site', 'type': 'Site'}, - 'device_status': {'key': 'properties.deviceStatus', 'type': 'str'}, - } - - def __init__( - self, - *, - display_name: Optional[str] = None, - device_type: Optional[str] = None, - os_name: Optional[str] = None, - authorization_state: Optional[Union[str, "AuthorizationState"]] = "Unauthorized", - device_criticality: Optional[Union[str, "DeviceCriticality"]] = "Standard", - purdue_level: Optional[Union[str, "PurdueLevel"]] = "ProcessControl", - notes: Optional[str] = None, - **kwargs - ): - super(Device, self).__init__(**kwargs) - self.display_name = display_name - self.device_type = device_type - self.source_name = None - self.network_interfaces = None - self.vendor = None - self.os_name = os_name - self.protocols = None - self.last_active_time = None - self.last_update_time = None - self.management_state = None - self.authorization_state = authorization_state - self.device_criticality = device_criticality - self.purdue_level = purdue_level - self.notes = notes - self.firmwares = None - self.discovery_time = None - self.programming_state = None - self.last_programming_time = None - self.scanning_functionality = None - self.last_scan_time = None - self.risk_score = None - self.sensors = None - self.site = None - self.device_status = None - - -class DeviceList(msrest.serialization.Model): - """List of Devices. - - 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 value: Required. List of devices. - :type value: list[~azure.mgmt.security.models.Device] - :ivar next_link: When there are too many devices for one page, use this URI to fetch the next - page. - :vartype next_link: str - """ - - _validation = { - 'value': {'required': True}, - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[Device]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - *, - value: List["Device"], - **kwargs - ): - super(DeviceList, self).__init__(**kwargs) - self.value = value - self.next_link = None - - class DeviceSecurityGroup(Resource): """The device security group resource. @@ -4050,6 +4157,36 @@ def __init__( self.network_security_groups = network_security_groups +class ErrorAdditionalInfo(msrest.serialization.Model): + """The resource management error additional info. + + 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: any + """ + + _validation = { + 'type': {'readonly': True}, + 'info': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'info': {'key': 'info', 'type': 'object'}, + } + + def __init__( + self, + **kwargs + ): + super(ErrorAdditionalInfo, self).__init__(**kwargs) + self.type = None + self.info = None + + class ExternalSecuritySolutionList(msrest.serialization.Model): """ExternalSecuritySolutionList. @@ -4193,61 +4330,6 @@ def __init__( self.rule_type = 'FileUploadsNotInAllowedRange' # type: str -class Firmware(msrest.serialization.Model): - """Firmware information. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar module_address: Address of the specific module a firmware is related to. - :vartype module_address: str - :ivar rack: Rack number of the module a firmware is related to. - :vartype rack: str - :ivar slot: Slot number in the rack of the module a firmware is related to. - :vartype slot: str - :ivar serial: Serial of the firmware. - :vartype serial: str - :ivar model: Firmware model. - :vartype model: str - :ivar version: Firmware version. - :vartype version: str - :ivar additional_data: A bag of fields which extends the firmware information. - :vartype additional_data: object - """ - - _validation = { - 'module_address': {'readonly': True}, - 'rack': {'readonly': True}, - 'slot': {'readonly': True}, - 'serial': {'readonly': True}, - 'model': {'readonly': True}, - 'version': {'readonly': True}, - 'additional_data': {'readonly': True}, - } - - _attribute_map = { - 'module_address': {'key': 'moduleAddress', 'type': 'str'}, - 'rack': {'key': 'rack', 'type': 'str'}, - 'slot': {'key': 'slot', 'type': 'str'}, - 'serial': {'key': 'serial', 'type': 'str'}, - 'model': {'key': 'model', 'type': 'str'}, - 'version': {'key': 'version', 'type': 'str'}, - 'additional_data': {'key': 'additionalData', 'type': 'object'}, - } - - def __init__( - self, - **kwargs - ): - super(Firmware, self).__init__(**kwargs) - self.module_address = None - self.rack = None - self.slot = None - self.serial = None - self.model = None - self.version = None - self.additional_data = None - - class GcpCredentialsDetailsProperties(AuthenticationDetailsProperties): """GCP cloud account connector based service to service credentials, the credentials are composed of the organization ID and a JSON API key (write only). @@ -4755,109 +4837,82 @@ def __init__( self.keywords = keywords -class IotAlert(msrest.serialization.Model): - """IoT alert. +class IngestionConnectionString(msrest.serialization.Model): + """Connection string for ingesting security data and logs. Variables are only populated by the server, and will be ignored when sending a request. - :ivar system_alert_id: Holds the product canonical identifier of the alert within the scope of - a product. - :vartype system_alert_id: str - :ivar compromised_entity: Display name of the main entity being reported on. - :vartype compromised_entity: str - :ivar alert_type: The type name of the alert. - :vartype alert_type: str - :ivar start_time_utc: The impact start time of the alert (the time of the first event or - activity included in the alert). - :vartype start_time_utc: str - :ivar end_time_utc: The impact end time of the alert (the time of the last event or activity - included in the alert). - :vartype end_time_utc: str - :param entities: A list of entities related to the alert. - :type entities: list[object] - :param extended_properties: A bag of fields which extends the alert information. - :type extended_properties: object + :ivar location: The region where ingested logs and data resides. + :vartype location: str + :ivar value: Connection string value. + :vartype value: str """ _validation = { - 'system_alert_id': {'readonly': True}, - 'compromised_entity': {'readonly': True}, - 'alert_type': {'readonly': True}, - 'start_time_utc': {'readonly': True}, - 'end_time_utc': {'readonly': True}, + 'location': {'readonly': True}, + 'value': {'readonly': True}, } _attribute_map = { - 'system_alert_id': {'key': 'properties.systemAlertId', 'type': 'str'}, - 'compromised_entity': {'key': 'properties.compromisedEntity', 'type': 'str'}, - 'alert_type': {'key': 'properties.alertType', 'type': 'str'}, - 'start_time_utc': {'key': 'properties.startTimeUtc', 'type': 'str'}, - 'end_time_utc': {'key': 'properties.endTimeUtc', 'type': 'str'}, - 'entities': {'key': 'properties.entities', 'type': '[object]'}, - 'extended_properties': {'key': 'properties.extendedProperties', 'type': 'object'}, + 'location': {'key': 'location', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, } def __init__( self, - *, - entities: Optional[List[object]] = None, - extended_properties: Optional[object] = None, **kwargs ): - super(IotAlert, self).__init__(**kwargs) - self.system_alert_id = None - self.compromised_entity = None - self.alert_type = None - self.start_time_utc = None - self.end_time_utc = None - self.entities = entities - self.extended_properties = extended_properties + super(IngestionConnectionString, self).__init__(**kwargs) + self.location = None + self.value = None -class IotAlertList(msrest.serialization.Model): - """List of IoT alerts. +class IngestionSetting(Resource): + """Configures how to correlate scan data and logs with resources associated with the subscription. Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: List data. - :vartype value: list[~azure.mgmt.security.models.IotAlert] - :ivar next_link: When available, follow the URI to get the next page of data. - :vartype next_link: str - :ivar total_count: Total count of alerts that conforms with the given filter options (not - affected by page size). - :vartype total_count: int + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param properties: Ingestion setting data. + :type properties: any """ _validation = { - 'value': {'readonly': True}, - 'next_link': {'readonly': True}, - 'total_count': {'readonly': True}, + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[IotAlert]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - 'total_count': {'key': 'totalCount', 'type': 'int'}, + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'object'}, } def __init__( self, + *, + properties: Optional[Any] = None, **kwargs ): - super(IotAlertList, self).__init__(**kwargs) - self.value = None - self.next_link = None - self.total_count = None + super(IngestionSetting, self).__init__(**kwargs) + self.properties = properties -class IotAlertListModel(msrest.serialization.Model): - """List of IoT alerts. +class IngestionSettingList(msrest.serialization.Model): + """List of ingestion settings. Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: List data. - :vartype value: list[~azure.mgmt.security.models.IotAlertModel] - :ivar next_link: When available, follow the URI to get the next page of data. + :ivar value: List of ingestion settings. + :vartype value: list[~azure.mgmt.security.models.IngestionSetting] + :ivar next_link: The URI to fetch the next page. :vartype next_link: str """ @@ -4867,7 +4922,7 @@ class IotAlertListModel(msrest.serialization.Model): } _attribute_map = { - 'value': {'key': 'value', 'type': '[IotAlertModel]'}, + 'value': {'key': 'value', 'type': '[IngestionSetting]'}, 'next_link': {'key': 'nextLink', 'type': 'str'}, } @@ -4875,420 +4930,491 @@ def __init__( self, **kwargs ): - super(IotAlertListModel, self).__init__(**kwargs) + super(IngestionSettingList, self).__init__(**kwargs) self.value = None self.next_link = None -class IotAlertModel(msrest.serialization.Model): - """IoT alert. +class IngestionSettingToken(msrest.serialization.Model): + """Configures how to correlate scan data and logs with resources associated with the subscription. Variables are only populated by the server, and will be ignored when sending a request. - :ivar system_alert_id: Holds the product canonical identifier of the alert within the scope of - a product. - :vartype system_alert_id: str - :ivar compromised_entity: Display name of the main entity being reported on. - :vartype compromised_entity: str - :ivar alert_type: The type name of the alert. - :vartype alert_type: str - :ivar start_time_utc: The impact start time of the alert (the time of the first event or - activity included in the alert). - :vartype start_time_utc: str - :ivar end_time_utc: The impact end time of the alert (the time of the last event or activity - included in the alert). - :vartype end_time_utc: str - :param entities: A list of entities related to the alert. - :type entities: list[object] - :param extended_properties: A bag of fields which extends the alert information. - :type extended_properties: object + :ivar token: The token is used for correlating security data and logs with the resources in the + subscription. + :vartype token: str """ _validation = { - 'system_alert_id': {'readonly': True}, - 'compromised_entity': {'readonly': True}, - 'alert_type': {'readonly': True}, - 'start_time_utc': {'readonly': True}, - 'end_time_utc': {'readonly': True}, + 'token': {'readonly': True}, } _attribute_map = { - 'system_alert_id': {'key': 'properties.systemAlertId', 'type': 'str'}, - 'compromised_entity': {'key': 'properties.compromisedEntity', 'type': 'str'}, - 'alert_type': {'key': 'properties.alertType', 'type': 'str'}, - 'start_time_utc': {'key': 'properties.startTimeUtc', 'type': 'str'}, - 'end_time_utc': {'key': 'properties.endTimeUtc', 'type': 'str'}, - 'entities': {'key': 'properties.entities', 'type': '[object]'}, - 'extended_properties': {'key': 'properties.extendedProperties', 'type': 'object'}, + 'token': {'key': 'token', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(IngestionSettingToken, self).__init__(**kwargs) + self.token = None + + +class TagsResource(msrest.serialization.Model): + """A container holding only the Tags for a resource, allowing the user to update the tags. + + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + """ + + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, } def __init__( self, *, - entities: Optional[List[object]] = None, - extended_properties: Optional[object] = None, + tags: Optional[Dict[str, str]] = None, **kwargs ): - super(IotAlertModel, self).__init__(**kwargs) - self.system_alert_id = None - self.compromised_entity = None - self.alert_type = None - self.start_time_utc = None - self.end_time_utc = None - self.entities = entities - self.extended_properties = extended_properties + super(TagsResource, self).__init__(**kwargs) + self.tags = tags -class IotAlertType(Resource): - """IoT alert type. +class IoTSecurityAggregatedAlert(Resource, TagsResource): + """Security Solution Aggregated Alert information. Variables are only populated by the server, and will be ignored when sending a request. + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] :ivar id: Resource Id. :vartype id: str :ivar name: Resource name. :vartype name: str :ivar type: Resource type. :vartype type: str - :ivar alert_display_name: The display name of the alert. + :ivar alert_type: Name of the alert type. + :vartype alert_type: str + :ivar alert_display_name: Display name of the alert type. :vartype alert_display_name: str - :ivar severity: The severity of the alert. Possible values include: "Informational", "Low", - "Medium", "High". - :vartype severity: str or ~azure.mgmt.security.models.AlertSeverity + :ivar aggregated_date_utc: Date of detection. + :vartype aggregated_date_utc: ~datetime.date + :ivar vendor_name: Name of the organization that raised the alert. + :vartype vendor_name: str + :ivar reported_severity: Assessed alert severity. Possible values include: "Informational", + "Low", "Medium", "High". + :vartype reported_severity: str or ~azure.mgmt.security.models.ReportedSeverity + :ivar remediation_steps: Recommended steps for remediation. + :vartype remediation_steps: str :ivar description: Description of the suspected vulnerability and meaning. :vartype description: str - :ivar provider_name: The name of the alert provider or internal partner. - :vartype provider_name: str - :ivar product_name: The name of the product which published this alert. - :vartype product_name: str - :ivar product_component_name: The name of a component inside the product which generated the - alert. - :vartype product_component_name: str - :ivar vendor_name: The name of the vendor that raise the alert. - :vartype vendor_name: str - :ivar intent: Kill chain related intent behind the alert. Could contain multiple enum values - (separated by commas). Possible values include: "Unknown", "PreAttack", "InitialAccess", - "Persistence", "PrivilegeEscalation", "DefenseEvasion", "CredentialAccess", "Discovery", - "LateralMovement", "Execution", "Collection", "Exfiltration", "CommandAndControl", "Impact", - "Probing", "Exploitation". - :vartype intent: str or ~azure.mgmt.security.models.AlertIntent - :ivar remediation_steps: Manual action items to take to remediate the alert. - :vartype remediation_steps: list[str] - """ + :ivar count: Number of alerts occurrences within the aggregated time window. + :vartype count: long + :ivar effected_resource_type: Azure resource ID of the resource that received the alerts. + :vartype effected_resource_type: str + :ivar system_source: The type of the alerted resource (Azure, Non-Azure). + :vartype system_source: str + :ivar action_taken: IoT Security solution alert response. + :vartype action_taken: str + :ivar log_analytics_query: Log analytics query for getting the list of affected devices/alerts. + :vartype log_analytics_query: str + :ivar top_devices_list: 10 devices with the highest number of occurrences of this alert type, + on this day. + :vartype top_devices_list: + list[~azure.mgmt.security.models.IoTSecurityAggregatedAlertPropertiesTopDevicesListItem] + """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, + 'alert_type': {'readonly': True}, 'alert_display_name': {'readonly': True}, - 'severity': {'readonly': True}, - 'description': {'readonly': True}, - 'provider_name': {'readonly': True}, - 'product_name': {'readonly': True}, - 'product_component_name': {'readonly': True}, + 'aggregated_date_utc': {'readonly': True}, 'vendor_name': {'readonly': True}, - 'intent': {'readonly': True}, + 'reported_severity': {'readonly': True}, 'remediation_steps': {'readonly': True}, + 'description': {'readonly': True}, + 'count': {'readonly': True}, + 'effected_resource_type': {'readonly': True}, + 'system_source': {'readonly': True}, + 'action_taken': {'readonly': True}, + 'log_analytics_query': {'readonly': True}, + 'top_devices_list': {'readonly': True}, } _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, + 'alert_type': {'key': 'properties.alertType', 'type': 'str'}, 'alert_display_name': {'key': 'properties.alertDisplayName', 'type': 'str'}, - 'severity': {'key': 'properties.severity', 'type': 'str'}, - 'description': {'key': 'properties.description', 'type': 'str'}, - 'provider_name': {'key': 'properties.providerName', 'type': 'str'}, - 'product_name': {'key': 'properties.productName', 'type': 'str'}, - 'product_component_name': {'key': 'properties.productComponentName', 'type': 'str'}, + 'aggregated_date_utc': {'key': 'properties.aggregatedDateUtc', 'type': 'date'}, 'vendor_name': {'key': 'properties.vendorName', 'type': 'str'}, - 'intent': {'key': 'properties.intent', 'type': 'str'}, - 'remediation_steps': {'key': 'properties.remediationSteps', 'type': '[str]'}, + 'reported_severity': {'key': 'properties.reportedSeverity', 'type': 'str'}, + 'remediation_steps': {'key': 'properties.remediationSteps', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'count': {'key': 'properties.count', 'type': 'long'}, + 'effected_resource_type': {'key': 'properties.effectedResourceType', 'type': 'str'}, + 'system_source': {'key': 'properties.systemSource', 'type': 'str'}, + 'action_taken': {'key': 'properties.actionTaken', 'type': 'str'}, + 'log_analytics_query': {'key': 'properties.logAnalyticsQuery', 'type': 'str'}, + 'top_devices_list': {'key': 'properties.topDevicesList', 'type': '[IoTSecurityAggregatedAlertPropertiesTopDevicesListItem]'}, } def __init__( self, + *, + tags: Optional[Dict[str, str]] = None, **kwargs ): - super(IotAlertType, self).__init__(**kwargs) + super(IoTSecurityAggregatedAlert, self).__init__(tags=tags, **kwargs) + self.tags = tags + self.alert_type = None self.alert_display_name = None - self.severity = None + self.aggregated_date_utc = None + self.vendor_name = None + self.reported_severity = None + self.remediation_steps = None self.description = None - self.provider_name = None - self.product_name = None - self.product_component_name = None + self.count = None + self.effected_resource_type = None + self.system_source = None + self.action_taken = None + self.log_analytics_query = None + self.top_devices_list = None + self.id = None + self.name = None + self.type = None + self.alert_type = None + self.alert_display_name = None + self.aggregated_date_utc = None self.vendor_name = None - self.intent = None + self.reported_severity = None self.remediation_steps = None + self.description = None + self.count = None + self.effected_resource_type = None + self.system_source = None + self.action_taken = None + self.log_analytics_query = None + self.top_devices_list = None + +class IoTSecurityAggregatedAlertList(msrest.serialization.Model): + """List of IoT Security solution aggregated alert data. + + Variables are only populated by the server, and will be ignored when sending a request. -class IotAlertTypeList(msrest.serialization.Model): - """List of alert types. + All required parameters must be populated in order to send to Azure. - :param value: List data. - :type value: list[~azure.mgmt.security.models.IotAlertType] + :param value: Required. List of aggregated alerts data. + :type value: list[~azure.mgmt.security.models.IoTSecurityAggregatedAlert] + :ivar next_link: When there is too much alert data for one page, use this URI to fetch the next + page. + :vartype next_link: str """ + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + _attribute_map = { - 'value': {'key': 'value', 'type': '[IotAlertType]'}, + 'value': {'key': 'value', 'type': '[IoTSecurityAggregatedAlert]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, } def __init__( self, *, - value: Optional[List["IotAlertType"]] = None, + value: List["IoTSecurityAggregatedAlert"], **kwargs ): - super(IotAlertTypeList, self).__init__(**kwargs) + super(IoTSecurityAggregatedAlertList, self).__init__(**kwargs) self.value = value + self.next_link = None -class IotDefenderSettingsList(msrest.serialization.Model): - """List of IoT Defender settings. +class IoTSecurityAggregatedAlertPropertiesTopDevicesListItem(msrest.serialization.Model): + """IoTSecurityAggregatedAlertPropertiesTopDevicesListItem. Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: List data. - :vartype value: list[~azure.mgmt.security.models.IotDefenderSettingsModel] + :ivar device_id: Name of the device. + :vartype device_id: str + :ivar alerts_count: Number of alerts raised for this device. + :vartype alerts_count: long + :ivar last_occurrence: Most recent time this alert was raised for this device, on this day. + :vartype last_occurrence: str """ _validation = { - 'value': {'readonly': True}, + 'device_id': {'readonly': True}, + 'alerts_count': {'readonly': True}, + 'last_occurrence': {'readonly': True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[IotDefenderSettingsModel]'}, + 'device_id': {'key': 'deviceId', 'type': 'str'}, + 'alerts_count': {'key': 'alertsCount', 'type': 'long'}, + 'last_occurrence': {'key': 'lastOccurrence', 'type': 'str'}, } def __init__( self, **kwargs ): - super(IotDefenderSettingsList, self).__init__(**kwargs) - self.value = None + super(IoTSecurityAggregatedAlertPropertiesTopDevicesListItem, self).__init__(**kwargs) + self.device_id = None + self.alerts_count = None + self.last_occurrence = None -class IotDefenderSettingsModel(Resource): - """IoT Defender settings. +class IoTSecurityAggregatedRecommendation(Resource, TagsResource): + """IoT Security solution recommendation information. Variables are only populated by the server, and will be ignored when sending a request. + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] :ivar id: Resource Id. :vartype id: str :ivar name: Resource name. :vartype name: str :ivar type: Resource type. :vartype type: str - :param device_quota: Size of the device quota (as a opposed to a Pay as You Go billing model). - Value is required to be in multiples of 1000. - :type device_quota: int - :param sentinel_workspace_resource_ids: Sentinel Workspace Resource Ids. - :type sentinel_workspace_resource_ids: list[str] + :param recommendation_name: Name of the recommendation. + :type recommendation_name: str + :ivar recommendation_display_name: Display name of the recommendation type. + :vartype recommendation_display_name: str + :ivar description: Description of the suspected vulnerability and meaning. + :vartype description: str + :ivar recommendation_type_id: Recommendation-type GUID. + :vartype recommendation_type_id: str + :ivar detected_by: Name of the organization that made the recommendation. + :vartype detected_by: str + :ivar remediation_steps: Recommended steps for remediation. + :vartype remediation_steps: str + :ivar reported_severity: Assessed recommendation severity. Possible values include: + "Informational", "Low", "Medium", "High". + :vartype reported_severity: str or ~azure.mgmt.security.models.ReportedSeverity + :ivar healthy_devices: Number of healthy devices within the IoT Security solution. + :vartype healthy_devices: long + :ivar unhealthy_device_count: Number of unhealthy devices within the IoT Security solution. + :vartype unhealthy_device_count: long + :ivar log_analytics_query: Log analytics query for getting the list of affected devices/alerts. + :vartype log_analytics_query: str """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'device_quota': {'minimum': 1000}, + 'recommendation_display_name': {'readonly': True}, + 'description': {'readonly': True}, + 'recommendation_type_id': {'readonly': True}, + 'detected_by': {'readonly': True}, + 'remediation_steps': {'readonly': True}, + 'reported_severity': {'readonly': True}, + 'healthy_devices': {'readonly': True}, + 'unhealthy_device_count': {'readonly': True}, + 'log_analytics_query': {'readonly': True}, } _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, - 'device_quota': {'key': 'properties.deviceQuota', 'type': 'int'}, - 'sentinel_workspace_resource_ids': {'key': 'properties.sentinelWorkspaceResourceIds', 'type': '[str]'}, + 'recommendation_name': {'key': 'properties.recommendationName', 'type': 'str'}, + 'recommendation_display_name': {'key': 'properties.recommendationDisplayName', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'recommendation_type_id': {'key': 'properties.recommendationTypeId', 'type': 'str'}, + 'detected_by': {'key': 'properties.detectedBy', 'type': 'str'}, + 'remediation_steps': {'key': 'properties.remediationSteps', 'type': 'str'}, + 'reported_severity': {'key': 'properties.reportedSeverity', 'type': 'str'}, + 'healthy_devices': {'key': 'properties.healthyDevices', 'type': 'long'}, + 'unhealthy_device_count': {'key': 'properties.unhealthyDeviceCount', 'type': 'long'}, + 'log_analytics_query': {'key': 'properties.logAnalyticsQuery', 'type': 'str'}, } def __init__( self, *, - device_quota: Optional[int] = None, - sentinel_workspace_resource_ids: Optional[List[str]] = None, + tags: Optional[Dict[str, str]] = None, + recommendation_name: Optional[str] = None, **kwargs ): - super(IotDefenderSettingsModel, self).__init__(**kwargs) - self.device_quota = device_quota - self.sentinel_workspace_resource_ids = sentinel_workspace_resource_ids + super(IoTSecurityAggregatedRecommendation, self).__init__(tags=tags, **kwargs) + self.tags = tags + self.recommendation_name = recommendation_name + self.recommendation_display_name = None + self.description = None + self.recommendation_type_id = None + self.detected_by = None + self.remediation_steps = None + self.reported_severity = None + self.healthy_devices = None + self.unhealthy_device_count = None + self.log_analytics_query = None + self.id = None + self.name = None + self.type = None + self.recommendation_name = recommendation_name + self.recommendation_display_name = None + self.description = None + self.recommendation_type_id = None + self.detected_by = None + self.remediation_steps = None + self.reported_severity = None + self.healthy_devices = None + self.unhealthy_device_count = None + self.log_analytics_query = None -class IotRecommendation(Resource): - """IoT recommendation. +class IoTSecurityAggregatedRecommendationList(msrest.serialization.Model): + """List of IoT Security solution aggregated recommendations. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar device_id: Identifier of the device being reported on. - :vartype device_id: str - :ivar recommendation_type: The type name of the recommendation. - :vartype recommendation_type: str - :ivar discovered_time_utc: The discovery time of the recommendation. - :vartype discovered_time_utc: str - :param recommendation_additional_data: A bag of fields which extends the recommendation - information. - :type recommendation_additional_data: object + All required parameters must be populated in order to send to Azure. + + :param value: Required. List of aggregated recommendations data. + :type value: list[~azure.mgmt.security.models.IoTSecurityAggregatedRecommendation] + :ivar next_link: When there is too much alert data for one page, use this URI to fetch the next + page. + :vartype next_link: str """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'device_id': {'readonly': True}, - 'recommendation_type': {'readonly': True}, - 'discovered_time_utc': {'readonly': True}, + 'value': {'required': True}, + 'next_link': {'readonly': True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'device_id': {'key': 'properties.deviceId', 'type': 'str'}, - 'recommendation_type': {'key': 'properties.recommendationType', 'type': 'str'}, - 'discovered_time_utc': {'key': 'properties.discoveredTimeUtc', 'type': 'str'}, - 'recommendation_additional_data': {'key': 'properties.recommendationAdditionalData', 'type': 'object'}, + 'value': {'key': 'value', 'type': '[IoTSecurityAggregatedRecommendation]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, } def __init__( self, *, - recommendation_additional_data: Optional[object] = None, + value: List["IoTSecurityAggregatedRecommendation"], **kwargs ): - super(IotRecommendation, self).__init__(**kwargs) - self.device_id = None - self.recommendation_type = None - self.discovered_time_utc = None - self.recommendation_additional_data = recommendation_additional_data + super(IoTSecurityAggregatedRecommendationList, self).__init__(**kwargs) + self.value = value + self.next_link = None -class IotRecommendationList(msrest.serialization.Model): - """List of IoT recommendations. +class IoTSecurityAlertedDevice(msrest.serialization.Model): + """Statistical information about the number of alerts per device during last set number of days. Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: List data. - :vartype value: list[~azure.mgmt.security.models.IotRecommendation] - :ivar next_link: When available, follow the URI to get the next page of data. - :vartype next_link: str - :ivar total_count: Total count of recommendations that conforms with the given filter options - (not affected by page size). - :vartype total_count: int + :ivar device_id: Device identifier. + :vartype device_id: str + :ivar alerts_count: Number of alerts raised for this device. + :vartype alerts_count: long """ _validation = { - 'value': {'readonly': True}, - 'next_link': {'readonly': True}, - 'total_count': {'readonly': True}, + 'device_id': {'readonly': True}, + 'alerts_count': {'readonly': True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[IotRecommendation]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - 'total_count': {'key': 'totalCount', 'type': 'int'}, + 'device_id': {'key': 'deviceId', 'type': 'str'}, + 'alerts_count': {'key': 'alertsCount', 'type': 'long'}, } def __init__( self, **kwargs ): - super(IotRecommendationList, self).__init__(**kwargs) - self.value = None - self.next_link = None - self.total_count = None + super(IoTSecurityAlertedDevice, self).__init__(**kwargs) + self.device_id = None + self.alerts_count = None -class IotRecommendationListModel(msrest.serialization.Model): - """List of IoT recommendations. +class IoTSecurityDeviceAlert(msrest.serialization.Model): + """Statistical information about the number of alerts per alert type during last set number of days. Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: List data. - :vartype value: list[~azure.mgmt.security.models.IotRecommendationModel] - :ivar next_link: When available, follow the URI to get the next page of data. - :vartype next_link: str + :ivar alert_display_name: Display name of the alert. + :vartype alert_display_name: str + :ivar reported_severity: Assessed Alert severity. Possible values include: "Informational", + "Low", "Medium", "High". + :vartype reported_severity: str or ~azure.mgmt.security.models.ReportedSeverity + :ivar alerts_count: Number of alerts raised for this alert type. + :vartype alerts_count: long """ _validation = { - 'value': {'readonly': True}, - 'next_link': {'readonly': True}, + 'alert_display_name': {'readonly': True}, + 'reported_severity': {'readonly': True}, + 'alerts_count': {'readonly': True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[IotRecommendationModel]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'alert_display_name': {'key': 'alertDisplayName', 'type': 'str'}, + 'reported_severity': {'key': 'reportedSeverity', 'type': 'str'}, + 'alerts_count': {'key': 'alertsCount', 'type': 'long'}, } def __init__( self, **kwargs ): - super(IotRecommendationListModel, self).__init__(**kwargs) - self.value = None - self.next_link = None + super(IoTSecurityDeviceAlert, self).__init__(**kwargs) + self.alert_display_name = None + self.reported_severity = None + self.alerts_count = None -class IotRecommendationModel(Resource): - """IoT recommendation. +class IoTSecurityDeviceRecommendation(msrest.serialization.Model): + """Statistical information about the number of recommendations per device, per recommendation type. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar device_id: Identifier of the device being reported on. - :vartype device_id: str - :ivar recommendation_type: The type name of the recommendation. - :vartype recommendation_type: str - :ivar discovered_time_utc: The discovery time of the recommendation. - :vartype discovered_time_utc: str - :param recommendation_additional_data: A bag of fields which extends the recommendation - information. - :type recommendation_additional_data: object + :ivar recommendation_display_name: Display name of the recommendation. + :vartype recommendation_display_name: str + :ivar reported_severity: Assessed recommendation severity. Possible values include: + "Informational", "Low", "Medium", "High". + :vartype reported_severity: str or ~azure.mgmt.security.models.ReportedSeverity + :ivar devices_count: Number of devices with this recommendation. + :vartype devices_count: long """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'device_id': {'readonly': True}, - 'recommendation_type': {'readonly': True}, - 'discovered_time_utc': {'readonly': True}, + 'recommendation_display_name': {'readonly': True}, + 'reported_severity': {'readonly': True}, + 'devices_count': {'readonly': True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'device_id': {'key': 'properties.deviceId', 'type': 'str'}, - 'recommendation_type': {'key': 'properties.recommendationType', 'type': 'str'}, - 'discovered_time_utc': {'key': 'properties.discoveredTimeUtc', 'type': 'str'}, - 'recommendation_additional_data': {'key': 'properties.recommendationAdditionalData', 'type': 'object'}, + 'recommendation_display_name': {'key': 'recommendationDisplayName', 'type': 'str'}, + 'reported_severity': {'key': 'reportedSeverity', 'type': 'str'}, + 'devices_count': {'key': 'devicesCount', 'type': 'long'}, } def __init__( self, - *, - recommendation_additional_data: Optional[object] = None, **kwargs ): - super(IotRecommendationModel, self).__init__(**kwargs) - self.device_id = None - self.recommendation_type = None - self.discovered_time_utc = None - self.recommendation_additional_data = recommendation_additional_data + super(IoTSecurityDeviceRecommendation, self).__init__(**kwargs) + self.recommendation_display_name = None + self.reported_severity = None + self.devices_count = None -class IotRecommendationType(Resource): - """IoT recommendation type. +class IoTSecuritySolutionAnalyticsModel(Resource): + """Security analytics of your IoT Security solution. Variables are only populated by the server, and will be ignored when sending a request. @@ -5298,118 +5424,124 @@ class IotRecommendationType(Resource): :vartype name: str :ivar type: Resource type. :vartype type: str - :ivar recommendation_display_name: The display name of the recommendation. - :vartype recommendation_display_name: str - :ivar severity: The severity of the recommendation. Possible values include: "Unknown", - "NotApplicable", "Healthy", "OffByPolicy", "Low", "Medium", "High". - :vartype severity: str or ~azure.mgmt.security.models.RecommendationSeverity - :ivar description: Description of the suspected vulnerability and meaning. - :vartype description: str - :ivar product_name: The name of the product which published this recommendation. - :vartype product_name: str - :ivar product_component_name: The name of a component inside the product which generated the - recommendation. - :vartype product_component_name: str - :ivar vendor_name: The name of the vendor that raised the recommendation. - :vartype vendor_name: str - :ivar control: The name of the recommendation's control category. - :vartype control: str - :ivar remediation_steps: Manual action items to take to resolve the recommendation. - :vartype remediation_steps: list[str] - :ivar data_source: The alert's data source. - :vartype data_source: str + :ivar metrics: Security analytics of your IoT Security solution. + :vartype metrics: ~azure.mgmt.security.models.IoTSeverityMetrics + :ivar unhealthy_device_count: Number of unhealthy devices within your IoT Security solution. + :vartype unhealthy_device_count: long + :ivar devices_metrics: List of device metrics by the aggregation date. + :vartype devices_metrics: + list[~azure.mgmt.security.models.IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem] + :param top_alerted_devices: List of the 3 devices with the most alerts. + :type top_alerted_devices: list[~azure.mgmt.security.models.IoTSecurityAlertedDevice] + :param most_prevalent_device_alerts: List of the 3 most prevalent device alerts. + :type most_prevalent_device_alerts: list[~azure.mgmt.security.models.IoTSecurityDeviceAlert] + :param most_prevalent_device_recommendations: List of the 3 most prevalent device + recommendations. + :type most_prevalent_device_recommendations: + list[~azure.mgmt.security.models.IoTSecurityDeviceRecommendation] """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'recommendation_display_name': {'readonly': True}, - 'severity': {'readonly': True}, - 'description': {'readonly': True}, - 'product_name': {'readonly': True}, - 'product_component_name': {'readonly': True}, - 'vendor_name': {'readonly': True}, - 'control': {'readonly': True}, - 'remediation_steps': {'readonly': True}, - 'data_source': {'readonly': True}, + 'metrics': {'readonly': True}, + 'unhealthy_device_count': {'readonly': True}, + 'devices_metrics': {'readonly': True}, } _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, - 'recommendation_display_name': {'key': 'properties.recommendationDisplayName', 'type': 'str'}, - 'severity': {'key': 'properties.severity', 'type': 'str'}, - 'description': {'key': 'properties.description', 'type': 'str'}, - 'product_name': {'key': 'properties.productName', 'type': 'str'}, - 'product_component_name': {'key': 'properties.productComponentName', 'type': 'str'}, - 'vendor_name': {'key': 'properties.vendorName', 'type': 'str'}, - 'control': {'key': 'properties.control', 'type': 'str'}, - 'remediation_steps': {'key': 'properties.remediationSteps', 'type': '[str]'}, - 'data_source': {'key': 'properties.dataSource', 'type': 'str'}, + 'metrics': {'key': 'properties.metrics', 'type': 'IoTSeverityMetrics'}, + 'unhealthy_device_count': {'key': 'properties.unhealthyDeviceCount', 'type': 'long'}, + 'devices_metrics': {'key': 'properties.devicesMetrics', 'type': '[IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem]'}, + 'top_alerted_devices': {'key': 'properties.topAlertedDevices', 'type': '[IoTSecurityAlertedDevice]'}, + 'most_prevalent_device_alerts': {'key': 'properties.mostPrevalentDeviceAlerts', 'type': '[IoTSecurityDeviceAlert]'}, + 'most_prevalent_device_recommendations': {'key': 'properties.mostPrevalentDeviceRecommendations', 'type': '[IoTSecurityDeviceRecommendation]'}, } def __init__( self, + *, + top_alerted_devices: Optional[List["IoTSecurityAlertedDevice"]] = None, + most_prevalent_device_alerts: Optional[List["IoTSecurityDeviceAlert"]] = None, + most_prevalent_device_recommendations: Optional[List["IoTSecurityDeviceRecommendation"]] = None, **kwargs ): - super(IotRecommendationType, self).__init__(**kwargs) - self.recommendation_display_name = None - self.severity = None - self.description = None - self.product_name = None - self.product_component_name = None - self.vendor_name = None - self.control = None - self.remediation_steps = None - self.data_source = None + super(IoTSecuritySolutionAnalyticsModel, self).__init__(**kwargs) + self.metrics = None + self.unhealthy_device_count = None + self.devices_metrics = None + self.top_alerted_devices = top_alerted_devices + self.most_prevalent_device_alerts = most_prevalent_device_alerts + self.most_prevalent_device_recommendations = most_prevalent_device_recommendations + + +class IoTSecuritySolutionAnalyticsModelList(msrest.serialization.Model): + """List of Security analytics of your IoT Security solution. + Variables are only populated by the server, and will be ignored when sending a request. -class IotRecommendationTypeList(msrest.serialization.Model): - """List of recommendation types. + All required parameters must be populated in order to send to Azure. - :param value: List data. - :type value: list[~azure.mgmt.security.models.IotRecommendationType] + :param value: Required. List of Security analytics of your IoT Security solution. + :type value: list[~azure.mgmt.security.models.IoTSecuritySolutionAnalyticsModel] + :ivar next_link: When there is too much alert data for one page, use this URI to fetch the next + page. + :vartype next_link: str """ + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + _attribute_map = { - 'value': {'key': 'value', 'type': '[IotRecommendationType]'}, + 'value': {'key': 'value', 'type': '[IoTSecuritySolutionAnalyticsModel]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, } def __init__( self, *, - value: Optional[List["IotRecommendationType"]] = None, + value: List["IoTSecuritySolutionAnalyticsModel"], **kwargs ): - super(IotRecommendationTypeList, self).__init__(**kwargs) + super(IoTSecuritySolutionAnalyticsModelList, self).__init__(**kwargs) self.value = value + self.next_link = None -class TagsResource(msrest.serialization.Model): - """A container holding only the Tags for a resource, allowing the user to update the tags. +class IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem(msrest.serialization.Model): + """IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem. - :param tags: A set of tags. Resource tags. - :type tags: dict[str, str] + :param date: Aggregation of IoT Security solution device alert metrics by date. + :type date: ~datetime.datetime + :param devices_metrics: Device alert count by severity. + :type devices_metrics: ~azure.mgmt.security.models.IoTSeverityMetrics """ _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, + 'date': {'key': 'date', 'type': 'iso-8601'}, + 'devices_metrics': {'key': 'devicesMetrics', 'type': 'IoTSeverityMetrics'}, } def __init__( self, *, - tags: Optional[Dict[str, str]] = None, + date: Optional[datetime.datetime] = None, + devices_metrics: Optional["IoTSeverityMetrics"] = None, **kwargs ): - super(TagsResource, self).__init__(**kwargs) - self.tags = tags + super(IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem, self).__init__(**kwargs) + self.date = date + self.devices_metrics = devices_metrics -class IoTSecurityAggregatedAlert(Resource, TagsResource): - """Security Solution Aggregated Alert information. +class IoTSecuritySolutionModel(Resource, TagsResource): + """IoT Security solution configuration and resource information. Variables are only populated by the server, and will be ignored when sending a request. @@ -5421,54 +5553,48 @@ class IoTSecurityAggregatedAlert(Resource, TagsResource): :vartype name: str :ivar type: Resource type. :vartype type: str - :ivar alert_type: Name of the alert type. - :vartype alert_type: str - :ivar alert_display_name: Display name of the alert type. - :vartype alert_display_name: str - :ivar aggregated_date_utc: Date of detection. - :vartype aggregated_date_utc: ~datetime.date - :ivar vendor_name: Name of the organization that raised the alert. - :vartype vendor_name: str - :ivar reported_severity: Assessed alert severity. Possible values include: "Informational", - "Low", "Medium", "High". - :vartype reported_severity: str or ~azure.mgmt.security.models.ReportedSeverity - :ivar remediation_steps: Recommended steps for remediation. - :vartype remediation_steps: str - :ivar description: Description of the suspected vulnerability and meaning. - :vartype description: str - :ivar count: Number of alerts occurrences within the aggregated time window. - :vartype count: int - :ivar effected_resource_type: Azure resource ID of the resource that received the alerts. - :vartype effected_resource_type: str - :ivar system_source: The type of the alerted resource (Azure, Non-Azure). - :vartype system_source: str - :ivar action_taken: IoT Security solution alert response. - :vartype action_taken: str - :ivar log_analytics_query: Log analytics query for getting the list of affected devices/alerts. - :vartype log_analytics_query: str - :ivar top_devices_list: 10 devices with the highest number of occurrences of this alert type, - on this day. - :vartype top_devices_list: - list[~azure.mgmt.security.models.IoTSecurityAggregatedAlertPropertiesTopDevicesListItem] + :param location: The resource location. + :type location: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.security.models.SystemData + :param workspace: Workspace resource ID. + :type workspace: str + :param display_name: Resource display name. + :type display_name: str + :param status: Status of the IoT Security solution. Possible values include: "Enabled", + "Disabled". Default value: "Enabled". + :type status: str or ~azure.mgmt.security.models.SecuritySolutionStatus + :param export: List of additional options for exporting to workspace data. + :type export: list[str or ~azure.mgmt.security.models.ExportData] + :param disabled_data_sources: Disabled data sources. Disabling these data sources compromises + the system. + :type disabled_data_sources: list[str or ~azure.mgmt.security.models.DataSource] + :param iot_hubs: IoT Hub resource IDs. + :type iot_hubs: list[str] + :param user_defined_resources: Properties of the IoT Security solution's user defined + resources. + :type user_defined_resources: ~azure.mgmt.security.models.UserDefinedResourcesProperties + :ivar auto_discovered_resources: List of resources that were automatically discovered as + relevant to the security solution. + :vartype auto_discovered_resources: list[str] + :param recommendations_configuration: List of the configuration status for each recommendation + type. + :type recommendations_configuration: + list[~azure.mgmt.security.models.RecommendationConfigurationProperties] + :param unmasked_ip_logging_status: Unmasked IP address logging status. Possible values include: + "Disabled", "Enabled". Default value: "Disabled". + :type unmasked_ip_logging_status: str or ~azure.mgmt.security.models.UnmaskedIpLoggingStatus + :param additional_workspaces: List of additional workspaces. + :type additional_workspaces: list[~azure.mgmt.security.models.AdditionalWorkspacesProperties] """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'alert_type': {'readonly': True}, - 'alert_display_name': {'readonly': True}, - 'aggregated_date_utc': {'readonly': True}, - 'vendor_name': {'readonly': True}, - 'reported_severity': {'readonly': True}, - 'remediation_steps': {'readonly': True}, - 'description': {'readonly': True}, - 'count': {'readonly': True}, - 'effected_resource_type': {'readonly': True}, - 'system_source': {'readonly': True}, - 'action_taken': {'readonly': True}, - 'log_analytics_query': {'readonly': True}, - 'top_devices_list': {'readonly': True}, + 'system_data': {'readonly': True}, + 'auto_discovered_resources': {'readonly': True}, } _attribute_map = { @@ -5476,71 +5602,81 @@ class IoTSecurityAggregatedAlert(Resource, TagsResource): 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, - 'alert_type': {'key': 'properties.alertType', 'type': 'str'}, - 'alert_display_name': {'key': 'properties.alertDisplayName', 'type': 'str'}, - 'aggregated_date_utc': {'key': 'properties.aggregatedDateUtc', 'type': 'date'}, - 'vendor_name': {'key': 'properties.vendorName', 'type': 'str'}, - 'reported_severity': {'key': 'properties.reportedSeverity', 'type': 'str'}, - 'remediation_steps': {'key': 'properties.remediationSteps', 'type': 'str'}, - 'description': {'key': 'properties.description', 'type': 'str'}, - 'count': {'key': 'properties.count', 'type': 'int'}, - 'effected_resource_type': {'key': 'properties.effectedResourceType', 'type': 'str'}, - 'system_source': {'key': 'properties.systemSource', 'type': 'str'}, - 'action_taken': {'key': 'properties.actionTaken', 'type': 'str'}, - 'log_analytics_query': {'key': 'properties.logAnalyticsQuery', 'type': 'str'}, - 'top_devices_list': {'key': 'properties.topDevicesList', 'type': '[IoTSecurityAggregatedAlertPropertiesTopDevicesListItem]'}, + 'location': {'key': 'location', 'type': 'str'}, + 'system_data': {'key': 'systemData', 'type': 'SystemData'}, + 'workspace': {'key': 'properties.workspace', 'type': 'str'}, + 'display_name': {'key': 'properties.displayName', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'export': {'key': 'properties.export', 'type': '[str]'}, + 'disabled_data_sources': {'key': 'properties.disabledDataSources', 'type': '[str]'}, + 'iot_hubs': {'key': 'properties.iotHubs', 'type': '[str]'}, + 'user_defined_resources': {'key': 'properties.userDefinedResources', 'type': 'UserDefinedResourcesProperties'}, + 'auto_discovered_resources': {'key': 'properties.autoDiscoveredResources', 'type': '[str]'}, + 'recommendations_configuration': {'key': 'properties.recommendationsConfiguration', 'type': '[RecommendationConfigurationProperties]'}, + 'unmasked_ip_logging_status': {'key': 'properties.unmaskedIpLoggingStatus', 'type': 'str'}, + 'additional_workspaces': {'key': 'properties.additionalWorkspaces', 'type': '[AdditionalWorkspacesProperties]'}, } def __init__( self, *, tags: Optional[Dict[str, str]] = None, + location: Optional[str] = None, + workspace: Optional[str] = None, + display_name: Optional[str] = None, + status: Optional[Union[str, "SecuritySolutionStatus"]] = "Enabled", + export: Optional[List[Union[str, "ExportData"]]] = None, + disabled_data_sources: Optional[List[Union[str, "DataSource"]]] = None, + iot_hubs: Optional[List[str]] = None, + user_defined_resources: Optional["UserDefinedResourcesProperties"] = None, + recommendations_configuration: Optional[List["RecommendationConfigurationProperties"]] = None, + unmasked_ip_logging_status: Optional[Union[str, "UnmaskedIpLoggingStatus"]] = "Disabled", + additional_workspaces: Optional[List["AdditionalWorkspacesProperties"]] = None, **kwargs ): - super(IoTSecurityAggregatedAlert, self).__init__(tags=tags, **kwargs) + super(IoTSecuritySolutionModel, self).__init__(tags=tags, **kwargs) self.tags = tags - self.alert_type = None - self.alert_display_name = None - self.aggregated_date_utc = None - self.vendor_name = None - self.reported_severity = None - self.remediation_steps = None - self.description = None - self.count = None - self.effected_resource_type = None - self.system_source = None - self.action_taken = None - self.log_analytics_query = None - self.top_devices_list = None + self.location = location + self.system_data = None + self.workspace = workspace + self.display_name = display_name + self.status = status + self.export = export + self.disabled_data_sources = disabled_data_sources + self.iot_hubs = iot_hubs + self.user_defined_resources = user_defined_resources + self.auto_discovered_resources = None + self.recommendations_configuration = recommendations_configuration + self.unmasked_ip_logging_status = unmasked_ip_logging_status + self.additional_workspaces = additional_workspaces self.id = None self.name = None self.type = None - self.alert_type = None - self.alert_display_name = None - self.aggregated_date_utc = None - self.vendor_name = None - self.reported_severity = None - self.remediation_steps = None - self.description = None - self.count = None - self.effected_resource_type = None - self.system_source = None - self.action_taken = None - self.log_analytics_query = None - self.top_devices_list = None + self.location = location + self.system_data = None + self.workspace = workspace + self.display_name = display_name + self.status = status + self.export = export + self.disabled_data_sources = disabled_data_sources + self.iot_hubs = iot_hubs + self.user_defined_resources = user_defined_resources + self.auto_discovered_resources = None + self.recommendations_configuration = recommendations_configuration + self.unmasked_ip_logging_status = unmasked_ip_logging_status + self.additional_workspaces = additional_workspaces -class IoTSecurityAggregatedAlertList(msrest.serialization.Model): - """List of IoT Security solution aggregated alert data. +class IoTSecuritySolutionsList(msrest.serialization.Model): + """List of IoT Security solutions. 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 value: Required. List of aggregated alerts data. - :type value: list[~azure.mgmt.security.models.IoTSecurityAggregatedAlert] - :ivar next_link: When there is too much alert data for one page, use this URI to fetch the next - page. + :param value: Required. List of IoT Security solutions. + :type value: list[~azure.mgmt.security.models.IoTSecuritySolutionModel] + :ivar next_link: The URI to fetch the next page. :vartype next_link: str """ @@ -5550,2196 +5686,993 @@ class IoTSecurityAggregatedAlertList(msrest.serialization.Model): } _attribute_map = { - 'value': {'key': 'value', 'type': '[IoTSecurityAggregatedAlert]'}, + 'value': {'key': 'value', 'type': '[IoTSecuritySolutionModel]'}, 'next_link': {'key': 'nextLink', 'type': 'str'}, } def __init__( self, *, - value: List["IoTSecurityAggregatedAlert"], + value: List["IoTSecuritySolutionModel"], **kwargs ): - super(IoTSecurityAggregatedAlertList, self).__init__(**kwargs) + super(IoTSecuritySolutionsList, self).__init__(**kwargs) self.value = value self.next_link = None -class IoTSecurityAggregatedAlertPropertiesTopDevicesListItem(msrest.serialization.Model): - """IoTSecurityAggregatedAlertPropertiesTopDevicesListItem. +class IoTSeverityMetrics(msrest.serialization.Model): + """IoT Security solution analytics severity metrics. + + :param high: Count of high severity alerts/recommendations. + :type high: long + :param medium: Count of medium severity alerts/recommendations. + :type medium: long + :param low: Count of low severity alerts/recommendations. + :type low: long + """ + + _attribute_map = { + 'high': {'key': 'high', 'type': 'long'}, + 'medium': {'key': 'medium', 'type': 'long'}, + 'low': {'key': 'low', 'type': 'long'}, + } + + def __init__( + self, + *, + high: Optional[int] = None, + medium: Optional[int] = None, + low: Optional[int] = None, + **kwargs + ): + super(IoTSeverityMetrics, self).__init__(**kwargs) + self.high = high + self.medium = medium + self.low = low + + +class JitNetworkAccessPoliciesList(msrest.serialization.Model): + """JitNetworkAccessPoliciesList. Variables are only populated by the server, and will be ignored when sending a request. - :ivar device_id: Name of the device. - :vartype device_id: str - :ivar alerts_count: Number of alerts raised for this device. - :vartype alerts_count: int - :ivar last_occurrence: Most recent time this alert was raised for this device, on this day. - :vartype last_occurrence: str + :param value: + :type value: list[~azure.mgmt.security.models.JitNetworkAccessPolicy] + :ivar next_link: The URI to fetch the next page. + :vartype next_link: str """ _validation = { - 'device_id': {'readonly': True}, - 'alerts_count': {'readonly': True}, - 'last_occurrence': {'readonly': True}, + 'next_link': {'readonly': True}, } _attribute_map = { - 'device_id': {'key': 'deviceId', 'type': 'str'}, - 'alerts_count': {'key': 'alertsCount', 'type': 'int'}, - 'last_occurrence': {'key': 'lastOccurrence', 'type': 'str'}, + 'value': {'key': 'value', 'type': '[JitNetworkAccessPolicy]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, } def __init__( self, + *, + value: Optional[List["JitNetworkAccessPolicy"]] = None, **kwargs ): - super(IoTSecurityAggregatedAlertPropertiesTopDevicesListItem, self).__init__(**kwargs) - self.device_id = None - self.alerts_count = None - self.last_occurrence = None + super(JitNetworkAccessPoliciesList, self).__init__(**kwargs) + self.value = value + self.next_link = None -class IoTSecurityAggregatedRecommendation(Resource, TagsResource): - """IoT Security solution recommendation information. +class JitNetworkAccessPolicy(Resource, Kind, Location): + """JitNetworkAccessPolicy. Variables are only populated by the server, and will be ignored when sending a request. - :param tags: A set of tags. Resource tags. - :type tags: dict[str, str] + All required parameters must be populated in order to send to Azure. + + :ivar location: Location where the resource is stored. + :vartype location: str + :param kind: Kind of the resource. + :type kind: str :ivar id: Resource Id. :vartype id: str :ivar name: Resource name. :vartype name: str :ivar type: Resource type. :vartype type: str - :param recommendation_name: Name of the recommendation. - :type recommendation_name: str - :ivar recommendation_display_name: Display name of the recommendation type. - :vartype recommendation_display_name: str - :ivar description: Description of the suspected vulnerability and meaning. - :vartype description: str - :ivar recommendation_type_id: Recommendation-type GUID. - :vartype recommendation_type_id: str - :ivar detected_by: Name of the organization that made the recommendation. - :vartype detected_by: str - :ivar remediation_steps: Recommended steps for remediation. - :vartype remediation_steps: str - :ivar reported_severity: Assessed recommendation severity. Possible values include: - "Informational", "Low", "Medium", "High". - :vartype reported_severity: str or ~azure.mgmt.security.models.ReportedSeverity - :ivar healthy_devices: Number of healthy devices within the IoT Security solution. - :vartype healthy_devices: int - :ivar unhealthy_device_count: Number of unhealthy devices within the IoT Security solution. - :vartype unhealthy_device_count: int - :ivar log_analytics_query: Log analytics query for getting the list of affected devices/alerts. - :vartype log_analytics_query: str + :param virtual_machines: Required. Configurations for Microsoft.Compute/virtualMachines + resource type. + :type virtual_machines: list[~azure.mgmt.security.models.JitNetworkAccessPolicyVirtualMachine] + :param requests: + :type requests: list[~azure.mgmt.security.models.JitNetworkAccessRequest] + :ivar provisioning_state: Gets the provisioning state of the Just-in-Time policy. + :vartype provisioning_state: str """ _validation = { + 'location': {'readonly': True}, 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'recommendation_display_name': {'readonly': True}, - 'description': {'readonly': True}, - 'recommendation_type_id': {'readonly': True}, - 'detected_by': {'readonly': True}, - 'remediation_steps': {'readonly': True}, - 'reported_severity': {'readonly': True}, - 'healthy_devices': {'readonly': True}, - 'unhealthy_device_count': {'readonly': True}, - 'log_analytics_query': {'readonly': True}, + 'virtual_machines': {'required': True}, + 'provisioning_state': {'readonly': True}, } _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, - 'recommendation_name': {'key': 'properties.recommendationName', 'type': 'str'}, - 'recommendation_display_name': {'key': 'properties.recommendationDisplayName', 'type': 'str'}, - 'description': {'key': 'properties.description', 'type': 'str'}, - 'recommendation_type_id': {'key': 'properties.recommendationTypeId', 'type': 'str'}, - 'detected_by': {'key': 'properties.detectedBy', 'type': 'str'}, - 'remediation_steps': {'key': 'properties.remediationSteps', 'type': 'str'}, - 'reported_severity': {'key': 'properties.reportedSeverity', 'type': 'str'}, - 'healthy_devices': {'key': 'properties.healthyDevices', 'type': 'int'}, - 'unhealthy_device_count': {'key': 'properties.unhealthyDeviceCount', 'type': 'int'}, - 'log_analytics_query': {'key': 'properties.logAnalyticsQuery', 'type': 'str'}, + 'virtual_machines': {'key': 'properties.virtualMachines', 'type': '[JitNetworkAccessPolicyVirtualMachine]'}, + 'requests': {'key': 'properties.requests', 'type': '[JitNetworkAccessRequest]'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, } def __init__( self, *, - tags: Optional[Dict[str, str]] = None, - recommendation_name: Optional[str] = None, + virtual_machines: List["JitNetworkAccessPolicyVirtualMachine"], + kind: Optional[str] = None, + requests: Optional[List["JitNetworkAccessRequest"]] = None, **kwargs ): - super(IoTSecurityAggregatedRecommendation, self).__init__(tags=tags, **kwargs) - self.tags = tags - self.recommendation_name = recommendation_name - self.recommendation_display_name = None - self.description = None - self.recommendation_type_id = None - self.detected_by = None - self.remediation_steps = None - self.reported_severity = None - self.healthy_devices = None - self.unhealthy_device_count = None - self.log_analytics_query = None + super(JitNetworkAccessPolicy, self).__init__(kind=kind, **kwargs) + self.location = None + self.kind = kind + self.virtual_machines = virtual_machines + self.requests = requests + self.provisioning_state = None + self.location = None self.id = None self.name = None self.type = None - self.recommendation_name = recommendation_name - self.recommendation_display_name = None - self.description = None - self.recommendation_type_id = None - self.detected_by = None - self.remediation_steps = None - self.reported_severity = None - self.healthy_devices = None - self.unhealthy_device_count = None - self.log_analytics_query = None - + self.virtual_machines = virtual_machines + self.requests = requests + self.provisioning_state = None + self.kind = kind + self.id = None + self.name = None + self.type = None + self.virtual_machines = virtual_machines + self.requests = requests + self.provisioning_state = None -class IoTSecurityAggregatedRecommendationList(msrest.serialization.Model): - """List of IoT Security solution aggregated recommendations. - Variables are only populated by the server, and will be ignored when sending a request. +class JitNetworkAccessPolicyInitiatePort(msrest.serialization.Model): + """JitNetworkAccessPolicyInitiatePort. All required parameters must be populated in order to send to Azure. - :param value: Required. List of aggregated recommendations data. - :type value: list[~azure.mgmt.security.models.IoTSecurityAggregatedRecommendation] - :ivar next_link: When there is too much alert data for one page, use this URI to fetch the next - page. - :vartype next_link: str + :param number: Required. + :type number: int + :param allowed_source_address_prefix: Source of the allowed traffic. If omitted, the request + will be for the source IP address of the initiate request. + :type allowed_source_address_prefix: str + :param end_time_utc: Required. The time to close the request in UTC. + :type end_time_utc: ~datetime.datetime """ _validation = { - 'value': {'required': True}, - 'next_link': {'readonly': True}, + 'number': {'required': True, 'maximum': 65535, 'minimum': 0}, + 'end_time_utc': {'required': True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[IoTSecurityAggregatedRecommendation]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'number': {'key': 'number', 'type': 'int'}, + 'allowed_source_address_prefix': {'key': 'allowedSourceAddressPrefix', 'type': 'str'}, + 'end_time_utc': {'key': 'endTimeUtc', 'type': 'iso-8601'}, } def __init__( self, *, - value: List["IoTSecurityAggregatedRecommendation"], - **kwargs + number: int, + end_time_utc: datetime.datetime, + allowed_source_address_prefix: Optional[str] = None, + **kwargs ): - super(IoTSecurityAggregatedRecommendationList, self).__init__(**kwargs) - self.value = value - self.next_link = None + super(JitNetworkAccessPolicyInitiatePort, self).__init__(**kwargs) + self.number = number + self.allowed_source_address_prefix = allowed_source_address_prefix + self.end_time_utc = end_time_utc -class IoTSecurityAlertedDevice(msrest.serialization.Model): - """Statistical information about the number of alerts per device during last set number of days. +class JitNetworkAccessPolicyInitiateRequest(msrest.serialization.Model): + """JitNetworkAccessPolicyInitiateRequest. - 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 device_id: Device identifier. - :vartype device_id: str - :ivar alerts_count: Number of alerts raised for this device. - :vartype alerts_count: int + :param virtual_machines: Required. A list of virtual machines & ports to open access for. + :type virtual_machines: + list[~azure.mgmt.security.models.JitNetworkAccessPolicyInitiateVirtualMachine] + :param justification: The justification for making the initiate request. + :type justification: str """ _validation = { - 'device_id': {'readonly': True}, - 'alerts_count': {'readonly': True}, + 'virtual_machines': {'required': True}, } _attribute_map = { - 'device_id': {'key': 'deviceId', 'type': 'str'}, - 'alerts_count': {'key': 'alertsCount', 'type': 'int'}, + 'virtual_machines': {'key': 'virtualMachines', 'type': '[JitNetworkAccessPolicyInitiateVirtualMachine]'}, + 'justification': {'key': 'justification', 'type': 'str'}, } def __init__( self, + *, + virtual_machines: List["JitNetworkAccessPolicyInitiateVirtualMachine"], + justification: Optional[str] = None, **kwargs ): - super(IoTSecurityAlertedDevice, self).__init__(**kwargs) - self.device_id = None - self.alerts_count = None + super(JitNetworkAccessPolicyInitiateRequest, self).__init__(**kwargs) + self.virtual_machines = virtual_machines + self.justification = justification -class IoTSecurityDeviceAlert(msrest.serialization.Model): - """Statistical information about the number of alerts per alert type during last set number of days. +class JitNetworkAccessPolicyInitiateVirtualMachine(msrest.serialization.Model): + """JitNetworkAccessPolicyInitiateVirtualMachine. - 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 alert_display_name: Display name of the alert. - :vartype alert_display_name: str - :ivar reported_severity: Assessed Alert severity. Possible values include: "Informational", - "Low", "Medium", "High". - :vartype reported_severity: str or ~azure.mgmt.security.models.ReportedSeverity - :ivar alerts_count: Number of alerts raised for this alert type. - :vartype alerts_count: int + :param id: Required. Resource ID of the virtual machine that is linked to this policy. + :type id: str + :param ports: Required. The ports to open for the resource with the ``id``. + :type ports: list[~azure.mgmt.security.models.JitNetworkAccessPolicyInitiatePort] """ _validation = { - 'alert_display_name': {'readonly': True}, - 'reported_severity': {'readonly': True}, - 'alerts_count': {'readonly': True}, + 'id': {'required': True}, + 'ports': {'required': True}, } _attribute_map = { - 'alert_display_name': {'key': 'alertDisplayName', 'type': 'str'}, - 'reported_severity': {'key': 'reportedSeverity', 'type': 'str'}, - 'alerts_count': {'key': 'alertsCount', 'type': 'int'}, + 'id': {'key': 'id', 'type': 'str'}, + 'ports': {'key': 'ports', 'type': '[JitNetworkAccessPolicyInitiatePort]'}, } def __init__( self, + *, + id: str, + ports: List["JitNetworkAccessPolicyInitiatePort"], **kwargs ): - super(IoTSecurityDeviceAlert, self).__init__(**kwargs) - self.alert_display_name = None - self.reported_severity = None - self.alerts_count = None + super(JitNetworkAccessPolicyInitiateVirtualMachine, self).__init__(**kwargs) + self.id = id + self.ports = ports -class IoTSecurityDeviceRecommendation(msrest.serialization.Model): - """Statistical information about the number of recommendations per device, per recommendation type. +class JitNetworkAccessPolicyVirtualMachine(msrest.serialization.Model): + """JitNetworkAccessPolicyVirtualMachine. - 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 recommendation_display_name: Display name of the recommendation. - :vartype recommendation_display_name: str - :ivar reported_severity: Assessed recommendation severity. Possible values include: - "Informational", "Low", "Medium", "High". - :vartype reported_severity: str or ~azure.mgmt.security.models.ReportedSeverity - :ivar devices_count: Number of devices with this recommendation. - :vartype devices_count: int + :param id: Required. Resource ID of the virtual machine that is linked to this policy. + :type id: str + :param ports: Required. Port configurations for the virtual machine. + :type ports: list[~azure.mgmt.security.models.JitNetworkAccessPortRule] + :param public_ip_address: Public IP address of the Azure Firewall that is linked to this + policy, if applicable. + :type public_ip_address: str """ _validation = { - 'recommendation_display_name': {'readonly': True}, - 'reported_severity': {'readonly': True}, - 'devices_count': {'readonly': True}, + 'id': {'required': True}, + 'ports': {'required': True}, } _attribute_map = { - 'recommendation_display_name': {'key': 'recommendationDisplayName', 'type': 'str'}, - 'reported_severity': {'key': 'reportedSeverity', 'type': 'str'}, - 'devices_count': {'key': 'devicesCount', 'type': 'int'}, + 'id': {'key': 'id', 'type': 'str'}, + 'ports': {'key': 'ports', 'type': '[JitNetworkAccessPortRule]'}, + 'public_ip_address': {'key': 'publicIpAddress', 'type': 'str'}, } def __init__( self, + *, + id: str, + ports: List["JitNetworkAccessPortRule"], + public_ip_address: Optional[str] = None, **kwargs ): - super(IoTSecurityDeviceRecommendation, self).__init__(**kwargs) - self.recommendation_display_name = None - self.reported_severity = None - self.devices_count = None + super(JitNetworkAccessPolicyVirtualMachine, self).__init__(**kwargs) + self.id = id + self.ports = ports + self.public_ip_address = public_ip_address -class IoTSecuritySolutionAnalyticsModel(Resource): - """Security analytics of your IoT Security solution. +class JitNetworkAccessPortRule(msrest.serialization.Model): + """JitNetworkAccessPortRule. - 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: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar metrics: Security analytics of your IoT Security solution. - :vartype metrics: ~azure.mgmt.security.models.IoTSeverityMetrics - :ivar unhealthy_device_count: Number of unhealthy devices within your IoT Security solution. - :vartype unhealthy_device_count: int - :ivar devices_metrics: List of device metrics by the aggregation date. - :vartype devices_metrics: - list[~azure.mgmt.security.models.IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem] - :param top_alerted_devices: List of the 3 devices with the most alerts. - :type top_alerted_devices: list[~azure.mgmt.security.models.IoTSecurityAlertedDevice] - :param most_prevalent_device_alerts: List of the 3 most prevalent device alerts. - :type most_prevalent_device_alerts: list[~azure.mgmt.security.models.IoTSecurityDeviceAlert] - :param most_prevalent_device_recommendations: List of the 3 most prevalent device - recommendations. - :type most_prevalent_device_recommendations: - list[~azure.mgmt.security.models.IoTSecurityDeviceRecommendation] + :param number: Required. + :type number: int + :param protocol: Required. Possible values include: "TCP", "UDP", "*". + :type protocol: str or ~azure.mgmt.security.models.ProtocolEnum + :param allowed_source_address_prefix: Mutually exclusive with the + "allowedSourceAddressPrefixes" parameter. Should be an IP address or CIDR, for example + "192.168.0.3" or "192.168.0.0/16". + :type allowed_source_address_prefix: str + :param allowed_source_address_prefixes: Mutually exclusive with the + "allowedSourceAddressPrefix" parameter. + :type allowed_source_address_prefixes: list[str] + :param max_request_access_duration: Required. Maximum duration requests can be made for. In ISO + 8601 duration format. Minimum 5 minutes, maximum 1 day. + :type max_request_access_duration: str """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'metrics': {'readonly': True}, - 'unhealthy_device_count': {'readonly': True}, - 'devices_metrics': {'readonly': True}, + 'number': {'required': True, 'maximum': 65535, 'minimum': 0}, + 'protocol': {'required': True}, + 'max_request_access_duration': {'required': True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'metrics': {'key': 'properties.metrics', 'type': 'IoTSeverityMetrics'}, - 'unhealthy_device_count': {'key': 'properties.unhealthyDeviceCount', 'type': 'int'}, - 'devices_metrics': {'key': 'properties.devicesMetrics', 'type': '[IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem]'}, - 'top_alerted_devices': {'key': 'properties.topAlertedDevices', 'type': '[IoTSecurityAlertedDevice]'}, - 'most_prevalent_device_alerts': {'key': 'properties.mostPrevalentDeviceAlerts', 'type': '[IoTSecurityDeviceAlert]'}, - 'most_prevalent_device_recommendations': {'key': 'properties.mostPrevalentDeviceRecommendations', 'type': '[IoTSecurityDeviceRecommendation]'}, + 'number': {'key': 'number', 'type': 'int'}, + 'protocol': {'key': 'protocol', 'type': 'str'}, + 'allowed_source_address_prefix': {'key': 'allowedSourceAddressPrefix', 'type': 'str'}, + 'allowed_source_address_prefixes': {'key': 'allowedSourceAddressPrefixes', 'type': '[str]'}, + 'max_request_access_duration': {'key': 'maxRequestAccessDuration', 'type': 'str'}, } def __init__( self, *, - top_alerted_devices: Optional[List["IoTSecurityAlertedDevice"]] = None, - most_prevalent_device_alerts: Optional[List["IoTSecurityDeviceAlert"]] = None, - most_prevalent_device_recommendations: Optional[List["IoTSecurityDeviceRecommendation"]] = None, + number: int, + protocol: Union[str, "ProtocolEnum"], + max_request_access_duration: str, + allowed_source_address_prefix: Optional[str] = None, + allowed_source_address_prefixes: Optional[List[str]] = None, **kwargs ): - super(IoTSecuritySolutionAnalyticsModel, self).__init__(**kwargs) - self.metrics = None - self.unhealthy_device_count = None - self.devices_metrics = None - self.top_alerted_devices = top_alerted_devices - self.most_prevalent_device_alerts = most_prevalent_device_alerts - self.most_prevalent_device_recommendations = most_prevalent_device_recommendations - + super(JitNetworkAccessPortRule, self).__init__(**kwargs) + self.number = number + self.protocol = protocol + self.allowed_source_address_prefix = allowed_source_address_prefix + self.allowed_source_address_prefixes = allowed_source_address_prefixes + self.max_request_access_duration = max_request_access_duration -class IoTSecuritySolutionAnalyticsModelList(msrest.serialization.Model): - """List of Security analytics of your IoT Security solution. - Variables are only populated by the server, and will be ignored when sending a request. +class JitNetworkAccessRequest(msrest.serialization.Model): + """JitNetworkAccessRequest. All required parameters must be populated in order to send to Azure. - :param value: Required. List of Security analytics of your IoT Security solution. - :type value: list[~azure.mgmt.security.models.IoTSecuritySolutionAnalyticsModel] - :ivar next_link: When there is too much alert data for one page, use this URI to fetch the next - page. - :vartype next_link: str + :param virtual_machines: Required. + :type virtual_machines: list[~azure.mgmt.security.models.JitNetworkAccessRequestVirtualMachine] + :param start_time_utc: Required. The start time of the request in UTC. + :type start_time_utc: ~datetime.datetime + :param requestor: Required. The identity of the person who made the request. + :type requestor: str + :param justification: The justification for making the initiate request. + :type justification: str """ _validation = { - 'value': {'required': True}, - 'next_link': {'readonly': True}, + 'virtual_machines': {'required': True}, + 'start_time_utc': {'required': True}, + 'requestor': {'required': True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[IoTSecuritySolutionAnalyticsModel]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'virtual_machines': {'key': 'virtualMachines', 'type': '[JitNetworkAccessRequestVirtualMachine]'}, + 'start_time_utc': {'key': 'startTimeUtc', 'type': 'iso-8601'}, + 'requestor': {'key': 'requestor', 'type': 'str'}, + 'justification': {'key': 'justification', 'type': 'str'}, } def __init__( self, *, - value: List["IoTSecuritySolutionAnalyticsModel"], + virtual_machines: List["JitNetworkAccessRequestVirtualMachine"], + start_time_utc: datetime.datetime, + requestor: str, + justification: Optional[str] = None, **kwargs ): - super(IoTSecuritySolutionAnalyticsModelList, self).__init__(**kwargs) - self.value = value - self.next_link = None + super(JitNetworkAccessRequest, self).__init__(**kwargs) + self.virtual_machines = virtual_machines + self.start_time_utc = start_time_utc + self.requestor = requestor + self.justification = justification -class IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem(msrest.serialization.Model): - """IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem. +class JitNetworkAccessRequestPort(msrest.serialization.Model): + """JitNetworkAccessRequestPort. - :param date: Aggregation of IoT Security solution device alert metrics by date. - :type date: ~datetime.datetime - :param devices_metrics: Device alert count by severity. - :type devices_metrics: ~azure.mgmt.security.models.IoTSeverityMetrics - """ + All required parameters must be populated in order to send to Azure. - _attribute_map = { - 'date': {'key': 'date', 'type': 'iso-8601'}, - 'devices_metrics': {'key': 'devicesMetrics', 'type': 'IoTSeverityMetrics'}, - } - - def __init__( - self, - *, - date: Optional[datetime.datetime] = None, - devices_metrics: Optional["IoTSeverityMetrics"] = None, - **kwargs - ): - super(IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem, self).__init__(**kwargs) - self.date = date - self.devices_metrics = devices_metrics - - -class IoTSecuritySolutionModel(Resource, TagsResource): - """IoT Security solution configuration and resource information. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param tags: A set of tags. Resource tags. - :type tags: dict[str, str] - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :param location: The resource location. - :type location: str - :param workspace: Workspace resource ID. - :type workspace: str - :param display_name: Resource display name. - :type display_name: str - :param status: Status of the IoT Security solution. Possible values include: "Enabled", - "Disabled". Default value: "Enabled". - :type status: str or ~azure.mgmt.security.models.SecuritySolutionStatus - :param export: List of additional options for exporting to workspace data. - :type export: list[str or ~azure.mgmt.security.models.ExportData] - :param disabled_data_sources: Disabled data sources. Disabling these data sources compromises - the system. - :type disabled_data_sources: list[str or ~azure.mgmt.security.models.DataSource] - :param iot_hubs: IoT Hub resource IDs. - :type iot_hubs: list[str] - :param user_defined_resources: Properties of the IoT Security solution's user defined - resources. - :type user_defined_resources: ~azure.mgmt.security.models.UserDefinedResourcesProperties - :ivar auto_discovered_resources: List of resources that were automatically discovered as - relevant to the security solution. - :vartype auto_discovered_resources: list[str] - :param recommendations_configuration: List of the configuration status for each recommendation - type. - :type recommendations_configuration: - list[~azure.mgmt.security.models.RecommendationConfigurationProperties] - :param unmasked_ip_logging_status: Unmasked IP address logging status. Possible values include: - "Disabled", "Enabled". Default value: "Disabled". - :type unmasked_ip_logging_status: str or ~azure.mgmt.security.models.UnmaskedIpLoggingStatus + :param number: Required. + :type number: int + :param allowed_source_address_prefix: Mutually exclusive with the + "allowedSourceAddressPrefixes" parameter. Should be an IP address or CIDR, for example + "192.168.0.3" or "192.168.0.0/16". + :type allowed_source_address_prefix: str + :param allowed_source_address_prefixes: Mutually exclusive with the + "allowedSourceAddressPrefix" parameter. + :type allowed_source_address_prefixes: list[str] + :param end_time_utc: Required. The date & time at which the request ends in UTC. + :type end_time_utc: ~datetime.datetime + :param status: Required. The status of the port. Possible values include: "Revoked", + "Initiated". + :type status: str or ~azure.mgmt.security.models.Status + :param status_reason: Required. A description of why the ``status`` has its value. Possible + values include: "Expired", "UserRequested", "NewerRequestInitiated". + :type status_reason: str or ~azure.mgmt.security.models.StatusReason + :param mapped_port: The port which is mapped to this port's ``number`` in the Azure Firewall, + if applicable. + :type mapped_port: int """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'auto_discovered_resources': {'readonly': True}, + 'number': {'required': True, 'maximum': 65535, 'minimum': 0}, + 'end_time_utc': {'required': True}, + 'status': {'required': True}, + 'status_reason': {'required': True}, } _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'location': {'key': 'location', 'type': 'str'}, - 'workspace': {'key': 'properties.workspace', 'type': 'str'}, - 'display_name': {'key': 'properties.displayName', 'type': 'str'}, - 'status': {'key': 'properties.status', 'type': 'str'}, - 'export': {'key': 'properties.export', 'type': '[str]'}, - 'disabled_data_sources': {'key': 'properties.disabledDataSources', 'type': '[str]'}, - 'iot_hubs': {'key': 'properties.iotHubs', 'type': '[str]'}, - 'user_defined_resources': {'key': 'properties.userDefinedResources', 'type': 'UserDefinedResourcesProperties'}, - 'auto_discovered_resources': {'key': 'properties.autoDiscoveredResources', 'type': '[str]'}, - 'recommendations_configuration': {'key': 'properties.recommendationsConfiguration', 'type': '[RecommendationConfigurationProperties]'}, - 'unmasked_ip_logging_status': {'key': 'properties.unmaskedIpLoggingStatus', 'type': 'str'}, + 'number': {'key': 'number', 'type': 'int'}, + 'allowed_source_address_prefix': {'key': 'allowedSourceAddressPrefix', 'type': 'str'}, + 'allowed_source_address_prefixes': {'key': 'allowedSourceAddressPrefixes', 'type': '[str]'}, + 'end_time_utc': {'key': 'endTimeUtc', 'type': 'iso-8601'}, + 'status': {'key': 'status', 'type': 'str'}, + 'status_reason': {'key': 'statusReason', 'type': 'str'}, + 'mapped_port': {'key': 'mappedPort', 'type': 'int'}, } def __init__( self, *, - tags: Optional[Dict[str, str]] = None, - location: Optional[str] = None, - workspace: Optional[str] = None, - display_name: Optional[str] = None, - status: Optional[Union[str, "SecuritySolutionStatus"]] = "Enabled", - export: Optional[List[Union[str, "ExportData"]]] = None, - disabled_data_sources: Optional[List[Union[str, "DataSource"]]] = None, - iot_hubs: Optional[List[str]] = None, - user_defined_resources: Optional["UserDefinedResourcesProperties"] = None, - recommendations_configuration: Optional[List["RecommendationConfigurationProperties"]] = None, - unmasked_ip_logging_status: Optional[Union[str, "UnmaskedIpLoggingStatus"]] = "Disabled", + number: int, + end_time_utc: datetime.datetime, + status: Union[str, "Status"], + status_reason: Union[str, "StatusReason"], + allowed_source_address_prefix: Optional[str] = None, + allowed_source_address_prefixes: Optional[List[str]] = None, + mapped_port: Optional[int] = None, **kwargs ): - super(IoTSecuritySolutionModel, self).__init__(tags=tags, **kwargs) - self.tags = tags - self.location = location - self.workspace = workspace - self.display_name = display_name - self.status = status - self.export = export - self.disabled_data_sources = disabled_data_sources - self.iot_hubs = iot_hubs - self.user_defined_resources = user_defined_resources - self.auto_discovered_resources = None - self.recommendations_configuration = recommendations_configuration - self.unmasked_ip_logging_status = unmasked_ip_logging_status - self.id = None - self.name = None - self.type = None - self.location = location - self.workspace = workspace - self.display_name = display_name + super(JitNetworkAccessRequestPort, self).__init__(**kwargs) + self.number = number + self.allowed_source_address_prefix = allowed_source_address_prefix + self.allowed_source_address_prefixes = allowed_source_address_prefixes + self.end_time_utc = end_time_utc self.status = status - self.export = export - self.disabled_data_sources = disabled_data_sources - self.iot_hubs = iot_hubs - self.user_defined_resources = user_defined_resources - self.auto_discovered_resources = None - self.recommendations_configuration = recommendations_configuration - self.unmasked_ip_logging_status = unmasked_ip_logging_status - + self.status_reason = status_reason + self.mapped_port = mapped_port -class IoTSecuritySolutionsList(msrest.serialization.Model): - """List of IoT Security solutions. - Variables are only populated by the server, and will be ignored when sending a request. +class JitNetworkAccessRequestVirtualMachine(msrest.serialization.Model): + """JitNetworkAccessRequestVirtualMachine. All required parameters must be populated in order to send to Azure. - :param value: Required. List of IoT Security solutions. - :type value: list[~azure.mgmt.security.models.IoTSecuritySolutionModel] - :ivar next_link: The URI to fetch the next page. - :vartype next_link: str - """ - - _validation = { - 'value': {'required': True}, - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[IoTSecuritySolutionModel]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - *, - value: List["IoTSecuritySolutionModel"], - **kwargs - ): - super(IoTSecuritySolutionsList, self).__init__(**kwargs) - self.value = value - self.next_link = None - - -class IotSensorsList(msrest.serialization.Model): - """List of IoT sensors. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar value: List data. - :vartype value: list[~azure.mgmt.security.models.IotSensorsModel] - """ - - _validation = { - 'value': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[IotSensorsModel]'}, - } - - def __init__( - self, - **kwargs - ): - super(IotSensorsList, self).__init__(**kwargs) - self.value = None - - -class IotSensorsModel(Resource): - """IoT sensor model. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :ivar connectivity_time: Last connectivity time of the IoT sensor. - :vartype connectivity_time: str - :ivar creation_time: Creation time of the IoT sensor. - :vartype creation_time: str - :ivar dynamic_learning: Dynamic mode status of the IoT sensor. - :vartype dynamic_learning: bool - :ivar learning_mode: Learning mode status of the IoT sensor. - :vartype learning_mode: bool - :ivar sensor_status: Status of the IoT sensor. Possible values include: "Ok", "Disconnected", - "Unavailable". - :vartype sensor_status: str or ~azure.mgmt.security.models.SensorStatus - :ivar sensor_version: Version of the IoT sensor. - :vartype sensor_version: str - :param ti_automatic_updates: TI Automatic mode status of the IoT sensor. - :type ti_automatic_updates: bool - :ivar ti_status: TI Status of the IoT sensor. Possible values include: "Ok", "Failed", - "InProgress", "UpdateAvailable". - :vartype ti_status: str or ~azure.mgmt.security.models.TiStatus - :ivar ti_version: TI Version of the IoT sensor. - :vartype ti_version: str - :param zone: Zone of the IoT sensor. - :type zone: str + :param id: Required. Resource ID of the virtual machine that is linked to this policy. + :type id: str + :param ports: Required. The ports that were opened for the virtual machine. + :type ports: list[~azure.mgmt.security.models.JitNetworkAccessRequestPort] """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'connectivity_time': {'readonly': True}, - 'creation_time': {'readonly': True}, - 'dynamic_learning': {'readonly': True}, - 'learning_mode': {'readonly': True}, - 'sensor_status': {'readonly': True}, - 'sensor_version': {'readonly': True}, - 'ti_status': {'readonly': True}, - 'ti_version': {'readonly': True}, + 'id': {'required': True}, + 'ports': {'required': True}, } _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'connectivity_time': {'key': 'properties.connectivityTime', 'type': 'str'}, - 'creation_time': {'key': 'properties.creationTime', 'type': 'str'}, - 'dynamic_learning': {'key': 'properties.dynamicLearning', 'type': 'bool'}, - 'learning_mode': {'key': 'properties.learningMode', 'type': 'bool'}, - 'sensor_status': {'key': 'properties.sensorStatus', 'type': 'str'}, - 'sensor_version': {'key': 'properties.sensorVersion', 'type': 'str'}, - 'ti_automatic_updates': {'key': 'properties.tiAutomaticUpdates', 'type': 'bool'}, - 'ti_status': {'key': 'properties.tiStatus', 'type': 'str'}, - 'ti_version': {'key': 'properties.tiVersion', 'type': 'str'}, - 'zone': {'key': 'properties.zone', 'type': 'str'}, + 'ports': {'key': 'ports', 'type': '[JitNetworkAccessRequestPort]'}, } def __init__( self, *, - ti_automatic_updates: Optional[bool] = None, - zone: Optional[str] = None, + id: str, + ports: List["JitNetworkAccessRequestPort"], **kwargs ): - super(IotSensorsModel, self).__init__(**kwargs) - self.connectivity_time = None - self.creation_time = None - self.dynamic_learning = None - self.learning_mode = None - self.sensor_status = None - self.sensor_version = None - self.ti_automatic_updates = ti_automatic_updates - self.ti_status = None - self.ti_version = None - self.zone = zone - - -class IoTSeverityMetrics(msrest.serialization.Model): - """IoT Security solution analytics severity metrics. - - :param high: Count of high severity alerts/recommendations. - :type high: int - :param medium: Count of medium severity alerts/recommendations. - :type medium: int - :param low: Count of low severity alerts/recommendations. - :type low: int - """ - - _attribute_map = { - 'high': {'key': 'high', 'type': 'int'}, - 'medium': {'key': 'medium', 'type': 'int'}, - 'low': {'key': 'low', 'type': 'int'}, - } + super(JitNetworkAccessRequestVirtualMachine, self).__init__(**kwargs) + self.id = id + self.ports = ports - def __init__( - self, - *, - high: Optional[int] = None, - medium: Optional[int] = None, - low: Optional[int] = None, - **kwargs - ): - super(IoTSeverityMetrics, self).__init__(**kwargs) - self.high = high - self.medium = medium - self.low = low - - -class IotSitesList(msrest.serialization.Model): - """List of IoT sites. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar value: List data. - :vartype value: list[~azure.mgmt.security.models.IotSitesModel] - """ - - _validation = { - 'value': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[IotSitesModel]'}, - } - - def __init__( - self, - **kwargs - ): - super(IotSitesList, self).__init__(**kwargs) - self.value = None - - -class IotSitesModel(Resource): - """IoT site model. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :param display_name: Display name of the IoT site. - :type display_name: str - :param tags: A set of tags. Tags of the IoT site. - :type tags: dict[str, 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'}, - 'display_name': {'key': 'properties.displayName', 'type': 'str'}, - 'tags': {'key': 'properties.tags', 'type': '{str}'}, - } - - def __init__( - self, - *, - display_name: Optional[str] = None, - tags: Optional[Dict[str, str]] = None, - **kwargs - ): - super(IotSitesModel, self).__init__(**kwargs) - self.display_name = display_name - self.tags = tags - - -class IpAddress(msrest.serialization.Model): - """IP Address information. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar v4_address: IPV4 address. - :vartype v4_address: str - :ivar detection_time: Detection time of the ip address. - :vartype detection_time: ~datetime.datetime - :ivar subnet_cidr: Subnet Classless Inter-Domain Routing. - :vartype subnet_cidr: str - :ivar fqdn: Fully qualified domain name. - :vartype fqdn: str - :ivar fqdn_last_lookup_time: FQDN last lookup time. - :vartype fqdn_last_lookup_time: ~datetime.datetime - """ - - _validation = { - 'v4_address': {'readonly': True}, - 'detection_time': {'readonly': True}, - 'subnet_cidr': {'readonly': True}, - 'fqdn': {'readonly': True}, - 'fqdn_last_lookup_time': {'readonly': True}, - } - - _attribute_map = { - 'v4_address': {'key': 'v4Address', 'type': 'str'}, - 'detection_time': {'key': 'detectionTime', 'type': 'iso-8601'}, - 'subnet_cidr': {'key': 'subnetCidr', 'type': 'str'}, - 'fqdn': {'key': 'fqdn', 'type': 'str'}, - 'fqdn_last_lookup_time': {'key': 'fqdnLastLookupTime', 'type': 'iso-8601'}, - } - - def __init__( - self, - **kwargs - ): - super(IpAddress, self).__init__(**kwargs) - self.v4_address = None - self.detection_time = None - self.subnet_cidr = None - self.fqdn = None - self.fqdn_last_lookup_time = None - - -class JitNetworkAccessPoliciesList(msrest.serialization.Model): - """JitNetworkAccessPoliciesList. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param value: - :type value: list[~azure.mgmt.security.models.JitNetworkAccessPolicy] - :ivar next_link: The URI to fetch the next page. - :vartype next_link: str - """ - - _validation = { - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[JitNetworkAccessPolicy]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - *, - value: Optional[List["JitNetworkAccessPolicy"]] = None, - **kwargs - ): - super(JitNetworkAccessPoliciesList, self).__init__(**kwargs) - self.value = value - self.next_link = None - - -class JitNetworkAccessPolicy(Resource, Kind, Location): - """JitNetworkAccessPolicy. - - 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 location: Location where the resource is stored. - :vartype location: str - :param kind: Kind of the resource. - :type kind: str - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :param virtual_machines: Required. Configurations for Microsoft.Compute/virtualMachines - resource type. - :type virtual_machines: list[~azure.mgmt.security.models.JitNetworkAccessPolicyVirtualMachine] - :param requests: - :type requests: list[~azure.mgmt.security.models.JitNetworkAccessRequest] - :ivar provisioning_state: Gets the provisioning state of the Just-in-Time policy. - :vartype provisioning_state: str - """ - - _validation = { - 'location': {'readonly': True}, - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'virtual_machines': {'required': True}, - 'provisioning_state': {'readonly': True}, - } - - _attribute_map = { - 'location': {'key': 'location', 'type': 'str'}, - 'kind': {'key': 'kind', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'virtual_machines': {'key': 'properties.virtualMachines', 'type': '[JitNetworkAccessPolicyVirtualMachine]'}, - 'requests': {'key': 'properties.requests', 'type': '[JitNetworkAccessRequest]'}, - 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, - } - - def __init__( - self, - *, - virtual_machines: List["JitNetworkAccessPolicyVirtualMachine"], - kind: Optional[str] = None, - requests: Optional[List["JitNetworkAccessRequest"]] = None, - **kwargs - ): - super(JitNetworkAccessPolicy, self).__init__(kind=kind, **kwargs) - self.location = None - self.kind = kind - self.virtual_machines = virtual_machines - self.requests = requests - self.provisioning_state = None - self.location = None - self.id = None - self.name = None - self.type = None - self.virtual_machines = virtual_machines - self.requests = requests - self.provisioning_state = None - self.kind = kind - self.id = None - self.name = None - self.type = None - self.virtual_machines = virtual_machines - self.requests = requests - self.provisioning_state = None - - -class JitNetworkAccessPolicyInitiatePort(msrest.serialization.Model): - """JitNetworkAccessPolicyInitiatePort. - - All required parameters must be populated in order to send to Azure. - - :param number: Required. - :type number: int - :param allowed_source_address_prefix: Source of the allowed traffic. If omitted, the request - will be for the source IP address of the initiate request. - :type allowed_source_address_prefix: str - :param end_time_utc: Required. The time to close the request in UTC. - :type end_time_utc: ~datetime.datetime - """ - - _validation = { - 'number': {'required': True, 'maximum': 65535, 'minimum': 0}, - 'end_time_utc': {'required': True}, - } - - _attribute_map = { - 'number': {'key': 'number', 'type': 'int'}, - 'allowed_source_address_prefix': {'key': 'allowedSourceAddressPrefix', 'type': 'str'}, - 'end_time_utc': {'key': 'endTimeUtc', 'type': 'iso-8601'}, - } - - def __init__( - self, - *, - number: int, - end_time_utc: datetime.datetime, - allowed_source_address_prefix: Optional[str] = None, - **kwargs - ): - super(JitNetworkAccessPolicyInitiatePort, self).__init__(**kwargs) - self.number = number - self.allowed_source_address_prefix = allowed_source_address_prefix - self.end_time_utc = end_time_utc - - -class JitNetworkAccessPolicyInitiateRequest(msrest.serialization.Model): - """JitNetworkAccessPolicyInitiateRequest. - - All required parameters must be populated in order to send to Azure. - - :param virtual_machines: Required. A list of virtual machines & ports to open access for. - :type virtual_machines: - list[~azure.mgmt.security.models.JitNetworkAccessPolicyInitiateVirtualMachine] - :param justification: The justification for making the initiate request. - :type justification: str - """ - - _validation = { - 'virtual_machines': {'required': True}, - } - - _attribute_map = { - 'virtual_machines': {'key': 'virtualMachines', 'type': '[JitNetworkAccessPolicyInitiateVirtualMachine]'}, - 'justification': {'key': 'justification', 'type': 'str'}, - } - - def __init__( - self, - *, - virtual_machines: List["JitNetworkAccessPolicyInitiateVirtualMachine"], - justification: Optional[str] = None, - **kwargs - ): - super(JitNetworkAccessPolicyInitiateRequest, self).__init__(**kwargs) - self.virtual_machines = virtual_machines - self.justification = justification - - -class JitNetworkAccessPolicyInitiateVirtualMachine(msrest.serialization.Model): - """JitNetworkAccessPolicyInitiateVirtualMachine. - - All required parameters must be populated in order to send to Azure. - - :param id: Required. Resource ID of the virtual machine that is linked to this policy. - :type id: str - :param ports: Required. The ports to open for the resource with the ``id``. - :type ports: list[~azure.mgmt.security.models.JitNetworkAccessPolicyInitiatePort] - """ - - _validation = { - 'id': {'required': True}, - 'ports': {'required': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'ports': {'key': 'ports', 'type': '[JitNetworkAccessPolicyInitiatePort]'}, - } - - def __init__( - self, - *, - id: str, - ports: List["JitNetworkAccessPolicyInitiatePort"], - **kwargs - ): - super(JitNetworkAccessPolicyInitiateVirtualMachine, self).__init__(**kwargs) - self.id = id - self.ports = ports - - -class JitNetworkAccessPolicyVirtualMachine(msrest.serialization.Model): - """JitNetworkAccessPolicyVirtualMachine. - - All required parameters must be populated in order to send to Azure. - - :param id: Required. Resource ID of the virtual machine that is linked to this policy. - :type id: str - :param ports: Required. Port configurations for the virtual machine. - :type ports: list[~azure.mgmt.security.models.JitNetworkAccessPortRule] - :param public_ip_address: Public IP address of the Azure Firewall that is linked to this - policy, if applicable. - :type public_ip_address: str - """ - - _validation = { - 'id': {'required': True}, - 'ports': {'required': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'ports': {'key': 'ports', 'type': '[JitNetworkAccessPortRule]'}, - 'public_ip_address': {'key': 'publicIpAddress', 'type': 'str'}, - } - - def __init__( - self, - *, - id: str, - ports: List["JitNetworkAccessPortRule"], - public_ip_address: Optional[str] = None, - **kwargs - ): - super(JitNetworkAccessPolicyVirtualMachine, self).__init__(**kwargs) - self.id = id - self.ports = ports - self.public_ip_address = public_ip_address - - -class JitNetworkAccessPortRule(msrest.serialization.Model): - """JitNetworkAccessPortRule. - - All required parameters must be populated in order to send to Azure. - - :param number: Required. - :type number: int - :param protocol: Required. Possible values include: "TCP", "UDP", "*". - :type protocol: str or ~azure.mgmt.security.models.ProtocolEnum - :param allowed_source_address_prefix: Mutually exclusive with the - "allowedSourceAddressPrefixes" parameter. Should be an IP address or CIDR, for example - "192.168.0.3" or "192.168.0.0/16". - :type allowed_source_address_prefix: str - :param allowed_source_address_prefixes: Mutually exclusive with the - "allowedSourceAddressPrefix" parameter. - :type allowed_source_address_prefixes: list[str] - :param max_request_access_duration: Required. Maximum duration requests can be made for. In ISO - 8601 duration format. Minimum 5 minutes, maximum 1 day. - :type max_request_access_duration: str - """ - - _validation = { - 'number': {'required': True, 'maximum': 65535, 'minimum': 0}, - 'protocol': {'required': True}, - 'max_request_access_duration': {'required': True}, - } - - _attribute_map = { - 'number': {'key': 'number', 'type': 'int'}, - 'protocol': {'key': 'protocol', 'type': 'str'}, - 'allowed_source_address_prefix': {'key': 'allowedSourceAddressPrefix', 'type': 'str'}, - 'allowed_source_address_prefixes': {'key': 'allowedSourceAddressPrefixes', 'type': '[str]'}, - 'max_request_access_duration': {'key': 'maxRequestAccessDuration', 'type': 'str'}, - } - - def __init__( - self, - *, - number: int, - protocol: Union[str, "ProtocolEnum"], - max_request_access_duration: str, - allowed_source_address_prefix: Optional[str] = None, - allowed_source_address_prefixes: Optional[List[str]] = None, - **kwargs - ): - super(JitNetworkAccessPortRule, self).__init__(**kwargs) - self.number = number - self.protocol = protocol - self.allowed_source_address_prefix = allowed_source_address_prefix - self.allowed_source_address_prefixes = allowed_source_address_prefixes - self.max_request_access_duration = max_request_access_duration - - -class JitNetworkAccessRequest(msrest.serialization.Model): - """JitNetworkAccessRequest. - - All required parameters must be populated in order to send to Azure. - - :param virtual_machines: Required. - :type virtual_machines: list[~azure.mgmt.security.models.JitNetworkAccessRequestVirtualMachine] - :param start_time_utc: Required. The start time of the request in UTC. - :type start_time_utc: ~datetime.datetime - :param requestor: Required. The identity of the person who made the request. - :type requestor: str - :param justification: The justification for making the initiate request. - :type justification: str - """ - - _validation = { - 'virtual_machines': {'required': True}, - 'start_time_utc': {'required': True}, - 'requestor': {'required': True}, - } - - _attribute_map = { - 'virtual_machines': {'key': 'virtualMachines', 'type': '[JitNetworkAccessRequestVirtualMachine]'}, - 'start_time_utc': {'key': 'startTimeUtc', 'type': 'iso-8601'}, - 'requestor': {'key': 'requestor', 'type': 'str'}, - 'justification': {'key': 'justification', 'type': 'str'}, - } - - def __init__( - self, - *, - virtual_machines: List["JitNetworkAccessRequestVirtualMachine"], - start_time_utc: datetime.datetime, - requestor: str, - justification: Optional[str] = None, - **kwargs - ): - super(JitNetworkAccessRequest, self).__init__(**kwargs) - self.virtual_machines = virtual_machines - self.start_time_utc = start_time_utc - self.requestor = requestor - self.justification = justification - - -class JitNetworkAccessRequestPort(msrest.serialization.Model): - """JitNetworkAccessRequestPort. - - All required parameters must be populated in order to send to Azure. - - :param number: Required. - :type number: int - :param allowed_source_address_prefix: Mutually exclusive with the - "allowedSourceAddressPrefixes" parameter. Should be an IP address or CIDR, for example - "192.168.0.3" or "192.168.0.0/16". - :type allowed_source_address_prefix: str - :param allowed_source_address_prefixes: Mutually exclusive with the - "allowedSourceAddressPrefix" parameter. - :type allowed_source_address_prefixes: list[str] - :param end_time_utc: Required. The date & time at which the request ends in UTC. - :type end_time_utc: ~datetime.datetime - :param status: Required. The status of the port. Possible values include: "Revoked", - "Initiated". - :type status: str or ~azure.mgmt.security.models.Status - :param status_reason: Required. A description of why the ``status`` has its value. Possible - values include: "Expired", "UserRequested", "NewerRequestInitiated". - :type status_reason: str or ~azure.mgmt.security.models.StatusReason - :param mapped_port: The port which is mapped to this port's ``number`` in the Azure Firewall, - if applicable. - :type mapped_port: int - """ - - _validation = { - 'number': {'required': True, 'maximum': 65535, 'minimum': 0}, - 'end_time_utc': {'required': True}, - 'status': {'required': True}, - 'status_reason': {'required': True}, - } - - _attribute_map = { - 'number': {'key': 'number', 'type': 'int'}, - 'allowed_source_address_prefix': {'key': 'allowedSourceAddressPrefix', 'type': 'str'}, - 'allowed_source_address_prefixes': {'key': 'allowedSourceAddressPrefixes', 'type': '[str]'}, - 'end_time_utc': {'key': 'endTimeUtc', 'type': 'iso-8601'}, - 'status': {'key': 'status', 'type': 'str'}, - 'status_reason': {'key': 'statusReason', 'type': 'str'}, - 'mapped_port': {'key': 'mappedPort', 'type': 'int'}, - } - - def __init__( - self, - *, - number: int, - end_time_utc: datetime.datetime, - status: Union[str, "Status"], - status_reason: Union[str, "StatusReason"], - allowed_source_address_prefix: Optional[str] = None, - allowed_source_address_prefixes: Optional[List[str]] = None, - mapped_port: Optional[int] = None, - **kwargs - ): - super(JitNetworkAccessRequestPort, self).__init__(**kwargs) - self.number = number - self.allowed_source_address_prefix = allowed_source_address_prefix - self.allowed_source_address_prefixes = allowed_source_address_prefixes - self.end_time_utc = end_time_utc - self.status = status - self.status_reason = status_reason - self.mapped_port = mapped_port - - -class JitNetworkAccessRequestVirtualMachine(msrest.serialization.Model): - """JitNetworkAccessRequestVirtualMachine. - - All required parameters must be populated in order to send to Azure. - - :param id: Required. Resource ID of the virtual machine that is linked to this policy. - :type id: str - :param ports: Required. The ports that were opened for the virtual machine. - :type ports: list[~azure.mgmt.security.models.JitNetworkAccessRequestPort] - """ - - _validation = { - 'id': {'required': True}, - 'ports': {'required': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'ports': {'key': 'ports', 'type': '[JitNetworkAccessRequestPort]'}, - } - - def __init__( - self, - *, - id: str, - ports: List["JitNetworkAccessRequestPort"], - **kwargs - ): - super(JitNetworkAccessRequestVirtualMachine, self).__init__(**kwargs) - self.id = id - self.ports = ports - - -class LocalUserNotAllowed(AllowlistCustomAlertRule): - """Login by a local user that isn't allowed. Allow list consists of login names to allow. - - 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 display_name: The display name of the custom alert. - :vartype display_name: str - :ivar description: The description of the custom alert. - :vartype description: str - :param is_enabled: Required. Status of the custom alert. - :type is_enabled: bool - :param rule_type: Required. The type of the custom alert rule.Constant filled by server. - :type rule_type: str - :ivar value_type: The value type of the items in the list. Possible values include: "IpCidr", - "String". - :vartype value_type: str or ~azure.mgmt.security.models.ValueType - :param allowlist_values: Required. The values to allow. The format of the values depends on the - rule type. - :type allowlist_values: list[str] - """ - - _validation = { - 'display_name': {'readonly': True}, - 'description': {'readonly': True}, - 'is_enabled': {'required': True}, - 'rule_type': {'required': True}, - 'value_type': {'readonly': True}, - 'allowlist_values': {'required': True}, - } - - _attribute_map = { - 'display_name': {'key': 'displayName', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, - 'rule_type': {'key': 'ruleType', 'type': 'str'}, - 'value_type': {'key': 'valueType', 'type': 'str'}, - 'allowlist_values': {'key': 'allowlistValues', 'type': '[str]'}, - } - - def __init__( - self, - *, - is_enabled: bool, - allowlist_values: List[str], - **kwargs - ): - super(LocalUserNotAllowed, self).__init__(is_enabled=is_enabled, allowlist_values=allowlist_values, **kwargs) - self.rule_type = 'LocalUserNotAllowed' # type: str - - -class LogAnalyticsIdentifier(ResourceIdentifier): - """Represents a Log Analytics workspace scope identifier. - - 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 type: Required. There can be multiple identifiers of different type per alert, this - field specify the identifier type.Constant filled by server. Possible values include: - "AzureResource", "LogAnalytics". - :type type: str or ~azure.mgmt.security.models.ResourceIdentifierType - :ivar workspace_id: The LogAnalytics workspace id that stores this alert. - :vartype workspace_id: str - :ivar workspace_subscription_id: The azure subscription id for the LogAnalytics workspace - storing this alert. - :vartype workspace_subscription_id: str - :ivar workspace_resource_group: The azure resource group for the LogAnalytics workspace storing - this alert. - :vartype workspace_resource_group: str - :ivar agent_id: (optional) The LogAnalytics agent id reporting the event that this alert is - based on. - :vartype agent_id: str - """ - - _validation = { - 'type': {'required': True}, - 'workspace_id': {'readonly': True}, - 'workspace_subscription_id': {'readonly': True, 'pattern': r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'}, - 'workspace_resource_group': {'readonly': True}, - 'agent_id': {'readonly': True}, - } - - _attribute_map = { - 'type': {'key': 'type', 'type': 'str'}, - 'workspace_id': {'key': 'workspaceId', 'type': 'str'}, - 'workspace_subscription_id': {'key': 'workspaceSubscriptionId', 'type': 'str'}, - 'workspace_resource_group': {'key': 'workspaceResourceGroup', 'type': 'str'}, - 'agent_id': {'key': 'agentId', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(LogAnalyticsIdentifier, self).__init__(**kwargs) - self.type = 'LogAnalytics' # type: str - self.workspace_id = None - self.workspace_subscription_id = None - self.workspace_resource_group = None - self.agent_id = None - - -class MacAddress(msrest.serialization.Model): - """MAC Address information. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar address: MAC address. - :vartype address: str - :ivar detection_time: Detection time of the mac address. - :vartype detection_time: ~datetime.datetime - :ivar significance: Indicates whether this is the primary secondary MAC address of the device. - Possible values include: "Primary", "Secondary". - :vartype significance: str or ~azure.mgmt.security.models.MacSignificance - :ivar relation_to_ip_status: Indicates whether the relation of the mac to the ip address is - certain or a guess. Possible values include: "Guess", "Certain". - :vartype relation_to_ip_status: str or ~azure.mgmt.security.models.RelationToIpStatus - """ - - _validation = { - 'address': {'readonly': True}, - 'detection_time': {'readonly': True}, - 'significance': {'readonly': True}, - 'relation_to_ip_status': {'readonly': True}, - } - - _attribute_map = { - 'address': {'key': 'address', 'type': 'str'}, - 'detection_time': {'key': 'detectionTime', 'type': 'iso-8601'}, - 'significance': {'key': 'significance', 'type': 'str'}, - 'relation_to_ip_status': {'key': 'relationToIpStatus', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(MacAddress, self).__init__(**kwargs) - self.address = None - self.detection_time = None - self.significance = None - self.relation_to_ip_status = None - - -class MqttC2DMessagesNotInAllowedRange(TimeWindowCustomAlertRule): - """Number of cloud to device messages (MQTT protocol) is not in allowed range. - - 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 display_name: The display name of the custom alert. - :vartype display_name: str - :ivar description: The description of the custom alert. - :vartype description: str - :param is_enabled: Required. Status of the custom alert. - :type is_enabled: bool - :param rule_type: Required. The type of the custom alert rule.Constant filled by server. - :type rule_type: str - :param min_threshold: Required. The minimum threshold. - :type min_threshold: int - :param max_threshold: Required. The maximum threshold. - :type max_threshold: int - :param time_window_size: Required. The time window size in iso8601 format. - :type time_window_size: ~datetime.timedelta - """ - - _validation = { - 'display_name': {'readonly': True}, - 'description': {'readonly': True}, - 'is_enabled': {'required': True}, - 'rule_type': {'required': True}, - 'min_threshold': {'required': True}, - 'max_threshold': {'required': True}, - 'time_window_size': {'required': True}, - } - - _attribute_map = { - 'display_name': {'key': 'displayName', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, - 'rule_type': {'key': 'ruleType', 'type': 'str'}, - 'min_threshold': {'key': 'minThreshold', 'type': 'int'}, - 'max_threshold': {'key': 'maxThreshold', 'type': 'int'}, - 'time_window_size': {'key': 'timeWindowSize', 'type': 'duration'}, - } - - def __init__( - self, - *, - is_enabled: bool, - min_threshold: int, - max_threshold: int, - time_window_size: datetime.timedelta, - **kwargs - ): - super(MqttC2DMessagesNotInAllowedRange, self).__init__(is_enabled=is_enabled, min_threshold=min_threshold, max_threshold=max_threshold, time_window_size=time_window_size, **kwargs) - self.rule_type = 'MqttC2DMessagesNotInAllowedRange' # type: str - - -class MqttC2DRejectedMessagesNotInAllowedRange(TimeWindowCustomAlertRule): - """Number of rejected cloud to device messages (MQTT protocol) is not in allowed range. - - 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 display_name: The display name of the custom alert. - :vartype display_name: str - :ivar description: The description of the custom alert. - :vartype description: str - :param is_enabled: Required. Status of the custom alert. - :type is_enabled: bool - :param rule_type: Required. The type of the custom alert rule.Constant filled by server. - :type rule_type: str - :param min_threshold: Required. The minimum threshold. - :type min_threshold: int - :param max_threshold: Required. The maximum threshold. - :type max_threshold: int - :param time_window_size: Required. The time window size in iso8601 format. - :type time_window_size: ~datetime.timedelta - """ - - _validation = { - 'display_name': {'readonly': True}, - 'description': {'readonly': True}, - 'is_enabled': {'required': True}, - 'rule_type': {'required': True}, - 'min_threshold': {'required': True}, - 'max_threshold': {'required': True}, - 'time_window_size': {'required': True}, - } - - _attribute_map = { - 'display_name': {'key': 'displayName', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, - 'rule_type': {'key': 'ruleType', 'type': 'str'}, - 'min_threshold': {'key': 'minThreshold', 'type': 'int'}, - 'max_threshold': {'key': 'maxThreshold', 'type': 'int'}, - 'time_window_size': {'key': 'timeWindowSize', 'type': 'duration'}, - } - - def __init__( - self, - *, - is_enabled: bool, - min_threshold: int, - max_threshold: int, - time_window_size: datetime.timedelta, - **kwargs - ): - super(MqttC2DRejectedMessagesNotInAllowedRange, self).__init__(is_enabled=is_enabled, min_threshold=min_threshold, max_threshold=max_threshold, time_window_size=time_window_size, **kwargs) - self.rule_type = 'MqttC2DRejectedMessagesNotInAllowedRange' # type: str - - -class MqttD2CMessagesNotInAllowedRange(TimeWindowCustomAlertRule): - """Number of device to cloud messages (MQTT protocol) is not in allowed range. - - 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 display_name: The display name of the custom alert. - :vartype display_name: str - :ivar description: The description of the custom alert. - :vartype description: str - :param is_enabled: Required. Status of the custom alert. - :type is_enabled: bool - :param rule_type: Required. The type of the custom alert rule.Constant filled by server. - :type rule_type: str - :param min_threshold: Required. The minimum threshold. - :type min_threshold: int - :param max_threshold: Required. The maximum threshold. - :type max_threshold: int - :param time_window_size: Required. The time window size in iso8601 format. - :type time_window_size: ~datetime.timedelta - """ - - _validation = { - 'display_name': {'readonly': True}, - 'description': {'readonly': True}, - 'is_enabled': {'required': True}, - 'rule_type': {'required': True}, - 'min_threshold': {'required': True}, - 'max_threshold': {'required': True}, - 'time_window_size': {'required': True}, - } - - _attribute_map = { - 'display_name': {'key': 'displayName', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, - 'rule_type': {'key': 'ruleType', 'type': 'str'}, - 'min_threshold': {'key': 'minThreshold', 'type': 'int'}, - 'max_threshold': {'key': 'maxThreshold', 'type': 'int'}, - 'time_window_size': {'key': 'timeWindowSize', 'type': 'duration'}, - } - - def __init__( - self, - *, - is_enabled: bool, - min_threshold: int, - max_threshold: int, - time_window_size: datetime.timedelta, - **kwargs - ): - super(MqttD2CMessagesNotInAllowedRange, self).__init__(is_enabled=is_enabled, min_threshold=min_threshold, max_threshold=max_threshold, time_window_size=time_window_size, **kwargs) - self.rule_type = 'MqttD2CMessagesNotInAllowedRange' # type: str - - -class NetworkInterface(msrest.serialization.Model): - """Network interface. - - Variables are only populated by the server, and will be ignored when sending a request. - - :param ip_address: IP Address information. - :type ip_address: ~azure.mgmt.security.models.IpAddress - :param mac_address: MAC Address information. - :type mac_address: ~azure.mgmt.security.models.MacAddress - :ivar vlans: List of device vlans. - :vartype vlans: list[str] - """ - - _validation = { - 'vlans': {'readonly': True}, - } - - _attribute_map = { - 'ip_address': {'key': 'ipAddress', 'type': 'IpAddress'}, - 'mac_address': {'key': 'macAddress', 'type': 'MacAddress'}, - 'vlans': {'key': 'vlans', 'type': '[str]'}, - } - - def __init__( - self, - *, - ip_address: Optional["IpAddress"] = None, - mac_address: Optional["MacAddress"] = None, - **kwargs - ): - super(NetworkInterface, self).__init__(**kwargs) - self.ip_address = ip_address - self.mac_address = mac_address - self.vlans = None - - -class OnPremiseIotSensor(Resource): - """On-premise IoT sensor. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource name. - :vartype name: str - :ivar type: Resource type. - :vartype type: str - :param properties: On-premise IoT sensor properties. - :type properties: object - """ - - _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': 'object'}, - } - - def __init__( - self, - *, - properties: Optional[object] = None, - **kwargs - ): - super(OnPremiseIotSensor, self).__init__(**kwargs) - self.properties = properties - - -class OnPremiseIotSensorsList(msrest.serialization.Model): - """List of on-premise IoT sensors. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar value: List data. - :vartype value: list[~azure.mgmt.security.models.OnPremiseIotSensor] - """ - - _validation = { - 'value': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[OnPremiseIotSensor]'}, - } - - def __init__( - self, - **kwargs - ): - super(OnPremiseIotSensorsList, self).__init__(**kwargs) - self.value = None - - -class OnPremiseResourceDetails(ResourceDetails): - """Details of the On Premise resource that was assessed. - - You probably want to use the sub-classes and not this class directly. Known - sub-classes are: OnPremiseSqlResourceDetails. - - All required parameters must be populated in order to send to Azure. - - :param source: Required. The platform where the assessed resource resides.Constant filled by - server. Possible values include: "Azure", "OnPremise", "OnPremiseSql". - :type source: str or ~azure.mgmt.security.models.Source - :param workspace_id: Required. Azure resource Id of the workspace the machine is attached to. - :type workspace_id: str - :param vmuuid: Required. The unique Id of the machine. - :type vmuuid: str - :param source_computer_id: Required. The oms agent Id installed on the machine. - :type source_computer_id: str - :param machine_name: Required. The name of the machine. - :type machine_name: str - """ - - _validation = { - 'source': {'required': True}, - 'workspace_id': {'required': True}, - 'vmuuid': {'required': True}, - 'source_computer_id': {'required': True}, - 'machine_name': {'required': True}, - } - - _attribute_map = { - 'source': {'key': 'source', 'type': 'str'}, - 'workspace_id': {'key': 'workspaceId', 'type': 'str'}, - 'vmuuid': {'key': 'vmuuid', 'type': 'str'}, - 'source_computer_id': {'key': 'sourceComputerId', 'type': 'str'}, - 'machine_name': {'key': 'machineName', 'type': 'str'}, - } - - _subtype_map = { - 'source': {'OnPremiseSql': 'OnPremiseSqlResourceDetails'} - } - - def __init__( - self, - *, - workspace_id: str, - vmuuid: str, - source_computer_id: str, - machine_name: str, - **kwargs - ): - super(OnPremiseResourceDetails, self).__init__(**kwargs) - self.source = 'OnPremise' # type: str - self.workspace_id = workspace_id - self.vmuuid = vmuuid - self.source_computer_id = source_computer_id - self.machine_name = machine_name - - -class OnPremiseSqlResourceDetails(OnPremiseResourceDetails): - """Details of the On Premise Sql resource that was assessed. - - All required parameters must be populated in order to send to Azure. - - :param source: Required. The platform where the assessed resource resides.Constant filled by - server. Possible values include: "Azure", "OnPremise", "OnPremiseSql". - :type source: str or ~azure.mgmt.security.models.Source - :param workspace_id: Required. Azure resource Id of the workspace the machine is attached to. - :type workspace_id: str - :param vmuuid: Required. The unique Id of the machine. - :type vmuuid: str - :param source_computer_id: Required. The oms agent Id installed on the machine. - :type source_computer_id: str - :param machine_name: Required. The name of the machine. - :type machine_name: str - :param server_name: Required. The Sql server name installed on the machine. - :type server_name: str - :param database_name: Required. The Sql database name installed on the machine. - :type database_name: str - """ - - _validation = { - 'source': {'required': True}, - 'workspace_id': {'required': True}, - 'vmuuid': {'required': True}, - 'source_computer_id': {'required': True}, - 'machine_name': {'required': True}, - 'server_name': {'required': True}, - 'database_name': {'required': True}, - } - - _attribute_map = { - 'source': {'key': 'source', 'type': 'str'}, - 'workspace_id': {'key': 'workspaceId', 'type': 'str'}, - 'vmuuid': {'key': 'vmuuid', 'type': 'str'}, - 'source_computer_id': {'key': 'sourceComputerId', 'type': 'str'}, - 'machine_name': {'key': 'machineName', 'type': 'str'}, - 'server_name': {'key': 'serverName', 'type': 'str'}, - 'database_name': {'key': 'databaseName', 'type': 'str'}, - } - - def __init__( - self, - *, - workspace_id: str, - vmuuid: str, - source_computer_id: str, - machine_name: str, - server_name: str, - database_name: str, - **kwargs - ): - super(OnPremiseSqlResourceDetails, self).__init__(workspace_id=workspace_id, vmuuid=vmuuid, source_computer_id=source_computer_id, machine_name=machine_name, **kwargs) - self.source = 'OnPremiseSql' # type: str - self.server_name = server_name - self.database_name = database_name - - -class Operation(msrest.serialization.Model): - """Possible operation in the REST API of Microsoft.Security. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar name: Name of the operation. - :vartype name: str - :ivar origin: Where the operation is originated. - :vartype origin: str - :param display: Security operation display. - :type display: ~azure.mgmt.security.models.OperationDisplay - """ - - _validation = { - 'name': {'readonly': True}, - 'origin': {'readonly': True}, - } - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'origin': {'key': 'origin', 'type': 'str'}, - 'display': {'key': 'display', 'type': 'OperationDisplay'}, - } - - def __init__( - self, - *, - display: Optional["OperationDisplay"] = None, - **kwargs - ): - super(Operation, self).__init__(**kwargs) - self.name = None - self.origin = None - self.display = display - - -class OperationDisplay(msrest.serialization.Model): - """Security operation display. + +class LocalUserNotAllowed(AllowlistCustomAlertRule): + """Login by a local user that isn't allowed. Allow list consists of login names to allow. Variables are only populated by the server, and will be ignored when sending a request. - :ivar provider: The resource provider for the operation. - :vartype provider: str - :ivar resource: The display name of the resource the operation applies to. - :vartype resource: str - :ivar operation: The display name of the security operation. - :vartype operation: str - :ivar description: The description of the operation. + All required parameters must be populated in order to send to Azure. + + :ivar display_name: The display name of the custom alert. + :vartype display_name: str + :ivar description: The description of the custom alert. :vartype description: str + :param is_enabled: Required. Status of the custom alert. + :type is_enabled: bool + :param rule_type: Required. The type of the custom alert rule.Constant filled by server. + :type rule_type: str + :ivar value_type: The value type of the items in the list. Possible values include: "IpCidr", + "String". + :vartype value_type: str or ~azure.mgmt.security.models.ValueType + :param allowlist_values: Required. The values to allow. The format of the values depends on the + rule type. + :type allowlist_values: list[str] """ _validation = { - 'provider': {'readonly': True}, - 'resource': {'readonly': True}, - 'operation': {'readonly': True}, + 'display_name': {'readonly': True}, 'description': {'readonly': True}, + 'is_enabled': {'required': True}, + 'rule_type': {'required': True}, + 'value_type': {'readonly': True}, + 'allowlist_values': {'required': True}, } _attribute_map = { - 'provider': {'key': 'provider', 'type': 'str'}, - 'resource': {'key': 'resource', 'type': 'str'}, - 'operation': {'key': 'operation', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, 'description': {'key': 'description', 'type': 'str'}, + 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, + 'rule_type': {'key': 'ruleType', 'type': 'str'}, + 'value_type': {'key': 'valueType', 'type': 'str'}, + 'allowlist_values': {'key': 'allowlistValues', 'type': '[str]'}, } def __init__( self, + *, + is_enabled: bool, + allowlist_values: List[str], **kwargs ): - super(OperationDisplay, self).__init__(**kwargs) - self.provider = None - self.resource = None - self.operation = None - self.description = None + super(LocalUserNotAllowed, self).__init__(is_enabled=is_enabled, allowlist_values=allowlist_values, **kwargs) + self.rule_type = 'LocalUserNotAllowed' # type: str -class OperationList(msrest.serialization.Model): - """List of possible operations for Microsoft.Security resource provider. +class LogAnalyticsIdentifier(ResourceIdentifier): + """Represents a Log Analytics workspace scope identifier. Variables are only populated by the server, and will be ignored when sending a request. - :param value: List of Security operations. - :type value: list[~azure.mgmt.security.models.Operation] - :ivar next_link: The URI to fetch the next page. - :vartype next_link: str + All required parameters must be populated in order to send to Azure. + + :param type: Required. There can be multiple identifiers of different type per alert, this + field specify the identifier type.Constant filled by server. Possible values include: + "AzureResource", "LogAnalytics". + :type type: str or ~azure.mgmt.security.models.ResourceIdentifierType + :ivar workspace_id: The LogAnalytics workspace id that stores this alert. + :vartype workspace_id: str + :ivar workspace_subscription_id: The azure subscription id for the LogAnalytics workspace + storing this alert. + :vartype workspace_subscription_id: str + :ivar workspace_resource_group: The azure resource group for the LogAnalytics workspace storing + this alert. + :vartype workspace_resource_group: str + :ivar agent_id: (optional) The LogAnalytics agent id reporting the event that this alert is + based on. + :vartype agent_id: str """ _validation = { - 'next_link': {'readonly': True}, + 'type': {'required': True}, + 'workspace_id': {'readonly': True}, + 'workspace_subscription_id': {'readonly': True, 'pattern': r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'}, + 'workspace_resource_group': {'readonly': True}, + 'agent_id': {'readonly': True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[Operation]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'workspace_id': {'key': 'workspaceId', 'type': 'str'}, + 'workspace_subscription_id': {'key': 'workspaceSubscriptionId', 'type': 'str'}, + 'workspace_resource_group': {'key': 'workspaceResourceGroup', 'type': 'str'}, + 'agent_id': {'key': 'agentId', 'type': 'str'}, } def __init__( self, - *, - value: Optional[List["Operation"]] = None, **kwargs ): - super(OperationList, self).__init__(**kwargs) - self.value = value - self.next_link = None + super(LogAnalyticsIdentifier, self).__init__(**kwargs) + self.type = 'LogAnalytics' # type: str + self.workspace_id = None + self.workspace_subscription_id = None + self.workspace_resource_group = None + self.agent_id = None -class PackageDownloadInfo(msrest.serialization.Model): - """Information on a specific package download. +class MqttC2DMessagesNotInAllowedRange(TimeWindowCustomAlertRule): + """Number of cloud to device messages (MQTT protocol) is not in allowed range. Variables are only populated by the server, and will be ignored when sending a request. - :ivar version: Version number. - :vartype version: str - :ivar link: Download link. - :vartype link: str - :ivar version_kind: Kind of the version. Possible values include: "Latest", "Previous", - "Preview". - :vartype version_kind: str or ~azure.mgmt.security.models.VersionKind + All required parameters must be populated in order to send to Azure. + + :ivar display_name: The display name of the custom alert. + :vartype display_name: str + :ivar description: The description of the custom alert. + :vartype description: str + :param is_enabled: Required. Status of the custom alert. + :type is_enabled: bool + :param rule_type: Required. The type of the custom alert rule.Constant filled by server. + :type rule_type: str + :param min_threshold: Required. The minimum threshold. + :type min_threshold: int + :param max_threshold: Required. The maximum threshold. + :type max_threshold: int + :param time_window_size: Required. The time window size in iso8601 format. + :type time_window_size: ~datetime.timedelta """ _validation = { - 'version': {'readonly': True}, - 'link': {'readonly': True}, - 'version_kind': {'readonly': True}, + 'display_name': {'readonly': True}, + 'description': {'readonly': True}, + 'is_enabled': {'required': True}, + 'rule_type': {'required': True}, + 'min_threshold': {'required': True}, + 'max_threshold': {'required': True}, + 'time_window_size': {'required': True}, } _attribute_map = { - 'version': {'key': 'version', 'type': 'str'}, - 'link': {'key': 'link', 'type': 'str'}, - 'version_kind': {'key': 'versionKind', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, + 'rule_type': {'key': 'ruleType', 'type': 'str'}, + 'min_threshold': {'key': 'minThreshold', 'type': 'int'}, + 'max_threshold': {'key': 'maxThreshold', 'type': 'int'}, + 'time_window_size': {'key': 'timeWindowSize', 'type': 'duration'}, } def __init__( self, + *, + is_enabled: bool, + min_threshold: int, + max_threshold: int, + time_window_size: datetime.timedelta, **kwargs ): - super(PackageDownloadInfo, self).__init__(**kwargs) - self.version = None - self.link = None - self.version_kind = None + super(MqttC2DMessagesNotInAllowedRange, self).__init__(is_enabled=is_enabled, min_threshold=min_threshold, max_threshold=max_threshold, time_window_size=time_window_size, **kwargs) + self.rule_type = 'MqttC2DMessagesNotInAllowedRange' # type: str -class PackageDownloads(msrest.serialization.Model): - """Information about package downloads. +class MqttC2DRejectedMessagesNotInAllowedRange(TimeWindowCustomAlertRule): + """Number of rejected cloud to device messages (MQTT protocol) is not in allowed range. Variables are only populated by the server, and will be ignored when sending a request. - :ivar sensor: Contains all Sensor binary downloads. - :vartype sensor: ~azure.mgmt.security.models.PackageDownloadsSensor - :ivar central_manager: All downloads for Central Manager. - :vartype central_manager: ~azure.mgmt.security.models.PackageDownloadsCentralManager - :ivar threat_intelligence: All downloads for threat intelligence. - :vartype threat_intelligence: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar snmp: SNMP Server file. - :vartype snmp: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar wmi_tool: Used for local configuration export. - :vartype wmi_tool: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar authorized_devices_import_template: Authorized devices import template. - :vartype authorized_devices_import_template: - list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar device_information_update_import_template: Authorized devices import template. - :vartype device_information_update_import_template: - list[~azure.mgmt.security.models.PackageDownloadInfo] + All required parameters must be populated in order to send to Azure. + + :ivar display_name: The display name of the custom alert. + :vartype display_name: str + :ivar description: The description of the custom alert. + :vartype description: str + :param is_enabled: Required. Status of the custom alert. + :type is_enabled: bool + :param rule_type: Required. The type of the custom alert rule.Constant filled by server. + :type rule_type: str + :param min_threshold: Required. The minimum threshold. + :type min_threshold: int + :param max_threshold: Required. The maximum threshold. + :type max_threshold: int + :param time_window_size: Required. The time window size in iso8601 format. + :type time_window_size: ~datetime.timedelta """ _validation = { - 'sensor': {'readonly': True}, - 'central_manager': {'readonly': True}, - 'threat_intelligence': {'readonly': True}, - 'snmp': {'readonly': True}, - 'wmi_tool': {'readonly': True}, - 'authorized_devices_import_template': {'readonly': True}, - 'device_information_update_import_template': {'readonly': True}, + 'display_name': {'readonly': True}, + 'description': {'readonly': True}, + 'is_enabled': {'required': True}, + 'rule_type': {'required': True}, + 'min_threshold': {'required': True}, + 'max_threshold': {'required': True}, + 'time_window_size': {'required': True}, } _attribute_map = { - 'sensor': {'key': 'sensor', 'type': 'PackageDownloadsSensor'}, - 'central_manager': {'key': 'centralManager', 'type': 'PackageDownloadsCentralManager'}, - 'threat_intelligence': {'key': 'threatIntelligence', 'type': '[PackageDownloadInfo]'}, - 'snmp': {'key': 'snmp', 'type': '[PackageDownloadInfo]'}, - 'wmi_tool': {'key': 'wmiTool', 'type': '[PackageDownloadInfo]'}, - 'authorized_devices_import_template': {'key': 'authorizedDevicesImportTemplate', 'type': '[PackageDownloadInfo]'}, - 'device_information_update_import_template': {'key': 'deviceInformationUpdateImportTemplate', 'type': '[PackageDownloadInfo]'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, + 'rule_type': {'key': 'ruleType', 'type': 'str'}, + 'min_threshold': {'key': 'minThreshold', 'type': 'int'}, + 'max_threshold': {'key': 'maxThreshold', 'type': 'int'}, + 'time_window_size': {'key': 'timeWindowSize', 'type': 'duration'}, } def __init__( self, + *, + is_enabled: bool, + min_threshold: int, + max_threshold: int, + time_window_size: datetime.timedelta, **kwargs ): - super(PackageDownloads, self).__init__(**kwargs) - self.sensor = None - self.central_manager = None - self.threat_intelligence = None - self.snmp = None - self.wmi_tool = None - self.authorized_devices_import_template = None - self.device_information_update_import_template = None + super(MqttC2DRejectedMessagesNotInAllowedRange, self).__init__(is_enabled=is_enabled, min_threshold=min_threshold, max_threshold=max_threshold, time_window_size=time_window_size, **kwargs) + self.rule_type = 'MqttC2DRejectedMessagesNotInAllowedRange' # type: str -class PackageDownloadsCentralManager(msrest.serialization.Model): - """All downloads for Central Manager. +class MqttD2CMessagesNotInAllowedRange(TimeWindowCustomAlertRule): + """Number of device to cloud messages (MQTT protocol) is not in allowed range. Variables are only populated by the server, and will be ignored when sending a request. - :ivar full: Contains full package downloads. - :vartype full: ~azure.mgmt.security.models.PackageDownloadsCentralManagerFull - :ivar upgrade: Central Manager upgrade package downloads (on existing installations). - :vartype upgrade: list[~azure.mgmt.security.models.UpgradePackageDownloadInfo] + All required parameters must be populated in order to send to Azure. + + :ivar display_name: The display name of the custom alert. + :vartype display_name: str + :ivar description: The description of the custom alert. + :vartype description: str + :param is_enabled: Required. Status of the custom alert. + :type is_enabled: bool + :param rule_type: Required. The type of the custom alert rule.Constant filled by server. + :type rule_type: str + :param min_threshold: Required. The minimum threshold. + :type min_threshold: int + :param max_threshold: Required. The maximum threshold. + :type max_threshold: int + :param time_window_size: Required. The time window size in iso8601 format. + :type time_window_size: ~datetime.timedelta """ _validation = { - 'full': {'readonly': True}, - 'upgrade': {'readonly': True}, + 'display_name': {'readonly': True}, + 'description': {'readonly': True}, + 'is_enabled': {'required': True}, + 'rule_type': {'required': True}, + 'min_threshold': {'required': True}, + 'max_threshold': {'required': True}, + 'time_window_size': {'required': True}, } _attribute_map = { - 'full': {'key': 'full', 'type': 'PackageDownloadsCentralManagerFull'}, - 'upgrade': {'key': 'upgrade', 'type': '[UpgradePackageDownloadInfo]'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'is_enabled': {'key': 'isEnabled', 'type': 'bool'}, + 'rule_type': {'key': 'ruleType', 'type': 'str'}, + 'min_threshold': {'key': 'minThreshold', 'type': 'int'}, + 'max_threshold': {'key': 'maxThreshold', 'type': 'int'}, + 'time_window_size': {'key': 'timeWindowSize', 'type': 'duration'}, } def __init__( self, + *, + is_enabled: bool, + min_threshold: int, + max_threshold: int, + time_window_size: datetime.timedelta, **kwargs ): - super(PackageDownloadsCentralManager, self).__init__(**kwargs) - self.full = None - self.upgrade = None + super(MqttD2CMessagesNotInAllowedRange, self).__init__(is_enabled=is_enabled, min_threshold=min_threshold, max_threshold=max_threshold, time_window_size=time_window_size, **kwargs) + self.rule_type = 'MqttD2CMessagesNotInAllowedRange' # type: str -class PackageDownloadsCentralManagerFull(msrest.serialization.Model): - """Contains full package downloads. +class OnPremiseResourceDetails(ResourceDetails): + """Details of the On Premise resource that was assessed. - Variables are only populated by the server, and will be ignored when sending a request. + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: OnPremiseSqlResourceDetails. + + All required parameters must be populated in order to send to Azure. - :ivar iso: Contains all ISO full versions of the Central Manager. - :vartype iso: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar ovf: Contains all OVF (virtual machine) full versions of the Central Manager. - :vartype ovf: ~azure.mgmt.security.models.PackageDownloadsCentralManagerFullOvf + :param source: Required. The platform where the assessed resource resides.Constant filled by + server. Possible values include: "Azure", "OnPremise", "OnPremiseSql". + :type source: str or ~azure.mgmt.security.models.Source + :param workspace_id: Required. Azure resource Id of the workspace the machine is attached to. + :type workspace_id: str + :param vmuuid: Required. The unique Id of the machine. + :type vmuuid: str + :param source_computer_id: Required. The oms agent Id installed on the machine. + :type source_computer_id: str + :param machine_name: Required. The name of the machine. + :type machine_name: str """ _validation = { - 'iso': {'readonly': True}, - 'ovf': {'readonly': True}, + 'source': {'required': True}, + 'workspace_id': {'required': True}, + 'vmuuid': {'required': True}, + 'source_computer_id': {'required': True}, + 'machine_name': {'required': True}, + } + + _attribute_map = { + 'source': {'key': 'source', 'type': 'str'}, + 'workspace_id': {'key': 'workspaceId', 'type': 'str'}, + 'vmuuid': {'key': 'vmuuid', 'type': 'str'}, + 'source_computer_id': {'key': 'sourceComputerId', 'type': 'str'}, + 'machine_name': {'key': 'machineName', 'type': 'str'}, } - _attribute_map = { - 'iso': {'key': 'iso', 'type': '[PackageDownloadInfo]'}, - 'ovf': {'key': 'ovf', 'type': 'PackageDownloadsCentralManagerFullOvf'}, + _subtype_map = { + 'source': {'OnPremiseSql': 'OnPremiseSqlResourceDetails'} } def __init__( self, + *, + workspace_id: str, + vmuuid: str, + source_computer_id: str, + machine_name: str, **kwargs ): - super(PackageDownloadsCentralManagerFull, self).__init__(**kwargs) - self.iso = None - self.ovf = None + super(OnPremiseResourceDetails, self).__init__(**kwargs) + self.source = 'OnPremise' # type: str + self.workspace_id = workspace_id + self.vmuuid = vmuuid + self.source_computer_id = source_computer_id + self.machine_name = machine_name -class PackageDownloadsCentralManagerFullOvf(msrest.serialization.Model): - """Contains all OVF (virtual machine) full versions of the Central Manager. +class OnPremiseSqlResourceDetails(OnPremiseResourceDetails): + """Details of the On Premise Sql resource that was assessed. - 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 enterprise: The Enterprise package type. - :vartype enterprise: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar enterprise_high_availability: The EnterpriseHighAvailability package type. - :vartype enterprise_high_availability: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar medium: The Medium package type. - :vartype medium: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar medium_high_availability: The MediumHighAvailability package type. - :vartype medium_high_availability: list[~azure.mgmt.security.models.PackageDownloadInfo] + :param source: Required. The platform where the assessed resource resides.Constant filled by + server. Possible values include: "Azure", "OnPremise", "OnPremiseSql". + :type source: str or ~azure.mgmt.security.models.Source + :param workspace_id: Required. Azure resource Id of the workspace the machine is attached to. + :type workspace_id: str + :param vmuuid: Required. The unique Id of the machine. + :type vmuuid: str + :param source_computer_id: Required. The oms agent Id installed on the machine. + :type source_computer_id: str + :param machine_name: Required. The name of the machine. + :type machine_name: str + :param server_name: Required. The Sql server name installed on the machine. + :type server_name: str + :param database_name: Required. The Sql database name installed on the machine. + :type database_name: str """ _validation = { - 'enterprise': {'readonly': True}, - 'enterprise_high_availability': {'readonly': True}, - 'medium': {'readonly': True}, - 'medium_high_availability': {'readonly': True}, + 'source': {'required': True}, + 'workspace_id': {'required': True}, + 'vmuuid': {'required': True}, + 'source_computer_id': {'required': True}, + 'machine_name': {'required': True}, + 'server_name': {'required': True}, + 'database_name': {'required': True}, } _attribute_map = { - 'enterprise': {'key': 'enterprise', 'type': '[PackageDownloadInfo]'}, - 'enterprise_high_availability': {'key': 'enterpriseHighAvailability', 'type': '[PackageDownloadInfo]'}, - 'medium': {'key': 'medium', 'type': '[PackageDownloadInfo]'}, - 'medium_high_availability': {'key': 'mediumHighAvailability', 'type': '[PackageDownloadInfo]'}, + 'source': {'key': 'source', 'type': 'str'}, + 'workspace_id': {'key': 'workspaceId', 'type': 'str'}, + 'vmuuid': {'key': 'vmuuid', 'type': 'str'}, + 'source_computer_id': {'key': 'sourceComputerId', 'type': 'str'}, + 'machine_name': {'key': 'machineName', 'type': 'str'}, + 'server_name': {'key': 'serverName', 'type': 'str'}, + 'database_name': {'key': 'databaseName', 'type': 'str'}, } def __init__( self, + *, + workspace_id: str, + vmuuid: str, + source_computer_id: str, + machine_name: str, + server_name: str, + database_name: str, **kwargs ): - super(PackageDownloadsCentralManagerFullOvf, self).__init__(**kwargs) - self.enterprise = None - self.enterprise_high_availability = None - self.medium = None - self.medium_high_availability = None + super(OnPremiseSqlResourceDetails, self).__init__(workspace_id=workspace_id, vmuuid=vmuuid, source_computer_id=source_computer_id, machine_name=machine_name, **kwargs) + self.source = 'OnPremiseSql' # type: str + self.server_name = server_name + self.database_name = database_name -class PackageDownloadsSensor(msrest.serialization.Model): - """Contains all Sensor binary downloads. +class Operation(msrest.serialization.Model): + """Possible operation in the REST API of Microsoft.Security. Variables are only populated by the server, and will be ignored when sending a request. - :ivar full: Contains full package downloads. - :vartype full: ~azure.mgmt.security.models.PackageDownloadsSensorFull - :param upgrade: Sensor upgrade package downloads (on existing installations). - :type upgrade: list[~azure.mgmt.security.models.UpgradePackageDownloadInfo] + :ivar name: Name of the operation. + :vartype name: str + :ivar origin: Where the operation is originated. + :vartype origin: str + :param display: Security operation display. + :type display: ~azure.mgmt.security.models.OperationDisplay """ _validation = { - 'full': {'readonly': True}, + 'name': {'readonly': True}, + 'origin': {'readonly': True}, } _attribute_map = { - 'full': {'key': 'full', 'type': 'PackageDownloadsSensorFull'}, - 'upgrade': {'key': 'upgrade', 'type': '[UpgradePackageDownloadInfo]'}, + 'name': {'key': 'name', 'type': 'str'}, + 'origin': {'key': 'origin', 'type': 'str'}, + 'display': {'key': 'display', 'type': 'OperationDisplay'}, } def __init__( self, *, - upgrade: Optional[List["UpgradePackageDownloadInfo"]] = None, + display: Optional["OperationDisplay"] = None, **kwargs ): - super(PackageDownloadsSensor, self).__init__(**kwargs) - self.full = None - self.upgrade = upgrade + super(Operation, self).__init__(**kwargs) + self.name = None + self.origin = None + self.display = display -class PackageDownloadsSensorFull(msrest.serialization.Model): - """Contains full package downloads. +class OperationDisplay(msrest.serialization.Model): + """Security operation display. Variables are only populated by the server, and will be ignored when sending a request. - :ivar iso: Contains all ISO full versions for the sensor. - :vartype iso: list[~azure.mgmt.security.models.PackageDownloadInfo] - :param ovf: Contains all OVF (virtual machine) full versions for the sensor. - :type ovf: ~azure.mgmt.security.models.PackageDownloadsSensorFullOvf + :ivar provider: The resource provider for the operation. + :vartype provider: str + :ivar resource: The display name of the resource the operation applies to. + :vartype resource: str + :ivar operation: The display name of the security operation. + :vartype operation: str + :ivar description: The description of the operation. + :vartype description: str """ _validation = { - 'iso': {'readonly': True}, + 'provider': {'readonly': True}, + 'resource': {'readonly': True}, + 'operation': {'readonly': True}, + 'description': {'readonly': True}, } _attribute_map = { - 'iso': {'key': 'iso', 'type': '[PackageDownloadInfo]'}, - 'ovf': {'key': 'ovf', 'type': 'PackageDownloadsSensorFullOvf'}, + 'provider': {'key': 'provider', 'type': 'str'}, + 'resource': {'key': 'resource', 'type': 'str'}, + 'operation': {'key': 'operation', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, } def __init__( self, - *, - ovf: Optional["PackageDownloadsSensorFullOvf"] = None, **kwargs ): - super(PackageDownloadsSensorFull, self).__init__(**kwargs) - self.iso = None - self.ovf = ovf + super(OperationDisplay, self).__init__(**kwargs) + self.provider = None + self.resource = None + self.operation = None + self.description = None -class PackageDownloadsSensorFullOvf(msrest.serialization.Model): - """Contains all OVF (virtual machine) full versions for the sensor. +class OperationList(msrest.serialization.Model): + """List of possible operations for Microsoft.Security resource provider. Variables are only populated by the server, and will be ignored when sending a request. - :ivar enterprise: Enterprise package type. - :vartype enterprise: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar medium: Medium package type. - :vartype medium: list[~azure.mgmt.security.models.PackageDownloadInfo] - :ivar line: Line package type. - :vartype line: list[~azure.mgmt.security.models.PackageDownloadInfo] + :param value: List of Security operations. + :type value: list[~azure.mgmt.security.models.Operation] + :ivar next_link: The URI to fetch the next page. + :vartype next_link: str """ _validation = { - 'enterprise': {'readonly': True}, - 'medium': {'readonly': True}, - 'line': {'readonly': True}, + 'next_link': {'readonly': True}, } _attribute_map = { - 'enterprise': {'key': 'enterprise', 'type': '[PackageDownloadInfo]'}, - 'medium': {'key': 'medium', 'type': '[PackageDownloadInfo]'}, - 'line': {'key': 'line', 'type': '[PackageDownloadInfo]'}, + 'value': {'key': 'value', 'type': '[Operation]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, } def __init__( self, + *, + value: Optional[List["Operation"]] = None, **kwargs ): - super(PackageDownloadsSensorFullOvf, self).__init__(**kwargs) - self.enterprise = None - self.medium = None - self.line = None + super(OperationList, self).__init__(**kwargs) + self.value = value + self.next_link = None class PathRecommendation(msrest.serialization.Model): @@ -7978,37 +6911,6 @@ def __init__( self.executable = executable -class Protocol(msrest.serialization.Model): - """Protocol data. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar name: Protocol name. - :vartype name: str - :param identifiers: list of protocol identifiers. - :type identifiers: str - """ - - _validation = { - 'name': {'readonly': True}, - } - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'identifiers': {'key': 'identifiers', 'type': 'str'}, - } - - def __init__( - self, - *, - identifiers: Optional[str] = None, - **kwargs - ): - super(Protocol, self).__init__(**kwargs) - self.name = None - self.identifiers = identifiers - - class ProxyServerProperties(msrest.serialization.Model): """For a non-Azure machine that is not connected directly to the internet, specify a proxy server that the non-Azure machine can use. @@ -8546,27 +7448,6 @@ def __init__( self.portal_link = portal_link -class ResetPasswordInput(msrest.serialization.Model): - """Reset password input. - - :param appliance_id: The appliance id of the sensor. - :type appliance_id: str - """ - - _attribute_map = { - 'appliance_id': {'key': 'applianceId', 'type': 'str'}, - } - - def __init__( - self, - *, - appliance_id: Optional[str] = None, - **kwargs - ): - super(ResetPasswordInput, self).__init__(**kwargs) - self.appliance_id = appliance_id - - class Rule(msrest.serialization.Model): """Describes remote addresses that is recommended to communicate with the Azure resource on some (Protocol, Port, Direction). All other remote addresses are recommended to be blocked. @@ -9009,7 +7890,7 @@ class ScopeElement(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :param field: The alert entity type to suppress by. :type field: str """ @@ -9022,7 +7903,7 @@ class ScopeElement(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, field: Optional[str] = None, **kwargs ): @@ -9496,8 +8377,8 @@ class SecurityAssessmentMetadata(Resource): :param remediation_description: Human readable description of what you should do to mitigate this security issue. :type remediation_description: str - :param category: - :type category: list[str or ~azure.mgmt.security.models.Category] + :param categories: + :type categories: list[str or ~azure.mgmt.security.models.Categories] :param severity: The severity level of the assessment. Possible values include: "Low", "Medium", "High". :type severity: str or ~azure.mgmt.security.models.Severity @@ -9534,7 +8415,7 @@ class SecurityAssessmentMetadata(Resource): 'policy_definition_id': {'key': 'properties.policyDefinitionId', 'type': 'str'}, 'description': {'key': 'properties.description', 'type': 'str'}, 'remediation_description': {'key': 'properties.remediationDescription', 'type': 'str'}, - 'category': {'key': 'properties.category', 'type': '[str]'}, + 'categories': {'key': 'properties.categories', 'type': '[str]'}, 'severity': {'key': 'properties.severity', 'type': 'str'}, 'user_impact': {'key': 'properties.userImpact', 'type': 'str'}, 'implementation_effort': {'key': 'properties.implementationEffort', 'type': 'str'}, @@ -9550,7 +8431,7 @@ def __init__( display_name: Optional[str] = None, description: Optional[str] = None, remediation_description: Optional[str] = None, - category: Optional[List[Union[str, "Category"]]] = None, + categories: Optional[List[Union[str, "Categories"]]] = None, severity: Optional[Union[str, "Severity"]] = None, user_impact: Optional[Union[str, "UserImpact"]] = None, implementation_effort: Optional[Union[str, "ImplementationEffort"]] = None, @@ -9565,7 +8446,7 @@ def __init__( self.policy_definition_id = None self.description = description self.remediation_description = remediation_description - self.category = category + self.categories = categories self.severity = severity self.user_impact = user_impact self.implementation_effort = implementation_effort @@ -9661,8 +8542,8 @@ class SecurityAssessmentMetadataProperties(msrest.serialization.Model): :param remediation_description: Human readable description of what you should do to mitigate this security issue. :type remediation_description: str - :param category: - :type category: list[str or ~azure.mgmt.security.models.Category] + :param categories: + :type categories: list[str or ~azure.mgmt.security.models.Categories] :param severity: Required. The severity level of the assessment. Possible values include: "Low", "Medium", "High". :type severity: str or ~azure.mgmt.security.models.Severity @@ -9696,7 +8577,7 @@ class SecurityAssessmentMetadataProperties(msrest.serialization.Model): 'policy_definition_id': {'key': 'policyDefinitionId', 'type': 'str'}, 'description': {'key': 'description', 'type': 'str'}, 'remediation_description': {'key': 'remediationDescription', 'type': 'str'}, - 'category': {'key': 'category', 'type': '[str]'}, + 'categories': {'key': 'categories', 'type': '[str]'}, 'severity': {'key': 'severity', 'type': 'str'}, 'user_impact': {'key': 'userImpact', 'type': 'str'}, 'implementation_effort': {'key': 'implementationEffort', 'type': 'str'}, @@ -9714,7 +8595,7 @@ def __init__( assessment_type: Union[str, "AssessmentType"], description: Optional[str] = None, remediation_description: Optional[str] = None, - category: Optional[List[Union[str, "Category"]]] = None, + categories: Optional[List[Union[str, "Categories"]]] = None, user_impact: Optional[Union[str, "UserImpact"]] = None, implementation_effort: Optional[Union[str, "ImplementationEffort"]] = None, threats: Optional[List[Union[str, "Threats"]]] = None, @@ -9727,7 +8608,7 @@ def __init__( self.policy_definition_id = None self.description = description self.remediation_description = remediation_description - self.category = category + self.categories = categories self.severity = severity self.user_impact = user_impact self.implementation_effort = implementation_effort @@ -10276,7 +9157,7 @@ class SecurityTaskParameters(msrest.serialization.Model): :param additional_properties: Unmatched properties from the message are deserialized to this collection. - :type additional_properties: dict[str, object] + :type additional_properties: dict[str, any] :ivar name: Name of the task type. :vartype name: str """ @@ -10293,7 +9174,7 @@ class SecurityTaskParameters(msrest.serialization.Model): def __init__( self, *, - additional_properties: Optional[Dict[str, object]] = None, + additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(SecurityTaskParameters, self).__init__(**kwargs) @@ -10343,36 +9224,6 @@ def __init__( self.enabled = enabled -class Sensor(msrest.serialization.Model): - """Sensor data. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar name: Sensor name. - :vartype name: str - :ivar zone: Zone Name. - :vartype zone: str - """ - - _validation = { - 'name': {'readonly': True}, - 'zone': {'readonly': True}, - } - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'zone': {'key': 'zone', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(Sensor, self).__init__(**kwargs) - self.name = None - self.zone = None - - class ServerVulnerabilityAssessment(Resource): """Describes the server vulnerability assessment details on a resource. @@ -10557,29 +9408,116 @@ def __init__( self.next_link = None -class Site(msrest.serialization.Model): - """Site data. +class Software(Resource): + """Represents a software data. Variables are only populated by the server, and will be ignored when sending a request. - :ivar display_name: Site display name. - :vartype display_name: str + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param device_id: Unique identifier for the virtual machine in the service. + :type device_id: str + :param os_platform: Platform of the operating system running on the device. + :type os_platform: str + :param vendor: Name of the software vendor. + :type vendor: str + :param software_name: Name of the software product. + :type software_name: str + :param version: Version number of the software product. + :type version: str + :param end_of_support_status: End of support status. Possible values include: "None", + "noLongerSupported", "versionNoLongerSupported", "upcomingNoLongerSupported", + "upcomingVersionNoLongerSupported". + :type end_of_support_status: str or ~azure.mgmt.security.models.EndOfSupportStatus + :param end_of_support_date: The end of support date in case the product is upcoming end of + support. + :type end_of_support_date: str + :param number_of_known_vulnerabilities: Number of weaknesses. + :type number_of_known_vulnerabilities: int + :param first_seen_at: First time that the software was seen in the device. + :type first_seen_at: str """ _validation = { - 'display_name': {'readonly': True}, + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, } _attribute_map = { - 'display_name': {'key': 'displayName', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'device_id': {'key': 'properties.deviceId', 'type': 'str'}, + 'os_platform': {'key': 'properties.osPlatform', 'type': 'str'}, + 'vendor': {'key': 'properties.vendor', 'type': 'str'}, + 'software_name': {'key': 'properties.softwareName', 'type': 'str'}, + 'version': {'key': 'properties.version', 'type': 'str'}, + 'end_of_support_status': {'key': 'properties.endOfSupportStatus', 'type': 'str'}, + 'end_of_support_date': {'key': 'properties.endOfSupportDate', 'type': 'str'}, + 'number_of_known_vulnerabilities': {'key': 'properties.numberOfKnownVulnerabilities', 'type': 'int'}, + 'first_seen_at': {'key': 'properties.firstSeenAt', 'type': 'str'}, + } + + def __init__( + self, + *, + device_id: Optional[str] = None, + os_platform: Optional[str] = None, + vendor: Optional[str] = None, + software_name: Optional[str] = None, + version: Optional[str] = None, + end_of_support_status: Optional[Union[str, "EndOfSupportStatus"]] = None, + end_of_support_date: Optional[str] = None, + number_of_known_vulnerabilities: Optional[int] = None, + first_seen_at: Optional[str] = None, + **kwargs + ): + super(Software, self).__init__(**kwargs) + self.device_id = device_id + self.os_platform = os_platform + self.vendor = vendor + self.software_name = software_name + self.version = version + self.end_of_support_status = end_of_support_status + self.end_of_support_date = end_of_support_date + self.number_of_known_vulnerabilities = number_of_known_vulnerabilities + self.first_seen_at = first_seen_at + + +class SoftwaresList(msrest.serialization.Model): + """Represents the software inventory of the virtual machine. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param value: + :type value: list[~azure.mgmt.security.models.Software] + :ivar next_link: The URI to fetch the next page. + :vartype next_link: str + """ + + _validation = { + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Software]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, } def __init__( self, + *, + value: Optional[List["Software"]] = None, **kwargs ): - super(Site, self).__init__(**kwargs) - self.display_name = None + super(SoftwaresList, self).__init__(**kwargs) + self.value = value + self.next_link = None class SqlServerVulnerabilityProperties(AdditionalData): @@ -10691,6 +9629,54 @@ def __init__( self.all_of = all_of +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.security.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.security.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 TopologyList(msrest.serialization.Model): """TopologyList. @@ -11031,44 +10017,6 @@ def __init__( self.recommendations_configuration = recommendations_configuration -class UpgradePackageDownloadInfo(PackageDownloadInfo): - """Information on a specific package upgrade download. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar version: Version number. - :vartype version: str - :ivar link: Download link. - :vartype link: str - :ivar version_kind: Kind of the version. Possible values include: "Latest", "Previous", - "Preview". - :vartype version_kind: str or ~azure.mgmt.security.models.VersionKind - :ivar from_version: Minimum base version for upgrade. - :vartype from_version: str - """ - - _validation = { - 'version': {'readonly': True}, - 'link': {'readonly': True}, - 'version_kind': {'readonly': True}, - 'from_version': {'readonly': True}, - } - - _attribute_map = { - 'version': {'key': 'version', 'type': 'str'}, - 'link': {'key': 'link', 'type': 'str'}, - 'version_kind': {'key': 'versionKind', 'type': 'str'}, - 'from_version': {'key': 'fromVersion', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(UpgradePackageDownloadInfo, self).__init__(**kwargs) - self.from_version = None - - class UserDefinedResourcesProperties(msrest.serialization.Model): """Properties of the IoT Security solution's user defined resources. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_security_center_enums.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_security_center_enums.py index 40f45a66e675..5a8510226b69 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_security_center_enums.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_security_center_enums.py @@ -53,58 +53,61 @@ class AdaptiveApplicationControlIssue(with_metaclass(_CaseInsensitiveEnumMeta, s EXECUTABLE_VIOLATIONS_AUDITED = "ExecutableViolationsAudited" RULES_VIOLATED_MANUALLY = "RulesViolatedManually" -class AlertIntent(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Kill chain related intent behind the alert. Could contain multiple enum values (separated by - commas) +class AdditionalWorkspaceDataType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Data types sent to workspace. """ - UNKNOWN = "Unknown" - PRE_ATTACK = "PreAttack" - INITIAL_ACCESS = "InitialAccess" - PERSISTENCE = "Persistence" - PRIVILEGE_ESCALATION = "PrivilegeEscalation" - DEFENSE_EVASION = "DefenseEvasion" - CREDENTIAL_ACCESS = "CredentialAccess" - DISCOVERY = "Discovery" - LATERAL_MOVEMENT = "LateralMovement" - EXECUTION = "Execution" - COLLECTION = "Collection" - EXFILTRATION = "Exfiltration" - COMMAND_AND_CONTROL = "CommandAndControl" - IMPACT = "Impact" - PROBING = "Probing" - EXPLOITATION = "Exploitation" + ALERTS = "Alerts" + RAW_EVENTS = "RawEvents" + +class AdditionalWorkspaceType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Workspace type. + """ + + SENTINEL = "Sentinel" class AlertNotifications(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Whether to send security alerts notifications to the security contact """ - ON = "On" #: Get notifications on new alerts. - OFF = "Off" #: Don't get notifications on new alerts. + #: Get notifications on new alerts. + ON = "On" + #: Don't get notifications on new alerts. + OFF = "Off" class AlertSeverity(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """The severity of the alert + """The risk level of the threat that was detected. Learn more: + https://docs.microsoft.com/en-us/azure/security-center/security-center-alerts-overview#how-are-alerts-classified. """ + #: Informational. INFORMATIONAL = "Informational" + #: Low. LOW = "Low" + #: Medium. MEDIUM = "Medium" + #: High. HIGH = "High" class AlertStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The life cycle status of the alert. """ - ACTIVE = "Active" #: An alert which doesn't specify a value is assigned the status 'Active'. - RESOLVED = "Resolved" #: Alert closed after handling. - DISMISSED = "Dismissed" #: Alert dismissed as false positive. + #: An alert which doesn't specify a value is assigned the status 'Active'. + ACTIVE = "Active" + #: Alert closed after handling. + RESOLVED = "Resolved" + #: Alert dismissed as false positive. + DISMISSED = "Dismissed" class AlertsToAdmins(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Whether to send security alerts notifications to subscription admins """ - ON = "On" #: Send notification on new alerts to the subscription's admins. - OFF = "Off" #: Don't send notification on new alerts to the subscription's admins. + #: Send notification on new alerts to the subscription's admins. + ON = "On" + #: Don't send notification on new alerts to the subscription's admins. + OFF = "Off" class AssessedResourceType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Sub-assessment resource type @@ -118,54 +121,77 @@ class AssessmentStatusCode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Programmatic code for the status of the assessment """ - HEALTHY = "Healthy" #: The resource is healthy. - UNHEALTHY = "Unhealthy" #: The resource has a security issue that needs to be addressed. - NOT_APPLICABLE = "NotApplicable" #: Assessment for this resource did not happen. + #: The resource is healthy. + HEALTHY = "Healthy" + #: The resource has a security issue that needs to be addressed. + UNHEALTHY = "Unhealthy" + #: Assessment for this resource did not happen. + NOT_APPLICABLE = "NotApplicable" class AssessmentType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """BuiltIn if the assessment based on built-in Azure Policy definition, Custom if the assessment based on custom Azure Policy definition """ - BUILT_IN = "BuiltIn" #: Azure Security Center managed assessments. - CUSTOM_POLICY = "CustomPolicy" #: User defined policies that are automatically ingested from Azure Policy to Azure Security Center. - CUSTOMER_MANAGED = "CustomerManaged" #: User assessments pushed directly by the user or other third party to Azure Security Center. - VERIFIED_PARTNER = "VerifiedPartner" #: An assessment that was created by a verified 3rd party if the user connected it to ASC. + #: Azure Security Center managed assessments. + BUILT_IN = "BuiltIn" + #: User defined policies that are automatically ingested from Azure Policy to Azure Security + #: Center. + CUSTOM_POLICY = "CustomPolicy" + #: User assessments pushed directly by the user or other third party to Azure Security Center. + CUSTOMER_MANAGED = "CustomerManaged" + #: An assessment that was created by a verified 3rd party if the user connected it to ASC. + VERIFIED_PARTNER = "VerifiedPartner" class AuthenticationProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """State of the multi-cloud connector """ - VALID = "Valid" #: Valid connector. - INVALID = "Invalid" #: Invalid connector. - EXPIRED = "Expired" #: the connection has expired. - INCORRECT_POLICY = "IncorrectPolicy" #: Incorrect policy of the connector. + #: Valid connector. + VALID = "Valid" + #: Invalid connector. + INVALID = "Invalid" + #: the connection has expired. + EXPIRED = "Expired" + #: Incorrect policy of the connector. + INCORRECT_POLICY = "IncorrectPolicy" class AuthenticationType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Connect to your cloud account, for AWS use either account credentials or role-based authentication. For GCP use account organization credentials. """ - AWS_CREDS = "awsCreds" #: AWS cloud account connector user credentials authentication. - AWS_ASSUME_ROLE = "awsAssumeRole" #: AWS account connector assume role authentication. - GCP_CREDENTIALS = "gcpCredentials" #: GCP account connector service to service authentication. + #: AWS cloud account connector user credentials authentication. + AWS_CREDS = "awsCreds" + #: AWS account connector assume role authentication. + AWS_ASSUME_ROLE = "awsAssumeRole" + #: GCP account connector service to service authentication. + GCP_CREDENTIALS = "gcpCredentials" -class AuthorizationState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Authorized state of the device. +class AutoProvision(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Describes what kind of security agent provisioning action to take """ - AUTHORIZED = "Authorized" - UNAUTHORIZED = "Unauthorized" + #: Install missing security agent on VMs automatically. + ON = "On" + #: Do not install security agent on the VMs automatically. + OFF = "Off" -class AutoProvision(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Describes what kind of security agent provisioning action to take +class BundleType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Alert Simulator supported bundles. """ - ON = "On" #: Install missing security agent on VMs automatically. - OFF = "Off" #: Do not install security agent on the VMs automatically. + APP_SERVICES = "AppServices" + DNS = "DNS" + KEY_VAULTS = "KeyVaults" + KUBERNETES_SERVICE = "KubernetesService" + RESOURCE_MANAGER = "ResourceManager" + SQL_SERVERS = "SqlServers" + STORAGE_ACCOUNTS = "StorageAccounts" + VIRTUAL_MACHINES = "VirtualMachines" -class Category(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """The category of resource that is at risk when the assessment is unhealthy +class Categories(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The categories of resource that is at risk when the assessment is unhealthy """ COMPUTE = "Compute" @@ -193,26 +219,24 @@ class ControlType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The type of security control (for example, BuiltIn) """ - BUILT_IN = "BuiltIn" #: Azure Security Center managed assessments. - CUSTOM = "Custom" #: Non Azure Security Center managed assessments. + #: Azure Security Center managed assessments. + BUILT_IN = "BuiltIn" + #: Non Azure Security Center managed assessments. + CUSTOM = "Custom" -class DataSource(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - - TWIN_DATA = "TwinData" #: Devices twin data. - -class DeviceCriticality(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Device criticality. +class CreatedByType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The type of identity that created the resource. """ - IMPORTANT = "Important" - STANDARD = "Standard" + USER = "User" + APPLICATION = "Application" + MANAGED_IDENTITY = "ManagedIdentity" + KEY = "Key" -class DeviceStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Device status. - """ +class DataSource(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - ACTIVE = "Active" - REMOVED = "Removed" + #: Devices twin data. + TWIN_DATA = "TwinData" class Direction(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The rule's direction @@ -221,6 +245,16 @@ class Direction(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): INBOUND = "Inbound" OUTBOUND = "Outbound" +class EndOfSupportStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """End of support status. + """ + + NONE = "None" + NO_LONGER_SUPPORTED = "noLongerSupported" + VERSION_NO_LONGER_SUPPORTED = "versionNoLongerSupported" + UPCOMING_NO_LONGER_SUPPORTED = "upcomingNoLongerSupported" + UPCOMING_VERSION_NO_LONGER_SUPPORTED = "upcomingVersionNoLongerSupported" + class EnforcementMode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The application control policy enforcement/protection mode of the machine group """ @@ -237,7 +271,7 @@ class EnforcementSupport(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): NOT_SUPPORTED = "NotSupported" UNKNOWN = "Unknown" -class Enum15(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class Enum13(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): ACTIVATE = "Activate" DISMISS = "Dismiss" @@ -245,15 +279,17 @@ class Enum15(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): RESOLVE = "Resolve" CLOSE = "Close" -class Enum17(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class Enum15(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): EFFECTIVE = "effective" CUSTOM = "custom" -class Enum3(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class Enum69(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): MCAS = "MCAS" WDATP = "WDATP" + WDATP_EXCLUDE_LINUX_PUBLIC_PREVIEW = "WDATP_EXCLUDE_LINUX_PUBLIC_PREVIEW" + SENTINEL = "Sentinel" class EventSource(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """A valid event source type. @@ -263,20 +299,28 @@ class EventSource(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): SUB_ASSESSMENTS = "SubAssessments" ALERTS = "Alerts" SECURE_SCORES = "SecureScores" + SECURE_SCORES_SNAPSHOT = "SecureScoresSnapshot" SECURE_SCORE_CONTROLS = "SecureScoreControls" + SECURE_SCORE_CONTROLS_SNAPSHOT = "SecureScoreControlsSnapshot" + REGULATORY_COMPLIANCE_ASSESSMENT = "RegulatoryComplianceAssessment" + REGULATORY_COMPLIANCE_ASSESSMENT_SNAPSHOT = "RegulatoryComplianceAssessmentSnapshot" class ExpandControlsEnum(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - DEFINITION = "definition" #: Add definition object for each control. + #: Add definition object for each control. + DEFINITION = "definition" class ExpandEnum(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - LINKS = "links" #: All links associated with an assessment. - METADATA = "metadata" #: Assessment metadata. + #: All links associated with an assessment. + LINKS = "links" + #: Assessment metadata. + METADATA = "metadata" class ExportData(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - RAW_EVENTS = "RawEvents" #: Agent raw events. + #: Agent raw events. + RAW_EVENTS = "RawEvents" class ExternalSecuritySolutionKindEnum(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The kind of the external solution @@ -301,9 +345,12 @@ class HybridComputeProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, st """State of the service principal and its secret """ - VALID = "Valid" #: Valid service principal details. - INVALID = "Invalid" #: Invalid service principal details. - EXPIRED = "Expired" #: the service principal details are expired. + #: Valid service principal details. + VALID = "Valid" + #: Invalid service principal details. + INVALID = "Invalid" + #: the service principal details are expired. + EXPIRED = "Expired" class ImplementationEffort(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The implementation effort required to remediate this assessment @@ -318,60 +365,103 @@ class Intent(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): of Azure Security Center's supported kill chain intents. """ - UNKNOWN = "Unknown" #: Unknown. - PRE_ATTACK = "PreAttack" #: PreAttack could be either an attempt to access a certain resource regardless of a malicious intent, or a failed attempt to gain access to a target system to gather information prior to exploitation. This step is usually detected as an attempt, originating from outside the network, to scan the target system and find a way in. Further details on the PreAttack stage can be read in `MITRE Pre-Att&ck matrix `_. - INITIAL_ACCESS = "InitialAccess" #: InitialAccess is the stage where an attacker manages to get foothold on the attacked resource. - PERSISTENCE = "Persistence" #: Persistence is any access, action, or configuration change to a system that gives a threat actor a persistent presence on that system. - PRIVILEGE_ESCALATION = "PrivilegeEscalation" #: Privilege escalation is the result of actions that allow an adversary to obtain a higher level of permissions on a system or network. - DEFENSE_EVASION = "DefenseEvasion" #: Defense evasion consists of techniques an adversary may use to evade detection or avoid other defenses. - CREDENTIAL_ACCESS = "CredentialAccess" #: Credential access represents techniques resulting in access to or control over system, domain, or service credentials that are used within an enterprise environment. - DISCOVERY = "Discovery" #: Discovery consists of techniques that allow the adversary to gain knowledge about the system and internal network. - LATERAL_MOVEMENT = "LateralMovement" #: Lateral movement consists of techniques that enable an adversary to access and control remote systems on a network and could, but does not necessarily, include execution of tools on remote systems. - EXECUTION = "Execution" #: The execution tactic represents techniques that result in execution of adversary-controlled code on a local or remote system. - COLLECTION = "Collection" #: Collection consists of techniques used to identify and gather information, such as sensitive files, from a target network prior to exfiltration. - EXFILTRATION = "Exfiltration" #: Exfiltration refers to techniques and attributes that result or aid in the adversary removing files and information from a target network. - COMMAND_AND_CONTROL = "CommandAndControl" #: The command and control tactic represents how adversaries communicate with systems under their control within a target network. - IMPACT = "Impact" #: Impact events primarily try to directly reduce the availability or integrity of a system, service, or network; including manipulation of data to impact a business or operational process. - PROBING = "Probing" #: Probing could be either an attempt to access a certain resource regardless of a malicious intent, or a failed attempt to gain access to a target system to gather information prior to exploitation. - EXPLOITATION = "Exploitation" #: Exploitation is the stage where an attacker manages to get a foothold on the attacked resource. This stage is relevant for compute hosts and resources such as user accounts, certificates etc. - -class MacSignificance(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Indicates whether this is the primary secondary MAC address of the device - """ - - PRIMARY = "Primary" - SECONDARY = "Secondary" + #: Unknown. + UNKNOWN = "Unknown" + #: PreAttack could be either an attempt to access a certain resource regardless of a malicious + #: intent, or a failed attempt to gain access to a target system to gather information prior to + #: exploitation. This step is usually detected as an attempt, originating from outside the + #: network, to scan the target system and find a way in. Further details on the PreAttack stage + #: can be read in `MITRE Pre-Att&ck matrix `_. + PRE_ATTACK = "PreAttack" + #: InitialAccess is the stage where an attacker manages to get foothold on the attacked resource. + INITIAL_ACCESS = "InitialAccess" + #: Persistence is any access, action, or configuration change to a system that gives a threat + #: actor a persistent presence on that system. + PERSISTENCE = "Persistence" + #: Privilege escalation is the result of actions that allow an adversary to obtain a higher level + #: of permissions on a system or network. + PRIVILEGE_ESCALATION = "PrivilegeEscalation" + #: Defense evasion consists of techniques an adversary may use to evade detection or avoid other + #: defenses. + DEFENSE_EVASION = "DefenseEvasion" + #: Credential access represents techniques resulting in access to or control over system, domain, + #: or service credentials that are used within an enterprise environment. + CREDENTIAL_ACCESS = "CredentialAccess" + #: Discovery consists of techniques that allow the adversary to gain knowledge about the system + #: and internal network. + DISCOVERY = "Discovery" + #: Lateral movement consists of techniques that enable an adversary to access and control remote + #: systems on a network and could, but does not necessarily, include execution of tools on remote + #: systems. + LATERAL_MOVEMENT = "LateralMovement" + #: The execution tactic represents techniques that result in execution of adversary-controlled + #: code on a local or remote system. + EXECUTION = "Execution" + #: Collection consists of techniques used to identify and gather information, such as sensitive + #: files, from a target network prior to exfiltration. + COLLECTION = "Collection" + #: Exfiltration refers to techniques and attributes that result or aid in the adversary removing + #: files and information from a target network. + EXFILTRATION = "Exfiltration" + #: The command and control tactic represents how adversaries communicate with systems under their + #: control within a target network. + COMMAND_AND_CONTROL = "CommandAndControl" + #: Impact events primarily try to directly reduce the availability or integrity of a system, + #: service, or network; including manipulation of data to impact a business or operational + #: process. + IMPACT = "Impact" + #: Probing could be either an attempt to access a certain resource regardless of a malicious + #: intent, or a failed attempt to gain access to a target system to gather information prior to + #: exploitation. + PROBING = "Probing" + #: Exploitation is the stage where an attacker manages to get a foothold on the attacked resource. + #: This stage is relevant for compute hosts and resources such as user accounts, certificates etc. + EXPLOITATION = "Exploitation" -class ManagementState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Managed state of the device. +class KindEnum(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The kind of alert simulation. """ - MANAGED = "Managed" - UNMANAGED = "Unmanaged" + #: Simulate alerts according to bundles. + BUNDLES = "Bundles" class Operator(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """A valid comparer operator to use. A case-insensitive comparison will be applied for String PropertyType. """ + #: Applies for decimal and non-decimal operands. EQUALS = "Equals" + #: Applies only for decimal operands. GREATER_THAN = "GreaterThan" + #: Applies only for decimal operands. GREATER_THAN_OR_EQUAL_TO = "GreaterThanOrEqualTo" + #: Applies only for decimal operands. LESSER_THAN = "LesserThan" + #: Applies only for decimal operands. LESSER_THAN_OR_EQUAL_TO = "LesserThanOrEqualTo" + #: Applies for decimal and non-decimal operands. NOT_EQUALS = "NotEquals" + #: Applies only for non-decimal operands. CONTAINS = "Contains" + #: Applies only for non-decimal operands. STARTS_WITH = "StartsWith" + #: Applies only for non-decimal operands. ENDS_WITH = "EndsWith" class PermissionProperty(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """A permission detected in the cloud account. """ - AWS_AWS_SECURITY_HUB_READ_ONLY_ACCESS = "AWS::AWSSecurityHubReadOnlyAccess" #: This permission provides read only access to AWS Security Hub resources. - AWS_SECURITY_AUDIT = "AWS::SecurityAudit" #: This permission grants access to read security configuration metadata. - AWS_AMAZON_SSM_AUTOMATION_ROLE = "AWS::AmazonSSMAutomationRole" #: The permission provides for EC2 Automation service to execute activities defined within Automation documents. - GCP_SECURITY_CENTER_ADMIN_VIEWER = "GCP::Security Center Admin Viewer" #: This permission provides read only access to GCP Security Command Center. + #: This permission provides read only access to AWS Security Hub resources. + AWS_AWS_SECURITY_HUB_READ_ONLY_ACCESS = "AWS::AWSSecurityHubReadOnlyAccess" + #: This permission grants access to read security configuration metadata. + AWS_SECURITY_AUDIT = "AWS::SecurityAudit" + #: The permission provides for EC2 Automation service to execute activities defined within + #: Automation documents. + AWS_AMAZON_SSM_AUTOMATION_ROLE = "AWS::AmazonSSMAutomationRole" + #: This permission provides read only access to GCP Security Command Center. + GCP_SECURITY_CENTER_ADMIN_VIEWER = "GCP::Security Center Admin Viewer" class PricingTier(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The pricing tier value. Azure Security Center is provided in two pricing tiers: free and @@ -379,15 +469,10 @@ class PricingTier(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): advanced security capabilities, while the free tier offers basic security features. """ - FREE = "Free" #: Get free Azure security center experience with basic security features. - STANDARD = "Standard" #: Get the standard Azure security center experience with advanced security features. - -class ProgrammingState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Indicates whether this device is programming - """ - - PROGRAMMING_DEVICE = "ProgrammingDevice" - NOT_PROGRAMMING_DEVICE = "NotProgrammingDevice" + #: Get free Azure security center experience with basic security features. + FREE = "Free" + #: Get the standard Azure security center experience with advanced security features. + STANDARD = "Standard" class PropertyType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The data type of the compared operands (string, integer, floating point number or a boolean @@ -413,14 +498,6 @@ class ProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): FAILED = "Failed" UPDATING = "Updating" -class PurdueLevel(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Purdue level of the device. - """ - - PROCESS_CONTROL = "ProcessControl" - SUPERVISORY = "Supervisory" - ENTERPRISE = "Enterprise" - class Rank(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The rank of the sensitivity label. """ @@ -447,18 +524,6 @@ class RecommendationConfigStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, E DISABLED = "Disabled" ENABLED = "Enabled" -class RecommendationSeverity(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """The severity of the recommendation - """ - - UNKNOWN = "Unknown" - NOT_APPLICABLE = "NotApplicable" - HEALTHY = "Healthy" - OFF_BY_POLICY = "OffByPolicy" - LOW = "Low" - MEDIUM = "Medium" - HIGH = "High" - class RecommendationStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The initial recommendation status of the machine group or machine """ @@ -472,29 +537,50 @@ class RecommendationType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The type of IoT Security recommendation. """ - IO_T_ACRAUTHENTICATION = "IoT_ACRAuthentication" #: Authentication schema used for pull an edge module from an ACR repository does not use Service Principal Authentication. - IO_T_AGENT_SENDS_UNUTILIZED_MESSAGES = "IoT_AgentSendsUnutilizedMessages" #: IoT agent message size capacity is currently underutilized, causing an increase in the number of sent messages. Adjust message intervals for better utilization. - IO_T_BASELINE = "IoT_Baseline" #: Identified security related system configuration issues. - IO_T_EDGE_HUB_MEM_OPTIMIZE = "IoT_EdgeHubMemOptimize" #: You can optimize Edge Hub memory usage by turning off protocol heads for any protocols not used by Edge modules in your solution. - IO_T_EDGE_LOGGING_OPTIONS = "IoT_EdgeLoggingOptions" #: Logging is disabled for this edge module. - IO_T_INCONSISTENT_MODULE_SETTINGS = "IoT_InconsistentModuleSettings" #: A minority within a device security group has inconsistent Edge Module settings with the rest of their group. - IO_T_INSTALL_AGENT = "IoT_InstallAgent" #: Install the Azure Security of Things Agent. - IO_T_IPFILTER_DENY_ALL = "IoT_IPFilter_DenyAll" #: IP Filter Configuration should have rules defined for allowed traffic and should deny all other traffic by default. - IO_T_IPFILTER_PERMISSIVE_RULE = "IoT_IPFilter_PermissiveRule" #: An Allow IP Filter rules source IP range is too large. Overly permissive rules might expose your IoT hub to malicious intenders. - IO_T_OPEN_PORTS = "IoT_OpenPorts" #: A listening endpoint was found on the device. - IO_T_PERMISSIVE_FIREWALL_POLICY = "IoT_PermissiveFirewallPolicy" #: An Allowed firewall policy was found (INPUT/OUTPUT). The policy should Deny all traffic by default and define rules to allow necessary communication to/from the device. - IO_T_PERMISSIVE_INPUT_FIREWALL_RULES = "IoT_PermissiveInputFirewallRules" #: A rule in the firewall has been found that contains a permissive pattern for a wide range of IP addresses or Ports. - IO_T_PERMISSIVE_OUTPUT_FIREWALL_RULES = "IoT_PermissiveOutputFirewallRules" #: A rule in the firewall has been found that contains a permissive pattern for a wide range of IP addresses or Ports. - IO_T_PRIVILEGED_DOCKER_OPTIONS = "IoT_PrivilegedDockerOptions" #: Edge module is configured to run in privileged mode, with extensive Linux capabilities or with host-level network access (send/receive data to host machine). - IO_T_SHARED_CREDENTIALS = "IoT_SharedCredentials" #: Same authentication credentials to the IoT Hub used by multiple devices. This could indicate an illegitimate device impersonating a legitimate device. It also exposes the risk of device impersonation by an attacker. - IO_T_VULNERABLE_TLS_CIPHER_SUITE = "IoT_VulnerableTLSCipherSuite" #: Insecure TLS configurations detected. Immediate upgrade recommended. - -class RelationToIpStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Indicates whether the relation of the mac to the ip address is certain or a guess - """ - - GUESS = "Guess" - CERTAIN = "Certain" + #: Authentication schema used for pull an edge module from an ACR repository does not use Service + #: Principal Authentication. + IO_T_ACRAUTHENTICATION = "IoT_ACRAuthentication" + #: IoT agent message size capacity is currently underutilized, causing an increase in the number + #: of sent messages. Adjust message intervals for better utilization. + IO_T_AGENT_SENDS_UNUTILIZED_MESSAGES = "IoT_AgentSendsUnutilizedMessages" + #: Identified security related system configuration issues. + IO_T_BASELINE = "IoT_Baseline" + #: You can optimize Edge Hub memory usage by turning off protocol heads for any protocols not used + #: by Edge modules in your solution. + IO_T_EDGE_HUB_MEM_OPTIMIZE = "IoT_EdgeHubMemOptimize" + #: Logging is disabled for this edge module. + IO_T_EDGE_LOGGING_OPTIONS = "IoT_EdgeLoggingOptions" + #: A minority within a device security group has inconsistent Edge Module settings with the rest + #: of their group. + IO_T_INCONSISTENT_MODULE_SETTINGS = "IoT_InconsistentModuleSettings" + #: Install the Azure Security of Things Agent. + IO_T_INSTALL_AGENT = "IoT_InstallAgent" + #: IP Filter Configuration should have rules defined for allowed traffic and should deny all other + #: traffic by default. + IO_T_IPFILTER_DENY_ALL = "IoT_IPFilter_DenyAll" + #: An Allow IP Filter rules source IP range is too large. Overly permissive rules might expose + #: your IoT hub to malicious intenders. + IO_T_IPFILTER_PERMISSIVE_RULE = "IoT_IPFilter_PermissiveRule" + #: A listening endpoint was found on the device. + IO_T_OPEN_PORTS = "IoT_OpenPorts" + #: An Allowed firewall policy was found (INPUT/OUTPUT). The policy should Deny all traffic by + #: default and define rules to allow necessary communication to/from the device. + IO_T_PERMISSIVE_FIREWALL_POLICY = "IoT_PermissiveFirewallPolicy" + #: A rule in the firewall has been found that contains a permissive pattern for a wide range of IP + #: addresses or Ports. + IO_T_PERMISSIVE_INPUT_FIREWALL_RULES = "IoT_PermissiveInputFirewallRules" + #: A rule in the firewall has been found that contains a permissive pattern for a wide range of IP + #: addresses or Ports. + IO_T_PERMISSIVE_OUTPUT_FIREWALL_RULES = "IoT_PermissiveOutputFirewallRules" + #: Edge module is configured to run in privileged mode, with extensive Linux capabilities or with + #: host-level network access (send/receive data to host machine). + IO_T_PRIVILEGED_DOCKER_OPTIONS = "IoT_PrivilegedDockerOptions" + #: Same authentication credentials to the IoT Hub used by multiple devices. This could indicate an + #: illegitimate device impersonating a legitimate device. It also exposes the risk of device + #: impersonation by an attacker. + IO_T_SHARED_CREDENTIALS = "IoT_SharedCredentials" + #: Insecure TLS configurations detected. Immediate upgrade recommended. + IO_T_VULNERABLE_TLS_CIPHER_SUITE = "IoT_VulnerableTLSCipherSuite" class ReportedSeverity(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Assessed alert severity. @@ -517,20 +603,29 @@ class ResourceStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The status of the resource regarding a single assessment """ - HEALTHY = "Healthy" #: This assessment on the resource is healthy. - NOT_APPLICABLE = "NotApplicable" #: This assessment is not applicable to this resource. - OFF_BY_POLICY = "OffByPolicy" #: This assessment is turned off by policy on this subscription. - NOT_HEALTHY = "NotHealthy" #: This assessment on the resource is not healthy. + #: This assessment on the resource is healthy. + HEALTHY = "Healthy" + #: This assessment is not applicable to this resource. + NOT_APPLICABLE = "NotApplicable" + #: This assessment is turned off by policy on this subscription. + OFF_BY_POLICY = "OffByPolicy" + #: This assessment on the resource is not healthy. + NOT_HEALTHY = "NotHealthy" class RuleSeverity(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The rule severity. """ - HIGH = "High" #: High. - MEDIUM = "Medium" #: Medium. - LOW = "Low" #: Low. - INFORMATIONAL = "Informational" #: Informational. - OBSOLETE = "Obsolete" #: Obsolete. + #: High. + HIGH = "High" + #: Medium. + MEDIUM = "Medium" + #: Low. + LOW = "Low" + #: Informational. + INFORMATIONAL = "Informational" + #: Obsolete. + OBSOLETE = "Obsolete" class RuleState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Possible states of the rule @@ -544,41 +639,47 @@ class RuleStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The rule result status. """ - NON_FINDING = "NonFinding" #: NonFinding. - FINDING = "Finding" #: Finding. - INTERNAL_ERROR = "InternalError" #: InternalError. + #: NonFinding. + NON_FINDING = "NonFinding" + #: Finding. + FINDING = "Finding" + #: InternalError. + INTERNAL_ERROR = "InternalError" class RuleType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The rule type. """ - BINARY = "Binary" #: Binary. - BASELINE_EXPECTED = "BaselineExpected" #: BaselineExpected. - POSITIVE_LIST = "PositiveList" #: PositiveList. - NEGATIVE_LIST = "NegativeList" #: NegativeList. - -class ScanningFunctionality(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Indicates whether the device is a scanner - """ - - SCANNER_DEVICE = "ScannerDevice" - NOT_SCANNER_DEVICE = "NotScannerDevice" + #: Binary. + BINARY = "Binary" + #: BaselineExpected. + BASELINE_EXPECTED = "BaselineExpected" + #: PositiveList. + POSITIVE_LIST = "PositiveList" + #: NegativeList. + NEGATIVE_LIST = "NegativeList" class ScanState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The scan status. """ - FAILED = "Failed" #: Failed. - FAILED_TO_RUN = "FailedToRun" #: FailedToRun. - IN_PROGRESS = "InProgress" #: InProgress. - PASSED = "Passed" #: Passed. + #: Failed. + FAILED = "Failed" + #: FailedToRun. + FAILED_TO_RUN = "FailedToRun" + #: InProgress. + IN_PROGRESS = "InProgress" + #: Passed. + PASSED = "Passed" class ScanTriggerType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The scan trigger type. """ - ON_DEMAND = "OnDemand" #: OnDemand. - RECURRING = "Recurring" #: Recurring. + #: OnDemand. + ON_DEMAND = "OnDemand" + #: Recurring. + RECURRING = "Recurring" class SecurityFamily(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The security family of the discovered solution @@ -596,14 +697,6 @@ class SecuritySolutionStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum) ENABLED = "Enabled" DISABLED = "Disabled" -class SensorStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Status of the IoT sensor - """ - - OK = "Ok" - DISCONNECTED = "Disconnected" - UNAVAILABLE = "Unavailable" - class ServerVulnerabilityAssessmentPropertiesProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The provisioningState of the vulnerability assessment capability on the VM """ @@ -615,11 +708,12 @@ class ServerVulnerabilityAssessmentPropertiesProvisioningState(with_metaclass(_C DEPROVISIONING = "Deprovisioning" class SettingKind(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """the kind of the settings string (DataExportSettings) + """the kind of the settings string """ DATA_EXPORT_SETTINGS = "DataExportSettings" ALERT_SUPPRESSION_SETTING = "AlertSuppressionSetting" + ALERT_SYNC_SETTINGS = "AlertSyncSettings" class Severity(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The sub-assessment severity level @@ -633,9 +727,12 @@ class Source(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The platform where the assessed resource resides """ - AZURE = "Azure" #: Resource is in Azure. - ON_PREMISE = "OnPremise" #: Resource in an on premise machine connected to Azure cloud. - ON_PREMISE_SQL = "OnPremiseSql" #: SQL Resource in an on premise machine connected to Azure cloud. + #: Resource is in Azure. + AZURE = "Azure" + #: Resource in an on premise machine connected to Azure cloud. + ON_PREMISE = "OnPremise" + #: SQL Resource in an on premise machine connected to Azure cloud. + ON_PREMISE_SQL = "OnPremiseSql" class SourceSystem(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The source type of the machine group @@ -651,10 +748,15 @@ class State(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Aggregative state based on the standard's supported controls states """ - PASSED = "Passed" #: All supported regulatory compliance controls in the given standard have a passed state. - FAILED = "Failed" #: At least one supported regulatory compliance control in the given standard has a state of failed. - SKIPPED = "Skipped" #: All supported regulatory compliance controls in the given standard have a state of skipped. - UNSUPPORTED = "Unsupported" #: No supported regulatory compliance data for the given standard. + #: All supported regulatory compliance controls in the given standard have a passed state. + PASSED = "Passed" + #: At least one supported regulatory compliance control in the given standard has a state of + #: failed. + FAILED = "Failed" + #: All supported regulatory compliance controls in the given standard have a state of skipped. + SKIPPED = "Skipped" + #: No supported regulatory compliance data for the given standard. + UNSUPPORTED = "Unsupported" class Status(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The status of the port @@ -675,9 +777,12 @@ class SubAssessmentStatusCode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum """Programmatic code for the status of the assessment """ - HEALTHY = "Healthy" #: The resource is healthy. - UNHEALTHY = "Unhealthy" #: The resource has a security issue that needs to be addressed. - NOT_APPLICABLE = "NotApplicable" #: Assessment for this resource did not happen. + #: The resource is healthy. + HEALTHY = "Healthy" + #: The resource has a security issue that needs to be addressed. + UNHEALTHY = "Unhealthy" + #: Assessment for this resource did not happen. + NOT_APPLICABLE = "NotApplicable" class Threats(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Threats impact of the assessment @@ -692,15 +797,6 @@ class Threats(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): MISSING_COVERAGE = "missingCoverage" DENIAL_OF_SERVICE = "denialOfService" -class TiStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """TI Status of the IoT sensor - """ - - OK = "Ok" - FAILED = "Failed" - IN_PROGRESS = "InProgress" - UPDATE_AVAILABLE = "UpdateAvailable" - class TransportProtocol(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): TCP = "TCP" @@ -710,8 +806,10 @@ class UnmaskedIpLoggingStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum """Unmasked IP address logging status """ - DISABLED = "Disabled" #: Unmasked IP logging is disabled. - ENABLED = "Enabled" #: Unmasked IP logging is enabled. + #: Unmasked IP logging is disabled. + DISABLED = "Disabled" + #: Unmasked IP logging is enabled. + ENABLED = "Enabled" class UserImpact(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The user impact of the assessment @@ -725,13 +823,7 @@ class ValueType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The value type of the items in the list. """ - IP_CIDR = "IpCidr" #: An IP range in CIDR format (e.g. '192.168.0.1/8'). - STRING = "String" #: Any string value. - -class VersionKind(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Kind of the version - """ - - LATEST = "Latest" - PREVIOUS = "Previous" - PREVIEW = "Preview" + #: An IP range in CIDR format (e.g. '192.168.0.1/8'). + IP_CIDR = "IpCidr" + #: Any string value. + STRING = "String" diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/__init__.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/__init__.py index 1a08490429ea..65df4fa5ef35 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/__init__.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/__init__.py @@ -8,17 +8,12 @@ from ._compliance_results_operations import ComplianceResultsOperations from ._pricings_operations import PricingsOperations -from ._settings_operations import SettingsOperations from ._advanced_threat_protection_operations import AdvancedThreatProtectionOperations from ._device_security_groups_operations import DeviceSecurityGroupsOperations from ._iot_security_solution_operations import IotSecuritySolutionOperations from ._iot_security_solution_analytics_operations import IotSecuritySolutionAnalyticsOperations from ._iot_security_solutions_analytics_aggregated_alert_operations import IotSecuritySolutionsAnalyticsAggregatedAlertOperations from ._iot_security_solutions_analytics_recommendation_operations import IotSecuritySolutionsAnalyticsRecommendationOperations -from ._iot_alert_types_operations import IotAlertTypesOperations -from ._iot_alerts_operations import IotAlertsOperations -from ._iot_recommendation_types_operations import IotRecommendationTypesOperations -from ._iot_recommendations_operations import IotRecommendationsOperations from ._locations_operations import LocationsOperations from ._operations import Operations from ._tasks_operations import TasksOperations @@ -40,7 +35,6 @@ from ._adaptive_network_hardenings_operations import AdaptiveNetworkHardeningsOperations from ._allowed_connections_operations import AllowedConnectionsOperations from ._topology_operations import TopologyOperations -from ._alerts_operations import AlertsOperations from ._jit_network_access_policies_operations import JitNetworkAccessPoliciesOperations from ._discovered_security_solutions_operations import DiscoveredSecuritySolutionsOperations from ._security_solutions_reference_data_operations import SecuritySolutionsReferenceDataOperations @@ -53,28 +47,20 @@ from ._sql_vulnerability_assessment_scans_operations import SqlVulnerabilityAssessmentScansOperations from ._sql_vulnerability_assessment_scan_results_operations import SqlVulnerabilityAssessmentScanResultsOperations from ._sql_vulnerability_assessment_baseline_rules_operations import SqlVulnerabilityAssessmentBaselineRulesOperations -from ._iot_defender_settings_operations import IotDefenderSettingsOperations -from ._iot_sensors_operations import IotSensorsOperations -from ._devices_for_subscription_operations import DevicesForSubscriptionOperations -from ._devices_for_hub_operations import DevicesForHubOperations -from ._device_operations import DeviceOperations -from ._on_premise_iot_sensors_operations import OnPremiseIotSensorsOperations -from ._iot_sites_operations import IotSitesOperations +from ._alerts_operations import AlertsOperations +from ._settings_operations import SettingsOperations +from ._ingestion_settings_operations import IngestionSettingsOperations +from ._software_inventories_operations import SoftwareInventoriesOperations __all__ = [ 'ComplianceResultsOperations', 'PricingsOperations', - 'SettingsOperations', 'AdvancedThreatProtectionOperations', 'DeviceSecurityGroupsOperations', 'IotSecuritySolutionOperations', 'IotSecuritySolutionAnalyticsOperations', 'IotSecuritySolutionsAnalyticsAggregatedAlertOperations', 'IotSecuritySolutionsAnalyticsRecommendationOperations', - 'IotAlertTypesOperations', - 'IotAlertsOperations', - 'IotRecommendationTypesOperations', - 'IotRecommendationsOperations', 'LocationsOperations', 'Operations', 'TasksOperations', @@ -96,7 +82,6 @@ 'AdaptiveNetworkHardeningsOperations', 'AllowedConnectionsOperations', 'TopologyOperations', - 'AlertsOperations', 'JitNetworkAccessPoliciesOperations', 'DiscoveredSecuritySolutionsOperations', 'SecuritySolutionsReferenceDataOperations', @@ -109,11 +94,8 @@ 'SqlVulnerabilityAssessmentScansOperations', 'SqlVulnerabilityAssessmentScanResultsOperations', 'SqlVulnerabilityAssessmentBaselineRulesOperations', - 'IotDefenderSettingsOperations', - 'IotSensorsOperations', - 'DevicesForSubscriptionOperations', - 'DevicesForHubOperations', - 'DeviceOperations', - 'OnPremiseIotSensorsOperations', - 'IotSitesOperations', + 'AlertsOperations', + 'SettingsOperations', + 'IngestionSettingsOperations', + 'SoftwareInventoriesOperations', ] diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_adaptive_application_controls_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_adaptive_application_controls_operations.py index 47aba2c29d54..ff1fdae05480 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_adaptive_application_controls_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_adaptive_application_controls_operations.py @@ -17,7 +17,7 @@ if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Optional, TypeVar, Union + from typing import Any, Callable, Dict, Generic, Optional, TypeVar T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -46,17 +46,17 @@ def __init__(self, client, config, serializer, deserializer): def list( self, - include_path_recommendations=None, # type: Optional[Union[bool, "_models.Enum37"]] - summary=None, # type: Optional[Union[bool, "_models.Enum38"]] + include_path_recommendations=None, # type: Optional[bool] + summary=None, # type: Optional[bool] **kwargs # type: Any ): # type: (...) -> "_models.AdaptiveApplicationControlGroups" """Gets a list of application control machine groups for the subscription. :param include_path_recommendations: Include the policy rules. - :type include_path_recommendations: str or ~azure.mgmt.security.models.Enum37 + :type include_path_recommendations: bool :param summary: Return output in a summarized form. - :type summary: str or ~azure.mgmt.security.models.Enum38 + :type summary: bool :keyword callable cls: A custom type or function that will be passed the direct response :return: AdaptiveApplicationControlGroups, or the result of cls(response) :rtype: ~azure.mgmt.security.models.AdaptiveApplicationControlGroups diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_adaptive_network_hardenings_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_adaptive_network_hardenings_operations.py index ed081c4b27aa..9bb7da3b503f 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_adaptive_network_hardenings_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_adaptive_network_hardenings_operations.py @@ -292,8 +292,8 @@ def begin_enforce( :type body: ~azure.mgmt.security.models.AdaptiveNetworkHardeningEnforceRequest :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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) @@ -326,6 +326,7 @@ def get_long_running_output(pipeline_response): if cls: return cls(pipeline_response, None, {}) + adaptive_network_hardening_enforce_action = "enforce" path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_alerts_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_alerts_operations.py index 62932a6737f0..531b78365081 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_alerts_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_alerts_operations.py @@ -12,13 +12,15 @@ 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 + 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]] @@ -62,7 +64,7 @@ def list( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" def prepare_request(next_link=None): @@ -133,7 +135,7 @@ def list_by_resource_group( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" def prepare_request(next_link=None): @@ -184,7 +186,7 @@ def get_next(next_link=None): ) list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/alerts'} # type: ignore - def list_subscription_level_alerts_by_region( + def list_subscription_level_by_region( self, **kwargs # type: Any ): @@ -202,7 +204,7 @@ def list_subscription_level_alerts_by_region( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" def prepare_request(next_link=None): @@ -212,7 +214,7 @@ def prepare_request(next_link=None): if not next_link: # Construct URL - url = self.list_subscription_level_alerts_by_region.metadata['url'] # type: ignore + url = self.list_subscription_level_by_region.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), @@ -251,9 +253,9 @@ def get_next(next_link=None): return ItemPaged( get_next, extract_data ) - list_subscription_level_alerts_by_region.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts'} # type: ignore + list_subscription_level_by_region.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts'} # type: ignore - def list_resource_group_level_alerts_by_region( + def list_resource_group_level_by_region( self, resource_group_name, # type: str **kwargs # type: Any @@ -275,7 +277,7 @@ def list_resource_group_level_alerts_by_region( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" def prepare_request(next_link=None): @@ -285,7 +287,7 @@ def prepare_request(next_link=None): if not next_link: # Construct URL - url = self.list_resource_group_level_alerts_by_region.metadata['url'] # type: ignore + url = self.list_resource_group_level_by_region.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), @@ -325,9 +327,9 @@ def get_next(next_link=None): return ItemPaged( get_next, extract_data ) - list_resource_group_level_alerts_by_region.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts'} # type: ignore + list_resource_group_level_by_region.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts'} # type: ignore - def get_subscription_level_alert( + def get_subscription_level( self, alert_name, # type: str **kwargs # type: Any @@ -347,11 +349,11 @@ def get_subscription_level_alert( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" # Construct URL - url = self.get_subscription_level_alert.metadata['url'] # type: ignore + url = self.get_subscription_level.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), @@ -381,9 +383,9 @@ def get_subscription_level_alert( return cls(pipeline_response, deserialized, {}) return deserialized - get_subscription_level_alert.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}'} # type: ignore + get_subscription_level.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}'} # type: ignore - def get_resource_group_level_alerts( + def get_resource_group_level( self, alert_name, # type: str resource_group_name, # type: str @@ -407,11 +409,11 @@ def get_resource_group_level_alerts( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" # Construct URL - url = self.get_resource_group_level_alerts.metadata['url'] # type: ignore + url = self.get_resource_group_level.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), @@ -442,9 +444,9 @@ def get_resource_group_level_alerts( return cls(pipeline_response, deserialized, {}) return deserialized - get_resource_group_level_alerts.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}'} # type: ignore + get_resource_group_level.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}'} # type: ignore - def update_subscription_level_alert_state_to_dismiss( + def update_subscription_level_state_to_dismiss( self, alert_name, # type: str **kwargs # type: Any @@ -464,11 +466,11 @@ def update_subscription_level_alert_state_to_dismiss( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" # Construct URL - url = self.update_subscription_level_alert_state_to_dismiss.metadata['url'] # type: ignore + url = self.update_subscription_level_state_to_dismiss.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), @@ -495,7 +497,7 @@ def update_subscription_level_alert_state_to_dismiss( if cls: return cls(pipeline_response, None, {}) - update_subscription_level_alert_state_to_dismiss.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/dismiss'} # type: ignore + update_subscription_level_state_to_dismiss.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/dismiss'} # type: ignore def update_subscription_level_state_to_resolve( self, @@ -517,7 +519,7 @@ def update_subscription_level_state_to_resolve( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" # Construct URL @@ -550,7 +552,7 @@ def update_subscription_level_state_to_resolve( update_subscription_level_state_to_resolve.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/resolve'} # type: ignore - def update_subscription_level_alert_state_to_reactivate( + def update_subscription_level_state_to_activate( self, alert_name, # type: str **kwargs # type: Any @@ -570,11 +572,11 @@ def update_subscription_level_alert_state_to_reactivate( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" # Construct URL - url = self.update_subscription_level_alert_state_to_reactivate.metadata['url'] # type: ignore + url = self.update_subscription_level_state_to_activate.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), @@ -601,7 +603,7 @@ def update_subscription_level_alert_state_to_reactivate( if cls: return cls(pipeline_response, None, {}) - update_subscription_level_alert_state_to_reactivate.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/activate'} # type: ignore + update_subscription_level_state_to_activate.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/activate'} # type: ignore def update_resource_group_level_state_to_resolve( self, @@ -627,7 +629,7 @@ def update_resource_group_level_state_to_resolve( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" # Construct URL @@ -661,7 +663,7 @@ def update_resource_group_level_state_to_resolve( update_resource_group_level_state_to_resolve.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/resolve'} # type: ignore - def update_resource_group_level_alert_state_to_dismiss( + def update_resource_group_level_state_to_dismiss( self, alert_name, # type: str resource_group_name, # type: str @@ -685,11 +687,11 @@ def update_resource_group_level_alert_state_to_dismiss( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" # Construct URL - url = self.update_resource_group_level_alert_state_to_dismiss.metadata['url'] # type: ignore + url = self.update_resource_group_level_state_to_dismiss.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), @@ -717,9 +719,9 @@ def update_resource_group_level_alert_state_to_dismiss( if cls: return cls(pipeline_response, None, {}) - update_resource_group_level_alert_state_to_dismiss.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/dismiss'} # type: ignore + update_resource_group_level_state_to_dismiss.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/dismiss'} # type: ignore - def update_resource_group_level_alert_state_to_reactivate( + def update_resource_group_level_state_to_activate( self, alert_name, # type: str resource_group_name, # type: str @@ -743,11 +745,11 @@ def update_resource_group_level_alert_state_to_reactivate( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-01-01" + api_version = "2021-01-01" accept = "application/json" # Construct URL - url = self.update_resource_group_level_alert_state_to_reactivate.metadata['url'] # type: ignore + url = self.update_resource_group_level_state_to_activate.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), @@ -775,4 +777,112 @@ def update_resource_group_level_alert_state_to_reactivate( if cls: return cls(pipeline_response, None, {}) - update_resource_group_level_alert_state_to_reactivate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/activate'} # type: ignore + update_resource_group_level_state_to_activate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/alerts/{alertName}/activate'} # type: ignore + + def _simulate_initial( + self, + alert_simulator_request_body, # type: "_models.AlertSimulatorRequestBody" + **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-01-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._simulate_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_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['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(alert_simulator_request_body, 'AlertSimulatorRequestBody') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _simulate_initial.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/default/simulate'} # type: ignore + + def begin_simulate( + self, + alert_simulator_request_body, # type: "_models.AlertSimulatorRequestBody" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Simulate security alerts. + + :param alert_simulator_request_body: Alert Simulator Request Properties. + :type alert_simulator_request_body: ~azure.mgmt.security.models.AlertSimulatorRequestBody + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._simulate_initial( + alert_simulator_request_body=alert_simulator_request_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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'ascLocation': self._serialize.url("self._config.asc_location", self._config.asc_location, 'str'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'original-uri'}, 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_simulate.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/alerts/default/simulate'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_assessments_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_assessments_operations.py index 23b2f4f8b372..0b7b28c2f6a3 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_assessments_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_assessments_operations.py @@ -53,8 +53,8 @@ def list( # type: (...) -> Iterable["_models.SecurityAssessmentList"] """Get security assessments on all your scanned resources inside a scope. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :keyword callable cls: A custom type or function that will be passed the direct response diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_compliance_results_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_compliance_results_operations.py index ebb225f3cd7b..19c0725e83ec 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_compliance_results_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_compliance_results_operations.py @@ -53,8 +53,8 @@ def list( # type: (...) -> Iterable["_models.ComplianceResultList"] """Security compliance results in the subscription. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :keyword callable cls: A custom type or function that will be passed the direct response diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_compliances_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_compliances_operations.py index 95c66b7864a7..c8b529670f49 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_compliances_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_compliances_operations.py @@ -53,8 +53,8 @@ def list( # type: (...) -> Iterable["_models.ComplianceList"] """The Compliance scores of the specific management group. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :keyword callable cls: A custom type or function that will be passed the direct response @@ -126,8 +126,8 @@ def get( # type: (...) -> "_models.Compliance" """Details of a specific Compliance. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :param compliance_name: name of the Compliance. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_device_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_device_operations.py deleted file mode 100644 index 052299290221..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_device_operations.py +++ /dev/null @@ -1,103 +0,0 @@ -# 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.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, Optional, TypeVar - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class DeviceOperations(object): - """DeviceOperations 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.security.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 get( - self, - resource_id, # type: str - device_id, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.Device" - """Get device. - - :param resource_id: The identifier of the resource. - :type resource_id: str - :param device_id: Identifier of the device. - :type device_id: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: Device, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.Device - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.Device"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True), - 'deviceId': self._serialize.url("device_id", device_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('Device', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/{resourceId}/providers/Microsoft.Security/devices/{deviceId}'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_devices_for_hub_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_devices_for_hub_operations.py deleted file mode 100644 index 5b91fcc1451b..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_devices_for_hub_operations.py +++ /dev/null @@ -1,131 +0,0 @@ -# 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, Union - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class DevicesForHubOperations(object): - """DevicesForHubOperations 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.security.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_id, # type: str - limit=None, # type: Optional[int] - skip_token=None, # type: Optional[str] - device_management_type=None, # type: Optional[Union[str, "_models.ManagementState"]] - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.DeviceList"] - """Get list of the devices for the specified IoT Hub resource. - - :param resource_id: The identifier of the resource. - :type resource_id: str - :param limit: Limit the number of items returned in a single page. - :type limit: int - :param skip_token: Skip token used for pagination. - :type skip_token: str - :param device_management_type: Get devices only from specific type, Managed or Unmanaged. - :type device_management_type: str or ~azure.mgmt.security.models.ManagementState - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either DeviceList or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.security.models.DeviceList] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.DeviceList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-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 = { - 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True), - } - 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 limit is not None: - query_parameters['$limit'] = self._serialize.query("limit", limit, 'int') - if skip_token is not None: - query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, 'str') - if device_management_type is not None: - query_parameters['deviceManagementType'] = self._serialize.query("device_management_type", device_management_type, '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('DeviceList', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or 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': '/{resourceId}/providers/Microsoft.Security/devices'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_devices_for_subscription_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_devices_for_subscription_operations.py deleted file mode 100644 index 1f2e8ef0fa19..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_devices_for_subscription_operations.py +++ /dev/null @@ -1,128 +0,0 @@ -# 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, Union - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class DevicesForSubscriptionOperations(object): - """DevicesForSubscriptionOperations 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.security.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, - limit=None, # type: Optional[int] - skip_token=None, # type: Optional[str] - device_management_type=None, # type: Optional[Union[str, "_models.ManagementState"]] - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.DeviceList"] - """Get list of the devices by their subscription. - - :param limit: Limit the number of items returned in a single page. - :type limit: int - :param skip_token: Skip token used for pagination. - :type skip_token: str - :param device_management_type: Get devices only from specific type, Managed or Unmanaged. - :type device_management_type: str or ~azure.mgmt.security.models.ManagementState - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either DeviceList or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.security.models.DeviceList] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.DeviceList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - } - 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 limit is not None: - query_parameters['$limit'] = self._serialize.query("limit", limit, 'int') - if skip_token is not None: - query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, 'str') - if device_management_type is not None: - query_parameters['deviceManagementType'] = self._serialize.query("device_management_type", device_management_type, '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('DeviceList', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or 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.Security/devices'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_information_protection_policies_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_information_protection_policies_operations.py index a7ccd767f495..891af46bac01 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_information_protection_policies_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_information_protection_policies_operations.py @@ -48,18 +48,18 @@ def __init__(self, client, config, serializer, deserializer): def get( self, scope, # type: str - information_protection_policy_name, # type: Union[str, "_models.Enum17"] + information_protection_policy_name, # type: Union[str, "_models.Enum15"] **kwargs # type: Any ): # type: (...) -> "_models.InformationProtectionPolicy" """Details of the information protection policy. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :param information_protection_policy_name: Name of the information protection policy. - :type information_protection_policy_name: str or ~azure.mgmt.security.models.Enum17 + :type information_protection_policy_name: str or ~azure.mgmt.security.models.Enum15 :keyword callable cls: A custom type or function that will be passed the direct response :return: InformationProtectionPolicy, or the result of cls(response) :rtype: ~azure.mgmt.security.models.InformationProtectionPolicy @@ -108,19 +108,19 @@ def get( def create_or_update( self, scope, # type: str - information_protection_policy_name, # type: Union[str, "_models.Enum17"] + information_protection_policy_name, # type: Union[str, "_models.Enum15"] information_protection_policy, # type: "_models.InformationProtectionPolicy" **kwargs # type: Any ): # type: (...) -> "_models.InformationProtectionPolicy" """Details of the information protection policy. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :param information_protection_policy_name: Name of the information protection policy. - :type information_protection_policy_name: str or ~azure.mgmt.security.models.Enum17 + :type information_protection_policy_name: str or ~azure.mgmt.security.models.Enum15 :param information_protection_policy: Information protection policy. :type information_protection_policy: ~azure.mgmt.security.models.InformationProtectionPolicy :keyword callable cls: A custom type or function that will be passed the direct response @@ -185,8 +185,8 @@ def list( # type: (...) -> Iterable["_models.InformationProtectionPolicyList"] """Information protection policies of a specific management group. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :keyword callable cls: A custom type or function that will be passed the direct response diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_defender_settings_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_ingestion_settings_operations.py similarity index 61% rename from sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_defender_settings_operations.py rename to sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_ingestion_settings_operations.py index 34b389470949..0e8366ffbd0e 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_defender_settings_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_ingestion_settings_operations.py @@ -9,6 +9,7 @@ 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 @@ -17,13 +18,13 @@ if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, IO, Optional, TypeVar, Union + 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 IotDefenderSettingsOperations(object): - """IotDefenderSettingsOperations operations. +class IngestionSettingsOperations(object): + """IngestionSettingsOperations 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. @@ -48,77 +49,99 @@ def list( self, **kwargs # type: Any ): - # type: (...) -> "_models.IotDefenderSettingsList" - """List IoT Defender Settings. + # type: (...) -> Iterable["_models.IngestionSettingList"] + """Settings for ingesting security data and logs to correlate with resources associated with the + subscription. :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotDefenderSettingsList, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotDefenderSettingsList + :return: An iterator like instance of either IngestionSettingList or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.security.models.IngestionSettingList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotDefenderSettingsList"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.IngestionSettingList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" + api_version = "2021-01-15-preview" accept = "application/json" - # 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - } - 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('IotDefenderSettingsList', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotDefenderSettings'} # type: ignore + 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + } + 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('IngestionSettingList', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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.Security/ingestionSettings'} # type: ignore def get( self, + ingestion_setting_name, # type: str **kwargs # type: Any ): - # type: (...) -> "_models.IotDefenderSettingsModel" - """Get IoT Defender Settings. + # type: (...) -> "_models.IngestionSetting" + """Settings for ingesting security data and logs to correlate with resources associated with the + subscription. + :param ingestion_setting_name: Name of the ingestion setting. + :type ingestion_setting_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotDefenderSettingsModel, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotDefenderSettingsModel + :return: IngestionSetting, or the result of cls(response) + :rtype: ~azure.mgmt.security.models.IngestionSetting :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotDefenderSettingsModel"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.IngestionSetting"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" + api_version = "2021-01-15-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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'ingestionSettingName': self._serialize.url("ingestion_setting_name", ingestion_setting_name, 'str'), } url = self._client.format_url(url, **path_format_arguments) @@ -138,42 +161,47 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize('IotDefenderSettingsModel', pipeline_response) + deserialized = self._deserialize('IngestionSetting', pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotDefenderSettings/default'} # type: ignore + get.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/ingestionSettings/{ingestionSettingName}'} # type: ignore - def create_or_update( + def create( self, - iot_defender_settings_model, # type: "_models.IotDefenderSettingsModel" + ingestion_setting_name, # type: str + ingestion_setting, # type: "_models.IngestionSetting" **kwargs # type: Any ): - # type: (...) -> "_models.IotDefenderSettingsModel" - """Create or update IoT Defender settings. - - :param iot_defender_settings_model: The IoT defender settings model. - :type iot_defender_settings_model: ~azure.mgmt.security.models.IotDefenderSettingsModel + # type: (...) -> "_models.IngestionSetting" + """Create setting for ingesting security data and logs to correlate with resources associated with + the subscription. + + :param ingestion_setting_name: Name of the ingestion setting. + :type ingestion_setting_name: str + :param ingestion_setting: Ingestion setting object. + :type ingestion_setting: ~azure.mgmt.security.models.IngestionSetting :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotDefenderSettingsModel, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotDefenderSettingsModel + :return: IngestionSetting, or the result of cls(response) + :rtype: ~azure.mgmt.security.models.IngestionSetting :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotDefenderSettingsModel"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.IngestionSetting"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" + api_version = "2021-01-15-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" # Construct URL - url = self.create_or_update.metadata['url'] # type: ignore + url = self.create.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'ingestionSettingName': self._serialize.url("ingestion_setting_name", ingestion_setting_name, 'str'), } url = self._client.format_url(url, **path_format_arguments) @@ -187,35 +215,34 @@ def create_or_update( header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(iot_defender_settings_model, 'IotDefenderSettingsModel') + body_content = self._serialize.body(ingestion_setting, 'IngestionSetting') 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]: + 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 response.status_code == 200: - deserialized = self._deserialize('IotDefenderSettingsModel', pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize('IotDefenderSettingsModel', pipeline_response) + deserialized = self._deserialize('IngestionSetting', pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotDefenderSettings/default'} # type: ignore + create.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/ingestionSettings/{ingestionSettingName}'} # type: ignore def delete( self, + ingestion_setting_name, # type: str **kwargs # type: Any ): # type: (...) -> None - """Delete IoT Defender settings. + """Deletes the ingestion settings for this subscription. + :param ingestion_setting_name: Name of the ingestion setting. + :type ingestion_setting_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: None, or the result of cls(response) :rtype: None @@ -226,13 +253,14 @@ def delete( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" + api_version = "2021-01-15-preview" accept = "application/json" # Construct URL url = self.delete.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'ingestionSettingName': self._serialize.url("ingestion_setting_name", ingestion_setting_name, 'str'), } url = self._client.format_url(url, **path_format_arguments) @@ -255,32 +283,37 @@ def delete( if cls: return cls(pipeline_response, None, {}) - delete.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotDefenderSettings/default'} # type: ignore + delete.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/ingestionSettings/{ingestionSettingName}'} # type: ignore - def package_downloads( + def list_tokens( self, + ingestion_setting_name, # type: str **kwargs # type: Any ): - # type: (...) -> "_models.PackageDownloads" - """Information about downloadable packages. + # type: (...) -> "_models.IngestionSettingToken" + """Returns the token that is used for correlating ingested telemetry with the resources in the + subscription. + :param ingestion_setting_name: Name of the ingestion setting. + :type ingestion_setting_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: PackageDownloads, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.PackageDownloads + :return: IngestionSettingToken, or the result of cls(response) + :rtype: ~azure.mgmt.security.models.IngestionSettingToken :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.PackageDownloads"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.IngestionSettingToken"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" + api_version = "2021-01-15-preview" accept = "application/json" # Construct URL - url = self.package_downloads.metadata['url'] # type: ignore + url = self.list_tokens.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'ingestionSettingName': self._serialize.url("ingestion_setting_name", ingestion_setting_name, 'str'), } url = self._client.format_url(url, **path_format_arguments) @@ -300,38 +333,42 @@ def package_downloads( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize('PackageDownloads', pipeline_response) + deserialized = self._deserialize('IngestionSettingToken', pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - package_downloads.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotDefenderSettings/default/packageDownloads'} # type: ignore + list_tokens.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/ingestionSettings/{ingestionSettingName}/listTokens'} # type: ignore - def download_manager_activation( + def list_connection_strings( self, + ingestion_setting_name, # type: str **kwargs # type: Any ): - # type: (...) -> IO - """Download manager activation data defined for this subscription. + # type: (...) -> "_models.ConnectionStrings" + """Connection strings for ingesting security scan logs and data. + :param ingestion_setting_name: Name of the ingestion setting. + :type ingestion_setting_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: IO, or the result of cls(response) - :rtype: IO + :return: ConnectionStrings, or the result of cls(response) + :rtype: ~azure.mgmt.security.models.ConnectionStrings :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType[IO] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConnectionStrings"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/zip" + api_version = "2021-01-15-preview" + accept = "application/json" # Construct URL - url = self.download_manager_activation.metadata['url'] # type: ignore + url = self.list_connection_strings.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'ingestionSettingName': self._serialize.url("ingestion_setting_name", ingestion_setting_name, 'str'), } url = self._client.format_url(url, **path_format_arguments) @@ -344,17 +381,17 @@ def download_manager_activation( 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=True, **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) - deserialized = response.stream_download(self._client._pipeline) + deserialized = self._deserialize('ConnectionStrings', pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - download_manager_activation.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotDefenderSettings/default/downloadManagerActivation'} # type: ignore + list_connection_strings.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/ingestionSettings/{ingestionSettingName}/listConnectionStrings'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_alert_types_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_alert_types_operations.py deleted file mode 100644 index aceaa428bf29..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_alert_types_operations.py +++ /dev/null @@ -1,275 +0,0 @@ -# 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.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, Optional, TypeVar - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class IotAlertTypesOperations(object): - """IotAlertTypesOperations 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.security.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 - solution_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.IotAlertTypeList" - """List IoT alert types. - - :param resource_group_name: The name of the resource group within the user's subscription. The - name is case insensitive. - :type resource_group_name: str - :param solution_name: The name of the IoT Security solution. - :type solution_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotAlertTypeList, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotAlertTypeList - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotAlertTypeList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-08-01" - accept = "application/json" - - # 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'solutionName': self._serialize.url("solution_name", solution_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['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('IotAlertTypeList', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotAlertTypes'} # type: ignore - - def get( - self, - resource_group_name, # type: str - solution_name, # type: str - iot_alert_type_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.IotAlertType" - """Get IoT alert type. - - :param resource_group_name: The name of the resource group within the user's subscription. The - name is case insensitive. - :type resource_group_name: str - :param solution_name: The name of the IoT Security solution. - :type solution_name: str - :param iot_alert_type_name: Name of the alert type. - :type iot_alert_type_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotAlertType, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotAlertType - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotAlertType"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-08-01" - 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'solutionName': self._serialize.url("solution_name", solution_name, 'str'), - 'iotAlertTypeName': self._serialize.url("iot_alert_type_name", iot_alert_type_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['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('IotAlertType', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotAlertTypes/{iotAlertTypeName}'} # type: ignore - - def list_at_subscription_scope( - self, - **kwargs # type: Any - ): - # type: (...) -> "_models.IotAlertTypeList" - """List IoT alert types. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotAlertTypeList, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotAlertTypeList - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotAlertTypeList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.list_at_subscription_scope.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - } - 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('IotAlertTypeList', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - list_at_subscription_scope.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotAlertTypes'} # type: ignore - - def get_at_subscription_scope( - self, - iot_alert_type_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.IotAlertType" - """Get IoT alert type. - - :param iot_alert_type_name: Name of the alert type. - :type iot_alert_type_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotAlertType, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotAlertType - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotAlertType"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.get_at_subscription_scope.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'iotAlertTypeName': self._serialize.url("iot_alert_type_name", iot_alert_type_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['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('IotAlertType', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get_at_subscription_scope.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotAlertTypes/{iotAlertTypeName}'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_alerts_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_alerts_operations.py deleted file mode 100644 index dd1790ab48df..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_alerts_operations.py +++ /dev/null @@ -1,383 +0,0 @@ -# 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, Union - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class IotAlertsOperations(object): - """IotAlertsOperations 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.security.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 - solution_name, # type: str - min_start_time_utc=None, # type: Optional[str] - max_start_time_utc=None, # type: Optional[str] - alert_type=None, # type: Optional[str] - compromised_entity=None, # type: Optional[str] - limit=None, # type: Optional[int] - skip_token=None, # type: Optional[str] - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.IotAlertList"] - """List IoT alerts. - - :param resource_group_name: The name of the resource group within the user's subscription. The - name is case insensitive. - :type resource_group_name: str - :param solution_name: The name of the IoT Security solution. - :type solution_name: str - :param min_start_time_utc: Filter by minimum startTimeUtc (ISO 8601 format). - :type min_start_time_utc: str - :param max_start_time_utc: Filter by maximum startTimeUtc (ISO 8601 format). - :type max_start_time_utc: str - :param alert_type: Filter by alert type. - :type alert_type: str - :param compromised_entity: Filter by compromised device. - :type compromised_entity: str - :param limit: Limit the number of items returned in a single page. - :type limit: int - :param skip_token: Skip token used for pagination. - :type skip_token: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either IotAlertList or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.security.models.IotAlertList] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotAlertList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-08-01" - 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'solutionName': self._serialize.url("solution_name", solution_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') - if min_start_time_utc is not None: - query_parameters['startTimeUtc>'] = self._serialize.query("min_start_time_utc", min_start_time_utc, 'str') - if max_start_time_utc is not None: - query_parameters['startTimeUtc<'] = self._serialize.query("max_start_time_utc", max_start_time_utc, 'str') - if alert_type is not None: - query_parameters['alertType'] = self._serialize.query("alert_type", alert_type, 'str') - if compromised_entity is not None: - query_parameters['compromisedEntity'] = self._serialize.query("compromised_entity", compromised_entity, 'str') - if limit is not None: - query_parameters['$limit'] = self._serialize.query("limit", limit, 'int') - if skip_token is not None: - query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, '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('IotAlertList', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or 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.Security/iotSecuritySolutions/{solutionName}/iotAlerts'} # type: ignore - - def get( - self, - resource_group_name, # type: str - solution_name, # type: str - iot_alert_id, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.IotAlert" - """Get IoT alert. - - :param resource_group_name: The name of the resource group within the user's subscription. The - name is case insensitive. - :type resource_group_name: str - :param solution_name: The name of the IoT Security solution. - :type solution_name: str - :param iot_alert_id: Id of the alert. - :type iot_alert_id: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotAlert, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotAlert - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotAlert"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-08-01" - 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'solutionName': self._serialize.url("solution_name", solution_name, 'str'), - 'iotAlertId': self._serialize.url("iot_alert_id", iot_alert_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('IotAlert', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotAlerts/{iotAlertId}'} # type: ignore - - def list_at_scope( - self, - scope, # type: str - min_start_time_utc=None, # type: Optional[str] - max_start_time_utc=None, # type: Optional[str] - alert_type=None, # type: Optional[str] - device_management_type=None, # type: Optional[Union[str, "_models.ManagementState"]] - compromised_entity=None, # type: Optional[str] - limit=None, # type: Optional[int] - skip_token=None, # type: Optional[str] - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.IotAlertListModel"] - """List IoT alerts. - - :param scope: Scope of the query: Subscription (i.e. /subscriptions/{subscriptionId}) or IoT - Hub (i.e. - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Devices/iotHubs/{iotHubName}). - :type scope: str - :param min_start_time_utc: Filter by minimum startTimeUtc (ISO 8601 format). - :type min_start_time_utc: str - :param max_start_time_utc: Filter by maximum startTimeUtc (ISO 8601 format). - :type max_start_time_utc: str - :param alert_type: Filter by alert type. - :type alert_type: str - :param device_management_type: Get devices only from specific type, Managed or Unmanaged. - :type device_management_type: str or ~azure.mgmt.security.models.ManagementState - :param compromised_entity: Filter by compromised device. - :type compromised_entity: str - :param limit: Limit the number of items returned in a single page. - :type limit: int - :param skip_token: Skip token used for pagination. - :type skip_token: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either IotAlertListModel or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.security.models.IotAlertListModel] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotAlertListModel"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-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_at_scope.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - } - 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 min_start_time_utc is not None: - query_parameters['startTimeUtc>'] = self._serialize.query("min_start_time_utc", min_start_time_utc, 'str') - if max_start_time_utc is not None: - query_parameters['startTimeUtc<'] = self._serialize.query("max_start_time_utc", max_start_time_utc, 'str') - if alert_type is not None: - query_parameters['alertType'] = self._serialize.query("alert_type", alert_type, 'str') - if device_management_type is not None: - query_parameters['deviceManagementType'] = self._serialize.query("device_management_type", device_management_type, 'str') - if compromised_entity is not None: - query_parameters['compromisedEntity'] = self._serialize.query("compromised_entity", compromised_entity, 'str') - if limit is not None: - query_parameters['$limit'] = self._serialize.query("limit", limit, 'int') - if skip_token is not None: - query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, '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('IotAlertListModel', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or 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_at_scope.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotAlerts'} # type: ignore - - def get_at_scope( - self, - scope, # type: str - iot_alert_id, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.IotAlertModel" - """Get IoT alert. - - :param scope: Scope of the query: Subscription (i.e. /subscriptions/{subscriptionId}) or IoT - Hub (i.e. - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Devices/iotHubs/{iotHubName}). - :type scope: str - :param iot_alert_id: Id of the alert. - :type iot_alert_id: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotAlertModel, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotAlertModel - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotAlertModel"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.get_at_scope.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - 'iotAlertId': self._serialize.url("iot_alert_id", iot_alert_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('IotAlertModel', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get_at_scope.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotAlerts/{iotAlertId}'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_recommendation_types_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_recommendation_types_operations.py deleted file mode 100644 index e34c25cd5f27..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_recommendation_types_operations.py +++ /dev/null @@ -1,275 +0,0 @@ -# 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.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, Optional, TypeVar - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class IotRecommendationTypesOperations(object): - """IotRecommendationTypesOperations 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.security.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 - solution_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.IotRecommendationTypeList" - """List IoT recommendation types. - - :param resource_group_name: The name of the resource group within the user's subscription. The - name is case insensitive. - :type resource_group_name: str - :param solution_name: The name of the IoT Security solution. - :type solution_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotRecommendationTypeList, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotRecommendationTypeList - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotRecommendationTypeList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-08-01" - accept = "application/json" - - # 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'solutionName': self._serialize.url("solution_name", solution_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['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('IotRecommendationTypeList', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotRecommendationTypes'} # type: ignore - - def get( - self, - resource_group_name, # type: str - solution_name, # type: str - iot_recommendation_type_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.IotRecommendationType" - """Get IoT recommendation type. - - :param resource_group_name: The name of the resource group within the user's subscription. The - name is case insensitive. - :type resource_group_name: str - :param solution_name: The name of the IoT Security solution. - :type solution_name: str - :param iot_recommendation_type_name: Name of the recommendation type. - :type iot_recommendation_type_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotRecommendationType, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotRecommendationType - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotRecommendationType"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-08-01" - 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'solutionName': self._serialize.url("solution_name", solution_name, 'str'), - 'iotRecommendationTypeName': self._serialize.url("iot_recommendation_type_name", iot_recommendation_type_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['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('IotRecommendationType', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotRecommendationTypes/{iotRecommendationTypeName}'} # type: ignore - - def list_at_subscription_scope( - self, - **kwargs # type: Any - ): - # type: (...) -> "_models.IotRecommendationTypeList" - """List IoT recommendation types. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotRecommendationTypeList, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotRecommendationTypeList - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotRecommendationTypeList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.list_at_subscription_scope.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - } - 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('IotRecommendationTypeList', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - list_at_subscription_scope.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotRecommendationTypes'} # type: ignore - - def get_at_subscription_scope( - self, - iot_recommendation_type_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.IotRecommendationType" - """Get IoT recommendation type. - - :param iot_recommendation_type_name: Name of the recommendation type. - :type iot_recommendation_type_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotRecommendationType, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotRecommendationType - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotRecommendationType"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.get_at_subscription_scope.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'iotRecommendationTypeName': self._serialize.url("iot_recommendation_type_name", iot_recommendation_type_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['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('IotRecommendationType', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get_at_subscription_scope.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotRecommendationTypes/{iotRecommendationTypeName}'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_sensors_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_sensors_operations.py deleted file mode 100644 index 36c1f757b823..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_sensors_operations.py +++ /dev/null @@ -1,461 +0,0 @@ -# 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.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, IO, Optional, TypeVar, Union - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class IotSensorsOperations(object): - """IotSensorsOperations 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.security.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, - scope, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.IotSensorsList" - """List IoT sensors. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotSensorsList, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotSensorsList - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotSensorsList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - } - 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('IotSensorsList', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - list.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSensors'} # type: ignore - - def get( - self, - scope, # type: str - iot_sensor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.IotSensorsModel" - """Get IoT sensor. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :param iot_sensor_name: Name of the IoT sensor. - :type iot_sensor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotSensorsModel, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotSensorsModel - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotSensorsModel"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - 'iotSensorName': self._serialize.url("iot_sensor_name", iot_sensor_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['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('IotSensorsModel', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSensors/{iotSensorName}'} # type: ignore - - def create_or_update( - self, - scope, # type: str - iot_sensor_name, # type: str - iot_sensors_model, # type: "_models.IotSensorsModel" - **kwargs # type: Any - ): - # type: (...) -> "_models.IotSensorsModel" - """Create or update IoT sensor. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :param iot_sensor_name: Name of the IoT sensor. - :type iot_sensor_name: str - :param iot_sensors_model: The IoT sensor model. - :type iot_sensors_model: ~azure.mgmt.security.models.IotSensorsModel - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotSensorsModel, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotSensorsModel - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotSensorsModel"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self.create_or_update.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - 'iotSensorName': self._serialize.url("iot_sensor_name", iot_sensor_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(iot_sensors_model, 'IotSensorsModel') - 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('IotSensorsModel', pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize('IotSensorsModel', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - create_or_update.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSensors/{iotSensorName}'} # type: ignore - - def delete( - self, - scope, # type: str - iot_sensor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> None - """Delete IoT sensor. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :param iot_sensor_name: Name of the IoT sensor. - :type iot_sensor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: None, or the result of cls(response) - :rtype: None - :raises: ~azure.core.exceptions.HttpResponseError - """ - 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 = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.delete.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - 'iotSensorName': self._serialize.url("iot_sensor_name", iot_sensor_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['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, 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.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSensors/{iotSensorName}'} # type: ignore - - def download_activation( - self, - scope, # type: str - iot_sensor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> IO - """Download sensor activation file. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :param iot_sensor_name: Name of the IoT sensor. - :type iot_sensor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IO, or the result of cls(response) - :rtype: IO - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType[IO] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/zip" - - # Construct URL - url = self.download_activation.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - 'iotSensorName': self._serialize.url("iot_sensor_name", iot_sensor_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['Accept'] = self._serialize.header("accept", accept, 'str') - - request = self._client.post(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=True, **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 = response.stream_download(self._client._pipeline) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - download_activation.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSensors/{iotSensorName}/downloadActivation'} # type: ignore - - def download_reset_password( - self, - scope, # type: str - iot_sensor_name, # type: str - body, # type: "_models.ResetPasswordInput" - **kwargs # type: Any - ): - # type: (...) -> IO - """Download file for reset password of the sensor. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :param iot_sensor_name: Name of the IoT sensor. - :type iot_sensor_name: str - :param body: The reset password input. - :type body: ~azure.mgmt.security.models.ResetPasswordInput - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IO, or the result of cls(response) - :rtype: IO - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType[IO] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/zip" - - # Construct URL - url = self.download_reset_password.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - 'iotSensorName': self._serialize.url("iot_sensor_name", iot_sensor_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(body, 'ResetPasswordInput') - 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=True, **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 = response.stream_download(self._client._pipeline) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - download_reset_password.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSensors/{iotSensorName}/downloadResetPassword'} # type: ignore - - def trigger_ti_package_update( - self, - scope, # type: str - iot_sensor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> None - """Trigger threat intelligence package update. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :param iot_sensor_name: Name of the IoT sensor. - :type iot_sensor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: None, or the result of cls(response) - :rtype: None - :raises: ~azure.core.exceptions.HttpResponseError - """ - 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 = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.trigger_ti_package_update.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - 'iotSensorName': self._serialize.url("iot_sensor_name", iot_sensor_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['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]: - 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, {}) - - trigger_ti_package_update.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSensors/{iotSensorName}/triggerTiPackageUpdate'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_sites_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_sites_operations.py deleted file mode 100644 index db3347bbb49c..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_sites_operations.py +++ /dev/null @@ -1,270 +0,0 @@ -# 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.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, Optional, TypeVar, Union - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class IotSitesOperations(object): - """IotSitesOperations 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.security.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, - scope, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.IotSitesList" - """List IoT sites. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotSitesList, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotSitesList - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotSitesList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - } - 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('IotSitesList', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - list.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSites'} # type: ignore - - def get( - self, - scope, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.IotSitesModel" - """Get IoT site. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotSitesModel, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotSitesModel - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotSitesModel"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - } - 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('IotSitesModel', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSites/default'} # type: ignore - - def create_or_update( - self, - scope, # type: str - iot_sites_model, # type: "_models.IotSitesModel" - **kwargs # type: Any - ): - # type: (...) -> "_models.IotSitesModel" - """Create or update IoT site. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :param iot_sites_model: The IoT sites model. - :type iot_sites_model: ~azure.mgmt.security.models.IotSitesModel - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotSitesModel, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotSitesModel - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotSitesModel"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self.create_or_update.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - } - 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(iot_sites_model, 'IotSitesModel') - 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('IotSitesModel', pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize('IotSitesModel', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - create_or_update.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSites/default'} # type: ignore - - def delete( - self, - scope, # type: str - **kwargs # type: Any - ): - # type: (...) -> None - """Delete IoT site. - - :param scope: Scope of the query (IoT Hub, /providers/Microsoft.Devices/iotHubs/myHub). - :type scope: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: None, or the result of cls(response) - :rtype: None - :raises: ~azure.core.exceptions.HttpResponseError - """ - 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 = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.delete.metadata['url'] # type: ignore - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - } - 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, 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.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotSites/default'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_on_premise_iot_sensors_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_on_premise_iot_sensors_operations.py deleted file mode 100644 index 7c8098d120e9..000000000000 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_on_premise_iot_sensors_operations.py +++ /dev/null @@ -1,380 +0,0 @@ -# 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.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, IO, Optional, TypeVar, Union - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class OnPremiseIotSensorsOperations(object): - """OnPremiseIotSensorsOperations 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.security.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, - **kwargs # type: Any - ): - # type: (...) -> "_models.OnPremiseIotSensorsList" - """List on-premise IoT sensors. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: OnPremiseIotSensorsList, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.OnPremiseIotSensorsList - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.OnPremiseIotSensorsList"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - } - 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('OnPremiseIotSensorsList', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/onPremiseIotSensors'} # type: ignore - - def get( - self, - on_premise_iot_sensor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.OnPremiseIotSensor" - """Get on-premise IoT sensor. - - :param on_premise_iot_sensor_name: Name of the on-premise IoT sensor. - :type on_premise_iot_sensor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: OnPremiseIotSensor, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.OnPremiseIotSensor - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.OnPremiseIotSensor"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'onPremiseIotSensorName': self._serialize.url("on_premise_iot_sensor_name", on_premise_iot_sensor_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['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('OnPremiseIotSensor', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/onPremiseIotSensors/{onPremiseIotSensorName}'} # type: ignore - - def create_or_update( - self, - on_premise_iot_sensor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "_models.OnPremiseIotSensor" - """Create or update on-premise IoT sensor. - - :param on_premise_iot_sensor_name: Name of the on-premise IoT sensor. - :type on_premise_iot_sensor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: OnPremiseIotSensor, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.OnPremiseIotSensor - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.OnPremiseIotSensor"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.create_or_update.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'onPremiseIotSensorName': self._serialize.url("on_premise_iot_sensor_name", on_premise_iot_sensor_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['Accept'] = self._serialize.header("accept", accept, 'str') - - request = self._client.put(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, 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('OnPremiseIotSensor', pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize('OnPremiseIotSensor', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/onPremiseIotSensors/{onPremiseIotSensorName}'} # type: ignore - - def delete( - self, - on_premise_iot_sensor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> None - """Delete on-premise IoT sensor. - - :param on_premise_iot_sensor_name: Name of the on-premise IoT sensor. - :type on_premise_iot_sensor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: None, or the result of cls(response) - :rtype: None - :raises: ~azure.core.exceptions.HttpResponseError - """ - 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 = "2020-08-06-preview" - accept = "application/json" - - # Construct URL - url = self.delete.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'onPremiseIotSensorName': self._serialize.url("on_premise_iot_sensor_name", on_premise_iot_sensor_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['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, 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.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/onPremiseIotSensors/{onPremiseIotSensorName}'} # type: ignore - - def download_activation( - self, - on_premise_iot_sensor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> IO - """Download sensor activation file. - - :param on_premise_iot_sensor_name: Name of the on-premise IoT sensor. - :type on_premise_iot_sensor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IO, or the result of cls(response) - :rtype: IO - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType[IO] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - accept = "application/zip" - - # Construct URL - url = self.download_activation.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'onPremiseIotSensorName': self._serialize.url("on_premise_iot_sensor_name", on_premise_iot_sensor_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['Accept'] = self._serialize.header("accept", accept, 'str') - - request = self._client.post(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=True, **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 = response.stream_download(self._client._pipeline) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - download_activation.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/onPremiseIotSensors/{onPremiseIotSensorName}/downloadActivation'} # type: ignore - - def download_reset_password( - self, - on_premise_iot_sensor_name, # type: str - body, # type: "_models.ResetPasswordInput" - **kwargs # type: Any - ): - # type: (...) -> IO - """Download file for reset password of the sensor. - - :param on_premise_iot_sensor_name: Name of the on-premise IoT sensor. - :type on_premise_iot_sensor_name: str - :param body: Input for reset password. - :type body: ~azure.mgmt.security.models.ResetPasswordInput - :keyword callable cls: A custom type or function that will be passed the direct response - :return: IO, or the result of cls(response) - :rtype: IO - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType[IO] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/zip" - - # Construct URL - url = self.download_reset_password.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'onPremiseIotSensorName': self._serialize.url("on_premise_iot_sensor_name", on_premise_iot_sensor_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(body, 'ResetPasswordInput') - 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=True, **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 = response.stream_download(self._client._pipeline) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - download_reset_password.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/onPremiseIotSensors/{onPremiseIotSensorName}/downloadResetPassword'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_server_vulnerability_assessment_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_server_vulnerability_assessment_operations.py index 0f89f5839393..8d66fb87767e 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_server_vulnerability_assessment_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_server_vulnerability_assessment_operations.py @@ -11,13 +11,15 @@ from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.core.polling import LROPoller, NoPolling, PollingMethod from azure.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, Optional, TypeVar + from typing import Any, Callable, Dict, Generic, Optional, TypeVar, Union T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -253,7 +255,7 @@ def create_or_update( return deserialized create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceNamespace}/{resourceType}/{resourceName}/providers/Microsoft.Security/serverVulnerabilityAssessments/{serverVulnerabilityAssessment}'} # type: ignore - def delete( + def _delete_initial( self, resource_group_name, # type: str resource_namespace, # type: str @@ -262,22 +264,6 @@ def delete( **kwargs # type: Any ): # type: (...) -> None - """Removing server vulnerability assessment from a resource. - - :param resource_group_name: The name of the resource group within the user's subscription. The - name is case insensitive. - :type resource_group_name: str - :param resource_namespace: The Namespace of the resource. - :type resource_namespace: str - :param resource_type: The type of the resource. - :type resource_type: str - :param resource_name: Name of the resource. - :type resource_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: None, or the result of cls(response) - :rtype: None - :raises: ~azure.core.exceptions.HttpResponseError - """ cls = kwargs.pop('cls', None) # type: ClsType[None] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError @@ -288,7 +274,7 @@ def delete( accept = "application/json" # Construct URL - url = self.delete.metadata['url'] # type: ignore + url = self._delete_initial.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), @@ -311,11 +297,89 @@ def delete( pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response - if response.status_code not in [200, 204]: + 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.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceNamespace}/{resourceType}/{resourceName}/providers/Microsoft.Security/serverVulnerabilityAssessments/{serverVulnerabilityAssessment}'} # type: ignore + _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceNamespace}/{resourceType}/{resourceName}/providers/Microsoft.Security/serverVulnerabilityAssessments/{serverVulnerabilityAssessment}'} # type: ignore + + def begin_delete( + self, + resource_group_name, # type: str + resource_namespace, # type: str + resource_type, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Removing server vulnerability assessment from a resource. + + :param resource_group_name: The name of the resource group within the user's subscription. The + name is case insensitive. + :type resource_group_name: str + :param resource_namespace: The Namespace of the resource. + :type resource_namespace: str + :param resource_type: The type of the resource. + :type resource_type: str + :param resource_name: Name of the resource. + :type resource_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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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, + resource_namespace=resource_namespace, + resource_type=resource_type, + resource_name=resource_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, {}) + + server_vulnerability_assessment = "default" + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'resourceNamespace': self._serialize.url("resource_namespace", resource_namespace, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + 'serverVulnerabilityAssessment': self._serialize.url("server_vulnerability_assessment", server_vulnerability_assessment, 'str'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'location'}, 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/{resourceNamespace}/{resourceType}/{resourceName}/providers/Microsoft.Security/serverVulnerabilityAssessments/{serverVulnerabilityAssessment}'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_settings_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_settings_operations.py index 9624e7dc4b79..6d8ccf6bd044 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_settings_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_settings_operations.py @@ -62,7 +62,7 @@ def list( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-01-01" + api_version = "2021-07-01" accept = "application/json" def prepare_request(next_link=None): @@ -114,14 +114,14 @@ def get_next(next_link=None): def get( self, - setting_name, # type: Union[str, "_models.Enum3"] + setting_name, # type: Union[str, "_models.Enum69"] **kwargs # type: Any ): # type: (...) -> "_models.Setting" """Settings of different configurations in security center. - :param setting_name: Name of setting: (MCAS/WDATP). - :type setting_name: str or ~azure.mgmt.security.models.Enum3 + :param setting_name: The name of the setting. + :type setting_name: str or ~azure.mgmt.security.models.Enum69 :keyword callable cls: A custom type or function that will be passed the direct response :return: Setting, or the result of cls(response) :rtype: ~azure.mgmt.security.models.Setting @@ -132,7 +132,7 @@ def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-01-01" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -169,15 +169,15 @@ def get( def update( self, - setting_name, # type: Union[str, "_models.Enum3"] + setting_name, # type: Union[str, "_models.Enum69"] setting, # type: "_models.Setting" **kwargs # type: Any ): # type: (...) -> "_models.Setting" """updating settings about different configurations in security center. - :param setting_name: Name of setting: (MCAS/WDATP). - :type setting_name: str or ~azure.mgmt.security.models.Enum3 + :param setting_name: The name of the setting. + :type setting_name: str or ~azure.mgmt.security.models.Enum69 :param setting: Setting object. :type setting: ~azure.mgmt.security.models.Setting :keyword callable cls: A custom type or function that will be passed the direct response @@ -190,7 +190,7 @@ def update( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-01-01" + api_version = "2021-07-01" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_recommendations_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_software_inventories_operations.py similarity index 53% rename from sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_recommendations_operations.py rename to sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_software_inventories_operations.py index ce81c51c1414..410d6ff4e69f 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_recommendations_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_software_inventories_operations.py @@ -23,8 +23,8 @@ T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] -class IotRecommendationsOperations(object): - """IotRecommendationsOperations operations. +class SoftwareInventoriesOperations(object): + """SoftwareInventoriesOperations 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. @@ -45,43 +45,37 @@ def __init__(self, client, config, serializer, deserializer): self._deserialize = deserializer self._config = config - def list( + def list_by_extended_resource( self, resource_group_name, # type: str - solution_name, # type: str - recommendation_type=None, # type: Optional[str] - device_id=None, # type: Optional[str] - limit=None, # type: Optional[int] - skip_token=None, # type: Optional[str] + resource_namespace, # type: str + resource_type, # type: str + resource_name, # type: str **kwargs # type: Any ): - # type: (...) -> Iterable["_models.IotRecommendationList"] - """List IoT recommendations. + # type: (...) -> Iterable["_models.SoftwaresList"] + """Gets the software inventory of the virtual machine. :param resource_group_name: The name of the resource group within the user's subscription. The name is case insensitive. :type resource_group_name: str - :param solution_name: The name of the IoT Security solution. - :type solution_name: str - :param recommendation_type: Filter by recommendation type. - :type recommendation_type: str - :param device_id: Filter by device id. - :type device_id: str - :param limit: Limit the number of items returned in a single page. - :type limit: int - :param skip_token: Skip token used for pagination. - :type skip_token: str + :param resource_namespace: The namespace of the resource. + :type resource_namespace: str + :param resource_type: The type of the resource. + :type resource_type: str + :param resource_name: Name of the resource. + :type resource_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either IotRecommendationList or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.security.models.IotRecommendationList] + :return: An iterator like instance of either SoftwaresList or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.security.models.SoftwaresList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotRecommendationList"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SoftwaresList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-08-01" + api_version = "2021-05-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -91,24 +85,18 @@ def prepare_request(next_link=None): if not next_link: # Construct URL - url = self.list.metadata['url'] # type: ignore + url = self.list_by_extended_resource.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'solutionName': self._serialize.url("solution_name", solution_name, 'str'), + 'resourceNamespace': self._serialize.url("resource_namespace", resource_namespace, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_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') - if recommendation_type is not None: - query_parameters['recommendationType'] = self._serialize.query("recommendation_type", recommendation_type, 'str') - if device_id is not None: - query_parameters['deviceId'] = self._serialize.query("device_id", device_id, 'str') - if limit is not None: - query_parameters['$limit'] = self._serialize.query("limit", limit, 'int') - if skip_token is not None: - query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, 'str') request = self._client.get(url, query_parameters, header_parameters) else: @@ -118,7 +106,7 @@ def prepare_request(next_link=None): return request def extract_data(pipeline_response): - deserialized = self._deserialize('IotRecommendationList', pipeline_response) + deserialized = self._deserialize('SoftwaresList', pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -139,107 +127,26 @@ def get_next(next_link=None): return ItemPaged( get_next, extract_data ) - list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotRecommendations'} # type: ignore + list_by_extended_resource.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceNamespace}/{resourceType}/{resourceName}/providers/Microsoft.Security/softwareInventories'} # type: ignore - def get( + def list_by_subscription( self, - resource_group_name, # type: str - solution_name, # type: str - iot_recommendation_id, # type: str **kwargs # type: Any ): - # type: (...) -> "_models.IotRecommendation" - """Get IoT recommendation. + # type: (...) -> Iterable["_models.SoftwaresList"] + """Gets the software inventory of all virtual machines in the subscriptions. - :param resource_group_name: The name of the resource group within the user's subscription. The - name is case insensitive. - :type resource_group_name: str - :param solution_name: The name of the IoT Security solution. - :type solution_name: str - :param iot_recommendation_id: Id of the recommendation. - :type iot_recommendation_id: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotRecommendation, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotRecommendation + :return: An iterator like instance of either SoftwaresList or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.security.models.SoftwaresList] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotRecommendation"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SoftwaresList"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2019-08-01" - 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', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'solutionName': self._serialize.url("solution_name", solution_name, 'str'), - 'iotRecommendationId': self._serialize.url("iot_recommendation_id", iot_recommendation_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('IotRecommendation', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotRecommendations/{iotRecommendationId}'} # type: ignore - - def list_at_scope( - self, - scope, # type: str - recommendation_type=None, # type: Optional[str] - device_id=None, # type: Optional[str] - limit=None, # type: Optional[int] - skip_token=None, # type: Optional[str] - **kwargs # type: Any - ): - # type: (...) -> Iterable["_models.IotRecommendationListModel"] - """List IoT recommendations. - - :param scope: Scope of the query: Subscription (i.e. /subscriptions/{subscriptionId}) or IoT - Hub (i.e. - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Devices/iotHubs/{iotHubName}). - :type scope: str - :param recommendation_type: Filter by recommendation type. - :type recommendation_type: str - :param device_id: Filter by device id. - :type device_id: str - :param limit: Limit the number of items returned in a single page. - :type limit: int - :param skip_token: Skip token used for pagination. - :type skip_token: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either IotRecommendationListModel or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.security.models.IotRecommendationListModel] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotRecommendationListModel"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" + api_version = "2021-05-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -249,22 +156,14 @@ def prepare_request(next_link=None): if not next_link: # Construct URL - url = self.list_at_scope.metadata['url'] # type: ignore + url = self.list_by_subscription.metadata['url'] # type: ignore path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), } 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 recommendation_type is not None: - query_parameters['recommendationType'] = self._serialize.query("recommendation_type", recommendation_type, 'str') - if device_id is not None: - query_parameters['deviceId'] = self._serialize.query("device_id", device_id, 'str') - if limit is not None: - query_parameters['$limit'] = self._serialize.query("limit", limit, 'int') - if skip_token is not None: - query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, 'str') request = self._client.get(url, query_parameters, header_parameters) else: @@ -274,7 +173,7 @@ def prepare_request(next_link=None): return request def extract_data(pipeline_response): - deserialized = self._deserialize('IotRecommendationListModel', pipeline_response) + deserialized = self._deserialize('SoftwaresList', pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -295,41 +194,53 @@ def get_next(next_link=None): return ItemPaged( get_next, extract_data ) - list_at_scope.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotRecommendations'} # type: ignore + list_by_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/softwareInventories'} # type: ignore - def get_at_scope( + def get( self, - scope, # type: str - iot_recommendation_id, # type: str + resource_group_name, # type: str + resource_namespace, # type: str + resource_type, # type: str + resource_name, # type: str + software_name, # type: str **kwargs # type: Any ): - # type: (...) -> "_models.IotRecommendationModel" - """Get IoT recommendation. - - :param scope: Scope of the query: Subscription (i.e. /subscriptions/{subscriptionId}) or IoT - Hub (i.e. - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Devices/iotHubs/{iotHubName}). - :type scope: str - :param iot_recommendation_id: Id of the recommendation. - :type iot_recommendation_id: str + # type: (...) -> "_models.Software" + """Gets a single software data of the virtual machine. + + :param resource_group_name: The name of the resource group within the user's subscription. The + name is case insensitive. + :type resource_group_name: str + :param resource_namespace: The namespace of the resource. + :type resource_namespace: str + :param resource_type: The type of the resource. + :type resource_type: str + :param resource_name: Name of the resource. + :type resource_name: str + :param software_name: Name of the installed software. + :type software_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: IotRecommendationModel, or the result of cls(response) - :rtype: ~azure.mgmt.security.models.IotRecommendationModel + :return: Software, or the result of cls(response) + :rtype: ~azure.mgmt.security.models.Software :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IotRecommendationModel"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Software"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-08-06-preview" + api_version = "2021-05-01-preview" accept = "application/json" # Construct URL - url = self.get_at_scope.metadata['url'] # type: ignore + url = self.get.metadata['url'] # type: ignore path_format_arguments = { - 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), - 'iotRecommendationId': self._serialize.url("iot_recommendation_id", iot_recommendation_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'resourceNamespace': self._serialize.url("resource_namespace", resource_namespace, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + 'softwareName': self._serialize.url("software_name", software_name, 'str'), } url = self._client.format_url(url, **path_format_arguments) @@ -349,10 +260,10 @@ def get_at_scope( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize('IotRecommendationModel', pipeline_response) + deserialized = self._deserialize('Software', pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - get_at_scope.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotRecommendations/{iotRecommendationId}'} # type: ignore + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceNamespace}/{resourceType}/{resourceName}/providers/Microsoft.Security/softwareInventories/{softwareName}'} # type: ignore diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_sub_assessments_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_sub_assessments_operations.py index 48685e7cbe15..98bf219f2712 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_sub_assessments_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_sub_assessments_operations.py @@ -53,8 +53,8 @@ def list_all( # type: (...) -> Iterable["_models.SecuritySubAssessmentList"] """Get security sub-assessments on all your scanned resources inside a subscription scope. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :keyword callable cls: A custom type or function that will be passed the direct response @@ -126,8 +126,8 @@ def list( # type: (...) -> Iterable["_models.SecuritySubAssessmentList"] """Get security sub-assessments on all your scanned resources inside a scope. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :param assessment_name: The Assessment Key - Unique key for the assessment type. @@ -203,8 +203,8 @@ def get( # type: (...) -> "_models.SecuritySubAssessment" """Get a security sub-assessment on your scanned resource. - :param scope: Scope of the query, can be subscription (/subscriptions/0b06d9ea- - afe6-4779-bd59-30e5c2d9d13f) or management group + :param scope: Scope of the query, can be subscription + (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or management group (/providers/Microsoft.Management/managementGroups/mgName). :type scope: str :param assessment_name: The Assessment Key - Unique key for the assessment type. diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_tasks_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_tasks_operations.py index 3d7027bb2c13..387baf6aafbd 100644 --- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_tasks_operations.py +++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_tasks_operations.py @@ -249,7 +249,7 @@ def get_subscription_level_task( def update_subscription_level_task_state( self, task_name, # type: str - task_update_action_type, # type: Union[str, "_models.Enum15"] + task_update_action_type, # type: Union[str, "_models.Enum13"] **kwargs # type: Any ): # type: (...) -> None @@ -258,7 +258,7 @@ def update_subscription_level_task_state( :param task_name: Name of the task object, will be a GUID. :type task_name: str :param task_update_action_type: Type of the action to do on the task. - :type task_update_action_type: str or ~azure.mgmt.security.models.Enum15 + :type task_update_action_type: str or ~azure.mgmt.security.models.Enum13 :keyword callable cls: A custom type or function that will be passed the direct response :return: None, or the result of cls(response) :rtype: None @@ -446,7 +446,7 @@ def update_resource_group_level_task_state( self, resource_group_name, # type: str task_name, # type: str - task_update_action_type, # type: Union[str, "_models.Enum15"] + task_update_action_type, # type: Union[str, "_models.Enum13"] **kwargs # type: Any ): # type: (...) -> None @@ -458,7 +458,7 @@ def update_resource_group_level_task_state( :param task_name: Name of the task object, will be a GUID. :type task_name: str :param task_update_action_type: Type of the action to do on the task. - :type task_update_action_type: str or ~azure.mgmt.security.models.Enum15 + :type task_update_action_type: str or ~azure.mgmt.security.models.Enum13 :keyword callable cls: A custom type or function that will be passed the direct response :return: None, or the result of cls(response) :rtype: None diff --git a/sdk/security/azure-mgmt-security/setup.py b/sdk/security/azure-mgmt-security/setup.py index 367e5f757274..b3468ecfe007 100644 --- a/sdk/security/azure-mgmt-security/setup.py +++ b/sdk/security/azure-mgmt-security/setup.py @@ -77,7 +77,7 @@ 'azure.mgmt', ]), install_requires=[ - 'msrest>=0.5.0', + 'msrest>=0.6.21', 'azure-common~=1.1', 'azure-mgmt-core>=1.2.0,<2.0.0', ], diff --git a/shared_requirements.txt b/shared_requirements.txt index e88ebb92612e..41a62d9addc7 100644 --- a/shared_requirements.txt +++ b/shared_requirements.txt @@ -333,4 +333,5 @@ opentelemetry-sdk<2.0.0,>=1.0.0 #override azure-mgmt-recoveryservicessiterecovery msrest>=0.6.21 #override azure-mgmt-batch msrest>=0.6.21 #override azure-batch msrest>=0.6.21 +#override azure-mgmt-security msrest>=0.6.21 #override azure-mgmt-apimanagement msrest>=0.6.21 From 1f0fdea5cb745ca916a8a60b817d4fe6dfdb6fb3 Mon Sep 17 00:00:00 2001 From: Charles Lowell Date: Tue, 10 Aug 2021 09:47:53 -0700 Subject: [PATCH 031/104] Correct date in changelog (#20203) --- sdk/identity/azure-identity/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/identity/azure-identity/CHANGELOG.md b/sdk/identity/azure-identity/CHANGELOG.md index d06a420fd1e8..0583dd350fba 100644 --- a/sdk/identity/azure-identity/CHANGELOG.md +++ b/sdk/identity/azure-identity/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 1.7.0b3 (2020-08-10) +## 1.7.0b3 (2021-08-10) ### Breaking Changes > These changes do not impact the API of stable versions such as 1.6.0. From fd8d93398212be5f4e96349c472de76766ef5f64 Mon Sep 17 00:00:00 2001 From: Krista Pratico Date: Tue, 10 Aug 2021 09:49:00 -0700 Subject: [PATCH 032/104] update changelog date (#20158) --- sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md b/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md index 079139491a8e..fcfe223cf916 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md +++ b/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 3.1.2 (Unreleased) +## 3.1.2 (2021-08-10) ### Bugs Fixed - A `HttpResponseError` will be immediately raised when the call quota volume is exceeded in a `F0` tier Form Recognizer From 2d497d86de5e636063a17b02123b47f846ae6a5e Mon Sep 17 00:00:00 2001 From: Xiang Yan Date: Tue, 10 Aug 2021 10:21:50 -0700 Subject: [PATCH 033/104] Replace \u202f with space (#20205) --- .../tests/async_tests/base_testcase_aad_async.py | 4 ++-- .../tests/async_tests/base_testcase_async.py | 4 ++-- .../tests/async_tests/test_data_feeds_aad_async.py | 6 +++--- .../tests/async_tests/test_data_feeds_async.py | 6 +++--- .../azure-ai-metricsadvisor/tests/base_testcase.py | 4 ++-- .../azure-ai-metricsadvisor/tests/base_testcase_aad.py | 4 ++-- .../azure-ai-metricsadvisor/tests/test_data_feeds.py | 6 +++--- .../azure-ai-metricsadvisor/tests/test_data_feeds_aad.py | 6 +++--- 8 files changed, 20 insertions(+), 20 deletions(-) diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/base_testcase_aad_async.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/base_testcase_aad_async.py index 7d96f9a0ba65..cb06ff61a3f1 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/base_testcase_aad_async.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/base_testcase_aad_async.py @@ -164,7 +164,7 @@ async def _create_data_feed(self, name): name=name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query="select * from adsample2 where Timestamp = @StartTime" + query="select * from adsample2 where Timestamp = @StartTime" ), granularity="Daily", schema=DataFeedSchema( @@ -210,7 +210,7 @@ async def _create_data_feed_for_update(self, name): name=data_feed_name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query=u"select * from adsample2 where Timestamp = @StartTime" + query=u"select * from adsample2 where Timestamp = @StartTime" ), granularity=DataFeedGranularity( granularity_type="Daily", diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/base_testcase_async.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/base_testcase_async.py index 262dcc2d2512..e2c176abdb2f 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/base_testcase_async.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/base_testcase_async.py @@ -162,7 +162,7 @@ async def _create_data_feed(self, name): name=name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query="select * from adsample2 where Timestamp = @StartTime" + query="select * from adsample2 where Timestamp = @StartTime" ), granularity="Daily", schema=DataFeedSchema( @@ -208,7 +208,7 @@ async def _create_data_feed_for_update(self, name): name=data_feed_name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query=u"select * from adsample2 where Timestamp = @StartTime" + query=u"select * from adsample2 where Timestamp = @StartTime" ), granularity=DataFeedGranularity( granularity_type="Daily", diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_data_feeds_aad_async.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_data_feeds_aad_async.py index 42c83f44a370..7f29cf466c85 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_data_feeds_aad_async.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_data_feeds_aad_async.py @@ -45,7 +45,7 @@ async def test_create_simple_data_feed(self): name=data_feed_name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query="select * from adsample2 where Timestamp = @StartTime" + query="select * from adsample2 where Timestamp = @StartTime" ), granularity="Daily", schema=["cost", "revenue"], @@ -75,7 +75,7 @@ async def test_create_data_feed_from_sql_server(self): name=data_feed_name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query=u"select * from adsample2 where Timestamp = @StartTime" + query=u"select * from adsample2 where Timestamp = @StartTime" ), granularity=DataFeedGranularity( granularity_type="Daily", @@ -162,7 +162,7 @@ async def test_create_data_feed_from_sql_server_with_custom_values(self): name=data_feed_name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query=u"select * from adsample2 where Timestamp = @StartTime" + query=u"select * from adsample2 where Timestamp = @StartTime" ), granularity=DataFeedGranularity( granularity_type="Custom", diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_data_feeds_async.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_data_feeds_async.py index 019453154133..57857539392b 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_data_feeds_async.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_data_feeds_async.py @@ -45,7 +45,7 @@ async def test_create_simple_data_feed(self): name=data_feed_name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query="select * from adsample2 where Timestamp = @StartTime" + query="select * from adsample2 where Timestamp = @StartTime" ), granularity="Daily", schema=["cost", "revenue"], @@ -75,7 +75,7 @@ async def test_create_data_feed_from_sql_server(self): name=data_feed_name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query=u"select * from adsample2 where Timestamp = @StartTime" + query=u"select * from adsample2 where Timestamp = @StartTime" ), granularity=DataFeedGranularity( granularity_type="Daily", @@ -162,7 +162,7 @@ async def test_create_data_feed_from_sql_server_with_custom_values(self): name=data_feed_name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query=u"select * from adsample2 where Timestamp = @StartTime" + query=u"select * from adsample2 where Timestamp = @StartTime" ), granularity=DataFeedGranularity( granularity_type="Custom", diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/base_testcase.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/base_testcase.py index 111d2b661c3d..f488540ae1d6 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/base_testcase.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/base_testcase.py @@ -157,7 +157,7 @@ def _create_data_feed(self, name): name=name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query="select * from adsample2 where Timestamp = @StartTime" + query="select * from adsample2 where Timestamp = @StartTime" ), granularity="Daily", schema=DataFeedSchema( @@ -203,7 +203,7 @@ def _create_data_feed_for_update(self, name): name=data_feed_name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query=u"select * from adsample2 where Timestamp = @StartTime" + query=u"select * from adsample2 where Timestamp = @StartTime" ), granularity=DataFeedGranularity( granularity_type="Daily", diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/base_testcase_aad.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/base_testcase_aad.py index a40496c6753e..0e6c7c98e374 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/base_testcase_aad.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/base_testcase_aad.py @@ -159,7 +159,7 @@ def _create_data_feed(self, name): name=name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query="select * from adsample2 where Timestamp = @StartTime" + query="select * from adsample2 where Timestamp = @StartTime" ), granularity="Daily", schema=DataFeedSchema( @@ -205,7 +205,7 @@ def _create_data_feed_for_update(self, name): name=data_feed_name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query=u"select * from adsample2 where Timestamp = @StartTime" + query=u"select * from adsample2 where Timestamp = @StartTime" ), granularity=DataFeedGranularity( granularity_type="Daily", diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_data_feeds.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_data_feeds.py index 1ced9f53c68c..7983a9f14104 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_data_feeds.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_data_feeds.py @@ -43,7 +43,7 @@ def test_create_simple_data_feed(self): name=data_feed_name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query="select * from adsample2 where Timestamp = @StartTime" + query="select * from adsample2 where Timestamp = @StartTime" ), granularity="Daily", schema=["cost", "revenue"], @@ -71,7 +71,7 @@ def test_create_data_feed_from_sql_server(self): name=data_feed_name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query=u"select * from adsample2 where Timestamp = @StartTime" + query=u"select * from adsample2 where Timestamp = @StartTime" ), granularity=DataFeedGranularity( granularity_type="Daily", @@ -156,7 +156,7 @@ def test_create_data_feed_from_sql_server_with_custom_values(self): name=data_feed_name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query=u"select * from adsample2 where Timestamp = @StartTime" + query=u"select * from adsample2 where Timestamp = @StartTime" ), granularity=DataFeedGranularity( granularity_type="Custom", diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_data_feeds_aad.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_data_feeds_aad.py index 45ec5dc6727c..f4cf1ae05e6a 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_data_feeds_aad.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_data_feeds_aad.py @@ -43,7 +43,7 @@ def test_create_simple_data_feed(self): name=data_feed_name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query="select * from adsample2 where Timestamp = @StartTime" + query="select * from adsample2 where Timestamp = @StartTime" ), granularity="Daily", schema=["cost", "revenue"], @@ -71,7 +71,7 @@ def test_create_data_feed_from_sql_server(self): name=data_feed_name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query=u"select * from adsample2 where Timestamp = @StartTime" + query=u"select * from adsample2 where Timestamp = @StartTime" ), granularity=DataFeedGranularity( granularity_type="Daily", @@ -157,7 +157,7 @@ def test_create_data_feed_from_sql_server_with_custom_values(self): name=data_feed_name, source=SqlServerDataFeedSource( connection_string=self.sql_server_connection_string, - query=u"select * from adsample2 where Timestamp = @StartTime" + query=u"select * from adsample2 where Timestamp = @StartTime" ), granularity=DataFeedGranularity( granularity_type="Custom", From 7a9dad73cf65f9a7cab8bc1fe20e749fed833094 Mon Sep 17 00:00:00 2001 From: Rakshith Bhyravabhotla Date: Tue, 10 Aug 2021 10:35:26 -0700 Subject: [PATCH 034/104] Rename Visualization attribute (#20196) * Rename Visualization attribute * lint --- sdk/monitor/azure-monitor-query/CHANGELOG.md | 4 +++ sdk/monitor/azure-monitor-query/README.md | 2 +- .../azure/monitor/query/_logs_query_client.py | 14 ++++----- .../azure/monitor/query/_models.py | 29 ++++++++++--------- .../query/aio/_logs_query_client_async.py | 14 ++++----- .../tests/async/test_logs_client_async.py | 25 ++++++++++++++++ .../tests/test_logs_client.py | 23 +++++++++++++++ 7 files changed, 82 insertions(+), 29 deletions(-) diff --git a/sdk/monitor/azure-monitor-query/CHANGELOG.md b/sdk/monitor/azure-monitor-query/CHANGELOG.md index 9a18197b3a0d..90c1edbeb985 100644 --- a/sdk/monitor/azure-monitor-query/CHANGELOG.md +++ b/sdk/monitor/azure-monitor-query/CHANGELOG.md @@ -8,9 +8,13 @@ - Rename `batch_query` to `query_batch`. - Rename `LogsBatchQueryRequest` to `LogsBatchQuery`. +- `include_render` is now renamed to `include_visualization` in the query API. +- `LogsQueryResult` and `LogsBatchQueryResult` now return `visualization` instead of `render`. ### Bugs Fixed +- `include_statistics` and `include_visualization` args can now work together. + ### Other Changes ## 1.0.0b3 (2021-08-09) diff --git a/sdk/monitor/azure-monitor-query/README.md b/sdk/monitor/azure-monitor-query/README.md index 74c40110734d..6ba734f6bd96 100644 --- a/sdk/monitor/azure-monitor-query/README.md +++ b/sdk/monitor/azure-monitor-query/README.md @@ -223,7 +223,7 @@ LogsQueryResult / LogsBatchQueryResult |---id (this exists in `LogsBatchQueryResult` object only) |---status (this exists in `LogsBatchQueryResult` object only) |---statistics -|---render +|---visualization |---error |---tables (list of `LogsQueryResultTable` objects) |---name diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_logs_query_client.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_logs_query_client.py index 05b5d83a8d3e..f23157cfca03 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_logs_query_client.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_logs_query_client.py @@ -74,9 +74,9 @@ def query(self, workspace_id, query, duration=None, **kwargs): :keyword int server_timeout: the server timeout in seconds. The default timeout is 3 minutes, and the maximum timeout is 10 minutes. :keyword bool include_statistics: To get information about query statistics. - :keyword bool include_render: In the query language, it is possible to specify different render options. - By default, the API does not return information regarding the type of visualization to show. - If your client requires this information, specify the preference + :keyword bool include_visualization: In the query language, it is possible to specify different + visualization options. By default, the API does not return information regarding the type of + visualization to show. If your client requires this information, specify the preference :keyword additional_workspaces: A list of workspaces that are included in the query. These can be qualified workspace names, workspace Ids, or Azure resource Ids. :paramtype additional_workspaces: list[str] @@ -97,7 +97,7 @@ def query(self, workspace_id, query, duration=None, **kwargs): end = kwargs.pop('end_time', None) timespan = construct_iso8601(start, end, duration) include_statistics = kwargs.pop("include_statistics", False) - include_render = kwargs.pop("include_render", False) + include_visualization = kwargs.pop("include_visualization", False) server_timeout = kwargs.pop("server_timeout", None) workspaces = kwargs.pop("additional_workspaces", None) @@ -106,11 +106,11 @@ def query(self, workspace_id, query, duration=None, **kwargs): prefer += "wait=" + str(server_timeout) if include_statistics: if len(prefer) > 0: - prefer += " " + prefer += "," prefer += "include-statistics=true" - if include_render: + if include_visualization: if len(prefer) > 0: - prefer += " " + prefer += "," prefer += "include-render=true" body = LogsQueryBody( diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py index 4c17370450fb..6f3372a2f53d 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py @@ -72,9 +72,9 @@ class LogsQueryResult(object): :ivar statistics: This will include a statistics property in the response that describes various performance statistics such as query execution time and resource usage. :vartype statistics: object - :ivar render: This will include a render property in the response that specifies the type of + :ivar visualization: This will include a visualization property in the response that specifies the type of visualization selected by the query and any properties for that visualization. - :vartype render: object + :vartype visualization: object :ivar error: Any error info. :vartype error: object """ @@ -82,7 +82,7 @@ def __init__(self, **kwargs): # type: (Any) -> None self.tables = kwargs.get("tables", None) self.statistics = kwargs.get("statistics", None) - self.render = kwargs.get("render", None) + self.visualization = kwargs.get("visualization", None) self.error = kwargs.get("error", None) @classmethod @@ -99,7 +99,7 @@ def _from_generated(cls, generated): return cls( tables=tables, statistics=generated.statistics, - render=generated.render, + visualization=generated.render, error=generated.error ) @@ -173,8 +173,9 @@ class LogsBatchQuery(object): :keyword int server_timeout: the server timeout. The default timeout is 3 minutes, and the maximum timeout is 10 minutes. :keyword bool include_statistics: To get information about query statistics. - :keyword bool include_render: In the query language, it is possible to specify different render options. - By default, the API does not return information regarding the type of visualization to show. + :keyword bool include_visualization: In the query language, it is possible to specify different + visualization options. By default, the API does not return information regarding the type of + visualization to show. :keyword headers: Dictionary of :code:``. :paramtype headers: dict[str, str] """ @@ -182,18 +183,18 @@ class LogsBatchQuery(object): def __init__(self, query, workspace_id, duration=None, **kwargs): #pylint: disable=super-init-not-called # type: (str, str, Optional[str], Any) -> None include_statistics = kwargs.pop("include_statistics", False) - include_render = kwargs.pop("include_render", False) + include_visualization = kwargs.pop("include_visualization", False) server_timeout = kwargs.pop("server_timeout", None) prefer = "" if server_timeout: prefer += "wait=" + str(server_timeout) if include_statistics: if len(prefer) > 0: - prefer += " " + prefer += "," prefer += "include-statistics=true" - if include_render: + if include_visualization: if len(prefer) > 0: - prefer += " " + prefer += "," prefer += "include-render=true" headers = kwargs.get("headers", None) @@ -232,9 +233,9 @@ class LogsBatchQueryResult(object): :ivar statistics: This will include a statistics property in the response that describes various performance statistics such as query execution time and resource usage. :vartype statistics: object - :ivar render: This will include a render property in the response that specifies the type of + :ivar visualization: This will include a visualization property in the response that specifies the type of visualization selected by the query and any properties for that visualization. - :vartype render: object + :vartype visualization: object :ivar error: Any error info. :vartype error: object """ @@ -247,7 +248,7 @@ def __init__( self.tables = kwargs.get('tables', None) self.error = kwargs.get('error', None) self.statistics = kwargs.get('statistics', None) - self.render = kwargs.get('render', None) + self.visualization = kwargs.get('visualization', None) @classmethod def _from_generated(cls, generated): @@ -265,7 +266,7 @@ def _from_generated(cls, generated): status=generated.status, tables=tables, statistics=generated.body.statistics, - render=generated.body.render, + visualization=generated.body.render, error=generated.body.error ) diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_logs_query_client_async.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_logs_query_client_async.py index 2557ef11d44e..e68cf4f3983b 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_logs_query_client_async.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_logs_query_client_async.py @@ -67,9 +67,9 @@ async def query( :keyword int server_timeout: the server timeout. The default timeout is 3 minutes, and the maximum timeout is 10 minutes. :keyword bool include_statistics: To get information about query statistics. - :keyword bool include_render: In the query language, it is possible to specify different render options. - By default, the API does not return information regarding the type of visualization to show. - If your client requires this information, specify the preference + :keyword bool include_visualization: In the query language, it is possible to specify different + visualization options. By default, the API does not return information regarding the type of + visualization to show. If your client requires this information, specify the preference :keyword additional_workspaces: A list of workspaces that are included in the query. These can be qualified workspace names, workspsce Ids or Azure resource Ids. :paramtype additional_workspaces: list[str] @@ -81,7 +81,7 @@ async def query( end = kwargs.pop('end_time', None) timespan = construct_iso8601(start, end, duration) include_statistics = kwargs.pop("include_statistics", False) - include_render = kwargs.pop("include_render", False) + include_visualization = kwargs.pop("include_visualization", False) server_timeout = kwargs.pop("server_timeout", None) additional_workspaces = kwargs.pop("additional_workspaces", None) @@ -90,11 +90,11 @@ async def query( prefer += "wait=" + str(server_timeout) if include_statistics: if len(prefer) > 0: - prefer += ";" + prefer += "," prefer += "include-statistics=true" - if include_render: + if include_visualization: if len(prefer) > 0: - prefer += ";" + prefer += "," prefer += "include-render=true" body = LogsQueryBody( diff --git a/sdk/monitor/azure-monitor-query/tests/async/test_logs_client_async.py b/sdk/monitor/azure-monitor-query/tests/async/test_logs_client_async.py index ec67406b13d2..4568d2caf48c 100644 --- a/sdk/monitor/azure-monitor-query/tests/async/test_logs_client_async.py +++ b/sdk/monitor/azure-monitor-query/tests/async/test_logs_client_async.py @@ -114,3 +114,28 @@ async def test_logs_query_batch_additional_workspaces(): for resp in response: assert len(resp.tables[0].rows) == 2 + +@pytest.mark.live_test_only +@pytest.mark.asyncio +async def test_logs_single_query_with_render(): + credential = _credential() + client = LogsQueryClient(credential) + query = """AppRequests""" + + # returns LogsQueryResult + response = await client.query(os.environ['LOG_WORKSPACE_ID'], query, include_visualization=True) + + assert response.visualization is not None + +@pytest.mark.live_test_only +@pytest.mark.asyncio +async def test_logs_single_query_with_render_and_stats(): + credential = _credential() + client = LogsQueryClient(credential) + query = """AppRequests""" + + # returns LogsQueryResult + response = await client.query(os.environ['LOG_WORKSPACE_ID'], query, include_visualization=True, include_statistics=True) + + assert response.visualization is not None + assert response.statistics is not None diff --git a/sdk/monitor/azure-monitor-query/tests/test_logs_client.py b/sdk/monitor/azure-monitor-query/tests/test_logs_client.py index 08c605fff41b..2f46e16b74d8 100644 --- a/sdk/monitor/azure-monitor-query/tests/test_logs_client.py +++ b/sdk/monitor/azure-monitor-query/tests/test_logs_client.py @@ -97,6 +97,29 @@ def test_logs_single_query_with_statistics(): assert response.statistics is not None +@pytest.mark.live_test_only +def test_logs_single_query_with_render(): + credential = _credential() + client = LogsQueryClient(credential) + query = """AppRequests""" + + # returns LogsQueryResult + response = client.query(os.environ['LOG_WORKSPACE_ID'], query, include_visualization=True) + + assert response.visualization is not None + +@pytest.mark.live_test_only +def test_logs_single_query_with_render_and_stats(): + credential = _credential() + client = LogsQueryClient(credential) + query = """AppRequests""" + + # returns LogsQueryResult + response = client.query(os.environ['LOG_WORKSPACE_ID'], query, include_visualization=True, include_statistics=True) + + assert response.visualization is not None + assert response.statistics is not None + @pytest.mark.live_test_only def test_logs_query_batch_with_statistics_in_some(): client = LogsQueryClient(_credential()) From 7bf36210e5de014e78b90c4a1cd1df5b5513303e Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Tue, 10 Aug 2021 10:35:42 -0700 Subject: [PATCH 035/104] Increment package version after release of azure-ai-translation-document (#20207) --- .../azure-ai-translation-document/CHANGELOG.md | 10 ++++++++++ .../azure/ai/translation/document/_version.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/sdk/translation/azure-ai-translation-document/CHANGELOG.md b/sdk/translation/azure-ai-translation-document/CHANGELOG.md index 0cd57f540f68..cd7f3e49341c 100644 --- a/sdk/translation/azure-ai-translation-document/CHANGELOG.md +++ b/sdk/translation/azure-ai-translation-document/CHANGELOG.md @@ -1,5 +1,15 @@ # Release History +## 1.0.0b5 (Unreleased) + +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes + ## 1.0.0b4 (2021-08-10) ### Features Added diff --git a/sdk/translation/azure-ai-translation-document/azure/ai/translation/document/_version.py b/sdk/translation/azure-ai-translation-document/azure/ai/translation/document/_version.py index aafed48d4261..e7c6e5b64eca 100644 --- a/sdk/translation/azure-ai-translation-document/azure/ai/translation/document/_version.py +++ b/sdk/translation/azure-ai-translation-document/azure/ai/translation/document/_version.py @@ -4,4 +4,4 @@ # Licensed under the MIT License. # ------------------------------------ -VERSION = "1.0.0b4" +VERSION = "1.0.0b5" From 0b647c598b14306a99712da306f54ddba9cba1e4 Mon Sep 17 00:00:00 2001 From: Charles Lowell Date: Tue, 10 Aug 2021 11:04:40 -0700 Subject: [PATCH 036/104] Fix perf tests (#20201) --- .../azure/identity/_persistent_cache.py | 2 +- .../perfstress_tests/bearer_token_auth_policy.py | 11 ++++++----- .../tests/perfstress_tests/persistent_cache_read.py | 7 +++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/sdk/identity/azure-identity/azure/identity/_persistent_cache.py b/sdk/identity/azure-identity/azure/identity/_persistent_cache.py index ed7bb929afda..0630de2d9f62 100644 --- a/sdk/identity/azure-identity/azure/identity/_persistent_cache.py +++ b/sdk/identity/azure-identity/azure/identity/_persistent_cache.py @@ -90,7 +90,7 @@ def _get_persistence(allow_unencrypted, account_name, cache_name): if not allow_unencrypted: raise ValueError( "PyGObject is required to encrypt the persistent cache. Please install that library or " - + 'specify "allow_unencrypted_cache=True" to store the cache without encryption.' + + 'specify "allow_unencrypted_storage=True" to store the cache without encryption.' ) return msal_extensions.FilePersistence(file_path) diff --git a/sdk/identity/azure-identity/tests/perfstress_tests/bearer_token_auth_policy.py b/sdk/identity/azure-identity/tests/perfstress_tests/bearer_token_auth_policy.py index 1f3508295120..9fcb80001a2d 100644 --- a/sdk/identity/azure-identity/tests/perfstress_tests/bearer_token_auth_policy.py +++ b/sdk/identity/azure-identity/tests/perfstress_tests/bearer_token_auth_policy.py @@ -26,12 +26,13 @@ def __init__(self, arguments): credential = Mock(get_token=Mock(return_value=token)) self.pipeline = Pipeline(transport=Mock(), policies=[BearerTokenCredentialPolicy(credential=credential)]) - completed_future = asyncio.Future() - completed_future.set_result(token) - async_credential = Mock(get_token=Mock(return_value=completed_future)) + get_token_future = asyncio.Future() + get_token_future.set_result(token) + async_credential = Mock(get_token=Mock(return_value=get_token_future)) - # returning a token is okay because the policy does nothing with the transport's response - async_transport = Mock(send=Mock(return_value=completed_future)) + send_future = asyncio.Future() + send_future.set_result(Mock()) + async_transport = Mock(send=Mock(return_value=send_future)) self.async_pipeline = AsyncPipeline( async_transport, policies=[AsyncBearerTokenCredentialPolicy(credential=async_credential)] ) diff --git a/sdk/identity/azure-identity/tests/perfstress_tests/persistent_cache_read.py b/sdk/identity/azure-identity/tests/perfstress_tests/persistent_cache_read.py index 64761ee76baf..b15800650d98 100644 --- a/sdk/identity/azure-identity/tests/perfstress_tests/persistent_cache_read.py +++ b/sdk/identity/azure-identity/tests/perfstress_tests/persistent_cache_read.py @@ -22,11 +22,10 @@ def __init__(self, arguments): client_id = self.get_from_env("AZURE_CLIENT_ID") tenant_id = self.get_from_env("AZURE_TENANT_ID") secret = self.get_from_env("AZURE_CLIENT_SECRET") - self.credential = ClientSecretCredential( - tenant_id, client_id, secret, cache_persistence_options=TokenCachePersistenceOptions() - ) + cache_options = TokenCachePersistenceOptions(allow_unencrypted_storage=True) + self.credential = ClientSecretCredential(tenant_id, client_id, secret, cache_persistence_options=cache_options) self.async_credential = AsyncClientSecretCredential( - tenant_id, client_id, secret, cache_persistence_options=TokenCachePersistenceOptions() + tenant_id, client_id, secret, cache_persistence_options=cache_options ) self.scope = "https://vault.azure.net/.default" From b770896123c8afee83663090f773be2f7c0b3f1a Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Tue, 10 Aug 2021 11:11:28 -0700 Subject: [PATCH 037/104] Increment version for identity releases (#20209) Increment package version after release of azure-identity --- sdk/identity/azure-identity/CHANGELOG.md | 10 ++++++++++ sdk/identity/azure-identity/azure/identity/_version.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/sdk/identity/azure-identity/CHANGELOG.md b/sdk/identity/azure-identity/CHANGELOG.md index 0583dd350fba..0bbd7c8b75cd 100644 --- a/sdk/identity/azure-identity/CHANGELOG.md +++ b/sdk/identity/azure-identity/CHANGELOG.md @@ -1,5 +1,15 @@ # Release History +## 1.7.0b4 (Unreleased) + +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes + ## 1.7.0b3 (2021-08-10) ### Breaking Changes diff --git a/sdk/identity/azure-identity/azure/identity/_version.py b/sdk/identity/azure-identity/azure/identity/_version.py index 406e6701be67..46754f3b4a50 100644 --- a/sdk/identity/azure-identity/azure/identity/_version.py +++ b/sdk/identity/azure-identity/azure/identity/_version.py @@ -2,4 +2,4 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -VERSION = "1.7.0b3" +VERSION = "1.7.0b4" From 4bc6d694d6145b57e828ef72439d2fe5fafb9dc5 Mon Sep 17 00:00:00 2001 From: Scott Beddall <45376673+scbedd@users.noreply.github.com> Date: Tue, 10 Aug 2021 11:59:17 -0700 Subject: [PATCH 038/104] Use old resolver for regression tests. (#20210) * regression_test_tools.txt and regression_tools.txt --- .../templates/steps/test_regression.yml | 2 +- eng/regression_test_tools.txt | 31 ++++++++++++++++ eng/regression_tools.txt | 37 +++++++++++++++++++ scripts/devops_tasks/test_regression.py | 2 +- 4 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 eng/regression_test_tools.txt create mode 100644 eng/regression_tools.txt diff --git a/eng/pipelines/templates/steps/test_regression.yml b/eng/pipelines/templates/steps/test_regression.yml index a14aaffde470..9d50fb4f2173 100644 --- a/eng/pipelines/templates/steps/test_regression.yml +++ b/eng/pipelines/templates/steps/test_regression.yml @@ -16,7 +16,7 @@ steps: targetPath: $(Build.ArtifactStagingDirectory) - script: | - pip install -r eng/ci_tools.txt + pip install -r eng/regression_tools.txt displayName: 'Prep Environment' - template: ../steps/set-dev-build.yml diff --git a/eng/regression_test_tools.txt b/eng/regression_test_tools.txt new file mode 100644 index 000000000000..ba4de2b1efe8 --- /dev/null +++ b/eng/regression_test_tools.txt @@ -0,0 +1,31 @@ +pip==20.2 + +# requirements leveraged by ci for testing +pytest==4.6.9; python_version == '2.7' +pytest==5.4.2; python_version >= '3.5' +pytest-asyncio==0.12.0; python_version >= '3.5' +pytest-cov==2.8.1 +pytest-custom-exit-code==0.3.0 +pytest-xdist==1.32.0 +# we pin coverage to 4.5.4 because there is an bug with `pytest-cov`. the generated coverage files cannot be `coverage combine`ed +coverage==4.5.4 +bandit==1.6.2 + +# locking packages defined as deps from azure-sdk-tools or azure-devtools +pytoml==0.1.21 +readme-renderer[md]==25.0 +pyOpenSSL==19.1.0 +json-delta==2.0 +ConfigArgParse==1.2.3 +six==1.14.0 +pyyaml==5.3.1 +packaging==20.4 +wheel==0.34.2 +Jinja2==2.11.2 + +# Locking pylint and required packages +pylint==1.8.4; python_version < '3.4' +pylint==2.5.2; python_version >= '3.4' + +# python-dotenv +python-dotenv==0.15.0 \ No newline at end of file diff --git a/eng/regression_tools.txt b/eng/regression_tools.txt new file mode 100644 index 000000000000..1bc5a20fe5ec --- /dev/null +++ b/eng/regression_tools.txt @@ -0,0 +1,37 @@ +# requirements leveraged by ci tools +cryptography==3.1 +setuptools==44.1.0; python_version == '2.7' +setuptools==46.4.0; python_version >= '3.5' +virtualenv==20.0.23 +wheel==0.34.2 +Jinja2==2.11.2 +packaging==20.4 +tox==3.15.0 +tox-monorepo==0.1.2 +twine==1.15.0; python_version == '2.7' or python_version == '3.5' +twine==3.1.1; python_version >= '3.6' +pathlib2==2.3.5 +readme-renderer[md]==25.0 +doc-warden==0.7.1 +# we pin coverage to 4.5.4 because there is an bug with `pytest-cov`. the generated coverage files cannot be `coverage combine`ed +coverage==4.5.4 +codecov==2.1.0 +beautifulsoup4==4.9.1 +pkginfo==1.5.0.1 +pip==20.2 +black==21.6b0; python_version >= '3.6' + +# locking packages defined as deps from azure-sdk-tools or azure-devtools +pytoml==0.1.21 +pyOpenSSL==19.1.0 +json-delta==2.0 +ConfigArgParse==1.2.3 +six==1.14.0 +pyyaml==5.3.1 +pytest==5.4.2; python_version >= '3.5' +pytest==4.6.9; python_version == '2.7' +pytest-cov==2.8.1 + +# local dev packages +./tools/azure-devtools +./tools/azure-sdk-tools diff --git a/scripts/devops_tasks/test_regression.py b/scripts/devops_tasks/test_regression.py index 0ec35ee92348..8c9491a01efd 100644 --- a/scripts/devops_tasks/test_regression.py +++ b/scripts/devops_tasks/test_regression.py @@ -32,7 +32,7 @@ AZURE_GLOB_STRING = "azure*" root_dir = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "..", "..")) -test_tools_req_file = os.path.abspath(os.path.join(root_dir, "eng", "test_tools.txt")) +test_tools_req_file = os.path.abspath(os.path.join(root_dir, "eng", "regression_test_tools.txt")) GIT_REPO_NAME = "azure-sdk-for-python" GIT_MASTER_BRANCH = "main" From 9a0bee67bf60872b3a5578eb279153754ffe2ffd Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Tue, 10 Aug 2021 12:53:47 -0700 Subject: [PATCH 039/104] Increment version for servicebus releases (#20214) Increment package version after release of azure-servicebus --- sdk/servicebus/azure-servicebus/CHANGELOG.md | 10 ++++++++++ .../azure-servicebus/azure/servicebus/_version.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/sdk/servicebus/azure-servicebus/CHANGELOG.md b/sdk/servicebus/azure-servicebus/CHANGELOG.md index ad3a2300e074..95a90fd0783e 100644 --- a/sdk/servicebus/azure-servicebus/CHANGELOG.md +++ b/sdk/servicebus/azure-servicebus/CHANGELOG.md @@ -1,5 +1,15 @@ # Release History +## 7.3.3 (Unreleased) + +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes + ## 7.3.2 (2021-08-10) ### Bugs Fixed diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_version.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_version.py index 1f5b74d30eb1..c82eac62f190 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_version.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/_version.py @@ -3,4 +3,4 @@ # Licensed under the MIT License. # ------------------------------------ -VERSION = "7.3.2" +VERSION = "7.3.3" From 48db5874d4f9348b532053be97b535b470c0b94c Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Tue, 10 Aug 2021 13:15:59 -0700 Subject: [PATCH 040/104] Increment package version after release of azure-ai-formrecognizer (#20215) --- .../azure-ai-formrecognizer/CHANGELOG.md | 10 ++++++++++ .../azure/ai/formrecognizer/_version.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md b/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md index fcfe223cf916..897327e91545 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md +++ b/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md @@ -1,5 +1,15 @@ # Release History +## 3.1.3 (Unreleased) + +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes + ## 3.1.2 (2021-08-10) ### Bugs Fixed diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_version.py b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_version.py index 8c61fbabb684..db3fa7df6743 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_version.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_version.py @@ -4,4 +4,4 @@ # Licensed under the MIT License. # ------------------------------------ -VERSION = "3.1.2" +VERSION = "3.1.3" From 190770a145b7ed56bb2f30b1952c8c8ae2cdf3f1 Mon Sep 17 00:00:00 2001 From: Xiang Yan Date: Tue, 10 Aug 2021 13:40:04 -0700 Subject: [PATCH 041/104] run black on search & ma (#20213) * run black on core, search & ma * update * update --- .../azure-ai-metricsadvisor/azure/__init__.py | 2 +- .../azure/ai/__init__.py | 2 +- .../azure/ai/metricsadvisor/_helpers.py | 137 +- .../_metrics_advisor_administration_client.py | 294 ++- .../metricsadvisor/_metrics_advisor_client.py | 251 +- .../_metrics_advisor_key_credential.py | 14 +- .../_metrics_advisor_key_credential_policy.py | 5 +- .../azure/ai/metricsadvisor/aio/__init__.py | 9 +- ...ics_advisor_administration_client_async.py | 334 ++- .../aio/_metrics_advisor_client_async.py | 251 +- .../ai/metricsadvisor/models/__init__.py | 4 +- .../azure/ai/metricsadvisor/models/_models.py | 2281 +++++++++-------- .../azure/search/documents/_api_versions.py | 2 + .../search/documents/_generated/__init__.py | 4 +- .../documents/_generated/_configuration.py | 36 +- .../documents/_generated/_search_client.py | 25 +- .../documents/_generated/aio/__init__.py | 3 +- .../_generated/aio/_configuration.py | 47 +- .../_generated/aio/_search_client.py | 40 +- .../_generated/aio/operations/__init__.py | 2 +- .../aio/operations/_documents_operations.py | 674 +++-- .../documents/_generated/models/__init__.py | 60 +- .../documents/_generated/models/_models.py | 629 +++-- .../_generated/models/_models_py3.py | 410 ++- .../_generated/models/_search_client_enums.py | 18 +- .../_generated/operations/__init__.py | 2 +- .../operations/_documents_operations.py | 634 +++-- .../documents/_index_documents_batch.py | 15 +- .../azure/search/documents/_paging.py | 13 +- .../azure/search/documents/_queries.py | 16 +- .../azure/search/documents/_search_client.py | 36 +- .../documents/_search_documents_error.py | 1 + .../_search_indexing_buffered_sender.py | 58 +- .../_search_indexing_buffered_sender_base.py | 24 +- .../azure/search/documents/_utils.py | 8 +- .../aio/_index_documents_batch_async.py | 3 +- .../azure/search/documents/aio/_paging.py | 9 +- .../documents/aio/_search_client_async.py | 49 +- .../_search_indexing_buffered_sender_async.py | 88 +- .../search/documents/aio/_utils_async.py | 5 +- .../documents/indexes/_search_index_client.py | 43 +- .../indexes/_search_indexer_client.py | 30 +- .../azure/search/documents/indexes/_utils.py | 8 +- .../indexes/aio/_search_index_client.py | 52 +- .../indexes/aio/_search_indexer_client.py | 36 +- .../search/documents/indexes/models/_index.py | 182 +- .../documents/indexes/models/_models.py | 239 +- 47 files changed, 4066 insertions(+), 3019 deletions(-) diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/__init__.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/__init__.py index 0d1f7edf5dc6..d55ccad1f573 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/__init__.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/__init__.py @@ -1 +1 @@ -__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: ignore +__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/__init__.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/__init__.py index 0d1f7edf5dc6..d55ccad1f573 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/__init__.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/__init__.py @@ -1 +1 @@ -__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: ignore +__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_helpers.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_helpers.py index 787cce70033c..a89399c1686e 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_helpers.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_helpers.py @@ -6,10 +6,7 @@ # pylint: disable=protected-access -from typing import ( - Union, - TYPE_CHECKING -) +from typing import Union, TYPE_CHECKING import datetime import six from msrest import Serializer @@ -28,10 +25,11 @@ DatasourceSqlConnectionString, DatasourceDataLakeGen2SharedKey, DatasourceServicePrincipal, - DatasourceServicePrincipalInKeyVault + DatasourceServicePrincipalInKeyVault, ) from ._metrics_advisor_key_credential import MetricsAdvisorKeyCredential from ._metrics_advisor_key_credential_policy import MetricsAdvisorKeyCredentialPolicy + if TYPE_CHECKING: from ._generated.models import MetricFeedback @@ -39,10 +37,14 @@ def construct_alert_config_dict(update_kwargs): if "metricAlertingConfigurations" in update_kwargs: - update_kwargs["metricAlertingConfigurations"] = [ - config._to_generated() for config in - update_kwargs["metricAlertingConfigurations"] - ] if update_kwargs["metricAlertingConfigurations"] else None + update_kwargs["metricAlertingConfigurations"] = ( + [ + config._to_generated() + for config in update_kwargs["metricAlertingConfigurations"] + ] + if update_kwargs["metricAlertingConfigurations"] + else None + ) return update_kwargs @@ -50,16 +52,29 @@ def construct_alert_config_dict(update_kwargs): def construct_detection_config_dict(update_kwargs): if "wholeMetricConfiguration" in update_kwargs: - update_kwargs["wholeMetricConfiguration"] = update_kwargs["wholeMetricConfiguration"]._to_generated_patch() \ - if update_kwargs["wholeMetricConfiguration"] else None + update_kwargs["wholeMetricConfiguration"] = ( + update_kwargs["wholeMetricConfiguration"]._to_generated_patch() + if update_kwargs["wholeMetricConfiguration"] + else None + ) if "dimensionGroupOverrideConfigurations" in update_kwargs: - update_kwargs["dimensionGroupOverrideConfigurations"] = [ - group._to_generated() for group in update_kwargs["dimensionGroupOverrideConfigurations"] - ] if update_kwargs["dimensionGroupOverrideConfigurations"] else None + update_kwargs["dimensionGroupOverrideConfigurations"] = ( + [ + group._to_generated() + for group in update_kwargs["dimensionGroupOverrideConfigurations"] + ] + if update_kwargs["dimensionGroupOverrideConfigurations"] + else None + ) if "seriesOverrideConfigurations" in update_kwargs: - update_kwargs["seriesOverrideConfigurations"] = [ - series._to_generated() for series in update_kwargs["seriesOverrideConfigurations"] - ] if update_kwargs["seriesOverrideConfigurations"] else None + update_kwargs["seriesOverrideConfigurations"] = ( + [ + series._to_generated() + for series in update_kwargs["seriesOverrideConfigurations"] + ] + if update_kwargs["seriesOverrideConfigurations"] + else None + ) return update_kwargs @@ -71,9 +86,16 @@ def construct_hook_dict(update_kwargs, hook_type): update_kwargs["hookParameter"] = {} update_kwargs["hookParameter"]["toList"] = update_kwargs["toList"] update_kwargs.pop("toList") - elif hook_type.lower() == "web" \ - and any(key in update_kwargs for key in - ["endpoint", "username", "password", "certificateKey", "certificatePassword"]): + elif hook_type.lower() == "web" and any( + key in update_kwargs + for key in [ + "endpoint", + "username", + "password", + "certificateKey", + "certificatePassword", + ] + ): update_kwargs["hookType"] = "Webhook" update_kwargs["hookParameter"] = {} if "endpoint" in update_kwargs: @@ -83,38 +105,50 @@ def construct_hook_dict(update_kwargs, hook_type): if "password" in update_kwargs: update_kwargs["hookParameter"]["password"] = update_kwargs.pop("password") if "certificateKey" in update_kwargs: - update_kwargs["hookParameter"]["certificateKey"] = update_kwargs.pop("certificateKey") + update_kwargs["hookParameter"]["certificateKey"] = update_kwargs.pop( + "certificateKey" + ) if "certificatePassword" in update_kwargs: - update_kwargs["hookParameter"]["certificatePassword"] = update_kwargs.pop("certificatePassword") + update_kwargs["hookParameter"]["certificatePassword"] = update_kwargs.pop( + "certificatePassword" + ) return update_kwargs def construct_data_feed_dict(update_kwargs): if "dataStartFrom" in update_kwargs: - update_kwargs["dataStartFrom"] = Serializer.serialize_iso(update_kwargs["dataStartFrom"]) + update_kwargs["dataStartFrom"] = Serializer.serialize_iso( + update_kwargs["dataStartFrom"] + ) if "dataSourceParameter" in update_kwargs: - update_kwargs["authenticationType"] = update_kwargs["dataSourceParameter"].authentication_type - update_kwargs["credentialId"] = update_kwargs["dataSourceParameter"].credential_id - update_kwargs["dataSourceParameter"] = update_kwargs["dataSourceParameter"]._to_generated_patch() + update_kwargs["authenticationType"] = update_kwargs[ + "dataSourceParameter" + ].authentication_type + update_kwargs["credentialId"] = update_kwargs[ + "dataSourceParameter" + ].credential_id + update_kwargs["dataSourceParameter"] = update_kwargs[ + "dataSourceParameter" + ]._to_generated_patch() return update_kwargs def convert_to_generated_data_feed_type( - generated_feed_type, - name, - source, - granularity, - schema, - ingestion_settings, - admins=None, - data_feed_description=None, - missing_data_point_fill_settings=None, - rollup_settings=None, - viewers=None, - access_mode=None, - action_link_template=None + generated_feed_type, + name, + source, + granularity, + schema, + ingestion_settings, + admins=None, + data_feed_description=None, + missing_data_point_fill_settings=None, + rollup_settings=None, + viewers=None, + access_mode=None, + action_link_template=None, ): """Convert input to data feed generated model type @@ -178,7 +212,9 @@ def convert_to_generated_data_feed_type( granularity_name=granularity.granularity_type, granularity_amount=granularity.custom_granularity_value, metrics=[metric._to_generated() for metric in schema.metrics], - dimension=[dimension._to_generated() for dimension in schema.dimensions] if schema.dimensions else None, + dimension=[dimension._to_generated() for dimension in schema.dimensions] + if schema.dimensions + else None, timestamp_column=schema.timestamp_column, data_start_from=ingestion_settings.ingestion_begin_time, max_concurrency=ingestion_settings.data_source_request_concurrency, @@ -187,22 +223,28 @@ def convert_to_generated_data_feed_type( stop_retry_after_in_seconds=ingestion_settings.stop_retry_after, data_feed_description=data_feed_description, need_rollup=DataFeedRollupType._to_generated(rollup_settings.rollup_type) - if rollup_settings else None, + if rollup_settings + else None, roll_up_method=rollup_settings.rollup_method if rollup_settings else None, roll_up_columns=rollup_settings.auto_rollup_group_by_column_names - if rollup_settings else None, + if rollup_settings + else None, all_up_identification=rollup_settings.rollup_identification_value - if rollup_settings else None, + if rollup_settings + else None, fill_missing_point_type=missing_data_point_fill_settings.fill_type - if missing_data_point_fill_settings else None, + if missing_data_point_fill_settings + else None, fill_missing_point_value=missing_data_point_fill_settings.custom_fill_value - if missing_data_point_fill_settings else None, + if missing_data_point_fill_settings + else None, viewers=viewers, view_mode=access_mode, admins=admins, - action_link_template=action_link_template + action_link_template=action_link_template, ) + def convert_to_sub_feedback(feedback): # type: (MetricFeedback) -> Union[AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback] if feedback.feedback_type == "Anomaly": @@ -215,6 +257,7 @@ def convert_to_sub_feedback(feedback): return PeriodFeedback._from_generated(feedback) # type: ignore raise HttpResponseError("Invalid feedback type returned in the response.") + def convert_datetime(date_time): # type: (Union[str, datetime.datetime]) -> datetime.datetime if isinstance(date_time, datetime.datetime): @@ -229,6 +272,7 @@ def convert_datetime(date_time): return datetime.datetime.strptime(date_time, "%Y-%m-%d %H:%M:%S") raise TypeError("Bad datetime type") + def get_authentication_policy(credential): authentication_policy = None if credential is None: @@ -243,6 +287,7 @@ def get_authentication_policy(credential): return authentication_policy + def convert_to_datasource_credential(datasource_credential): if datasource_credential.data_source_credential_type == "AzureSQLConnectionString": return DatasourceSqlConnectionString._from_generated(datasource_credential) diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_administration_client.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_administration_client.py index f56697f41c9d..1955c77ffcb7 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_administration_client.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_administration_client.py @@ -7,18 +7,13 @@ # pylint: disable=protected-access # pylint: disable=too-many-lines -from typing import ( - Any, - List, - Union, - cast, - TYPE_CHECKING -) +from typing import Any, List, Union, cast, TYPE_CHECKING import datetime import six from azure.core.tracing.decorator import distributed_trace -from ._generated._microsoft_azure_metrics_advisor_restapi_open_ap_iv2 \ - import MicrosoftAzureMetricsAdvisorRESTAPIOpenAPIV2 as _Client +from ._generated._microsoft_azure_metrics_advisor_restapi_open_ap_iv2 import ( + MicrosoftAzureMetricsAdvisorRESTAPIOpenAPIV2 as _Client, +) from ._generated.models import ( AnomalyAlertingConfiguration as _AnomalyAlertingConfiguration, AzureApplicationInsightsDataFeed as _AzureApplicationInsightsDataFeed, @@ -99,7 +94,7 @@ DataFeedSchema, DataFeedIngestionSettings, NotificationHook, - MetricDetectionCondition + MetricDetectionCondition, ) from ._metrics_advisor_key_credential import MetricsAdvisorKeyCredential @@ -139,7 +134,7 @@ "PostgreSql": _PostgreSqlDataFeed, "MongoDB": _MongoDBDataFeed, "AzureDataLakeStorageGen2": _AzureDataLakeStorageGen2DataFeed, - "AzureEventHubs": _AzureEventHubsDataFeed + "AzureEventHubs": _AzureEventHubsDataFeed, } @@ -156,11 +151,13 @@ "PostgreSql": _PostgreSqlDataFeedPatch, "MongoDB": _MongoDBDataFeedPatch, "AzureDataLakeStorageGen2": _AzureDataLakeStorageGen2DataFeedPatch, - "AzureLogAnalytics": _AzureLogAnalyticsDataFeedPatch + "AzureLogAnalytics": _AzureLogAnalyticsDataFeedPatch, } -class MetricsAdvisorAdministrationClient(object): # pylint:disable=too-many-public-methods +class MetricsAdvisorAdministrationClient( + object +): # pylint:disable=too-many-public-methods """MetricsAdvisorAdministrationClient is used to create and manage data feeds. :param str endpoint: Supported Cognitive Services endpoints (protocol and hostname, @@ -179,11 +176,12 @@ class MetricsAdvisorAdministrationClient(object): # pylint:disable=too-many-pub :dedent: 4 :caption: Authenticate MetricsAdvisorAdministrationClient with a MetricsAdvisorKeyCredential """ + def __init__(self, endpoint, credential, **kwargs): # type: (str, MetricsAdvisorKeyCredential, Any) -> None try: - if not endpoint.lower().startswith('http'): + if not endpoint.lower().startswith("http"): endpoint = "https://" + endpoint except AttributeError: raise ValueError("Base URL must be a string.") @@ -206,8 +204,7 @@ def __repr__(self): def close(self): # type: () -> None - """Close the :class:`~azure.ai.metricsadvisor.MetricsAdvisorAdministrationClient` session. - """ + """Close the :class:`~azure.ai.metricsadvisor.MetricsAdvisorAdministrationClient` session.""" return self._client.close() def __enter__(self): @@ -221,10 +218,11 @@ def __exit__(self, *args): @distributed_trace def create_alert_configuration( - self, name, # type: str - metric_alert_configurations, # type: List[MetricAlertConfiguration] - hook_ids, # type: List[str] - **kwargs # type: Any + self, + name, # type: str + metric_alert_configurations, # type: List[MetricAlertConfiguration] + hook_ids, # type: List[str] + **kwargs # type: Any ): # type: (...) -> AnomalyAlertConfiguration """Create an anomaly alert configuration. @@ -260,7 +258,7 @@ def create_alert_configuration( ], hook_ids=hook_ids, cross_metrics_operator=cross_metrics_operator, - description=kwargs.pop("description", None) + description=kwargs.pop("description", None), ), cls=lambda pipeline_response, _, response_headers: response_headers, **kwargs @@ -271,12 +269,13 @@ def create_alert_configuration( @distributed_trace def create_data_feed( - self, name, # type: str - source, # type: DataFeedSourceUnion - granularity, # type: Union[str, DataFeedGranularityType, DataFeedGranularity] - schema, # type: Union[List[str], DataFeedSchema] - ingestion_settings, # type: Union[datetime.datetime, DataFeedIngestionSettings] - **kwargs # type: Any + self, + name, # type: str + source, # type: DataFeedSourceUnion + granularity, # type: Union[str, DataFeedGranularityType, DataFeedGranularity] + schema, # type: Union[List[str], DataFeedSchema] + ingestion_settings, # type: Union[datetime.datetime, DataFeedIngestionSettings] + **kwargs # type: Any ): # type: (...) -> DataFeed """Create a new data feed. @@ -322,13 +321,15 @@ def create_data_feed( :caption: Create a data feed """ - admins = kwargs.pop('admins', None) - data_feed_description = kwargs.pop('data_feed_description', None) - missing_data_point_fill_settings = kwargs.pop('missing_data_point_fill_settings', None) - rollup_settings = kwargs.pop('rollup_settings', None) - viewers = kwargs.pop('viewers', None) - access_mode = kwargs.pop('access_mode', "Private") - action_link_template = kwargs.pop('action_link_template', None) + admins = kwargs.pop("admins", None) + data_feed_description = kwargs.pop("data_feed_description", None) + missing_data_point_fill_settings = kwargs.pop( + "missing_data_point_fill_settings", None + ) + rollup_settings = kwargs.pop("rollup_settings", None) + viewers = kwargs.pop("viewers", None) + access_mode = kwargs.pop("access_mode", "Private") + action_link_template = kwargs.pop("action_link_template", None) data_feed_type = DATA_FEED[source.data_source_type] data_feed_detail = convert_to_generated_data_feed_type( generated_feed_type=data_feed_type, @@ -343,7 +344,7 @@ def create_data_feed( rollup_settings=rollup_settings, viewers=viewers, access_mode=access_mode, - action_link_template=action_link_template + action_link_template=action_link_template, ) response_headers = self._client.create_data_feed( # type: ignore @@ -356,8 +357,9 @@ def create_data_feed( @distributed_trace def create_hook( - self, hook, # type: Union[EmailNotificationHook, WebNotificationHook] - **kwargs # type: Any + self, + hook, # type: Union[EmailNotificationHook, WebNotificationHook] + **kwargs # type: Any ): # type: (...) -> Union[NotificationHook, EmailNotificationHook, WebNotificationHook] """Create a new email or web hook. @@ -397,10 +399,11 @@ def create_hook( @distributed_trace def create_detection_configuration( - self, name, # type: str - metric_id, # type: str - whole_series_detection_condition, # type: MetricDetectionCondition - **kwargs # type: Any + self, + name, # type: str + metric_id, # type: str + whole_series_detection_condition, # type: MetricDetectionCondition + **kwargs # type: Any ): # type: (...) -> AnomalyDetectionConfiguration """Create anomaly detection configuration. @@ -431,7 +434,9 @@ def create_detection_configuration( """ description = kwargs.pop("description", None) - series_group_detection_conditions = kwargs.pop("series_group_detection_conditions", None) + series_group_detection_conditions = kwargs.pop( + "series_group_detection_conditions", None + ) series_detection_conditions = kwargs.pop("series_detection_conditions", None) config = _AnomalyDetectionConfiguration( name=name, @@ -440,10 +445,14 @@ def create_detection_configuration( whole_metric_configuration=whole_series_detection_condition._to_generated(), dimension_group_override_configurations=[ group._to_generated() for group in series_group_detection_conditions - ] if series_group_detection_conditions else None, + ] + if series_group_detection_conditions + else None, series_override_configurations=[ - series._to_generated() for series in series_detection_conditions] - if series_detection_conditions else None, + series._to_generated() for series in series_detection_conditions + ] + if series_detection_conditions + else None, ) response_headers = self._client.create_anomaly_detection_configuration( # type: ignore @@ -475,10 +484,7 @@ def get_data_feed(self, data_feed_id, **kwargs): :caption: Get a single data feed by its ID """ - data_feed = self._client.get_data_feed_by_id( - data_feed_id, - **kwargs - ) + data_feed = self._client.get_data_feed_by_id(data_feed_id, **kwargs) return DataFeed._from_generated(data_feed) @distributed_trace @@ -502,7 +508,9 @@ def get_alert_configuration(self, alert_configuration_id, **kwargs): :caption: Get a single anomaly alert configuration by its ID """ - config = self._client.get_anomaly_alerting_configuration(alert_configuration_id, **kwargs) + config = self._client.get_anomaly_alerting_configuration( + alert_configuration_id, **kwargs + ) return AnomalyAlertConfiguration._from_generated(config) @distributed_trace @@ -526,7 +534,9 @@ def get_detection_configuration(self, detection_configuration_id, **kwargs): :caption: Get a single anomaly detection configuration by its ID """ - config = self._client.get_anomaly_detection_configuration(detection_configuration_id, **kwargs) + config = self._client.get_anomaly_detection_configuration( + detection_configuration_id, **kwargs + ) return AnomalyDetectionConfiguration._from_generated(config) @distributed_trace @@ -624,8 +634,7 @@ def refresh_data_feed_ingestion( self._client.reset_data_feed_ingestion_status( data_feed_id, body=_IngestionProgressResetOptions( - start_time=converted_start_time, - end_time=converted_end_time + start_time=converted_start_time, end_time=converted_end_time ), **kwargs ) @@ -652,7 +661,9 @@ def delete_alert_configuration(self, *alert_configuration_id, **kwargs): if len(alert_configuration_id) != 1: raise TypeError("Alert configuration requires exactly one id.") - self._client.delete_anomaly_alerting_configuration(alert_configuration_id[0], **kwargs) + self._client.delete_anomaly_alerting_configuration( + alert_configuration_id[0], **kwargs + ) @distributed_trace def delete_detection_configuration(self, *detection_configuration_id, **kwargs): @@ -676,7 +687,9 @@ def delete_detection_configuration(self, *detection_configuration_id, **kwargs): if len(detection_configuration_id) != 1: raise TypeError("Detection configuration requires exactly one id.") - self._client.delete_anomaly_detection_configuration(detection_configuration_id[0], **kwargs) + self._client.delete_anomaly_detection_configuration( + detection_configuration_id[0], **kwargs + ) @distributed_trace def delete_data_feed(self, *data_feed_id, **kwargs): @@ -728,8 +741,9 @@ def delete_hook(self, *hook_id, **kwargs): @distributed_trace def update_data_feed( - self, data_feed, # type: Union[str, DataFeed] - **kwargs # type: Any + self, + data_feed, # type: Union[str, DataFeed] + **kwargs # type: Any ): # type: (...) -> DataFeed """Update a data feed. Either pass the entire DataFeed object with the chosen updates or the ID to your data feed with updates passed via keyword arguments. If you pass both @@ -792,17 +806,29 @@ def update_data_feed( unset = object() update_kwargs = {} update_kwargs["dataFeedName"] = kwargs.pop("name", unset) - update_kwargs["dataFeedDescription"] = kwargs.pop("data_feed_description", unset) + update_kwargs["dataFeedDescription"] = kwargs.pop( + "data_feed_description", unset + ) update_kwargs["timestampColumn"] = kwargs.pop("timestamp_column", unset) update_kwargs["dataStartFrom"] = kwargs.pop("ingestion_begin_time", unset) - update_kwargs["startOffsetInSeconds"] = kwargs.pop("ingestion_start_offset", unset) - update_kwargs["maxConcurrency"] = kwargs.pop("data_source_request_concurrency", unset) - update_kwargs["minRetryIntervalInSeconds"] = kwargs.pop("ingestion_retry_delay", unset) + update_kwargs["startOffsetInSeconds"] = kwargs.pop( + "ingestion_start_offset", unset + ) + update_kwargs["maxConcurrency"] = kwargs.pop( + "data_source_request_concurrency", unset + ) + update_kwargs["minRetryIntervalInSeconds"] = kwargs.pop( + "ingestion_retry_delay", unset + ) update_kwargs["stopRetryAfterInSeconds"] = kwargs.pop("stop_retry_after", unset) update_kwargs["needRollup"] = kwargs.pop("rollup_type", unset) update_kwargs["rollUpMethod"] = kwargs.pop("rollup_method", unset) - update_kwargs["rollUpColumns"] = kwargs.pop("auto_rollup_group_by_column_names", unset) - update_kwargs["allUpIdentification"] = kwargs.pop("rollup_identification_value", unset) + update_kwargs["rollUpColumns"] = kwargs.pop( + "auto_rollup_group_by_column_names", unset + ) + update_kwargs["allUpIdentification"] = kwargs.pop( + "rollup_identification_value", unset + ) update_kwargs["fillMissingPointType"] = kwargs.pop("fill_type", unset) update_kwargs["fillMissingPointValue"] = kwargs.pop("custom_fill_value", unset) update_kwargs["viewMode"] = kwargs.pop("access_mode", unset) @@ -821,9 +847,13 @@ def update_data_feed( else: data_feed_id = data_feed.id data_feed_patch_type = DATA_FEED_PATCH[data_feed.source.data_source_type] - data_feed_patch = data_feed._to_generated_patch(data_feed_patch_type, update) + data_feed_patch = data_feed._to_generated_patch( + data_feed_patch_type, update + ) - return DataFeed._from_generated(self._client.update_data_feed(data_feed_id, data_feed_patch, **kwargs)) + return DataFeed._from_generated( + self._client.update_data_feed(data_feed_id, data_feed_patch, **kwargs) + ) @distributed_trace def update_alert_configuration( @@ -865,8 +895,12 @@ def update_alert_configuration( update_kwargs = {} update_kwargs["name"] = kwargs.pop("name", unset) update_kwargs["hookIds"] = kwargs.pop("hook_ids", unset) - update_kwargs["crossMetricsOperator"] = kwargs.pop("cross_metrics_operator", unset) - update_kwargs["metricAlertingConfigurations"] = kwargs.pop("metric_alert_configurations", unset) + update_kwargs["crossMetricsOperator"] = kwargs.pop( + "cross_metrics_operator", unset + ) + update_kwargs["metricAlertingConfigurations"] = kwargs.pop( + "metric_alert_configurations", unset + ) update_kwargs["description"] = kwargs.pop("description", unset) update = {key: value for key, value in update_kwargs.items() if value != unset} @@ -878,7 +912,9 @@ def update_alert_configuration( alert_configuration_id = alert_configuration.id alert_configuration_patch = alert_configuration._to_generated_patch( name=update.pop("name", None), - metric_alert_configurations=update.pop("metricAlertingConfigurations", None), + metric_alert_configurations=update.pop( + "metricAlertingConfigurations", None + ), hook_ids=update.pop("hookIds", None), cross_metrics_operator=update.pop("crossMetricsOperator", None), description=update.pop("description", None), @@ -886,9 +922,7 @@ def update_alert_configuration( return AnomalyAlertConfiguration._from_generated( self._client.update_anomaly_alerting_configuration( - alert_configuration_id, - alert_configuration_patch, - **kwargs + alert_configuration_id, alert_configuration_patch, **kwargs ) ) @@ -935,9 +969,15 @@ def update_detection_configuration( unset = object() update_kwargs = {} update_kwargs["name"] = kwargs.pop("name", unset) - update_kwargs["wholeMetricConfiguration"] = kwargs.pop("whole_series_detection_condition", unset) - update_kwargs["dimensionGroupOverrideConfigurations"] = kwargs.pop("series_group_detection_conditions", unset) - update_kwargs["seriesOverrideConfigurations"] = kwargs.pop("series_detection_conditions", unset) + update_kwargs["wholeMetricConfiguration"] = kwargs.pop( + "whole_series_detection_condition", unset + ) + update_kwargs["dimensionGroupOverrideConfigurations"] = kwargs.pop( + "series_group_detection_conditions", unset + ) + update_kwargs["seriesOverrideConfigurations"] = kwargs.pop( + "series_detection_conditions", unset + ) update_kwargs["description"] = kwargs.pop("description", unset) update = {key: value for key, value in update_kwargs.items() if value != unset} @@ -950,16 +990,20 @@ def update_detection_configuration( detection_config_patch = detection_configuration._to_generated_patch( name=update.pop("name", None), description=update.pop("description", None), - whole_series_detection_condition=update.pop("wholeMetricConfiguration", None), - series_group_detection_conditions=update.pop("dimensionGroupOverrideConfigurations", None), - series_detection_conditions=update.pop("seriesOverrideConfigurations", None) + whole_series_detection_condition=update.pop( + "wholeMetricConfiguration", None + ), + series_group_detection_conditions=update.pop( + "dimensionGroupOverrideConfigurations", None + ), + series_detection_conditions=update.pop( + "seriesOverrideConfigurations", None + ), ) return AnomalyDetectionConfiguration._from_generated( self._client.update_anomaly_detection_configuration( - detection_configuration_id, - detection_config_patch, - **kwargs + detection_configuration_id, detection_config_patch, **kwargs ) ) @@ -1013,11 +1057,11 @@ def update_hook( update_kwargs["description"] = kwargs.pop("description", unset) update_kwargs["externalLink"] = kwargs.pop("external_link", unset) update_kwargs["toList"] = kwargs.pop("emails_to_alert", unset) - update_kwargs["endpoint"] = kwargs.pop('endpoint', unset) - update_kwargs["username"] = kwargs.pop('username', unset) - update_kwargs["password"] = kwargs.pop('password', unset) - update_kwargs["certificateKey"] = kwargs.pop('certificate_key', unset) - update_kwargs["certificatePassword"] = kwargs.pop('certificate_password', unset) + update_kwargs["endpoint"] = kwargs.pop("endpoint", unset) + update_kwargs["username"] = kwargs.pop("username", unset) + update_kwargs["password"] = kwargs.pop("password", unset) + update_kwargs["certificateKey"] = kwargs.pop("certificate_key", unset) + update_kwargs["certificatePassword"] = kwargs.pop("certificate_password", unset) update = {key: value for key, value in update_kwargs.items() if value != unset} if isinstance(hook, six.string_types): @@ -1048,14 +1092,10 @@ def update_hook( password=update.pop("password", None), username=update.pop("username", None), certificate_key=update.pop("certificateKey", None), - certificate_password=update.pop("certificatePassword", None) + certificate_password=update.pop("certificatePassword", None), ) - updated_hook = self._client.update_hook( - hook_id, - hook_patch, - **kwargs - ) + updated_hook = self._client.update_hook(hook_id, hook_patch, **kwargs) if updated_hook.hook_type == "Email": return EmailNotificationHook._from_generated(updated_hook) @@ -1063,8 +1103,7 @@ def update_hook( @distributed_trace def list_hooks( - self, - **kwargs # type: Any + self, **kwargs # type: Any ): # type: (...) -> ItemPaged[Union[NotificationHook, EmailNotificationHook, WebNotificationHook]] """List all hooks. @@ -1085,8 +1124,8 @@ def list_hooks( :dedent: 4 :caption: List all of the notification hooks under the account """ - hook_name = kwargs.pop('hook_name', None) - skip = kwargs.pop('skip', None) + hook_name = kwargs.pop("hook_name", None) + skip = kwargs.pop("skip", None) def _convert_to_hook_type(hook): if hook.hook_type == "Email": @@ -1096,14 +1135,15 @@ def _convert_to_hook_type(hook): return self._client.list_hooks( # type: ignore hook_name=hook_name, skip=skip, - cls=kwargs.pop("cls", lambda hooks: [_convert_to_hook_type(hook) for hook in hooks]), + cls=kwargs.pop( + "cls", lambda hooks: [_convert_to_hook_type(hook) for hook in hooks] + ), **kwargs ) @distributed_trace def list_data_feeds( - self, - **kwargs # type: Any + self, **kwargs # type: Any ): # type: (...) -> ItemPaged[DataFeed] """List all data feeds. @@ -1145,7 +1185,9 @@ def list_data_feeds( status=status, creator=creator, skip=skip, - cls=kwargs.pop("cls", lambda feeds: [DataFeed._from_generated(feed) for feed in feeds]), + cls=kwargs.pop( + "cls", lambda feeds: [DataFeed._from_generated(feed) for feed in feeds] + ), **kwargs ) @@ -1175,9 +1217,12 @@ def list_alert_configurations( """ return self._client.get_anomaly_alerting_configurations_by_anomaly_detection_configuration( # type: ignore detection_configuration_id, - cls=kwargs.pop("cls", lambda confs: [ - AnomalyAlertConfiguration._from_generated(conf) for conf in confs - ]), + cls=kwargs.pop( + "cls", + lambda confs: [ + AnomalyAlertConfiguration._from_generated(conf) for conf in confs + ], + ), **kwargs ) @@ -1207,9 +1252,13 @@ def list_detection_configurations( """ return self._client.get_anomaly_detection_configurations_by_metric( # type: ignore metric_id, - cls=kwargs.pop("cls", lambda confs: [ - AnomalyDetectionConfiguration._from_generated(conf) for conf in confs - ]), + cls=kwargs.pop( + "cls", + lambda confs: [ + AnomalyDetectionConfiguration._from_generated(conf) + for conf in confs + ], + ), **kwargs ) @@ -1251,8 +1300,7 @@ def list_data_feed_ingestion_status( return self._client.get_data_feed_ingestion_status( # type: ignore data_feed_id=data_feed_id, body=_IngestionStatusQueryOptions( - start_time=converted_start_time, - end_time=converted_end_time + start_time=converted_start_time, end_time=converted_end_time ), skip=skip, **kwargs @@ -1291,8 +1339,9 @@ def get_datasource_credential( @distributed_trace def create_datasource_credential( - self, datasource_credential, # type: DatasourceCredentialUnion - **kwargs # type: Any + self, + datasource_credential, # type: DatasourceCredentialUnion + **kwargs # type: Any ): # type: (...) -> DatasourceCredentialUnion """Create a new datasource credential. @@ -1320,8 +1369,12 @@ def create_datasource_credential( """ datasource_credential_request = None - if datasource_credential.credential_type in ["AzureSQLConnectionString", - "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV"]: + if datasource_credential.credential_type in [ + "AzureSQLConnectionString", + "DataLakeGen2SharedKey", + "ServicePrincipal", + "ServicePrincipalInKV", + ]: datasource_credential_request = datasource_credential._to_generated() response_headers = self._client.create_credential( # type: ignore @@ -1334,8 +1387,7 @@ def create_datasource_credential( @distributed_trace def list_datasource_credentials( - self, - **kwargs # type: Any + self, **kwargs # type: Any ): # type: (...) -> ItemPaged[DatasourceCredential] """List all credential entities. @@ -1362,7 +1414,11 @@ def list_datasource_credentials( return self._client.list_credentials( # type: ignore cls=kwargs.pop( "cls", - lambda credentials: [convert_to_datasource_credential(credential) for credential in credentials]), + lambda credentials: [ + convert_to_datasource_credential(credential) + for credential in credentials + ], + ), **kwargs ) @@ -1397,11 +1453,15 @@ def update_datasource_credential( """ datasource_credential_request = None - if datasource_credential.credential_type in ["AzureSQLConnectionString", - "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV"]: + if datasource_credential.credential_type in [ + "AzureSQLConnectionString", + "DataLakeGen2SharedKey", + "ServicePrincipal", + "ServicePrincipalInKV", + ]: datasource_credential_request = datasource_credential._to_generated_patch() - updated_datasource_credential = self._client.update_credential( # type: ignore + updated_datasource_credential = self._client.update_credential( # type: ignore datasource_credential.id, datasource_credential_request, # type: ignore **kwargs diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_client.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_client.py index 8eda162be1ea..0d5078054bf7 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_client.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_client.py @@ -25,7 +25,11 @@ DimensionGroupIdentity, ) from ._generated import MicrosoftAzureMetricsAdvisorRESTAPIOpenAPIV2 as _Client -from ._helpers import convert_to_sub_feedback, convert_datetime, get_authentication_policy +from ._helpers import ( + convert_to_sub_feedback, + convert_datetime, + get_authentication_policy, +) from .models._models import ( AnomalyIncident, DataPointAnomaly, @@ -36,7 +40,7 @@ AnomalyFeedback, ChangePointFeedback, CommentFeedback, - PeriodFeedback + PeriodFeedback, ) from ._version import SDK_MONIKER @@ -58,6 +62,7 @@ PeriodFeedback, ] + class MetricsAdvisorClient(object): """Represents an client that calls restful API of Azure Metrics Advisor service. @@ -69,10 +74,11 @@ class MetricsAdvisorClient(object): :type credential: ~azure.ai.metricsadvisor.MetricsAdvisorKeyCredential or ~azure.core.credentials.TokenCredential """ + def __init__(self, endpoint, credential, **kwargs): # type: (str, MetricsAdvisorKeyCredential, Any) -> None try: - if not endpoint.lower().startswith('http'): + if not endpoint.lower().startswith("http"): endpoint = "https://" + endpoint except AttributeError: raise ValueError("Base URL must be a string.") @@ -89,9 +95,9 @@ def __init__(self, endpoint, credential, **kwargs): def __repr__(self): # type: () -> str - return "".format( - repr(self._endpoint) - )[:1024] + return "".format(repr(self._endpoint))[ + :1024 + ] def __enter__(self): # type: () -> MetricsAdvisorClient @@ -104,8 +110,7 @@ def __exit__(self, *args): def close(self): # type: () -> None - """Close the :class:`~azure.ai.metricsadvisor.MetricsAdvisorClient` session. - """ + """Close the :class:`~azure.ai.metricsadvisor.MetricsAdvisorClient` session.""" return self._client.close() @distributed_trace @@ -132,8 +137,8 @@ def add_feedback(self, feedback, **kwargs): """ return self._client.create_metric_feedback( - body=feedback._to_generated(), - **kwargs) + body=feedback._to_generated(), **kwargs + ) @distributed_trace def get_feedback(self, feedback_id, **kwargs): @@ -160,9 +165,9 @@ def get_feedback(self, feedback_id, **kwargs): :caption: Get a metric feedback by its id. """ - return convert_to_sub_feedback(self._client.get_metric_feedback( - feedback_id=feedback_id, - **kwargs)) + return convert_to_sub_feedback( + self._client.get_metric_feedback(feedback_id=feedback_id, **kwargs) + ) @distributed_trace def list_feedback(self, metric_id, **kwargs): @@ -197,17 +202,17 @@ def list_feedback(self, metric_id, **kwargs): :caption: List feedback on the given metric. """ - skip = kwargs.pop('skip', None) + skip = kwargs.pop("skip", None) dimension_filter = None - dimension_key = kwargs.pop('dimension_key', None) + dimension_key = kwargs.pop("dimension_key", None) if dimension_key: dimension_filter = FeedbackDimensionFilter(dimension=dimension_key) - feedback_type = kwargs.pop('feedback_type', None) - start_time = kwargs.pop('start_time', None) - end_time = kwargs.pop('end_time', None) + feedback_type = kwargs.pop("feedback_type", None) + start_time = kwargs.pop("start_time", None) + end_time = kwargs.pop("end_time", None) converted_start_time = convert_datetime(start_time) if start_time else None converted_end_time = convert_datetime(end_time) if end_time else None - time_mode = kwargs.pop('time_mode', None) + time_mode = kwargs.pop("time_mode", None) feedback_filter = MetricFeedbackFilter( metric_id=metric_id, dimension_filter=dimension_filter, @@ -220,13 +225,16 @@ def list_feedback(self, metric_id, **kwargs): return self._client.list_metric_feedbacks( # type: ignore skip=skip, body=feedback_filter, - cls=kwargs.pop("cls", lambda result: [ - convert_to_sub_feedback(x) for x in result - ]), - **kwargs) + cls=kwargs.pop( + "cls", lambda result: [convert_to_sub_feedback(x) for x in result] + ), + **kwargs + ) @distributed_trace - def list_incident_root_causes(self, detection_configuration_id, incident_id, **kwargs): + def list_incident_root_causes( + self, detection_configuration_id, incident_id, **kwargs + ): # type: (str, str, Any) -> ItemPaged[IncidentRootCause] """Query root cause for incident. @@ -252,19 +260,21 @@ def list_incident_root_causes(self, detection_configuration_id, incident_id, **k return self._client.get_root_cause_of_incident_by_anomaly_detection_configuration( # type: ignore configuration_id=detection_configuration_id, incident_id=incident_id, - cls=kwargs.pop("cls", lambda result: [ - IncidentRootCause._from_generated(x) for x in result - ]), + cls=kwargs.pop( + "cls", + lambda result: [IncidentRootCause._from_generated(x) for x in result], + ), **kwargs ) @distributed_trace def list_metric_enriched_series_data( - self, detection_configuration_id, # type: str - series, # type: Union[List[SeriesIdentity], List[Dict[str, str]]] - start_time, # type: Union[str, datetime.datetime] - end_time, # type: Union[str, datetime.datetime] - **kwargs # type: Any + self, + detection_configuration_id, # type: str + series, # type: Union[List[SeriesIdentity], List[Dict[str, str]]] + start_time, # type: Union[str, datetime.datetime] + end_time, # type: Union[str, datetime.datetime] + **kwargs # type: Any ): # type: (...) -> ItemPaged[MetricEnrichedSeriesData] """Query series enriched by anomaly detection. @@ -289,10 +299,10 @@ def list_metric_enriched_series_data( """ series_list = [ - SeriesIdentity(dimension=dimension) - for dimension in series - if isinstance(dimension, dict) - ] or series + SeriesIdentity(dimension=dimension) + for dimension in series + if isinstance(dimension, dict) + ] or series series_list = cast(List[SeriesIdentity], series_list) converted_start_time = convert_datetime(start_time) @@ -300,18 +310,25 @@ def list_metric_enriched_series_data( detection_series_query = DetectionSeriesQuery( start_time=converted_start_time, end_time=converted_end_time, - series=series_list + series=series_list, ) return self._client.get_series_by_anomaly_detection_configuration( # type: ignore configuration_id=detection_configuration_id, body=detection_series_query, - cls=kwargs.pop("cls", lambda series: [MetricEnrichedSeriesData._from_generated(data) for data in series]), - **kwargs) + cls=kwargs.pop( + "cls", + lambda series: [ + MetricEnrichedSeriesData._from_generated(data) for data in series + ], + ), + **kwargs + ) @distributed_trace def list_alerts( - self, alert_configuration_id, # type: str + self, + alert_configuration_id, # type: str start_time, # type: datetime.datetime end_time, # type: datetime.datetime time_mode, # type: Union[str, AlertQueryTimeMode] @@ -343,7 +360,7 @@ def list_alerts( :caption: Query anomaly detection results. """ - skip = kwargs.pop('skip', None) + skip = kwargs.pop("skip", None) converted_start_time = convert_datetime(start_time) converted_end_time = convert_datetime(end_time) @@ -357,26 +374,35 @@ def list_alerts( configuration_id=alert_configuration_id, skip=skip, body=alerting_result_query, - cls=kwargs.pop("cls", lambda alerts: [AnomalyAlert._from_generated(alert) for alert in alerts]), - **kwargs) + cls=kwargs.pop( + "cls", + lambda alerts: [ + AnomalyAlert._from_generated(alert) for alert in alerts + ], + ), + **kwargs + ) def _list_anomalies_for_alert(self, alert_configuration_id, alert_id, **kwargs): # type: (str, str, Any) -> ItemPaged[DataPointAnomaly] - skip = kwargs.pop('skip', None) + skip = kwargs.pop("skip", None) return self._client.get_anomalies_from_alert_by_anomaly_alerting_configuration( # type: ignore configuration_id=alert_configuration_id, alert_id=alert_id, skip=skip, cls=lambda objs: [DataPointAnomaly._from_generated(x) for x in objs], - **kwargs) + **kwargs + ) - def _list_anomalies_for_detection_configuration(self, detection_configuration_id, start_time, end_time, **kwargs): + def _list_anomalies_for_detection_configuration( + self, detection_configuration_id, start_time, end_time, **kwargs + ): # type: (...) -> ItemPaged[DataPointAnomaly] - skip = kwargs.pop('skip', None) - condition = kwargs.pop('filter', None) + skip = kwargs.pop("skip", None) + condition = kwargs.pop("filter", None) filter_condition = condition._to_generated() if condition else None converted_start_time = convert_datetime(start_time) converted_end_time = convert_datetime(end_time) @@ -391,13 +417,15 @@ def _list_anomalies_for_detection_configuration(self, detection_configuration_id skip=skip, body=detection_anomaly_result_query, cls=lambda objs: [DataPointAnomaly._from_generated(x) for x in objs], - **kwargs) + **kwargs + ) @overload def list_anomalies( - self, alert_configuration_id, # type: str - alert_id, # type: str - **kwargs # type: Any + self, + alert_configuration_id, # type: str + alert_id, # type: str + **kwargs # type: Any ): # type: (...) -> ItemPaged[DataPointAnomaly] """Query anomalies under a specific alert. @@ -423,10 +451,11 @@ def list_anomalies( @overload def list_anomalies( - self, detection_configuration_id, # type: str - start_time, # type: Union[str, datetime.datetime] - end_time, # type: Union[str, datetime.datetime] - **kwargs # type: Any + self, + detection_configuration_id, # type: str + start_time, # type: Union[str, datetime.datetime] + end_time, # type: Union[str, datetime.datetime] + **kwargs # type: Any ): # type: (...) -> ItemPaged[DataPointAnomaly] """Query anomalies under a detection configuration. @@ -460,11 +489,11 @@ def list_anomalies(self, **kwargs): :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.ai.metricsadvisor.models.DataPointAnomaly] :raises ~azure.core.exceptions.HttpResponseError: """ - alert_configuration_id = kwargs.get('alert_configuration_id', None) - alert_id = kwargs.get('alert_id', None) - detection_configuration_id = kwargs.get('detection_configuration_id', None) - start_time = kwargs.get('start_time', None) - end_time = kwargs.get('end_time', None) + alert_configuration_id = kwargs.get("alert_configuration_id", None) + alert_id = kwargs.get("alert_id", None) + detection_configuration_id = kwargs.get("detection_configuration_id", None) + start_time = kwargs.get("start_time", None) + end_time = kwargs.get("end_time", None) if detection_configuration_id: if alert_configuration_id or alert_id: raise TypeError( @@ -479,11 +508,7 @@ def list_anomalies(self, **kwargs): @distributed_trace def list_anomaly_dimension_values( - self, detection_configuration_id, - dimension_name, - start_time, - end_time, - **kwargs + self, detection_configuration_id, dimension_name, start_time, end_time, **kwargs ): # type: (str, str, Union[str, datetime.datetime], Union[str, datetime.datetime], Any) -> ItemPaged[str] @@ -510,8 +535,8 @@ def list_anomaly_dimension_values( :caption: Query dimension values. """ - skip = kwargs.pop('skip', None) - dimension = kwargs.pop('dimension_filter', None) + skip = kwargs.pop("skip", None) + dimension = kwargs.pop("dimension_filter", None) dimension_filter = DimensionGroupIdentity(dimension=dimension) converted_start_time = convert_datetime(start_time) converted_end_time = convert_datetime(end_time) @@ -526,24 +551,28 @@ def list_anomaly_dimension_values( configuration_id=detection_configuration_id, skip=skip, body=anomaly_dimension_query, - **kwargs) + **kwargs + ) def _list_incidents_for_alert(self, alert_configuration_id, alert_id, **kwargs): # type: (str, str, Any) -> ItemPaged[AnomalyIncident] - skip = kwargs.pop('skip', None) + skip = kwargs.pop("skip", None) return self._client.get_incidents_from_alert_by_anomaly_alerting_configuration( # type: ignore configuration_id=alert_configuration_id, alert_id=alert_id, skip=skip, cls=lambda objs: [AnomalyIncident._from_generated(x) for x in objs], - **kwargs) + **kwargs + ) - def _list_incidents_for_detection_configuration(self, detection_configuration_id, start_time, end_time, **kwargs): + def _list_incidents_for_detection_configuration( + self, detection_configuration_id, start_time, end_time, **kwargs + ): # type: (str, Union[str, datetime.datetime], Union[str, datetime.datetime], Any) -> ItemPaged[AnomalyIncident] - condition = kwargs.pop('filter', None) + condition = kwargs.pop("filter", None) filter_condition = condition._to_generated() if condition else None converted_start_time = convert_datetime(start_time) converted_end_time = convert_datetime(end_time) @@ -558,13 +587,15 @@ def _list_incidents_for_detection_configuration(self, detection_configuration_id configuration_id=detection_configuration_id, body=detection_incident_result_query, cls=lambda objs: [AnomalyIncident._from_generated(x) for x in objs], - **kwargs) + **kwargs + ) @overload def list_incidents( - self, alert_configuration_id, # type: str - alert_id, # type: str - **kwargs # type: Any + self, + alert_configuration_id, # type: str + alert_id, # type: str + **kwargs # type: Any ): # type: (...) -> ItemPaged[AnomalyIncident] """Query incidents under a specific alert. @@ -590,10 +621,11 @@ def list_incidents( @overload def list_incidents( - self, detection_configuration_id, # type: str - start_time, # type: Union[str, datetime.datetime] - end_time, # type: Union[str, datetime.datetime] - **kwargs # type: Any + self, + detection_configuration_id, # type: str + start_time, # type: Union[str, datetime.datetime] + end_time, # type: Union[str, datetime.datetime] + **kwargs # type: Any ): # type: (...) -> ItemPaged[AnomalyIncident] """Query incidents under a detection configuration. @@ -636,11 +668,11 @@ def list_incidents(self, **kwargs): :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.ai.metricsadvisor.models.AnomalyIncident] :raises ~azure.core.exceptions.HttpResponseError: """ - alert_configuration_id = kwargs.get('alert_configuration_id', None) - alert_id = kwargs.get('alert_id', None) - detection_configuration_id = kwargs.get('detection_configuration_id', None) - start_time = kwargs.get('start_time', None) - end_time = kwargs.get('end_time', None) + alert_configuration_id = kwargs.get("alert_configuration_id", None) + alert_id = kwargs.get("alert_id", None) + detection_configuration_id = kwargs.get("detection_configuration_id", None) + start_time = kwargs.get("start_time", None) + end_time = kwargs.get("end_time", None) if detection_configuration_id: if alert_configuration_id or alert_id: raise TypeError( @@ -680,8 +712,8 @@ def list_metric_dimension_values(self, metric_id, dimension_name, **kwargs): :caption: Query metric dimension values. """ - skip = kwargs.pop('skip', None) - dimension_value_filter = kwargs.pop('dimension_value_filter', None) + skip = kwargs.pop("skip", None) + dimension_value_filter = kwargs.pop("dimension_value_filter", None) metric_dimension_query_options = MetricDimensionQueryOptions( dimension_name=dimension_name, @@ -692,16 +724,18 @@ def list_metric_dimension_values(self, metric_id, dimension_name, **kwargs): metric_id=metric_id, body=metric_dimension_query_options, skip=skip, - **kwargs) + **kwargs + ) @distributed_trace - def list_metric_series_data(self, - metric_id, # type: str - series_keys, # type: List[Dict[str, str]] - start_time, # type: Union[str, datetime.datetime] - end_time, # type: Union[str, datetime.datetime] - **kwargs # type: Any - ): + def list_metric_series_data( + self, + metric_id, # type: str + series_keys, # type: List[Dict[str, str]] + start_time, # type: Union[str, datetime.datetime] + end_time, # type: Union[str, datetime.datetime] + **kwargs # type: Any + ): # type: (...) -> ItemPaged[MetricSeriesData] """Get time series data from metric. @@ -738,8 +772,14 @@ def list_metric_series_data(self, return self._client.get_metric_data( # type: ignore metric_id=metric_id, body=metric_data_query_options, - cls=kwargs.pop("cls", lambda result: [MetricSeriesData._from_generated(series) for series in result]), - **kwargs) + cls=kwargs.pop( + "cls", + lambda result: [ + MetricSeriesData._from_generated(series) for series in result + ], + ), + **kwargs + ) @distributed_trace def list_metric_series_definitions(self, metric_id, active_since, **kwargs): @@ -769,8 +809,8 @@ def list_metric_series_definitions(self, metric_id, active_since, **kwargs): :caption: Query metric series definitions. """ - skip = kwargs.pop('skip', None) - dimension_filter = kwargs.pop('dimension_filter', None) + skip = kwargs.pop("skip", None) + dimension_filter = kwargs.pop("dimension_filter", None) metric_series_query_options = MetricSeriesQueryOptions( active_since=active_since, @@ -778,10 +818,8 @@ def list_metric_series_definitions(self, metric_id, active_since, **kwargs): ) return self._client.get_metric_series( # type: ignore - metric_id=metric_id, - body=metric_series_query_options, - skip=skip, - **kwargs) + metric_id=metric_id, body=metric_series_query_options, skip=skip, **kwargs + ) @distributed_trace def list_metric_enrichment_status(self, metric_id, start_time, end_time, **kwargs): @@ -808,7 +846,7 @@ def list_metric_enrichment_status(self, metric_id, start_time, end_time, **kwarg :caption: Query metric enrichment status. """ - skip = kwargs.pop('skip', None) + skip = kwargs.pop("skip", None) converted_start_time = convert_datetime(start_time) converted_end_time = convert_datetime(end_time) enrichment_status_query_option = EnrichmentStatusQueryOption( @@ -820,4 +858,5 @@ def list_metric_enrichment_status(self, metric_id, start_time, end_time, **kwarg metric_id=metric_id, skip=skip, body=enrichment_status_query_option, - **kwargs) + **kwargs + ) diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_key_credential.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_key_credential.py index 6a01a58758c3..187f4875df44 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_key_credential.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_key_credential.py @@ -7,6 +7,7 @@ from typing import Any import six + class MetricsAdvisorKeyCredential(object): """Credential type used for authenticating to an Azure Metrics Advisor service. @@ -17,7 +18,10 @@ class MetricsAdvisorKeyCredential(object): def __init__(self, subscription_key, api_key): # type: (str, str) -> None - if not (isinstance(subscription_key, six.string_types) and isinstance(api_key, six.string_types)): + if not ( + isinstance(subscription_key, six.string_types) + and isinstance(api_key, six.string_types) + ): raise TypeError("key must be a string.") self._subscription_key = subscription_key # type: str self._api_key = api_key # type: str @@ -54,10 +58,14 @@ def update_key(self, **kwargs): subscription_key = kwargs.pop("subscription_key", None) api_key = kwargs.pop("api_key", None) if len(kwargs) > 0: - raise TypeError("Got an unexpected keyword argument: {}".format(list(kwargs.keys())[0])) + raise TypeError( + "Got an unexpected keyword argument: {}".format(list(kwargs.keys())[0]) + ) if subscription_key: if not isinstance(subscription_key, six.string_types): - raise TypeError("The subscription_key used for updating must be a string.") + raise TypeError( + "The subscription_key used for updating must be a string." + ) self._subscription_key = subscription_key if api_key: if not isinstance(api_key, six.string_types): diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_key_credential_policy.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_key_credential_policy.py index bf12f61fdc40..da3fdf90c472 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_key_credential_policy.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_key_credential_policy.py @@ -20,11 +20,14 @@ class MetricsAdvisorKeyCredentialPolicy(SansIOHTTPPolicy): :param str name: The name of the key header used for the credential. :raises: ValueError or TypeError """ + def __init__(self, credential, **kwargs): # pylint: disable=unused-argument # type: (MetricsAdvisorKeyCredential, Any) -> None super(MetricsAdvisorKeyCredentialPolicy, self).__init__() self._credential = credential def on_request(self, request): - request.http_request.headers[_API_KEY_HEADER_NAME] = self._credential.subscription_key + request.http_request.headers[ + _API_KEY_HEADER_NAME + ] = self._credential.subscription_key request.http_request.headers[_X_API_KEY_HEADER_NAME] = self._credential.api_key diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/__init__.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/__init__.py index ae0f0e4c7d91..3f621f4fba92 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/__init__.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/__init__.py @@ -5,9 +5,8 @@ # ------------------------------------ from ._metrics_advisor_client_async import MetricsAdvisorClient -from ._metrics_advisor_administration_client_async import MetricsAdvisorAdministrationClient - -__all__ = ( - "MetricsAdvisorClient", - "MetricsAdvisorAdministrationClient" +from ._metrics_advisor_administration_client_async import ( + MetricsAdvisorAdministrationClient, ) + +__all__ = ("MetricsAdvisorClient", "MetricsAdvisorAdministrationClient") diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/_metrics_advisor_administration_client_async.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/_metrics_advisor_administration_client_async.py index ed9c68ea0284..3b244b261c7b 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/_metrics_advisor_administration_client_async.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/_metrics_advisor_administration_client_async.py @@ -19,7 +19,9 @@ from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.async_paging import AsyncItemPaged -from .._generated.aio import MicrosoftAzureMetricsAdvisorRESTAPIOpenAPIV2 as _ClientAsync +from .._generated.aio import ( + MicrosoftAzureMetricsAdvisorRESTAPIOpenAPIV2 as _ClientAsync, +) from .._generated.models import ( AnomalyAlertingConfiguration as _AnomalyAlertingConfiguration, AnomalyDetectionConfiguration as _AnomalyDetectionConfiguration, @@ -57,13 +59,17 @@ DATA_FEED, DATA_FEED_PATCH, DataFeedSourceUnion, - DatasourceCredentialUnion + DatasourceCredentialUnion, ) + if TYPE_CHECKING: from .._metrics_advisor_key_credential import MetricsAdvisorKeyCredential from azure.core.credentials_async import AsyncTokenCredential -class MetricsAdvisorAdministrationClient(object): # pylint:disable=too-many-public-methods + +class MetricsAdvisorAdministrationClient( + object +): # pylint:disable=too-many-public-methods """MetricsAdvisorAdministrationClient is used to create and manage data feeds. :param str endpoint: Supported Cognitive Services endpoints (protocol and hostname, @@ -82,10 +88,11 @@ class MetricsAdvisorAdministrationClient(object): # pylint:disable=too-many-pub :dedent: 4 :caption: Authenticate MetricsAdvisorAdministrationClient with a MetricsAdvisorKeyCredential """ + def __init__(self, endpoint, credential, **kwargs): # type: (str, Union[MetricsAdvisorKeyCredential, AsyncTokenCredential], **Any) -> None try: - if not endpoint.lower().startswith('http'): + if not endpoint.lower().startswith("http"): endpoint = "https://" + endpoint except AttributeError: raise ValueError("Base URL must be a string.") @@ -114,16 +121,16 @@ async def __aexit__(self, *args: "Any") -> None: await self._client.__aexit__(*args) async def close(self) -> None: - """Close the :class:`~azure.ai.metricsadvisor.aio.MetricsAdvisorAdministrationClient` session. - """ + """Close the :class:`~azure.ai.metricsadvisor.aio.MetricsAdvisorAdministrationClient` session.""" await self._client.__aexit__() @distributed_trace_async async def create_alert_configuration( - self, name: str, - metric_alert_configurations: List[MetricAlertConfiguration], - hook_ids: List[str], - **kwargs: Any + self, + name: str, + metric_alert_configurations: List[MetricAlertConfiguration], + hook_ids: List[str], + **kwargs: Any ) -> AnomalyAlertConfiguration: """Create an anomaly alert configuration. @@ -159,7 +166,7 @@ async def create_alert_configuration( ], hook_ids=hook_ids, cross_metrics_operator=cross_metrics_operator, - description=kwargs.pop("description", None) + description=kwargs.pop("description", None), ), cls=lambda pipeline_response, _, response_headers: response_headers, **kwargs @@ -170,12 +177,13 @@ async def create_alert_configuration( @distributed_trace_async async def create_data_feed( - self, name: str, - source: DataFeedSourceUnion, - granularity: Union[str, DataFeedGranularityType, DataFeedGranularity], - schema: Union[List[str], DataFeedSchema], - ingestion_settings: Union[datetime.datetime, DataFeedIngestionSettings], - **kwargs: Any + self, + name: str, + source: DataFeedSourceUnion, + granularity: Union[str, DataFeedGranularityType, DataFeedGranularity], + schema: Union[List[str], DataFeedSchema], + ingestion_settings: Union[datetime.datetime, DataFeedIngestionSettings], + **kwargs: Any ) -> DataFeed: """Create a new data feed. @@ -221,13 +229,15 @@ async def create_data_feed( :caption: Create a data feed """ - admins = kwargs.pop('admins', None) - data_feed_description = kwargs.pop('data_feed_description', None) - missing_data_point_fill_settings = kwargs.pop('missing_data_point_fill_settings', None) - rollup_settings = kwargs.pop('rollup_settings', None) - viewers = kwargs.pop('viewers', None) - access_mode = kwargs.pop('access_mode', "Private") - action_link_template = kwargs.pop('action_link_template', None) + admins = kwargs.pop("admins", None) + data_feed_description = kwargs.pop("data_feed_description", None) + missing_data_point_fill_settings = kwargs.pop( + "missing_data_point_fill_settings", None + ) + rollup_settings = kwargs.pop("rollup_settings", None) + viewers = kwargs.pop("viewers", None) + access_mode = kwargs.pop("access_mode", "Private") + action_link_template = kwargs.pop("action_link_template", None) data_feed_type = DATA_FEED[source.data_source_type] data_feed_detail = convert_to_generated_data_feed_type( generated_feed_type=data_feed_type, @@ -242,7 +252,7 @@ async def create_data_feed( rollup_settings=rollup_settings, viewers=viewers, access_mode=access_mode, - action_link_template=action_link_template + action_link_template=action_link_template, ) response_headers = await self._client.create_data_feed( @@ -256,8 +266,7 @@ async def create_data_feed( @distributed_trace_async async def create_hook( - self, hook: Union[EmailNotificationHook, WebNotificationHook], - **kwargs: Any + self, hook: Union[EmailNotificationHook, WebNotificationHook], **kwargs: Any ) -> Union[NotificationHook, EmailNotificationHook, WebNotificationHook]: """Create a new email or web hook. @@ -298,10 +307,11 @@ async def create_hook( @distributed_trace_async async def create_detection_configuration( - self, name: str, - metric_id: str, - whole_series_detection_condition: MetricDetectionCondition, - **kwargs: Any + self, + name: str, + metric_id: str, + whole_series_detection_condition: MetricDetectionCondition, + **kwargs: Any ) -> AnomalyDetectionConfiguration: """Create anomaly detection configuration. @@ -332,7 +342,9 @@ async def create_detection_configuration( """ description = kwargs.pop("description", None) - series_group_detection_conditions = kwargs.pop("series_group_detection_conditions", None) + series_group_detection_conditions = kwargs.pop( + "series_group_detection_conditions", None + ) series_detection_conditions = kwargs.pop("series_detection_conditions", None) config = _AnomalyDetectionConfiguration( name=name, @@ -341,10 +353,14 @@ async def create_detection_configuration( whole_metric_configuration=whole_series_detection_condition._to_generated(), dimension_group_override_configurations=[ group._to_generated() for group in series_group_detection_conditions - ] if series_group_detection_conditions else None, + ] + if series_group_detection_conditions + else None, series_override_configurations=[ - series._to_generated() for series in series_detection_conditions] - if series_detection_conditions else None, + series._to_generated() for series in series_detection_conditions + ] + if series_detection_conditions + else None, ) response_headers = await self._client.create_anomaly_detection_configuration( @@ -376,16 +392,12 @@ async def get_data_feed(self, data_feed_id: str, **kwargs: Any) -> DataFeed: :caption: Get a data feed by its ID """ - data_feed = await self._client.get_data_feed_by_id( - data_feed_id, - **kwargs - ) + data_feed = await self._client.get_data_feed_by_id(data_feed_id, **kwargs) return DataFeed._from_generated(data_feed) @distributed_trace_async async def get_alert_configuration( - self, alert_configuration_id: str, - **kwargs: Any + self, alert_configuration_id: str, **kwargs: Any ) -> AnomalyAlertConfiguration: """Get a single anomaly alert configuration. @@ -405,13 +417,14 @@ async def get_alert_configuration( :caption: Get a single anomaly alert configuration by its ID """ - config = await self._client.get_anomaly_alerting_configuration(alert_configuration_id, **kwargs) + config = await self._client.get_anomaly_alerting_configuration( + alert_configuration_id, **kwargs + ) return AnomalyAlertConfiguration._from_generated(config) @distributed_trace_async async def get_detection_configuration( - self, detection_configuration_id: str, - **kwargs: Any + self, detection_configuration_id: str, **kwargs: Any ) -> AnomalyDetectionConfiguration: """Get a single anomaly detection configuration. @@ -431,14 +444,14 @@ async def get_detection_configuration( :caption: Get a single anomaly detection configuration by its ID """ - config = await self._client.get_anomaly_detection_configuration(detection_configuration_id, **kwargs) + config = await self._client.get_anomaly_detection_configuration( + detection_configuration_id, **kwargs + ) return AnomalyDetectionConfiguration._from_generated(config) @distributed_trace_async async def get_hook( - self, - hook_id: str, - **kwargs: Any + self, hook_id: str, **kwargs: Any ) -> Union[NotificationHook, EmailNotificationHook, WebNotificationHook]: """Get a web or email hook by its id. @@ -467,9 +480,7 @@ async def get_hook( @distributed_trace_async async def get_data_feed_ingestion_progress( - self, - data_feed_id: str, - **kwargs: Any + self, data_feed_id: str, **kwargs: Any ) -> DataFeedIngestionProgress: """Get last successful data ingestion job timestamp by data feed. @@ -489,7 +500,9 @@ async def get_data_feed_ingestion_progress( :dedent: 4 :caption: Get the progress of data feed ingestion """ - ingestion_process = await self._client.get_ingestion_progress(data_feed_id, **kwargs) + ingestion_process = await self._client.get_ingestion_progress( + data_feed_id, **kwargs + ) return DataFeedIngestionProgress._from_generated(ingestion_process) @distributed_trace_async @@ -526,14 +539,15 @@ async def refresh_data_feed_ingestion( await self._client.reset_data_feed_ingestion_status( data_feed_id, body=_IngestionProgressResetOptions( - start_time=converted_start_time, - end_time=converted_end_time + start_time=converted_start_time, end_time=converted_end_time ), **kwargs ) @distributed_trace_async - async def delete_alert_configuration(self, *alert_configuration_id: str, **kwargs: Any) -> None: + async def delete_alert_configuration( + self, *alert_configuration_id: str, **kwargs: Any + ) -> None: """Delete an anomaly alert configuration by its ID. :param str alert_configuration_id: anomaly alert configuration unique id. @@ -553,12 +567,13 @@ async def delete_alert_configuration(self, *alert_configuration_id: str, **kwarg if len(alert_configuration_id) != 1: raise TypeError("Alert configuration requires exactly one id.") - await self._client.delete_anomaly_alerting_configuration(alert_configuration_id[0], **kwargs) + await self._client.delete_anomaly_alerting_configuration( + alert_configuration_id[0], **kwargs + ) @distributed_trace_async async def delete_detection_configuration( - self, *detection_configuration_id: str, - **kwargs: Any + self, *detection_configuration_id: str, **kwargs: Any ) -> None: """Delete an anomaly detection configuration by its ID. @@ -579,7 +594,9 @@ async def delete_detection_configuration( if len(detection_configuration_id) != 1: raise TypeError("Detection configuration requires exactly one id.") - await self._client.delete_anomaly_detection_configuration(detection_configuration_id[0], **kwargs) + await self._client.delete_anomaly_detection_configuration( + detection_configuration_id[0], **kwargs + ) @distributed_trace_async async def delete_data_feed(self, *data_feed_id: str, **kwargs: Any) -> None: @@ -629,8 +646,7 @@ async def delete_hook(self, *hook_id: str, **kwargs: Any) -> None: @distributed_trace_async async def update_data_feed( - self, data_feed: Union[str, DataFeed], - **kwargs: Any + self, data_feed: Union[str, DataFeed], **kwargs: Any ) -> DataFeed: """Update a data feed. Either pass the entire DataFeed object with the chosen updates or the ID to your data feed with updates passed via keyword arguments. If you pass both @@ -693,17 +709,29 @@ async def update_data_feed( unset = object() update_kwargs = {} update_kwargs["dataFeedName"] = kwargs.pop("name", unset) - update_kwargs["dataFeedDescription"] = kwargs.pop("data_feed_description", unset) + update_kwargs["dataFeedDescription"] = kwargs.pop( + "data_feed_description", unset + ) update_kwargs["timestampColumn"] = kwargs.pop("timestamp_column", unset) update_kwargs["dataStartFrom"] = kwargs.pop("ingestion_begin_time", unset) - update_kwargs["startOffsetInSeconds"] = kwargs.pop("ingestion_start_offset", unset) - update_kwargs["maxConcurrency"] = kwargs.pop("data_source_request_concurrency", unset) - update_kwargs["minRetryIntervalInSeconds"] = kwargs.pop("ingestion_retry_delay", unset) + update_kwargs["startOffsetInSeconds"] = kwargs.pop( + "ingestion_start_offset", unset + ) + update_kwargs["maxConcurrency"] = kwargs.pop( + "data_source_request_concurrency", unset + ) + update_kwargs["minRetryIntervalInSeconds"] = kwargs.pop( + "ingestion_retry_delay", unset + ) update_kwargs["stopRetryAfterInSeconds"] = kwargs.pop("stop_retry_after", unset) update_kwargs["needRollup"] = kwargs.pop("rollup_type", unset) update_kwargs["rollUpMethod"] = kwargs.pop("rollup_method", unset) - update_kwargs["rollUpColumns"] = kwargs.pop("auto_rollup_group_by_column_names", unset) - update_kwargs["allUpIdentification"] = kwargs.pop("rollup_identification_value", unset) + update_kwargs["rollUpColumns"] = kwargs.pop( + "auto_rollup_group_by_column_names", unset + ) + update_kwargs["allUpIdentification"] = kwargs.pop( + "rollup_identification_value", unset + ) update_kwargs["fillMissingPointType"] = kwargs.pop("fill_type", unset) update_kwargs["fillMissingPointValue"] = kwargs.pop("custom_fill_value", unset) update_kwargs["viewMode"] = kwargs.pop("access_mode", unset) @@ -722,16 +750,18 @@ async def update_data_feed( else: data_feed_id = data_feed.id data_feed_patch_type = DATA_FEED_PATCH[data_feed.source.data_source_type] - data_feed_patch = data_feed._to_generated_patch(data_feed_patch_type, update) + data_feed_patch = data_feed._to_generated_patch( + data_feed_patch_type, update + ) - data_feed_detail = await self._client.update_data_feed(data_feed_id, data_feed_patch, **kwargs) + data_feed_detail = await self._client.update_data_feed( + data_feed_id, data_feed_patch, **kwargs + ) return DataFeed._from_generated(data_feed_detail) @distributed_trace_async async def update_alert_configuration( - self, - alert_configuration: Union[str, AnomalyAlertConfiguration], - **kwargs: Any + self, alert_configuration: Union[str, AnomalyAlertConfiguration], **kwargs: Any ) -> AnomalyAlertConfiguration: """Update anomaly alerting configuration. Either pass the entire AnomalyAlertConfiguration object with the chosen updates or the ID to your alert configuration with updates passed via keyword arguments. @@ -766,8 +796,12 @@ async def update_alert_configuration( update_kwargs = {} update_kwargs["name"] = kwargs.pop("name", unset) update_kwargs["hookIds"] = kwargs.pop("hook_ids", unset) - update_kwargs["crossMetricsOperator"] = kwargs.pop("cross_metrics_operator", unset) - update_kwargs["metricAlertingConfigurations"] = kwargs.pop("metric_alert_configurations", unset) + update_kwargs["crossMetricsOperator"] = kwargs.pop( + "cross_metrics_operator", unset + ) + update_kwargs["metricAlertingConfigurations"] = kwargs.pop( + "metric_alert_configurations", unset + ) update_kwargs["description"] = kwargs.pop("description", unset) update = {key: value for key, value in update_kwargs.items() if value != unset} @@ -779,15 +813,15 @@ async def update_alert_configuration( alert_configuration_id = alert_configuration.id alert_configuration_patch = alert_configuration._to_generated_patch( name=update.pop("name", None), - metric_alert_configurations=update.pop("metricAlertingConfigurations", None), + metric_alert_configurations=update.pop( + "metricAlertingConfigurations", None + ), hook_ids=update.pop("hookIds", None), cross_metrics_operator=update.pop("crossMetricsOperator", None), description=update.pop("description", None), ) alerting_config = await self._client.update_anomaly_alerting_configuration( - alert_configuration_id, - alert_configuration_patch, - **kwargs + alert_configuration_id, alert_configuration_patch, **kwargs ) return AnomalyAlertConfiguration._from_generated(alerting_config) @@ -835,9 +869,15 @@ async def update_detection_configuration( unset = object() update_kwargs = {} update_kwargs["name"] = kwargs.pop("name", unset) - update_kwargs["wholeMetricConfiguration"] = kwargs.pop("whole_series_detection_condition", unset) - update_kwargs["dimensionGroupOverrideConfigurations"] = kwargs.pop("series_group_detection_conditions", unset) - update_kwargs["seriesOverrideConfigurations"] = kwargs.pop("series_detection_conditions", unset) + update_kwargs["wholeMetricConfiguration"] = kwargs.pop( + "whole_series_detection_condition", unset + ) + update_kwargs["dimensionGroupOverrideConfigurations"] = kwargs.pop( + "series_group_detection_conditions", unset + ) + update_kwargs["seriesOverrideConfigurations"] = kwargs.pop( + "series_detection_conditions", unset + ) update_kwargs["description"] = kwargs.pop("description", unset) update = {key: value for key, value in update_kwargs.items() if value != unset} @@ -850,14 +890,18 @@ async def update_detection_configuration( detection_config_patch = detection_configuration._to_generated_patch( name=update.pop("name", None), description=update.pop("description", None), - whole_series_detection_condition=update.pop("wholeMetricConfiguration", None), - series_group_detection_conditions=update.pop("dimensionGroupOverrideConfigurations", None), - series_detection_conditions=update.pop("seriesOverrideConfigurations", None) + whole_series_detection_condition=update.pop( + "wholeMetricConfiguration", None + ), + series_group_detection_conditions=update.pop( + "dimensionGroupOverrideConfigurations", None + ), + series_detection_conditions=update.pop( + "seriesOverrideConfigurations", None + ), ) detection_config = await self._client.update_anomaly_detection_configuration( - detection_configuration_id, - detection_config_patch, - **kwargs + detection_configuration_id, detection_config_patch, **kwargs ) return AnomalyDetectionConfiguration._from_generated(detection_config) @@ -911,11 +955,11 @@ async def update_hook( update_kwargs["description"] = kwargs.pop("description", unset) update_kwargs["externalLink"] = kwargs.pop("external_link", unset) update_kwargs["toList"] = kwargs.pop("emails_to_alert", unset) - update_kwargs["endpoint"] = kwargs.pop('endpoint', unset) - update_kwargs["username"] = kwargs.pop('username', unset) - update_kwargs["password"] = kwargs.pop('password', unset) - update_kwargs["certificateKey"] = kwargs.pop('certificate_key', unset) - update_kwargs["certificatePassword"] = kwargs.pop('certificate_password', unset) + update_kwargs["endpoint"] = kwargs.pop("endpoint", unset) + update_kwargs["username"] = kwargs.pop("username", unset) + update_kwargs["password"] = kwargs.pop("password", unset) + update_kwargs["certificateKey"] = kwargs.pop("certificate_key", unset) + update_kwargs["certificatePassword"] = kwargs.pop("certificate_password", unset) update = {key: value for key, value in update_kwargs.items() if value != unset} if isinstance(hook, six.string_types): @@ -946,23 +990,20 @@ async def update_hook( password=update.pop("password", None), username=update.pop("username", None), certificate_key=update.pop("certificateKey", None), - certificate_password=update.pop("certificatePassword", None) + certificate_password=update.pop("certificatePassword", None), ) - updated_hook = await self._client.update_hook( - hook_id, - hook_patch, - **kwargs - ) + updated_hook = await self._client.update_hook(hook_id, hook_patch, **kwargs) if updated_hook.hook_type == "Email": return EmailNotificationHook._from_generated(updated_hook) return WebNotificationHook._from_generated(updated_hook) @distributed_trace def list_hooks( - self, - **kwargs: Any - ) -> AsyncItemPaged[Union[NotificationHook, EmailNotificationHook, WebNotificationHook]]: + self, **kwargs: Any + ) -> AsyncItemPaged[ + Union[NotificationHook, EmailNotificationHook, WebNotificationHook] + ]: """List all hooks. :keyword str hook_name: filter hook by its name. @@ -981,8 +1022,8 @@ def list_hooks( :dedent: 4 :caption: List all the notification hooks under an account """ - hook_name = kwargs.pop('hook_name', None) - skip = kwargs.pop('skip', None) + hook_name = kwargs.pop("hook_name", None) + skip = kwargs.pop("skip", None) def _convert_to_hook_type(hook): if hook.hook_type == "Email": @@ -992,15 +1033,14 @@ def _convert_to_hook_type(hook): return self._client.list_hooks( # type: ignore hook_name=hook_name, skip=skip, - cls=kwargs.pop("cls", lambda hooks: [_convert_to_hook_type(hook) for hook in hooks]), + cls=kwargs.pop( + "cls", lambda hooks: [_convert_to_hook_type(hook) for hook in hooks] + ), **kwargs ) @distributed_trace - def list_data_feeds( - self, - **kwargs: Any - ) -> AsyncItemPaged[DataFeed]: + def list_data_feeds(self, **kwargs: Any) -> AsyncItemPaged[DataFeed]: """List all data feeds. :keyword str data_feed_name: filter data feed by its name. @@ -1040,15 +1080,15 @@ def list_data_feeds( status=status, creator=creator, skip=skip, - cls=kwargs.pop("cls", lambda feeds: [DataFeed._from_generated(feed) for feed in feeds]), + cls=kwargs.pop( + "cls", lambda feeds: [DataFeed._from_generated(feed) for feed in feeds] + ), **kwargs ) @distributed_trace def list_alert_configurations( - self, - detection_configuration_id: str, - **kwargs: Any + self, detection_configuration_id: str, **kwargs: Any ) -> AsyncItemPaged[AnomalyAlertConfiguration]: """Query all anomaly alert configurations for specific anomaly detection configuration. @@ -1069,17 +1109,18 @@ def list_alert_configurations( """ return self._client.get_anomaly_alerting_configurations_by_anomaly_detection_configuration( # type: ignore detection_configuration_id, - cls=kwargs.pop("cls", lambda confs: [ - AnomalyAlertConfiguration._from_generated(conf) for conf in confs - ]), + cls=kwargs.pop( + "cls", + lambda confs: [ + AnomalyAlertConfiguration._from_generated(conf) for conf in confs + ], + ), **kwargs ) @distributed_trace def list_detection_configurations( - self, - metric_id: str, - **kwargs: Any + self, metric_id: str, **kwargs: Any ) -> AsyncItemPaged[AnomalyDetectionConfiguration]: """Query all anomaly detection configurations for specific metric. @@ -1100,9 +1141,13 @@ def list_detection_configurations( """ return self._client.get_anomaly_detection_configurations_by_metric( # type: ignore metric_id, - cls=kwargs.pop("cls", lambda confs: [ - AnomalyDetectionConfiguration._from_generated(conf) for conf in confs - ]), + cls=kwargs.pop( + "cls", + lambda confs: [ + AnomalyDetectionConfiguration._from_generated(conf) + for conf in confs + ], + ), **kwargs ) @@ -1144,8 +1189,7 @@ def list_data_feed_ingestion_status( return self._client.get_data_feed_ingestion_status( # type: ignore data_feed_id=data_feed_id, body=_IngestionStatusQueryOptions( - start_time=converted_start_time, - end_time=converted_end_time + start_time=converted_start_time, end_time=converted_end_time ), skip=skip, **kwargs @@ -1179,13 +1223,16 @@ async def get_datasource_credential( :caption: Get a datasource credential by its ID """ - datasource_credential = await self._client.get_credential(credential_id, **kwargs) + datasource_credential = await self._client.get_credential( + credential_id, **kwargs + ) return convert_to_datasource_credential(datasource_credential) @distributed_trace_async async def create_datasource_credential( - self, datasource_credential, # type: DatasourceCredentialUnion - **kwargs # type: Any + self, + datasource_credential, # type: DatasourceCredentialUnion + **kwargs # type: Any ): # type: (...) -> DatasourceCredentialUnion """Create a new datasource credential. @@ -1213,8 +1260,12 @@ async def create_datasource_credential( """ datasource_credential_request = None - if datasource_credential.credential_type in ["AzureSQLConnectionString", - "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV"]: + if datasource_credential.credential_type in [ + "AzureSQLConnectionString", + "DataLakeGen2SharedKey", + "ServicePrincipal", + "ServicePrincipalInKV", + ]: datasource_credential_request = datasource_credential._to_generated() response_headers = await self._client.create_credential( # type: ignore @@ -1222,13 +1273,12 @@ async def create_datasource_credential( cls=lambda pipeline_response, _, response_headers: response_headers, **kwargs ) - credential_id = response_headers["Location"].split("credentials/")[1] # type: ignore + credential_id = response_headers["Location"].split("credentials/")[1] # type: ignore return await self.get_datasource_credential(credential_id) @distributed_trace def list_datasource_credentials( - self, - **kwargs # type: Any + self, **kwargs # type: Any ): # type: (...) -> AsyncItemPaged[DatasourceCredentialUnion] """List all datasource credential. @@ -1256,14 +1306,18 @@ def list_datasource_credentials( return self._client.list_credentials( # type: ignore cls=kwargs.pop( "cls", - lambda credentials: [convert_to_datasource_credential(credential) for credential in credentials]), + lambda credentials: [ + convert_to_datasource_credential(credential) + for credential in credentials + ], + ), **kwargs ) @distributed_trace_async async def update_datasource_credential( self, - datasource_credential, # type: DatasourceCredentialUnion + datasource_credential, # type: DatasourceCredentialUnion **kwargs # type: Any ): # type: (...) -> DatasourceCredentialUnion @@ -1291,11 +1345,15 @@ async def update_datasource_credential( """ datasource_credential_request = None - if datasource_credential.credential_type in ["AzureSQLConnectionString", - "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV"]: + if datasource_credential.credential_type in [ + "AzureSQLConnectionString", + "DataLakeGen2SharedKey", + "ServicePrincipal", + "ServicePrincipalInKV", + ]: datasource_credential_request = datasource_credential._to_generated_patch() - updated_datasource_credential = await self._client.update_credential( # type: ignore + updated_datasource_credential = await self._client.update_credential( # type: ignore datasource_credential.id, datasource_credential_request, # type: ignore **kwargs @@ -1304,7 +1362,9 @@ async def update_datasource_credential( return convert_to_datasource_credential(updated_datasource_credential) @distributed_trace_async - async def delete_datasource_credential(self, *credential_id: str, **kwargs: Any) -> None: + async def delete_datasource_credential( + self, *credential_id: str, **kwargs: Any + ) -> None: """Delete a datasource credential by its ID. ::param str credential_id: Datasource credential unique ID. diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/_metrics_advisor_client_async.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/_metrics_advisor_client_async.py index 3acecdc5060c..f527793546c3 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/_metrics_advisor_client_async.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/_metrics_advisor_client_async.py @@ -28,28 +28,35 @@ FeedbackDimensionFilter, DimensionGroupIdentity, ) -from .._generated.aio import MicrosoftAzureMetricsAdvisorRESTAPIOpenAPIV2 as _ClientAsync -from .._helpers import convert_to_sub_feedback, convert_datetime, get_authentication_policy +from .._generated.aio import ( + MicrosoftAzureMetricsAdvisorRESTAPIOpenAPIV2 as _ClientAsync, +) +from .._helpers import ( + convert_to_sub_feedback, + convert_datetime, + get_authentication_policy, +) from ..models._models import ( AnomalyIncident, DataPointAnomaly, MetricSeriesData, AnomalyAlert, IncidentRootCause, - MetricEnrichedSeriesData + MetricEnrichedSeriesData, ) from .._version import SDK_MONIKER if TYPE_CHECKING: from .._generated.models import ( EnrichmentStatus, - MetricSeriesItem as MetricSeriesDefinition + MetricSeriesItem as MetricSeriesDefinition, ) from ..models._models import MetricFeedback from .._metrics_advisor_key_credential import MetricsAdvisorKeyCredential from azure.core.credentials_async import AsyncTokenCredential from .._metrics_advisor_client import FeedbackUnion + class MetricsAdvisorClient(object): """Represents an client that calls restful API of Azure Metrics Advisor service. @@ -61,10 +68,11 @@ class MetricsAdvisorClient(object): :type credential: ~azure.ai.metricsadvisor.MetricsAdvisorKeyCredential or ~azure.core.credentials.TokenCredential """ + def __init__(self, endpoint, credential, **kwargs): # type: (str, Union[MetricsAdvisorKeyCredential, AsyncTokenCredential], **Any) -> None try: - if not endpoint.lower().startswith('http'): + if not endpoint.lower().startswith("http"): endpoint = "https://" + endpoint except AttributeError: raise ValueError("Base URL must be a string.") @@ -81,9 +89,9 @@ def __init__(self, endpoint, credential, **kwargs): def __repr__(self): # type: () -> str - return "".format( - repr(self._endpoint) - )[:1024] + return "".format(repr(self._endpoint))[ + :1024 + ] async def __aenter__(self): # type: () -> MetricsAdvisorClient @@ -95,8 +103,7 @@ async def __aexit__(self, *args): await self._client.__aexit__(*args) # pylint:disable=no-member async def close(self) -> None: - """Close the :class:`~azure.ai.metricsadvisor.aio.MetricsAdvisorClient` session. - """ + """Close the :class:`~azure.ai.metricsadvisor.aio.MetricsAdvisorClient` session.""" await self._client.__aexit__() @distributed_trace_async @@ -123,8 +130,8 @@ async def add_feedback(self, feedback, **kwargs): """ return await self._client.create_metric_feedback( - body=feedback._to_generated(), - **kwargs) + body=feedback._to_generated(), **kwargs + ) @distributed_trace_async async def get_feedback(self, feedback_id, **kwargs): @@ -152,14 +159,15 @@ async def get_feedback(self, feedback_id, **kwargs): """ feedback = await self._client.get_metric_feedback( - feedback_id=feedback_id, - **kwargs) + feedback_id=feedback_id, **kwargs + ) return convert_to_sub_feedback(feedback) @distributed_trace def list_feedback( - self, metric_id, # type: str + self, + metric_id, # type: str **kwargs # type: Any ): # type: (...) -> AsyncItemPaged[Union[MetricFeedback, FeedbackUnion]] @@ -193,17 +201,17 @@ def list_feedback( :caption: List feedback on the given metric. """ - skip = kwargs.pop('skip', None) + skip = kwargs.pop("skip", None) dimension_filter = None - dimension_key = kwargs.pop('dimension_key', None) + dimension_key = kwargs.pop("dimension_key", None) if dimension_key: dimension_filter = FeedbackDimensionFilter(dimension=dimension_key) - feedback_type = kwargs.pop('feedback_type', None) - start_time = kwargs.pop('start_time', None) - end_time = kwargs.pop('end_time', None) + feedback_type = kwargs.pop("feedback_type", None) + start_time = kwargs.pop("start_time", None) + end_time = kwargs.pop("end_time", None) converted_start_time = convert_datetime(start_time) if start_time else None converted_end_time = convert_datetime(end_time) if end_time else None - time_mode = kwargs.pop('time_mode', None) + time_mode = kwargs.pop("time_mode", None) feedback_filter = MetricFeedbackFilter( metric_id=metric_id, dimension_filter=dimension_filter, @@ -216,13 +224,16 @@ def list_feedback( return self._client.list_metric_feedbacks( # type: ignore skip=skip, body=feedback_filter, - cls=kwargs.pop("cls", lambda result: [ - convert_to_sub_feedback(x) for x in result - ]), - **kwargs) + cls=kwargs.pop( + "cls", lambda result: [convert_to_sub_feedback(x) for x in result] + ), + **kwargs + ) @distributed_trace - def list_incident_root_causes(self, detection_configuration_id, incident_id, **kwargs): + def list_incident_root_causes( + self, detection_configuration_id, incident_id, **kwargs + ): # type: (str, str, Any) -> AsyncItemPaged[IncidentRootCause] """Query root cause for incident. @@ -248,15 +259,17 @@ def list_incident_root_causes(self, detection_configuration_id, incident_id, **k return self._client.get_root_cause_of_incident_by_anomaly_detection_configuration( # type: ignore configuration_id=detection_configuration_id, incident_id=incident_id, - cls=kwargs.pop("cls", lambda result: [ - IncidentRootCause._from_generated(x) for x in result - ]), + cls=kwargs.pop( + "cls", + lambda result: [IncidentRootCause._from_generated(x) for x in result], + ), **kwargs ) @distributed_trace def list_metric_enriched_series_data( - self, detection_configuration_id, # type: str + self, + detection_configuration_id, # type: str series, # type: Union[List[SeriesIdentity], List[Dict[str, str]]] start_time, # type: Union[str, datetime.datetime] end_time, # type: Union[str, datetime.datetime] @@ -285,10 +298,10 @@ def list_metric_enriched_series_data( """ series_list = [ - SeriesIdentity(dimension=dimension) - for dimension in series - if isinstance(dimension, dict) - ] or series + SeriesIdentity(dimension=dimension) + for dimension in series + if isinstance(dimension, dict) + ] or series series_list = cast(List[SeriesIdentity], series_list) converted_start_time = convert_datetime(start_time) @@ -296,22 +309,29 @@ def list_metric_enriched_series_data( detection_series_query = DetectionSeriesQuery( start_time=converted_start_time, end_time=converted_end_time, - series=series_list + series=series_list, ) return self._client.get_series_by_anomaly_detection_configuration( # type: ignore configuration_id=detection_configuration_id, body=detection_series_query, - cls=kwargs.pop("cls", lambda series: [MetricEnrichedSeriesData._from_generated(data) for data in series]), - **kwargs) + cls=kwargs.pop( + "cls", + lambda series: [ + MetricEnrichedSeriesData._from_generated(data) for data in series + ], + ), + **kwargs + ) @distributed_trace def list_alerts( - self, alert_configuration_id, # type: str - start_time, # type: Union[str, datetime.datetime] - end_time, # type: Union[str, datetime.datetime] - time_mode, # type: Union[str, AlertQueryTimeMode] - **kwargs # type: Any + self, + alert_configuration_id, # type: str + start_time, # type: Union[str, datetime.datetime] + end_time, # type: Union[str, datetime.datetime] + time_mode, # type: Union[str, AlertQueryTimeMode] + **kwargs # type: Any ): # type: (...) -> AsyncItemPaged[AnomalyAlert] """Query alerts under anomaly alert configuration. @@ -338,7 +358,7 @@ def list_alerts( :caption: Query anomaly detection results. """ - skip = kwargs.pop('skip', None) + skip = kwargs.pop("skip", None) converted_start_time = convert_datetime(start_time) converted_end_time = convert_datetime(end_time) @@ -352,31 +372,39 @@ def list_alerts( configuration_id=alert_configuration_id, skip=skip, body=alerting_result_query, - cls=kwargs.pop("cls", lambda alerts: [AnomalyAlert._from_generated(alert) for alert in alerts]), - **kwargs) + cls=kwargs.pop( + "cls", + lambda alerts: [ + AnomalyAlert._from_generated(alert) for alert in alerts + ], + ), + **kwargs + ) def _list_anomalies_for_alert(self, alert_configuration_id, alert_id, **kwargs): # type: (str, str, Any) -> AsyncItemPaged[DataPointAnomaly] - skip = kwargs.pop('skip', None) + skip = kwargs.pop("skip", None) return self._client.get_anomalies_from_alert_by_anomaly_alerting_configuration( # type: ignore configuration_id=alert_configuration_id, alert_id=alert_id, skip=skip, cls=lambda objs: [DataPointAnomaly._from_generated(x) for x in objs], - **kwargs) + **kwargs + ) def _list_anomalies_for_detection_configuration( - self, detection_configuration_id, # type: str - start_time, # type: Union[str, datetime.datetime] - end_time, # type: Union[str, datetime.datetime] - **kwargs # type: Any + self, + detection_configuration_id, # type: str + start_time, # type: Union[str, datetime.datetime] + end_time, # type: Union[str, datetime.datetime] + **kwargs # type: Any ): # type: (...) -> AsyncItemPaged[DataPointAnomaly] - skip = kwargs.pop('skip', None) - condition = kwargs.pop('filter', None) + skip = kwargs.pop("skip", None) + condition = kwargs.pop("filter", None) filter_condition = condition._to_generated() if condition else None converted_start_time = convert_datetime(start_time) converted_end_time = convert_datetime(end_time) @@ -391,13 +419,12 @@ def _list_anomalies_for_detection_configuration( skip=skip, body=detection_anomaly_result_query, cls=lambda objs: [DataPointAnomaly._from_generated(x) for x in objs], - **kwargs) + **kwargs + ) @overload def list_anomalies( - self, alert_configuration_id: str, - alert_id: str, - **kwargs: Any + self, alert_configuration_id: str, alert_id: str, **kwargs: Any ) -> AsyncItemPaged[DataPointAnomaly]: """Query anomalies under a specific alert. @@ -422,10 +449,11 @@ def list_anomalies( @overload def list_anomalies( - self, detection_configuration_id: str, - start_time: Union[str, datetime.datetime], - end_time: Union[str, datetime.datetime], - **kwargs: Any + self, + detection_configuration_id: str, + start_time: Union[str, datetime.datetime], + end_time: Union[str, datetime.datetime], + **kwargs: Any ) -> AsyncItemPaged[DataPointAnomaly]: """Query anomalies under a detection configuration. @@ -458,11 +486,11 @@ def list_anomalies(self, **kwargs): :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.ai.metricsadvisor.models.DataPointAnomaly] :raises ~azure.core.exceptions.HttpResponseError: """ - alert_configuration_id = kwargs.get('alert_configuration_id', None) - alert_id = kwargs.get('alert_id', None) - detection_configuration_id = kwargs.get('detection_configuration_id', None) - start_time = kwargs.get('start_time', None) - end_time = kwargs.get('end_time', None) + alert_configuration_id = kwargs.get("alert_configuration_id", None) + alert_id = kwargs.get("alert_id", None) + detection_configuration_id = kwargs.get("detection_configuration_id", None) + start_time = kwargs.get("start_time", None) + end_time = kwargs.get("end_time", None) if detection_configuration_id: if alert_configuration_id or alert_id: raise TypeError( @@ -477,11 +505,7 @@ def list_anomalies(self, **kwargs): @distributed_trace def list_anomaly_dimension_values( - self, detection_configuration_id, - dimension_name, - start_time, - end_time, - **kwargs + self, detection_configuration_id, dimension_name, start_time, end_time, **kwargs ): # type: (str, str, Union[str, datetime.datetime], Union[str, datetime.datetime], Any) -> AsyncItemPaged[str] @@ -508,8 +532,8 @@ def list_anomaly_dimension_values( :caption: Query dimension values. """ - skip = kwargs.pop('skip', None) - dimension = kwargs.pop('dimension_filter', None) + skip = kwargs.pop("skip", None) + dimension = kwargs.pop("dimension_filter", None) dimension_filter = DimensionGroupIdentity(dimension=dimension) converted_start_time = convert_datetime(start_time) converted_end_time = convert_datetime(end_time) @@ -524,28 +548,31 @@ def list_anomaly_dimension_values( configuration_id=detection_configuration_id, skip=skip, body=anomaly_dimension_query, - **kwargs) + **kwargs + ) def _list_incidents_for_alert(self, alert_configuration_id, alert_id, **kwargs): # type: (str, str, Any) -> AsyncItemPaged[AnomalyIncident] - skip = kwargs.pop('skip', None) + skip = kwargs.pop("skip", None) return self._client.get_incidents_from_alert_by_anomaly_alerting_configuration( # type: ignore configuration_id=alert_configuration_id, alert_id=alert_id, skip=skip, cls=lambda objs: [AnomalyIncident._from_generated(x) for x in objs], - **kwargs) + **kwargs + ) def _list_incidents_for_detection_configuration( - self, detection_configuration_id: str, + self, + detection_configuration_id: str, start_time: Union[str, datetime.datetime], end_time: Union[str, datetime.datetime], **kwargs: Any ) -> AsyncItemPaged[AnomalyIncident]: - condition = kwargs.pop('filter', None) + condition = kwargs.pop("filter", None) filter_condition = condition._to_generated() if condition else None converted_start_time = convert_datetime(start_time) converted_end_time = convert_datetime(end_time) @@ -560,13 +587,12 @@ def _list_incidents_for_detection_configuration( configuration_id=detection_configuration_id, body=detection_incident_result_query, cls=lambda objs: [AnomalyIncident._from_generated(x) for x in objs], - **kwargs) + **kwargs + ) @overload def list_incidents( - self, alert_configuration_id: str, - alert_id: str, - **kwargs: Any + self, alert_configuration_id: str, alert_id: str, **kwargs: Any ) -> AsyncItemPaged[AnomalyIncident]: """Query incidents under a specific alert. @@ -592,7 +618,8 @@ def list_incidents( @overload def list_incidents( - self, detection_configuration_id: str, + self, + detection_configuration_id: str, start_time: Union[str, datetime.datetime], end_time: Union[str, datetime.datetime], **kwargs: Any @@ -638,11 +665,11 @@ def list_incidents(self, **kwargs): :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.ai.metricsadvisor.models.AnomalyIncident] :raises ~azure.core.exceptions.HttpResponseError: """ - alert_configuration_id = kwargs.get('alert_configuration_id', None) - alert_id = kwargs.get('alert_id', None) - detection_configuration_id = kwargs.get('detection_configuration_id', None) - start_time = kwargs.get('start_time', None) - end_time = kwargs.get('end_time', None) + alert_configuration_id = kwargs.get("alert_configuration_id", None) + alert_id = kwargs.get("alert_id", None) + detection_configuration_id = kwargs.get("detection_configuration_id", None) + start_time = kwargs.get("start_time", None) + end_time = kwargs.get("end_time", None) if detection_configuration_id: if alert_configuration_id or alert_id: raise TypeError( @@ -682,8 +709,8 @@ def list_metric_dimension_values(self, metric_id, dimension_name, **kwargs): :caption: Query metric dimension values. """ - skip = kwargs.pop('skip', None) - dimension_value_filter = kwargs.pop('dimension_value_filter', None) + skip = kwargs.pop("skip", None) + dimension_value_filter = kwargs.pop("dimension_value_filter", None) metric_dimension_query_options = MetricDimensionQueryOptions( dimension_name=dimension_name, @@ -694,11 +721,13 @@ def list_metric_dimension_values(self, metric_id, dimension_name, **kwargs): metric_id=metric_id, body=metric_dimension_query_options, skip=skip, - **kwargs) + **kwargs + ) @distributed_trace def list_metric_series_data( - self, metric_id, # type: str + self, + metric_id, # type: str series_keys, # type: List[Dict[str, str]] start_time, # type: Union[str, datetime.datetime] end_time, # type: Union[str, datetime.datetime] @@ -740,8 +769,14 @@ def list_metric_series_data( return self._client.get_metric_data( # type: ignore metric_id=metric_id, body=metric_data_query_options, - cls=kwargs.pop("cls", lambda result: [MetricSeriesData._from_generated(series) for series in result]), - **kwargs) + cls=kwargs.pop( + "cls", + lambda result: [ + MetricSeriesData._from_generated(series) for series in result + ], + ), + **kwargs + ) @distributed_trace def list_metric_series_definitions(self, metric_id, active_since, **kwargs): @@ -771,8 +806,8 @@ def list_metric_series_definitions(self, metric_id, active_since, **kwargs): :caption: Query metric series definitions. """ - skip = kwargs.pop('skip', None) - dimension_filter = kwargs.pop('dimension_filter', None) + skip = kwargs.pop("skip", None) + dimension_filter = kwargs.pop("dimension_filter", None) metric_series_query_options = MetricSeriesQueryOptions( active_since=active_since, @@ -780,18 +815,17 @@ def list_metric_series_definitions(self, metric_id, active_since, **kwargs): ) return self._client.get_metric_series( # type: ignore - metric_id=metric_id, - body=metric_series_query_options, - skip=skip, - **kwargs) + metric_id=metric_id, body=metric_series_query_options, skip=skip, **kwargs + ) @distributed_trace - def list_metric_enrichment_status(self, - metric_id, # type: str - start_time, # type: Union[str, datetime.datetime] - end_time, # type: Union[str, datetime.datetime] - **kwargs # type: Any - ): + def list_metric_enrichment_status( + self, + metric_id, # type: str + start_time, # type: Union[str, datetime.datetime] + end_time, # type: Union[str, datetime.datetime] + **kwargs # type: Any + ): # type: (...) -> AsyncItemPaged[EnrichmentStatus] """Query anomaly detection status. @@ -815,7 +849,7 @@ def list_metric_enrichment_status(self, :caption: Query metric enrichment status. """ - skip = kwargs.pop('skip', None) + skip = kwargs.pop("skip", None) converted_start_time = convert_datetime(start_time) converted_end_time = convert_datetime(end_time) enrichment_status_query_option = EnrichmentStatusQueryOption( @@ -827,4 +861,5 @@ def list_metric_enrichment_status(self, metric_id=metric_id, skip=skip, body=enrichment_status_query_option, - **kwargs) + **kwargs + ) diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/models/__init__.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/models/__init__.py index 3d2d24af780b..0829ccf4eb18 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/models/__init__.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/models/__init__.py @@ -41,7 +41,7 @@ FeedbackType, TimeMode as AlertQueryTimeMode, DataSourceCredentialType as DatasourceCredentialType, - AuthenticationTypeEnum as DatasourceAuthenticationType + AuthenticationTypeEnum as DatasourceAuthenticationType, ) from .._generated.models import ( @@ -53,7 +53,7 @@ MetricSeriesItem as MetricSeriesDefinition, IngestionStatus as DataFeedIngestionStatus, SeriesIdentity, - SeverityFilterCondition + SeverityFilterCondition, ) from ._models import ( diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/models/_models.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/models/_models.py index bdf2b16399fe..d5289d6a0c22 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/models/_models.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/models/_models.py @@ -8,13 +8,7 @@ # pylint:disable=too-many-lines import datetime -from typing import ( - Any, - Union, - List, - Dict, - TYPE_CHECKING -) +from typing import Any, Union, List, Dict, TYPE_CHECKING from enum import Enum import msrest from .._generated.models import ( @@ -102,7 +96,7 @@ AnomalySeverity, SnoozeScope, AnomalyDetectorDirection, - DataFeedGranularityType + DataFeedGranularityType, ) from .._generated.models import ( AnomalyResult, @@ -113,8 +107,7 @@ class MetricAnomalyAlertScopeType(str, Enum): - """Anomaly scope - """ + """Anomaly scope""" WHOLE_SERIES = "WholeSeries" SERIES_GROUP = "SeriesGroup" @@ -146,8 +139,7 @@ def _from_generated(cls, alert): class DataFeedRollupType(str, Enum): - """Data feed rollup type - """ + """Data feed rollup type""" NO_ROLLUP = "NoRollup" AUTO_ROLLUP = "AutoRollup" @@ -175,8 +167,7 @@ def _from_generated(cls, rollup): class MetricAnomalyAlertConfigurationsOperator(str, Enum): - """Cross metrics operator - """ + """Cross metrics operator""" AND = "AND" OR = "OR" @@ -201,19 +192,20 @@ class DataFeedGranularity(object): def __init__(self, granularity_type, **kwargs): # type: (Union[str, DataFeedGranularityType], Any) -> None self.granularity_type = granularity_type - self.custom_granularity_value = kwargs.get('custom_granularity_value', None) + self.custom_granularity_value = kwargs.get("custom_granularity_value", None) def __repr__(self): return "DataFeedGranularity(granularity_type={}, custom_granularity_value={})".format( - self.granularity_type, - self.custom_granularity_value - )[:1024] + self.granularity_type, self.custom_granularity_value + )[ + :1024 + ] @classmethod def _from_generated(cls, granularity_name, granularity_amount): return cls( granularity_type=granularity_name, - custom_granularity_value=granularity_amount + custom_granularity_value=granularity_amount, ) @@ -229,23 +221,30 @@ class DataFeedIngestionSettings(object): :keyword int stop_retry_after: Stop retry data ingestion after the data slice first schedule time in seconds. """ + def __init__(self, ingestion_begin_time, **kwargs): # type: (datetime.datetime, Any) -> None self.ingestion_begin_time = ingestion_begin_time - self.ingestion_start_offset = kwargs.get('ingestion_start_offset', 0) - self.data_source_request_concurrency = kwargs.get('data_source_request_concurrency', -1) - self.ingestion_retry_delay = kwargs.get('ingestion_retry_delay', -1) - self.stop_retry_after = kwargs.get('stop_retry_after', -1) + self.ingestion_start_offset = kwargs.get("ingestion_start_offset", 0) + self.data_source_request_concurrency = kwargs.get( + "data_source_request_concurrency", -1 + ) + self.ingestion_retry_delay = kwargs.get("ingestion_retry_delay", -1) + self.stop_retry_after = kwargs.get("stop_retry_after", -1) def __repr__(self): - return "DataFeedIngestionSettings(ingestion_begin_time={}, ingestion_start_offset={}, " \ - "data_source_request_concurrency={}, ingestion_retry_delay={}, stop_retry_after={})".format( - self.ingestion_begin_time, - self.ingestion_start_offset, - self.data_source_request_concurrency, - self.ingestion_retry_delay, - self.stop_retry_after, - )[:1024] + return ( + "DataFeedIngestionSettings(ingestion_begin_time={}, ingestion_start_offset={}, " + "data_source_request_concurrency={}, ingestion_retry_delay={}, stop_retry_after={})".format( + self.ingestion_begin_time, + self.ingestion_start_offset, + self.data_source_request_concurrency, + self.ingestion_retry_delay, + self.stop_retry_after, + )[ + :1024 + ] + ) class DataFeedMissingDataPointFillSettings(object): @@ -260,14 +259,16 @@ class DataFeedMissingDataPointFillSettings(object): """ def __init__(self, **kwargs): - self.fill_type = kwargs.get('fill_type', "SmartFilling") - self.custom_fill_value = kwargs.get('custom_fill_value', None) + self.fill_type = kwargs.get("fill_type", "SmartFilling") + self.custom_fill_value = kwargs.get("custom_fill_value", None) def __repr__(self): return "DataFeedMissingDataPointFillSettings(fill_type={}, custom_fill_value={})".format( - self.fill_type, - self.custom_fill_value, - )[:1024] + self.fill_type, + self.custom_fill_value, + )[ + :1024 + ] class DataFeedRollupSettings(object): @@ -282,20 +283,27 @@ class DataFeedRollupSettings(object): "Avg", "Count". :paramtype rollup_method: str or ~azure.ai.metricsadvisor.models.DataFeedAutoRollupMethod """ + def __init__(self, **kwargs): - self.rollup_identification_value = kwargs.get('rollup_identification_value', None) - self.rollup_type = kwargs.get('rollup_type', "AutoRollup") - self.auto_rollup_group_by_column_names = kwargs.get('auto_rollup_group_by_column_names', None) - self.rollup_method = kwargs.get('rollup_method', None) + self.rollup_identification_value = kwargs.get( + "rollup_identification_value", None + ) + self.rollup_type = kwargs.get("rollup_type", "AutoRollup") + self.auto_rollup_group_by_column_names = kwargs.get( + "auto_rollup_group_by_column_names", None + ) + self.rollup_method = kwargs.get("rollup_method", None) def __repr__(self): - return "DataFeedRollupSettings(rollup_identification_value={}, rollup_type={}, " \ - "auto_rollup_group_by_column_names={}, rollup_method={})".format( - self.rollup_identification_value, - self.rollup_type, - self.auto_rollup_group_by_column_names, - self.rollup_method - )[:1024] + return ( + "DataFeedRollupSettings(rollup_identification_value={}, rollup_type={}, " + "auto_rollup_group_by_column_names={}, rollup_method={})".format( + self.rollup_identification_value, + self.rollup_type, + self.auto_rollup_group_by_column_names, + self.rollup_method, + )[:1024] + ) class DataFeedSchema(object): @@ -308,18 +316,19 @@ class DataFeedSchema(object): :keyword str timestamp_column: User-defined timestamp column. If timestamp_column is None, start time of every time slice will be used as default value. """ + def __init__(self, metrics, **kwargs): # type: (List[DataFeedMetric], Any) -> None self.metrics = metrics - self.dimensions = kwargs.get('dimensions', None) - self.timestamp_column = kwargs.get('timestamp_column', None) + self.dimensions = kwargs.get("dimensions", None) + self.timestamp_column = kwargs.get("timestamp_column", None) def __repr__(self): return "DataFeedSchema(metrics={}, dimensions={}, timestamp_column={})".format( - repr(self.metrics), - repr(self.dimensions), - self.timestamp_column, - )[:1024] + repr(self.metrics), + repr(self.dimensions), + self.timestamp_column, + )[:1024] class DataFeed(object): # pylint:disable=too-many-instance-attributes @@ -358,8 +367,10 @@ class DataFeed(object): # pylint:disable=too-many-instance-attributes :vartype access_mode: str or ~azure.ai.metricsadvisor.models.DataFeedAccessMode :ivar str action_link_template: action link for alert. """ + def __init__( - self, name, # type: str + self, + name, # type: str source, # type: DataFeedSourceUnion granularity, # type: DataFeedGranularity schema, # type: DataFeedSchema @@ -372,80 +383,98 @@ def __init__( self.ingestion_settings = ingestion_settings self.schema = schema self.source = source - self.id = kwargs.get('id', None) - self.created_time = kwargs.get('created_time', None) - self.is_admin = kwargs.get('is_admin', None) - self.metric_ids = kwargs.get('metric_ids', None) - self.status = kwargs.get('status', None) - self.admins = kwargs.get('admins', None) - self.data_feed_description = kwargs.get('data_feed_description', None) - self.missing_data_point_fill_settings = kwargs.get('missing_data_point_fill_settings', None) - self.rollup_settings = kwargs.get('rollup_settings', None) - self.viewers = kwargs.get('viewers', None) - self.access_mode = kwargs.get('access_mode', "Private") - self.action_link_template = kwargs.get('action_link_template', None) + self.id = kwargs.get("id", None) + self.created_time = kwargs.get("created_time", None) + self.is_admin = kwargs.get("is_admin", None) + self.metric_ids = kwargs.get("metric_ids", None) + self.status = kwargs.get("status", None) + self.admins = kwargs.get("admins", None) + self.data_feed_description = kwargs.get("data_feed_description", None) + self.missing_data_point_fill_settings = kwargs.get( + "missing_data_point_fill_settings", None + ) + self.rollup_settings = kwargs.get("rollup_settings", None) + self.viewers = kwargs.get("viewers", None) + self.access_mode = kwargs.get("access_mode", "Private") + self.action_link_template = kwargs.get("action_link_template", None) def __repr__(self): - return "DataFeed(created_time={}, granularity={}, id={}, ingestion_settings={}, is_admin={}, " \ - "metric_ids={}, name={}, schema={}, source={}, status={}, admins={}, " \ - "data_feed_description={}, missing_data_point_fill_settings={}, " \ - "rollup_settings={}, viewers={}, access_mode={}, action_link_template={})".format( - self.created_time, - repr(self.granularity), - self.id, - repr(self.ingestion_settings), - self.is_admin, - self.metric_ids, - self.name, - repr(self.schema), - repr(self.source), - self.status, - self.admins, - self.data_feed_description, - repr(self.missing_data_point_fill_settings), - repr(self.rollup_settings), - self.viewers, - self.access_mode, - self.action_link_template - )[:1024] + return ( + "DataFeed(created_time={}, granularity={}, id={}, ingestion_settings={}, is_admin={}, " + "metric_ids={}, name={}, schema={}, source={}, status={}, admins={}, " + "data_feed_description={}, missing_data_point_fill_settings={}, " + "rollup_settings={}, viewers={}, access_mode={}, action_link_template={})".format( + self.created_time, + repr(self.granularity), + self.id, + repr(self.ingestion_settings), + self.is_admin, + self.metric_ids, + self.name, + repr(self.schema), + repr(self.source), + self.status, + self.admins, + self.data_feed_description, + repr(self.missing_data_point_fill_settings), + repr(self.rollup_settings), + self.viewers, + self.access_mode, + self.action_link_template, + )[ + :1024 + ] + ) @classmethod def _from_generated(cls, data_feed): return cls( created_time=data_feed.created_time, - granularity=DataFeedGranularity._from_generated(data_feed.granularity_name, data_feed.granularity_amount), + granularity=DataFeedGranularity._from_generated( + data_feed.granularity_name, data_feed.granularity_amount + ), id=data_feed.data_feed_id, ingestion_settings=DataFeedIngestionSettings( ingestion_begin_time=data_feed.data_start_from, data_source_request_concurrency=data_feed.max_concurrency, ingestion_retry_delay=data_feed.min_retry_interval_in_seconds, ingestion_start_offset=data_feed.start_offset_in_seconds, - stop_retry_after=data_feed.stop_retry_after_in_seconds + stop_retry_after=data_feed.stop_retry_after_in_seconds, ), is_admin=data_feed.is_admin, - metric_ids={metric.metric_name: metric.metric_id for metric in data_feed.metrics}, + metric_ids={ + metric.metric_name: metric.metric_id for metric in data_feed.metrics + }, name=data_feed.data_feed_name, admins=data_feed.admins, data_feed_description=data_feed.data_feed_description, missing_data_point_fill_settings=DataFeedMissingDataPointFillSettings( fill_type=data_feed.fill_missing_point_type, - custom_fill_value=data_feed.fill_missing_point_value + custom_fill_value=data_feed.fill_missing_point_value, ), rollup_settings=DataFeedRollupSettings( rollup_identification_value=data_feed.all_up_identification, rollup_type=DataFeedRollupType._from_generated(data_feed.need_rollup), auto_rollup_group_by_column_names=data_feed.roll_up_columns, - rollup_method=data_feed.roll_up_method + rollup_method=data_feed.roll_up_method, ), viewers=data_feed.viewers, access_mode=data_feed.view_mode, action_link_template=data_feed.action_link_template, schema=DataFeedSchema( - dimensions=[DataFeedDimension._from_generated(dim) for dim in data_feed.dimension], - metrics=[DataFeedMetric._from_generated(metric) for metric in data_feed.metrics], - timestamp_column=data_feed.timestamp_column + dimensions=[ + DataFeedDimension._from_generated(dim) + for dim in data_feed.dimension + ], + metrics=[ + DataFeedMetric._from_generated(metric) + for metric in data_feed.metrics + ], + timestamp_column=data_feed.timestamp_column, + ), + source=DATA_FEED_TRANSFORM[data_feed.data_source_type]._from_generated( + data_feed.data_source_parameter ), - source=DATA_FEED_TRANSFORM[data_feed.data_source_type]._from_generated(data_feed.data_source_parameter), status=data_feed.status, ) @@ -463,9 +492,13 @@ def _to_generated_patch(self, data_source_feed_type, kwargs): DataFeedRollupType._to_generated(rollup_type) return data_source_feed_type( data_feed_name=kwargs.pop("dataFeedName", None) or self.name, - data_source_parameter=source_param if source_param else self.source._to_generated_patch(), - timestamp_column=kwargs.pop("timestampColumn", None) or self.schema.timestamp_column, - data_start_from=kwargs.pop("dataStartFrom", None) or self.ingestion_settings.ingestion_begin_time, + data_source_parameter=source_param + if source_param + else self.source._to_generated_patch(), + timestamp_column=kwargs.pop("timestampColumn", None) + or self.schema.timestamp_column, + data_start_from=kwargs.pop("dataStartFrom", None) + or self.ingestion_settings.ingestion_begin_time, max_concurrency=kwargs.pop("maxConcurrency", None) or self.ingestion_settings.data_source_request_concurrency, min_retry_interval_in_seconds=kwargs.pop("minRetryIntervalInSeconds", None) @@ -478,33 +511,36 @@ def _to_generated_patch(self, data_source_feed_type, kwargs): or self.data_feed_description, need_rollup=rollup_type or DataFeedRollupType._to_generated(self.rollup_settings.rollup_type) - if self.rollup_settings else None, + if self.rollup_settings + else None, roll_up_method=kwargs.pop("rollUpMethod", None) or self.rollup_settings.rollup_method - if self.rollup_settings else None, + if self.rollup_settings + else None, roll_up_columns=kwargs.pop("rollUpColumns", None) or self.rollup_settings.auto_rollup_group_by_column_names - if self.rollup_settings else None, + if self.rollup_settings + else None, all_up_identification=kwargs.pop("allUpIdentification", None) or self.rollup_settings.rollup_identification_value - if self.rollup_settings else None, + if self.rollup_settings + else None, fill_missing_point_type=kwargs.pop("fillMissingPointType", None) or self.missing_data_point_fill_settings.fill_type - if self.missing_data_point_fill_settings else None, + if self.missing_data_point_fill_settings + else None, fill_missing_point_value=kwargs.pop("fillMissingPointValue", None) or self.missing_data_point_fill_settings.custom_fill_value - if self.missing_data_point_fill_settings else None, - viewers=kwargs.pop("viewers", None) - or self.viewers, - view_mode=kwargs.pop("viewMode", None) - or self.access_mode, - admins=kwargs.pop("admins", None) - or self.admins, + if self.missing_data_point_fill_settings + else None, + viewers=kwargs.pop("viewers", None) or self.viewers, + view_mode=kwargs.pop("viewMode", None) or self.access_mode, + admins=kwargs.pop("admins", None) or self.admins, status=kwargs.pop("status", None) or self.status, action_link_template=kwargs.pop("actionLinkTemplate", None) or self.action_link_template, authentication_type=authentication_type, - credential_id=credential_id + credential_id=credential_id, ) @@ -519,6 +555,7 @@ class MetricAnomalyAlertScope(object): :keyword top_n_group_in_scope: :paramtype top_n_group_in_scope: ~azure.ai.metricsadvisor.models.TopNGroupScope """ + def __init__(self, scope_type, **kwargs): # type: (Union[str, MetricAnomalyAlertScopeType], Any) -> None self.scope_type = scope_type @@ -527,22 +564,27 @@ def __init__(self, scope_type, **kwargs): def __repr__(self): return "MetricAnomalyAlertScope(scope_type={}, series_group_in_scope={}, top_n_group_in_scope={})".format( - self.scope_type, - self.series_group_in_scope, - repr(self.top_n_group_in_scope) - )[:1024] + self.scope_type, self.series_group_in_scope, repr(self.top_n_group_in_scope) + )[ + :1024 + ] @classmethod def _from_generated(cls, config): return cls( - scope_type=MetricAnomalyAlertScopeType._from_generated(config.anomaly_scope_type), + scope_type=MetricAnomalyAlertScopeType._from_generated( + config.anomaly_scope_type + ), series_group_in_scope=config.dimension_anomaly_scope.dimension - if config.dimension_anomaly_scope else None, + if config.dimension_anomaly_scope + else None, top_n_group_in_scope=TopNGroupScope( top=config.top_n_anomaly_scope.top, period=config.top_n_anomaly_scope.period, - min_top_count=config.top_n_anomaly_scope.min_top_count - ) if config.top_n_anomaly_scope else None + min_top_count=config.top_n_anomaly_scope.min_top_count, + ) + if config.top_n_anomaly_scope + else None, ) @@ -558,7 +600,9 @@ class TopNGroupScope(object): :type min_top_count: int """ - def __init__(self, top, period, min_top_count, **kwargs): # pylint: disable=unused-argument + def __init__( + self, top, period, min_top_count, **kwargs + ): # pylint: disable=unused-argument # type: (int, int, int, Any) -> None self.top = top self.period = period @@ -566,10 +610,8 @@ def __init__(self, top, period, min_top_count, **kwargs): # pylint: disable=unu def __repr__(self): return "TopNGroupScope(top={}, period={}, min_top_count={})".format( - self.top, - self.period, - self.min_top_count - )[:1024] + self.top, self.period, self.min_top_count + )[:1024] class SeverityCondition(object): @@ -583,16 +625,17 @@ class SeverityCondition(object): :type max_alert_severity: str or ~azure.ai.metricsadvisor.models.AnomalySeverity """ - def __init__(self, min_alert_severity, max_alert_severity, **kwargs): # pylint: disable=unused-argument + def __init__( + self, min_alert_severity, max_alert_severity, **kwargs + ): # pylint: disable=unused-argument # type: (Union[str, AnomalySeverity], Union[str, AnomalySeverity], Any) -> None self.min_alert_severity = min_alert_severity self.max_alert_severity = max_alert_severity def __repr__(self): return "SeverityCondition(min_alert_severity={}, max_alert_severity={})".format( - self.min_alert_severity, - self.max_alert_severity - )[:1024] + self.min_alert_severity, self.max_alert_severity + )[:1024] class MetricAnomalyAlertSnoozeCondition(object): @@ -606,7 +649,9 @@ class MetricAnomalyAlertSnoozeCondition(object): :type only_for_successive: bool """ - def __init__(self, auto_snooze, snooze_scope, only_for_successive, **kwargs): # pylint: disable=unused-argument + def __init__( + self, auto_snooze, snooze_scope, only_for_successive, **kwargs + ): # pylint: disable=unused-argument # type: (int, Union[str, SnoozeScope], bool, Any) -> None self.auto_snooze = auto_snooze self.snooze_scope = snooze_scope @@ -614,10 +659,10 @@ def __init__(self, auto_snooze, snooze_scope, only_for_successive, **kwargs): # def __repr__(self): return "MetricAnomalyAlertSnoozeCondition(auto_snooze={}, snooze_scope={}, only_for_successive={})".format( - self.auto_snooze, - self.snooze_scope, - self.only_for_successive - )[:1024] + self.auto_snooze, self.snooze_scope, self.only_for_successive + )[ + :1024 + ] class MetricAnomalyAlertConditions(object): @@ -635,9 +680,10 @@ def __init__(self, **kwargs): def __repr__(self): return "MetricAnomalyAlertConditions(metric_boundary_condition={}, severity_condition={})".format( - repr(self.metric_boundary_condition), - repr(self.severity_condition) - )[:1024] + repr(self.metric_boundary_condition), repr(self.severity_condition) + )[ + :1024 + ] class MetricBoundaryCondition(object): @@ -656,20 +702,22 @@ class MetricBoundaryCondition(object): def __init__(self, direction, **kwargs): # type: (Union[str, AnomalyDetectorDirection], Any) -> None self.direction = direction - self.lower = kwargs.get('lower', None) - self.upper = kwargs.get('upper', None) - self.companion_metric_id = kwargs.get('companion_metric_id', None) - self.trigger_for_missing = kwargs.get('trigger_for_missing', None) + self.lower = kwargs.get("lower", None) + self.upper = kwargs.get("upper", None) + self.companion_metric_id = kwargs.get("companion_metric_id", None) + self.trigger_for_missing = kwargs.get("trigger_for_missing", None) def __repr__(self): - return "MetricBoundaryCondition(direction={}, lower={}, upper={}, companion_metric_id={}, " \ - "trigger_for_missing={})".format( - self.direction, - self.lower, - self.upper, - self.companion_metric_id, - self.trigger_for_missing - )[:1024] + return ( + "MetricBoundaryCondition(direction={}, lower={}, upper={}, companion_metric_id={}, " + "trigger_for_missing={})".format( + self.direction, + self.lower, + self.upper, + self.companion_metric_id, + self.trigger_for_missing, + )[:1024] + ) class MetricAlertConfiguration(object): @@ -686,6 +734,7 @@ class MetricAlertConfiguration(object): :keyword alert_snooze_condition: :paramtype alert_snooze_condition: ~azure.ai.metricsadvisor.models.MetricAnomalyAlertSnoozeCondition """ + def __init__(self, detection_configuration_id, alert_scope, **kwargs): # type: (str, MetricAnomalyAlertScope, Any) -> None self.detection_configuration_id = detection_configuration_id @@ -695,14 +744,16 @@ def __init__(self, detection_configuration_id, alert_scope, **kwargs): self.alert_snooze_condition = kwargs.get("alert_snooze_condition", None) def __repr__(self): - return "MetricAlertConfiguration(detection_configuration_id={}, alert_scope={}, negation_operation={}, " \ - "alert_conditions={}, alert_snooze_condition={})".format( - self.detection_configuration_id, - repr(self.alert_scope), - self.negation_operation, - repr(self.alert_conditions), - repr(self.alert_snooze_condition) - )[:1024] + return ( + "MetricAlertConfiguration(detection_configuration_id={}, alert_scope={}, negation_operation={}, " + "alert_conditions={}, alert_snooze_condition={})".format( + self.detection_configuration_id, + repr(self.alert_scope), + self.negation_operation, + repr(self.alert_conditions), + repr(self.alert_snooze_condition), + )[:1024] + ) @classmethod def _from_generated(cls, config): @@ -713,8 +764,10 @@ def _from_generated(cls, config): alert_snooze_condition=MetricAnomalyAlertSnoozeCondition( auto_snooze=config.snooze_filter.auto_snooze, snooze_scope=config.snooze_filter.snooze_scope, - only_for_successive=config.snooze_filter.only_for_successive - ) if config.snooze_filter else None, + only_for_successive=config.snooze_filter.only_for_successive, + ) + if config.snooze_filter + else None, alert_conditions=MetricAnomalyAlertConditions( metric_boundary_condition=MetricBoundaryCondition( direction=config.value_filter.direction, @@ -722,42 +775,59 @@ def _from_generated(cls, config): upper=config.value_filter.upper, companion_metric_id=config.value_filter.metric_id, trigger_for_missing=config.value_filter.trigger_for_missing, - ) if config.value_filter else None, + ) + if config.value_filter + else None, severity_condition=SeverityCondition( max_alert_severity=config.severity_filter.max_alert_severity, - min_alert_severity=config.severity_filter.min_alert_severity - ) if config.severity_filter else None, - ) + min_alert_severity=config.severity_filter.min_alert_severity, + ) + if config.severity_filter + else None, + ), ) def _to_generated(self): return _MetricAlertingConfiguration( anomaly_detection_configuration_id=self.detection_configuration_id, - anomaly_scope_type=MetricAnomalyAlertScopeType._to_generated(self.alert_scope.scope_type), - dimension_anomaly_scope=_DimensionGroupIdentity(dimension=self.alert_scope.series_group_in_scope) - if self.alert_scope.series_group_in_scope else None, + anomaly_scope_type=MetricAnomalyAlertScopeType._to_generated( + self.alert_scope.scope_type + ), + dimension_anomaly_scope=_DimensionGroupIdentity( + dimension=self.alert_scope.series_group_in_scope + ) + if self.alert_scope.series_group_in_scope + else None, top_n_anomaly_scope=_TopNGroupScope( top=self.alert_scope.top_n_group_in_scope.top, period=self.alert_scope.top_n_group_in_scope.period, min_top_count=self.alert_scope.top_n_group_in_scope.min_top_count, - ) if self.alert_scope.top_n_group_in_scope else None, + ) + if self.alert_scope.top_n_group_in_scope + else None, negation_operation=self.negation_operation, severity_filter=_SeverityCondition( max_alert_severity=self.alert_conditions.severity_condition.max_alert_severity, - min_alert_severity=self.alert_conditions.severity_condition.min_alert_severity - ) if self.alert_conditions and self.alert_conditions.severity_condition else None, + min_alert_severity=self.alert_conditions.severity_condition.min_alert_severity, + ) + if self.alert_conditions and self.alert_conditions.severity_condition + else None, snooze_filter=_AlertSnoozeCondition( auto_snooze=self.alert_snooze_condition.auto_snooze, snooze_scope=self.alert_snooze_condition.snooze_scope, - only_for_successive=self.alert_snooze_condition.only_for_successive - ) if self.alert_snooze_condition else None, + only_for_successive=self.alert_snooze_condition.only_for_successive, + ) + if self.alert_snooze_condition + else None, value_filter=_ValueCondition( direction=self.alert_conditions.metric_boundary_condition.direction, lower=self.alert_conditions.metric_boundary_condition.lower, upper=self.alert_conditions.metric_boundary_condition.upper, metric_id=self.alert_conditions.metric_boundary_condition.companion_metric_id, trigger_for_missing=self.alert_conditions.metric_boundary_condition.trigger_for_missing, - ) if self.alert_conditions and self.alert_conditions.metric_boundary_condition else None + ) + if self.alert_conditions and self.alert_conditions.metric_boundary_condition + else None, ) @@ -781,27 +851,30 @@ class AnomalyAlertConfiguration(object): :keyword list[str] dimensions_to_split_alert: dimensions used to split alert. """ + def __init__(self, name, metric_alert_configurations, hook_ids, **kwargs): # type: (str, List[MetricAlertConfiguration], List[str], Any) -> None self.name = name self.hook_ids = hook_ids self.metric_alert_configurations = metric_alert_configurations - self.id = kwargs.get('id', None) - self.description = kwargs.get('description', None) - self.cross_metrics_operator = kwargs.get('cross_metrics_operator', None) - self.dimensions_to_split_alert = kwargs.get('dimensions_to_split_alert', None) + self.id = kwargs.get("id", None) + self.description = kwargs.get("description", None) + self.cross_metrics_operator = kwargs.get("cross_metrics_operator", None) + self.dimensions_to_split_alert = kwargs.get("dimensions_to_split_alert", None) def __repr__(self): - return "AnomalyAlertConfiguration(id={}, name={}, description={}, cross_metrics_operator={}, hook_ids={}, " \ - "metric_alert_configurations={}, dimensions_to_split_alert={})".format( - self.id, - self.name, - self.description, - self.cross_metrics_operator, - self.hook_ids, - repr(self.metric_alert_configurations), - self.dimensions_to_split_alert - )[:1024] + return ( + "AnomalyAlertConfiguration(id={}, name={}, description={}, cross_metrics_operator={}, hook_ids={}, " + "metric_alert_configurations={}, dimensions_to_split_alert={})".format( + self.id, + self.name, + self.description, + self.cross_metrics_operator, + self.hook_ids, + repr(self.metric_alert_configurations), + self.dimensions_to_split_alert, + )[:1024] + ) @classmethod def _from_generated(cls, config): @@ -815,7 +888,7 @@ def _from_generated(cls, config): MetricAlertConfiguration._from_generated(c) for c in config.metric_alerting_configurations ], - dimensions_to_split_alert=config.split_alert_by_dimensions + dimensions_to_split_alert=config.split_alert_by_dimensions, ) def _to_generated(self): @@ -827,26 +900,32 @@ def _to_generated(self): hook_ids=self.hook_ids, cross_metrics_operator=self.cross_metrics_operator, description=self.description, - split_alert_by_dimensions=self.dimensions_to_split_alert + split_alert_by_dimensions=self.dimensions_to_split_alert, ) def _to_generated_patch( - self, name, - metric_alert_configurations, - hook_ids, - cross_metrics_operator, - description + self, + name, + metric_alert_configurations, + hook_ids, + cross_metrics_operator, + description, ): - metric_alert_configurations = metric_alert_configurations or self.metric_alert_configurations + metric_alert_configurations = ( + metric_alert_configurations or self.metric_alert_configurations + ) return _AnomalyAlertingConfigurationPatch( name=name or self.name, metric_alerting_configurations=[ config._to_generated() for config in metric_alert_configurations - ] if metric_alert_configurations else None, + ] + if metric_alert_configurations + else None, hook_ids=hook_ids or self.hook_ids, - cross_metrics_operator=cross_metrics_operator or self.cross_metrics_operator, + cross_metrics_operator=cross_metrics_operator + or self.cross_metrics_operator, description=description or self.description, - split_alert_by_dimensions=self.dimensions_to_split_alert + split_alert_by_dimensions=self.dimensions_to_split_alert, ) @@ -874,23 +953,29 @@ def __init__(self, name, metric_id, whole_series_detection_condition, **kwargs): self.name = name self.metric_id = metric_id self.whole_series_detection_condition = whole_series_detection_condition - self.id = kwargs.get('id', None) - self.description = kwargs.get('description', None) - self.series_group_detection_conditions = kwargs.get('series_group_detection_conditions', None) - self.series_detection_conditions = kwargs.get('series_detection_conditions', None) + self.id = kwargs.get("id", None) + self.description = kwargs.get("description", None) + self.series_group_detection_conditions = kwargs.get( + "series_group_detection_conditions", None + ) + self.series_detection_conditions = kwargs.get( + "series_detection_conditions", None + ) def __repr__(self): - return "AnomalyDetectionConfiguration(id={}, name={}, description={}, metric_id={}, " \ - "whole_series_detection_condition={}, series_group_detection_conditions={}, " \ - "series_detection_conditions={})".format( - self.id, - self.name, - self.description, - self.metric_id, - repr(self.whole_series_detection_condition), - repr(self.series_group_detection_conditions), - repr(self.series_detection_conditions) - )[:1024] + return ( + "AnomalyDetectionConfiguration(id={}, name={}, description={}, metric_id={}, " + "whole_series_detection_condition={}, series_group_detection_conditions={}, " + "series_detection_conditions={})".format( + self.id, + self.name, + self.description, + self.metric_id, + repr(self.whole_series_detection_condition), + repr(self.series_group_detection_conditions), + repr(self.series_detection_conditions), + )[:1024] + ) @classmethod def _from_generated(cls, config): @@ -904,12 +989,16 @@ def _from_generated(cls, config): ), series_group_detection_conditions=[ MetricSeriesGroupDetectionCondition._from_generated(conf) - for conf in config.dimension_group_override_configurations] - if config.dimension_group_override_configurations else None, + for conf in config.dimension_group_override_configurations + ] + if config.dimension_group_override_configurations + else None, series_detection_conditions=[ MetricSingleSeriesDetectionCondition._from_generated(conf) - for conf in config.series_override_configurations] - if config.series_override_configurations else None, + for conf in config.series_override_configurations + ] + if config.series_override_configurations + else None, ) def _to_generated(self): @@ -919,35 +1008,55 @@ def _to_generated(self): description=self.description, whole_metric_configuration=self.whole_series_detection_condition._to_generated(), dimension_group_override_configurations=[ - group._to_generated() for group in self.series_group_detection_conditions - ] if self.series_group_detection_conditions else None, + group._to_generated() + for group in self.series_group_detection_conditions + ] + if self.series_group_detection_conditions + else None, series_override_configurations=[ - series._to_generated() for series in self.series_detection_conditions] - if self.series_detection_conditions else None, + series._to_generated() for series in self.series_detection_conditions + ] + if self.series_detection_conditions + else None, ) def _to_generated_patch( - self, name, - description, - whole_series_detection_condition, - series_group_detection_conditions, - series_detection_conditions + self, + name, + description, + whole_series_detection_condition, + series_group_detection_conditions, + series_detection_conditions, ): - whole_series_detection_condition = whole_series_detection_condition or self.whole_series_detection_condition - series_group = series_group_detection_conditions or self.series_group_detection_conditions - series_detection = series_detection_conditions or self.series_detection_conditions + whole_series_detection_condition = ( + whole_series_detection_condition or self.whole_series_detection_condition + ) + series_group = ( + series_group_detection_conditions or self.series_group_detection_conditions + ) + series_detection = ( + series_detection_conditions or self.series_detection_conditions + ) return _AnomalyDetectionConfigurationPatch( name=name or self.name, description=description or self.description, whole_metric_configuration=whole_series_detection_condition._to_generated_patch() - if whole_series_detection_condition else None, - dimension_group_override_configurations=[group._to_generated() for group in series_group] - if series_group else None, - series_override_configurations=[series._to_generated() for series in series_detection] - if series_detection else None + if whole_series_detection_condition + else None, + dimension_group_override_configurations=[ + group._to_generated() for group in series_group + ] + if series_group + else None, + series_override_configurations=[ + series._to_generated() for series in series_detection + ] + if series_detection + else None, ) + class DataFeedSource(dict): """DataFeedSource base class @@ -962,13 +1071,17 @@ class DataFeedSource(dict): :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DatasourceAuthenticationType :ivar str credential_id: The datasource credential id. """ + def __init__(self, data_source_type, **kwargs): # type: (str, **Any) -> None - super(DataFeedSource, self).__init__(data_source_type=data_source_type, **kwargs) + super(DataFeedSource, self).__init__( + data_source_type=data_source_type, **kwargs + ) self.data_source_type = data_source_type self.authentication_type = kwargs.get("authentication_type", None) self.credential_id = kwargs.get("credential_id", None) + class AzureApplicationInsightsDataFeedSource(DataFeedSource): """AzureApplicationInsightsDataFeedSource. @@ -991,25 +1104,28 @@ class AzureApplicationInsightsDataFeedSource(DataFeedSource): def __init__(self, query, **kwargs): # type: (str, **Any) -> None super(AzureApplicationInsightsDataFeedSource, self).__init__( - data_source_type='AzureApplicationInsights', + data_source_type="AzureApplicationInsights", authentication_type="Basic", - **kwargs) + **kwargs + ) self.azure_cloud = kwargs.get("azure_cloud", None) self.application_id = kwargs.get("application_id", None) self.api_key = kwargs.get("api_key", None) self.query = query def __repr__(self): - return "AzureApplicationInsightsDataFeedSource(data_source_type={}, azure_cloud={}, application_id={}, " \ - "api_key={}, query={}, authentication_type={}, credential_id={})".format( - self.data_source_type, - self.azure_cloud, - self.application_id, - self.api_key, - self.query, - self.authentication_type, - self.credential_id - )[:1024] + return ( + "AzureApplicationInsightsDataFeedSource(data_source_type={}, azure_cloud={}, application_id={}, " + "api_key={}, query={}, authentication_type={}, credential_id={})".format( + self.data_source_type, + self.azure_cloud, + self.application_id, + self.api_key, + self.query, + self.authentication_type, + self.credential_id, + )[:1024] + ) @classmethod def _from_generated(cls, source): @@ -1017,7 +1133,7 @@ def _from_generated(cls, source): azure_cloud=source.azure_cloud, application_id=source.application_id, api_key=source.api_key, - query=source.query + query=source.query, ) def _to_generated(self): @@ -1025,7 +1141,7 @@ def _to_generated(self): azure_cloud=self.azure_cloud, application_id=self.application_id, api_key=self.api_key, - query=self.query + query=self.query, ) def _to_generated_patch(self): @@ -1033,7 +1149,7 @@ def _to_generated_patch(self): azure_cloud=self.azure_cloud, application_id=self.application_id, api_key=self.api_key, - query=self.query + query=self.query, ) @@ -1061,8 +1177,8 @@ class AzureBlobDataFeedSource(DataFeedSource): def __init__(self, container, blob_template, **kwargs): # type: (str, str, **Any) -> None super(AzureBlobDataFeedSource, self).__init__( - data_source_type='AzureBlob', - **kwargs) + data_source_type="AzureBlob", **kwargs + ) msi = kwargs.get("msi", False) if msi: self.authentication_type = "ManagedIdentity" @@ -1073,36 +1189,38 @@ def __init__(self, container, blob_template, **kwargs): self.blob_template = blob_template def __repr__(self): - return "AzureBlobDataFeedSource(data_source_type={}, connection_string={}, container={}, " \ - "blob_template={}, authentication_type={}, credential_id={})".format( - self.data_source_type, - self.connection_string, - self.container, - self.blob_template, - self.authentication_type, - self.credential_id - )[:1024] + return ( + "AzureBlobDataFeedSource(data_source_type={}, connection_string={}, container={}, " + "blob_template={}, authentication_type={}, credential_id={})".format( + self.data_source_type, + self.connection_string, + self.container, + self.blob_template, + self.authentication_type, + self.credential_id, + )[:1024] + ) @classmethod def _from_generated(cls, source): return cls( connection_string=source.connection_string, container=source.container, - blob_template=source.blob_template + blob_template=source.blob_template, ) def _to_generated(self): return _AzureBlobParameter( connection_string=self.connection_string, container=self.container, - blob_template=self.blob_template + blob_template=self.blob_template, ) def _to_generated_patch(self): return _AzureBlobParameterPatch( connection_string=self.connection_string, container=self.container, - blob_template=self.blob_template + blob_template=self.blob_template, ) @@ -1128,34 +1246,29 @@ class AzureCosmosDbDataFeedSource(DataFeedSource): :keyword str connection_string: Azure CosmosDB connection string. """ - def __init__( - self, - sql_query, - database, - collection_id, - **kwargs - ): + def __init__(self, sql_query, database, collection_id, **kwargs): # type: (str, str, str, **Any) -> None super(AzureCosmosDbDataFeedSource, self).__init__( - data_source_type='AzureCosmosDB', - authentication_type="Basic", - **kwargs) + data_source_type="AzureCosmosDB", authentication_type="Basic", **kwargs + ) self.connection_string = kwargs.get("connection_string", None) self.sql_query = sql_query self.database = database self.collection_id = collection_id def __repr__(self): - return "AzureCosmosDbDataFeedSource(data_source_type={}, connection_string={}, sql_query={}, database={}, " \ - "collection_id={}, authentication_type={}, credential_id={})".format( - self.data_source_type, - self.connection_string, - self.sql_query, - self.database, - self.collection_id, - self.authentication_type, - self.credential_id - )[:1024] + return ( + "AzureCosmosDbDataFeedSource(data_source_type={}, connection_string={}, sql_query={}, database={}, " + "collection_id={}, authentication_type={}, credential_id={})".format( + self.data_source_type, + self.connection_string, + self.sql_query, + self.database, + self.collection_id, + self.authentication_type, + self.credential_id, + )[:1024] + ) @classmethod def _from_generated(cls, source): @@ -1163,7 +1276,7 @@ def _from_generated(cls, source): connection_string=source.connection_string, sql_query=source.sql_query, database=source.database, - collection_id=source.collection_id + collection_id=source.collection_id, ) def _to_generated(self): @@ -1171,7 +1284,7 @@ def _to_generated(self): connection_string=self.connection_string, sql_query=self.sql_query, database=self.database, - collection_id=self.collection_id + collection_id=self.collection_id, ) def _to_generated_patch(self): @@ -1179,7 +1292,7 @@ def _to_generated_patch(self): connection_string=self.connection_string, sql_query=self.sql_query, database=self.database, - collection_id=self.collection_id + collection_id=self.collection_id, ) @@ -1207,11 +1320,15 @@ class AzureDataExplorerDataFeedSource(DataFeedSource): def __init__(self, query, **kwargs): # type: (str, **Any) -> None super(AzureDataExplorerDataFeedSource, self).__init__( - data_source_type='AzureDataExplorer', - **kwargs) + data_source_type="AzureDataExplorer", **kwargs + ) msi = kwargs.get("msi", False) - datasource_service_principal_id = kwargs.get("datasource_service_principal_id", False) - datasource_service_principal_in_kv_id = kwargs.get("datasource_service_principal_in_kv_id", False) + datasource_service_principal_id = kwargs.get( + "datasource_service_principal_id", False + ) + datasource_service_principal_in_kv_id = kwargs.get( + "datasource_service_principal_in_kv_id", False + ) if msi: self.authentication_type = "ManagedIdentity" elif datasource_service_principal_id: @@ -1226,14 +1343,16 @@ def __init__(self, query, **kwargs): self.query = query def __repr__(self): - return "AzureDataExplorerDataFeedSource(data_source_type={}, connection_string={}, query={}, " \ - "authentication_type={}, credential_id={})".format( - self.data_source_type, - self.connection_string, - self.query, - self.authentication_type, - self.credential_id - )[:1024] + return ( + "AzureDataExplorerDataFeedSource(data_source_type={}, connection_string={}, query={}, " + "authentication_type={}, credential_id={})".format( + self.data_source_type, + self.connection_string, + self.query, + self.authentication_type, + self.credential_id, + )[:1024] + ) @classmethod def _from_generated(cls, source): @@ -1276,44 +1395,41 @@ class AzureTableDataFeedSource(DataFeedSource): def __init__(self, query, table, **kwargs): # type: (str, str, **Any) -> None super(AzureTableDataFeedSource, self).__init__( - data_source_type='AzureTable', - authentication_type="Basic", - **kwargs) + data_source_type="AzureTable", authentication_type="Basic", **kwargs + ) self.connection_string = kwargs.get("connection_string", None) self.query = query self.table = table def __repr__(self): - return "AzureTableDataFeedSource(data_source_type={}, connection_string={}, query={}, table={}, " \ - "authentication_type={}, credential_id={})".format( - self.data_source_type, - self.connection_string, - self.query, - self.table, - self.authentication_type, - self.credential_id - )[:1024] + return ( + "AzureTableDataFeedSource(data_source_type={}, connection_string={}, query={}, table={}, " + "authentication_type={}, credential_id={})".format( + self.data_source_type, + self.connection_string, + self.query, + self.table, + self.authentication_type, + self.credential_id, + )[:1024] + ) @classmethod def _from_generated(cls, source): return cls( connection_string=source.connection_string, query=source.query, - table=source.table + table=source.table, ) def _to_generated(self): return _AzureTableParameter( - connection_string=self.connection_string, - query=self.query, - table=self.table + connection_string=self.connection_string, query=self.query, table=self.table ) def _to_generated_patch(self): return _AzureTableParameterPatch( - connection_string=self.connection_string, - query=self.query, - table=self.table + connection_string=self.connection_string, query=self.query, table=self.table ) @@ -1337,27 +1453,28 @@ class AzureEventHubsDataFeedSource(DataFeedSource): def __init__(self, consumer_group, **kwargs): # type: (str, **Any) -> None super(AzureEventHubsDataFeedSource, self).__init__( - data_source_type='AzureEventHubs', - authentication_type="Basic", - **kwargs) + data_source_type="AzureEventHubs", authentication_type="Basic", **kwargs + ) self.connection_string = kwargs.get("connection_string", None) self.consumer_group = consumer_group def __repr__(self): - return "AzureEventHubsDataFeedSource(data_source_type={}, connection_string={}, consumer_group={}, " \ - "authentication_type={}, credential_id={})".format( - self.data_source_type, - self.connection_string, - self.consumer_group, - self.authentication_type, - self.credential_id - )[:1024] + return ( + "AzureEventHubsDataFeedSource(data_source_type={}, connection_string={}, consumer_group={}, " + "authentication_type={}, credential_id={})".format( + self.data_source_type, + self.connection_string, + self.consumer_group, + self.authentication_type, + self.credential_id, + )[:1024] + ) @classmethod def _from_generated(cls, source): return cls( connection_string=source.connection_string, - consumer_group=source.consumer_group + consumer_group=source.consumer_group, ) def _to_generated(self): @@ -1396,9 +1513,8 @@ class InfluxDbDataFeedSource(DataFeedSource): def __init__(self, query, **kwargs): # type: (str, **Any) -> None super(InfluxDbDataFeedSource, self).__init__( - data_source_type='InfluxDB', - authentication_type="Basic", - **kwargs) + data_source_type="InfluxDB", authentication_type="Basic", **kwargs + ) self.connection_string = kwargs.get("connection_string", None) self.database = kwargs.get("database", None) self.user_name = kwargs.get("user_name", None) @@ -1406,17 +1522,19 @@ def __init__(self, query, **kwargs): self.query = query def __repr__(self): - return "InfluxDbDataFeedSource(data_source_type={}, connection_string={}, database={}, user_name={}, " \ - "password={}, query={}, authentication_type={}, credential_id={})".format( - self.data_source_type, - self.connection_string, - self.database, - self.user_name, - self.password, - self.query, - self.authentication_type, - self.credential_id - )[:1024] + return ( + "InfluxDbDataFeedSource(data_source_type={}, connection_string={}, database={}, user_name={}, " + "password={}, query={}, authentication_type={}, credential_id={})".format( + self.data_source_type, + self.connection_string, + self.database, + self.user_name, + self.password, + self.query, + self.authentication_type, + self.credential_id, + )[:1024] + ) @classmethod def _from_generated(cls, source): @@ -1425,7 +1543,7 @@ def _from_generated(cls, source): database=source.database, user_name=source.user_name, password=source.password, - query=source.query + query=source.query, ) def _to_generated(self): @@ -1434,7 +1552,7 @@ def _to_generated(self): database=self.database, user_name=self.user_name, password=self.password, - query=self.query + query=self.query, ) def _to_generated_patch(self): @@ -1443,7 +1561,7 @@ def _to_generated_patch(self): database=self.database, user_name=self.user_name, password=self.password, - query=self.query + query=self.query, ) @@ -1467,21 +1585,22 @@ class MySqlDataFeedSource(DataFeedSource): def __init__(self, query, **kwargs): # type: (str, **Any) -> None super(MySqlDataFeedSource, self).__init__( - data_source_type='MySql', - authentication_type="Basic", - **kwargs) + data_source_type="MySql", authentication_type="Basic", **kwargs + ) self.connection_string = kwargs.get("connection_string", None) self.query = query def __repr__(self): - return "MySqlDataFeedSource(data_source_type={}, connection_string={}, query={}, " \ - "authentication_type={}, credential_id={})".format( - self.data_source_type, - self.connection_string, - self.query, - self.authentication_type, - self.credential_id - )[:1024] + return ( + "MySqlDataFeedSource(data_source_type={}, connection_string={}, query={}, " + "authentication_type={}, credential_id={})".format( + self.data_source_type, + self.connection_string, + self.query, + self.authentication_type, + self.credential_id, + )[:1024] + ) @classmethod def _from_generated(cls, source): @@ -1492,14 +1611,12 @@ def _from_generated(cls, source): def _to_generated(self): return _SQLSourceParameter( - connection_string=self.connection_string, - query=self.query + connection_string=self.connection_string, query=self.query ) def _to_generated_patch(self): return _SQLSourceParameterPatch( - connection_string=self.connection_string, - query=self.query + connection_string=self.connection_string, query=self.query ) @@ -1523,21 +1640,22 @@ class PostgreSqlDataFeedSource(DataFeedSource): def __init__(self, query, **kwargs): # type: (str, **Any) -> None super(PostgreSqlDataFeedSource, self).__init__( - data_source_type='PostgreSql', - authentication_type="Basic", - **kwargs) + data_source_type="PostgreSql", authentication_type="Basic", **kwargs + ) self.connection_string = kwargs.get("connection_string", None) self.query = query def __repr__(self): - return "PostgreSqlDataFeedSource(data_source_type={}, connection_string={}, query={}, " \ - "authentication_type={}, credential_id={})".format( - self.data_source_type, - self.connection_string, - self.query, - self.authentication_type, - self.credential_id - )[:1024] + return ( + "PostgreSqlDataFeedSource(data_source_type={}, connection_string={}, query={}, " + "authentication_type={}, credential_id={})".format( + self.data_source_type, + self.connection_string, + self.query, + self.authentication_type, + self.credential_id, + )[:1024] + ) @classmethod def _from_generated(cls, source): @@ -1548,14 +1666,12 @@ def _from_generated(cls, source): def _to_generated(self): return _SQLSourceParameter( - connection_string=self.connection_string, - query=self.query + connection_string=self.connection_string, query=self.query ) def _to_generated_patch(self): return _SQLSourceParameterPatch( - connection_string=self.connection_string, - query=self.query + connection_string=self.connection_string, query=self.query ) @@ -1583,12 +1699,18 @@ class SqlServerDataFeedSource(DataFeedSource): def __init__(self, query, **kwargs): # type: (str, **Any) -> None super(SqlServerDataFeedSource, self).__init__( - data_source_type='SqlServer', - **kwargs) + data_source_type="SqlServer", **kwargs + ) msi = kwargs.get("msi", False) - datasource_service_principal_id = kwargs.get("datasource_service_principal_id", False) - datasource_service_principal_in_kv_id = kwargs.get("datasource_service_principal_in_kv_id", False) - datasource_sql_connection_string_id = kwargs.get("datasource_sql_connection_string_id", False) + datasource_service_principal_id = kwargs.get( + "datasource_service_principal_id", False + ) + datasource_service_principal_in_kv_id = kwargs.get( + "datasource_service_principal_in_kv_id", False + ) + datasource_sql_connection_string_id = kwargs.get( + "datasource_sql_connection_string_id", False + ) if msi: self.authentication_type = "ManagedIdentity" elif datasource_service_principal_id: @@ -1606,14 +1728,16 @@ def __init__(self, query, **kwargs): self.query = query def __repr__(self): - return "SqlServerDataFeedSource(data_source_type={}, connection_string={}, query={}, " \ - "authentication_type={}, credential_id={})".format( - self.data_source_type, - self.connection_string, - self.query, - self.authentication_type, - self.credential_id - )[:1024] + return ( + "SqlServerDataFeedSource(data_source_type={}, connection_string={}, query={}, " + "authentication_type={}, credential_id={})".format( + self.data_source_type, + self.connection_string, + self.query, + self.authentication_type, + self.credential_id, + )[:1024] + ) @classmethod def _from_generated(cls, source): @@ -1659,21 +1783,21 @@ class AzureDataLakeStorageGen2DataFeedSource(DataFeedSource): :keyword str datasource_datalake_gen2_shared_key_id: Datasource datalake gen2 shared key unique id. """ - def __init__( - self, - file_system_name, - directory_template, - file_template, - **kwargs - ): + def __init__(self, file_system_name, directory_template, file_template, **kwargs): # type: (str, str, str, **Any) -> None super(AzureDataLakeStorageGen2DataFeedSource, self).__init__( - data_source_type='AzureDataLakeStorageGen2', - **kwargs) + data_source_type="AzureDataLakeStorageGen2", **kwargs + ) msi = kwargs.get("msi", False) - datasource_service_principal_id = kwargs.get("datasource_service_principal_id", False) - datasource_service_principal_in_kv_id = kwargs.get("datasource_service_principal_in_kv_id", False) - datasource_datalake_gen2_shared_key_id = kwargs.get("datasource_datalake_gen2_shared_key_id", False) + datasource_service_principal_id = kwargs.get( + "datasource_service_principal_id", False + ) + datasource_service_principal_in_kv_id = kwargs.get( + "datasource_service_principal_in_kv_id", False + ) + datasource_datalake_gen2_shared_key_id = kwargs.get( + "datasource_datalake_gen2_shared_key_id", False + ) if msi: self.authentication_type = "ManagedIdentity" elif datasource_service_principal_id: @@ -1694,18 +1818,20 @@ def __init__( self.file_template = file_template def __repr__(self): - return "AzureDataLakeStorageGen2DataFeedSource(data_source_type={}, account_name={}, account_key={}, " \ - "file_system_name={}, directory_template={}, file_template={}, authentication_type={}," \ - " credential_id={})".format( - self.data_source_type, - self.account_name, - self.account_key, - self.file_system_name, - self.directory_template, - self.file_template, - self.authentication_type, - self.credential_id - )[:1024] + return ( + "AzureDataLakeStorageGen2DataFeedSource(data_source_type={}, account_name={}, account_key={}, " + "file_system_name={}, directory_template={}, file_template={}, authentication_type={}," + " credential_id={})".format( + self.data_source_type, + self.account_name, + self.account_key, + self.file_system_name, + self.directory_template, + self.file_template, + self.authentication_type, + self.credential_id, + )[:1024] + ) @classmethod def _from_generated(cls, source): @@ -1714,7 +1840,7 @@ def _from_generated(cls, source): account_key=source.account_key, file_system_name=source.file_system_name, directory_template=source.directory_template, - file_template=source.file_template + file_template=source.file_template, ) def _to_generated(self): @@ -1723,7 +1849,7 @@ def _to_generated(self): account_key=self.account_key, file_system_name=self.file_system_name, directory_template=self.directory_template, - file_template=self.file_template + file_template=self.file_template, ) def _to_generated_patch(self): @@ -1732,7 +1858,7 @@ def _to_generated_patch(self): account_key=self.account_key, file_system_name=self.file_system_name, directory_template=self.directory_template, - file_template=self.file_template + file_template=self.file_template, ) @@ -1764,10 +1890,14 @@ class AzureLogAnalyticsDataFeedSource(DataFeedSource): def __init__(self, workspace_id, query, **kwargs): # type: (str, str, **Any) -> None super(AzureLogAnalyticsDataFeedSource, self).__init__( - data_source_type='AzureLogAnalytics', - **kwargs) - datasource_service_principal_id = kwargs.get("datasource_service_principal_id", False) - datasource_service_principal_in_kv_id = kwargs.get("datasource_service_principal_in_kv_id", False) + data_source_type="AzureLogAnalytics", **kwargs + ) + datasource_service_principal_id = kwargs.get( + "datasource_service_principal_id", False + ) + datasource_service_principal_in_kv_id = kwargs.get( + "datasource_service_principal_in_kv_id", False + ) if datasource_service_principal_id: self.authentication_type = "ServicePrincipal" self.credential_id = datasource_service_principal_id @@ -1783,17 +1913,21 @@ def __init__(self, workspace_id, query, **kwargs): self.query = query def __repr__(self): - return "AzureLogAnalyticsDataFeedSource(data_source_type={}, tenant_id={}, client_id={}, " \ - "client_secret={}, workspace_id={}, query={}, authentication_type={}, credential_id={})".format( - self.data_source_type, - self.tenant_id, - self.client_id, - self.client_secret, - self.workspace_id, - self.query, - self.authentication_type, - self.credential_id - )[:1024] + return ( + "AzureLogAnalyticsDataFeedSource(data_source_type={}, tenant_id={}, client_id={}, " + "client_secret={}, workspace_id={}, query={}, authentication_type={}, credential_id={})".format( + self.data_source_type, + self.tenant_id, + self.client_id, + self.client_secret, + self.workspace_id, + self.query, + self.authentication_type, + self.credential_id, + )[ + :1024 + ] + ) @classmethod def _from_generated(cls, source): @@ -1802,7 +1936,7 @@ def _from_generated(cls, source): client_id=source.client_id, client_secret=source.client_secret, workspace_id=source.workspace_id, - query=source.query + query=source.query, ) def _to_generated(self): @@ -1811,7 +1945,7 @@ def _to_generated(self): client_id=self.client_id, client_secret=self.client_secret, workspace_id=self.workspace_id, - query=self.query + query=self.query, ) def _to_generated_patch(self): @@ -1820,7 +1954,7 @@ def _to_generated_patch(self): client_id=self.client_id, client_secret=self.client_secret, workspace_id=self.workspace_id, - query=self.query + query=self.query, ) @@ -1845,44 +1979,45 @@ class MongoDbDataFeedSource(DataFeedSource): def __init__(self, command, **kwargs): # type: (str, **Any) -> None super(MongoDbDataFeedSource, self).__init__( - data_source_type='MongoDB', - authentication_type="Basic", - **kwargs) + data_source_type="MongoDB", authentication_type="Basic", **kwargs + ) self.connection_string = kwargs.get("connection_string", None) self.database = kwargs.get("database", None) self.command = command def __repr__(self): - return "MongoDbDataFeedSource(data_source_type={}, connection_string={}, database={}, command={}, " \ - "authentication_type={}, credential_id={})".format( - self.data_source_type, - self.connection_string, - self.database, - self.command, - self.authentication_type, - self.credential_id - )[:1024] + return ( + "MongoDbDataFeedSource(data_source_type={}, connection_string={}, database={}, command={}, " + "authentication_type={}, credential_id={})".format( + self.data_source_type, + self.connection_string, + self.database, + self.command, + self.authentication_type, + self.credential_id, + )[:1024] + ) @classmethod def _from_generated(cls, source): return cls( connection_string=source.connection_string, database=source.database, - command=source.command + command=source.command, ) def _to_generated(self): return _MongoDBParameter( connection_string=self.connection_string, database=self.database, - command=self.command + command=self.command, ) def _to_generated_patch(self): return _MongoDBParameterPatch( connection_string=self.connection_string, database=self.database, - command=self.command + command=self.command, ) @@ -1900,23 +2035,25 @@ class NotificationHook(dict): def __init__(self, name, **kwargs): super(NotificationHook, self).__init__(name=name, **kwargs) - self.id = kwargs.get('id', None) + self.id = kwargs.get("id", None) self.name = name - self.description = kwargs.get('description', None) - self.external_link = kwargs.get('external_link', None) - self.admins = kwargs.get('admins', None) + self.description = kwargs.get("description", None) + self.external_link = kwargs.get("external_link", None) + self.admins = kwargs.get("admins", None) self.hook_type = None def __repr__(self): - return "NotificationHook(id={}, name={}, description={}, external_link={}, admins={}, " \ - "hook_type={})".format( - self.id, - self.name, - self.description, - self.external_link, - self.admins, - self.hook_type - )[:1024] + return ( + "NotificationHook(id={}, name={}, description={}, external_link={}, admins={}, " + "hook_type={})".format( + self.id, + self.name, + self.description, + self.external_link, + self.admins, + self.hook_type, + )[:1024] + ) class EmailNotificationHook(NotificationHook): @@ -1934,20 +2071,22 @@ class EmailNotificationHook(NotificationHook): def __init__(self, name, emails_to_alert, **kwargs): # type: (str, List[str], Any) -> None super(EmailNotificationHook, self).__init__(name, **kwargs) - self.hook_type = 'Email' # type: str + self.hook_type = "Email" # type: str self.emails_to_alert = emails_to_alert def __repr__(self): - return "EmailNotificationHook(id={}, name={}, description={}, external_link={}, admins={}, hook_type={}, " \ - "emails_to_alert={})".format( - self.id, - self.name, - self.description, - self.external_link, - self.admins, - self.hook_type, - self.emails_to_alert - )[:1024] + return ( + "EmailNotificationHook(id={}, name={}, description={}, external_link={}, admins={}, hook_type={}, " + "emails_to_alert={})".format( + self.id, + self.name, + self.description, + self.external_link, + self.admins, + self.hook_type, + self.emails_to_alert, + )[:1024] + ) @classmethod def _from_generated(cls, hook): @@ -1957,7 +2096,7 @@ def _from_generated(cls, hook): description=hook.description, external_link=hook.external_link, admins=hook.admins, - id=hook.hook_id + id=hook.hook_id, ) def _to_generated(self): @@ -1966,9 +2105,7 @@ def _to_generated(self): description=self.description, external_link=self.external_link, admins=self.admins, - hook_parameter=_EmailHookParameterPatch( - to_list=self.emails_to_alert - ) + hook_parameter=_EmailHookParameterPatch(to_list=self.emails_to_alert), ) def _to_generated_patch(self, name, description, external_link, emails_to_alert): @@ -1979,7 +2116,7 @@ def _to_generated_patch(self, name, description, external_link, emails_to_alert) admins=self.admins, hook_parameter=_EmailHookParameterPatch( to_list=emails_to_alert or self.emails_to_alert - ) + ), ) @@ -2003,28 +2140,32 @@ class WebNotificationHook(NotificationHook): def __init__(self, name, endpoint, **kwargs): # type: (str, str, Any) -> None super(WebNotificationHook, self).__init__(name, **kwargs) - self.hook_type = 'Webhook' # type: str + self.hook_type = "Webhook" # type: str self.endpoint = endpoint - self.username = kwargs.get('username', None) - self.password = kwargs.get('password', None) - self.certificate_key = kwargs.get('certificate_key', None) - self.certificate_password = kwargs.get('certificate_password', None) + self.username = kwargs.get("username", None) + self.password = kwargs.get("password", None) + self.certificate_key = kwargs.get("certificate_key", None) + self.certificate_password = kwargs.get("certificate_password", None) def __repr__(self): - return "WebNotificationHook(id={}, name={}, description={}, external_link={}, admins={}, hook_type={}, " \ - "endpoint={}, username={}, password={}, certificate_key={}, certificate_password={})".format( - self.id, - self.name, - self.description, - self.external_link, - self.admins, - self.hook_type, - self.endpoint, - self.username, - self.password, - self.certificate_key, - self.certificate_password - )[:1024] + return ( + "WebNotificationHook(id={}, name={}, description={}, external_link={}, admins={}, hook_type={}, " + "endpoint={}, username={}, password={}, certificate_key={}, certificate_password={})".format( + self.id, + self.name, + self.description, + self.external_link, + self.admins, + self.hook_type, + self.endpoint, + self.username, + self.password, + self.certificate_key, + self.certificate_password, + )[ + :1024 + ] + ) @classmethod def _from_generated(cls, hook): @@ -2038,7 +2179,7 @@ def _from_generated(cls, hook): description=hook.description, external_link=hook.external_link, admins=hook.admins, - id=hook.hook_id + id=hook.hook_id, ) def _to_generated(self): @@ -2052,19 +2193,20 @@ def _to_generated(self): username=self.username, password=self.password, certificate_key=self.certificate_key, - certificate_password=self.certificate_password - ) + certificate_password=self.certificate_password, + ), ) def _to_generated_patch( - self, name, - description, - external_link, - endpoint, - password, - username, - certificate_key, - certificate_password + self, + name, + description, + external_link, + endpoint, + password, + username, + certificate_key, + certificate_password, ): return _WebhookHookInfoPatch( hook_name=name or self.name, @@ -2076,8 +2218,8 @@ def _to_generated_patch( username=username or self.username, password=password or self.password, certificate_key=certificate_key or self.certificate_key, - certificate_password=certificate_password or self.certificate_password - ) + certificate_password=certificate_password or self.certificate_password, + ), ) @@ -2098,49 +2240,63 @@ class MetricDetectionCondition(object): """ def __init__(self, **kwargs): - self.condition_operator = kwargs.get('condition_operator', None) - self.smart_detection_condition = kwargs.get('smart_detection_condition', None) - self.hard_threshold_condition = kwargs.get('hard_threshold_condition', None) - self.change_threshold_condition = kwargs.get('change_threshold_condition', None) + self.condition_operator = kwargs.get("condition_operator", None) + self.smart_detection_condition = kwargs.get("smart_detection_condition", None) + self.hard_threshold_condition = kwargs.get("hard_threshold_condition", None) + self.change_threshold_condition = kwargs.get("change_threshold_condition", None) def __repr__(self): - return "MetricDetectionCondition(condition_operator={}, smart_detection_condition={}, " \ - "hard_threshold_condition={}, change_threshold_condition={})".format( - self.condition_operator, - repr(self.smart_detection_condition), - repr(self.hard_threshold_condition), - repr(self.change_threshold_condition) - )[:1024] + return ( + "MetricDetectionCondition(condition_operator={}, smart_detection_condition={}, " + "hard_threshold_condition={}, change_threshold_condition={})".format( + self.condition_operator, + repr(self.smart_detection_condition), + repr(self.hard_threshold_condition), + repr(self.change_threshold_condition), + )[:1024] + ) @classmethod def _from_generated(cls, condition): return cls( condition_operator=condition.condition_operator, - smart_detection_condition=SmartDetectionCondition._from_generated(condition.smart_detection_condition), - hard_threshold_condition=HardThresholdCondition._from_generated(condition.hard_threshold_condition), - change_threshold_condition=ChangeThresholdCondition._from_generated(condition.change_threshold_condition) + smart_detection_condition=SmartDetectionCondition._from_generated( + condition.smart_detection_condition + ), + hard_threshold_condition=HardThresholdCondition._from_generated( + condition.hard_threshold_condition + ), + change_threshold_condition=ChangeThresholdCondition._from_generated( + condition.change_threshold_condition + ), ) def _to_generated(self): return _WholeMetricConfiguration( condition_operator=self.condition_operator, smart_detection_condition=self.smart_detection_condition._to_generated() - if self.smart_detection_condition else None, + if self.smart_detection_condition + else None, hard_threshold_condition=self.hard_threshold_condition._to_generated() - if self.hard_threshold_condition else None, + if self.hard_threshold_condition + else None, change_threshold_condition=self.change_threshold_condition._to_generated() - if self.change_threshold_condition else None + if self.change_threshold_condition + else None, ) def _to_generated_patch(self): return _WholeMetricConfigurationPatch( condition_operator=self.condition_operator, smart_detection_condition=self.smart_detection_condition._to_generated_patch() - if self.smart_detection_condition else None, + if self.smart_detection_condition + else None, hard_threshold_condition=self.hard_threshold_condition._to_generated_patch() - if self.hard_threshold_condition else None, + if self.hard_threshold_condition + else None, change_threshold_condition=self.change_threshold_condition._to_generated_patch() - if self.change_threshold_condition else None + if self.change_threshold_condition + else None, ) @@ -2164,12 +2320,13 @@ class ChangeThresholdCondition(object): """ def __init__( - self, change_percentage, # type: float - shift_point, # type: int - within_range, # type: bool - anomaly_detector_direction, # type: Union[str, AnomalyDetectorDirection] - suppress_condition, # type: SuppressCondition - **kwargs # type: Any + self, + change_percentage, # type: float + shift_point, # type: int + within_range, # type: bool + anomaly_detector_direction, # type: Union[str, AnomalyDetectorDirection] + suppress_condition, # type: SuppressCondition + **kwargs # type: Any ): # pylint: disable=unused-argument # type: (...) -> None self.change_percentage = change_percentage @@ -2179,24 +2336,32 @@ def __init__( self.suppress_condition = suppress_condition def __repr__(self): - return "ChangeThresholdCondition(change_percentage={}, shift_point={}, within_range={}, " \ - "anomaly_detector_direction={}, suppress_condition={})".format( - self.change_percentage, - self.shift_point, - self.within_range, - self.anomaly_detector_direction, - repr(self.suppress_condition) - )[:1024] + return ( + "ChangeThresholdCondition(change_percentage={}, shift_point={}, within_range={}, " + "anomaly_detector_direction={}, suppress_condition={})".format( + self.change_percentage, + self.shift_point, + self.within_range, + self.anomaly_detector_direction, + repr(self.suppress_condition), + )[:1024] + ) @classmethod def _from_generated(cls, condition): - return cls( - change_percentage=condition.change_percentage, - shift_point=condition.shift_point, - within_range=condition.within_range, - anomaly_detector_direction=condition.anomaly_detector_direction, - suppress_condition=SuppressCondition._from_generated(condition.suppress_condition), - ) if condition else None + return ( + cls( + change_percentage=condition.change_percentage, + shift_point=condition.shift_point, + within_range=condition.within_range, + anomaly_detector_direction=condition.anomaly_detector_direction, + suppress_condition=SuppressCondition._from_generated( + condition.suppress_condition + ), + ) + if condition + else None + ) def _to_generated(self): return _ChangeThresholdCondition( @@ -2207,7 +2372,7 @@ def _to_generated(self): suppress_condition=_SuppressCondition( min_number=self.suppress_condition.min_number, min_ratio=self.suppress_condition.min_ratio, - ) + ), ) def _to_generated_patch(self): @@ -2219,7 +2384,7 @@ def _to_generated_patch(self): suppress_condition=_SuppressConditionPatch( min_number=self.suppress_condition.min_number, min_ratio=self.suppress_condition.min_ratio, - ) + ), ) @@ -2232,23 +2397,25 @@ class SuppressCondition(object): :type min_ratio: float """ - def __init__(self, min_number, min_ratio, **kwargs): # pylint: disable=unused-argument + def __init__( + self, min_number, min_ratio, **kwargs + ): # pylint: disable=unused-argument # type: (int, float, Any) -> None self.min_number = min_number self.min_ratio = min_ratio def __repr__(self): return "SuppressCondition(min_number={}, min_ratio={})".format( - self.min_number, - self.min_ratio - )[:1024] + self.min_number, self.min_ratio + )[:1024] @classmethod def _from_generated(cls, condition): - return cls( - min_number=condition.min_number, - min_ratio=condition.min_ratio - ) if condition else None + return ( + cls(min_number=condition.min_number, min_ratio=condition.min_ratio) + if condition + else None + ) class SmartDetectionCondition(object): @@ -2265,10 +2432,7 @@ class SmartDetectionCondition(object): """ def __init__( - self, sensitivity, - anomaly_detector_direction, - suppress_condition, - **kwargs + self, sensitivity, anomaly_detector_direction, suppress_condition, **kwargs ): # pylint: disable=unused-argument # type: (float, Union[str, AnomalyDetectorDirection], SuppressCondition, Any) -> None self.sensitivity = sensitivity @@ -2277,18 +2441,26 @@ def __init__( def __repr__(self): return "SmartDetectionCondition(sensitivity={}, anomaly_detector_direction={}, suppress_condition={})".format( - self.sensitivity, - self.anomaly_detector_direction, - repr(self.suppress_condition) - )[:1024] + self.sensitivity, + self.anomaly_detector_direction, + repr(self.suppress_condition), + )[ + :1024 + ] @classmethod def _from_generated(cls, condition): - return cls( - sensitivity=condition.sensitivity, - anomaly_detector_direction=condition.anomaly_detector_direction, - suppress_condition=SuppressCondition._from_generated(condition.suppress_condition) - ) if condition else None + return ( + cls( + sensitivity=condition.sensitivity, + anomaly_detector_direction=condition.anomaly_detector_direction, + suppress_condition=SuppressCondition._from_generated( + condition.suppress_condition + ), + ) + if condition + else None + ) def _to_generated(self): return _SmartDetectionCondition( @@ -2297,7 +2469,7 @@ def _to_generated(self): suppress_condition=_SuppressCondition( min_number=self.suppress_condition.min_number, min_ratio=self.suppress_condition.min_ratio, - ) + ), ) def _to_generated_patch(self): @@ -2307,9 +2479,10 @@ def _to_generated_patch(self): suppress_condition=_SuppressConditionPatch( min_number=self.suppress_condition.min_number, min_ratio=self.suppress_condition.min_ratio, - ) + ), ) + class HardThresholdCondition(object): """HardThresholdCondition. @@ -2331,26 +2504,34 @@ def __init__(self, anomaly_detector_direction, suppress_condition, **kwargs): # type: (Union[str, AnomalyDetectorDirection], SuppressCondition, Any) -> None self.anomaly_detector_direction = anomaly_detector_direction self.suppress_condition = suppress_condition - self.lower_bound = kwargs.get('lower_bound', None) - self.upper_bound = kwargs.get('upper_bound', None) + self.lower_bound = kwargs.get("lower_bound", None) + self.upper_bound = kwargs.get("upper_bound", None) def __repr__(self): - return "HardThresholdCondition(anomaly_detector_direction={}, suppress_condition={}, lower_bound={}, " \ - "upper_bound={})".format( - self.anomaly_detector_direction, - repr(self.suppress_condition), - self.lower_bound, - self.upper_bound - )[:1024] + return ( + "HardThresholdCondition(anomaly_detector_direction={}, suppress_condition={}, lower_bound={}, " + "upper_bound={})".format( + self.anomaly_detector_direction, + repr(self.suppress_condition), + self.lower_bound, + self.upper_bound, + )[:1024] + ) @classmethod def _from_generated(cls, condition): - return cls( - anomaly_detector_direction=condition.anomaly_detector_direction, - suppress_condition=SuppressCondition._from_generated(condition.suppress_condition), - lower_bound=condition.lower_bound, - upper_bound=condition.upper_bound - ) if condition else None + return ( + cls( + anomaly_detector_direction=condition.anomaly_detector_direction, + suppress_condition=SuppressCondition._from_generated( + condition.suppress_condition + ), + lower_bound=condition.lower_bound, + upper_bound=condition.upper_bound, + ) + if condition + else None + ) def _to_generated(self): return _HardThresholdCondition( @@ -2360,7 +2541,7 @@ def _to_generated(self): suppress_condition=_SuppressCondition( min_number=self.suppress_condition.min_number, min_ratio=self.suppress_condition.min_ratio, - ) + ), ) def _to_generated_patch(self): @@ -2371,7 +2552,7 @@ def _to_generated_patch(self): suppress_condition=_SuppressConditionPatch( min_number=self.suppress_condition.min_number, min_ratio=self.suppress_condition.min_ratio, - ) + ), ) @@ -2399,23 +2580,33 @@ def __init__(self, series_group_key, **kwargs): self.series_group_key = series_group_key def __repr__(self): - return "MetricSeriesGroupDetectionCondition(condition_operator={}, smart_detection_condition={}, " \ - "hard_threshold_condition={}, change_threshold_condition={}, series_group_key={})".format( - self.condition_operator, - repr(self.smart_detection_condition), - repr(self.hard_threshold_condition), - repr(self.change_threshold_condition), - self.series_group_key - )[:1024] + return ( + "MetricSeriesGroupDetectionCondition(condition_operator={}, smart_detection_condition={}, " + "hard_threshold_condition={}, change_threshold_condition={}, series_group_key={})".format( + self.condition_operator, + repr(self.smart_detection_condition), + repr(self.hard_threshold_condition), + repr(self.change_threshold_condition), + self.series_group_key, + )[ + :1024 + ] + ) @classmethod def _from_generated(cls, condition): return cls( series_group_key=condition.group.dimension, condition_operator=condition.condition_operator, - smart_detection_condition=SmartDetectionCondition._from_generated(condition.smart_detection_condition), - hard_threshold_condition=HardThresholdCondition._from_generated(condition.hard_threshold_condition), - change_threshold_condition=ChangeThresholdCondition._from_generated(condition.change_threshold_condition) + smart_detection_condition=SmartDetectionCondition._from_generated( + condition.smart_detection_condition + ), + hard_threshold_condition=HardThresholdCondition._from_generated( + condition.hard_threshold_condition + ), + change_threshold_condition=ChangeThresholdCondition._from_generated( + condition.change_threshold_condition + ), ) def _to_generated(self): @@ -2423,11 +2614,14 @@ def _to_generated(self): group=_DimensionGroupIdentity(dimension=self.series_group_key), condition_operator=self.condition_operator, smart_detection_condition=self.smart_detection_condition._to_generated() - if self.smart_detection_condition else None, + if self.smart_detection_condition + else None, hard_threshold_condition=self.hard_threshold_condition._to_generated() - if self.hard_threshold_condition else None, + if self.hard_threshold_condition + else None, change_threshold_condition=self.change_threshold_condition._to_generated() - if self.change_threshold_condition else None + if self.change_threshold_condition + else None, ) @@ -2455,23 +2649,33 @@ def __init__(self, series_key, **kwargs): self.series_key = series_key def __repr__(self): - return "MetricSingleSeriesDetectionCondition(condition_operator={}, smart_detection_condition={}, " \ - "hard_threshold_condition={}, change_threshold_condition={}, series_key={})".format( - self.condition_operator, - repr(self.smart_detection_condition), - repr(self.hard_threshold_condition), - repr(self.change_threshold_condition), - self.series_key - )[:1024] + return ( + "MetricSingleSeriesDetectionCondition(condition_operator={}, smart_detection_condition={}, " + "hard_threshold_condition={}, change_threshold_condition={}, series_key={})".format( + self.condition_operator, + repr(self.smart_detection_condition), + repr(self.hard_threshold_condition), + repr(self.change_threshold_condition), + self.series_key, + )[ + :1024 + ] + ) @classmethod def _from_generated(cls, condition): return cls( series_key=condition.series.dimension, condition_operator=condition.condition_operator, - smart_detection_condition=SmartDetectionCondition._from_generated(condition.smart_detection_condition), - hard_threshold_condition=HardThresholdCondition._from_generated(condition.hard_threshold_condition), - change_threshold_condition=ChangeThresholdCondition._from_generated(condition.change_threshold_condition) + smart_detection_condition=SmartDetectionCondition._from_generated( + condition.smart_detection_condition + ), + hard_threshold_condition=HardThresholdCondition._from_generated( + condition.hard_threshold_condition + ), + change_threshold_condition=ChangeThresholdCondition._from_generated( + condition.change_threshold_condition + ), ) def _to_generated(self): @@ -2479,11 +2683,14 @@ def _to_generated(self): series=_SeriesIdentity(dimension=self.series_key), condition_operator=self.condition_operator, smart_detection_condition=self.smart_detection_condition._to_generated() - if self.smart_detection_condition else None, + if self.smart_detection_condition + else None, hard_threshold_condition=self.hard_threshold_condition._to_generated() - if self.hard_threshold_condition else None, + if self.hard_threshold_condition + else None, change_threshold_condition=self.change_threshold_condition._to_generated() - if self.change_threshold_condition else None + if self.change_threshold_condition + else None, ) @@ -2503,17 +2710,14 @@ class DataFeedMetric(object): def __init__(self, name, **kwargs): # type: (str, Any) -> None self.name = name - self.id = kwargs.get('id', None) - self.display_name = kwargs.get('display_name', None) - self.description = kwargs.get('description', None) + self.id = kwargs.get("id", None) + self.display_name = kwargs.get("display_name", None) + self.description = kwargs.get("description", None) def __repr__(self): return "DataFeedMetric(name={}, id={}, display_name={}, description={})".format( - self.name, - self.id, - self.display_name, - self.description - )[:1024] + self.name, self.id, self.display_name, self.description + )[:1024] @classmethod def _from_generated(cls, metric): @@ -2521,14 +2725,14 @@ def _from_generated(cls, metric): id=metric.metric_id, name=metric.metric_name, display_name=metric.metric_display_name, - description=metric.metric_description + description=metric.metric_description, ) def _to_generated(self): return _Metric( metric_name=self.name, metric_display_name=self.display_name, - metric_description=self.description + metric_description=self.description, ) @@ -2544,13 +2748,12 @@ class DataFeedDimension(object): def __init__(self, name, **kwargs): # type: (str, Any) -> None self.name = name - self.display_name = kwargs.get('display_name', None) + self.display_name = kwargs.get("display_name", None) def __repr__(self): return "DataFeedDimension(name={}, display_name={})".format( - self.name, - self.display_name - )[:1024] + self.name, self.display_name + )[:1024] @classmethod def _from_generated(cls, dimension): @@ -2561,8 +2764,7 @@ def _from_generated(cls, dimension): def _to_generated(self): return _Dimension( - dimension_name=self.name, - dimension_display_name=self.display_name + dimension_name=self.name, dimension_display_name=self.display_name ) @@ -2583,15 +2785,16 @@ def __init__(self, **kwargs): def __repr__(self): return "DataFeedIngestionProgress(latest_success_timestamp={}, latest_active_timestamp={})".format( - self.latest_success_timestamp, - self.latest_active_timestamp - )[:1024] + self.latest_success_timestamp, self.latest_active_timestamp + )[ + :1024 + ] @classmethod def _from_generated(cls, resp): return cls( latest_success_timestamp=resp.latest_success_timestamp, - latest_active_timestamp=resp.latest_active_timestamp + latest_active_timestamp=resp.latest_active_timestamp, ) @@ -2609,18 +2812,17 @@ class MetricSeriesData(object): """ def __init__(self, **kwargs): - self.metric_id = kwargs.get('metric_id', None) - self.series_key = kwargs.get('series_key', None) - self.timestamps = kwargs.get('timestamps', None) - self.values = kwargs.get('values', None) + self.metric_id = kwargs.get("metric_id", None) + self.series_key = kwargs.get("series_key", None) + self.timestamps = kwargs.get("timestamps", None) + self.values = kwargs.get("values", None) def __repr__(self): return "MetricSeriesData(metric_id={}, series_key={}, timestamps={}, values={})".format( - self.metric_id, - self.series_key, - self.timestamps, - self.values - )[:1024] + self.metric_id, self.series_key, self.timestamps, self.values + )[ + :1024 + ] @classmethod def _from_generated(cls, data): @@ -2628,7 +2830,7 @@ def _from_generated(cls, data): metric_id=data.id.metric_id, series_key=data.id.dimension, timestamps=data.timestamp_list, - values=data.value_list + values=data.value_list, ) @@ -2668,17 +2870,19 @@ def __init__(self, **kwargs): self.upper_bounds = kwargs.get("upper_bounds", None) def __repr__(self): - return "MetricEnrichedSeriesData(series_key={}, timestamps={}, values={}, is_anomaly={}, periods={}, " \ - "expected_values={}, lower_bounds={}, upper_bounds={})".format( - self.series_key, - self.timestamps, - self.values, - self.is_anomaly, - self.periods, - self.expected_values, - self.lower_bounds, - self.upper_bounds - )[:1024] + return ( + "MetricEnrichedSeriesData(series_key={}, timestamps={}, values={}, is_anomaly={}, periods={}, " + "expected_values={}, lower_bounds={}, upper_bounds={})".format( + self.series_key, + self.timestamps, + self.values, + self.is_anomaly, + self.periods, + self.expected_values, + self.lower_bounds, + self.upper_bounds, + )[:1024] + ) @classmethod def _from_generated(cls, data): @@ -2690,7 +2894,7 @@ def _from_generated(cls, data): periods=data.period_list, expected_values=data.expected_value_list, lower_bounds=data.lower_boundary_list, - upper_bounds=data.upper_boundary_list + upper_bounds=data.upper_boundary_list, ) @@ -2708,18 +2912,17 @@ class AnomalyAlert(object): """ def __init__(self, **kwargs): - self.id = kwargs.get('id', None) - self.timestamp = kwargs.get('timestamp', None) - self.created_time = kwargs.get('created_time', None) - self.modified_time = kwargs.get('modified_time', None) + self.id = kwargs.get("id", None) + self.timestamp = kwargs.get("timestamp", None) + self.created_time = kwargs.get("created_time", None) + self.modified_time = kwargs.get("modified_time", None) def __repr__(self): return "AnomalyAlert(id={}, timestamp={}, created_time={}, modified_time={})".format( - self.id, - self.timestamp, - self.created_time, - self.modified_time - )[:1024] + self.id, self.timestamp, self.created_time, self.modified_time + )[ + :1024 + ] @classmethod def _from_generated(cls, alert): @@ -2727,7 +2930,7 @@ def _from_generated(cls, alert): id=alert.alert_id, timestamp=alert.timestamp, created_time=alert.created_time, - modified_time=alert.modified_time + modified_time=alert.modified_time, ) @@ -2744,7 +2947,7 @@ def _from_generated(cls, alert): "PostgreSql": PostgreSqlDataFeedSource, "MongoDB": MongoDbDataFeedSource, "AzureDataLakeStorageGen2": AzureDataLakeStorageGen2DataFeedSource, - "AzureEventHubs": AzureEventHubsDataFeedSource + "AzureEventHubs": AzureEventHubsDataFeedSource, } @@ -2775,42 +2978,44 @@ class DataPointAnomaly(msrest.serialization.Model): """ _attribute_map = { - 'metric_id': {'key': 'metricId', 'type': 'str'}, - 'detection_configuration_id': {'key': 'detectionConfigurationId', 'type': 'str'}, - 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, - 'created_time': {'key': 'createdTime', 'type': 'iso-8601'}, - 'modified_time': {'key': 'modifiedTime', 'type': 'iso-8601'}, - 'dimension': {'key': 'dimension', 'type': '{str}'}, - 'severity': {'key': 'severity', 'type': 'str'}, - 'status': {'key': 'status', 'type': 'str'}, + "metric_id": {"key": "metricId", "type": "str"}, + "detection_configuration_id": { + "key": "detectionConfigurationId", + "type": "str", + }, + "timestamp": {"key": "timestamp", "type": "iso-8601"}, + "created_time": {"key": "createdTime", "type": "iso-8601"}, + "modified_time": {"key": "modifiedTime", "type": "iso-8601"}, + "dimension": {"key": "dimension", "type": "{str}"}, + "severity": {"key": "severity", "type": "str"}, + "status": {"key": "status", "type": "str"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(DataPointAnomaly, self).__init__(**kwargs) - self.metric_id = kwargs.get('metric_id', None) - self.detection_configuration_id = kwargs.get('detection_configuration_id', None) - self.timestamp = kwargs.get('timestamp', None) - self.created_time = kwargs.get('created_time', None) - self.modified_time = kwargs.get('modified_time', None) - self.dimension = kwargs.get('dimension', None) - self.severity = kwargs.get('severity', None) - self.status = kwargs.get('status', None) + self.metric_id = kwargs.get("metric_id", None) + self.detection_configuration_id = kwargs.get("detection_configuration_id", None) + self.timestamp = kwargs.get("timestamp", None) + self.created_time = kwargs.get("created_time", None) + self.modified_time = kwargs.get("modified_time", None) + self.dimension = kwargs.get("dimension", None) + self.severity = kwargs.get("severity", None) + self.status = kwargs.get("status", None) def __repr__(self): - return "DataPointAnomaly(metric_id={}, detection_configuration_id={}, timestamp={}, created_time={}, " \ - "modified_time={}, dimension={}, severity={}, status={})".format( - self.metric_id, - self.detection_configuration_id, - self.timestamp, - self.created_time, - self.modified_time, - self.dimension, - self.severity, - self.status - )[:1024] + return ( + "DataPointAnomaly(metric_id={}, detection_configuration_id={}, timestamp={}, created_time={}, " + "modified_time={}, dimension={}, severity={}, status={})".format( + self.metric_id, + self.detection_configuration_id, + self.timestamp, + self.created_time, + self.modified_time, + self.dimension, + self.severity, + self.status, + )[:1024] + ) @classmethod def _from_generated(cls, anomaly_result): @@ -2862,49 +3067,53 @@ class AnomalyIncident(msrest.serialization.Model): """ _attribute_map = { - 'metric_id': {'key': 'metricId', 'type': 'str'}, - 'detection_configuration_id': {'key': 'detectionConfigurationId', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, - 'last_time': {'key': 'lastTime', 'type': 'iso-8601'}, - 'dimension_key': {'key': 'dimensionKey', 'type': '{str}'}, - 'severity': {'key': 'severity', 'type': 'str'}, - 'status': {'key': 'status', 'type': 'str'}, + "metric_id": {"key": "metricId", "type": "str"}, + "detection_configuration_id": { + "key": "detectionConfigurationId", + "type": "str", + }, + "id": {"key": "id", "type": "str"}, + "start_time": {"key": "startTime", "type": "iso-8601"}, + "last_time": {"key": "lastTime", "type": "iso-8601"}, + "dimension_key": {"key": "dimensionKey", "type": "{str}"}, + "severity": {"key": "severity", "type": "str"}, + "status": {"key": "status", "type": "str"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(AnomalyIncident, self).__init__(**kwargs) - self.metric_id = kwargs.get('metric_id', None) - self.detection_configuration_id = kwargs.get('detection_configuration_id', None) - self.id = kwargs.get('id', None) - self.start_time = kwargs.get('start_time', None) - self.last_time = kwargs.get('last_time', None) - self.dimension_key = kwargs.get('dimension_key', None) - self.severity = kwargs.get('severity', None) - self.status = kwargs.get('status', None) + self.metric_id = kwargs.get("metric_id", None) + self.detection_configuration_id = kwargs.get("detection_configuration_id", None) + self.id = kwargs.get("id", None) + self.start_time = kwargs.get("start_time", None) + self.last_time = kwargs.get("last_time", None) + self.dimension_key = kwargs.get("dimension_key", None) + self.severity = kwargs.get("severity", None) + self.status = kwargs.get("status", None) def __repr__(self): - return "AnomalyIncident(metric_id={}, detection_configuration_id={}, id={}, start_time={}, last_time={}, " \ - "dimension_key={}, severity={}, status={})".format( - self.metric_id, - self.detection_configuration_id, - self.id, - self.start_time, - self.last_time, - self.dimension_key, - self.severity, - self.status - )[:1024] + return ( + "AnomalyIncident(metric_id={}, detection_configuration_id={}, id={}, start_time={}, last_time={}, " + "dimension_key={}, severity={}, status={})".format( + self.metric_id, + self.detection_configuration_id, + self.id, + self.start_time, + self.last_time, + self.dimension_key, + self.severity, + self.status, + )[:1024] + ) @classmethod def _from_generated(cls, incident_result): # type: (IncidentResult) -> Union[AnomalyIncident, None] if not incident_result: return None - dimension_key = incident_result.root_node.dimension if incident_result.root_node else None + dimension_key = ( + incident_result.root_node.dimension if incident_result.root_node else None + ) severity = None status = None if incident_result.property: @@ -2921,6 +3130,7 @@ def _from_generated(cls, incident_result): status=status, ) + class IncidentRootCause(msrest.serialization.Model): """Incident Root Cause. @@ -2937,36 +3147,34 @@ class IncidentRootCause(msrest.serialization.Model): """ _attribute_map = { - 'dimension_key': {'key': 'dimensionKey', 'type': '{str}'}, - 'path': {'key': 'path', 'type': '[str]'}, - 'score': {'key': 'score', 'type': 'float'}, - 'description': {'key': 'description', 'type': 'str'}, + "dimension_key": {"key": "dimensionKey", "type": "{str}"}, + "path": {"key": "path", "type": "[str]"}, + "score": {"key": "score", "type": "float"}, + "description": {"key": "description", "type": "str"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(IncidentRootCause, self).__init__(**kwargs) - self.dimension_key = kwargs.get('dimension_key', None) - self.path = kwargs.get('path', None) - self.score = kwargs.get('score', None) - self.description = kwargs.get('description', None) + self.dimension_key = kwargs.get("dimension_key", None) + self.path = kwargs.get("path", None) + self.score = kwargs.get("score", None) + self.description = kwargs.get("description", None) def __repr__(self): return "IncidentRootCause(dimension_key={}, path={}, score={}, description={})".format( - self.dimension_key, - self.path, - self.score, - self.description - )[:1024] + self.dimension_key, self.path, self.score, self.description + )[ + :1024 + ] @classmethod def _from_generated(cls, root_cause): # type: (RootCause) -> Union[IncidentRootCause, None] if not root_cause: return None - dimension_key = root_cause.root_cause.dimension if root_cause.root_cause else None + dimension_key = ( + root_cause.root_cause.dimension if root_cause.root_cause else None + ) return cls( dimension_key=dimension_key, path=root_cause.path, @@ -2974,6 +3182,7 @@ def _from_generated(cls, root_cause): description=root_cause.description, ) + class MetricFeedback(dict): """Feedback base class @@ -2992,44 +3201,42 @@ class MetricFeedback(dict): :ivar str metric_id: Required. metric unique id. :ivar dict[str, str] dimension_key: Required. metric dimension filter. """ + _attribute_map = { - 'feedback_type': {'key': 'feedbackType', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'created_time': {'key': 'createdTime', 'type': 'iso-8601'}, - 'user_principal': {'key': 'userPrincipal', 'type': 'str'}, - 'metric_id': {'key': 'metricId', 'type': 'str'}, - 'dimension_key': {'key': 'dimensionKey', 'type': '{str}'}, + "feedback_type": {"key": "feedbackType", "type": "str"}, + "id": {"key": "id", "type": "str"}, + "created_time": {"key": "createdTime", "type": "iso-8601"}, + "user_principal": {"key": "userPrincipal", "type": "str"}, + "metric_id": {"key": "metricId", "type": "str"}, + "dimension_key": {"key": "dimensionKey", "type": "{str}"}, } - def __init__( - self, - feedback_type, - metric_id, - dimension_key, - **kwargs - ): + def __init__(self, feedback_type, metric_id, dimension_key, **kwargs): super(MetricFeedback, self).__init__(**kwargs) self.feedback_type = feedback_type # type: str - self.id = kwargs.get('id', None) - self.created_time = kwargs.get('created_time', None) - self.user_principal = kwargs.get('user_principal', None) + self.id = kwargs.get("id", None) + self.created_time = kwargs.get("created_time", None) + self.user_principal = kwargs.get("user_principal", None) self.metric_id = metric_id self.dimension_key = dimension_key def __repr__(self): - return "MetricFeedback(feedback_type={}, id={}, created_time={}, user_principal={}, metric_id={}, " \ - "dimension_key={})".format( - self.feedback_type, - self.id, - self.created_time, - self.user_principal, - self.metric_id, - self.dimension_key, - )[:1024] + return ( + "MetricFeedback(feedback_type={}, id={}, created_time={}, user_principal={}, metric_id={}, " + "dimension_key={})".format( + self.feedback_type, + self.id, + self.created_time, + self.user_principal, + self.metric_id, + self.dimension_key, + )[:1024] + ) def _to_generated_patch(self): pass + class AnomalyFeedback(MetricFeedback): # pylint:disable=too-many-instance-attributes """AnomalyFeedback. @@ -3062,31 +3269,28 @@ class AnomalyFeedback(MetricFeedback): # pylint:disable=too-many-instance-attri """ _attribute_map = { - 'feedback_type': {'key': 'feedbackType', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'created_time': {'key': 'createdTime', 'type': 'iso-8601'}, - 'user_principal': {'key': 'userPrincipal', 'type': 'str'}, - 'metric_id': {'key': 'metricId', 'type': 'str'}, - 'dimension_key': {'key': 'dimensionKey', 'type': '{str}'}, - 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, - 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, - 'value': {'key': 'value', 'type': 'str'}, - 'anomaly_detection_configuration_id': {'key': 'anomalyDetectionConfigurationId', 'type': 'str'}, - 'anomaly_detection_configuration_snapshot': {'key': 'anomalyDetectionConfigurationSnapshot', - 'type': 'AnomalyDetectionConfiguration'}, + "feedback_type": {"key": "feedbackType", "type": "str"}, + "id": {"key": "id", "type": "str"}, + "created_time": {"key": "createdTime", "type": "iso-8601"}, + "user_principal": {"key": "userPrincipal", "type": "str"}, + "metric_id": {"key": "metricId", "type": "str"}, + "dimension_key": {"key": "dimensionKey", "type": "{str}"}, + "start_time": {"key": "startTime", "type": "iso-8601"}, + "end_time": {"key": "endTime", "type": "iso-8601"}, + "value": {"key": "value", "type": "str"}, + "anomaly_detection_configuration_id": { + "key": "anomalyDetectionConfigurationId", + "type": "str", + }, + "anomaly_detection_configuration_snapshot": { + "key": "anomalyDetectionConfigurationSnapshot", + "type": "AnomalyDetectionConfiguration", + }, } - def __init__( - self, - metric_id, - dimension_key, - start_time, - end_time, - value, - **kwargs - ): + def __init__(self, metric_id, dimension_key, start_time, end_time, value, **kwargs): super(AnomalyFeedback, self).__init__( - feedback_type='Anomaly', + feedback_type="Anomaly", metric_id=metric_id, dimension_key=dimension_key, **kwargs @@ -3094,25 +3298,31 @@ def __init__( self.start_time = start_time self.end_time = end_time self.value = value - self.anomaly_detection_configuration_id = kwargs.get('anomaly_detection_configuration_id', None) - self.anomaly_detection_configuration_snapshot = kwargs.get('anomaly_detection_configuration_snapshot', None) + self.anomaly_detection_configuration_id = kwargs.get( + "anomaly_detection_configuration_id", None + ) + self.anomaly_detection_configuration_snapshot = kwargs.get( + "anomaly_detection_configuration_snapshot", None + ) def __repr__(self): - return "AnomalyFeedback(feedback_type={}, id={}, created_time={}, user_principal={}, metric_id={}, " \ - "dimension_key={}, start_time={}, end_time={}, value={}, anomaly_detection_configuration_id={}, " \ - "anomaly_detection_configuration_snapshot={})".format( - self.feedback_type, - self.id, - self.created_time, - self.user_principal, - self.metric_id, - self.dimension_key, - self.start_time, - self.end_time, - self.value, - self.anomaly_detection_configuration_id, - self.anomaly_detection_configuration_snapshot - )[:1024] + return ( + "AnomalyFeedback(feedback_type={}, id={}, created_time={}, user_principal={}, metric_id={}, " + "dimension_key={}, start_time={}, end_time={}, value={}, anomaly_detection_configuration_id={}, " + "anomaly_detection_configuration_snapshot={})".format( + self.feedback_type, + self.id, + self.created_time, + self.user_principal, + self.metric_id, + self.dimension_key, + self.start_time, + self.end_time, + self.value, + self.anomaly_detection_configuration_id, + self.anomaly_detection_configuration_snapshot, + )[:1024] + ) @classmethod def _from_generated(cls, anomaly_feedback): @@ -3145,9 +3355,10 @@ def _to_generated(self): end_time=self.end_time, value=value, anomaly_detection_configuration_id=self.anomaly_detection_configuration_id, - anomaly_detection_configuration_snapshot=self.anomaly_detection_configuration_snapshot + anomaly_detection_configuration_snapshot=self.anomaly_detection_configuration_snapshot, ) + class ChangePointFeedback(MetricFeedback): """ChangePointFeedback. @@ -3174,28 +3385,20 @@ class ChangePointFeedback(MetricFeedback): """ _attribute_map = { - 'feedback_type': {'key': 'feedbackType', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'created_time': {'key': 'createdTime', 'type': 'iso-8601'}, - 'user_principal': {'key': 'userPrincipal', 'type': 'str'}, - 'metric_id': {'key': 'metricId', 'type': 'str'}, - 'dimension_key': {'key': 'dimensionKey', 'type': '{str}'}, - 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, - 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, - 'value': {'key': 'value', 'type': 'str'}, + "feedback_type": {"key": "feedbackType", "type": "str"}, + "id": {"key": "id", "type": "str"}, + "created_time": {"key": "createdTime", "type": "iso-8601"}, + "user_principal": {"key": "userPrincipal", "type": "str"}, + "metric_id": {"key": "metricId", "type": "str"}, + "dimension_key": {"key": "dimensionKey", "type": "{str}"}, + "start_time": {"key": "startTime", "type": "iso-8601"}, + "end_time": {"key": "endTime", "type": "iso-8601"}, + "value": {"key": "value", "type": "str"}, } - def __init__( - self, - metric_id, - dimension_key, - start_time, - end_time, - value, - **kwargs - ): + def __init__(self, metric_id, dimension_key, start_time, end_time, value, **kwargs): super(ChangePointFeedback, self).__init__( - feedback_type='ChangePoint', + feedback_type="ChangePoint", metric_id=metric_id, dimension_key=dimension_key, **kwargs @@ -3205,18 +3408,20 @@ def __init__( self.value = value def __repr__(self): - return "ChangePointFeedback(feedback_type={}, id={}, created_time={}, user_principal={}, metric_id={}, " \ - "dimension_key={}, start_time={}, end_time={}, value={})".format( - self.feedback_type, - self.id, - self.created_time, - self.user_principal, - self.metric_id, - self.dimension_key, - self.start_time, - self.end_time, - self.value - )[:1024] + return ( + "ChangePointFeedback(feedback_type={}, id={}, created_time={}, user_principal={}, metric_id={}, " + "dimension_key={}, start_time={}, end_time={}, value={})".format( + self.feedback_type, + self.id, + self.created_time, + self.user_principal, + self.metric_id, + self.dimension_key, + self.start_time, + self.end_time, + self.value, + )[:1024] + ) @classmethod def _from_generated(cls, change_point_feedback): @@ -3224,7 +3429,11 @@ def _from_generated(cls, change_point_feedback): if not change_point_feedback: return None dimension_key = change_point_feedback.dimension_filter.dimension - value = change_point_feedback.value.change_point_value if change_point_feedback.value else None + value = ( + change_point_feedback.value.change_point_value + if change_point_feedback.value + else None + ) return cls( id=change_point_feedback.feedback_id, created_time=change_point_feedback.created_time, @@ -3248,6 +3457,7 @@ def _to_generated(self): value=value, ) + class CommentFeedback(MetricFeedback): """CommentFeedback. @@ -3274,28 +3484,20 @@ class CommentFeedback(MetricFeedback): """ _attribute_map = { - 'feedback_type': {'key': 'feedbackType', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'created_time': {'key': 'createdTime', 'type': 'iso-8601'}, - 'user_principal': {'key': 'userPrincipal', 'type': 'str'}, - 'metric_id': {'key': 'metricId', 'type': 'str'}, - 'dimension_key': {'key': 'dimensionKey', 'type': '{str}'}, - 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, - 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, - 'value': {'key': 'value', 'type': 'str'}, + "feedback_type": {"key": "feedbackType", "type": "str"}, + "id": {"key": "id", "type": "str"}, + "created_time": {"key": "createdTime", "type": "iso-8601"}, + "user_principal": {"key": "userPrincipal", "type": "str"}, + "metric_id": {"key": "metricId", "type": "str"}, + "dimension_key": {"key": "dimensionKey", "type": "{str}"}, + "start_time": {"key": "startTime", "type": "iso-8601"}, + "end_time": {"key": "endTime", "type": "iso-8601"}, + "value": {"key": "value", "type": "str"}, } - def __init__( - self, - metric_id, - dimension_key, - start_time, - end_time, - value, - **kwargs - ): + def __init__(self, metric_id, dimension_key, start_time, end_time, value, **kwargs): super(CommentFeedback, self).__init__( - feedback_type='Comment', + feedback_type="Comment", metric_id=metric_id, dimension_key=dimension_key, **kwargs @@ -3305,18 +3507,20 @@ def __init__( self.value = value def __repr__(self): - return "CommentFeedback(feedback_type={}, id={}, created_time={}, user_principal={}, metric_id={}, " \ - "dimension_key={}, start_time={}, end_time={}, value={})".format( - self.feedback_type, - self.id, - self.created_time, - self.user_principal, - self.metric_id, - self.dimension_key, - self.start_time, - self.end_time, - self.value - )[:1024] + return ( + "CommentFeedback(feedback_type={}, id={}, created_time={}, user_principal={}, metric_id={}, " + "dimension_key={}, start_time={}, end_time={}, value={})".format( + self.feedback_type, + self.id, + self.created_time, + self.user_principal, + self.metric_id, + self.dimension_key, + self.start_time, + self.end_time, + self.value, + )[:1024] + ) @classmethod def _from_generated(cls, comment_feedback): @@ -3348,6 +3552,7 @@ def _to_generated(self): value=value, ) + class PeriodFeedback(MetricFeedback): """PeriodFeedback. @@ -3372,26 +3577,19 @@ class PeriodFeedback(MetricFeedback): """ _attribute_map = { - 'feedback_type': {'key': 'feedbackType', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'created_time': {'key': 'createdTime', 'type': 'iso-8601'}, - 'user_principal': {'key': 'userPrincipal', 'type': 'str'}, - 'metric_id': {'key': 'metricId', 'type': 'str'}, - 'dimension_key': {'key': 'dimensionKey', 'type': '{str}'}, - 'value': {'key': 'value', 'type': 'int'}, - 'period_type': {'key': 'periodType', 'type': 'str'}, + "feedback_type": {"key": "feedbackType", "type": "str"}, + "id": {"key": "id", "type": "str"}, + "created_time": {"key": "createdTime", "type": "iso-8601"}, + "user_principal": {"key": "userPrincipal", "type": "str"}, + "metric_id": {"key": "metricId", "type": "str"}, + "dimension_key": {"key": "dimensionKey", "type": "{str}"}, + "value": {"key": "value", "type": "int"}, + "period_type": {"key": "periodType", "type": "str"}, } - def __init__( - self, - metric_id, - dimension_key, - value, - period_type, - **kwargs - ): + def __init__(self, metric_id, dimension_key, value, period_type, **kwargs): super(PeriodFeedback, self).__init__( - feedback_type='Period', + feedback_type="Period", metric_id=metric_id, dimension_key=dimension_key, **kwargs @@ -3400,17 +3598,19 @@ def __init__( self.period_type = period_type def __repr__(self): - return "PeriodFeedback(feedback_type={}, id={}, created_time={}, user_principal={}, metric_id={}, " \ - "dimension_key={}, value={}, period_type={})".format( - self.feedback_type, - self.id, - self.created_time, - self.user_principal, - self.metric_id, - self.dimension_key, - self.value, - self.period_type - )[:1024] + return ( + "PeriodFeedback(feedback_type={}, id={}, created_time={}, user_principal={}, metric_id={}, " + "dimension_key={}, value={}, period_type={})".format( + self.feedback_type, + self.id, + self.created_time, + self.user_principal, + self.metric_id, + self.dimension_key, + self.value, + self.period_type, + )[:1024] + ) @classmethod def _from_generated(cls, period_feedback): @@ -3419,7 +3619,9 @@ def _from_generated(cls, period_feedback): return None dimension_key = period_feedback.dimension_filter.dimension value = period_feedback.value.period_value if period_feedback.value else None - period_type = period_feedback.value.period_type if period_feedback.value else None + period_type = ( + period_feedback.value.period_type if period_feedback.value else None + ) return cls( id=period_feedback.feedback_id, created_time=period_feedback.created_time, @@ -3433,13 +3635,16 @@ def _from_generated(cls, period_feedback): def _to_generated(self): # type: (PeriodFeedback) -> _PeriodFeedback dimension_filter = FeedbackDimensionFilter(dimension=self.dimension_key) - value = PeriodFeedbackValue(period_type=self.period_type, period_value=self.value) + value = PeriodFeedbackValue( + period_type=self.period_type, period_value=self.value + ) return _PeriodFeedback( metric_id=self.metric_id, dimension_filter=dimension_filter, value=value, ) + class DatasourceCredential(dict): """DatasourceCredential base class. @@ -3456,31 +3661,33 @@ class DatasourceCredential(dict): """ _attribute_map = { - 'credential_type': {'key': 'credentialType', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, + "credential_type": {"key": "credentialType", "type": "str"}, + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "description": {"key": "description", "type": "str"}, } def __init__(self, name, credential_type, **kwargs): # type: (str, str, Any) -> None - super(DatasourceCredential, self).__init__(name=name, credential_type=credential_type, **kwargs) + super(DatasourceCredential, self).__init__( + name=name, credential_type=credential_type, **kwargs + ) self.credential_type = credential_type self.name = name - self.id = kwargs.get('id', None) - self.description = kwargs.get('description', None) + self.id = kwargs.get("id", None) + self.description = kwargs.get("description", None) def __repr__(self): return "DatasourceCredential(id={}, credential_type={}, name={}, description={})".format( - self.id, - self.credential_type, - self.name, - self.description - )[:1024] + self.id, self.credential_type, self.name, self.description + )[ + :1024 + ] def _to_generated_patch(self): pass + class DatasourceSqlConnectionString(DatasourceCredential): """DatasourceSqlConnectionString. @@ -3501,30 +3708,31 @@ class DatasourceSqlConnectionString(DatasourceCredential): """ _attribute_map = { - 'credential_type': {'key': 'credentialType', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - 'connection_string': {'key': 'connectionString', 'type': 'str'}, + "credential_type": {"key": "credentialType", "type": "str"}, + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "description": {"key": "description", "type": "str"}, + "connection_string": {"key": "connectionString", "type": "str"}, } def __init__(self, name, connection_string, **kwargs): # type: (str, str, Any) -> None super(DatasourceSqlConnectionString, self).__init__( - name=name, - credential_type='AzureSQLConnectionString', - **kwargs) + name=name, credential_type="AzureSQLConnectionString", **kwargs + ) self.connection_string = connection_string def __repr__(self): - return "DatasourceSqlConnectionString(id={}, credential_type={}, name={}, " \ - "connection_string={}, description={})".format( - self.id, - self.credential_type, - self.name, - self.connection_string, - self.description - )[:1024] + return ( + "DatasourceSqlConnectionString(id={}, credential_type={}, name={}, " + "connection_string={}, description={})".format( + self.id, + self.credential_type, + self.name, + self.connection_string, + self.description, + )[:1024] + ) @classmethod def _from_generated(cls, source): @@ -3545,7 +3753,9 @@ def _to_generated(self): ) def _to_generated_patch(self): - param_patch = _AzureSQLConnectionStringParamPatch(connection_string=self.connection_string) + param_patch = _AzureSQLConnectionStringParamPatch( + connection_string=self.connection_string + ) return _AzureSQLConnectionStringCredentialPatch( data_source_credential_type=self.credential_type, data_source_credential_name=self.name, @@ -3553,6 +3763,7 @@ def _to_generated_patch(self): parameters=param_patch, ) + class DatasourceDataLakeGen2SharedKey(DatasourceCredential): """DatasourceDataLakeGen2SharedKey. @@ -3573,30 +3784,31 @@ class DatasourceDataLakeGen2SharedKey(DatasourceCredential): """ _attribute_map = { - 'credential_type': {'key': 'credentialType', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - 'account_key': {'key': 'accountKey', 'type': 'str'}, + "credential_type": {"key": "credentialType", "type": "str"}, + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "description": {"key": "description", "type": "str"}, + "account_key": {"key": "accountKey", "type": "str"}, } def __init__(self, name, account_key, **kwargs): # type: (str, str, Any) -> None super(DatasourceDataLakeGen2SharedKey, self).__init__( - name=name, - credential_type='DataLakeGen2SharedKey', - **kwargs) + name=name, credential_type="DataLakeGen2SharedKey", **kwargs + ) self.account_key = account_key def __repr__(self): - return "DatasourceDataLakeGen2SharedKey(id={}, credential_type={}, name={}, " \ - "account_key={}, description={})".format( - self.id, - self.credential_type, - self.name, - self.account_key, - self.description - )[:1024] + return ( + "DatasourceDataLakeGen2SharedKey(id={}, credential_type={}, name={}, " + "account_key={}, description={})".format( + self.id, + self.credential_type, + self.name, + self.account_key, + self.description, + )[:1024] + ) @classmethod def _from_generated(cls, source): @@ -3625,6 +3837,7 @@ def _to_generated_patch(self): parameters=param_patch, ) + class DatasourceServicePrincipal(DatasourceCredential): """DatasourceServicePrincipal. @@ -3649,36 +3862,37 @@ class DatasourceServicePrincipal(DatasourceCredential): """ _attribute_map = { - 'credential_type': {'key': 'credentialType', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - 'client_id': {'key': 'clientId', 'type': 'str'}, - 'client_secret': {'key': 'clientSecret', 'type': 'str'}, - 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + "credential_type": {"key": "credentialType", "type": "str"}, + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "description": {"key": "description", "type": "str"}, + "client_id": {"key": "clientId", "type": "str"}, + "client_secret": {"key": "clientSecret", "type": "str"}, + "tenant_id": {"key": "tenantId", "type": "str"}, } def __init__(self, name, client_id, client_secret, tenant_id, **kwargs): # type: (str, str, str, str, Any) -> None super(DatasourceServicePrincipal, self).__init__( - name=name, - credential_type='ServicePrincipal', - **kwargs) + name=name, credential_type="ServicePrincipal", **kwargs + ) self.client_id = client_id self.client_secret = client_secret self.tenant_id = tenant_id def __repr__(self): - return "DatasourceServicePrincipal(id={}, credential_type={}, name={}, " \ - "client_id={}, client_secret={}, tenant_id={}, description={})".format( - self.id, - self.credential_type, - self.name, - self.client_id, - self.client_secret, - self.tenant_id, - self.description - )[:1024] + return ( + "DatasourceServicePrincipal(id={}, credential_type={}, name={}, " + "client_id={}, client_secret={}, tenant_id={}, description={})".format( + self.id, + self.credential_type, + self.name, + self.client_id, + self.client_secret, + self.tenant_id, + self.description, + )[:1024] + ) @classmethod def _from_generated(cls, source): @@ -3695,7 +3909,7 @@ def _to_generated(self): param = _ServicePrincipalParam( client_id=self.client_id, client_secret=self.client_secret, - tenant_id=self.tenant_id + tenant_id=self.tenant_id, ) return _ServicePrincipalCredential( data_source_credential_type=self.credential_type, @@ -3708,7 +3922,7 @@ def _to_generated_patch(self): param_patch = _ServicePrincipalParamPatch( client_id=self.client_id, client_secret=self.client_secret, - tenant_id=self.tenant_id + tenant_id=self.tenant_id, ) return _ServicePrincipalCredentialPatch( data_source_credential_type=self.credential_type, @@ -3717,6 +3931,7 @@ def _to_generated_patch(self): parameters=param_patch, ) + class DatasourceServicePrincipalInKeyVault(DatasourceCredential): """DatasourceServicePrincipalInKeyVault. @@ -3743,16 +3958,22 @@ class DatasourceServicePrincipalInKeyVault(DatasourceCredential): """ _attribute_map = { - 'credential_type': {'key': 'credentialType', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - 'key_vault_endpoint': {'key': 'keyVaultEndpoint', 'type': 'str'}, - 'key_vault_client_id': {'key': 'keyVaultClientId', 'type': 'str'}, - 'key_vault_client_secret': {'key': 'keyVaultClientSecret', 'type': 'str'}, - 'service_principal_id_name_in_kv': {'key': 'servicePrincipalIdNameInKV', 'type': 'str'}, - 'service_principal_secret_name_in_kv': {'key': 'servicePrincipalSecretNameInKV', 'type': 'str'}, - 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + "credential_type": {"key": "credentialType", "type": "str"}, + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "description": {"key": "description", "type": "str"}, + "key_vault_endpoint": {"key": "keyVaultEndpoint", "type": "str"}, + "key_vault_client_id": {"key": "keyVaultClientId", "type": "str"}, + "key_vault_client_secret": {"key": "keyVaultClientSecret", "type": "str"}, + "service_principal_id_name_in_kv": { + "key": "servicePrincipalIdNameInKV", + "type": "str", + }, + "service_principal_secret_name_in_kv": { + "key": "servicePrincipalSecretNameInKV", + "type": "str", + }, + "tenant_id": {"key": "tenantId", "type": "str"}, } def __init__(self, name, **kwargs): @@ -3770,32 +3991,35 @@ def __init__(self, name, **kwargs): if "tenant_id" not in kwargs: raise ValueError("tenant_id is required.") super(DatasourceServicePrincipalInKeyVault, self).__init__( - name=name, - credential_type='ServicePrincipalInKV', - **kwargs) - self.key_vault_endpoint = kwargs['key_vault_endpoint'] - self.key_vault_client_id = kwargs['key_vault_client_id'] - self.key_vault_client_secret = kwargs['key_vault_client_secret'] - self.service_principal_id_name_in_kv = kwargs['service_principal_id_name_in_kv'] - self.service_principal_secret_name_in_kv = kwargs['service_principal_secret_name_in_kv'] - self.tenant_id = kwargs['tenant_id'] + name=name, credential_type="ServicePrincipalInKV", **kwargs + ) + self.key_vault_endpoint = kwargs["key_vault_endpoint"] + self.key_vault_client_id = kwargs["key_vault_client_id"] + self.key_vault_client_secret = kwargs["key_vault_client_secret"] + self.service_principal_id_name_in_kv = kwargs["service_principal_id_name_in_kv"] + self.service_principal_secret_name_in_kv = kwargs[ + "service_principal_secret_name_in_kv" + ] + self.tenant_id = kwargs["tenant_id"] def __repr__(self): - return "DatasourceServicePrincipalInKeyVault(id={}, credential_type={}, name={}, " \ - "key_vault_endpoint={}, key_vault_client_id={}, key_vault_client_secret={}, " \ - "service_principal_id_name_in_kv={}, service_principal_secret_name_in_kv={}, tenant_id={}, " \ - "description={})".format( - self.id, - self.credential_type, - self.name, - self.key_vault_endpoint, - self.key_vault_client_id, - self.key_vault_client_secret, - self.service_principal_id_name_in_kv, - self.service_principal_secret_name_in_kv, - self.tenant_id, - self.description - )[:1024] + return ( + "DatasourceServicePrincipalInKeyVault(id={}, credential_type={}, name={}, " + "key_vault_endpoint={}, key_vault_client_id={}, key_vault_client_secret={}, " + "service_principal_id_name_in_kv={}, service_principal_secret_name_in_kv={}, tenant_id={}, " + "description={})".format( + self.id, + self.credential_type, + self.name, + self.key_vault_endpoint, + self.key_vault_client_id, + self.key_vault_client_secret, + self.service_principal_id_name_in_kv, + self.service_principal_secret_name_in_kv, + self.tenant_id, + self.description, + )[:1024] + ) @classmethod def _from_generated(cls, source): @@ -3818,7 +4042,7 @@ def _to_generated(self): key_vault_client_secret=self.key_vault_client_secret, service_principal_id_name_in_kv=self.service_principal_id_name_in_kv, service_principal_secret_name_in_kv=self.service_principal_secret_name_in_kv, - tenant_id=self.tenant_id + tenant_id=self.tenant_id, ) return _ServicePrincipalInKVCredential( data_source_credential_type=self.credential_type, @@ -3834,7 +4058,7 @@ def _to_generated_patch(self): key_vault_client_secret=self.key_vault_client_secret, service_principal_id_name_in_kv=self.service_principal_id_name_in_kv, service_principal_secret_name_in_kv=self.service_principal_secret_name_in_kv, - tenant_id=self.tenant_id + tenant_id=self.tenant_id, ) return _ServicePrincipalInKVCredentialPatch( data_source_credential_type=self.credential_type, @@ -3843,6 +4067,7 @@ def _to_generated_patch(self): parameters=param_patch, ) + class DetectionAnomalyFilterCondition(msrest.serialization.Model): """DetectionAnomalyFilterCondition. @@ -3853,29 +4078,27 @@ class DetectionAnomalyFilterCondition(msrest.serialization.Model): """ _attribute_map = { - 'series_group_key': {'key': 'seriesGroupKey', 'type': '{str}'}, - 'severity_filter': {'key': 'severityFilter', 'type': 'SeverityFilterCondition'}, + "series_group_key": {"key": "seriesGroupKey", "type": "{str}"}, + "severity_filter": {"key": "severityFilter", "type": "SeverityFilterCondition"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(DetectionAnomalyFilterCondition, self).__init__(**kwargs) - self.series_group_key = kwargs.get('series_group_key', None) - self.severity_filter = kwargs.get('severity_filter', None) + self.series_group_key = kwargs.get("series_group_key", None) + self.severity_filter = kwargs.get("severity_filter", None) @classmethod def _from_generated(cls, source): - series_group_key = source.dimension_filter.dimension if source.dimension_filter else None + series_group_key = ( + source.dimension_filter.dimension if source.dimension_filter else None + ) return cls( series_group_key=series_group_key, - severity_filter=source.severity_filter.key_vault_endpoint + severity_filter=source.severity_filter.key_vault_endpoint, ) def _to_generated(self): dimension_filter = _DimensionGroupIdentity(dimension=self.series_group_key) return _DetectionAnomalyFilterCondition( - dimension_filter=dimension_filter, - severity_filter=self.severity_filter + dimension_filter=dimension_filter, severity_filter=self.severity_filter ) diff --git a/sdk/search/azure-search-documents/azure/search/documents/_api_versions.py b/sdk/search/azure-search-documents/azure/search/documents/_api_versions.py index d1260360eda3..e91aef52283a 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_api_versions.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_api_versions.py @@ -5,9 +5,11 @@ from enum import Enum + class ApiVersion(str, Enum): #: this is the default version V2020_06_30 = "2020-06-30" V2021_04_30_preview = "2021-04-30-Preview" + DEFAULT_VERSION = ApiVersion.V2021_04_30_preview diff --git a/sdk/search/azure-search-documents/azure/search/documents/_generated/__init__.py b/sdk/search/azure-search-documents/azure/search/documents/_generated/__init__.py index d58f5fc3b7f8..ded7334f9801 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_generated/__init__.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_generated/__init__.py @@ -7,10 +7,12 @@ # -------------------------------------------------------------------------- from ._search_client import SearchClient -__all__ = ['SearchClient'] + +__all__ = ["SearchClient"] try: from ._patch import patch_sdk # type: ignore + patch_sdk() except ImportError: pass diff --git a/sdk/search/azure-search-documents/azure/search/documents/_generated/_configuration.py b/sdk/search/azure-search-documents/azure/search/documents/_generated/_configuration.py index c6e1f319faca..bc46ba7d2a8a 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_generated/_configuration.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_generated/_configuration.py @@ -17,6 +17,7 @@ VERSION = "unknown" + class SearchClientConfiguration(Configuration): """Configuration for SearchClient. @@ -45,20 +46,31 @@ def __init__( self.endpoint = endpoint self.index_name = index_name self.api_version = "2021-04-30-Preview" - kwargs.setdefault('sdk_moniker', 'search-documents/{}'.format(VERSION)) + kwargs.setdefault("sdk_moniker", "search-documents/{}".format(VERSION)) self._configure(**kwargs) def _configure( - self, - **kwargs # type: Any + self, **kwargs # type: Any ): # type: (...) -> None - self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) - self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) - self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) - self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) - self.http_logging_policy = kwargs.get('http_logging_policy') or policies.HttpLoggingPolicy(**kwargs) - self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs) - self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) - self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) - self.authentication_policy = kwargs.get('authentication_policy') + self.user_agent_policy = kwargs.get( + "user_agent_policy" + ) or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get("headers_policy") or policies.HeadersPolicy( + **kwargs + ) + self.proxy_policy = kwargs.get("proxy_policy") or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get( + "logging_policy" + ) or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get( + "http_logging_policy" + ) or policies.HttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get("retry_policy") or policies.RetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get( + "custom_hook_policy" + ) or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get("redirect_policy") or policies.RedirectPolicy( + **kwargs + ) + self.authentication_policy = kwargs.get("authentication_policy") diff --git a/sdk/search/azure-search-documents/azure/search/documents/_generated/_search_client.py b/sdk/search/azure-search-documents/azure/search/documents/_generated/_search_client.py index cf5857632715..3cafd591ad42 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_generated/_search_client.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_generated/_search_client.py @@ -40,17 +40,20 @@ def __init__( **kwargs # type: Any ): # type: (...) -> None - base_url = '{endpoint}/indexes(\'{indexName}\')' + base_url = "{endpoint}/indexes('{indexName}')" self._config = SearchClientConfiguration(endpoint, index_name, **kwargs) self._client = PipelineClient(base_url=base_url, config=self._config, **kwargs) - client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + client_models = { + k: v for k, v in models.__dict__.items() if isinstance(v, type) + } self._serialize = Serializer(client_models) self._serialize.client_side_validation = False self._deserialize = Deserializer(client_models) self.documents = DocumentsOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) def _send_request(self, http_request, **kwargs): # type: (HttpRequest, Any) -> HttpResponse @@ -63,12 +66,20 @@ def _send_request(self, http_request, **kwargs): :rtype: ~azure.core.pipeline.transport.HttpResponse """ path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_name, "str" + ), } - http_request.url = self._client.format_url(http_request.url, **path_format_arguments) + 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) + pipeline_response = self._client._pipeline.run( + http_request, stream=stream, **kwargs + ) return pipeline_response.http_response def close(self): diff --git a/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/__init__.py b/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/__init__.py index ec41d54fc046..e55e93659613 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/__init__.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/__init__.py @@ -7,4 +7,5 @@ # -------------------------------------------------------------------------- from ._search_client import SearchClient -__all__ = ['SearchClient'] + +__all__ = ["SearchClient"] diff --git a/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/_configuration.py b/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/_configuration.py index ff2480b785c2..138296bbf2b4 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/_configuration.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/_configuration.py @@ -13,6 +13,7 @@ VERSION = "unknown" + class SearchClientConfiguration(Configuration): """Configuration for SearchClient. @@ -25,12 +26,7 @@ class SearchClientConfiguration(Configuration): :type index_name: str """ - def __init__( - self, - endpoint: str, - index_name: str, - **kwargs: Any - ) -> None: + def __init__(self, endpoint: str, index_name: str, **kwargs: Any) -> None: if endpoint is None: raise ValueError("Parameter 'endpoint' must not be None.") if index_name is None: @@ -40,19 +36,30 @@ def __init__( self.endpoint = endpoint self.index_name = index_name self.api_version = "2021-04-30-Preview" - kwargs.setdefault('sdk_moniker', 'search-documents/{}'.format(VERSION)) + kwargs.setdefault("sdk_moniker", "search-documents/{}".format(VERSION)) self._configure(**kwargs) - def _configure( - self, - **kwargs: Any - ) -> None: - self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) - self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) - self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) - self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) - self.http_logging_policy = kwargs.get('http_logging_policy') or policies.HttpLoggingPolicy(**kwargs) - self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs) - self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) - self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) - self.authentication_policy = kwargs.get('authentication_policy') + def _configure(self, **kwargs: Any) -> None: + self.user_agent_policy = kwargs.get( + "user_agent_policy" + ) or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get("headers_policy") or policies.HeadersPolicy( + **kwargs + ) + self.proxy_policy = kwargs.get("proxy_policy") or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get( + "logging_policy" + ) or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get( + "http_logging_policy" + ) or policies.HttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get("retry_policy") or policies.AsyncRetryPolicy( + **kwargs + ) + self.custom_hook_policy = kwargs.get( + "custom_hook_policy" + ) or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get( + "redirect_policy" + ) or policies.AsyncRedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get("authentication_policy") diff --git a/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/_search_client.py b/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/_search_client.py index 7799d633940a..19ea6e44e5ea 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/_search_client.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/_search_client.py @@ -28,25 +28,27 @@ class SearchClient(object): :type index_name: str """ - def __init__( - self, - endpoint: str, - index_name: str, - **kwargs: Any - ) -> None: - base_url = '{endpoint}/indexes(\'{indexName}\')' + def __init__(self, endpoint: str, index_name: str, **kwargs: Any) -> None: + base_url = "{endpoint}/indexes('{indexName}')" self._config = SearchClientConfiguration(endpoint, index_name, **kwargs) - self._client = AsyncPipelineClient(base_url=base_url, config=self._config, **kwargs) + self._client = AsyncPipelineClient( + base_url=base_url, config=self._config, **kwargs + ) - client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + client_models = { + k: v for k, v in models.__dict__.items() if isinstance(v, type) + } self._serialize = Serializer(client_models) self._serialize.client_side_validation = False self._deserialize = Deserializer(client_models) self.documents = DocumentsOperations( - self._client, self._config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize + ) - async def _send_request(self, http_request: HttpRequest, **kwargs: Any) -> AsyncHttpResponse: + 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. @@ -56,12 +58,20 @@ async def _send_request(self, http_request: HttpRequest, **kwargs: Any) -> Async :rtype: ~azure.core.pipeline.transport.AsyncHttpResponse """ path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_name, "str" + ), } - http_request.url = self._client.format_url(http_request.url, **path_format_arguments) + 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) + pipeline_response = await self._client._pipeline.run( + http_request, stream=stream, **kwargs + ) return pipeline_response.http_response async def close(self) -> None: diff --git a/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/operations/__init__.py b/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/operations/__init__.py index 76022eb9d305..b0e711ee0870 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/operations/__init__.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/operations/__init__.py @@ -9,5 +9,5 @@ from ._documents_operations import DocumentsOperations __all__ = [ - 'DocumentsOperations', + "DocumentsOperations", ] diff --git a/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/operations/_documents_operations.py b/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/operations/_documents_operations.py index 58668b2ccdef..24b89fd6beb1 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/operations/_documents_operations.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_generated/aio/operations/_documents_operations.py @@ -8,14 +8,23 @@ from typing import Any, Callable, Dict, Generic, List, Optional, TypeVar, Union import warnings -from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + map_error, +) from azure.core.pipeline import PipelineResponse from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from ... import models as _models -T = TypeVar('T') -ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] +T = TypeVar("T") +ClsType = Optional[ + Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any] +] + class DocumentsOperations: """DocumentsOperations async operations. @@ -40,9 +49,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: self._config = config async def count( - self, - request_options: Optional["_models.RequestOptions"] = None, - **kwargs: Any + self, request_options: Optional["_models.RequestOptions"] = None, **kwargs: Any ) -> int: """Queries the number of documents in the index. @@ -53,12 +60,14 @@ async def count( :rtype: long :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType[int] + cls = kwargs.pop("cls", None) # type: ClsType[int] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _x_ms_client_request_id = None if request_options is not None: _x_ms_client_request_id = request_options.x_ms_client_request_id @@ -66,39 +75,54 @@ async def count( accept = "application/json" # Construct URL - url = self.count.metadata['url'] # type: ignore + url = self.count.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_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') + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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) + 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) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) - deserialized = self._deserialize('long', pipeline_response) + deserialized = self._deserialize("long", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - count.metadata = {'url': '/docs/$count'} # type: ignore + + count.metadata = {"url": "/docs/$count"} # type: ignore async def search_get( self, @@ -121,12 +145,14 @@ async def search_get( :rtype: ~azure.search.documents.models.SearchDocumentsResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.SearchDocumentsResult"] + cls = kwargs.pop("cls", None) # type: ClsType["_models.SearchDocumentsResult"] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _include_total_result_count = None _facets = None _filter = None @@ -181,87 +207,150 @@ async def search_get( accept = "application/json" # Construct URL - url = self.search_get.metadata['url'] # type: ignore + url = self.search_get.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_name, "str" + ), } url = self._client.format_url(url, **path_format_arguments) # Construct parameters query_parameters = {} # type: Dict[str, Any] if search_text is not None: - query_parameters['search'] = self._serialize.query("search_text", search_text, 'str') + query_parameters["search"] = self._serialize.query( + "search_text", search_text, "str" + ) if _include_total_result_count is not None: - query_parameters['$count'] = self._serialize.query("include_total_result_count", _include_total_result_count, 'bool') + query_parameters["$count"] = self._serialize.query( + "include_total_result_count", _include_total_result_count, "bool" + ) if _facets is not None: - query_parameters['facet'] = [self._serialize.query("facets", q, 'str') if q is not None else '' for q in _facets] + query_parameters["facet"] = [ + self._serialize.query("facets", q, "str") if q is not None else "" + for q in _facets + ] if _filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", _filter, 'str') + query_parameters["$filter"] = self._serialize.query( + "filter", _filter, "str" + ) if _highlight_fields is not None: - query_parameters['highlight'] = self._serialize.query("highlight_fields", _highlight_fields, '[str]', div=',') + query_parameters["highlight"] = self._serialize.query( + "highlight_fields", _highlight_fields, "[str]", div="," + ) if _highlight_post_tag is not None: - query_parameters['highlightPostTag'] = self._serialize.query("highlight_post_tag", _highlight_post_tag, 'str') + query_parameters["highlightPostTag"] = self._serialize.query( + "highlight_post_tag", _highlight_post_tag, "str" + ) if _highlight_pre_tag is not None: - query_parameters['highlightPreTag'] = self._serialize.query("highlight_pre_tag", _highlight_pre_tag, 'str') + query_parameters["highlightPreTag"] = self._serialize.query( + "highlight_pre_tag", _highlight_pre_tag, "str" + ) if _minimum_coverage is not None: - query_parameters['minimumCoverage'] = self._serialize.query("minimum_coverage", _minimum_coverage, 'float') + query_parameters["minimumCoverage"] = self._serialize.query( + "minimum_coverage", _minimum_coverage, "float" + ) if _order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", _order_by, '[str]', div=',') + query_parameters["$orderby"] = self._serialize.query( + "order_by", _order_by, "[str]", div="," + ) if _query_type is not None: - query_parameters['queryType'] = self._serialize.query("query_type", _query_type, 'str') + query_parameters["queryType"] = self._serialize.query( + "query_type", _query_type, "str" + ) if _scoring_parameters is not None: - query_parameters['scoringParameter'] = [self._serialize.query("scoring_parameters", q, 'str') if q is not None else '' for q in _scoring_parameters] + query_parameters["scoringParameter"] = [ + self._serialize.query("scoring_parameters", q, "str") + if q is not None + else "" + for q in _scoring_parameters + ] if _scoring_profile is not None: - query_parameters['scoringProfile'] = self._serialize.query("scoring_profile", _scoring_profile, 'str') + query_parameters["scoringProfile"] = self._serialize.query( + "scoring_profile", _scoring_profile, "str" + ) if _search_fields is not None: - query_parameters['searchFields'] = self._serialize.query("search_fields", _search_fields, '[str]', div=',') + query_parameters["searchFields"] = self._serialize.query( + "search_fields", _search_fields, "[str]", div="," + ) if _query_language is not None: - query_parameters['queryLanguage'] = self._serialize.query("query_language", _query_language, 'str') + query_parameters["queryLanguage"] = self._serialize.query( + "query_language", _query_language, "str" + ) if _speller is not None: - query_parameters['speller'] = self._serialize.query("speller", _speller, 'str') + query_parameters["speller"] = self._serialize.query( + "speller", _speller, "str" + ) if _answers is not None: - query_parameters['answers'] = self._serialize.query("answers", _answers, 'str') + query_parameters["answers"] = self._serialize.query( + "answers", _answers, "str" + ) if _search_mode is not None: - query_parameters['searchMode'] = self._serialize.query("search_mode", _search_mode, 'str') + query_parameters["searchMode"] = self._serialize.query( + "search_mode", _search_mode, "str" + ) if _scoring_statistics is not None: - query_parameters['scoringStatistics'] = self._serialize.query("scoring_statistics", _scoring_statistics, 'str') + query_parameters["scoringStatistics"] = self._serialize.query( + "scoring_statistics", _scoring_statistics, "str" + ) if _session_id is not None: - query_parameters['sessionId'] = self._serialize.query("session_id", _session_id, 'str') + query_parameters["sessionId"] = self._serialize.query( + "session_id", _session_id, "str" + ) if _select is not None: - query_parameters['$select'] = self._serialize.query("select", _select, '[str]', div=',') + query_parameters["$select"] = self._serialize.query( + "select", _select, "[str]", div="," + ) if _skip is not None: - query_parameters['$skip'] = self._serialize.query("skip", _skip, 'int') + query_parameters["$skip"] = self._serialize.query("skip", _skip, "int") if _top is not None: - query_parameters['$top'] = self._serialize.query("top", _top, 'int') + query_parameters["$top"] = self._serialize.query("top", _top, "int") if _captions is not None: - query_parameters['captions'] = self._serialize.query("captions", _captions, 'str') + query_parameters["captions"] = self._serialize.query( + "captions", _captions, "str" + ) if _semantic_fields is not None: - query_parameters['semanticFields'] = self._serialize.query("semantic_fields", _semantic_fields, '[str]', div=',') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + query_parameters["semanticFields"] = self._serialize.query( + "semantic_fields", _semantic_fields, "[str]", div="," + ) + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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) + 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) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) - deserialized = self._deserialize('SearchDocumentsResult', pipeline_response) + deserialized = self._deserialize("SearchDocumentsResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - search_get.metadata = {'url': '/docs'} # type: ignore + + search_get.metadata = {"url": "/docs"} # type: ignore async def search_post( self, @@ -280,12 +369,14 @@ async def search_post( :rtype: ~azure.search.documents.models.SearchDocumentsResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.SearchDocumentsResult"] + cls = kwargs.pop("cls", None) # type: ClsType["_models.SearchDocumentsResult"] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _x_ms_client_request_id = None if request_options is not None: _x_ms_client_request_id = request_options.x_ms_client_request_id @@ -294,43 +385,62 @@ async def search_post( accept = "application/json" # Construct URL - url = self.search_post.metadata['url'] # type: ignore + url = self.search_post.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_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') + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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(search_request, 'SearchRequest') - 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) + body_content = self._serialize.body(search_request, "SearchRequest") + 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) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) - deserialized = self._deserialize('SearchDocumentsResult', pipeline_response) + deserialized = self._deserialize("SearchDocumentsResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - search_post.metadata = {'url': '/docs/search.post.search'} # type: ignore + + search_post.metadata = {"url": "/docs/search.post.search"} # type: ignore async def get( self, @@ -353,12 +463,14 @@ async def get( :rtype: any :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType[Any] + cls = kwargs.pop("cls", None) # type: ClsType[Any] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _x_ms_client_request_id = None if request_options is not None: _x_ms_client_request_id = request_options.x_ms_client_request_id @@ -366,42 +478,59 @@ async def get( accept = "application/json" # Construct URL - url = self.get.metadata['url'] # type: ignore + url = self.get.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), - 'key': self._serialize.url("key", key, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_name, "str" + ), + "key": self._serialize.url("key", key, "str"), } url = self._client.format_url(url, **path_format_arguments) # Construct parameters query_parameters = {} # type: Dict[str, Any] if selected_fields is not None: - query_parameters['$select'] = self._serialize.query("selected_fields", selected_fields, '[str]', div=',') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + query_parameters["$select"] = self._serialize.query( + "selected_fields", selected_fields, "[str]", div="," + ) + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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) + 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) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) - deserialized = self._deserialize('object', pipeline_response) + deserialized = self._deserialize("object", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/docs(\'{key}\')'} # type: ignore + + get.metadata = {"url": "/docs('{key}')"} # type: ignore async def suggest_get( self, @@ -428,12 +557,14 @@ async def suggest_get( :rtype: ~azure.search.documents.models.SuggestDocumentsResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.SuggestDocumentsResult"] + cls = kwargs.pop("cls", None) # type: ClsType["_models.SuggestDocumentsResult"] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _filter = None _use_fuzzy_matching = None _highlight_post_tag = None @@ -460,59 +591,94 @@ async def suggest_get( accept = "application/json" # Construct URL - url = self.suggest_get.metadata['url'] # type: ignore + url = self.suggest_get.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_name, "str" + ), } url = self._client.format_url(url, **path_format_arguments) # Construct parameters query_parameters = {} # type: Dict[str, Any] - query_parameters['search'] = self._serialize.query("search_text", search_text, 'str') - query_parameters['suggesterName'] = self._serialize.query("suggester_name", suggester_name, 'str') + query_parameters["search"] = self._serialize.query( + "search_text", search_text, "str" + ) + query_parameters["suggesterName"] = self._serialize.query( + "suggester_name", suggester_name, "str" + ) if _filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", _filter, 'str') + query_parameters["$filter"] = self._serialize.query( + "filter", _filter, "str" + ) if _use_fuzzy_matching is not None: - query_parameters['fuzzy'] = self._serialize.query("use_fuzzy_matching", _use_fuzzy_matching, 'bool') + query_parameters["fuzzy"] = self._serialize.query( + "use_fuzzy_matching", _use_fuzzy_matching, "bool" + ) if _highlight_post_tag is not None: - query_parameters['highlightPostTag'] = self._serialize.query("highlight_post_tag", _highlight_post_tag, 'str') + query_parameters["highlightPostTag"] = self._serialize.query( + "highlight_post_tag", _highlight_post_tag, "str" + ) if _highlight_pre_tag is not None: - query_parameters['highlightPreTag'] = self._serialize.query("highlight_pre_tag", _highlight_pre_tag, 'str') + query_parameters["highlightPreTag"] = self._serialize.query( + "highlight_pre_tag", _highlight_pre_tag, "str" + ) if _minimum_coverage is not None: - query_parameters['minimumCoverage'] = self._serialize.query("minimum_coverage", _minimum_coverage, 'float') + query_parameters["minimumCoverage"] = self._serialize.query( + "minimum_coverage", _minimum_coverage, "float" + ) if _order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", _order_by, '[str]', div=',') + query_parameters["$orderby"] = self._serialize.query( + "order_by", _order_by, "[str]", div="," + ) if _search_fields is not None: - query_parameters['searchFields'] = self._serialize.query("search_fields", _search_fields, '[str]', div=',') + query_parameters["searchFields"] = self._serialize.query( + "search_fields", _search_fields, "[str]", div="," + ) if _select is not None: - query_parameters['$select'] = self._serialize.query("select", _select, '[str]', div=',') + query_parameters["$select"] = self._serialize.query( + "select", _select, "[str]", div="," + ) if _top is not None: - query_parameters['$top'] = self._serialize.query("top", _top, 'int') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + query_parameters["$top"] = self._serialize.query("top", _top, "int") + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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) + 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) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) - deserialized = self._deserialize('SuggestDocumentsResult', pipeline_response) + deserialized = self._deserialize("SuggestDocumentsResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - suggest_get.metadata = {'url': '/docs/search.suggest'} # type: ignore + + suggest_get.metadata = {"url": "/docs/search.suggest"} # type: ignore async def suggest_post( self, @@ -531,12 +697,14 @@ async def suggest_post( :rtype: ~azure.search.documents.models.SuggestDocumentsResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.SuggestDocumentsResult"] + cls = kwargs.pop("cls", None) # type: ClsType["_models.SuggestDocumentsResult"] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _x_ms_client_request_id = None if request_options is not None: _x_ms_client_request_id = request_options.x_ms_client_request_id @@ -545,43 +713,62 @@ async def suggest_post( accept = "application/json" # Construct URL - url = self.suggest_post.metadata['url'] # type: ignore + url = self.suggest_post.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_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') + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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(suggest_request, 'SuggestRequest') - 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) + body_content = self._serialize.body(suggest_request, "SuggestRequest") + 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) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) - deserialized = self._deserialize('SuggestDocumentsResult', pipeline_response) + deserialized = self._deserialize("SuggestDocumentsResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - suggest_post.metadata = {'url': '/docs/search.post.suggest'} # type: ignore + + suggest_post.metadata = {"url": "/docs/search.post.suggest"} # type: ignore async def index( self, @@ -600,12 +787,14 @@ async def index( :rtype: ~azure.search.documents.models.IndexDocumentsResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IndexDocumentsResult"] + cls = kwargs.pop("cls", None) # type: ClsType["_models.IndexDocumentsResult"] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _x_ms_client_request_id = None if request_options is not None: _x_ms_client_request_id = request_options.x_ms_client_request_id @@ -616,47 +805,66 @@ async def index( accept = "application/json" # Construct URL - url = self.index.metadata['url'] # type: ignore + url = self.index.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_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') + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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(_batch, 'IndexBatch') - 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) + body_content = self._serialize.body(_batch, "IndexBatch") + 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, 207]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) if response.status_code == 200: - deserialized = self._deserialize('IndexDocumentsResult', pipeline_response) + deserialized = self._deserialize("IndexDocumentsResult", pipeline_response) if response.status_code == 207: - deserialized = self._deserialize('IndexDocumentsResult', pipeline_response) + deserialized = self._deserialize("IndexDocumentsResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - index.metadata = {'url': '/docs/search.index'} # type: ignore + + index.metadata = {"url": "/docs/search.index"} # type: ignore async def autocomplete_get( self, @@ -682,12 +890,14 @@ async def autocomplete_get( :rtype: ~azure.search.documents.models.AutocompleteResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.AutocompleteResult"] + cls = kwargs.pop("cls", None) # type: ClsType["_models.AutocompleteResult"] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _x_ms_client_request_id = None _autocomplete_mode = None _filter = None @@ -712,57 +922,90 @@ async def autocomplete_get( accept = "application/json" # Construct URL - url = self.autocomplete_get.metadata['url'] # type: ignore + url = self.autocomplete_get.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_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') - query_parameters['search'] = self._serialize.query("search_text", search_text, 'str') - query_parameters['suggesterName'] = self._serialize.query("suggester_name", suggester_name, 'str') + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) + query_parameters["search"] = self._serialize.query( + "search_text", search_text, "str" + ) + query_parameters["suggesterName"] = self._serialize.query( + "suggester_name", suggester_name, "str" + ) if _autocomplete_mode is not None: - query_parameters['autocompleteMode'] = self._serialize.query("autocomplete_mode", _autocomplete_mode, 'str') + query_parameters["autocompleteMode"] = self._serialize.query( + "autocomplete_mode", _autocomplete_mode, "str" + ) if _filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", _filter, 'str') + query_parameters["$filter"] = self._serialize.query( + "filter", _filter, "str" + ) if _use_fuzzy_matching is not None: - query_parameters['fuzzy'] = self._serialize.query("use_fuzzy_matching", _use_fuzzy_matching, 'bool') + query_parameters["fuzzy"] = self._serialize.query( + "use_fuzzy_matching", _use_fuzzy_matching, "bool" + ) if _highlight_post_tag is not None: - query_parameters['highlightPostTag'] = self._serialize.query("highlight_post_tag", _highlight_post_tag, 'str') + query_parameters["highlightPostTag"] = self._serialize.query( + "highlight_post_tag", _highlight_post_tag, "str" + ) if _highlight_pre_tag is not None: - query_parameters['highlightPreTag'] = self._serialize.query("highlight_pre_tag", _highlight_pre_tag, 'str') + query_parameters["highlightPreTag"] = self._serialize.query( + "highlight_pre_tag", _highlight_pre_tag, "str" + ) if _minimum_coverage is not None: - query_parameters['minimumCoverage'] = self._serialize.query("minimum_coverage", _minimum_coverage, 'float') + query_parameters["minimumCoverage"] = self._serialize.query( + "minimum_coverage", _minimum_coverage, "float" + ) if _search_fields is not None: - query_parameters['searchFields'] = self._serialize.query("search_fields", _search_fields, '[str]', div=',') + query_parameters["searchFields"] = self._serialize.query( + "search_fields", _search_fields, "[str]", div="," + ) if _top is not None: - query_parameters['$top'] = self._serialize.query("top", _top, 'int') + query_parameters["$top"] = self._serialize.query("top", _top, "int") # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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) + 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) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) - deserialized = self._deserialize('AutocompleteResult', pipeline_response) + deserialized = self._deserialize("AutocompleteResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - autocomplete_get.metadata = {'url': '/docs/search.autocomplete'} # type: ignore + + autocomplete_get.metadata = {"url": "/docs/search.autocomplete"} # type: ignore async def autocomplete_post( self, @@ -781,12 +1024,14 @@ async def autocomplete_post( :rtype: ~azure.search.documents.models.AutocompleteResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.AutocompleteResult"] + cls = kwargs.pop("cls", None) # type: ClsType["_models.AutocompleteResult"] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _x_ms_client_request_id = None if request_options is not None: _x_ms_client_request_id = request_options.x_ms_client_request_id @@ -795,40 +1040,59 @@ async def autocomplete_post( accept = "application/json" # Construct URL - url = self.autocomplete_post.metadata['url'] # type: ignore + url = self.autocomplete_post.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_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') + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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(autocomplete_request, 'AutocompleteRequest') - 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) + body_content = self._serialize.body(autocomplete_request, "AutocompleteRequest") + 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) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) - deserialized = self._deserialize('AutocompleteResult', pipeline_response) + deserialized = self._deserialize("AutocompleteResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - autocomplete_post.metadata = {'url': '/docs/search.post.autocomplete'} # type: ignore + + autocomplete_post.metadata = {"url": "/docs/search.post.autocomplete"} # type: ignore diff --git a/sdk/search/azure-search-documents/azure/search/documents/_generated/models/__init__.py b/sdk/search/azure-search-documents/azure/search/documents/_generated/models/__init__.py index cec096d25420..d970ddc2edc4 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_generated/models/__init__.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_generated/models/__init__.py @@ -64,34 +64,34 @@ ) __all__ = [ - 'AnswerResult', - 'AutocompleteItem', - 'AutocompleteOptions', - 'AutocompleteRequest', - 'AutocompleteResult', - 'CaptionResult', - 'FacetResult', - 'IndexAction', - 'IndexBatch', - 'IndexDocumentsResult', - 'IndexingResult', - 'RequestOptions', - 'SearchDocumentsResult', - 'SearchError', - 'SearchOptions', - 'SearchRequest', - 'SearchResult', - 'SuggestDocumentsResult', - 'SuggestOptions', - 'SuggestRequest', - 'SuggestResult', - 'Answers', - 'AutocompleteMode', - 'Captions', - 'IndexActionType', - 'QueryLanguage', - 'QueryType', - 'ScoringStatistics', - 'SearchMode', - 'Speller', + "AnswerResult", + "AutocompleteItem", + "AutocompleteOptions", + "AutocompleteRequest", + "AutocompleteResult", + "CaptionResult", + "FacetResult", + "IndexAction", + "IndexBatch", + "IndexDocumentsResult", + "IndexingResult", + "RequestOptions", + "SearchDocumentsResult", + "SearchError", + "SearchOptions", + "SearchRequest", + "SearchResult", + "SuggestDocumentsResult", + "SuggestOptions", + "SuggestRequest", + "SuggestResult", + "Answers", + "AutocompleteMode", + "Captions", + "IndexActionType", + "QueryLanguage", + "QueryType", + "ScoringStatistics", + "SearchMode", + "Speller", ] diff --git a/sdk/search/azure-search-documents/azure/search/documents/_generated/models/_models.py b/sdk/search/azure-search-documents/azure/search/documents/_generated/models/_models.py index 3c18d1464a26..37794d8944af 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_generated/models/_models.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_generated/models/_models.py @@ -31,26 +31,23 @@ class AnswerResult(msrest.serialization.Model): """ _validation = { - 'score': {'readonly': True}, - 'key': {'readonly': True}, - 'text': {'readonly': True}, - 'highlights': {'readonly': True}, + "score": {"readonly": True}, + "key": {"readonly": True}, + "text": {"readonly": True}, + "highlights": {"readonly": True}, } _attribute_map = { - 'additional_properties': {'key': '', 'type': '{object}'}, - 'score': {'key': 'score', 'type': 'float'}, - 'key': {'key': 'key', 'type': 'str'}, - 'text': {'key': 'text', 'type': 'str'}, - 'highlights': {'key': 'highlights', 'type': 'str'}, + "additional_properties": {"key": "", "type": "{object}"}, + "score": {"key": "score", "type": "float"}, + "key": {"key": "key", "type": "str"}, + "text": {"key": "text", "type": "str"}, + "highlights": {"key": "highlights", "type": "str"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(AnswerResult, self).__init__(**kwargs) - self.additional_properties = kwargs.get('additional_properties', None) + self.additional_properties = kwargs.get("additional_properties", None) self.score = None self.key = None self.text = None @@ -71,19 +68,16 @@ class AutocompleteItem(msrest.serialization.Model): """ _validation = { - 'text': {'required': True, 'readonly': True}, - 'query_plus_text': {'required': True, 'readonly': True}, + "text": {"required": True, "readonly": True}, + "query_plus_text": {"required": True, "readonly": True}, } _attribute_map = { - 'text': {'key': 'text', 'type': 'str'}, - 'query_plus_text': {'key': 'queryPlusText', 'type': 'str'}, + "text": {"key": "text", "type": "str"}, + "query_plus_text": {"key": "queryPlusText", "type": "str"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(AutocompleteItem, self).__init__(**kwargs) self.text = None self.query_plus_text = None @@ -125,29 +119,26 @@ class AutocompleteOptions(msrest.serialization.Model): """ _attribute_map = { - 'autocomplete_mode': {'key': 'autocompleteMode', 'type': 'str'}, - 'filter': {'key': '$filter', 'type': 'str'}, - 'use_fuzzy_matching': {'key': 'UseFuzzyMatching', 'type': 'bool'}, - 'highlight_post_tag': {'key': 'highlightPostTag', 'type': 'str'}, - 'highlight_pre_tag': {'key': 'highlightPreTag', 'type': 'str'}, - 'minimum_coverage': {'key': 'minimumCoverage', 'type': 'float'}, - 'search_fields': {'key': 'searchFields', 'type': '[str]'}, - 'top': {'key': '$top', 'type': 'int'}, + "autocomplete_mode": {"key": "autocompleteMode", "type": "str"}, + "filter": {"key": "$filter", "type": "str"}, + "use_fuzzy_matching": {"key": "UseFuzzyMatching", "type": "bool"}, + "highlight_post_tag": {"key": "highlightPostTag", "type": "str"}, + "highlight_pre_tag": {"key": "highlightPreTag", "type": "str"}, + "minimum_coverage": {"key": "minimumCoverage", "type": "float"}, + "search_fields": {"key": "searchFields", "type": "[str]"}, + "top": {"key": "$top", "type": "int"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(AutocompleteOptions, self).__init__(**kwargs) - self.autocomplete_mode = kwargs.get('autocomplete_mode', None) - self.filter = kwargs.get('filter', None) - self.use_fuzzy_matching = kwargs.get('use_fuzzy_matching', None) - self.highlight_post_tag = kwargs.get('highlight_post_tag', None) - self.highlight_pre_tag = kwargs.get('highlight_pre_tag', None) - self.minimum_coverage = kwargs.get('minimum_coverage', None) - self.search_fields = kwargs.get('search_fields', None) - self.top = kwargs.get('top', None) + self.autocomplete_mode = kwargs.get("autocomplete_mode", None) + self.filter = kwargs.get("filter", None) + self.use_fuzzy_matching = kwargs.get("use_fuzzy_matching", None) + self.highlight_post_tag = kwargs.get("highlight_post_tag", None) + self.highlight_pre_tag = kwargs.get("highlight_pre_tag", None) + self.minimum_coverage = kwargs.get("minimum_coverage", None) + self.search_fields = kwargs.get("search_fields", None) + self.top = kwargs.get("top", None) class AutocompleteRequest(msrest.serialization.Model): @@ -193,38 +184,35 @@ class AutocompleteRequest(msrest.serialization.Model): """ _validation = { - 'search_text': {'required': True}, - 'suggester_name': {'required': True}, + "search_text": {"required": True}, + "suggester_name": {"required": True}, } _attribute_map = { - 'search_text': {'key': 'search', 'type': 'str'}, - 'autocomplete_mode': {'key': 'autocompleteMode', 'type': 'str'}, - 'filter': {'key': 'filter', 'type': 'str'}, - 'use_fuzzy_matching': {'key': 'fuzzy', 'type': 'bool'}, - 'highlight_post_tag': {'key': 'highlightPostTag', 'type': 'str'}, - 'highlight_pre_tag': {'key': 'highlightPreTag', 'type': 'str'}, - 'minimum_coverage': {'key': 'minimumCoverage', 'type': 'float'}, - 'search_fields': {'key': 'searchFields', 'type': 'str'}, - 'suggester_name': {'key': 'suggesterName', 'type': 'str'}, - 'top': {'key': 'top', 'type': 'int'}, + "search_text": {"key": "search", "type": "str"}, + "autocomplete_mode": {"key": "autocompleteMode", "type": "str"}, + "filter": {"key": "filter", "type": "str"}, + "use_fuzzy_matching": {"key": "fuzzy", "type": "bool"}, + "highlight_post_tag": {"key": "highlightPostTag", "type": "str"}, + "highlight_pre_tag": {"key": "highlightPreTag", "type": "str"}, + "minimum_coverage": {"key": "minimumCoverage", "type": "float"}, + "search_fields": {"key": "searchFields", "type": "str"}, + "suggester_name": {"key": "suggesterName", "type": "str"}, + "top": {"key": "top", "type": "int"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(AutocompleteRequest, self).__init__(**kwargs) - self.search_text = kwargs['search_text'] - self.autocomplete_mode = kwargs.get('autocomplete_mode', None) - self.filter = kwargs.get('filter', None) - self.use_fuzzy_matching = kwargs.get('use_fuzzy_matching', None) - self.highlight_post_tag = kwargs.get('highlight_post_tag', None) - self.highlight_pre_tag = kwargs.get('highlight_pre_tag', None) - self.minimum_coverage = kwargs.get('minimum_coverage', None) - self.search_fields = kwargs.get('search_fields', None) - self.suggester_name = kwargs['suggester_name'] - self.top = kwargs.get('top', None) + self.search_text = kwargs["search_text"] + self.autocomplete_mode = kwargs.get("autocomplete_mode", None) + self.filter = kwargs.get("filter", None) + self.use_fuzzy_matching = kwargs.get("use_fuzzy_matching", None) + self.highlight_post_tag = kwargs.get("highlight_post_tag", None) + self.highlight_pre_tag = kwargs.get("highlight_pre_tag", None) + self.minimum_coverage = kwargs.get("minimum_coverage", None) + self.search_fields = kwargs.get("search_fields", None) + self.suggester_name = kwargs["suggester_name"] + self.top = kwargs.get("top", None) class AutocompleteResult(msrest.serialization.Model): @@ -242,19 +230,16 @@ class AutocompleteResult(msrest.serialization.Model): """ _validation = { - 'coverage': {'readonly': True}, - 'results': {'required': True, 'readonly': True}, + "coverage": {"readonly": True}, + "results": {"required": True, "readonly": True}, } _attribute_map = { - 'coverage': {'key': '@search\\.coverage', 'type': 'float'}, - 'results': {'key': 'value', 'type': '[AutocompleteItem]'}, + "coverage": {"key": "@search\\.coverage", "type": "float"}, + "results": {"key": "value", "type": "[AutocompleteItem]"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(AutocompleteResult, self).__init__(**kwargs) self.coverage = None self.results = None @@ -277,22 +262,19 @@ class CaptionResult(msrest.serialization.Model): """ _validation = { - 'text': {'readonly': True}, - 'highlights': {'readonly': True}, + "text": {"readonly": True}, + "highlights": {"readonly": True}, } _attribute_map = { - 'additional_properties': {'key': '', 'type': '{object}'}, - 'text': {'key': 'text', 'type': 'str'}, - 'highlights': {'key': 'highlights', 'type': 'str'}, + "additional_properties": {"key": "", "type": "{object}"}, + "text": {"key": "text", "type": "str"}, + "highlights": {"key": "highlights", "type": "str"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(CaptionResult, self).__init__(**kwargs) - self.additional_properties = kwargs.get('additional_properties', None) + self.additional_properties = kwargs.get("additional_properties", None) self.text = None self.highlights = None @@ -311,20 +293,17 @@ class FacetResult(msrest.serialization.Model): """ _validation = { - 'count': {'readonly': True}, + "count": {"readonly": True}, } _attribute_map = { - 'additional_properties': {'key': '', 'type': '{object}'}, - 'count': {'key': 'count', 'type': 'long'}, + "additional_properties": {"key": "", "type": "{object}"}, + "count": {"key": "count", "type": "long"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(FacetResult, self).__init__(**kwargs) - self.additional_properties = kwargs.get('additional_properties', None) + self.additional_properties = kwargs.get("additional_properties", None) self.count = None @@ -340,17 +319,14 @@ class IndexAction(msrest.serialization.Model): """ _attribute_map = { - 'additional_properties': {'key': '', 'type': '{object}'}, - 'action_type': {'key': '@search\\.action', 'type': 'str'}, + "additional_properties": {"key": "", "type": "{object}"}, + "action_type": {"key": "@search\\.action", "type": "str"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(IndexAction, self).__init__(**kwargs) - self.additional_properties = kwargs.get('additional_properties', None) - self.action_type = kwargs.get('action_type', None) + self.additional_properties = kwargs.get("additional_properties", None) + self.action_type = kwargs.get("action_type", None) class IndexBatch(msrest.serialization.Model): @@ -363,19 +339,16 @@ class IndexBatch(msrest.serialization.Model): """ _validation = { - 'actions': {'required': True}, + "actions": {"required": True}, } _attribute_map = { - 'actions': {'key': 'value', 'type': '[IndexAction]'}, + "actions": {"key": "value", "type": "[IndexAction]"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(IndexBatch, self).__init__(**kwargs) - self.actions = kwargs['actions'] + self.actions = kwargs["actions"] class IndexDocumentsResult(msrest.serialization.Model): @@ -391,17 +364,14 @@ class IndexDocumentsResult(msrest.serialization.Model): """ _validation = { - 'results': {'required': True, 'readonly': True}, + "results": {"required": True, "readonly": True}, } _attribute_map = { - 'results': {'key': 'value', 'type': '[IndexingResult]'}, + "results": {"key": "value", "type": "[IndexingResult]"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(IndexDocumentsResult, self).__init__(**kwargs) self.results = None @@ -429,23 +399,20 @@ class IndexingResult(msrest.serialization.Model): """ _validation = { - 'key': {'required': True, 'readonly': True}, - 'error_message': {'readonly': True}, - 'succeeded': {'required': True, 'readonly': True}, - 'status_code': {'required': True, 'readonly': True}, + "key": {"required": True, "readonly": True}, + "error_message": {"readonly": True}, + "succeeded": {"required": True, "readonly": True}, + "status_code": {"required": True, "readonly": True}, } _attribute_map = { - 'key': {'key': 'key', 'type': 'str'}, - 'error_message': {'key': 'errorMessage', 'type': 'str'}, - 'succeeded': {'key': 'status', 'type': 'bool'}, - 'status_code': {'key': 'statusCode', 'type': 'int'}, + "key": {"key": "key", "type": "str"}, + "error_message": {"key": "errorMessage", "type": "str"}, + "succeeded": {"key": "status", "type": "bool"}, + "status_code": {"key": "statusCode", "type": "int"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(IndexingResult, self).__init__(**kwargs) self.key = None self.error_message = None @@ -461,15 +428,12 @@ class RequestOptions(msrest.serialization.Model): """ _attribute_map = { - 'x_ms_client_request_id': {'key': 'x-ms-client-request-id', 'type': 'str'}, + "x_ms_client_request_id": {"key": "x-ms-client-request-id", "type": "str"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(RequestOptions, self).__init__(**kwargs) - self.x_ms_client_request_id = kwargs.get('x_ms_client_request_id', None) + self.x_ms_client_request_id = kwargs.get("x_ms_client_request_id", None) class SearchDocumentsResult(msrest.serialization.Model): @@ -508,29 +472,29 @@ class SearchDocumentsResult(msrest.serialization.Model): """ _validation = { - 'count': {'readonly': True}, - 'coverage': {'readonly': True}, - 'facets': {'readonly': True}, - 'answers': {'readonly': True}, - 'next_page_parameters': {'readonly': True}, - 'results': {'required': True, 'readonly': True}, - 'next_link': {'readonly': True}, + "count": {"readonly": True}, + "coverage": {"readonly": True}, + "facets": {"readonly": True}, + "answers": {"readonly": True}, + "next_page_parameters": {"readonly": True}, + "results": {"required": True, "readonly": True}, + "next_link": {"readonly": True}, } _attribute_map = { - 'count': {'key': '@odata\\.count', 'type': 'long'}, - 'coverage': {'key': '@search\\.coverage', 'type': 'float'}, - 'facets': {'key': '@search\\.facets', 'type': '{[FacetResult]}'}, - 'answers': {'key': '@search\\.answers', 'type': '[AnswerResult]'}, - 'next_page_parameters': {'key': '@search\\.nextPageParameters', 'type': 'SearchRequest'}, - 'results': {'key': 'value', 'type': '[SearchResult]'}, - 'next_link': {'key': '@odata\\.nextLink', 'type': 'str'}, + "count": {"key": "@odata\\.count", "type": "long"}, + "coverage": {"key": "@search\\.coverage", "type": "float"}, + "facets": {"key": "@search\\.facets", "type": "{[FacetResult]}"}, + "answers": {"key": "@search\\.answers", "type": "[AnswerResult]"}, + "next_page_parameters": { + "key": "@search\\.nextPageParameters", + "type": "SearchRequest", + }, + "results": {"key": "value", "type": "[SearchResult]"}, + "next_link": {"key": "@odata\\.nextLink", "type": "str"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(SearchDocumentsResult, self).__init__(**kwargs) self.count = None self.coverage = None @@ -557,21 +521,18 @@ class SearchError(msrest.serialization.Model): """ _validation = { - 'code': {'readonly': True}, - 'message': {'required': True, 'readonly': True}, - 'details': {'readonly': True}, + "code": {"readonly": True}, + "message": {"required": True, "readonly": True}, + "details": {"readonly": True}, } _attribute_map = { - 'code': {'key': 'code', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, - 'details': {'key': 'details', 'type': '[SearchError]'}, + "code": {"key": "code", "type": "str"}, + "message": {"key": "message", "type": "str"}, + "details": {"key": "details", "type": "[SearchError]"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(SearchError, self).__init__(**kwargs) self.code = None self.message = None @@ -676,59 +637,59 @@ class SearchOptions(msrest.serialization.Model): """ _attribute_map = { - 'include_total_result_count': {'key': 'IncludeTotalResultCount', 'type': 'bool'}, - 'facets': {'key': 'Facets', 'type': '[str]'}, - 'filter': {'key': '$filter', 'type': 'str'}, - 'highlight_fields': {'key': 'HighlightFields', 'type': '[str]'}, - 'highlight_post_tag': {'key': 'highlightPostTag', 'type': 'str'}, - 'highlight_pre_tag': {'key': 'highlightPreTag', 'type': 'str'}, - 'minimum_coverage': {'key': 'minimumCoverage', 'type': 'float'}, - 'order_by': {'key': 'OrderBy', 'type': '[str]'}, - 'query_type': {'key': 'queryType', 'type': 'str'}, - 'scoring_parameters': {'key': 'ScoringParameters', 'type': '[str]'}, - 'scoring_profile': {'key': 'scoringProfile', 'type': 'str'}, - 'search_fields': {'key': 'searchFields', 'type': '[str]'}, - 'query_language': {'key': 'queryLanguage', 'type': 'str'}, - 'speller': {'key': 'speller', 'type': 'str'}, - 'answers': {'key': 'answers', 'type': 'str'}, - 'search_mode': {'key': 'searchMode', 'type': 'str'}, - 'scoring_statistics': {'key': 'scoringStatistics', 'type': 'str'}, - 'session_id': {'key': 'sessionId', 'type': 'str'}, - 'select': {'key': '$select', 'type': '[str]'}, - 'skip': {'key': '$skip', 'type': 'int'}, - 'top': {'key': '$top', 'type': 'int'}, - 'captions': {'key': 'captions', 'type': 'str'}, - 'semantic_fields': {'key': 'semanticFields', 'type': '[str]'}, + "include_total_result_count": { + "key": "IncludeTotalResultCount", + "type": "bool", + }, + "facets": {"key": "Facets", "type": "[str]"}, + "filter": {"key": "$filter", "type": "str"}, + "highlight_fields": {"key": "HighlightFields", "type": "[str]"}, + "highlight_post_tag": {"key": "highlightPostTag", "type": "str"}, + "highlight_pre_tag": {"key": "highlightPreTag", "type": "str"}, + "minimum_coverage": {"key": "minimumCoverage", "type": "float"}, + "order_by": {"key": "OrderBy", "type": "[str]"}, + "query_type": {"key": "queryType", "type": "str"}, + "scoring_parameters": {"key": "ScoringParameters", "type": "[str]"}, + "scoring_profile": {"key": "scoringProfile", "type": "str"}, + "search_fields": {"key": "searchFields", "type": "[str]"}, + "query_language": {"key": "queryLanguage", "type": "str"}, + "speller": {"key": "speller", "type": "str"}, + "answers": {"key": "answers", "type": "str"}, + "search_mode": {"key": "searchMode", "type": "str"}, + "scoring_statistics": {"key": "scoringStatistics", "type": "str"}, + "session_id": {"key": "sessionId", "type": "str"}, + "select": {"key": "$select", "type": "[str]"}, + "skip": {"key": "$skip", "type": "int"}, + "top": {"key": "$top", "type": "int"}, + "captions": {"key": "captions", "type": "str"}, + "semantic_fields": {"key": "semanticFields", "type": "[str]"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(SearchOptions, self).__init__(**kwargs) - self.include_total_result_count = kwargs.get('include_total_result_count', None) - self.facets = kwargs.get('facets', None) - self.filter = kwargs.get('filter', None) - self.highlight_fields = kwargs.get('highlight_fields', None) - self.highlight_post_tag = kwargs.get('highlight_post_tag', None) - self.highlight_pre_tag = kwargs.get('highlight_pre_tag', None) - self.minimum_coverage = kwargs.get('minimum_coverage', None) - self.order_by = kwargs.get('order_by', None) - self.query_type = kwargs.get('query_type', None) - self.scoring_parameters = kwargs.get('scoring_parameters', None) - self.scoring_profile = kwargs.get('scoring_profile', None) - self.search_fields = kwargs.get('search_fields', None) - self.query_language = kwargs.get('query_language', None) - self.speller = kwargs.get('speller', None) - self.answers = kwargs.get('answers', None) - self.search_mode = kwargs.get('search_mode', None) - self.scoring_statistics = kwargs.get('scoring_statistics', None) - self.session_id = kwargs.get('session_id', None) - self.select = kwargs.get('select', None) - self.skip = kwargs.get('skip', None) - self.top = kwargs.get('top', None) - self.captions = kwargs.get('captions', None) - self.semantic_fields = kwargs.get('semantic_fields', None) + self.include_total_result_count = kwargs.get("include_total_result_count", None) + self.facets = kwargs.get("facets", None) + self.filter = kwargs.get("filter", None) + self.highlight_fields = kwargs.get("highlight_fields", None) + self.highlight_post_tag = kwargs.get("highlight_post_tag", None) + self.highlight_pre_tag = kwargs.get("highlight_pre_tag", None) + self.minimum_coverage = kwargs.get("minimum_coverage", None) + self.order_by = kwargs.get("order_by", None) + self.query_type = kwargs.get("query_type", None) + self.scoring_parameters = kwargs.get("scoring_parameters", None) + self.scoring_profile = kwargs.get("scoring_profile", None) + self.search_fields = kwargs.get("search_fields", None) + self.query_language = kwargs.get("query_language", None) + self.speller = kwargs.get("speller", None) + self.answers = kwargs.get("answers", None) + self.search_mode = kwargs.get("search_mode", None) + self.scoring_statistics = kwargs.get("scoring_statistics", None) + self.session_id = kwargs.get("session_id", None) + self.select = kwargs.get("select", None) + self.skip = kwargs.get("skip", None) + self.top = kwargs.get("top", None) + self.captions = kwargs.get("captions", None) + self.semantic_fields = kwargs.get("semantic_fields", None) class SearchRequest(msrest.serialization.Model): @@ -830,61 +791,58 @@ class SearchRequest(msrest.serialization.Model): """ _attribute_map = { - 'include_total_result_count': {'key': 'count', 'type': 'bool'}, - 'facets': {'key': 'facets', 'type': '[str]'}, - 'filter': {'key': 'filter', 'type': 'str'}, - 'highlight_fields': {'key': 'highlight', 'type': 'str'}, - 'highlight_post_tag': {'key': 'highlightPostTag', 'type': 'str'}, - 'highlight_pre_tag': {'key': 'highlightPreTag', 'type': 'str'}, - 'minimum_coverage': {'key': 'minimumCoverage', 'type': 'float'}, - 'order_by': {'key': 'orderby', 'type': 'str'}, - 'query_type': {'key': 'queryType', 'type': 'str'}, - 'scoring_statistics': {'key': 'scoringStatistics', 'type': 'str'}, - 'session_id': {'key': 'sessionId', 'type': 'str'}, - 'scoring_parameters': {'key': 'scoringParameters', 'type': '[str]'}, - 'scoring_profile': {'key': 'scoringProfile', 'type': 'str'}, - 'search_text': {'key': 'search', 'type': 'str'}, - 'search_fields': {'key': 'searchFields', 'type': 'str'}, - 'search_mode': {'key': 'searchMode', 'type': 'str'}, - 'query_language': {'key': 'queryLanguage', 'type': 'str'}, - 'speller': {'key': 'speller', 'type': 'str'}, - 'answers': {'key': 'answers', 'type': 'str'}, - 'select': {'key': 'select', 'type': 'str'}, - 'skip': {'key': 'skip', 'type': 'int'}, - 'top': {'key': 'top', 'type': 'int'}, - 'captions': {'key': 'captions', 'type': 'str'}, - 'semantic_fields': {'key': 'semanticFields', 'type': 'str'}, + "include_total_result_count": {"key": "count", "type": "bool"}, + "facets": {"key": "facets", "type": "[str]"}, + "filter": {"key": "filter", "type": "str"}, + "highlight_fields": {"key": "highlight", "type": "str"}, + "highlight_post_tag": {"key": "highlightPostTag", "type": "str"}, + "highlight_pre_tag": {"key": "highlightPreTag", "type": "str"}, + "minimum_coverage": {"key": "minimumCoverage", "type": "float"}, + "order_by": {"key": "orderby", "type": "str"}, + "query_type": {"key": "queryType", "type": "str"}, + "scoring_statistics": {"key": "scoringStatistics", "type": "str"}, + "session_id": {"key": "sessionId", "type": "str"}, + "scoring_parameters": {"key": "scoringParameters", "type": "[str]"}, + "scoring_profile": {"key": "scoringProfile", "type": "str"}, + "search_text": {"key": "search", "type": "str"}, + "search_fields": {"key": "searchFields", "type": "str"}, + "search_mode": {"key": "searchMode", "type": "str"}, + "query_language": {"key": "queryLanguage", "type": "str"}, + "speller": {"key": "speller", "type": "str"}, + "answers": {"key": "answers", "type": "str"}, + "select": {"key": "select", "type": "str"}, + "skip": {"key": "skip", "type": "int"}, + "top": {"key": "top", "type": "int"}, + "captions": {"key": "captions", "type": "str"}, + "semantic_fields": {"key": "semanticFields", "type": "str"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(SearchRequest, self).__init__(**kwargs) - self.include_total_result_count = kwargs.get('include_total_result_count', None) - self.facets = kwargs.get('facets', None) - self.filter = kwargs.get('filter', None) - self.highlight_fields = kwargs.get('highlight_fields', None) - self.highlight_post_tag = kwargs.get('highlight_post_tag', None) - self.highlight_pre_tag = kwargs.get('highlight_pre_tag', None) - self.minimum_coverage = kwargs.get('minimum_coverage', None) - self.order_by = kwargs.get('order_by', None) - self.query_type = kwargs.get('query_type', None) - self.scoring_statistics = kwargs.get('scoring_statistics', None) - self.session_id = kwargs.get('session_id', None) - self.scoring_parameters = kwargs.get('scoring_parameters', None) - self.scoring_profile = kwargs.get('scoring_profile', None) - self.search_text = kwargs.get('search_text', None) - self.search_fields = kwargs.get('search_fields', None) - self.search_mode = kwargs.get('search_mode', None) - self.query_language = kwargs.get('query_language', None) - self.speller = kwargs.get('speller', None) - self.answers = kwargs.get('answers', None) - self.select = kwargs.get('select', None) - self.skip = kwargs.get('skip', None) - self.top = kwargs.get('top', None) - self.captions = kwargs.get('captions', None) - self.semantic_fields = kwargs.get('semantic_fields', None) + self.include_total_result_count = kwargs.get("include_total_result_count", None) + self.facets = kwargs.get("facets", None) + self.filter = kwargs.get("filter", None) + self.highlight_fields = kwargs.get("highlight_fields", None) + self.highlight_post_tag = kwargs.get("highlight_post_tag", None) + self.highlight_pre_tag = kwargs.get("highlight_pre_tag", None) + self.minimum_coverage = kwargs.get("minimum_coverage", None) + self.order_by = kwargs.get("order_by", None) + self.query_type = kwargs.get("query_type", None) + self.scoring_statistics = kwargs.get("scoring_statistics", None) + self.session_id = kwargs.get("session_id", None) + self.scoring_parameters = kwargs.get("scoring_parameters", None) + self.scoring_profile = kwargs.get("scoring_profile", None) + self.search_text = kwargs.get("search_text", None) + self.search_fields = kwargs.get("search_fields", None) + self.search_mode = kwargs.get("search_mode", None) + self.query_language = kwargs.get("query_language", None) + self.speller = kwargs.get("speller", None) + self.answers = kwargs.get("answers", None) + self.select = kwargs.get("select", None) + self.skip = kwargs.get("skip", None) + self.top = kwargs.get("top", None) + self.captions = kwargs.get("captions", None) + self.semantic_fields = kwargs.get("semantic_fields", None) class SearchResult(msrest.serialization.Model): @@ -914,26 +872,23 @@ class SearchResult(msrest.serialization.Model): """ _validation = { - 'score': {'required': True, 'readonly': True}, - 'reranker_score': {'readonly': True}, - 'highlights': {'readonly': True}, - 'captions': {'readonly': True}, + "score": {"required": True, "readonly": True}, + "reranker_score": {"readonly": True}, + "highlights": {"readonly": True}, + "captions": {"readonly": True}, } _attribute_map = { - 'additional_properties': {'key': '', 'type': '{object}'}, - 'score': {'key': '@search\\.score', 'type': 'float'}, - 'reranker_score': {'key': '@search\\.rerankerScore', 'type': 'float'}, - 'highlights': {'key': '@search\\.highlights', 'type': '{[str]}'}, - 'captions': {'key': '@search\\.captions', 'type': '[CaptionResult]'}, + "additional_properties": {"key": "", "type": "{object}"}, + "score": {"key": "@search\\.score", "type": "float"}, + "reranker_score": {"key": "@search\\.rerankerScore", "type": "float"}, + "highlights": {"key": "@search\\.highlights", "type": "{[str]}"}, + "captions": {"key": "@search\\.captions", "type": "[CaptionResult]"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(SearchResult, self).__init__(**kwargs) - self.additional_properties = kwargs.get('additional_properties', None) + self.additional_properties = kwargs.get("additional_properties", None) self.score = None self.reranker_score = None self.highlights = None @@ -955,19 +910,16 @@ class SuggestDocumentsResult(msrest.serialization.Model): """ _validation = { - 'results': {'required': True, 'readonly': True}, - 'coverage': {'readonly': True}, + "results": {"required": True, "readonly": True}, + "coverage": {"readonly": True}, } _attribute_map = { - 'results': {'key': 'value', 'type': '[SuggestResult]'}, - 'coverage': {'key': '@search\\.coverage', 'type': 'float'}, + "results": {"key": "value", "type": "[SuggestResult]"}, + "coverage": {"key": "@search\\.coverage", "type": "float"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(SuggestDocumentsResult, self).__init__(**kwargs) self.results = None self.coverage = None @@ -1014,31 +966,28 @@ class SuggestOptions(msrest.serialization.Model): """ _attribute_map = { - 'filter': {'key': '$filter', 'type': 'str'}, - 'use_fuzzy_matching': {'key': 'UseFuzzyMatching', 'type': 'bool'}, - 'highlight_post_tag': {'key': 'highlightPostTag', 'type': 'str'}, - 'highlight_pre_tag': {'key': 'highlightPreTag', 'type': 'str'}, - 'minimum_coverage': {'key': 'minimumCoverage', 'type': 'float'}, - 'order_by': {'key': 'OrderBy', 'type': '[str]'}, - 'search_fields': {'key': 'searchFields', 'type': '[str]'}, - 'select': {'key': '$select', 'type': '[str]'}, - 'top': {'key': '$top', 'type': 'int'}, + "filter": {"key": "$filter", "type": "str"}, + "use_fuzzy_matching": {"key": "UseFuzzyMatching", "type": "bool"}, + "highlight_post_tag": {"key": "highlightPostTag", "type": "str"}, + "highlight_pre_tag": {"key": "highlightPreTag", "type": "str"}, + "minimum_coverage": {"key": "minimumCoverage", "type": "float"}, + "order_by": {"key": "OrderBy", "type": "[str]"}, + "search_fields": {"key": "searchFields", "type": "[str]"}, + "select": {"key": "$select", "type": "[str]"}, + "top": {"key": "$top", "type": "int"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(SuggestOptions, self).__init__(**kwargs) - self.filter = kwargs.get('filter', None) - self.use_fuzzy_matching = kwargs.get('use_fuzzy_matching', None) - self.highlight_post_tag = kwargs.get('highlight_post_tag', None) - self.highlight_pre_tag = kwargs.get('highlight_pre_tag', None) - self.minimum_coverage = kwargs.get('minimum_coverage', None) - self.order_by = kwargs.get('order_by', None) - self.search_fields = kwargs.get('search_fields', None) - self.select = kwargs.get('select', None) - self.top = kwargs.get('top', None) + self.filter = kwargs.get("filter", None) + self.use_fuzzy_matching = kwargs.get("use_fuzzy_matching", None) + self.highlight_post_tag = kwargs.get("highlight_post_tag", None) + self.highlight_pre_tag = kwargs.get("highlight_pre_tag", None) + self.minimum_coverage = kwargs.get("minimum_coverage", None) + self.order_by = kwargs.get("order_by", None) + self.search_fields = kwargs.get("search_fields", None) + self.select = kwargs.get("select", None) + self.top = kwargs.get("top", None) class SuggestRequest(msrest.serialization.Model): @@ -1090,40 +1039,37 @@ class SuggestRequest(msrest.serialization.Model): """ _validation = { - 'search_text': {'required': True}, - 'suggester_name': {'required': True}, + "search_text": {"required": True}, + "suggester_name": {"required": True}, } _attribute_map = { - 'filter': {'key': 'filter', 'type': 'str'}, - 'use_fuzzy_matching': {'key': 'fuzzy', 'type': 'bool'}, - 'highlight_post_tag': {'key': 'highlightPostTag', 'type': 'str'}, - 'highlight_pre_tag': {'key': 'highlightPreTag', 'type': 'str'}, - 'minimum_coverage': {'key': 'minimumCoverage', 'type': 'float'}, - 'order_by': {'key': 'orderby', 'type': 'str'}, - 'search_text': {'key': 'search', 'type': 'str'}, - 'search_fields': {'key': 'searchFields', 'type': 'str'}, - 'select': {'key': 'select', 'type': 'str'}, - 'suggester_name': {'key': 'suggesterName', 'type': 'str'}, - 'top': {'key': 'top', 'type': 'int'}, + "filter": {"key": "filter", "type": "str"}, + "use_fuzzy_matching": {"key": "fuzzy", "type": "bool"}, + "highlight_post_tag": {"key": "highlightPostTag", "type": "str"}, + "highlight_pre_tag": {"key": "highlightPreTag", "type": "str"}, + "minimum_coverage": {"key": "minimumCoverage", "type": "float"}, + "order_by": {"key": "orderby", "type": "str"}, + "search_text": {"key": "search", "type": "str"}, + "search_fields": {"key": "searchFields", "type": "str"}, + "select": {"key": "select", "type": "str"}, + "suggester_name": {"key": "suggesterName", "type": "str"}, + "top": {"key": "top", "type": "int"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(SuggestRequest, self).__init__(**kwargs) - self.filter = kwargs.get('filter', None) - self.use_fuzzy_matching = kwargs.get('use_fuzzy_matching', None) - self.highlight_post_tag = kwargs.get('highlight_post_tag', None) - self.highlight_pre_tag = kwargs.get('highlight_pre_tag', None) - self.minimum_coverage = kwargs.get('minimum_coverage', None) - self.order_by = kwargs.get('order_by', None) - self.search_text = kwargs['search_text'] - self.search_fields = kwargs.get('search_fields', None) - self.select = kwargs.get('select', None) - self.suggester_name = kwargs['suggester_name'] - self.top = kwargs.get('top', None) + self.filter = kwargs.get("filter", None) + self.use_fuzzy_matching = kwargs.get("use_fuzzy_matching", None) + self.highlight_post_tag = kwargs.get("highlight_post_tag", None) + self.highlight_pre_tag = kwargs.get("highlight_pre_tag", None) + self.minimum_coverage = kwargs.get("minimum_coverage", None) + self.order_by = kwargs.get("order_by", None) + self.search_text = kwargs["search_text"] + self.search_fields = kwargs.get("search_fields", None) + self.select = kwargs.get("select", None) + self.suggester_name = kwargs["suggester_name"] + self.top = kwargs.get("top", None) class SuggestResult(msrest.serialization.Model): @@ -1141,18 +1087,15 @@ class SuggestResult(msrest.serialization.Model): """ _validation = { - 'text': {'required': True, 'readonly': True}, + "text": {"required": True, "readonly": True}, } _attribute_map = { - 'additional_properties': {'key': '', 'type': '{object}'}, - 'text': {'key': '@search\\.text', 'type': 'str'}, + "additional_properties": {"key": "", "type": "{object}"}, + "text": {"key": "@search\\.text", "type": "str"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(SuggestResult, self).__init__(**kwargs) - self.additional_properties = kwargs.get('additional_properties', None) + self.additional_properties = kwargs.get("additional_properties", None) self.text = None diff --git a/sdk/search/azure-search-documents/azure/search/documents/_generated/models/_models_py3.py b/sdk/search/azure-search-documents/azure/search/documents/_generated/models/_models_py3.py index 033a095dc8f1..44711fdc9cbb 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_generated/models/_models_py3.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_generated/models/_models_py3.py @@ -35,25 +35,22 @@ class AnswerResult(msrest.serialization.Model): """ _validation = { - 'score': {'readonly': True}, - 'key': {'readonly': True}, - 'text': {'readonly': True}, - 'highlights': {'readonly': True}, + "score": {"readonly": True}, + "key": {"readonly": True}, + "text": {"readonly": True}, + "highlights": {"readonly": True}, } _attribute_map = { - 'additional_properties': {'key': '', 'type': '{object}'}, - 'score': {'key': 'score', 'type': 'float'}, - 'key': {'key': 'key', 'type': 'str'}, - 'text': {'key': 'text', 'type': 'str'}, - 'highlights': {'key': 'highlights', 'type': 'str'}, + "additional_properties": {"key": "", "type": "{object}"}, + "score": {"key": "score", "type": "float"}, + "key": {"key": "key", "type": "str"}, + "text": {"key": "text", "type": "str"}, + "highlights": {"key": "highlights", "type": "str"}, } def __init__( - self, - *, - additional_properties: Optional[Dict[str, Any]] = None, - **kwargs + self, *, additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(AnswerResult, self).__init__(**kwargs) self.additional_properties = additional_properties @@ -77,19 +74,16 @@ class AutocompleteItem(msrest.serialization.Model): """ _validation = { - 'text': {'required': True, 'readonly': True}, - 'query_plus_text': {'required': True, 'readonly': True}, + "text": {"required": True, "readonly": True}, + "query_plus_text": {"required": True, "readonly": True}, } _attribute_map = { - 'text': {'key': 'text', 'type': 'str'}, - 'query_plus_text': {'key': 'queryPlusText', 'type': 'str'}, + "text": {"key": "text", "type": "str"}, + "query_plus_text": {"key": "queryPlusText", "type": "str"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(AutocompleteItem, self).__init__(**kwargs) self.text = None self.query_plus_text = None @@ -131,14 +125,14 @@ class AutocompleteOptions(msrest.serialization.Model): """ _attribute_map = { - 'autocomplete_mode': {'key': 'autocompleteMode', 'type': 'str'}, - 'filter': {'key': '$filter', 'type': 'str'}, - 'use_fuzzy_matching': {'key': 'UseFuzzyMatching', 'type': 'bool'}, - 'highlight_post_tag': {'key': 'highlightPostTag', 'type': 'str'}, - 'highlight_pre_tag': {'key': 'highlightPreTag', 'type': 'str'}, - 'minimum_coverage': {'key': 'minimumCoverage', 'type': 'float'}, - 'search_fields': {'key': 'searchFields', 'type': '[str]'}, - 'top': {'key': '$top', 'type': 'int'}, + "autocomplete_mode": {"key": "autocompleteMode", "type": "str"}, + "filter": {"key": "$filter", "type": "str"}, + "use_fuzzy_matching": {"key": "UseFuzzyMatching", "type": "bool"}, + "highlight_post_tag": {"key": "highlightPostTag", "type": "str"}, + "highlight_pre_tag": {"key": "highlightPreTag", "type": "str"}, + "minimum_coverage": {"key": "minimumCoverage", "type": "float"}, + "search_fields": {"key": "searchFields", "type": "[str]"}, + "top": {"key": "$top", "type": "int"}, } def __init__( @@ -208,21 +202,21 @@ class AutocompleteRequest(msrest.serialization.Model): """ _validation = { - 'search_text': {'required': True}, - 'suggester_name': {'required': True}, + "search_text": {"required": True}, + "suggester_name": {"required": True}, } _attribute_map = { - 'search_text': {'key': 'search', 'type': 'str'}, - 'autocomplete_mode': {'key': 'autocompleteMode', 'type': 'str'}, - 'filter': {'key': 'filter', 'type': 'str'}, - 'use_fuzzy_matching': {'key': 'fuzzy', 'type': 'bool'}, - 'highlight_post_tag': {'key': 'highlightPostTag', 'type': 'str'}, - 'highlight_pre_tag': {'key': 'highlightPreTag', 'type': 'str'}, - 'minimum_coverage': {'key': 'minimumCoverage', 'type': 'float'}, - 'search_fields': {'key': 'searchFields', 'type': 'str'}, - 'suggester_name': {'key': 'suggesterName', 'type': 'str'}, - 'top': {'key': 'top', 'type': 'int'}, + "search_text": {"key": "search", "type": "str"}, + "autocomplete_mode": {"key": "autocompleteMode", "type": "str"}, + "filter": {"key": "filter", "type": "str"}, + "use_fuzzy_matching": {"key": "fuzzy", "type": "bool"}, + "highlight_post_tag": {"key": "highlightPostTag", "type": "str"}, + "highlight_pre_tag": {"key": "highlightPreTag", "type": "str"}, + "minimum_coverage": {"key": "minimumCoverage", "type": "float"}, + "search_fields": {"key": "searchFields", "type": "str"}, + "suggester_name": {"key": "suggesterName", "type": "str"}, + "top": {"key": "top", "type": "int"}, } def __init__( @@ -268,19 +262,16 @@ class AutocompleteResult(msrest.serialization.Model): """ _validation = { - 'coverage': {'readonly': True}, - 'results': {'required': True, 'readonly': True}, + "coverage": {"readonly": True}, + "results": {"required": True, "readonly": True}, } _attribute_map = { - 'coverage': {'key': '@search\\.coverage', 'type': 'float'}, - 'results': {'key': 'value', 'type': '[AutocompleteItem]'}, + "coverage": {"key": "@search\\.coverage", "type": "float"}, + "results": {"key": "value", "type": "[AutocompleteItem]"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(AutocompleteResult, self).__init__(**kwargs) self.coverage = None self.results = None @@ -303,21 +294,18 @@ class CaptionResult(msrest.serialization.Model): """ _validation = { - 'text': {'readonly': True}, - 'highlights': {'readonly': True}, + "text": {"readonly": True}, + "highlights": {"readonly": True}, } _attribute_map = { - 'additional_properties': {'key': '', 'type': '{object}'}, - 'text': {'key': 'text', 'type': 'str'}, - 'highlights': {'key': 'highlights', 'type': 'str'}, + "additional_properties": {"key": "", "type": "{object}"}, + "text": {"key": "text", "type": "str"}, + "highlights": {"key": "highlights", "type": "str"}, } def __init__( - self, - *, - additional_properties: Optional[Dict[str, Any]] = None, - **kwargs + self, *, additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(CaptionResult, self).__init__(**kwargs) self.additional_properties = additional_properties @@ -339,19 +327,16 @@ class FacetResult(msrest.serialization.Model): """ _validation = { - 'count': {'readonly': True}, + "count": {"readonly": True}, } _attribute_map = { - 'additional_properties': {'key': '', 'type': '{object}'}, - 'count': {'key': 'count', 'type': 'long'}, + "additional_properties": {"key": "", "type": "{object}"}, + "count": {"key": "count", "type": "long"}, } def __init__( - self, - *, - additional_properties: Optional[Dict[str, Any]] = None, - **kwargs + self, *, additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(FacetResult, self).__init__(**kwargs) self.additional_properties = additional_properties @@ -370,8 +355,8 @@ class IndexAction(msrest.serialization.Model): """ _attribute_map = { - 'additional_properties': {'key': '', 'type': '{object}'}, - 'action_type': {'key': '@search\\.action', 'type': 'str'}, + "additional_properties": {"key": "", "type": "{object}"}, + "action_type": {"key": "@search\\.action", "type": "str"}, } def __init__( @@ -396,19 +381,14 @@ class IndexBatch(msrest.serialization.Model): """ _validation = { - 'actions': {'required': True}, + "actions": {"required": True}, } _attribute_map = { - 'actions': {'key': 'value', 'type': '[IndexAction]'}, + "actions": {"key": "value", "type": "[IndexAction]"}, } - def __init__( - self, - *, - actions: List["IndexAction"], - **kwargs - ): + def __init__(self, *, actions: List["IndexAction"], **kwargs): super(IndexBatch, self).__init__(**kwargs) self.actions = actions @@ -426,17 +406,14 @@ class IndexDocumentsResult(msrest.serialization.Model): """ _validation = { - 'results': {'required': True, 'readonly': True}, + "results": {"required": True, "readonly": True}, } _attribute_map = { - 'results': {'key': 'value', 'type': '[IndexingResult]'}, + "results": {"key": "value", "type": "[IndexingResult]"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(IndexDocumentsResult, self).__init__(**kwargs) self.results = None @@ -464,23 +441,20 @@ class IndexingResult(msrest.serialization.Model): """ _validation = { - 'key': {'required': True, 'readonly': True}, - 'error_message': {'readonly': True}, - 'succeeded': {'required': True, 'readonly': True}, - 'status_code': {'required': True, 'readonly': True}, + "key": {"required": True, "readonly": True}, + "error_message": {"readonly": True}, + "succeeded": {"required": True, "readonly": True}, + "status_code": {"required": True, "readonly": True}, } _attribute_map = { - 'key': {'key': 'key', 'type': 'str'}, - 'error_message': {'key': 'errorMessage', 'type': 'str'}, - 'succeeded': {'key': 'status', 'type': 'bool'}, - 'status_code': {'key': 'statusCode', 'type': 'int'}, + "key": {"key": "key", "type": "str"}, + "error_message": {"key": "errorMessage", "type": "str"}, + "succeeded": {"key": "status", "type": "bool"}, + "status_code": {"key": "statusCode", "type": "int"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(IndexingResult, self).__init__(**kwargs) self.key = None self.error_message = None @@ -496,15 +470,10 @@ class RequestOptions(msrest.serialization.Model): """ _attribute_map = { - 'x_ms_client_request_id': {'key': 'x-ms-client-request-id', 'type': 'str'}, + "x_ms_client_request_id": {"key": "x-ms-client-request-id", "type": "str"}, } - def __init__( - self, - *, - x_ms_client_request_id: Optional[str] = None, - **kwargs - ): + def __init__(self, *, x_ms_client_request_id: Optional[str] = None, **kwargs): super(RequestOptions, self).__init__(**kwargs) self.x_ms_client_request_id = x_ms_client_request_id @@ -545,29 +514,29 @@ class SearchDocumentsResult(msrest.serialization.Model): """ _validation = { - 'count': {'readonly': True}, - 'coverage': {'readonly': True}, - 'facets': {'readonly': True}, - 'answers': {'readonly': True}, - 'next_page_parameters': {'readonly': True}, - 'results': {'required': True, 'readonly': True}, - 'next_link': {'readonly': True}, + "count": {"readonly": True}, + "coverage": {"readonly": True}, + "facets": {"readonly": True}, + "answers": {"readonly": True}, + "next_page_parameters": {"readonly": True}, + "results": {"required": True, "readonly": True}, + "next_link": {"readonly": True}, } _attribute_map = { - 'count': {'key': '@odata\\.count', 'type': 'long'}, - 'coverage': {'key': '@search\\.coverage', 'type': 'float'}, - 'facets': {'key': '@search\\.facets', 'type': '{[FacetResult]}'}, - 'answers': {'key': '@search\\.answers', 'type': '[AnswerResult]'}, - 'next_page_parameters': {'key': '@search\\.nextPageParameters', 'type': 'SearchRequest'}, - 'results': {'key': 'value', 'type': '[SearchResult]'}, - 'next_link': {'key': '@odata\\.nextLink', 'type': 'str'}, + "count": {"key": "@odata\\.count", "type": "long"}, + "coverage": {"key": "@search\\.coverage", "type": "float"}, + "facets": {"key": "@search\\.facets", "type": "{[FacetResult]}"}, + "answers": {"key": "@search\\.answers", "type": "[AnswerResult]"}, + "next_page_parameters": { + "key": "@search\\.nextPageParameters", + "type": "SearchRequest", + }, + "results": {"key": "value", "type": "[SearchResult]"}, + "next_link": {"key": "@odata\\.nextLink", "type": "str"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(SearchDocumentsResult, self).__init__(**kwargs) self.count = None self.coverage = None @@ -594,21 +563,18 @@ class SearchError(msrest.serialization.Model): """ _validation = { - 'code': {'readonly': True}, - 'message': {'required': True, 'readonly': True}, - 'details': {'readonly': True}, + "code": {"readonly": True}, + "message": {"required": True, "readonly": True}, + "details": {"readonly": True}, } _attribute_map = { - 'code': {'key': 'code', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, - 'details': {'key': 'details', 'type': '[SearchError]'}, + "code": {"key": "code", "type": "str"}, + "message": {"key": "message", "type": "str"}, + "details": {"key": "details", "type": "[SearchError]"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(SearchError, self).__init__(**kwargs) self.code = None self.message = None @@ -713,29 +679,32 @@ class SearchOptions(msrest.serialization.Model): """ _attribute_map = { - 'include_total_result_count': {'key': 'IncludeTotalResultCount', 'type': 'bool'}, - 'facets': {'key': 'Facets', 'type': '[str]'}, - 'filter': {'key': '$filter', 'type': 'str'}, - 'highlight_fields': {'key': 'HighlightFields', 'type': '[str]'}, - 'highlight_post_tag': {'key': 'highlightPostTag', 'type': 'str'}, - 'highlight_pre_tag': {'key': 'highlightPreTag', 'type': 'str'}, - 'minimum_coverage': {'key': 'minimumCoverage', 'type': 'float'}, - 'order_by': {'key': 'OrderBy', 'type': '[str]'}, - 'query_type': {'key': 'queryType', 'type': 'str'}, - 'scoring_parameters': {'key': 'ScoringParameters', 'type': '[str]'}, - 'scoring_profile': {'key': 'scoringProfile', 'type': 'str'}, - 'search_fields': {'key': 'searchFields', 'type': '[str]'}, - 'query_language': {'key': 'queryLanguage', 'type': 'str'}, - 'speller': {'key': 'speller', 'type': 'str'}, - 'answers': {'key': 'answers', 'type': 'str'}, - 'search_mode': {'key': 'searchMode', 'type': 'str'}, - 'scoring_statistics': {'key': 'scoringStatistics', 'type': 'str'}, - 'session_id': {'key': 'sessionId', 'type': 'str'}, - 'select': {'key': '$select', 'type': '[str]'}, - 'skip': {'key': '$skip', 'type': 'int'}, - 'top': {'key': '$top', 'type': 'int'}, - 'captions': {'key': 'captions', 'type': 'str'}, - 'semantic_fields': {'key': 'semanticFields', 'type': '[str]'}, + "include_total_result_count": { + "key": "IncludeTotalResultCount", + "type": "bool", + }, + "facets": {"key": "Facets", "type": "[str]"}, + "filter": {"key": "$filter", "type": "str"}, + "highlight_fields": {"key": "HighlightFields", "type": "[str]"}, + "highlight_post_tag": {"key": "highlightPostTag", "type": "str"}, + "highlight_pre_tag": {"key": "highlightPreTag", "type": "str"}, + "minimum_coverage": {"key": "minimumCoverage", "type": "float"}, + "order_by": {"key": "OrderBy", "type": "[str]"}, + "query_type": {"key": "queryType", "type": "str"}, + "scoring_parameters": {"key": "ScoringParameters", "type": "[str]"}, + "scoring_profile": {"key": "scoringProfile", "type": "str"}, + "search_fields": {"key": "searchFields", "type": "[str]"}, + "query_language": {"key": "queryLanguage", "type": "str"}, + "speller": {"key": "speller", "type": "str"}, + "answers": {"key": "answers", "type": "str"}, + "search_mode": {"key": "searchMode", "type": "str"}, + "scoring_statistics": {"key": "scoringStatistics", "type": "str"}, + "session_id": {"key": "sessionId", "type": "str"}, + "select": {"key": "$select", "type": "[str]"}, + "skip": {"key": "$skip", "type": "int"}, + "top": {"key": "$top", "type": "int"}, + "captions": {"key": "captions", "type": "str"}, + "semantic_fields": {"key": "semanticFields", "type": "[str]"}, } def __init__( @@ -891,30 +860,30 @@ class SearchRequest(msrest.serialization.Model): """ _attribute_map = { - 'include_total_result_count': {'key': 'count', 'type': 'bool'}, - 'facets': {'key': 'facets', 'type': '[str]'}, - 'filter': {'key': 'filter', 'type': 'str'}, - 'highlight_fields': {'key': 'highlight', 'type': 'str'}, - 'highlight_post_tag': {'key': 'highlightPostTag', 'type': 'str'}, - 'highlight_pre_tag': {'key': 'highlightPreTag', 'type': 'str'}, - 'minimum_coverage': {'key': 'minimumCoverage', 'type': 'float'}, - 'order_by': {'key': 'orderby', 'type': 'str'}, - 'query_type': {'key': 'queryType', 'type': 'str'}, - 'scoring_statistics': {'key': 'scoringStatistics', 'type': 'str'}, - 'session_id': {'key': 'sessionId', 'type': 'str'}, - 'scoring_parameters': {'key': 'scoringParameters', 'type': '[str]'}, - 'scoring_profile': {'key': 'scoringProfile', 'type': 'str'}, - 'search_text': {'key': 'search', 'type': 'str'}, - 'search_fields': {'key': 'searchFields', 'type': 'str'}, - 'search_mode': {'key': 'searchMode', 'type': 'str'}, - 'query_language': {'key': 'queryLanguage', 'type': 'str'}, - 'speller': {'key': 'speller', 'type': 'str'}, - 'answers': {'key': 'answers', 'type': 'str'}, - 'select': {'key': 'select', 'type': 'str'}, - 'skip': {'key': 'skip', 'type': 'int'}, - 'top': {'key': 'top', 'type': 'int'}, - 'captions': {'key': 'captions', 'type': 'str'}, - 'semantic_fields': {'key': 'semanticFields', 'type': 'str'}, + "include_total_result_count": {"key": "count", "type": "bool"}, + "facets": {"key": "facets", "type": "[str]"}, + "filter": {"key": "filter", "type": "str"}, + "highlight_fields": {"key": "highlight", "type": "str"}, + "highlight_post_tag": {"key": "highlightPostTag", "type": "str"}, + "highlight_pre_tag": {"key": "highlightPreTag", "type": "str"}, + "minimum_coverage": {"key": "minimumCoverage", "type": "float"}, + "order_by": {"key": "orderby", "type": "str"}, + "query_type": {"key": "queryType", "type": "str"}, + "scoring_statistics": {"key": "scoringStatistics", "type": "str"}, + "session_id": {"key": "sessionId", "type": "str"}, + "scoring_parameters": {"key": "scoringParameters", "type": "[str]"}, + "scoring_profile": {"key": "scoringProfile", "type": "str"}, + "search_text": {"key": "search", "type": "str"}, + "search_fields": {"key": "searchFields", "type": "str"}, + "search_mode": {"key": "searchMode", "type": "str"}, + "query_language": {"key": "queryLanguage", "type": "str"}, + "speller": {"key": "speller", "type": "str"}, + "answers": {"key": "answers", "type": "str"}, + "select": {"key": "select", "type": "str"}, + "skip": {"key": "skip", "type": "int"}, + "top": {"key": "top", "type": "int"}, + "captions": {"key": "captions", "type": "str"}, + "semantic_fields": {"key": "semanticFields", "type": "str"}, } def __init__( @@ -1000,25 +969,22 @@ class SearchResult(msrest.serialization.Model): """ _validation = { - 'score': {'required': True, 'readonly': True}, - 'reranker_score': {'readonly': True}, - 'highlights': {'readonly': True}, - 'captions': {'readonly': True}, + "score": {"required": True, "readonly": True}, + "reranker_score": {"readonly": True}, + "highlights": {"readonly": True}, + "captions": {"readonly": True}, } _attribute_map = { - 'additional_properties': {'key': '', 'type': '{object}'}, - 'score': {'key': '@search\\.score', 'type': 'float'}, - 'reranker_score': {'key': '@search\\.rerankerScore', 'type': 'float'}, - 'highlights': {'key': '@search\\.highlights', 'type': '{[str]}'}, - 'captions': {'key': '@search\\.captions', 'type': '[CaptionResult]'}, + "additional_properties": {"key": "", "type": "{object}"}, + "score": {"key": "@search\\.score", "type": "float"}, + "reranker_score": {"key": "@search\\.rerankerScore", "type": "float"}, + "highlights": {"key": "@search\\.highlights", "type": "{[str]}"}, + "captions": {"key": "@search\\.captions", "type": "[CaptionResult]"}, } def __init__( - self, - *, - additional_properties: Optional[Dict[str, Any]] = None, - **kwargs + self, *, additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(SearchResult, self).__init__(**kwargs) self.additional_properties = additional_properties @@ -1043,19 +1009,16 @@ class SuggestDocumentsResult(msrest.serialization.Model): """ _validation = { - 'results': {'required': True, 'readonly': True}, - 'coverage': {'readonly': True}, + "results": {"required": True, "readonly": True}, + "coverage": {"readonly": True}, } _attribute_map = { - 'results': {'key': 'value', 'type': '[SuggestResult]'}, - 'coverage': {'key': '@search\\.coverage', 'type': 'float'}, + "results": {"key": "value", "type": "[SuggestResult]"}, + "coverage": {"key": "@search\\.coverage", "type": "float"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(SuggestDocumentsResult, self).__init__(**kwargs) self.results = None self.coverage = None @@ -1102,15 +1065,15 @@ class SuggestOptions(msrest.serialization.Model): """ _attribute_map = { - 'filter': {'key': '$filter', 'type': 'str'}, - 'use_fuzzy_matching': {'key': 'UseFuzzyMatching', 'type': 'bool'}, - 'highlight_post_tag': {'key': 'highlightPostTag', 'type': 'str'}, - 'highlight_pre_tag': {'key': 'highlightPreTag', 'type': 'str'}, - 'minimum_coverage': {'key': 'minimumCoverage', 'type': 'float'}, - 'order_by': {'key': 'OrderBy', 'type': '[str]'}, - 'search_fields': {'key': 'searchFields', 'type': '[str]'}, - 'select': {'key': '$select', 'type': '[str]'}, - 'top': {'key': '$top', 'type': 'int'}, + "filter": {"key": "$filter", "type": "str"}, + "use_fuzzy_matching": {"key": "UseFuzzyMatching", "type": "bool"}, + "highlight_post_tag": {"key": "highlightPostTag", "type": "str"}, + "highlight_pre_tag": {"key": "highlightPreTag", "type": "str"}, + "minimum_coverage": {"key": "minimumCoverage", "type": "float"}, + "order_by": {"key": "OrderBy", "type": "[str]"}, + "search_fields": {"key": "searchFields", "type": "[str]"}, + "select": {"key": "$select", "type": "[str]"}, + "top": {"key": "$top", "type": "int"}, } def __init__( @@ -1188,22 +1151,22 @@ class SuggestRequest(msrest.serialization.Model): """ _validation = { - 'search_text': {'required': True}, - 'suggester_name': {'required': True}, + "search_text": {"required": True}, + "suggester_name": {"required": True}, } _attribute_map = { - 'filter': {'key': 'filter', 'type': 'str'}, - 'use_fuzzy_matching': {'key': 'fuzzy', 'type': 'bool'}, - 'highlight_post_tag': {'key': 'highlightPostTag', 'type': 'str'}, - 'highlight_pre_tag': {'key': 'highlightPreTag', 'type': 'str'}, - 'minimum_coverage': {'key': 'minimumCoverage', 'type': 'float'}, - 'order_by': {'key': 'orderby', 'type': 'str'}, - 'search_text': {'key': 'search', 'type': 'str'}, - 'search_fields': {'key': 'searchFields', 'type': 'str'}, - 'select': {'key': 'select', 'type': 'str'}, - 'suggester_name': {'key': 'suggesterName', 'type': 'str'}, - 'top': {'key': 'top', 'type': 'int'}, + "filter": {"key": "filter", "type": "str"}, + "use_fuzzy_matching": {"key": "fuzzy", "type": "bool"}, + "highlight_post_tag": {"key": "highlightPostTag", "type": "str"}, + "highlight_pre_tag": {"key": "highlightPreTag", "type": "str"}, + "minimum_coverage": {"key": "minimumCoverage", "type": "float"}, + "order_by": {"key": "orderby", "type": "str"}, + "search_text": {"key": "search", "type": "str"}, + "search_fields": {"key": "searchFields", "type": "str"}, + "select": {"key": "select", "type": "str"}, + "suggester_name": {"key": "suggesterName", "type": "str"}, + "top": {"key": "top", "type": "int"}, } def __init__( @@ -1251,19 +1214,16 @@ class SuggestResult(msrest.serialization.Model): """ _validation = { - 'text': {'required': True, 'readonly': True}, + "text": {"required": True, "readonly": True}, } _attribute_map = { - 'additional_properties': {'key': '', 'type': '{object}'}, - 'text': {'key': '@search\\.text', 'type': 'str'}, + "additional_properties": {"key": "", "type": "{object}"}, + "text": {"key": "@search\\.text", "type": "str"}, } def __init__( - self, - *, - additional_properties: Optional[Dict[str, Any]] = None, - **kwargs + self, *, additional_properties: Optional[Dict[str, Any]] = None, **kwargs ): super(SuggestResult, self).__init__(**kwargs) self.additional_properties = additional_properties diff --git a/sdk/search/azure-search-documents/azure/search/documents/_generated/models/_search_client_enums.py b/sdk/search/azure-search-documents/azure/search/documents/_generated/models/_search_client_enums.py index c49117818f8e..ae3ba07621bf 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_generated/models/_search_client_enums.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_generated/models/_search_client_enums.py @@ -9,6 +9,7 @@ from enum import Enum, EnumMeta from six import with_metaclass + class _CaseInsensitiveEnumMeta(EnumMeta): def __getitem__(self, name): return super().__getitem__(name.upper()) @@ -40,6 +41,7 @@ class Answers(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): #: expressed as a question in natural language. EXTRACTIVE = "extractive" + class AutocompleteMode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context in producing autocomplete terms. @@ -57,6 +59,7 @@ class AutocompleteMode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): #: terms could include 'washington medicaid' and 'washington medical'. ONE_TERM_WITH_CONTEXT = "oneTermWithContext" + class Captions(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """This parameter is only valid if the query type is 'semantic'. If set, the query returns captions extracted from key passages in the highest ranked documents. When Captions is set to @@ -71,9 +74,9 @@ class Captions(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): #: query. EXTRACTIVE = "extractive" + class IndexActionType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """The operation to perform on a document in an indexing batch. - """ + """The operation to perform on a document in an indexing batch.""" #: Inserts the document into the index if it is new and updates it if it exists. All fields are #: replaced in the update case. @@ -90,15 +93,16 @@ class IndexActionType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): #: document, use merge instead and set the field explicitly to null. DELETE = "delete" + class QueryLanguage(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """The language of the query. - """ + """The language of the query.""" #: Query language not specified. NONE = "none" #: English. EN_US = "en-us" + class QueryType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax and 'semantic' if query syntax is not needed. @@ -117,6 +121,7 @@ class QueryType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): #: on the Web corpus. SEMANTIC = "semantic" + class ScoringStatistics(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency. The default is @@ -129,6 +134,7 @@ class ScoringStatistics(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): #: The scoring statistics will be calculated globally for more consistent scoring. GLOBAL_ENUM = "global" + class SearchMode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Specifies whether any or all of the search terms must be matched in order to count the document as a match. @@ -139,9 +145,9 @@ class SearchMode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): #: All of the search terms must be matched in order to count the document as a match. ALL = "all" + class Speller(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Improve search recall by spell-correcting individual search query terms. - """ + """Improve search recall by spell-correcting individual search query terms.""" #: Speller not enabled. NONE = "none" diff --git a/sdk/search/azure-search-documents/azure/search/documents/_generated/operations/__init__.py b/sdk/search/azure-search-documents/azure/search/documents/_generated/operations/__init__.py index 76022eb9d305..b0e711ee0870 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_generated/operations/__init__.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_generated/operations/__init__.py @@ -9,5 +9,5 @@ from ._documents_operations import DocumentsOperations __all__ = [ - 'DocumentsOperations', + "DocumentsOperations", ] diff --git a/sdk/search/azure-search-documents/azure/search/documents/_generated/operations/_documents_operations.py b/sdk/search/azure-search-documents/azure/search/documents/_generated/operations/_documents_operations.py index 9a2c4cda4ee8..7891f4269cab 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_generated/operations/_documents_operations.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_generated/operations/_documents_operations.py @@ -8,7 +8,13 @@ from typing import TYPE_CHECKING import warnings -from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + map_error, +) from azure.core.pipeline import PipelineResponse from azure.core.pipeline.transport import HttpRequest, HttpResponse @@ -18,8 +24,11 @@ # pylint: disable=unused-import,ungrouped-imports from typing import Any, Callable, Dict, Generic, List, Optional, TypeVar, Union - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + T = TypeVar("T") + ClsType = Optional[ + Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any] + ] + class DocumentsOperations(object): """DocumentsOperations operations. @@ -58,12 +67,14 @@ def count( :rtype: long :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType[int] + cls = kwargs.pop("cls", None) # type: ClsType[int] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _x_ms_client_request_id = None if request_options is not None: _x_ms_client_request_id = request_options.x_ms_client_request_id @@ -71,39 +82,52 @@ def count( accept = "application/json" # Construct URL - url = self.count.metadata['url'] # type: ignore + url = self.count.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_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') + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) - deserialized = self._deserialize('long', pipeline_response) + deserialized = self._deserialize("long", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - count.metadata = {'url': '/docs/$count'} # type: ignore + + count.metadata = {"url": "/docs/$count"} # type: ignore def search_get( self, @@ -127,12 +151,14 @@ def search_get( :rtype: ~azure.search.documents.models.SearchDocumentsResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.SearchDocumentsResult"] + cls = kwargs.pop("cls", None) # type: ClsType["_models.SearchDocumentsResult"] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _include_total_result_count = None _facets = None _filter = None @@ -187,87 +213,148 @@ def search_get( accept = "application/json" # Construct URL - url = self.search_get.metadata['url'] # type: ignore + url = self.search_get.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_name, "str" + ), } url = self._client.format_url(url, **path_format_arguments) # Construct parameters query_parameters = {} # type: Dict[str, Any] if search_text is not None: - query_parameters['search'] = self._serialize.query("search_text", search_text, 'str') + query_parameters["search"] = self._serialize.query( + "search_text", search_text, "str" + ) if _include_total_result_count is not None: - query_parameters['$count'] = self._serialize.query("include_total_result_count", _include_total_result_count, 'bool') + query_parameters["$count"] = self._serialize.query( + "include_total_result_count", _include_total_result_count, "bool" + ) if _facets is not None: - query_parameters['facet'] = [self._serialize.query("facets", q, 'str') if q is not None else '' for q in _facets] + query_parameters["facet"] = [ + self._serialize.query("facets", q, "str") if q is not None else "" + for q in _facets + ] if _filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", _filter, 'str') + query_parameters["$filter"] = self._serialize.query( + "filter", _filter, "str" + ) if _highlight_fields is not None: - query_parameters['highlight'] = self._serialize.query("highlight_fields", _highlight_fields, '[str]', div=',') + query_parameters["highlight"] = self._serialize.query( + "highlight_fields", _highlight_fields, "[str]", div="," + ) if _highlight_post_tag is not None: - query_parameters['highlightPostTag'] = self._serialize.query("highlight_post_tag", _highlight_post_tag, 'str') + query_parameters["highlightPostTag"] = self._serialize.query( + "highlight_post_tag", _highlight_post_tag, "str" + ) if _highlight_pre_tag is not None: - query_parameters['highlightPreTag'] = self._serialize.query("highlight_pre_tag", _highlight_pre_tag, 'str') + query_parameters["highlightPreTag"] = self._serialize.query( + "highlight_pre_tag", _highlight_pre_tag, "str" + ) if _minimum_coverage is not None: - query_parameters['minimumCoverage'] = self._serialize.query("minimum_coverage", _minimum_coverage, 'float') + query_parameters["minimumCoverage"] = self._serialize.query( + "minimum_coverage", _minimum_coverage, "float" + ) if _order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", _order_by, '[str]', div=',') + query_parameters["$orderby"] = self._serialize.query( + "order_by", _order_by, "[str]", div="," + ) if _query_type is not None: - query_parameters['queryType'] = self._serialize.query("query_type", _query_type, 'str') + query_parameters["queryType"] = self._serialize.query( + "query_type", _query_type, "str" + ) if _scoring_parameters is not None: - query_parameters['scoringParameter'] = [self._serialize.query("scoring_parameters", q, 'str') if q is not None else '' for q in _scoring_parameters] + query_parameters["scoringParameter"] = [ + self._serialize.query("scoring_parameters", q, "str") + if q is not None + else "" + for q in _scoring_parameters + ] if _scoring_profile is not None: - query_parameters['scoringProfile'] = self._serialize.query("scoring_profile", _scoring_profile, 'str') + query_parameters["scoringProfile"] = self._serialize.query( + "scoring_profile", _scoring_profile, "str" + ) if _search_fields is not None: - query_parameters['searchFields'] = self._serialize.query("search_fields", _search_fields, '[str]', div=',') + query_parameters["searchFields"] = self._serialize.query( + "search_fields", _search_fields, "[str]", div="," + ) if _query_language is not None: - query_parameters['queryLanguage'] = self._serialize.query("query_language", _query_language, 'str') + query_parameters["queryLanguage"] = self._serialize.query( + "query_language", _query_language, "str" + ) if _speller is not None: - query_parameters['speller'] = self._serialize.query("speller", _speller, 'str') + query_parameters["speller"] = self._serialize.query( + "speller", _speller, "str" + ) if _answers is not None: - query_parameters['answers'] = self._serialize.query("answers", _answers, 'str') + query_parameters["answers"] = self._serialize.query( + "answers", _answers, "str" + ) if _search_mode is not None: - query_parameters['searchMode'] = self._serialize.query("search_mode", _search_mode, 'str') + query_parameters["searchMode"] = self._serialize.query( + "search_mode", _search_mode, "str" + ) if _scoring_statistics is not None: - query_parameters['scoringStatistics'] = self._serialize.query("scoring_statistics", _scoring_statistics, 'str') + query_parameters["scoringStatistics"] = self._serialize.query( + "scoring_statistics", _scoring_statistics, "str" + ) if _session_id is not None: - query_parameters['sessionId'] = self._serialize.query("session_id", _session_id, 'str') + query_parameters["sessionId"] = self._serialize.query( + "session_id", _session_id, "str" + ) if _select is not None: - query_parameters['$select'] = self._serialize.query("select", _select, '[str]', div=',') + query_parameters["$select"] = self._serialize.query( + "select", _select, "[str]", div="," + ) if _skip is not None: - query_parameters['$skip'] = self._serialize.query("skip", _skip, 'int') + query_parameters["$skip"] = self._serialize.query("skip", _skip, "int") if _top is not None: - query_parameters['$top'] = self._serialize.query("top", _top, 'int') + query_parameters["$top"] = self._serialize.query("top", _top, "int") if _captions is not None: - query_parameters['captions'] = self._serialize.query("captions", _captions, 'str') + query_parameters["captions"] = self._serialize.query( + "captions", _captions, "str" + ) if _semantic_fields is not None: - query_parameters['semanticFields'] = self._serialize.query("semantic_fields", _semantic_fields, '[str]', div=',') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + query_parameters["semanticFields"] = self._serialize.query( + "semantic_fields", _semantic_fields, "[str]", div="," + ) + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) - deserialized = self._deserialize('SearchDocumentsResult', pipeline_response) + deserialized = self._deserialize("SearchDocumentsResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - search_get.metadata = {'url': '/docs'} # type: ignore + + search_get.metadata = {"url": "/docs"} # type: ignore def search_post( self, @@ -287,12 +374,14 @@ def search_post( :rtype: ~azure.search.documents.models.SearchDocumentsResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.SearchDocumentsResult"] + cls = kwargs.pop("cls", None) # type: ClsType["_models.SearchDocumentsResult"] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _x_ms_client_request_id = None if request_options is not None: _x_ms_client_request_id = request_options.x_ms_client_request_id @@ -301,43 +390,60 @@ def search_post( accept = "application/json" # Construct URL - url = self.search_post.metadata['url'] # type: ignore + url = self.search_post.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_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') + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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(search_request, 'SearchRequest') - body_content_kwargs['content'] = body_content - request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + body_content = self._serialize.body(search_request, "SearchRequest") + 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) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) - deserialized = self._deserialize('SearchDocumentsResult', pipeline_response) + deserialized = self._deserialize("SearchDocumentsResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - search_post.metadata = {'url': '/docs/search.post.search'} # type: ignore + + search_post.metadata = {"url": "/docs/search.post.search"} # type: ignore def get( self, @@ -361,12 +467,14 @@ def get( :rtype: any :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType[Any] + cls = kwargs.pop("cls", None) # type: ClsType[Any] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _x_ms_client_request_id = None if request_options is not None: _x_ms_client_request_id = request_options.x_ms_client_request_id @@ -374,42 +482,57 @@ def get( accept = "application/json" # Construct URL - url = self.get.metadata['url'] # type: ignore + url = self.get.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), - 'key': self._serialize.url("key", key, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_name, "str" + ), + "key": self._serialize.url("key", key, "str"), } url = self._client.format_url(url, **path_format_arguments) # Construct parameters query_parameters = {} # type: Dict[str, Any] if selected_fields is not None: - query_parameters['$select'] = self._serialize.query("selected_fields", selected_fields, '[str]', div=',') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + query_parameters["$select"] = self._serialize.query( + "selected_fields", selected_fields, "[str]", div="," + ) + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) - deserialized = self._deserialize('object', pipeline_response) + deserialized = self._deserialize("object", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {'url': '/docs(\'{key}\')'} # type: ignore + + get.metadata = {"url": "/docs('{key}')"} # type: ignore def suggest_get( self, @@ -437,12 +560,14 @@ def suggest_get( :rtype: ~azure.search.documents.models.SuggestDocumentsResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.SuggestDocumentsResult"] + cls = kwargs.pop("cls", None) # type: ClsType["_models.SuggestDocumentsResult"] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _filter = None _use_fuzzy_matching = None _highlight_post_tag = None @@ -469,59 +594,92 @@ def suggest_get( accept = "application/json" # Construct URL - url = self.suggest_get.metadata['url'] # type: ignore + url = self.suggest_get.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_name, "str" + ), } url = self._client.format_url(url, **path_format_arguments) # Construct parameters query_parameters = {} # type: Dict[str, Any] - query_parameters['search'] = self._serialize.query("search_text", search_text, 'str') - query_parameters['suggesterName'] = self._serialize.query("suggester_name", suggester_name, 'str') + query_parameters["search"] = self._serialize.query( + "search_text", search_text, "str" + ) + query_parameters["suggesterName"] = self._serialize.query( + "suggester_name", suggester_name, "str" + ) if _filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", _filter, 'str') + query_parameters["$filter"] = self._serialize.query( + "filter", _filter, "str" + ) if _use_fuzzy_matching is not None: - query_parameters['fuzzy'] = self._serialize.query("use_fuzzy_matching", _use_fuzzy_matching, 'bool') + query_parameters["fuzzy"] = self._serialize.query( + "use_fuzzy_matching", _use_fuzzy_matching, "bool" + ) if _highlight_post_tag is not None: - query_parameters['highlightPostTag'] = self._serialize.query("highlight_post_tag", _highlight_post_tag, 'str') + query_parameters["highlightPostTag"] = self._serialize.query( + "highlight_post_tag", _highlight_post_tag, "str" + ) if _highlight_pre_tag is not None: - query_parameters['highlightPreTag'] = self._serialize.query("highlight_pre_tag", _highlight_pre_tag, 'str') + query_parameters["highlightPreTag"] = self._serialize.query( + "highlight_pre_tag", _highlight_pre_tag, "str" + ) if _minimum_coverage is not None: - query_parameters['minimumCoverage'] = self._serialize.query("minimum_coverage", _minimum_coverage, 'float') + query_parameters["minimumCoverage"] = self._serialize.query( + "minimum_coverage", _minimum_coverage, "float" + ) if _order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", _order_by, '[str]', div=',') + query_parameters["$orderby"] = self._serialize.query( + "order_by", _order_by, "[str]", div="," + ) if _search_fields is not None: - query_parameters['searchFields'] = self._serialize.query("search_fields", _search_fields, '[str]', div=',') + query_parameters["searchFields"] = self._serialize.query( + "search_fields", _search_fields, "[str]", div="," + ) if _select is not None: - query_parameters['$select'] = self._serialize.query("select", _select, '[str]', div=',') + query_parameters["$select"] = self._serialize.query( + "select", _select, "[str]", div="," + ) if _top is not None: - query_parameters['$top'] = self._serialize.query("top", _top, 'int') - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + query_parameters["$top"] = self._serialize.query("top", _top, "int") + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) - deserialized = self._deserialize('SuggestDocumentsResult', pipeline_response) + deserialized = self._deserialize("SuggestDocumentsResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - suggest_get.metadata = {'url': '/docs/search.suggest'} # type: ignore + + suggest_get.metadata = {"url": "/docs/search.suggest"} # type: ignore def suggest_post( self, @@ -541,12 +699,14 @@ def suggest_post( :rtype: ~azure.search.documents.models.SuggestDocumentsResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.SuggestDocumentsResult"] + cls = kwargs.pop("cls", None) # type: ClsType["_models.SuggestDocumentsResult"] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _x_ms_client_request_id = None if request_options is not None: _x_ms_client_request_id = request_options.x_ms_client_request_id @@ -555,43 +715,60 @@ def suggest_post( accept = "application/json" # Construct URL - url = self.suggest_post.metadata['url'] # type: ignore + url = self.suggest_post.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_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') + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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(suggest_request, 'SuggestRequest') - body_content_kwargs['content'] = body_content - request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + body_content = self._serialize.body(suggest_request, "SuggestRequest") + 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) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) - deserialized = self._deserialize('SuggestDocumentsResult', pipeline_response) + deserialized = self._deserialize("SuggestDocumentsResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - suggest_post.metadata = {'url': '/docs/search.post.suggest'} # type: ignore + + suggest_post.metadata = {"url": "/docs/search.post.suggest"} # type: ignore def index( self, @@ -611,12 +788,14 @@ def index( :rtype: ~azure.search.documents.models.IndexDocumentsResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.IndexDocumentsResult"] + cls = kwargs.pop("cls", None) # type: ClsType["_models.IndexDocumentsResult"] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _x_ms_client_request_id = None if request_options is not None: _x_ms_client_request_id = request_options.x_ms_client_request_id @@ -627,47 +806,64 @@ def index( accept = "application/json" # Construct URL - url = self.index.metadata['url'] # type: ignore + url = self.index.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_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') + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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(_batch, 'IndexBatch') - body_content_kwargs['content'] = body_content - request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + body_content = self._serialize.body(_batch, "IndexBatch") + 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, 207]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) if response.status_code == 200: - deserialized = self._deserialize('IndexDocumentsResult', pipeline_response) + deserialized = self._deserialize("IndexDocumentsResult", pipeline_response) if response.status_code == 207: - deserialized = self._deserialize('IndexDocumentsResult', pipeline_response) + deserialized = self._deserialize("IndexDocumentsResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - index.metadata = {'url': '/docs/search.index'} # type: ignore + + index.metadata = {"url": "/docs/search.index"} # type: ignore def autocomplete_get( self, @@ -694,12 +890,14 @@ def autocomplete_get( :rtype: ~azure.search.documents.models.AutocompleteResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.AutocompleteResult"] + cls = kwargs.pop("cls", None) # type: ClsType["_models.AutocompleteResult"] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _x_ms_client_request_id = None _autocomplete_mode = None _filter = None @@ -724,57 +922,88 @@ def autocomplete_get( accept = "application/json" # Construct URL - url = self.autocomplete_get.metadata['url'] # type: ignore + url = self.autocomplete_get.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_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') - query_parameters['search'] = self._serialize.query("search_text", search_text, 'str') - query_parameters['suggesterName'] = self._serialize.query("suggester_name", suggester_name, 'str') + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) + query_parameters["search"] = self._serialize.query( + "search_text", search_text, "str" + ) + query_parameters["suggesterName"] = self._serialize.query( + "suggester_name", suggester_name, "str" + ) if _autocomplete_mode is not None: - query_parameters['autocompleteMode'] = self._serialize.query("autocomplete_mode", _autocomplete_mode, 'str') + query_parameters["autocompleteMode"] = self._serialize.query( + "autocomplete_mode", _autocomplete_mode, "str" + ) if _filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", _filter, 'str') + query_parameters["$filter"] = self._serialize.query( + "filter", _filter, "str" + ) if _use_fuzzy_matching is not None: - query_parameters['fuzzy'] = self._serialize.query("use_fuzzy_matching", _use_fuzzy_matching, 'bool') + query_parameters["fuzzy"] = self._serialize.query( + "use_fuzzy_matching", _use_fuzzy_matching, "bool" + ) if _highlight_post_tag is not None: - query_parameters['highlightPostTag'] = self._serialize.query("highlight_post_tag", _highlight_post_tag, 'str') + query_parameters["highlightPostTag"] = self._serialize.query( + "highlight_post_tag", _highlight_post_tag, "str" + ) if _highlight_pre_tag is not None: - query_parameters['highlightPreTag'] = self._serialize.query("highlight_pre_tag", _highlight_pre_tag, 'str') + query_parameters["highlightPreTag"] = self._serialize.query( + "highlight_pre_tag", _highlight_pre_tag, "str" + ) if _minimum_coverage is not None: - query_parameters['minimumCoverage'] = self._serialize.query("minimum_coverage", _minimum_coverage, 'float') + query_parameters["minimumCoverage"] = self._serialize.query( + "minimum_coverage", _minimum_coverage, "float" + ) if _search_fields is not None: - query_parameters['searchFields'] = self._serialize.query("search_fields", _search_fields, '[str]', div=',') + query_parameters["searchFields"] = self._serialize.query( + "search_fields", _search_fields, "[str]", div="," + ) if _top is not None: - query_parameters['$top'] = self._serialize.query("top", _top, 'int') + query_parameters["$top"] = self._serialize.query("top", _top, "int") # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) - deserialized = self._deserialize('AutocompleteResult', pipeline_response) + deserialized = self._deserialize("AutocompleteResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - autocomplete_get.metadata = {'url': '/docs/search.autocomplete'} # type: ignore + + autocomplete_get.metadata = {"url": "/docs/search.autocomplete"} # type: ignore def autocomplete_post( self, @@ -794,12 +1023,14 @@ def autocomplete_post( :rtype: ~azure.search.documents.models.AutocompleteResult :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["_models.AutocompleteResult"] + cls = kwargs.pop("cls", None) # type: ClsType["_models.AutocompleteResult"] error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, } - error_map.update(kwargs.pop('error_map', {})) - + error_map.update(kwargs.pop("error_map", {})) + _x_ms_client_request_id = None if request_options is not None: _x_ms_client_request_id = request_options.x_ms_client_request_id @@ -808,40 +1039,57 @@ def autocomplete_post( accept = "application/json" # Construct URL - url = self.autocomplete_post.metadata['url'] # type: ignore + url = self.autocomplete_post.metadata["url"] # type: ignore path_format_arguments = { - 'endpoint': self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), - 'indexName': self._serialize.url("self._config.index_name", self._config.index_name, 'str'), + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + "indexName": self._serialize.url( + "self._config.index_name", self._config.index_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') + query_parameters["api-version"] = self._serialize.query( + "api_version", api_version, "str" + ) # Construct headers header_parameters = {} # type: Dict[str, Any] if _x_ms_client_request_id is not None: - header_parameters['x-ms-client-request-id'] = self._serialize.header("x_ms_client_request_id", _x_ms_client_request_id, 'str') - header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "x_ms_client_request_id", _x_ms_client_request_id, "str" + ) + 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(autocomplete_request, 'AutocompleteRequest') - body_content_kwargs['content'] = body_content - request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + body_content = self._serialize.body(autocomplete_request, "AutocompleteRequest") + 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) - error = self._deserialize.failsafe_deserialize(_models.SearchError, response) + map_error( + status_code=response.status_code, response=response, error_map=error_map + ) + error = self._deserialize.failsafe_deserialize( + _models.SearchError, response + ) raise HttpResponseError(response=response, model=error) - deserialized = self._deserialize('AutocompleteResult', pipeline_response) + deserialized = self._deserialize("AutocompleteResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - autocomplete_post.metadata = {'url': '/docs/search.post.autocomplete'} # type: ignore + + autocomplete_post.metadata = {"url": "/docs/search.post.autocomplete"} # type: ignore diff --git a/sdk/search/azure-search-documents/azure/search/documents/_index_documents_batch.py b/sdk/search/azure-search-documents/azure/search/documents/_index_documents_batch.py index c33bc4fd8eb2..373900081327 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_index_documents_batch.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_index_documents_batch.py @@ -54,7 +54,9 @@ def add_upload_actions(self, *documents): """ return self._extend_batch(_flatten_args(documents), "upload") - def add_delete_actions(self, *documents, **kwargs): # pylint: disable=unused-argument + def add_delete_actions( + self, *documents, **kwargs + ): # pylint: disable=unused-argument # type (Union[List[dict], List[List[dict]]]) -> List[IndexAction] """Add documents to delete to the Azure search index. @@ -75,7 +77,9 @@ def add_delete_actions(self, *documents, **kwargs): # pylint: disable=unused-ar """ return self._extend_batch(_flatten_args(documents), "delete") - def add_merge_actions(self, *documents, **kwargs): # pylint: disable=unused-argument + def add_merge_actions( + self, *documents, **kwargs + ): # pylint: disable=unused-argument # type (Union[List[dict], List[List[dict]]]) -> List[IndexAction] """Add documents to merge in to existing documets in the Azure search index. @@ -93,7 +97,9 @@ def add_merge_actions(self, *documents, **kwargs): # pylint: disable=unused-arg """ return self._extend_batch(_flatten_args(documents), "merge") - def add_merge_or_upload_actions(self, *documents, **kwargs): # pylint: disable=unused-argument + def add_merge_or_upload_actions( + self, *documents, **kwargs + ): # pylint: disable=unused-argument # type (Union[List[dict], List[List[dict]]]) -> List[IndexAction] """Add documents to merge in to existing documets in the Azure search index, or upload if they do not yet exist. @@ -133,8 +139,7 @@ def dequeue_actions(self, **kwargs): # pylint: disable=unused-argument def enqueue_actions(self, new_actions, **kwargs): # pylint: disable=unused-argument # type: (Union[IndexAction, List[IndexAction]]) -> None - """Enqueue a list of index actions to index. - """ + """Enqueue a list of index actions to index.""" if isinstance(new_actions, IndexAction): with self._lock: self._actions.append(new_actions) diff --git a/sdk/search/azure-search-documents/azure/search/documents/_paging.py b/sdk/search/azure-search-documents/azure/search/documents/_paging.py index 22386285be7d..8d7030c95ebe 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_paging.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_paging.py @@ -63,9 +63,7 @@ def _first_iterator_instance(self): def get_facets(self): # type: () -> Union[dict, None] - """Return any facet results if faceting was requested. - - """ + """Return any facet results if faceting was requested.""" return self._first_iterator_instance().get_facets() def get_coverage(self): @@ -89,6 +87,7 @@ def get_answers(self): """Return answers.""" return self._first_iterator_instance().get_answers() + # The pylint error silenced below seems spurious, as the inner wrapper does, in # fact, become a method of the class when it is applied. def _ensure_response(f): @@ -125,10 +124,14 @@ def _get_next_cb(self, continuation_token): _next_link, next_page_request = unpack_continuation_token(continuation_token) - return self._client.documents.search_post(search_request=next_page_request, **self._kwargs) + return self._client.documents.search_post( + search_request=next_page_request, **self._kwargs + ) def _extract_data_cb(self, response): # pylint:disable=no-self-use - continuation_token = pack_continuation_token(response, api_version=self._api_version) + continuation_token = pack_continuation_token( + response, api_version=self._api_version + ) results = [convert_search_result(r) for r in response.results] return continuation_token, results diff --git a/sdk/search/azure-search-documents/azure/search/documents/_queries.py b/sdk/search/azure-search-documents/azure/search/documents/_queries.py index 14a3d3c87115..8de0195a7f28 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_queries.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_queries.py @@ -39,16 +39,12 @@ def filter(self, expression): @property def request(self): - """The service request for this operation. - - """ + """The service request for this operation.""" return self._request class AutocompleteQuery(_QueryBase): - """Represent an autocomplete query again an Azure Search index. - - """ + """Represent an autocomplete query again an Azure Search index.""" _request_type = AutocompleteRequest @@ -56,9 +52,7 @@ class AutocompleteQuery(_QueryBase): class SearchQuery(_QueryBase): - """Represent a rich search query again an Azure Search index. - - """ + """Represent a rich search query again an Azure Search index.""" _request_type = SearchRequest @@ -97,9 +91,7 @@ def select(self, *fields): class SuggestQuery(_QueryBase): - """Represent a search suggestion query again an Azure Search index. - - """ + """Represent a search suggestion query again an Azure Search index.""" _request_type = SuggestRequest diff --git a/sdk/search/azure-search-documents/azure/search/documents/_search_client.py b/sdk/search/azure-search-documents/azure/search/documents/_search_client.py index e50c56c60c4a..27853cd783cb 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_search_client.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_search_client.py @@ -89,7 +89,8 @@ def __init__(self, endpoint, index_name, credential, **kwargs): endpoint=endpoint, index_name=index_name, sdk_moniker=SDK_MONIKER, - api_version=self._api_version, **kwargs + api_version=self._api_version, + **kwargs ) # type: SearchIndexClient else: self._aad = True @@ -99,7 +100,8 @@ def __init__(self, endpoint, index_name, credential, **kwargs): index_name=index_name, authentication_policy=authentication_policy, sdk_moniker=SDK_MONIKER, - api_version=self._api_version, **kwargs + api_version=self._api_version, + **kwargs ) # type: SearchIndexClient def __repr__(self): @@ -110,9 +112,7 @@ def __repr__(self): def close(self): # type: () -> None - """Close the :class:`~azure.search.documents.SearchClient` session. - - """ + """Close the :class:`~azure.search.documents.SearchClient` session.""" return self._client.close() @distributed_trace @@ -284,7 +284,7 @@ def search(self, search_text, **kwargs): answers=answers, select=select if isinstance(select, six.string_types) else None, skip=skip, - top=top + top=top, ) if isinstance(select, list): query.select(select) @@ -362,7 +362,7 @@ def suggest(self, search_text, suggester_name, **kwargs): order_by=order_by, search_fields=search_fields_str, select=select if isinstance(select, six.string_types) else None, - top=top + top=top, ) if isinstance(select, list): query.select(select) @@ -434,7 +434,7 @@ def autocomplete(self, search_text, suggester_name, **kwargs): highlight_pre_tag=highlight_pre_tag, minimum_coverage=minimum_coverage, search_fields=search_fields_str, - top=top + top=top, ) kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) @@ -572,28 +572,30 @@ def _index_documents_actions(self, actions, **kwargs): kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) try: - batch_response = self._client.documents.index(actions=actions, error_map=error_map, **kwargs) + batch_response = self._client.documents.index( + actions=actions, error_map=error_map, **kwargs + ) return cast(List[IndexingResult], batch_response.results) except RequestEntityTooLargeError: if len(actions) == 1: raise pos = round(len(actions) / 2) batch_response_first_half = self._index_documents_actions( - actions=actions[:pos], - error_map=error_map, - **kwargs + actions=actions[:pos], error_map=error_map, **kwargs ) if batch_response_first_half: - result_first_half = cast(List[IndexingResult], batch_response_first_half.results) + result_first_half = cast( + List[IndexingResult], batch_response_first_half.results + ) else: result_first_half = [] batch_response_second_half = self._index_documents_actions( - actions=actions[pos:], - error_map=error_map, - **kwargs + actions=actions[pos:], error_map=error_map, **kwargs ) if batch_response_second_half: - result_second_half = cast(List[IndexingResult], batch_response_second_half.results) + result_second_half = cast( + List[IndexingResult], batch_response_second_half.results + ) else: result_second_half = [] return result_first_half.extend(result_second_half) diff --git a/sdk/search/azure-search-documents/azure/search/documents/_search_documents_error.py b/sdk/search/azure-search-documents/azure/search/documents/_search_documents_error.py index 9ff0274de18c..fdcec1b4f7b2 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_search_documents_error.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_search_documents_error.py @@ -5,5 +5,6 @@ # ------------------------------------------------------------------------- from azure.core.exceptions import HttpResponseError + class RequestEntityTooLargeError(HttpResponseError): """An error response with status code 413 - Request Entity Too Large""" diff --git a/sdk/search/azure-search-documents/azure/search/documents/_search_indexing_buffered_sender.py b/sdk/search/azure-search-documents/azure/search/documents/_search_indexing_buffered_sender.py index 98cfbad49572..caa03eb76e88 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_search_indexing_buffered_sender.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_search_indexing_buffered_sender.py @@ -25,6 +25,7 @@ from typing import Any, Union from azure.core.credentials import TokenCredential + class SearchIndexingBufferedSender(SearchIndexingBufferedSenderBase, HeadersMixin): """A buffered sender for document indexing actions. @@ -50,15 +51,14 @@ class SearchIndexingBufferedSender(SearchIndexingBufferedSenderBase, HeadersMixi thread or a worker thread. :keyword str api_version: The Search API version to use for requests. """ + # pylint: disable=too-many-instance-attributes def __init__(self, endpoint, index_name, credential, **kwargs): # type: (str, str, Union[AzureKeyCredential, TokenCredential], **Any) -> None super(SearchIndexingBufferedSender, self).__init__( - endpoint=endpoint, - index_name=index_name, - credential=credential, - **kwargs) + endpoint=endpoint, index_name=index_name, credential=credential, **kwargs + ) self._index_documents_batch = IndexDocumentsBatch() if isinstance(credential, AzureKeyCredential): self._aad = False @@ -66,7 +66,8 @@ def __init__(self, endpoint, index_name, credential, **kwargs): endpoint=endpoint, index_name=index_name, sdk_moniker=SDK_MONIKER, - api_version=self._api_version, **kwargs + api_version=self._api_version, + **kwargs ) # type: SearchIndexClient else: self._aad = True @@ -76,7 +77,8 @@ def __init__(self, endpoint, index_name, credential, **kwargs): index_name=index_name, authentication_policy=authentication_policy, sdk_moniker=SDK_MONIKER, - api_version=self._api_version, **kwargs + api_version=self._api_version, + **kwargs ) # type: SearchIndexClient self._reset_timer() @@ -115,7 +117,7 @@ def close(self, **kwargs): # pylint: disable=unused-argument return self._client.close() @distributed_trace - def flush(self, timeout=86400, **kwargs): # pylint:disable=unused-argument + def flush(self, timeout=86400, **kwargs): # pylint:disable=unused-argument # type: (int) -> bool """Flush the batch. @@ -163,7 +165,11 @@ def _process(self, timeout=86400, **kwargs): results = self._index_documents_actions(actions=actions, timeout=timeout) for result in results: try: - action = next(x for x in actions if x.additional_properties.get(self._index_key) == result.key) + action = next( + x + for x in actions + if x.additional_properties.get(self._index_key) == result.key + ) if result.succeeded: self._callback_succeed(action) elif is_retryable_status_code(result.status_code): @@ -184,10 +190,10 @@ def _process(self, timeout=86400, **kwargs): def _process_if_needed(self): # type: () -> bool - """ Every time when a new action is queued, this method - will be triggered. It checks the actions already queued and flushes them if: - 1. Auto_flush is on - 2. There are self._batch_action_count actions queued + """Every time when a new action is queued, this method + will be triggered. It checks the actions already queued and flushes them if: + 1. Auto_flush is on + 2. There are self._batch_action_count actions queued """ if not self._auto_flush: return @@ -244,7 +250,9 @@ def merge_documents(self, documents, **kwargs): # pylint: disable=unused-argume self._process_if_needed() @distributed_trace - def merge_or_upload_documents(self, documents, **kwargs): # pylint: disable=unused-argument + def merge_or_upload_documents( + self, documents, **kwargs + ): # pylint: disable=unused-argument # type: (List[dict]) -> None """Queue merge documents or upload documents actions @@ -271,11 +279,13 @@ def _index_documents_actions(self, actions, **kwargs): # type: (List[IndexAction], **Any) -> List[IndexingResult] error_map = {413: RequestEntityTooLargeError} - timeout = kwargs.pop('timeout', 86400) + timeout = kwargs.pop("timeout", 86400) begin_time = int(time.time()) kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) try: - batch_response = self._client.documents.index(actions=actions, error_map=error_map, **kwargs) + batch_response = self._client.documents.index( + actions=actions, error_map=error_map, **kwargs + ) return cast(List[IndexingResult], batch_response.results) except RequestEntityTooLargeError: if len(actions) == 1: @@ -288,13 +298,12 @@ def _index_documents_actions(self, actions, **kwargs): if remaining < 0: raise ServiceResponseTimeoutError("Service response time out") batch_response_first_half = self._index_documents_actions( - actions=actions[:pos], - error_map=error_map, - timeout=remaining, - **kwargs + actions=actions[:pos], error_map=error_map, timeout=remaining, **kwargs ) if len(batch_response_first_half) > 0: - result_first_half = cast(List[IndexingResult], batch_response_first_half.results) + result_first_half = cast( + List[IndexingResult], batch_response_first_half.results + ) else: result_first_half = [] now = int(time.time()) @@ -302,13 +311,12 @@ def _index_documents_actions(self, actions, **kwargs): if remaining < 0: raise ServiceResponseTimeoutError("Service response time out") batch_response_second_half = self._index_documents_actions( - actions=actions[pos:], - error_map=error_map, - timeout=remaining, - **kwargs + actions=actions[pos:], error_map=error_map, timeout=remaining, **kwargs ) if len(batch_response_second_half) > 0: - result_second_half = cast(List[IndexingResult], batch_response_second_half.results) + result_second_half = cast( + List[IndexingResult], batch_response_second_half.results + ) else: result_second_half = [] return result_first_half.extend(result_second_half) diff --git a/sdk/search/azure-search-documents/azure/search/documents/_search_indexing_buffered_sender_base.py b/sdk/search/azure-search-documents/azure/search/documents/_search_indexing_buffered_sender_base.py index b94d65c18578..43fde4ea25e1 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_search_indexing_buffered_sender_base.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_search_indexing_buffered_sender_base.py @@ -14,8 +14,10 @@ from typing import Any from azure.core.credentials import AzureKeyCredential + class SearchIndexingBufferedSenderBase(HeadersMixin): """Base of search indexing buffered sender""" + _ODATA_ACCEPT = "application/json;odata.metadata=none" # type: str _DEFAULT_AUTO_FLUSH_INTERVAL = 60 _DEFAULT_INITIAL_BATCH_ACTION_COUNT = 512 @@ -25,18 +27,24 @@ def __init__(self, endpoint, index_name, credential, **kwargs): # type: (str, str, AzureKeyCredential, **Any) -> None self._api_version = kwargs.pop("api_version", DEFAULT_VERSION) - self._auto_flush = kwargs.pop('auto_flush', True) - self._batch_action_count = kwargs.pop('initial_batch_action_count', self._DEFAULT_INITIAL_BATCH_ACTION_COUNT) - self._auto_flush_interval = kwargs.pop('auto_flush_interval', self._DEFAULT_AUTO_FLUSH_INTERVAL) + self._auto_flush = kwargs.pop("auto_flush", True) + self._batch_action_count = kwargs.pop( + "initial_batch_action_count", self._DEFAULT_INITIAL_BATCH_ACTION_COUNT + ) + self._auto_flush_interval = kwargs.pop( + "auto_flush_interval", self._DEFAULT_AUTO_FLUSH_INTERVAL + ) if self._auto_flush_interval <= 0: raise ValueError("auto_flush_interval must be a positive number.") - self._max_retries_per_action = kwargs.pop('max_retries_per_action ', self._DEFAULT_MAX_RETRIES) + self._max_retries_per_action = kwargs.pop( + "max_retries_per_action ", self._DEFAULT_MAX_RETRIES + ) self._endpoint = endpoint # type: str self._index_name = index_name # type: str self._index_key = None self._credential = credential - self._on_new = kwargs.pop('on_new', None) - self._on_progress = kwargs.pop('on_progress', None) - self._on_error = kwargs.pop('on_error', None) - self._on_remove = kwargs.pop('on_remove', None) + self._on_new = kwargs.pop("on_new", None) + self._on_progress = kwargs.pop("on_progress", None) + self._on_error = kwargs.pop("on_error", None) + self._on_remove = kwargs.pop("on_remove", None) self._retry_counter = {} diff --git a/sdk/search/azure-search-documents/azure/search/documents/_utils.py b/sdk/search/azure-search-documents/azure/search/documents/_utils.py index 0be8970be755..bf9cad202f9a 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_utils.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_utils.py @@ -5,12 +5,16 @@ # -------------------------------------------------------------------------- from azure.core.pipeline import policies -CREDENTIAL_SCOPES = ['https://search.azure.com/.default'] +CREDENTIAL_SCOPES = ["https://search.azure.com/.default"] + def is_retryable_status_code(status_code): # type: (int) -> bool return status_code in [422, 409, 503] + def get_authentication_policy(credential): - authentication_policy = policies.BearerTokenCredentialPolicy(credential, *CREDENTIAL_SCOPES) + authentication_policy = policies.BearerTokenCredentialPolicy( + credential, *CREDENTIAL_SCOPES + ) return authentication_policy diff --git a/sdk/search/azure-search-documents/azure/search/documents/aio/_index_documents_batch_async.py b/sdk/search/azure-search-documents/azure/search/documents/aio/_index_documents_batch_async.py index c877781326f1..243a0fbc577c 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/aio/_index_documents_batch_async.py +++ b/sdk/search/azure-search-documents/azure/search/documents/aio/_index_documents_batch_async.py @@ -133,8 +133,7 @@ async def dequeue_actions(self): async def enqueue_actions(self, new_actions): # type: (Union[IndexAction, List[IndexAction]]) -> None - """Enqueue a list of index actions to index. - """ + """Enqueue a list of index actions to index.""" if isinstance(new_actions, IndexAction): async with self._lock: self._actions.append(new_actions) diff --git a/sdk/search/azure-search-documents/azure/search/documents/aio/_paging.py b/sdk/search/azure-search-documents/azure/search/documents/aio/_paging.py index 615229d56003..27bcb8347126 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/aio/_paging.py +++ b/sdk/search/azure-search-documents/azure/search/documents/aio/_paging.py @@ -17,6 +17,7 @@ # pylint:disable=unused-import,ungrouped-imports from ...documents.models import AnswerResult + class AsyncSearchItemPaged(AsyncItemPaged[ReturnType]): def __init__(self, *args, **kwargs): super(AsyncSearchItemPaged, self).__init__(*args, **kwargs) @@ -44,9 +45,7 @@ def _first_iterator_instance(self): return self._first_page_iterator_instance async def get_facets(self) -> Union[dict, None]: - """Return any facet results if faceting was requested. - - """ + """Return any facet results if faceting was requested.""" return await self._first_iterator_instance().get_facets() async def get_coverage(self): @@ -112,7 +111,9 @@ async def _get_next_cb(self, continuation_token): ) async def _extract_data_cb(self, response): # pylint:disable=no-self-use - continuation_token = pack_continuation_token(response, api_version=self._api_version) + continuation_token = pack_continuation_token( + response, api_version=self._api_version + ) results = [convert_search_result(r) for r in response.results] return continuation_token, results diff --git a/sdk/search/azure-search-documents/azure/search/documents/aio/_search_client_async.py b/sdk/search/azure-search-documents/azure/search/documents/aio/_search_client_async.py index f7ed87bcd127..650b62dd1666 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/aio/_search_client_async.py +++ b/sdk/search/azure-search-documents/azure/search/documents/aio/_search_client_async.py @@ -48,11 +48,13 @@ class SearchClient(HeadersMixin): _ODATA_ACCEPT = "application/json;odata.metadata=none" # type: str - def __init__(self, endpoint: str, - index_name: str, - credential: Union[AzureKeyCredential, "AsyncTokenCredential"], - **kwargs - ) -> None: + def __init__( + self, + endpoint: str, + index_name: str, + credential: Union[AzureKeyCredential, "AsyncTokenCredential"], + **kwargs + ) -> None: self._api_version = kwargs.pop("api_version", DEFAULT_VERSION) self._index_documents_batch = IndexDocumentsBatch() self._endpoint = endpoint # type: str @@ -64,7 +66,8 @@ def __init__(self, endpoint: str, endpoint=endpoint, index_name=index_name, sdk_moniker=SDK_MONIKER, - api_version=self._api_version, **kwargs + api_version=self._api_version, + **kwargs ) # type: SearchIndexClient else: self._aad = True @@ -74,10 +77,10 @@ def __init__(self, endpoint: str, index_name=index_name, authentication_policy=authentication_policy, sdk_moniker=SDK_MONIKER, - api_version=self._api_version, **kwargs + api_version=self._api_version, + **kwargs ) # type: SearchIndexClient - def __repr__(self): # type: () -> str return "".format( @@ -86,9 +89,7 @@ def __repr__(self): async def close(self): # type: () -> None - """Close the :class:`~azure.search.documents.aio.SearchClient` session. - - """ + """Close the :class:`~azure.search.documents.aio.SearchClient` session.""" return await self._client.close() @distributed_trace_async @@ -260,7 +261,7 @@ async def search(self, search_text, **kwargs): answers=answers, select=select if isinstance(select, six.string_types) else None, skip=skip, - top=top + top=top, ) if isinstance(select, list): query.select(select) @@ -337,7 +338,7 @@ async def suggest(self, search_text, suggester_name, **kwargs): order_by=order_by, search_fields=search_fields_str, select=select if isinstance(select, six.string_types) else None, - top=top + top=top, ) if isinstance(select, list): query.select(select) @@ -409,7 +410,7 @@ async def autocomplete(self, search_text, suggester_name, **kwargs): highlight_pre_tag=highlight_pre_tag, minimum_coverage=minimum_coverage, search_fields=search_fields_str, - top=top + top=top, ) kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) @@ -548,28 +549,30 @@ async def _index_documents_actions(self, actions, **kwargs): kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) try: - batch_response = await self._client.documents.index(actions=actions, error_map=error_map, **kwargs) + batch_response = await self._client.documents.index( + actions=actions, error_map=error_map, **kwargs + ) return cast(List[IndexingResult], batch_response.results) except RequestEntityTooLargeError: if len(actions) == 1: raise pos = round(len(actions) / 2) batch_response_first_half = await self._index_documents_actions( - actions=actions[:pos], - error_map=error_map, - **kwargs + actions=actions[:pos], error_map=error_map, **kwargs ) if batch_response_first_half: - result_first_half = cast(List[IndexingResult], batch_response_first_half.results) + result_first_half = cast( + List[IndexingResult], batch_response_first_half.results + ) else: result_first_half = [] batch_response_second_half = await self._index_documents_actions( - actions=actions[pos:], - error_map=error_map, - **kwargs + actions=actions[pos:], error_map=error_map, **kwargs ) if batch_response_second_half: - result_second_half = cast(List[IndexingResult], batch_response_second_half.results) + result_second_half = cast( + List[IndexingResult], batch_response_second_half.results + ) else: result_second_half = [] return result_first_half.extend(result_second_half) diff --git a/sdk/search/azure-search-documents/azure/search/documents/aio/_search_indexing_buffered_sender_async.py b/sdk/search/azure-search-documents/azure/search/documents/aio/_search_indexing_buffered_sender_async.py index 25217ebcf50f..4cae7a0152f5 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/aio/_search_indexing_buffered_sender_async.py +++ b/sdk/search/azure-search-documents/azure/search/documents/aio/_search_indexing_buffered_sender_async.py @@ -50,18 +50,19 @@ class SearchIndexingBufferedSender(SearchIndexingBufferedSenderBase, HeadersMixi is a IndexAction removed from the queue (succeeds or fails). :keyword str api_version: The Search API version to use for requests. """ + # pylint: disable=too-many-instance-attributes - def __init__(self, endpoint: str, - index_name: str, - credential: Union[AzureKeyCredential, "AsyncTokenCredential"], - **kwargs - ) -> None: + def __init__( + self, + endpoint: str, + index_name: str, + credential: Union[AzureKeyCredential, "AsyncTokenCredential"], + **kwargs + ) -> None: super(SearchIndexingBufferedSender, self).__init__( - endpoint=endpoint, - index_name=index_name, - credential=credential, - **kwargs) + endpoint=endpoint, index_name=index_name, credential=credential, **kwargs + ) self._index_documents_batch = IndexDocumentsBatch() if isinstance(credential, AzureKeyCredential): self._aad = False @@ -69,7 +70,8 @@ def __init__(self, endpoint: str, endpoint=endpoint, index_name=index_name, sdk_moniker=SDK_MONIKER, - api_version=self._api_version, **kwargs + api_version=self._api_version, + **kwargs ) # type: SearchIndexClient else: self._aad = True @@ -79,7 +81,8 @@ def __init__(self, endpoint: str, index_name=index_name, authentication_policy=authentication_policy, sdk_moniker=SDK_MONIKER, - api_version=self._api_version, **kwargs + api_version=self._api_version, + **kwargs ) # type: SearchIndexClient self._reset_timer() @@ -117,7 +120,7 @@ async def close(self, **kwargs): # pylint: disable=unused-argument return await self._client.close() @distributed_trace_async - async def flush(self, timeout=86400, **kwargs): # pylint:disable=unused-argument + async def flush(self, timeout=86400, **kwargs): # pylint:disable=unused-argument # type: (bool) -> bool """Flush the batch. :param int timeout: time out setting. Default is 86400s (one day) @@ -144,6 +147,7 @@ async def flush(self, timeout=86400, **kwargs): # pylint:disable=unused-argum async def _process(self, timeout=86400, **kwargs): # type: (int) -> bool from ..indexes.aio import SearchIndexClient as SearchServiceClient + raise_error = kwargs.pop("raise_error", True) actions = await self._index_documents_batch.dequeue_actions() has_error = False @@ -162,10 +166,16 @@ async def _process(self, timeout=86400, **kwargs): self._reset_timer() try: - results = await self._index_documents_actions(actions=actions, timeout=timeout) + results = await self._index_documents_actions( + actions=actions, timeout=timeout + ) for result in results: try: - action = next(x for x in actions if x.additional_properties.get(self._index_key) == result.key) + action = next( + x + for x in actions + if x.additional_properties.get(self._index_key) == result.key + ) if result.succeeded: await self._callback_succeed(action) elif is_retryable_status_code(result.status_code): @@ -188,10 +198,10 @@ async def _process(self, timeout=86400, **kwargs): async def _process_if_needed(self): # type: () -> bool - """ Every time when a new action is queued, this method - will be triggered. It checks the actions already queued and flushes them if: - 1. Auto_flush is on - 2. There are self._batch_action_count actions queued + """Every time when a new action is queued, this method + will be triggered. It checks the actions already queued and flushes them if: + 1. Auto_flush is on + 2. There are self._batch_action_count actions queued """ if not self._auto_flush: return @@ -211,7 +221,9 @@ def _reset_timer(self): self._timer = Timer(self._auto_flush_interval, self._process) @distributed_trace_async - async def upload_documents(self, documents, **kwargs): # pylint: disable=unused-argument + async def upload_documents( + self, documents, **kwargs + ): # pylint: disable=unused-argument # type: (List[dict]) -> None """Queue upload documents actions. :param documents: A list of documents to upload. @@ -222,7 +234,9 @@ async def upload_documents(self, documents, **kwargs): # pylint: disable=unused await self._process_if_needed() @distributed_trace_async - async def delete_documents(self, documents, **kwargs): # pylint: disable=unused-argument + async def delete_documents( + self, documents, **kwargs + ): # pylint: disable=unused-argument # type: (List[dict]) -> None """Queue delete documents actions :param documents: A list of documents to delete. @@ -233,7 +247,9 @@ async def delete_documents(self, documents, **kwargs): # pylint: disable=unused await self._process_if_needed() @distributed_trace_async - async def merge_documents(self, documents, **kwargs): # pylint: disable=unused-argument + async def merge_documents( + self, documents, **kwargs + ): # pylint: disable=unused-argument # type: (List[dict]) -> None """Queue merge documents actions :param documents: A list of documents to merge. @@ -244,13 +260,17 @@ async def merge_documents(self, documents, **kwargs): # pylint: disable=unused- await self._process_if_needed() @distributed_trace_async - async def merge_or_upload_documents(self, documents, **kwargs): # pylint: disable=unused-argument + async def merge_or_upload_documents( + self, documents, **kwargs + ): # pylint: disable=unused-argument # type: (List[dict]) -> None """Queue merge documents or upload documents actions :param documents: A list of documents to merge or upload. :type documents: List[dict] """ - actions = await self._index_documents_batch.add_merge_or_upload_actions(documents) + actions = await self._index_documents_batch.add_merge_or_upload_actions( + documents + ) await self._callback_new(actions) await self._process_if_needed() @@ -270,11 +290,13 @@ async def _index_documents_actions(self, actions, **kwargs): # type: (List[IndexAction], **Any) -> List[IndexingResult] error_map = {413: RequestEntityTooLargeError} - timeout = kwargs.pop('timeout', 86400) + timeout = kwargs.pop("timeout", 86400) begin_time = int(time.time()) kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) try: - batch_response = await self._client.documents.index(actions=actions, error_map=error_map, **kwargs) + batch_response = await self._client.documents.index( + actions=actions, error_map=error_map, **kwargs + ) return cast(List[IndexingResult], batch_response.results) except RequestEntityTooLargeError: if len(actions) == 1: @@ -287,12 +309,12 @@ async def _index_documents_actions(self, actions, **kwargs): if remaining < 0: raise ServiceResponseTimeoutError("Service response time out") batch_response_first_half = await self._index_documents_actions( - actions=actions[:pos], - error_map=error_map, - **kwargs + actions=actions[:pos], error_map=error_map, **kwargs ) if len(batch_response_first_half) > 0: - result_first_half = cast(List[IndexingResult], batch_response_first_half.results) + result_first_half = cast( + List[IndexingResult], batch_response_first_half.results + ) else: result_first_half = [] now = int(time.time()) @@ -300,12 +322,12 @@ async def _index_documents_actions(self, actions, **kwargs): if remaining < 0: raise ServiceResponseTimeoutError("Service response time out") batch_response_second_half = await self._index_documents_actions( - actions=actions[pos:], - error_map=error_map, - **kwargs + actions=actions[pos:], error_map=error_map, **kwargs ) if len(batch_response_second_half) > 0: - result_second_half = cast(List[IndexingResult], batch_response_second_half.results) + result_second_half = cast( + List[IndexingResult], batch_response_second_half.results + ) else: result_second_half = [] return result_first_half.extend(result_second_half) diff --git a/sdk/search/azure-search-documents/azure/search/documents/aio/_utils_async.py b/sdk/search/azure-search-documents/azure/search/documents/aio/_utils_async.py index c5b5781f1f23..697aae0f9adb 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/aio/_utils_async.py +++ b/sdk/search/azure-search-documents/azure/search/documents/aio/_utils_async.py @@ -7,6 +7,9 @@ from .._utils import CREDENTIAL_SCOPES + def get_async_authentication_policy(credential): - authentication_policy = policies.AsyncBearerTokenCredentialPolicy(credential, *CREDENTIAL_SCOPES) + authentication_policy = policies.AsyncBearerTokenCredentialPolicy( + credential, *CREDENTIAL_SCOPES + ) return authentication_policy diff --git a/sdk/search/azure-search-documents/azure/search/documents/indexes/_search_index_client.py b/sdk/search/azure-search-documents/azure/search/documents/indexes/_search_index_client.py index d9f87a36a8c8..fa5906f32b53 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/indexes/_search_index_client.py +++ b/sdk/search/azure-search-documents/azure/search/documents/indexes/_search_index_client.py @@ -39,6 +39,7 @@ class SearchIndexClient(HeadersMixin): :keyword str api_version: The Search API version to use for requests. """ + _ODATA_ACCEPT = "application/json;odata.metadata=minimal" # type: str def __init__(self, endpoint, credential, **kwargs): @@ -77,9 +78,7 @@ def __exit__(self, *args): def close(self): # type: () -> None - """Close the :class:`~azure.search.documents.indexes.SearchIndexClient` session. - - """ + """Close the :class:`~azure.search.documents.indexes.SearchIndexClient` session.""" return self._client.close() def get_search_client(self, index_name, **kwargs): @@ -105,7 +104,9 @@ def list_indexes(self, **kwargs): """ kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) # pylint:disable=protected-access - return self._client.indexes.list(cls=lambda objs: [SearchIndex._from_generated(x) for x in objs], **kwargs) + return self._client.indexes.list( + cls=lambda objs: [SearchIndex._from_generated(x) for x in objs], **kwargs + ) @distributed_trace def list_index_names(self, **kwargs): @@ -119,7 +120,9 @@ def list_index_names(self, **kwargs): """ kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) - return self._client.indexes.list(cls=lambda objs: [x.name for x in objs], **kwargs) + return self._client.indexes.list( + cls=lambda objs: [x.name for x in objs], **kwargs + ) @distributed_trace def get_index(self, name, **kwargs): @@ -217,14 +220,12 @@ def create_index(self, index, **kwargs): :caption: Creating a new index. """ kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) - patched_index = index._to_generated() # pylint:disable=protected-access + patched_index = index._to_generated() # pylint:disable=protected-access result = self._client.indexes.create(patched_index, **kwargs) return SearchIndex._from_generated(result) # pylint:disable=protected-access @distributed_trace - def create_or_update_index( - self, index, allow_index_downtime=None, **kwargs - ): + def create_or_update_index(self, index, allow_index_downtime=None, **kwargs): # type: (SearchIndex, bool, **Any) -> SearchIndex """Creates a new search index or updates an index if it already exists. @@ -260,7 +261,7 @@ def create_or_update_index( index, kwargs.pop("match_condition", MatchConditions.Unconditionally) ) kwargs.update(access_condition) - patched_index = index._to_generated() # pylint:disable=protected-access + patched_index = index._to_generated() # pylint:disable=protected-access result = self._client.indexes.create_or_update( index_name=index.name, index=patched_index, @@ -294,7 +295,9 @@ def analyze_text(self, index_name, analyze_request, **kwargs): """ kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) result = self._client.indexes.analyze( - index_name=index_name, request=analyze_request._to_analyze_request(), **kwargs # pylint:disable=protected-access + index_name=index_name, + request=analyze_request._to_analyze_request(), # pylint:disable=protected-access + **kwargs ) return result @@ -359,7 +362,7 @@ def get_synonym_map(self, name, **kwargs): """ kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) result = self._client.synonym_maps.get(name, **kwargs) - return SynonymMap._from_generated(result) # pylint:disable=protected-access + return SynonymMap._from_generated(result) # pylint:disable=protected-access @distributed_trace def delete_synonym_map(self, synonym_map, **kwargs): @@ -419,9 +422,11 @@ def create_synonym_map(self, synonym_map, **kwargs): """ kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) - patched_synonym_map = synonym_map._to_generated() # pylint:disable=protected-access + patched_synonym_map = ( + synonym_map._to_generated() # pylint:disable=protected-access + ) result = self._client.synonym_maps.create(patched_synonym_map, **kwargs) - return SynonymMap._from_generated(result) # pylint:disable=protected-access + return SynonymMap._from_generated(result) # pylint:disable=protected-access @distributed_trace def create_or_update_synonym_map(self, synonym_map, **kwargs): @@ -442,21 +447,21 @@ def create_or_update_synonym_map(self, synonym_map, **kwargs): synonym_map, kwargs.pop("match_condition", MatchConditions.Unconditionally) ) kwargs.update(access_condition) - patched_synonym_map = synonym_map._to_generated() # pylint:disable=protected-access + patched_synonym_map = ( + synonym_map._to_generated() # pylint:disable=protected-access + ) result = self._client.synonym_maps.create_or_update( synonym_map_name=synonym_map.name, synonym_map=patched_synonym_map, error_map=error_map, **kwargs ) - return SynonymMap._from_generated(result) # pylint:disable=protected-access + return SynonymMap._from_generated(result) # pylint:disable=protected-access @distributed_trace def get_service_statistics(self, **kwargs): # type: (**Any) -> dict - """Get service level statistics for a search service. - - """ + """Get service level statistics for a search service.""" kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) result = self._client.get_service_statistics(**kwargs) return result.as_dict() diff --git a/sdk/search/azure-search-documents/azure/search/documents/indexes/_search_indexer_client.py b/sdk/search/azure-search-documents/azure/search/documents/indexes/_search_indexer_client.py index 0a3e8a754951..18f7daf1a058 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/indexes/_search_indexer_client.py +++ b/sdk/search/azure-search-documents/azure/search/documents/indexes/_search_indexer_client.py @@ -28,7 +28,7 @@ from azure.core.credentials import TokenCredential -class SearchIndexerClient(HeadersMixin): # pylint: disable=R0904 +class SearchIndexerClient(HeadersMixin): # pylint: disable=R0904 """A client to interact with Azure search service Indexers. :param endpoint: The URL endpoint of an Azure search service @@ -77,9 +77,7 @@ def __exit__(self, *args): def close(self): # type: () -> None - """Close the :class:`~azure.search.documents.indexes.SearchIndexerClient` session. - - """ + """Close the :class:`~azure.search.documents.indexes.SearchIndexerClient` session.""" return self._client.close() @distributed_trace @@ -333,11 +331,14 @@ def create_or_update_data_source_connection(self, data_source_connection, **kwar """ kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) error_map, access_condition = get_access_conditions( - data_source_connection, kwargs.pop("match_condition", MatchConditions.Unconditionally) + data_source_connection, + kwargs.pop("match_condition", MatchConditions.Unconditionally), ) kwargs.update(access_condition) name = data_source_connection.name - packed_data_source = data_source_connection._to_generated() # pylint:disable=protected-access + packed_data_source = ( + data_source_connection._to_generated() # pylint:disable=protected-access + ) result = self._client.data_sources.create_or_update( data_source_name=name, data_source=packed_data_source, @@ -368,7 +369,9 @@ def get_data_source_connection(self, name, **kwargs): """ kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) result = self._client.data_sources.get(name, **kwargs) - return SearchIndexerDataSourceConnection._from_generated(result) # pylint:disable=protected-access + return SearchIndexerDataSourceConnection._from_generated( # pylint:disable=protected-access + result + ) @distributed_trace def get_data_source_connections(self, **kwargs): @@ -390,7 +393,10 @@ def get_data_source_connections(self, **kwargs): kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) result = self._client.data_sources.list(**kwargs) # pylint:disable=protected-access - return [SearchIndexerDataSourceConnection._from_generated(x) for x in result.data_sources] + return [ + SearchIndexerDataSourceConnection._from_generated(x) + for x in result.data_sources + ] @distributed_trace def get_data_source_connection_names(self, **kwargs): @@ -430,7 +436,8 @@ def delete_data_source_connection(self, data_source_connection, **kwargs): """ kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) error_map, access_condition = get_access_conditions( - data_source_connection, kwargs.pop("match_condition", MatchConditions.Unconditionally) + data_source_connection, + kwargs.pop("match_condition", MatchConditions.Unconditionally), ) kwargs.update(access_condition) try: @@ -580,5 +587,8 @@ def create_or_update_skillset(self, skillset, **kwargs): kwargs.update(access_condition) return self._client.skillsets.create_or_update( - skillset_name=skillset.name, skillset=skillset, error_map=error_map, **kwargs + skillset_name=skillset.name, + skillset=skillset, + error_map=error_map, + **kwargs ) diff --git a/sdk/search/azure-search-documents/azure/search/documents/indexes/_utils.py b/sdk/search/azure-search-documents/azure/search/documents/indexes/_utils.py index 7dbbf7749831..43b080764b9f 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/indexes/_utils.py +++ b/sdk/search/azure-search-documents/azure/search/documents/indexes/_utils.py @@ -77,10 +77,12 @@ def get_access_conditions(model, match_condition=MatchConditions.Unconditionally def normalize_endpoint(endpoint): try: - if not endpoint.lower().startswith('http'): + if not endpoint.lower().startswith("http"): endpoint = "https://" + endpoint - elif not endpoint.lower().startswith('https'): - raise ValueError("Bearer token authentication is not permitted for non-TLS protected (non-https) URLs.") + elif not endpoint.lower().startswith("https"): + raise ValueError( + "Bearer token authentication is not permitted for non-TLS protected (non-https) URLs." + ) return endpoint except AttributeError: raise ValueError("Endpoint must be a string.") diff --git a/sdk/search/azure-search-documents/azure/search/documents/indexes/aio/_search_index_client.py b/sdk/search/azure-search-documents/azure/search/documents/indexes/aio/_search_index_client.py index d68de85b3107..d20618583fd2 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/indexes/aio/_search_index_client.py +++ b/sdk/search/azure-search-documents/azure/search/documents/indexes/aio/_search_index_client.py @@ -46,10 +46,12 @@ class SearchIndexClient(HeadersMixin): _ODATA_ACCEPT = "application/json;odata.metadata=minimal" # type: str - def __init__(self, endpoint: str, - credential: Union[AzureKeyCredential, "AsyncTokenCredential"], - **kwargs - ) -> None: + def __init__( + self, + endpoint: str, + credential: Union[AzureKeyCredential, "AsyncTokenCredential"], + **kwargs + ) -> None: self._api_version = kwargs.pop("api_version", DEFAULT_VERSION) self._endpoint = normalize_endpoint(endpoint) # type: str self._credential = credential @@ -83,9 +85,7 @@ async def __aexit__(self, *args): async def close(self): # type: () -> None - """Close the :class:`~azure.search.documents.indexes.aio.SearchIndexClient` session. - - """ + """Close the :class:`~azure.search.documents.indexes.aio.SearchIndexClient` session.""" return await self._client.close() def get_search_client(self, index_name, **kwargs): @@ -111,7 +111,9 @@ def list_indexes(self, **kwargs): kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) # pylint:disable=protected-access - return self._client.indexes.list(cls=lambda objs: [SearchIndex._from_generated(x) for x in objs], **kwargs) + return self._client.indexes.list( + cls=lambda objs: [SearchIndex._from_generated(x) for x in objs], **kwargs + ) @distributed_trace def list_index_names(self, **kwargs): @@ -125,7 +127,9 @@ def list_index_names(self, **kwargs): """ kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) - return self._client.indexes.list(cls=lambda objs: [x.name for x in objs], **kwargs) + return self._client.indexes.list( + cls=lambda objs: [x.name for x in objs], **kwargs + ) @distributed_trace_async async def get_index(self, name, **kwargs): @@ -223,14 +227,12 @@ async def create_index(self, index, **kwargs): :caption: Creating a new index. """ kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) - patched_index = index._to_generated() # pylint:disable=protected-access + patched_index = index._to_generated() # pylint:disable=protected-access result = await self._client.indexes.create(patched_index, **kwargs) return result @distributed_trace_async - async def create_or_update_index( - self, index, allow_index_downtime=None, **kwargs - ): + async def create_or_update_index(self, index, allow_index_downtime=None, **kwargs): # type: (SearchIndex, bool, MatchConditions, **Any) -> SearchIndex """Creates a new search index or updates an index if it already exists. @@ -266,7 +268,7 @@ async def create_or_update_index( index, kwargs.pop("match_condition", MatchConditions.Unconditionally) ) kwargs.update(access_condition) - patched_index = index._to_generated() # pylint:disable=protected-access + patched_index = index._to_generated() # pylint:disable=protected-access result = await self._client.indexes.create_or_update( index_name=index.name, index=patched_index, @@ -300,7 +302,9 @@ async def analyze_text(self, index_name, analyze_request, **kwargs): """ kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) result = await self._client.indexes.analyze( - index_name=index_name, request=analyze_request._to_analyze_request(), **kwargs # pylint:disable=protected-access + index_name=index_name, + request=analyze_request._to_analyze_request(), # pylint:disable=protected-access + **kwargs ) return result @@ -365,7 +369,7 @@ async def get_synonym_map(self, name, **kwargs): """ kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) result = await self._client.synonym_maps.get(name, **kwargs) - return SynonymMap._from_generated(result) # pylint:disable=protected-access + return SynonymMap._from_generated(result) # pylint:disable=protected-access @distributed_trace_async async def delete_synonym_map(self, synonym_map, **kwargs): @@ -426,9 +430,11 @@ async def create_synonym_map(self, synonym_map, **kwargs): """ kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) - patched_synonym_map = synonym_map._to_generated() # pylint:disable=protected-access + patched_synonym_map = ( + synonym_map._to_generated() # pylint:disable=protected-access + ) result = await self._client.synonym_maps.create(patched_synonym_map, **kwargs) - return SynonymMap._from_generated(result) # pylint:disable=protected-access + return SynonymMap._from_generated(result) # pylint:disable=protected-access @distributed_trace_async async def create_or_update_synonym_map(self, synonym_map, **kwargs): @@ -449,21 +455,21 @@ async def create_or_update_synonym_map(self, synonym_map, **kwargs): synonym_map, kwargs.pop("match_condition", MatchConditions.Unconditionally) ) kwargs.update(access_condition) - patched_synonym_map = synonym_map._to_generated() # pylint:disable=protected-access + patched_synonym_map = ( + synonym_map._to_generated() # pylint:disable=protected-access + ) result = await self._client.synonym_maps.create_or_update( synonym_map_name=synonym_map.name, synonym_map=patched_synonym_map, error_map=error_map, **kwargs ) - return SynonymMap._from_generated(result) # pylint:disable=protected-access + return SynonymMap._from_generated(result) # pylint:disable=protected-access @distributed_trace_async async def get_service_statistics(self, **kwargs): # type: (**Any) -> dict - """Get service level statistics for a search service. - - """ + """Get service level statistics for a search service.""" kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) result = await self._client.get_service_statistics(**kwargs) return result.as_dict() diff --git a/sdk/search/azure-search-documents/azure/search/documents/indexes/aio/_search_indexer_client.py b/sdk/search/azure-search-documents/azure/search/documents/indexes/aio/_search_indexer_client.py index 3c5382179130..01c4e139db4d 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/indexes/aio/_search_indexer_client.py +++ b/sdk/search/azure-search-documents/azure/search/documents/indexes/aio/_search_indexer_client.py @@ -30,7 +30,7 @@ from azure.core.credentials_async import AsyncTokenCredential -class SearchIndexerClient(HeadersMixin): # pylint: disable=R0904 +class SearchIndexerClient(HeadersMixin): # pylint: disable=R0904 """A client to interact with Azure search service Indexers. :param endpoint: The URL endpoint of an Azure search service @@ -43,10 +43,12 @@ class SearchIndexerClient(HeadersMixin): # pylint: disable=R0904 _ODATA_ACCEPT = "application/json;odata.metadata=minimal" # type: str - def __init__(self, endpoint: str, - credential: Union[AzureKeyCredential, "AsyncTokenCredential"], - **kwargs - ) -> None: + def __init__( + self, + endpoint: str, + credential: Union[AzureKeyCredential, "AsyncTokenCredential"], + **kwargs + ) -> None: self._api_version = kwargs.pop("api_version", DEFAULT_VERSION) self._endpoint = normalize_endpoint(endpoint) # type: str self._credential = credential @@ -80,9 +82,7 @@ async def __aexit__(self, *args): async def close(self): # type: () -> None - """Close the :class:`~azure.search.documents.indexes.aio.SearchIndexerClient` session. - - """ + """Close the :class:`~azure.search.documents.indexes.aio.SearchIndexerClient` session.""" return await self._client.close() @distributed_trace_async @@ -315,7 +315,9 @@ async def create_data_source_connection(self, data_source_connection, **kwargs): return SearchIndexerDataSourceConnection._from_generated(result) @distributed_trace_async - async def create_or_update_data_source_connection(self, data_source_connection, **kwargs): + async def create_or_update_data_source_connection( + self, data_source_connection, **kwargs + ): # type: (SearchIndexerDataSourceConnection, **Any) -> SearchIndexerDataSourceConnection """Creates a new data source connection or updates a data source connection if it already exists. :param data_source_connection: The definition of the data source connection to create or update. @@ -327,7 +329,8 @@ async def create_or_update_data_source_connection(self, data_source_connection, """ kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) error_map, access_condition = get_access_conditions( - data_source_connection, kwargs.pop("match_condition", MatchConditions.Unconditionally) + data_source_connection, + kwargs.pop("match_condition", MatchConditions.Unconditionally), ) kwargs.update(access_condition) name = data_source_connection.name @@ -366,7 +369,8 @@ async def delete_data_source_connection(self, data_source_connection, **kwargs): """ kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) error_map, access_condition = get_access_conditions( - data_source_connection, kwargs.pop("match_condition", MatchConditions.Unconditionally) + data_source_connection, + kwargs.pop("match_condition", MatchConditions.Unconditionally), ) kwargs.update(access_condition) try: @@ -419,7 +423,10 @@ async def get_data_source_connections(self, **kwargs): kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) result = await self._client.data_sources.list(**kwargs) # pylint:disable=protected-access - return [SearchIndexerDataSourceConnection._from_generated(x) for x in result.data_sources] + return [ + SearchIndexerDataSourceConnection._from_generated(x) + for x in result.data_sources + ] @distributed_trace_async async def get_data_source_connection_names(self, **kwargs): @@ -573,5 +580,8 @@ async def create_or_update_skillset(self, skillset, **kwargs): kwargs.update(access_condition) return await self._client.skillsets.create_or_update( - skillset_name=skillset.name, skillset=skillset, error_map=error_map, **kwargs + skillset_name=skillset.name, + skillset=skillset, + error_map=error_map, + **kwargs ) diff --git a/sdk/search/azure-search-documents/azure/search/documents/indexes/models/_index.py b/sdk/search/azure-search-documents/azure/search/documents/indexes/models/_index.py index bb3422a8974b..e249bf141f2f 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/indexes/models/_index.py +++ b/sdk/search/azure-search-documents/azure/search/documents/indexes/models/_index.py @@ -169,50 +169,46 @@ class SearchField(msrest.serialization.Model): """ _validation = { - 'name': {'required': True}, - 'type': {'required': True}, + "name": {"required": True}, + "type": {"required": True}, } _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'key': {'key': 'key', 'type': 'bool'}, - 'hidden': {'key': 'hidden', 'type': 'bool'}, - 'searchable': {'key': 'searchable', 'type': 'bool'}, - 'filterable': {'key': 'filterable', 'type': 'bool'}, - 'sortable': {'key': 'sortable', 'type': 'bool'}, - 'facetable': {'key': 'facetable', 'type': 'bool'}, - 'analyzer_name': {'key': 'analyzerName', 'type': 'str'}, - 'search_analyzer_name': {'key': 'searchAnalyzerName', 'type': 'str'}, - 'index_analyzer_name': {'key': 'indexAnalyzerName', 'type': 'str'}, - 'normalizer': {'key': 'normalizer', 'type': 'str'}, - 'synonym_map_names': {'key': 'synonymMapNames', 'type': '[str]'}, - 'fields': {'key': 'fields', 'type': '[SearchField]'}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "key": {"key": "key", "type": "bool"}, + "hidden": {"key": "hidden", "type": "bool"}, + "searchable": {"key": "searchable", "type": "bool"}, + "filterable": {"key": "filterable", "type": "bool"}, + "sortable": {"key": "sortable", "type": "bool"}, + "facetable": {"key": "facetable", "type": "bool"}, + "analyzer_name": {"key": "analyzerName", "type": "str"}, + "search_analyzer_name": {"key": "searchAnalyzerName", "type": "str"}, + "index_analyzer_name": {"key": "indexAnalyzerName", "type": "str"}, + "normalizer": {"key": "normalizer", "type": "str"}, + "synonym_map_names": {"key": "synonymMapNames", "type": "[str]"}, + "fields": {"key": "fields", "type": "[SearchField]"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(SearchField, self).__init__(**kwargs) - self.name = kwargs['name'] - self.type = kwargs['type'] - self.key = kwargs.get('key', None) - self.hidden = kwargs.get('hidden', None) - self.searchable = kwargs.get('searchable', None) - self.filterable = kwargs.get('filterable', None) - self.sortable = kwargs.get('sortable', None) - self.facetable = kwargs.get('facetable', None) - self.analyzer_name = kwargs.get('analyzer_name', None) - self.search_analyzer_name = kwargs.get('search_analyzer_name', None) - self.index_analyzer_name = kwargs.get('index_analyzer_name', None) - self.normalizer = kwargs.get('normalizer', None) - self.synonym_map_names = kwargs.get('synonym_map_names', None) - self.fields = kwargs.get('fields', None) + self.name = kwargs["name"] + self.type = kwargs["type"] + self.key = kwargs.get("key", None) + self.hidden = kwargs.get("hidden", None) + self.searchable = kwargs.get("searchable", None) + self.filterable = kwargs.get("filterable", None) + self.sortable = kwargs.get("sortable", None) + self.facetable = kwargs.get("facetable", None) + self.analyzer_name = kwargs.get("analyzer_name", None) + self.search_analyzer_name = kwargs.get("search_analyzer_name", None) + self.index_analyzer_name = kwargs.get("index_analyzer_name", None) + self.normalizer = kwargs.get("normalizer", None) + self.synonym_map_names = kwargs.get("synonym_map_names", None) + self.fields = kwargs.get("fields", None) def _to_generated(self): - fields = [pack_search_field(x) for x in self.fields] \ - if self.fields else None + fields = [pack_search_field(x) for x in self.fields] if self.fields else None retrievable = not self.hidden if self.hidden is not None else None return _SearchField( name=self.name, @@ -228,7 +224,7 @@ def _to_generated(self): index_analyzer=self.index_analyzer_name, normalizer=self.normalizer, synonym_maps=self.synonym_map_names, - fields=fields + fields=fields, ) @classmethod @@ -236,9 +232,16 @@ def _from_generated(cls, search_field): if not search_field: return None # pylint:disable=protected-access - fields = [SearchField._from_generated(x) for x in search_field.fields] \ - if search_field.fields else None - hidden = not search_field.retrievable if search_field.retrievable is not None else None + fields = ( + [SearchField._from_generated(x) for x in search_field.fields] + if search_field.fields + else None + ) + hidden = ( + not search_field.retrievable + if search_field.retrievable is not None + else None + ) try: normalizer = search_field.normalizer except AttributeError: @@ -257,9 +260,10 @@ def _from_generated(cls, search_field): index_analyzer_name=search_field.index_analyzer, normalizer=normalizer, synonym_map_names=search_field.synonym_maps, - fields=fields + fields=fields, ) + def SimpleField(**kw): # type: (**Any) -> SearchField """Configure a simple field for an Azure Search Index @@ -525,58 +529,57 @@ class SearchIndex(msrest.serialization.Model): """ _validation = { - 'name': {'required': True}, - 'fields': {'required': True}, + "name": {"required": True}, + "fields": {"required": True}, } _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'fields': {'key': 'fields', 'type': '[SearchField]'}, - 'scoring_profiles': {'key': 'scoringProfiles', 'type': '[ScoringProfile]'}, - 'default_scoring_profile': {'key': 'defaultScoringProfile', 'type': 'str'}, - 'cors_options': {'key': 'corsOptions', 'type': 'CorsOptions'}, - 'suggesters': {'key': 'suggesters', 'type': '[SearchSuggester]'}, - 'analyzers': {'key': 'analyzers', 'type': '[LexicalAnalyzer]'}, - 'tokenizers': {'key': 'tokenizers', 'type': '[LexicalTokenizer]'}, - 'token_filters': {'key': 'tokenFilters', 'type': '[TokenFilter]'}, - 'char_filters': {'key': 'charFilters', 'type': '[CharFilter]'}, - 'normalizers': {'key': 'normalizers', 'type': '[LexicalNormalizer]'}, - 'encryption_key': {'key': 'encryptionKey', 'type': 'SearchResourceEncryptionKey'}, - 'similarity': {'key': 'similarity', 'type': 'SimilarityAlgorithm'}, - 'e_tag': {'key': '@odata\\.etag', 'type': 'str'}, + "name": {"key": "name", "type": "str"}, + "fields": {"key": "fields", "type": "[SearchField]"}, + "scoring_profiles": {"key": "scoringProfiles", "type": "[ScoringProfile]"}, + "default_scoring_profile": {"key": "defaultScoringProfile", "type": "str"}, + "cors_options": {"key": "corsOptions", "type": "CorsOptions"}, + "suggesters": {"key": "suggesters", "type": "[SearchSuggester]"}, + "analyzers": {"key": "analyzers", "type": "[LexicalAnalyzer]"}, + "tokenizers": {"key": "tokenizers", "type": "[LexicalTokenizer]"}, + "token_filters": {"key": "tokenFilters", "type": "[TokenFilter]"}, + "char_filters": {"key": "charFilters", "type": "[CharFilter]"}, + "normalizers": {"key": "normalizers", "type": "[LexicalNormalizer]"}, + "encryption_key": { + "key": "encryptionKey", + "type": "SearchResourceEncryptionKey", + }, + "similarity": {"key": "similarity", "type": "SimilarityAlgorithm"}, + "e_tag": {"key": "@odata\\.etag", "type": "str"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(SearchIndex, self).__init__(**kwargs) - self.name = kwargs['name'] - self.fields = kwargs['fields'] - self.scoring_profiles = kwargs.get('scoring_profiles', None) - self.default_scoring_profile = kwargs.get('default_scoring_profile', None) - self.cors_options = kwargs.get('cors_options', None) - self.suggesters = kwargs.get('suggesters', None) - self.analyzers = kwargs.get('analyzers', None) - self.tokenizers = kwargs.get('tokenizers', None) - self.token_filters = kwargs.get('token_filters', None) - self.char_filters = kwargs.get('char_filters', None) - self.normalizers = kwargs.get('normalizers', None) - self.encryption_key = kwargs.get('encryption_key', None) - self.similarity = kwargs.get('similarity', None) - self.e_tag = kwargs.get('e_tag', None) + self.name = kwargs["name"] + self.fields = kwargs["fields"] + self.scoring_profiles = kwargs.get("scoring_profiles", None) + self.default_scoring_profile = kwargs.get("default_scoring_profile", None) + self.cors_options = kwargs.get("cors_options", None) + self.suggesters = kwargs.get("suggesters", None) + self.analyzers = kwargs.get("analyzers", None) + self.tokenizers = kwargs.get("tokenizers", None) + self.token_filters = kwargs.get("token_filters", None) + self.char_filters = kwargs.get("char_filters", None) + self.normalizers = kwargs.get("normalizers", None) + self.encryption_key = kwargs.get("encryption_key", None) + self.similarity = kwargs.get("similarity", None) + self.e_tag = kwargs.get("e_tag", None) def _to_generated(self): if self.analyzers: analyzers = [ - pack_analyzer(x) # type: ignore - for x in self.analyzers + pack_analyzer(x) for x in self.analyzers # type: ignore ] # mypy: ignore else: analyzers = None if self.tokenizers: tokenizers = [ - x._to_generated() # pylint:disable=protected-access + x._to_generated() # pylint:disable=protected-access if isinstance(x, PatternTokenizer) else x for x in self.tokenizers @@ -600,9 +603,11 @@ def _to_generated(self): char_filters=self.char_filters, normalizers=self.normalizers, # pylint:disable=protected-access - encryption_key=self.encryption_key._to_generated() if self.encryption_key else None, + encryption_key=self.encryption_key._to_generated() + if self.encryption_key + else None, similarity=self.similarity, - e_tag=self.e_tag + e_tag=self.e_tag, ) @classmethod @@ -611,8 +616,7 @@ def _from_generated(cls, search_index): return None if search_index.analyzers: analyzers = [ - unpack_analyzer(x) # type: ignore - for x in search_index.analyzers + unpack_analyzer(x) for x in search_index.analyzers # type: ignore ] else: analyzers = None @@ -626,7 +630,9 @@ def _from_generated(cls, search_index): else: tokenizers = None if search_index.fields: - fields = [SearchField._from_generated(x) for x in search_index.fields] # pylint:disable=protected-access + fields = [ + SearchField._from_generated(x) for x in search_index.fields # pylint:disable=protected-access + ] else: fields = None try: @@ -646,9 +652,11 @@ def _from_generated(cls, search_index): char_filters=search_index.char_filters, normalizers=normalizers, # pylint:disable=protected-access - encryption_key=SearchResourceEncryptionKey._from_generated(search_index.encryption_key), + encryption_key=SearchResourceEncryptionKey._from_generated( + search_index.encryption_key + ), similarity=search_index.similarity, - e_tag=search_index.e_tag + e_tag=search_index.e_tag, ) @@ -686,6 +694,6 @@ def pack_search_field(search_field): index_analyzer=index_analyzer_name, normalizer=normalizer, synonym_maps=synonym_map_names, - fields=fields + fields=fields, ) - return search_field._to_generated() # pylint:disable=protected-access + return search_field._to_generated() # pylint:disable=protected-access diff --git a/sdk/search/azure-search-documents/azure/search/documents/indexes/models/_models.py b/sdk/search/azure-search-documents/azure/search/documents/indexes/models/_models.py index ce153e6b5fd7..a6369bff4e77 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/indexes/models/_models.py +++ b/sdk/search/azure-search-documents/azure/search/documents/indexes/models/_models.py @@ -15,11 +15,12 @@ SearchIndexerDataSource as _SearchIndexerDataSource, SynonymMap as _SynonymMap, DataSourceCredentials, - AzureActiveDirectoryApplicationCredentials + AzureActiveDirectoryApplicationCredentials, ) DELIMITER = "|" + class AnalyzeTextOptions(msrest.serialization.Model): """Specifies some text and analysis components used to break that text into tokens. @@ -62,27 +63,24 @@ class AnalyzeTextOptions(msrest.serialization.Model): """ _validation = { - 'text': {'required': True}, + "text": {"required": True}, } _attribute_map = { - 'text': {'key': 'text', 'type': 'str'}, - 'analyzer_name': {'key': 'analyzerName', 'type': 'str'}, - 'tokenizer_name': {'key': 'tokenizerName', 'type': 'str'}, - 'token_filters': {'key': 'tokenFilters', 'type': '[str]'}, - 'char_filters': {'key': 'charFilters', 'type': '[str]'}, + "text": {"key": "text", "type": "str"}, + "analyzer_name": {"key": "analyzerName", "type": "str"}, + "tokenizer_name": {"key": "tokenizerName", "type": "str"}, + "token_filters": {"key": "tokenFilters", "type": "[str]"}, + "char_filters": {"key": "charFilters", "type": "[str]"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(AnalyzeTextOptions, self).__init__(**kwargs) - self.text = kwargs['text'] - self.analyzer_name = kwargs.get('analyzer_name', None) - self.tokenizer_name = kwargs.get('tokenizer_name', None) - self.token_filters = kwargs.get('token_filters', None) - self.char_filters = kwargs.get('char_filters', None) + self.text = kwargs["text"] + self.analyzer_name = kwargs.get("analyzer_name", None) + self.tokenizer_name = kwargs.get("tokenizer_name", None) + self.token_filters = kwargs.get("token_filters", None) + self.char_filters = kwargs.get("char_filters", None) def _to_analyze_request(self): return AnalyzeRequest( @@ -90,7 +88,7 @@ def _to_analyze_request(self): analyzer=self.analyzer_name, tokenizer=self.tokenizer_name, token_filters=self.token_filters, - char_filters=self.char_filters + char_filters=self.char_filters, ) @@ -126,28 +124,25 @@ class CustomAnalyzer(LexicalAnalyzer): """ _validation = { - 'odata_type': {'required': True}, - 'name': {'required': True}, - 'tokenizer_name': {'required': True}, + "odata_type": {"required": True}, + "name": {"required": True}, + "tokenizer_name": {"required": True}, } _attribute_map = { - 'odata_type': {'key': '@odata\\.type', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'tokenizer_name': {'key': 'tokenizerName', 'type': 'str'}, - 'token_filters': {'key': 'tokenFilters', 'type': '[str]'}, - 'char_filters': {'key': 'charFilters', 'type': '[str]'}, + "odata_type": {"key": "@odata\\.type", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "tokenizer_name": {"key": "tokenizerName", "type": "str"}, + "token_filters": {"key": "tokenFilters", "type": "[str]"}, + "char_filters": {"key": "charFilters", "type": "[str]"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(CustomAnalyzer, self).__init__(**kwargs) - self.odata_type = '#Microsoft.Azure.Search.CustomAnalyzer' - self.tokenizer_name = kwargs['tokenizer_name'] - self.token_filters = kwargs.get('token_filters', None) - self.char_filters = kwargs.get('char_filters', None) + self.odata_type = "#Microsoft.Azure.Search.CustomAnalyzer" + self.tokenizer_name = kwargs["tokenizer_name"] + self.token_filters = kwargs.get("token_filters", None) + self.char_filters = kwargs.get("char_filters", None) def _to_generated(self): return _CustomAnalyzer( @@ -155,7 +150,7 @@ def _to_generated(self): odata_type=self.odata_type, tokenizer=self.tokenizer_name, token_filters=self.token_filters, - char_filters=self.char_filters + char_filters=self.char_filters, ) @classmethod @@ -167,9 +162,10 @@ def _from_generated(cls, custom_analyzer): odata_type=custom_analyzer.odata_type, tokenizer_name=custom_analyzer.tokenizer, token_filters=custom_analyzer.token_filters, - char_filters=custom_analyzer.char_filters + char_filters=custom_analyzer.char_filters, ) + class PatternAnalyzer(LexicalAnalyzer): """Flexibly separates text into terms via a regular expression. This analyzer is implemented using Apache Lucene. @@ -241,6 +237,7 @@ def _from_generated(cls, pattern_analyzer): stopwords=pattern_analyzer.stopwords, ) + class PatternTokenizer(LexicalTokenizer): """Tokenizer that uses regex pattern matching to construct distinct tokens. This tokenizer is implemented using Apache Lucene. @@ -307,6 +304,7 @@ def _from_generated(cls, pattern_tokenizer): group=pattern_tokenizer.group, ) + class SearchResourceEncryptionKey(msrest.serialization.Model): """A customer-managed encryption key in Azure Key Vault. Keys that you create and manage can be used to encrypt or decrypt data-at-rest in Azure Cognitive Search, such as indexes and synonym maps. @@ -332,35 +330,32 @@ class SearchResourceEncryptionKey(msrest.serialization.Model): """ _validation = { - 'key_name': {'required': True}, - 'key_version': {'required': True}, - 'vault_uri': {'required': True}, + "key_name": {"required": True}, + "key_version": {"required": True}, + "vault_uri": {"required": True}, } _attribute_map = { - 'key_name': {'key': 'keyVaultKeyName', 'type': 'str'}, - 'key_version': {'key': 'keyVaultKeyVersion', 'type': 'str'}, - 'vault_uri': {'key': 'keyVaultUri', 'type': 'str'}, - 'application_id': {'key': 'applicationId', 'type': 'str'}, - 'application_secret': {'key': 'applicationSecret', 'type': 'str'}, + "key_name": {"key": "keyVaultKeyName", "type": "str"}, + "key_version": {"key": "keyVaultKeyVersion", "type": "str"}, + "vault_uri": {"key": "keyVaultUri", "type": "str"}, + "application_id": {"key": "applicationId", "type": "str"}, + "application_secret": {"key": "applicationSecret", "type": "str"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(SearchResourceEncryptionKey, self).__init__(**kwargs) - self.key_name = kwargs['key_name'] - self.key_version = kwargs['key_version'] - self.vault_uri = kwargs['vault_uri'] - self.application_id = kwargs.get('application_id', None) - self.application_secret = kwargs.get('application_secret', None) + self.key_name = kwargs["key_name"] + self.key_version = kwargs["key_version"] + self.vault_uri = kwargs["vault_uri"] + self.application_id = kwargs.get("application_id", None) + self.application_secret = kwargs.get("application_secret", None) def _to_generated(self): if self.application_id and self.application_secret: access_credentials = AzureActiveDirectoryApplicationCredentials( application_id=self.application_id, - application_secret=self.application_secret + application_secret=self.application_secret, ) else: access_credentials = None @@ -368,7 +363,7 @@ def _to_generated(self): key_name=self.key_name, key_version=self.key_version, vault_uri=self.vault_uri, - access_credentials=access_credentials + access_credentials=access_credentials, ) @classmethod @@ -376,8 +371,12 @@ def _from_generated(cls, search_resource_encryption_key): if not search_resource_encryption_key: return None if search_resource_encryption_key.access_credentials: - application_id = search_resource_encryption_key.access_credentials.application_id - application_secret = search_resource_encryption_key.access_credentials.application_secret + application_id = ( + search_resource_encryption_key.access_credentials.application_id + ) + application_secret = ( + search_resource_encryption_key.access_credentials.application_secret + ) else: application_id = None application_secret = None @@ -386,9 +385,10 @@ def _from_generated(cls, search_resource_encryption_key): key_version=search_resource_encryption_key.key_version, vault_uri=search_resource_encryption_key.vault_uri, application_id=application_id, - application_secret=application_secret + application_secret=application_secret, ) + class SynonymMap(msrest.serialization.Model): """Represents a synonym map definition. @@ -418,37 +418,39 @@ class SynonymMap(msrest.serialization.Model): """ _validation = { - 'name': {'required': True}, - 'format': {'required': True, 'constant': True}, - 'synonyms': {'required': True}, + "name": {"required": True}, + "format": {"required": True, "constant": True}, + "synonyms": {"required": True}, } _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'format': {'key': 'format', 'type': 'str'}, - 'synonyms': {'key': 'synonyms', 'type': '[str]'}, - 'encryption_key': {'key': 'encryptionKey', 'type': 'SearchResourceEncryptionKey'}, - 'e_tag': {'key': '@odata\\.etag', 'type': 'str'}, + "name": {"key": "name", "type": "str"}, + "format": {"key": "format", "type": "str"}, + "synonyms": {"key": "synonyms", "type": "[str]"}, + "encryption_key": { + "key": "encryptionKey", + "type": "SearchResourceEncryptionKey", + }, + "e_tag": {"key": "@odata\\.etag", "type": "str"}, } format = "solr" - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(SynonymMap, self).__init__(**kwargs) - self.name = kwargs['name'] - self.synonyms = kwargs['synonyms'] - self.encryption_key = kwargs.get('encryption_key', None) - self.e_tag = kwargs.get('e_tag', None) + self.name = kwargs["name"] + self.synonyms = kwargs["synonyms"] + self.encryption_key = kwargs.get("encryption_key", None) + self.e_tag = kwargs.get("e_tag", None) def _to_generated(self): return _SynonymMap( name=self.name, synonyms="\n".join(self.synonyms), - encryption_key=self.encryption_key._to_generated() if self.encryption_key else None, # pylint:disable=protected-access - e_tag=self.e_tag + encryption_key=self.encryption_key._to_generated() # pylint:disable=protected-access + if self.encryption_key + else None, + e_tag=self.e_tag, ) @classmethod @@ -459,10 +461,13 @@ def _from_generated(cls, synonym_map): name=synonym_map.name, synonyms=synonym_map.synonyms.split("\n"), # pylint:disable=protected-access - encryption_key=SearchResourceEncryptionKey._from_generated(synonym_map.encryption_key), - e_tag=synonym_map.e_tag + encryption_key=SearchResourceEncryptionKey._from_generated( + synonym_map.encryption_key + ), + e_tag=synonym_map.e_tag, ) + class SearchIndexerDataSourceConnection(msrest.serialization.Model): """Represents a datasource connection definition, which can be used to configure an indexer. @@ -489,45 +494,50 @@ class SearchIndexerDataSourceConnection(msrest.serialization.Model): """ _validation = { - 'name': {'required': True}, - 'type': {'required': True}, - 'connection_string': {'required': True}, - 'container': {'required': True}, + "name": {"required": True}, + "type": {"required": True}, + "connection_string": {"required": True}, + "container": {"required": True}, } _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'connection_string': {'key': 'connectionString', 'type': 'str'}, - 'container': {'key': 'container', 'type': 'SearchIndexerDataContainer'}, - 'data_change_detection_policy': {'key': 'dataChangeDetectionPolicy', 'type': 'DataChangeDetectionPolicy'}, - 'data_deletion_detection_policy': {'key': 'dataDeletionDetectionPolicy', 'type': 'DataDeletionDetectionPolicy'}, - 'e_tag': {'key': '@odata\\.etag', 'type': 'str'}, + "name": {"key": "name", "type": "str"}, + "description": {"key": "description", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "connection_string": {"key": "connectionString", "type": "str"}, + "container": {"key": "container", "type": "SearchIndexerDataContainer"}, + "data_change_detection_policy": { + "key": "dataChangeDetectionPolicy", + "type": "DataChangeDetectionPolicy", + }, + "data_deletion_detection_policy": { + "key": "dataDeletionDetectionPolicy", + "type": "DataDeletionDetectionPolicy", + }, + "e_tag": {"key": "@odata\\.etag", "type": "str"}, } - def __init__( - self, - **kwargs - ): + def __init__(self, **kwargs): super(SearchIndexerDataSourceConnection, self).__init__(**kwargs) - self.name = kwargs['name'] - self.description = kwargs.get('description', None) - self.type = kwargs['type'] - self.connection_string = kwargs['connection_string'] - self.container = kwargs['container'] - self.data_change_detection_policy = kwargs.get('data_change_detection_policy', None) - self.data_deletion_detection_policy = kwargs.get('data_deletion_detection_policy', None) - self.e_tag = kwargs.get('e_tag', None) + self.name = kwargs["name"] + self.description = kwargs.get("description", None) + self.type = kwargs["type"] + self.connection_string = kwargs["connection_string"] + self.container = kwargs["container"] + self.data_change_detection_policy = kwargs.get( + "data_change_detection_policy", None + ) + self.data_deletion_detection_policy = kwargs.get( + "data_deletion_detection_policy", None + ) + self.e_tag = kwargs.get("e_tag", None) def _to_generated(self): if self.connection_string is None or self.connection_string == "": connection_string = "" else: connection_string = self.connection_string - credentials = DataSourceCredentials( - connection_string=connection_string - ) + credentials = DataSourceCredentials(connection_string=connection_string) return _SearchIndexerDataSource( name=self.name, description=self.description, @@ -536,15 +546,18 @@ def _to_generated(self): container=self.container, data_change_detection_policy=self.data_change_detection_policy, data_deletion_detection_policy=self.data_deletion_detection_policy, - e_tag=self.e_tag + e_tag=self.e_tag, ) @classmethod def _from_generated(cls, search_indexer_data_source): if not search_indexer_data_source: return None - connection_string = search_indexer_data_source.credentials.connection_string \ - if search_indexer_data_source.credentials else None + connection_string = ( + search_indexer_data_source.credentials.connection_string + if search_indexer_data_source.credentials + else None + ) return cls( name=search_indexer_data_source.name, description=search_indexer_data_source.description, @@ -553,7 +566,7 @@ def _from_generated(cls, search_indexer_data_source): container=search_indexer_data_source.container, data_change_detection_policy=search_indexer_data_source.data_change_detection_policy, data_deletion_detection_policy=search_indexer_data_source.data_deletion_detection_policy, - e_tag=search_indexer_data_source.e_tag + e_tag=search_indexer_data_source.e_tag, ) @@ -561,7 +574,7 @@ def pack_analyzer(analyzer): if not analyzer: return None if isinstance(analyzer, (PatternAnalyzer, CustomAnalyzer)): - return analyzer._to_generated() # pylint:disable=protected-access + return analyzer._to_generated() # pylint:disable=protected-access return analyzer @@ -569,7 +582,11 @@ def unpack_analyzer(analyzer): if not analyzer: return None if isinstance(analyzer, _PatternAnalyzer): - return PatternAnalyzer._from_generated(analyzer) # pylint:disable=protected-access + return PatternAnalyzer._from_generated( # pylint:disable=protected-access + analyzer + ) if isinstance(analyzer, _CustomAnalyzer): - return CustomAnalyzer._from_generated(analyzer) # pylint:disable=protected-access + return CustomAnalyzer._from_generated( # pylint:disable=protected-access + analyzer + ) return analyzer From 7784c9f0f1cdbc938120f6619efe5fa04696e349 Mon Sep 17 00:00:00 2001 From: AriZavala2 <77034370+AriZavala2@users.noreply.github.com> Date: Tue, 10 Aug 2021 14:38:10 -0700 Subject: [PATCH 042/104] Release for Python, August 10 (#20211) --- .../azure-communication-networktraversal/CHANGELOG.md | 2 +- .../azure-communication-networktraversal/dev_requirements.txt | 2 +- sdk/communication/azure-communication-networktraversal/setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sdk/communication/azure-communication-networktraversal/CHANGELOG.md b/sdk/communication/azure-communication-networktraversal/CHANGELOG.md index a8c41fabb4d3..7025892aa5c4 100644 --- a/sdk/communication/azure-communication-networktraversal/CHANGELOG.md +++ b/sdk/communication/azure-communication-networktraversal/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 1.0.0b1 (2021-08-04) +## 1.0.0b1 (2021-08-10) - Preview release of `azure-communication-networktraversal`. The first preview of the Azure Communication Relay Client has the following features: diff --git a/sdk/communication/azure-communication-networktraversal/dev_requirements.txt b/sdk/communication/azure-communication-networktraversal/dev_requirements.txt index 2fa22e44f750..82a79d424024 100644 --- a/sdk/communication/azure-communication-networktraversal/dev_requirements.txt +++ b/sdk/communication/azure-communication-networktraversal/dev_requirements.txt @@ -1,6 +1,6 @@ -e ../../../tools/azure-sdk-tools -e ../../identity/azure-identity -../azure-communication-identity +-e ../azure-communication-identity ../../core/azure-core aiohttp>=3.0; python_version >= '3.5' -e ../../../tools/azure-devtools \ No newline at end of file diff --git a/sdk/communication/azure-communication-networktraversal/setup.py b/sdk/communication/azure-communication-networktraversal/setup.py index cf35e25b7f3f..b40d3021af48 100644 --- a/sdk/communication/azure-communication-networktraversal/setup.py +++ b/sdk/communication/azure-communication-networktraversal/setup.py @@ -44,7 +44,7 @@ license='MIT License', # ensure that the development status reflects the status of your package classifiers=[ - "Development Status :: 5 - Production/Stable", + "Development Status :: 4 - Beta", 'Programming Language :: Python', 'Programming Language :: Python :: 2', From a5a4ef4a7adc8c730dd7da2e9e3bdb43c9376586 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Tue, 10 Aug 2021 14:52:14 -0700 Subject: [PATCH 043/104] Increment version for keyvault releases (#20212) Increment package version after release of azure-keyvault-keys --- sdk/keyvault/azure-keyvault-keys/CHANGELOG.md | 10 ++++++++++ .../azure/keyvault/keys/_version.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/sdk/keyvault/azure-keyvault-keys/CHANGELOG.md b/sdk/keyvault/azure-keyvault-keys/CHANGELOG.md index a7991fb601ba..70b236074e86 100644 --- a/sdk/keyvault/azure-keyvault-keys/CHANGELOG.md +++ b/sdk/keyvault/azure-keyvault-keys/CHANGELOG.md @@ -1,5 +1,15 @@ # Release History +## 4.5.0b3 (Unreleased) + +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes + ## 4.5.0b2 (2021-08-10) ### Features Added diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_version.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_version.py index 86e5fd1571e5..e8c03ac83409 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_version.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_version.py @@ -3,4 +3,4 @@ # Licensed under the MIT License. # ------------------------------------ -VERSION = "4.5.0b2" +VERSION = "4.5.0b3" From 4d55b604340d3bbcc1cdbe4248f16fd41ad1c662 Mon Sep 17 00:00:00 2001 From: AriZavala2 <77034370+AriZavala2@users.noreply.github.com> Date: Wed, 11 Aug 2021 08:06:46 -0700 Subject: [PATCH 044/104] Remove communication-identity dependency from the client. (#20221) * Remove communication-identity dependency * Adding new release date (Unblock production release for chat) --- .../azure-communication-networktraversal/CHANGELOG.md | 2 +- .../networktraversal/_communication_relay_client.py | 2 +- .../networktraversal/aio/_communication_relay_client_async.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sdk/communication/azure-communication-networktraversal/CHANGELOG.md b/sdk/communication/azure-communication-networktraversal/CHANGELOG.md index 7025892aa5c4..89d6a8ed08e8 100644 --- a/sdk/communication/azure-communication-networktraversal/CHANGELOG.md +++ b/sdk/communication/azure-communication-networktraversal/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 1.0.0b1 (2021-08-10) +## 1.0.0b1 (2021-08-11) - Preview release of `azure-communication-networktraversal`. The first preview of the Azure Communication Relay Client has the following features: diff --git a/sdk/communication/azure-communication-networktraversal/azure/communication/networktraversal/_communication_relay_client.py b/sdk/communication/azure-communication-networktraversal/azure/communication/networktraversal/_communication_relay_client.py index 80c43e22e557..1605aeb609e1 100644 --- a/sdk/communication/azure-communication-networktraversal/azure/communication/networktraversal/_communication_relay_client.py +++ b/sdk/communication/azure-communication-networktraversal/azure/communication/networktraversal/_communication_relay_client.py @@ -7,7 +7,6 @@ from typing import TYPE_CHECKING, Any from azure.core.tracing.decorator import distributed_trace -from azure.communication.identity import CommunicationUserIdentifier from ._generated._communication_network_traversal_client\ import CommunicationNetworkTraversalClient\ @@ -18,6 +17,7 @@ if TYPE_CHECKING: from azure.core.credentials import TokenCredential + from azure.communication.identity import CommunicationUserIdentifier class CommunicationRelayClient(object): """Azure Communication Services Relay client. diff --git a/sdk/communication/azure-communication-networktraversal/azure/communication/networktraversal/aio/_communication_relay_client_async.py b/sdk/communication/azure-communication-networktraversal/azure/communication/networktraversal/aio/_communication_relay_client_async.py index 781eb106cd19..3a3939eb7f2d 100644 --- a/sdk/communication/azure-communication-networktraversal/azure/communication/networktraversal/aio/_communication_relay_client_async.py +++ b/sdk/communication/azure-communication-networktraversal/azure/communication/networktraversal/aio/_communication_relay_client_async.py @@ -7,7 +7,6 @@ from typing import TYPE_CHECKING from azure.core.tracing.decorator_async import distributed_trace_async -from azure.communication.identity import CommunicationUserIdentifier from .._generated.aio._communication_network_traversal_client\ import CommunicationNetworkTraversalClient as CommunicationNetworkTraversalClientGen from .._shared.utils import parse_connection_str, get_authentication_policy @@ -16,6 +15,7 @@ if TYPE_CHECKING: from azure.core.credentials_async import AsyncTokenCredential from .._generated.models import CommunicationRelayConfiguration + from azure.communication.identity import CommunicationUserIdentifier class CommunicationRelayClient: @@ -83,7 +83,7 @@ def from_connection_string( @distributed_trace_async async def get_relay_configuration( self, - user: CommunicationUserIdentifier, + user: 'CommunicationUserIdentifier', **kwargs # type: Any ) -> 'CommunicationRelayConfiguration': """get a Communication Relay configuration. From a152bfbd45103013f6ca27dbbded03913cd43dc0 Mon Sep 17 00:00:00 2001 From: Xiaoxi Fu <49707495+xiafu-msft@users.noreply.github.com> Date: Wed, 11 Aug 2021 09:54:15 -0700 Subject: [PATCH 045/104] [Storage]fix live test (#20217) --- .../azure/storage/blob/_blob_client.py | 4 ++-- .../azure/storage/blob/aio/_blob_client_async.py | 4 ++-- .../azure-storage-blob/tests/test_append_blob_async.py | 2 +- .../azure-storage-blob/tests/test_block_blob_async.py | 2 +- .../azure-storage-blob/tests/test_common_blob_async.py | 10 +++++----- .../azure-storage-blob/tests/test_page_blob_async.py | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py index 042f055eb0b9..1e05f5efa6b5 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py @@ -1446,7 +1446,7 @@ def delete_immutability_policy(self, **kwargs): @distributed_trace def set_legal_hold(self, legal_hold, **kwargs): - # type: (**Any) -> Dict[str, Union[str, datetime, bool]] + # type: (bool, **Any) -> Dict[str, Union[str, datetime, bool]] """The Set Legal Hold operation sets a legal hold on the blob. .. versionadded:: 12.10.0 @@ -1457,7 +1457,7 @@ def set_legal_hold(self, legal_hold, **kwargs): :keyword int timeout: The timeout parameter is expressed in seconds. :returns: Key value pairs of blob tags. - :rtype: Dict[str, str] + :rtype: Dict[str, Union[str, datetime, bool]] """ return self._client.blob.set_legal_hold(legal_hold, cls=return_response_headers, **kwargs) diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py index ba05360a7efa..d75943b97c97 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py @@ -847,7 +847,7 @@ async def delete_immutability_policy(self, **kwargs): @distributed_trace_async async def set_legal_hold(self, legal_hold, **kwargs): - # type: (**Any) -> Dict[str, Union[str, datetime, bool]] + # type: (bool, **Any) -> Dict[str, Union[str, datetime, bool]] """The Set Legal Hold operation sets a legal hold on the blob. .. versionadded:: 12.10.0 @@ -858,7 +858,7 @@ async def set_legal_hold(self, legal_hold, **kwargs): :keyword int timeout: The timeout parameter is expressed in seconds. :returns: Key value pairs of blob tags. - :rtype: Dict[str, str] + :rtype: Dict[str, Union[str, datetime, bool]] """ return await self._client.blob.set_legal_hold(legal_hold, cls=return_response_headers, **kwargs) diff --git a/sdk/storage/azure-storage-blob/tests/test_append_blob_async.py b/sdk/storage/azure-storage-blob/tests/test_append_blob_async.py index 2d3465955be4..54196008dc47 100644 --- a/sdk/storage/azure-storage-blob/tests/test_append_blob_async.py +++ b/sdk/storage/azure-storage-blob/tests/test_append_blob_async.py @@ -1463,6 +1463,6 @@ async def test_create_append_blob_with_immutability_policy_async(self, resource_ await blob.delete_immutability_policy() await blob.set_legal_hold(False) await blob.delete_blob() - await mgmt_client.blob_containers.delete(resource_group.name, storage_account.name, self.container_name) + await mgmt_client.blob_containers.delete(resource_group.name, storage_account.name, container_name) # ------------------------------------------------------------------------------ diff --git a/sdk/storage/azure-storage-blob/tests/test_block_blob_async.py b/sdk/storage/azure-storage-blob/tests/test_block_blob_async.py index bbb509da70b3..e852667fb2aa 100644 --- a/sdk/storage/azure-storage-blob/tests/test_block_blob_async.py +++ b/sdk/storage/azure-storage-blob/tests/test_block_blob_async.py @@ -604,7 +604,7 @@ async def test_put_block_with_immutability_policy(self, resource_group, location await blob.delete_immutability_policy() await blob.set_legal_hold(False) await blob.delete_blob() - await mgmt_client.blob_containers.delete(resource_group.name, storage_account.name, self.container_name) + await mgmt_client.blob_containers.delete(resource_group.name, storage_account.name, container_name) @GlobalStorageAccountPreparer() @AsyncStorageTestCase.await_prepared_test diff --git a/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py b/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py index 2e3dd524a7e0..6429d514594b 100644 --- a/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py +++ b/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py @@ -1517,7 +1517,7 @@ async def test_copy_blob_with_immutability_policy(self, resource_group, location await copyblob.delete_immutability_policy() await copyblob.set_legal_hold(False) await copyblob.delete_blob() - await mgmt_client.blob_containers.delete(resource_group.name, storage_account.name, self.container_name) + await mgmt_client.blob_containers.delete(resource_group.name, storage_account.name, container_name) # @GlobalStorageAccountPreparer() # @AsyncStorageTestCase.await_prepared_test @@ -2617,7 +2617,7 @@ async def test_blob_immutability_policy(self, resource_group, location, storage_ await blob.delete_immutability_policy() await blob.set_legal_hold(False) await blob.delete_blob() - await mgmt_client.blob_containers.delete(resource_group.name, storage_account.name, self.container_name) + await mgmt_client.blob_containers.delete(resource_group.name, storage_account.name, container_name) @GlobalResourceGroupPreparer() @BlobAccountPreparer(name_prefix='storagename', is_versioning_enabled=True, location="canadacentral", random_name_enabled=True) @@ -2656,7 +2656,7 @@ async def test_blob_legal_hold(self, resource_group, location, storage_account, await blob.delete_immutability_policy() await blob.set_legal_hold(False) await blob.delete_blob() - await mgmt_client.blob_containers.delete(resource_group.name, storage_account.name, self.container_name) + await mgmt_client.blob_containers.delete(resource_group.name, storage_account.name, container_name) @GlobalResourceGroupPreparer() @BlobAccountPreparer(name_prefix='storagename', is_versioning_enabled=True, location="canadacentral", random_name_enabled=True) @@ -2700,7 +2700,7 @@ async def test_download_blob_with_immutability_policy(self, resource_group, loca await blob.delete_immutability_policy() await blob.set_legal_hold(False) await blob.delete_blob() - await mgmt_client.blob_containers.delete(resource_group.name, storage_account.name, self.container_name) + await mgmt_client.blob_containers.delete(resource_group.name, storage_account.name, container_name) @GlobalResourceGroupPreparer() @BlobAccountPreparer(name_prefix='storagename', is_versioning_enabled=True, location="canadacentral", random_name_enabled=True) @@ -2740,6 +2740,6 @@ async def test_list_blobs_with_immutability_policy(self, resource_group, locatio await blob.delete_immutability_policy() await blob.set_legal_hold(False) await blob.delete_blob() - await mgmt_client.blob_containers.delete(resource_group.name, storage_account.name, self.container_name) + await mgmt_client.blob_containers.delete(resource_group.name, storage_account.name, container_name) # ------------------------------------------------------------------------------ diff --git a/sdk/storage/azure-storage-blob/tests/test_page_blob_async.py b/sdk/storage/azure-storage-blob/tests/test_page_blob_async.py index 134786ebc20c..e10b23715970 100644 --- a/sdk/storage/azure-storage-blob/tests/test_page_blob_async.py +++ b/sdk/storage/azure-storage-blob/tests/test_page_blob_async.py @@ -228,7 +228,7 @@ async def test_create_blob_with_immutability_policy(self, resource_group, locati await blob.delete_immutability_policy() await blob.set_legal_hold(False) await blob.delete_blob() - await mgmt_client.blob_containers.delete(resource_group.name, storage_account.name, self.container_name) + await mgmt_client.blob_containers.delete(resource_group.name, storage_account.name, container_name) @pytest.mark.playback_test_only @GlobalStorageAccountPreparer() From d5cec44b224477cb05547e28838cba5a4e80cd6c Mon Sep 17 00:00:00 2001 From: Xiang Yan Date: Wed, 11 Aug 2021 09:57:30 -0700 Subject: [PATCH 046/104] update release date (#20228) --- sdk/containerregistry/azure-containerregistry/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/containerregistry/azure-containerregistry/CHANGELOG.md b/sdk/containerregistry/azure-containerregistry/CHANGELOG.md index fd1532276e2b..502d2de7e70c 100644 --- a/sdk/containerregistry/azure-containerregistry/CHANGELOG.md +++ b/sdk/containerregistry/azure-containerregistry/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 1.0.0b5 (2021-08-10) +## 1.0.0b5 (2021-08-11) ### Bugs Fixed From 10c5169bc87a1f685a99ea0e3cb17772bfc462a5 Mon Sep 17 00:00:00 2001 From: megheshpatil <58992144+megheshpatil@users.noreply.github.com> Date: Wed, 11 Aug 2021 12:18:47 -0700 Subject: [PATCH 047/104] Update test_phone_number_administration_client_async.py (#20185) * Update test_phone_number_administration_client_async.py Updated Error code for the LiveSdk test causing error * Update test_phone_number_administration_client_async.py Reverted back to the original changes * Update test_phone_number_administration_client_async.py Updated Error code causing LiveSdk test failure * Update test_phone_number_administration_client.py Updated Error Code * Update test_phone_number_administration_client.py reverted error code in test_phone_number_administration_client.py * Updated Phone Numbers being used in the SDK Test --- .../test/test_phone_number_administration_client.py | 2 +- .../test/test_phone_number_administration_client_async.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/communication/azure-communication-phonenumbers/test/test_phone_number_administration_client.py b/sdk/communication/azure-communication-phonenumbers/test/test_phone_number_administration_client.py index a01803c429f7..dee9655fc6d3 100644 --- a/sdk/communication/azure-communication-phonenumbers/test/test_phone_number_administration_client.py +++ b/sdk/communication/azure-communication-phonenumbers/test/test_phone_number_administration_client.py @@ -221,7 +221,7 @@ def test_update_phone_number_capabilities_with_invalid_phone_number(self): if self.is_playback(): phone_number = "sanitized" else: - phone_number = "+14255550123" + phone_number = "+14255555111" with pytest.raises(Exception) as ex: self.phone_number_client.begin_update_phone_number_capabilities( diff --git a/sdk/communication/azure-communication-phonenumbers/test/test_phone_number_administration_client_async.py b/sdk/communication/azure-communication-phonenumbers/test/test_phone_number_administration_client_async.py index cdd6bc23040d..871ade353ae5 100644 --- a/sdk/communication/azure-communication-phonenumbers/test/test_phone_number_administration_client_async.py +++ b/sdk/communication/azure-communication-phonenumbers/test/test_phone_number_administration_client_async.py @@ -253,7 +253,7 @@ async def test_update_phone_number_capabilities_with_invalid_phone_number(self): if self.is_playback(): phone_number = "sanitized" else: - phone_number = "+14255550123" + phone_number = "+14255555111" with pytest.raises(Exception) as ex: async with self.phone_number_client: From 9c0c071a335ec800751abd7cab5a8027291a92da Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Wed, 11 Aug 2021 13:37:12 -0700 Subject: [PATCH 048/104] Sync eng/common directory with azure-sdk-tools for PR 1866 (#20219) * Deploy for stress tests at resource group scope * Automatically compile bicep files in stress test deploy script Co-authored-by: Ben Broderick Phillips --- .../stress-testing/deploy-stress-tests.ps1 | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/eng/common/scripts/stress-testing/deploy-stress-tests.ps1 b/eng/common/scripts/stress-testing/deploy-stress-tests.ps1 index 1d8d958a2cd0..25af8c9edd72 100644 --- a/eng/common/scripts/stress-testing/deploy-stress-tests.ps1 +++ b/eng/common/scripts/stress-testing/deploy-stress-tests.ps1 @@ -116,10 +116,15 @@ function DeployStressPackage( exit 1 } - if ($pushImages) { - Run helm dependency update $pkg.Directory - if ($LASTEXITCODE) { return $LASTEXITCODE } + Run helm dependency update $pkg.Directory + if ($LASTEXITCODE) { return } + + if (Test-Path "$($pkg.Directory)/test-resources.bicep") { + Run az bicep build -f "$($pkg.Directory)/test-resources.bicep" + if ($LASTEXITCODE) { return } + } + if ($pushImages) { $dockerFiles = Get-ChildItem "$($pkg.Directory)/Dockerfile*" foreach ($dockerFile in $dockerFiles) { # Infer docker image name from parent directory name, if file is named `Dockerfile` @@ -131,13 +136,13 @@ function DeployStressPackage( $imageTag = "${registry}.azurecr.io/$($repository.ToLower())/$($imageName):$deployId" Write-Host "Building and pushing stress test docker image '$imageTag'" Run docker build -t $imageTag -f $dockerFile.FullName $dockerFile.DirectoryName - if ($LASTEXITCODE) { return $LASTEXITCODE } + if ($LASTEXITCODE) { return } Run docker push $imageTag if ($LASTEXITCODE) { if ($PSCmdlet.ParameterSetName -ne 'DoLogin') { Write-Warning "If docker push is failing due to authentication issues, try calling this script with '-Login'" } - return $LASTEXITCODE + return } } } @@ -157,7 +162,7 @@ function DeployStressPackage( # can be the result of cancelled `upgrade` operations (e.g. ctrl-c). # See https://github.com/helm/helm/issues/4558 Write-Warning "The issue may be fixable by first running 'helm rollback -n $($pkg.Namespace) $($pkg.ReleaseName)'" - return $LASTEXITCODE + return } # Helm 3 stores release information in kubernetes secrets. The only way to add extra labels around From c4968cb1c52e5f4a0efb48d66629a3205bea5d89 Mon Sep 17 00:00:00 2001 From: swathipil <76007337+swathipil@users.noreply.github.com> Date: Wed, 11 Aug 2021 18:37:13 -0700 Subject: [PATCH 049/104] [Docs] append backslash to recording fake url (#20227) --- doc/dev/tests.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/dev/tests.md b/doc/dev/tests.md index 0133494bc3f0..94c58c83cb5e 100644 --- a/doc/dev/tests.md +++ b/doc/dev/tests.md @@ -171,7 +171,7 @@ from devtools_testutils import PowerShellPreparer MyServicePreparer = functools.partial( PowerShellPreparer, "", - schemaregistry_endpoint="fake_resource.servicebus.windows.net", + schemaregistry_endpoint="fake_resource.servicebus.windows.net/", schemaregistry_group="fakegroup" ) ``` @@ -195,7 +195,7 @@ from azure.schemaregistry import SchemaRegistryClient SchemaRegistryPreparer = functools.partial( PowerShellPreparer, 'schemaregistry', - schemaregistry_endpoint="fake_resouce.servicebus.windows.net", + schemaregistry_endpoint="fake_resource.servicebus.windows.net/", schemaregistry_group="fakegroup" ) From 1ffb583d57347257159638ae5f71fa85d14c2366 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Thu, 12 Aug 2021 08:47:17 -0700 Subject: [PATCH 050/104] Increment package version after release of azure-containerregistry (#20238) --- .../azure-containerregistry/CHANGELOG.md | 10 ++++++++++ .../azure/containerregistry/_version.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/sdk/containerregistry/azure-containerregistry/CHANGELOG.md b/sdk/containerregistry/azure-containerregistry/CHANGELOG.md index 502d2de7e70c..0517e051fcbd 100644 --- a/sdk/containerregistry/azure-containerregistry/CHANGELOG.md +++ b/sdk/containerregistry/azure-containerregistry/CHANGELOG.md @@ -1,5 +1,15 @@ # Release History +## 1.0.0b6 (Unreleased) + +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes + ## 1.0.0b5 (2021-08-11) ### Bugs Fixed diff --git a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_version.py b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_version.py index ab62a58fce82..b24180340dd3 100644 --- a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_version.py +++ b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_version.py @@ -3,4 +3,4 @@ # Licensed under the MIT License. # ------------------------------------ -VERSION = "1.0.0b5" +VERSION = "1.0.0b6" From cc069f811e117b4a324966eb1b6ffa6f9a590a29 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Thu, 12 Aug 2021 09:26:14 -0700 Subject: [PATCH 051/104] Increment version for synapse releases (#20208) * Increment package version after release of azure-synapse-accesscontrol * Increment package version after release of azure-synapse-managedprivateendpoints * Increment package version after release of azure-synapse-artifacts * Increment package version after release of azure-synapse-spark * Update CHANGELOG.md * Update _version.py * Update setup.py * Update CHANGELOG.md * Update _version.py * Update setup.py * Update CHANGELOG.md * Update _version.py * Update setup.py * Update CHANGELOG.md * Update _version.py * Update setup.py Co-authored-by: Xiang Yan --- sdk/synapse/azure-synapse-accesscontrol/CHANGELOG.md | 10 ++++++++++ .../azure/synapse/accesscontrol/_version.py | 2 +- sdk/synapse/azure-synapse-artifacts/CHANGELOG.md | 10 ++++++++++ .../azure/synapse/artifacts/_version.py | 2 +- sdk/synapse/azure-synapse-artifacts/setup.py | 2 +- .../azure-synapse-managedprivateendpoints/CHANGELOG.md | 10 ++++++++++ .../azure/synapse/managedprivateendpoints/_version.py | 2 +- sdk/synapse/azure-synapse-spark/CHANGELOG.md | 10 ++++++++++ .../azure/synapse/spark/_version.py | 2 +- 9 files changed, 45 insertions(+), 5 deletions(-) diff --git a/sdk/synapse/azure-synapse-accesscontrol/CHANGELOG.md b/sdk/synapse/azure-synapse-accesscontrol/CHANGELOG.md index d862275215fc..5eb48cebcc3f 100644 --- a/sdk/synapse/azure-synapse-accesscontrol/CHANGELOG.md +++ b/sdk/synapse/azure-synapse-accesscontrol/CHANGELOG.md @@ -1,5 +1,15 @@ # Release History +## 0.8.0 (Unreleased) + +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes + ## 0.7.0 (2021-08-10) - Updated API version to "2020-12-01" diff --git a/sdk/synapse/azure-synapse-accesscontrol/azure/synapse/accesscontrol/_version.py b/sdk/synapse/azure-synapse-accesscontrol/azure/synapse/accesscontrol/_version.py index a712687790e5..680dffc0001f 100644 --- a/sdk/synapse/azure-synapse-accesscontrol/azure/synapse/accesscontrol/_version.py +++ b/sdk/synapse/azure-synapse-accesscontrol/azure/synapse/accesscontrol/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "0.7.0" +VERSION = "0.8.0" diff --git a/sdk/synapse/azure-synapse-artifacts/CHANGELOG.md b/sdk/synapse/azure-synapse-artifacts/CHANGELOG.md index fc6e5d0f9e2c..253ee6252d7b 100644 --- a/sdk/synapse/azure-synapse-artifacts/CHANGELOG.md +++ b/sdk/synapse/azure-synapse-artifacts/CHANGELOG.md @@ -1,5 +1,15 @@ # Release History +## 0.9.0 (Unreleased) + +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes + ## 0.8.0 (2021-08-10) - Updated API version to "2020-12-01" which is the default API version diff --git a/sdk/synapse/azure-synapse-artifacts/azure/synapse/artifacts/_version.py b/sdk/synapse/azure-synapse-artifacts/azure/synapse/artifacts/_version.py index 680dffc0001f..c78e629b6f08 100644 --- a/sdk/synapse/azure-synapse-artifacts/azure/synapse/artifacts/_version.py +++ b/sdk/synapse/azure-synapse-artifacts/azure/synapse/artifacts/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "0.8.0" +VERSION = "0.9.0" diff --git a/sdk/synapse/azure-synapse-artifacts/setup.py b/sdk/synapse/azure-synapse-artifacts/setup.py index e1990cfb9183..df7989bdbbab 100644 --- a/sdk/synapse/azure-synapse-artifacts/setup.py +++ b/sdk/synapse/azure-synapse-artifacts/setup.py @@ -62,7 +62,7 @@ author_email='azpysdkhelp@microsoft.com', url='https://github.com/Azure/azure-sdk-for-python', classifiers=[ - "Development Status :: 4 - Beta", + 'Development Status :: 4 - Beta', 'Programming Language :: Python', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', diff --git a/sdk/synapse/azure-synapse-managedprivateendpoints/CHANGELOG.md b/sdk/synapse/azure-synapse-managedprivateendpoints/CHANGELOG.md index 28f7cf9c944d..c49791911da2 100644 --- a/sdk/synapse/azure-synapse-managedprivateendpoints/CHANGELOG.md +++ b/sdk/synapse/azure-synapse-managedprivateendpoints/CHANGELOG.md @@ -1,5 +1,15 @@ # Release History +## 0.5.0 (Unreleased) + +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes + ## 0.4.0 (2021-08-10) - Updated API version to "2020-12-01" which is the default API version diff --git a/sdk/synapse/azure-synapse-managedprivateendpoints/azure/synapse/managedprivateendpoints/_version.py b/sdk/synapse/azure-synapse-managedprivateendpoints/azure/synapse/managedprivateendpoints/_version.py index c8c0d6c52c29..c4551baee432 100644 --- a/sdk/synapse/azure-synapse-managedprivateendpoints/azure/synapse/managedprivateendpoints/_version.py +++ b/sdk/synapse/azure-synapse-managedprivateendpoints/azure/synapse/managedprivateendpoints/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "0.4.0" +VERSION = "0.5.0" diff --git a/sdk/synapse/azure-synapse-spark/CHANGELOG.md b/sdk/synapse/azure-synapse-spark/CHANGELOG.md index de8c9c92a46b..cd2e8ca2a95a 100644 --- a/sdk/synapse/azure-synapse-spark/CHANGELOG.md +++ b/sdk/synapse/azure-synapse-spark/CHANGELOG.md @@ -1,5 +1,15 @@ # Release History +## 0.7.0 (Unreleased) + +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes + ## 0.6.0 (2021-08-10) - Updated API version to "2020-12-01" diff --git a/sdk/synapse/azure-synapse-spark/azure/synapse/spark/_version.py b/sdk/synapse/azure-synapse-spark/azure/synapse/spark/_version.py index 9d17420e1c80..a712687790e5 100644 --- a/sdk/synapse/azure-synapse-spark/azure/synapse/spark/_version.py +++ b/sdk/synapse/azure-synapse-spark/azure/synapse/spark/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "0.6.0" +VERSION = "0.7.0" From a7898c238fc19c4db149be74aad34cb06d7923ec Mon Sep 17 00:00:00 2001 From: swathipil <76007337+swathipil@users.noreply.github.com> Date: Thu, 12 Aug 2021 10:19:49 -0700 Subject: [PATCH 052/104] [SchemaRegistry] move cache to client from serializer (#20065) * move cache to client * add cache to sync client * update async client * recordings * re-record with backslash * lint * test same properties object --- .../azure-schemaregistry/CHANGELOG.md | 3 + .../azure-schemaregistry/README.md | 2 +- .../schemaregistry/_schema_registry_client.py | 88 +++++++---- .../aio/_schema_registry_client_async.py | 60 ++++++-- ...egistry_async.test_schema_basic_async.yaml | 60 ++------ ....test_schema_negative_no_schema_async.yaml | 22 +-- ...ry_async.test_schema_same_twice_async.yaml | 32 ++-- ...gistry_async.test_schema_update_async.yaml | 116 +++++++++++---- .../async_tests/test_schema_registry_async.py | 47 +++++- ...est_schema_registry.test_schema_basic.yaml | 70 ++------- ...gistry.test_schema_negative_no_schema.yaml | 18 +-- ...chema_registry.test_schema_same_twice.yaml | 28 ++-- ...st_schema_registry.test_schema_update.yaml | 138 +++++++++++++++--- .../tests/test_schema_registry.py | 46 +++++- 14 files changed, 486 insertions(+), 244 deletions(-) diff --git a/sdk/schemaregistry/azure-schemaregistry/CHANGELOG.md b/sdk/schemaregistry/azure-schemaregistry/CHANGELOG.md index 9d940be64bde..916c2e66c36b 100644 --- a/sdk/schemaregistry/azure-schemaregistry/CHANGELOG.md +++ b/sdk/schemaregistry/azure-schemaregistry/CHANGELOG.md @@ -2,6 +2,9 @@ ## 1.0.0b2 (Unreleased) +### Features Added + +- Support caching of registered schemas and send requests to the service only if the cache does not have the looked-up schema/schema ID. ## 1.0.0b1 (2020-09-09) diff --git a/sdk/schemaregistry/azure-schemaregistry/README.md b/sdk/schemaregistry/azure-schemaregistry/README.md index d90997a211b1..8b0e9c894f8c 100644 --- a/sdk/schemaregistry/azure-schemaregistry/README.md +++ b/sdk/schemaregistry/azure-schemaregistry/README.md @@ -40,7 +40,7 @@ schema_registry_client = SchemaRegistryClient(endpoint, credential) - Schema: Schema is the organization or structure for data. -- SchemaRegistryClient: `SchemaRegistryClient ` provides the API for storing and retrieving schemas in schema registry. +- SchemaRegistryClient: `SchemaRegistryClient` provides the API for storing and retrieving schemas in schema registry. ## Examples diff --git a/sdk/schemaregistry/azure-schemaregistry/azure/schemaregistry/_schema_registry_client.py b/sdk/schemaregistry/azure-schemaregistry/azure/schemaregistry/_schema_registry_client.py index 524e5b81e636..a7ab97fc1d80 100644 --- a/sdk/schemaregistry/azure-schemaregistry/azure/schemaregistry/_schema_registry_client.py +++ b/sdk/schemaregistry/azure-schemaregistry/azure/schemaregistry/_schema_registry_client.py @@ -27,7 +27,10 @@ from ._common._constants import SerializationType from ._common._schema import Schema, SchemaProperties -from ._common._response_handlers import _parse_response_schema, _parse_response_schema_id +from ._common._response_handlers import ( + _parse_response_schema, + _parse_response_schema_id, +) from ._generated._azure_schema_registry import AzureSchemaRegistry if TYPE_CHECKING: @@ -53,14 +56,14 @@ class SchemaRegistryClient(object): :caption: Create a new instance of the SchemaRegistryClient. """ - def __init__( - self, - endpoint, - credential, - **kwargs - ): + + def __init__(self, endpoint, credential, **kwargs): # type: (str, TokenCredential, Any) -> None - self._generated_client = AzureSchemaRegistry(credential=credential, endpoint=endpoint, **kwargs) + self._generated_client = AzureSchemaRegistry( + credential=credential, endpoint=endpoint, **kwargs + ) + self._description_to_properties = {} + self._id_to_schema = {} def __enter__(self): # type: () -> SchemaRegistryClient @@ -73,12 +76,14 @@ def __exit__(self, *exc_details): def close(self): # type: () -> None - """ This method is to close the sockets opened by the client. + """This method is to close the sockets opened by the client. It need not be used when using with a context manager. """ self._generated_client.close() - def register_schema(self, schema_group, schema_name, serialization_type, schema_content, **kwargs): + def register_schema( + self, schema_group, schema_name, serialization_type, schema_content, **kwargs + ): # type: (str, str, Union[str, SerializationType], str, Any) -> SchemaProperties """ Register new schema. If schema of specified name does not exist in specified group, @@ -108,7 +113,7 @@ def register_schema(self, schema_group, schema_name, serialization_type, schema_ except AttributeError: pass - return self._generated_client.schema.register( + schema_properties = self._generated_client.schema.register( group_name=schema_group, schema_name=schema_name, schema_content=schema_content, @@ -116,6 +121,18 @@ def register_schema(self, schema_group, schema_name, serialization_type, schema_ cls=_parse_response_schema_id, **kwargs ) + schema_description = ( + schema_group, + schema_name, + serialization_type, + schema_content, + ) + self._id_to_schema[schema_properties.schema_id] = Schema( + schema_content, schema_properties + ) + self._description_to_properties[schema_description] = schema_properties + + return schema_properties def get_schema(self, schema_id, **kwargs): # type: (str, Any) -> Schema @@ -136,13 +153,18 @@ def get_schema(self, schema_id, **kwargs): :caption: Get schema by id. """ - return self._generated_client.schema.get_by_id( - schema_id, - cls=_parse_response_schema, - **kwargs - ) - - def get_schema_id(self, schema_group, schema_name, serialization_type, schema_content, **kwargs): + try: + return self._id_to_schema[schema_id] + except KeyError: + schema = self._generated_client.schema.get_by_id( + schema_id, cls=_parse_response_schema, **kwargs + ) + self._id_to_schema[schema_id] = schema + return schema + + def get_schema_id( + self, schema_group, schema_name, serialization_type, schema_content, **kwargs + ): # type: (str, str, Union[str, SerializationType], str, Any) -> SchemaProperties """ Gets the ID referencing an existing schema within the specified schema group, @@ -171,11 +193,25 @@ def get_schema_id(self, schema_group, schema_name, serialization_type, schema_co except AttributeError: pass - return self._generated_client.schema.query_id_by_content( - group_name=schema_group, - schema_name=schema_name, - schema_content=schema_content, - x_schema_type=serialization_type, - cls=_parse_response_schema_id, - **kwargs - ) + try: + properties = self._description_to_properties[ + (schema_group, schema_name, serialization_type, schema_content) + ] + return properties + except KeyError: + schema_properties = self._generated_client.schema.query_id_by_content( + group_name=schema_group, + schema_name=schema_name, + schema_content=schema_content, + x_schema_type=serialization_type, + cls=_parse_response_schema_id, + **kwargs + ) + if not self._id_to_schema.get(schema_properties.schema_id): + self._id_to_schema[schema_properties.schema_id] = Schema(schema_content, schema_properties) + else: + schema_properties = self._id_to_schema[schema_properties.schema_id].schema_properties + self._description_to_properties[ + (schema_group, schema_name, serialization_type, schema_content) + ] = schema_properties + return schema_properties diff --git a/sdk/schemaregistry/azure-schemaregistry/azure/schemaregistry/aio/_schema_registry_client_async.py b/sdk/schemaregistry/azure-schemaregistry/azure/schemaregistry/aio/_schema_registry_client_async.py index 29fb6a2c1df5..87a407437a5c 100644 --- a/sdk/schemaregistry/azure-schemaregistry/azure/schemaregistry/aio/_schema_registry_client_async.py +++ b/sdk/schemaregistry/azure-schemaregistry/azure/schemaregistry/aio/_schema_registry_client_async.py @@ -60,6 +60,8 @@ def __init__( **kwargs: Any ) -> None: self._generated_client = AzureSchemaRegistry(credential, endpoint, **kwargs) + self._description_to_properties = {} + self._id_to_schema = {} async def __aenter__(self): await self._generated_client.__aenter__() @@ -110,7 +112,7 @@ async def register_schema( except AttributeError: pass - return await self._generated_client.schema.register( + schema_properties = await self._generated_client.schema.register( group_name=schema_group, schema_name=schema_name, schema_content=schema_content, @@ -118,6 +120,18 @@ async def register_schema( cls=_parse_response_schema_id, **kwargs ) + schema_description = ( + schema_group, + schema_name, + serialization_type, + schema_content, + ) + self._id_to_schema[schema_properties.schema_id] = Schema( + schema_content, schema_properties + ) + self._description_to_properties[schema_description] = schema_properties + + return schema_properties async def get_schema( self, @@ -141,11 +155,16 @@ async def get_schema( :caption: Get schema by id. """ - return await self._generated_client.schema.get_by_id( - schema_id=schema_id, - cls=_parse_response_schema, - **kwargs - ) + try: + return self._id_to_schema[schema_id] + except KeyError: + schema = await self._generated_client.schema.get_by_id( + schema_id=schema_id, + cls=_parse_response_schema, + **kwargs + ) + self._id_to_schema[schema_id] = schema + return schema async def get_schema_id( self, @@ -181,11 +200,24 @@ async def get_schema_id( except AttributeError: pass - return await self._generated_client.schema.query_id_by_content( - group_name=schema_group, - schema_name=schema_name, - schema_content=schema_content, - x_schema_type=serialization_type, - cls=_parse_response_schema_id, - **kwargs - ) + try: + return self._description_to_properties[ + (schema_group, schema_name, serialization_type, schema_content) + ] + except KeyError: + schema_properties = await self._generated_client.schema.query_id_by_content( + group_name=schema_group, + schema_name=schema_name, + schema_content=schema_content, + x_schema_type=serialization_type, + cls=_parse_response_schema_id, + **kwargs + ) + if not self._id_to_schema.get(schema_properties.schema_id): + self._id_to_schema[schema_properties.schema_id] = Schema(schema_content, schema_properties) + else: + schema_properties = self._id_to_schema[schema_properties.schema_id].schema_properties + self._description_to_properties[ + (schema_group, schema_name, serialization_type, schema_content) + ] = schema_properties + return schema_properties diff --git a/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/recordings/test_schema_registry_async.test_schema_basic_async.yaml b/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/recordings/test_schema_registry_async.test_schema_basic_async.yaml index 82d1c66dbd60..f6f8d34a1000 100644 --- a/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/recordings/test_schema_registry_async.test_schema_basic_async.yaml +++ b/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/recordings/test_schema_registry_async.test_schema_basic_async.yaml @@ -9,58 +9,30 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) X-Schema-Type: - Avro method: PUT uri: https://fake_resource.servicebus.windows.net/$schemagroups/fakegroup/schemas/test-schema-basic-asynce5e1482?api-version=2017-04 response: body: - string: '{"id":"a8e62268f67e49afb6bcd87537bf2557"}' + string: '{"id":"fd9460aaf2a34a05a5e66fd6741fd843"}' headers: content-type: application/json - date: Thu, 12 Nov 2020 05:59:46 GMT - location: https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-basic-asynce5e1482/versions/1?api-version=2017-04 + date: Wed, 11 Aug 2021 21:42:43 GMT + location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-basic-asynce5e1482/versions/1?api-version=2017-04 server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 transfer-encoding: chunked - x-schema-id: a8e62268f67e49afb6bcd87537bf2557 - x-schema-id-location: https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/a8e62268f67e49afb6bcd87537bf2557?api-version=2017-04 + x-schema-id: fd9460aaf2a34a05a5e66fd6741fd843 + x-schema-id-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/fd9460aaf2a34a05a5e66fd6741fd843?api-version=2017-04 x-schema-type: Avro x-schema-version: '1' - x-schema-versions-location: https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/test-schema-basic-asynce5e1482/versions?api-version=2017-04 + x-schema-versions-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-basic-asynce5e1482/versions?api-version=2017-04 status: code: 200 message: OK - url: https://seankane.servicebus.windows.net/$schemagroups/azsdk_net_test_group/schemas/test-schema-basic-asynce5e1482?api-version=2017-04 -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_resource.servicebus.windows.net/$schemagroups/getSchemaById/a8e62268f67e49afb6bcd87537bf2557?api-version=2017-04 - response: - body: - string: '"{\"namespace\":\"example.avro\",\"type\":\"record\",\"name\":\"User\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"favorite_number\",\"type\":[\"int\",\"null\"]},{\"name\":\"favorite_color\",\"type\":[\"string\",\"null\"]}]}"' - headers: - content-type: application/json - date: Thu, 12 Nov 2020 05:59:47 GMT - location: https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-basic-asynce5e1482/versions/1?api-version=2017-04 - server: Microsoft-HTTPAPI/2.0 - strict-transport-security: max-age=31536000 - transfer-encoding: chunked - x-schema-id: a8e62268f67e49afb6bcd87537bf2557 - x-schema-id-location: https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/a8e62268f67e49afb6bcd87537bf2557?api-version=2017-04 - x-schema-type: Avro - x-schema-version: '1' - x-schema-versions-location: https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/test-schema-basic-asynce5e1482/versions?api-version=2017-04 - status: - code: 200 - message: OK - url: https://seankane.servicebus.windows.net/$schemagroups/getSchemaById/a8e62268f67e49afb6bcd87537bf2557?api-version=2017-04 + url: https://swathip-test-eventhubs.servicebus.windows.net/$schemagroups/swathip-test-schema/schemas/test-schema-basic-asynce5e1482?api-version=2017-04 - request: body: '"{\"namespace\":\"example.avro\",\"type\":\"record\",\"name\":\"User\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"favorite_number\",\"type\":[\"int\",\"null\"]},{\"name\":\"favorite_color\",\"type\":[\"string\",\"null\"]}]}"' headers: @@ -71,28 +43,28 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) X-Schema-Type: - Avro method: POST uri: https://fake_resource.servicebus.windows.net/$schemagroups/fakegroup/schemas/test-schema-basic-asynce5e1482?api-version=2017-04 response: body: - string: '{"id":"a8e62268f67e49afb6bcd87537bf2557"}' + string: '{"id":"fd9460aaf2a34a05a5e66fd6741fd843"}' headers: content-type: application/json - date: Thu, 12 Nov 2020 05:59:47 GMT - location: https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-basic-asynce5e1482/versions/1?api-version=2017-04 + date: Wed, 11 Aug 2021 21:42:43 GMT + location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-basic-asynce5e1482/versions/1?api-version=2017-04 server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 transfer-encoding: chunked - x-schema-id: a8e62268f67e49afb6bcd87537bf2557 - x-schema-id-location: https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/a8e62268f67e49afb6bcd87537bf2557?api-version=2017-04 + x-schema-id: fd9460aaf2a34a05a5e66fd6741fd843 + x-schema-id-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/fd9460aaf2a34a05a5e66fd6741fd843?api-version=2017-04 x-schema-type: Avro x-schema-version: '1' - x-schema-versions-location: https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/test-schema-basic-asynce5e1482/versions?api-version=2017-04 + x-schema-versions-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-basic-asynce5e1482/versions?api-version=2017-04 status: code: 200 message: OK - url: https://seankane.servicebus.windows.net/$schemagroups/azsdk_net_test_group/schemas/test-schema-basic-asynce5e1482?api-version=2017-04 + url: https://swathip-test-eventhubs.servicebus.windows.net/$schemagroups/swathip-test-schema/schemas/test-schema-basic-asynce5e1482?api-version=2017-04 version: 1 diff --git a/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/recordings/test_schema_registry_async.test_schema_negative_no_schema_async.yaml b/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/recordings/test_schema_registry_async.test_schema_negative_no_schema_async.yaml index 6a6cc06660bb..bf58d0025d47 100644 --- a/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/recordings/test_schema_registry_async.test_schema_negative_no_schema_async.yaml +++ b/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/recordings/test_schema_registry_async.test_schema_negative_no_schema_async.yaml @@ -5,47 +5,47 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_resource.servicebus.windows.net/$schemagroups/getSchemaById/a?api-version=2017-04 response: body: string: '{"Code":400,"Detail":"SubCode=40000, UnknownType:The request is invalid. - [MGResponseHttpError=BadRequest]. TrackingId:db1f5a7e-069a-421c-9d02-a837d5faf5be_G23, - SystemTracker:fake_resource.servicebus.windows.net:$schemagroups\/getSchemaById\/a, - Timestamp:2020-11-12T05:59:49"}' + [MGResponseHttpError=BadRequest]. TrackingId:49804722-439c-47b1-9f41-168f1a963658_G19, + SystemTracker:swathip-test-eventhubs.servicebus.windows.net:$schemagroups\/getSchemaById\/a, + Timestamp:2021-08-11T21:42:45"}' headers: content-type: application/json - date: Thu, 12 Nov 2020 05:59:48 GMT + date: Wed, 11 Aug 2021 21:42:44 GMT server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 transfer-encoding: chunked status: code: 400 message: Bad Request - url: https://seankane.servicebus.windows.net/$schemagroups/getSchemaById/a?api-version=2017-04 + url: https://swathip-test-eventhubs.servicebus.windows.net/$schemagroups/getSchemaById/a?api-version=2017-04 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_resource.servicebus.windows.net/$schemagroups/getSchemaById/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?api-version=2017-04 response: body: string: '{"Code":404,"Detail":"Schema id aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa does - not exist. TrackingId:6df67add-07a4-4367-ad7c-cc936e495364_G23, SystemTracker:fake_resource.servicebus.windows.net:$schemagroups\/getSchemaById\/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, - Timestamp:2020-11-12T05:59:49"}' + not exist. TrackingId:261bae1e-3456-4edb-9b1a-96ff6c4141a9_G19, SystemTracker:swathip-test-eventhubs.servicebus.windows.net:$schemagroups\/getSchemaById\/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, + Timestamp:2021-08-11T21:42:45"}' headers: content-type: application/json - date: Thu, 12 Nov 2020 05:59:49 GMT + date: Wed, 11 Aug 2021 21:42:45 GMT server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 transfer-encoding: chunked status: code: 404 message: Not Found - url: https://seankane.servicebus.windows.net/$schemagroups/getSchemaById/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?api-version=2017-04 + url: https://swathip-test-eventhubs.servicebus.windows.net/$schemagroups/getSchemaById/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?api-version=2017-04 version: 1 diff --git a/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/recordings/test_schema_registry_async.test_schema_same_twice_async.yaml b/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/recordings/test_schema_registry_async.test_schema_same_twice_async.yaml index fc3799148801..69cfae50d92a 100644 --- a/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/recordings/test_schema_registry_async.test_schema_same_twice_async.yaml +++ b/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/recordings/test_schema_registry_async.test_schema_same_twice_async.yaml @@ -9,30 +9,30 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) X-Schema-Type: - Avro method: PUT uri: https://fake_resource.servicebus.windows.net/$schemagroups/fakegroup/schemas/test-schema-twice-async7bfd16a1?api-version=2017-04 response: body: - string: '{"id":"fd515e9608574cb6904a0efc6a960e97"}' + string: '{"id":"3af6d3be3e994694881e21dc7cb12f43"}' headers: content-type: application/json - date: Thu, 12 Nov 2020 05:59:55 GMT - location: https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-twice-async7bfd16a1/versions/1?api-version=2017-04 + date: Wed, 11 Aug 2021 21:42:50 GMT + location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-twice-async7bfd16a1/versions/1?api-version=2017-04 server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 transfer-encoding: chunked - x-schema-id: fd515e9608574cb6904a0efc6a960e97 - x-schema-id-location: https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/fd515e9608574cb6904a0efc6a960e97?api-version=2017-04 + x-schema-id: 3af6d3be3e994694881e21dc7cb12f43 + x-schema-id-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/3af6d3be3e994694881e21dc7cb12f43?api-version=2017-04 x-schema-type: Avro x-schema-version: '1' - x-schema-versions-location: https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/test-schema-twice-async7bfd16a1/versions?api-version=2017-04 + x-schema-versions-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-twice-async7bfd16a1/versions?api-version=2017-04 status: code: 200 message: OK - url: https://seankane.servicebus.windows.net/$schemagroups/azsdk_net_test_group/schemas/test-schema-twice-async7bfd16a1?api-version=2017-04 + url: https://swathip-test-eventhubs.servicebus.windows.net/$schemagroups/swathip-test-schema/schemas/test-schema-twice-async7bfd16a1?api-version=2017-04 - request: body: '"{\"namespace\":\"example.avro\",\"type\":\"record\",\"name\":\"User\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"age\",\"type\":[\"int\",\"null\"]},{\"name\":\"city\",\"type\":[\"string\",\"null\"]}]}"' headers: @@ -43,28 +43,28 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) X-Schema-Type: - Avro method: PUT uri: https://fake_resource.servicebus.windows.net/$schemagroups/fakegroup/schemas/test-schema-twice-async7bfd16a1?api-version=2017-04 response: body: - string: '{"id":"fd515e9608574cb6904a0efc6a960e97"}' + string: '{"id":"3af6d3be3e994694881e21dc7cb12f43"}' headers: content-type: application/json - date: Thu, 12 Nov 2020 05:59:55 GMT - location: https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-twice-async7bfd16a1/versions/1?api-version=2017-04 + date: Wed, 11 Aug 2021 21:42:51 GMT + location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-twice-async7bfd16a1/versions/1?api-version=2017-04 server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 transfer-encoding: chunked - x-schema-id: fd515e9608574cb6904a0efc6a960e97 - x-schema-id-location: https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/fd515e9608574cb6904a0efc6a960e97?api-version=2017-04 + x-schema-id: 3af6d3be3e994694881e21dc7cb12f43 + x-schema-id-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/3af6d3be3e994694881e21dc7cb12f43?api-version=2017-04 x-schema-type: Avro x-schema-version: '1' - x-schema-versions-location: https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/test-schema-twice-async7bfd16a1/versions?api-version=2017-04 + x-schema-versions-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-twice-async7bfd16a1/versions?api-version=2017-04 status: code: 200 message: OK - url: https://seankane.servicebus.windows.net/$schemagroups/azsdk_net_test_group/schemas/test-schema-twice-async7bfd16a1?api-version=2017-04 + url: https://swathip-test-eventhubs.servicebus.windows.net/$schemagroups/swathip-test-schema/schemas/test-schema-twice-async7bfd16a1?api-version=2017-04 version: 1 diff --git a/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/recordings/test_schema_registry_async.test_schema_update_async.yaml b/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/recordings/test_schema_registry_async.test_schema_update_async.yaml index d666c8988e9b..2e352a2bb922 100644 --- a/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/recordings/test_schema_registry_async.test_schema_update_async.yaml +++ b/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/recordings/test_schema_registry_async.test_schema_update_async.yaml @@ -9,30 +9,30 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) X-Schema-Type: - Avro method: PUT uri: https://fake_resource.servicebus.windows.net/$schemagroups/fakegroup/schemas/test-schema-update-async24591503?api-version=2017-04 response: body: - string: '{"id":"73ae91ec6f0d4fc892662535e666b95f"}' + string: '{"id":"a0d6c2008ca749448a08f37826f92084"}' headers: content-type: application/json - date: Thu, 12 Nov 2020 05:59:56 GMT - location: https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-update-async24591503/versions/5?api-version=2017-04 + date: Wed, 11 Aug 2021 21:42:52 GMT + location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-update-async24591503/versions/1?api-version=2017-04 server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 transfer-encoding: chunked - x-schema-id: 73ae91ec6f0d4fc892662535e666b95f - x-schema-id-location: https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/73ae91ec6f0d4fc892662535e666b95f?api-version=2017-04 + x-schema-id: a0d6c2008ca749448a08f37826f92084 + x-schema-id-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/a0d6c2008ca749448a08f37826f92084?api-version=2017-04 x-schema-type: Avro - x-schema-version: '5' - x-schema-versions-location: https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/test-schema-update-async24591503/versions?api-version=2017-04 + x-schema-version: '1' + x-schema-versions-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-update-async24591503/versions?api-version=2017-04 status: code: 200 message: OK - url: https://seankane.servicebus.windows.net/$schemagroups/azsdk_net_test_group/schemas/test-schema-update-async24591503?api-version=2017-04 + url: https://swathip-test-eventhubs.servicebus.windows.net/$schemagroups/swathip-test-schema/schemas/test-schema-update-async24591503?api-version=2017-04 - request: body: '"{\"namespace\":\"example.avro\",\"type\":\"record\",\"name\":\"User\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"favorite_number\",\"type\":[\"int\",\"null\"]},{\"name\":\"favorite_food\",\"type\":[\"string\",\"null\"]}]}"' headers: @@ -43,56 +43,118 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) X-Schema-Type: - Avro method: PUT uri: https://fake_resource.servicebus.windows.net/$schemagroups/fakegroup/schemas/test-schema-update-async24591503?api-version=2017-04 response: body: - string: '{"id":"4afa7beac9724a789b93b3f0fafa64f1"}' + string: '{"id":"59f269d2d9824f688dcb9dbcbf9064bc"}' headers: content-type: application/json - date: Thu, 12 Nov 2020 05:59:57 GMT - location: https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-update-async24591503/versions/6?api-version=2017-04 + date: Wed, 11 Aug 2021 21:42:52 GMT + location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-update-async24591503/versions/2?api-version=2017-04 server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 transfer-encoding: chunked - x-schema-id: 4afa7beac9724a789b93b3f0fafa64f1 - x-schema-id-location: https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/4afa7beac9724a789b93b3f0fafa64f1?api-version=2017-04 + x-schema-id: 59f269d2d9824f688dcb9dbcbf9064bc + x-schema-id-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/59f269d2d9824f688dcb9dbcbf9064bc?api-version=2017-04 x-schema-type: Avro - x-schema-version: '6' - x-schema-versions-location: https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/test-schema-update-async24591503/versions?api-version=2017-04 + x-schema-version: '2' + x-schema-versions-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-update-async24591503/versions?api-version=2017-04 status: code: 200 message: OK - url: https://seankane.servicebus.windows.net/$schemagroups/azsdk_net_test_group/schemas/test-schema-update-async24591503?api-version=2017-04 + url: https://swathip-test-eventhubs.servicebus.windows.net/$schemagroups/swathip-test-schema/schemas/test-schema-update-async24591503?api-version=2017-04 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_resource.servicebus.windows.net/$schemagroups/getSchemaById/4afa7beac9724a789b93b3f0fafa64f1?api-version=2017-04 + uri: https://fake_resource.servicebus.windows.net/$schemagroups/getSchemaById/59f269d2d9824f688dcb9dbcbf9064bc?api-version=2017-04 response: body: string: '"{\"namespace\":\"example.avro\",\"type\":\"record\",\"name\":\"User\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"favorite_number\",\"type\":[\"int\",\"null\"]},{\"name\":\"favorite_food\",\"type\":[\"string\",\"null\"]}]}"' headers: content-type: application/json - date: Thu, 12 Nov 2020 05:59:57 GMT - location: https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-update-async24591503/versions/6?api-version=2017-04 + date: Wed, 11 Aug 2021 21:42:53 GMT + location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-update-async24591503/versions/2?api-version=2017-04 server: Microsoft-HTTPAPI/2.0 strict-transport-security: max-age=31536000 transfer-encoding: chunked - x-schema-id: 4afa7beac9724a789b93b3f0fafa64f1 - x-schema-id-location: https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/4afa7beac9724a789b93b3f0fafa64f1?api-version=2017-04 + x-schema-id: 59f269d2d9824f688dcb9dbcbf9064bc + x-schema-id-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/59f269d2d9824f688dcb9dbcbf9064bc?api-version=2017-04 x-schema-type: Avro - x-schema-version: '6' - x-schema-versions-location: https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/test-schema-update-async24591503/versions?api-version=2017-04 + x-schema-version: '2' + x-schema-versions-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-update-async24591503/versions?api-version=2017-04 status: code: 200 message: OK - url: https://seankane.servicebus.windows.net/$schemagroups/getSchemaById/4afa7beac9724a789b93b3f0fafa64f1?api-version=2017-04 + url: https://swathip-test-eventhubs.servicebus.windows.net/$schemagroups/getSchemaById/59f269d2d9824f688dcb9dbcbf9064bc?api-version=2017-04 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://fake_resource.servicebus.windows.net/$schemagroups/getSchemaById/59f269d2d9824f688dcb9dbcbf9064bc?api-version=2017-04 + response: + body: + string: '"{\"namespace\":\"example.avro\",\"type\":\"record\",\"name\":\"User\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"favorite_number\",\"type\":[\"int\",\"null\"]},{\"name\":\"favorite_food\",\"type\":[\"string\",\"null\"]}]}"' + headers: + content-type: application/json + date: Wed, 11 Aug 2021 21:42:53 GMT + location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-update-async24591503/versions/2?api-version=2017-04 + server: Microsoft-HTTPAPI/2.0 + strict-transport-security: max-age=31536000 + transfer-encoding: chunked + x-schema-id: 59f269d2d9824f688dcb9dbcbf9064bc + x-schema-id-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/59f269d2d9824f688dcb9dbcbf9064bc?api-version=2017-04 + x-schema-type: Avro + x-schema-version: '2' + x-schema-versions-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-update-async24591503/versions?api-version=2017-04 + status: + code: 200 + message: OK + url: https://swathip-test-eventhubs.servicebus.windows.net/$schemagroups/getSchemaById/59f269d2d9824f688dcb9dbcbf9064bc?api-version=2017-04 +- request: + body: '"{\"namespace\":\"example.avro\",\"type\":\"record\",\"name\":\"User\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"favorite_number\",\"type\":[\"int\",\"null\"]},{\"name\":\"favorite_food\",\"type\":[\"string\",\"null\"]}]}"' + headers: + Accept: + - application/json + Content-Length: + - '244' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + X-Schema-Type: + - Avro + method: POST + uri: https://fake_resource.servicebus.windows.net/$schemagroups/fakegroup/schemas/test-schema-update-async24591503?api-version=2017-04 + response: + body: + string: '{"id":"59f269d2d9824f688dcb9dbcbf9064bc"}' + headers: + content-type: application/json + date: Wed, 11 Aug 2021 21:42:54 GMT + location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-update-async24591503/versions/2?api-version=2017-04 + server: Microsoft-HTTPAPI/2.0 + strict-transport-security: max-age=31536000 + transfer-encoding: chunked + x-schema-id: 59f269d2d9824f688dcb9dbcbf9064bc + x-schema-id-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/59f269d2d9824f688dcb9dbcbf9064bc?api-version=2017-04 + x-schema-type: Avro + x-schema-version: '2' + x-schema-versions-location: https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-update-async24591503/versions?api-version=2017-04 + status: + code: 200 + message: OK + url: https://swathip-test-eventhubs.servicebus.windows.net/$schemagroups/swathip-test-schema/schemas/test-schema-update-async24591503?api-version=2017-04 version: 1 diff --git a/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/test_schema_registry_async.py b/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/test_schema_registry_async.py index e980e22aa641..94ea91274cd2 100644 --- a/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/test_schema_registry_async.py +++ b/sdk/schemaregistry/azure-schemaregistry/tests/async_tests/test_schema_registry_async.py @@ -32,7 +32,7 @@ from azure.core.credentials import AccessToken -SchemaRegistryPowerShellPreparer = functools.partial(PowerShellPreparer, "schemaregistry", schemaregistry_endpoint="fake_resource.servicebus.windows.net", schemaregistry_group="fakegroup") +SchemaRegistryPowerShellPreparer = functools.partial(PowerShellPreparer, "schemaregistry", schemaregistry_endpoint="fake_resource.servicebus.windows.net/", schemaregistry_group="fakegroup") class SchemaRegistryAsyncTests(AzureTestCase): @@ -47,7 +47,11 @@ async def test_schema_basic_async(self, schemaregistry_endpoint, schemaregistry_ schema_name = self.get_resource_name('test-schema-basic-async') schema_str = """{"namespace":"example.avro","type":"record","name":"User","fields":[{"name":"name","type":"string"},{"name":"favorite_number","type":["int","null"]},{"name":"favorite_color","type":["string","null"]}]}""" serialization_type = "Avro" + assert len(client._id_to_schema) == 0 + assert len(client._description_to_properties) == 0 schema_properties = await client.register_schema(schemaregistry_group, schema_name, serialization_type, schema_str) + assert len(client._id_to_schema) == 1 + assert len(client._description_to_properties) == 1 assert schema_properties.schema_id is not None assert schema_properties.location is not None @@ -64,7 +68,23 @@ async def test_schema_basic_async(self, schemaregistry_endpoint, schemaregistry_ assert returned_schema.schema_properties.serialization_type == "Avro" assert returned_schema.schema_content == schema_str + # check that same cached properties object is returned by get_schema_id + cached_properties = await client.get_schema_id(schemaregistry_group, schema_name, serialization_type, schema_str) + same_cached_properties = await client.get_schema_id(schemaregistry_group, schema_name, serialization_type, schema_str) + assert same_cached_properties == cached_properties + + # check if schema is added to cache when it does not exist in the cache + cached_properties = client._description_to_properties[ + (schemaregistry_group, schema_name, serialization_type, schema_str) + ] + properties_cache_length = len(client._description_to_properties) + del client._description_to_properties[ + (schemaregistry_group, schema_name, serialization_type, schema_str) + ] + assert len(client._description_to_properties) == properties_cache_length - 1 + returned_schema_properties = await client.get_schema_id(schemaregistry_group, schema_name, serialization_type, schema_str) + assert len(client._description_to_properties) == properties_cache_length assert returned_schema_properties.schema_id == schema_properties.schema_id assert returned_schema_properties.location is not None @@ -97,7 +117,19 @@ async def test_schema_update_async(self, schemaregistry_endpoint, schemaregistry assert new_schema_properties.version == schema_properties.version + 1 assert new_schema_properties.serialization_type == "Avro" + # check that same cached schema object is returned by get_schema + cached_schema = await client.get_schema(schema_id=new_schema_properties.schema_id) + same_cached_schema = await client.get_schema(schema_id=new_schema_properties.schema_id) + assert same_cached_schema == cached_schema + + # check if schema is added to cache when it does not exist in the cache + cached_schema = client._id_to_schema[new_schema_properties.schema_id] + schema_cache_length = len(client._id_to_schema) + del client._id_to_schema[new_schema_properties.schema_id] + assert len(client._id_to_schema) == schema_cache_length - 1 + new_schema = await client.get_schema(schema_id=new_schema_properties.schema_id) + assert len(client._id_to_schema) == schema_cache_length assert new_schema.schema_properties.schema_id != schema_properties.schema_id assert new_schema.schema_properties.schema_id == new_schema_properties.schema_id @@ -106,6 +138,13 @@ async def test_schema_update_async(self, schemaregistry_endpoint, schemaregistry assert new_schema.schema_content == schema_str_new assert new_schema.schema_properties.version == schema_properties.version + 1 assert new_schema.schema_properties.serialization_type == "Avro" + + # check that properties object is the same in caches + client._id_to_schema = {} + client._description_to_properties = {} + new_schema = await client.get_schema(schema_id=new_schema_properties.schema_id) + new_schema_properties = await client.get_schema_id(schemaregistry_group, schema_name, serialization_type, schema_str_new) + assert new_schema.schema_properties == new_schema_properties await client._generated_client._config.credential.close() @SchemaRegistryPowerShellPreparer() @@ -116,8 +155,14 @@ async def test_schema_same_twice_async(self, schemaregistry_endpoint, schemaregi serialization_type = "Avro" async with client: schema_properties = await client.register_schema(schemaregistry_group, schema_name, serialization_type, schema_str) + schema_cache_length = len(client._id_to_schema) + desc_cache_length = len(client._description_to_properties) schema_properties_second = await client.register_schema(schemaregistry_group, schema_name, serialization_type, schema_str) + schema_cache_second_length = len(client._id_to_schema) + desc_cache_second_length = len(client._description_to_properties) assert schema_properties.schema_id == schema_properties_second.schema_id + assert schema_cache_length == schema_cache_second_length + assert desc_cache_length == desc_cache_second_length await client._generated_client._config.credential.close() @SchemaRegistryPowerShellPreparer() diff --git a/sdk/schemaregistry/azure-schemaregistry/tests/recordings/test_schema_registry.test_schema_basic.yaml b/sdk/schemaregistry/azure-schemaregistry/tests/recordings/test_schema_registry.test_schema_basic.yaml index 5aa98b799f0a..c9e12d532cdd 100644 --- a/sdk/schemaregistry/azure-schemaregistry/tests/recordings/test_schema_registry.test_schema_basic.yaml +++ b/sdk/schemaregistry/azure-schemaregistry/tests/recordings/test_schema_registry.test_schema_basic.yaml @@ -13,21 +13,21 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) X-Schema-Type: - Avro method: PUT uri: https://fake_resource.servicebus.windows.net/$schemagroups/fakegroup/schemas/test-schema-basic31c70f88?api-version=2017-04 response: body: - string: '{"id":"74cfb9c77391458691a8f7474c06dfda"}' + string: '{"id":"531867fff5334643b6ec40344108fc55"}' headers: content-type: - application/json date: - - Thu, 12 Nov 2020 05:59:33 GMT + - Wed, 11 Aug 2021 21:42:30 GMT location: - - https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-basic31c70f88/versions/1?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-basic31c70f88/versions/1?api-version=2017-04 server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -35,57 +35,15 @@ interactions: transfer-encoding: - chunked x-schema-id: - - 74cfb9c77391458691a8f7474c06dfda + - 531867fff5334643b6ec40344108fc55 x-schema-id-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/74cfb9c77391458691a8f7474c06dfda?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/531867fff5334643b6ec40344108fc55?api-version=2017-04 x-schema-type: - Avro x-schema-version: - '1' x-schema-versions-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/test-schema-basic31c70f88/versions?api-version=2017-04 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_resource.servicebus.windows.net/$schemagroups/getSchemaById/74cfb9c77391458691a8f7474c06dfda?api-version=2017-04 - response: - body: - string: '"{\"namespace\":\"example.avro\",\"type\":\"record\",\"name\":\"User\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"favorite_number\",\"type\":[\"int\",\"null\"]},{\"name\":\"favorite_color\",\"type\":[\"string\",\"null\"]}]}"' - headers: - content-type: - - application/json - date: - - Thu, 12 Nov 2020 05:59:34 GMT - location: - - https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-basic31c70f88/versions/1?api-version=2017-04 - server: - - Microsoft-HTTPAPI/2.0 - strict-transport-security: - - max-age=31536000 - transfer-encoding: - - chunked - x-schema-id: - - 74cfb9c77391458691a8f7474c06dfda - x-schema-id-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/74cfb9c77391458691a8f7474c06dfda?api-version=2017-04 - x-schema-type: - - Avro - x-schema-version: - - '1' - x-schema-versions-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/test-schema-basic31c70f88/versions?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-basic31c70f88/versions?api-version=2017-04 status: code: 200 message: OK @@ -103,21 +61,21 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) X-Schema-Type: - Avro method: POST uri: https://fake_resource.servicebus.windows.net/$schemagroups/fakegroup/schemas/test-schema-basic31c70f88?api-version=2017-04 response: body: - string: '{"id":"74cfb9c77391458691a8f7474c06dfda"}' + string: '{"id":"531867fff5334643b6ec40344108fc55"}' headers: content-type: - application/json date: - - Thu, 12 Nov 2020 05:59:34 GMT + - Wed, 11 Aug 2021 21:42:30 GMT location: - - https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-basic31c70f88/versions/1?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-basic31c70f88/versions/1?api-version=2017-04 server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -125,15 +83,15 @@ interactions: transfer-encoding: - chunked x-schema-id: - - 74cfb9c77391458691a8f7474c06dfda + - 531867fff5334643b6ec40344108fc55 x-schema-id-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/74cfb9c77391458691a8f7474c06dfda?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/531867fff5334643b6ec40344108fc55?api-version=2017-04 x-schema-type: - Avro x-schema-version: - '1' x-schema-versions-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/test-schema-basic31c70f88/versions?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-basic31c70f88/versions?api-version=2017-04 status: code: 200 message: OK diff --git a/sdk/schemaregistry/azure-schemaregistry/tests/recordings/test_schema_registry.test_schema_negative_no_schema.yaml b/sdk/schemaregistry/azure-schemaregistry/tests/recordings/test_schema_registry.test_schema_negative_no_schema.yaml index d8cd187f18cd..6e0e24e903cc 100644 --- a/sdk/schemaregistry/azure-schemaregistry/tests/recordings/test_schema_registry.test_schema_negative_no_schema.yaml +++ b/sdk/schemaregistry/azure-schemaregistry/tests/recordings/test_schema_registry.test_schema_negative_no_schema.yaml @@ -9,20 +9,20 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_resource.servicebus.windows.net/$schemagroups/getSchemaById/a?api-version=2017-04 response: body: string: '{"Code":400,"Detail":"SubCode=40000, UnknownType:The request is invalid. - [MGResponseHttpError=BadRequest]. TrackingId:d84dbd56-c52d-40d9-83f7-0e2b13655faa_G6, - SystemTracker:fake_resource.servicebus.windows.net:$schemagroups\/getSchemaById\/a, - Timestamp:2020-11-12T05:59:35"}' + [MGResponseHttpError=BadRequest]. TrackingId:fdb04455-a090-437b-b2c6-4cb532321510_G15, + SystemTracker:swathip-test-eventhubs.servicebus.windows.net:$schemagroups\/getSchemaById\/a, + Timestamp:2021-08-11T21:42:31"}' headers: content-type: - application/json date: - - Thu, 12 Nov 2020 05:59:35 GMT + - Wed, 11 Aug 2021 21:42:31 GMT server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -42,19 +42,19 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_resource.servicebus.windows.net/$schemagroups/getSchemaById/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?api-version=2017-04 response: body: string: '{"Code":404,"Detail":"Schema id aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa does - not exist. TrackingId:2d80297c-ad66-4d3e-8750-9853f7578659_G6, SystemTracker:NoSystemTracker, - Timestamp:2020-11-12T05:59:35"}' + not exist. TrackingId:d850e647-64f4-4c40-942f-8e1ce86d3572_G15, SystemTracker:swathip-test-eventhubs.servicebus.windows.net:$schemagroups\/getSchemaById\/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, + Timestamp:2021-08-11T21:42:32"}' headers: content-type: - application/json date: - - Thu, 12 Nov 2020 05:59:35 GMT + - Wed, 11 Aug 2021 21:42:32 GMT server: - Microsoft-HTTPAPI/2.0 strict-transport-security: diff --git a/sdk/schemaregistry/azure-schemaregistry/tests/recordings/test_schema_registry.test_schema_same_twice.yaml b/sdk/schemaregistry/azure-schemaregistry/tests/recordings/test_schema_registry.test_schema_same_twice.yaml index e2ffc4c9ddaf..7d6e7b8ca3dc 100644 --- a/sdk/schemaregistry/azure-schemaregistry/tests/recordings/test_schema_registry.test_schema_same_twice.yaml +++ b/sdk/schemaregistry/azure-schemaregistry/tests/recordings/test_schema_registry.test_schema_same_twice.yaml @@ -13,21 +13,21 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) X-Schema-Type: - Avro method: PUT uri: https://fake_resource.servicebus.windows.net/$schemagroups/fakegroup/schemas/test-schema-twice863b11a7?api-version=2017-04 response: body: - string: '{"id":"84d9f43dc1e0477b83247f48a2757eae"}' + string: '{"id":"abad5c1945f24701ac1ee09ffad3d1ee"}' headers: content-type: - application/json date: - - Thu, 12 Nov 2020 05:59:42 GMT + - Wed, 11 Aug 2021 21:42:38 GMT location: - - https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-twice863b11a7/versions/1?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-twice863b11a7/versions/1?api-version=2017-04 server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -35,15 +35,15 @@ interactions: transfer-encoding: - chunked x-schema-id: - - 84d9f43dc1e0477b83247f48a2757eae + - abad5c1945f24701ac1ee09ffad3d1ee x-schema-id-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/84d9f43dc1e0477b83247f48a2757eae?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/abad5c1945f24701ac1ee09ffad3d1ee?api-version=2017-04 x-schema-type: - Avro x-schema-version: - '1' x-schema-versions-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/test-schema-twice863b11a7/versions?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-twice863b11a7/versions?api-version=2017-04 status: code: 200 message: OK @@ -61,21 +61,21 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) X-Schema-Type: - Avro method: PUT uri: https://fake_resource.servicebus.windows.net/$schemagroups/fakegroup/schemas/test-schema-twice863b11a7?api-version=2017-04 response: body: - string: '{"id":"84d9f43dc1e0477b83247f48a2757eae"}' + string: '{"id":"abad5c1945f24701ac1ee09ffad3d1ee"}' headers: content-type: - application/json date: - - Thu, 12 Nov 2020 05:59:43 GMT + - Wed, 11 Aug 2021 21:42:38 GMT location: - - https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-twice863b11a7/versions/1?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-twice863b11a7/versions/1?api-version=2017-04 server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -83,15 +83,15 @@ interactions: transfer-encoding: - chunked x-schema-id: - - 84d9f43dc1e0477b83247f48a2757eae + - abad5c1945f24701ac1ee09ffad3d1ee x-schema-id-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/84d9f43dc1e0477b83247f48a2757eae?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/abad5c1945f24701ac1ee09ffad3d1ee?api-version=2017-04 x-schema-type: - Avro x-schema-version: - '1' x-schema-versions-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/test-schema-twice863b11a7/versions?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-twice863b11a7/versions?api-version=2017-04 status: code: 200 message: OK diff --git a/sdk/schemaregistry/azure-schemaregistry/tests/recordings/test_schema_registry.test_schema_update.yaml b/sdk/schemaregistry/azure-schemaregistry/tests/recordings/test_schema_registry.test_schema_update.yaml index 54128edcee09..7469c0c8bdd4 100644 --- a/sdk/schemaregistry/azure-schemaregistry/tests/recordings/test_schema_registry.test_schema_update.yaml +++ b/sdk/schemaregistry/azure-schemaregistry/tests/recordings/test_schema_registry.test_schema_update.yaml @@ -13,21 +13,21 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) X-Schema-Type: - Avro method: PUT uri: https://fake_resource.servicebus.windows.net/$schemagroups/fakegroup/schemas/test-schema-update423f1009?api-version=2017-04 response: body: - string: '{"id":"e956e8a205a741409cb30bad1b251358"}' + string: '{"id":"762ff26654914959a77990e71d7147a6"}' headers: content-type: - application/json date: - - Thu, 12 Nov 2020 05:59:44 GMT + - Wed, 11 Aug 2021 21:42:41 GMT location: - - https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-update423f1009/versions/9?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-update423f1009/versions/1?api-version=2017-04 server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -35,15 +35,15 @@ interactions: transfer-encoding: - chunked x-schema-id: - - e956e8a205a741409cb30bad1b251358 + - 762ff26654914959a77990e71d7147a6 x-schema-id-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/e956e8a205a741409cb30bad1b251358?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/762ff26654914959a77990e71d7147a6?api-version=2017-04 x-schema-type: - Avro x-schema-version: - - '9' + - '1' x-schema-versions-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/test-schema-update423f1009/versions?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-update423f1009/versions?api-version=2017-04 status: code: 200 message: OK @@ -61,21 +61,21 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) X-Schema-Type: - Avro method: PUT uri: https://fake_resource.servicebus.windows.net/$schemagroups/fakegroup/schemas/test-schema-update423f1009?api-version=2017-04 response: body: - string: '{"id":"d3d41c40740d4d0291522954417ea9a5"}' + string: '{"id":"ae05490a6dcb419d8bb8f72dc32256ae"}' headers: content-type: - application/json date: - - Thu, 12 Nov 2020 05:59:45 GMT + - Wed, 11 Aug 2021 21:42:41 GMT location: - - https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-update423f1009/versions/10?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-update423f1009/versions/2?api-version=2017-04 server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -83,15 +83,15 @@ interactions: transfer-encoding: - chunked x-schema-id: - - d3d41c40740d4d0291522954417ea9a5 + - ae05490a6dcb419d8bb8f72dc32256ae x-schema-id-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/d3d41c40740d4d0291522954417ea9a5?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/ae05490a6dcb419d8bb8f72dc32256ae?api-version=2017-04 x-schema-type: - Avro x-schema-version: - - '10' + - '2' x-schema-versions-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/test-schema-update423f1009/versions?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-update423f1009/versions?api-version=2017-04 status: code: 200 message: OK @@ -105,9 +105,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_resource.servicebus.windows.net/$schemagroups/getSchemaById/d3d41c40740d4d0291522954417ea9a5?api-version=2017-04 + uri: https://fake_resource.servicebus.windows.net/$schemagroups/getSchemaById/ae05490a6dcb419d8bb8f72dc32256ae?api-version=2017-04 response: body: string: '"{\"namespace\":\"example.avro\",\"type\":\"record\",\"name\":\"User\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"favorite_number\",\"type\":[\"int\",\"null\"]},{\"name\":\"favorite_food\",\"type\":[\"string\",\"null\"]}]}"' @@ -115,9 +115,9 @@ interactions: content-type: - application/json date: - - Thu, 12 Nov 2020 05:59:45 GMT + - Wed, 11 Aug 2021 21:42:41 GMT location: - - https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-update423f1009/versions/10?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-update423f1009/versions/2?api-version=2017-04 server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -125,15 +125,105 @@ interactions: transfer-encoding: - chunked x-schema-id: - - d3d41c40740d4d0291522954417ea9a5 + - ae05490a6dcb419d8bb8f72dc32256ae x-schema-id-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/d3d41c40740d4d0291522954417ea9a5?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/ae05490a6dcb419d8bb8f72dc32256ae?api-version=2017-04 x-schema-type: - Avro x-schema-version: - - '10' + - '2' x-schema-versions-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/test-schema-update423f1009/versions?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-update423f1009/versions?api-version=2017-04 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://fake_resource.servicebus.windows.net/$schemagroups/getSchemaById/ae05490a6dcb419d8bb8f72dc32256ae?api-version=2017-04 + response: + body: + string: '"{\"namespace\":\"example.avro\",\"type\":\"record\",\"name\":\"User\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"favorite_number\",\"type\":[\"int\",\"null\"]},{\"name\":\"favorite_food\",\"type\":[\"string\",\"null\"]}]}"' + headers: + content-type: + - application/json + date: + - Wed, 11 Aug 2021 21:42:42 GMT + location: + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-update423f1009/versions/2?api-version=2017-04 + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000 + transfer-encoding: + - chunked + x-schema-id: + - ae05490a6dcb419d8bb8f72dc32256ae + x-schema-id-location: + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/ae05490a6dcb419d8bb8f72dc32256ae?api-version=2017-04 + x-schema-type: + - Avro + x-schema-version: + - '2' + x-schema-versions-location: + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-update423f1009/versions?api-version=2017-04 + status: + code: 200 + message: OK +- request: + body: '"{\"namespace\":\"example.avro\",\"type\":\"record\",\"name\":\"User\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"favorite_number\",\"type\":[\"int\",\"null\"]},{\"name\":\"favorite_food\",\"type\":[\"string\",\"null\"]}]}"' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '244' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + X-Schema-Type: + - Avro + method: POST + uri: https://fake_resource.servicebus.windows.net/$schemagroups/fakegroup/schemas/test-schema-update423f1009?api-version=2017-04 + response: + body: + string: '{"id":"ae05490a6dcb419d8bb8f72dc32256ae"}' + headers: + content-type: + - application/json + date: + - Wed, 11 Aug 2021 21:42:42 GMT + location: + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/test-schema-update423f1009/versions/2?api-version=2017-04 + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000 + transfer-encoding: + - chunked + x-schema-id: + - ae05490a6dcb419d8bb8f72dc32256ae + x-schema-id-location: + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/ae05490a6dcb419d8bb8f72dc32256ae?api-version=2017-04 + x-schema-type: + - Avro + x-schema-version: + - '2' + x-schema-versions-location: + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/test-schema-update423f1009/versions?api-version=2017-04 status: code: 200 message: OK diff --git a/sdk/schemaregistry/azure-schemaregistry/tests/test_schema_registry.py b/sdk/schemaregistry/azure-schemaregistry/tests/test_schema_registry.py index e2562b4f65c5..963c6472c227 100644 --- a/sdk/schemaregistry/azure-schemaregistry/tests/test_schema_registry.py +++ b/sdk/schemaregistry/azure-schemaregistry/tests/test_schema_registry.py @@ -27,7 +27,7 @@ from devtools_testutils import AzureTestCase, PowerShellPreparer -SchemaRegistryPowerShellPreparer = functools.partial(PowerShellPreparer, "schemaregistry", schemaregistry_endpoint="fake_resource.servicebus.windows.net", schemaregistry_group="fakegroup") +SchemaRegistryPowerShellPreparer = functools.partial(PowerShellPreparer, "schemaregistry", schemaregistry_endpoint="fake_resource.servicebus.windows.net/", schemaregistry_group="fakegroup") class SchemaRegistryTests(AzureTestCase): @@ -41,7 +41,11 @@ def test_schema_basic(self, schemaregistry_endpoint, schemaregistry_group, **kwa schema_name = self.get_resource_name('test-schema-basic') schema_str = """{"namespace":"example.avro","type":"record","name":"User","fields":[{"name":"name","type":"string"},{"name":"favorite_number","type":["int","null"]},{"name":"favorite_color","type":["string","null"]}]}""" serialization_type = "Avro" + assert len(client._id_to_schema) == 0 + assert len(client._description_to_properties) == 0 schema_properties = client.register_schema(schemaregistry_group, schema_name, serialization_type, schema_str) + assert len(client._id_to_schema) == 1 + assert len(client._description_to_properties) == 1 assert schema_properties.schema_id is not None assert schema_properties.location is not None @@ -58,7 +62,22 @@ def test_schema_basic(self, schemaregistry_endpoint, schemaregistry_group, **kwa assert returned_schema.schema_properties.serialization_type == "Avro" assert returned_schema.schema_content == schema_str + # check that same cached properties object is returned by get_schema_id + cached_properties = client.get_schema_id(schemaregistry_group, schema_name, serialization_type, schema_str) + assert client.get_schema_id(schemaregistry_group, schema_name, serialization_type, schema_str) == cached_properties + + # check if schema is added to cache when it does not exist in the cache + cached_properties = client._description_to_properties[ + (schemaregistry_group, schema_name, serialization_type, schema_str) + ] + properties_cache_length = len(client._description_to_properties) + del client._description_to_properties[ + (schemaregistry_group, schema_name, serialization_type, schema_str) + ] + assert len(client._description_to_properties) == properties_cache_length - 1 + returned_schema_properties = client.get_schema_id(schemaregistry_group, schema_name, serialization_type, schema_str) + assert len(client._description_to_properties) == properties_cache_length assert returned_schema_properties.schema_id == schema_properties.schema_id assert returned_schema_properties.location is not None @@ -89,7 +108,19 @@ def test_schema_update(self, schemaregistry_endpoint, schemaregistry_group, **kw assert new_schema_properties.version == schema_properties.version + 1 assert new_schema_properties.serialization_type == "Avro" + # check that same cached schema object is returned by get_schema + cached_schema = client.get_schema(schema_id=new_schema_properties.schema_id) + assert client.get_schema(schema_id=new_schema_properties.schema_id) == cached_schema + + # check if schema is added to cache when it does not exist in the cache + cached_schema = client._id_to_schema[new_schema_properties.schema_id] + schema_cache_length = len(client._id_to_schema) + del client._id_to_schema[new_schema_properties.schema_id] + assert len(client._id_to_schema) == schema_cache_length - 1 + new_schema = client.get_schema(schema_id=new_schema_properties.schema_id) + assert len(client._id_to_schema) == schema_cache_length + assert cached_schema != new_schema # assert not same object after deletion from cache assert new_schema.schema_properties.schema_id != schema_properties.schema_id assert new_schema.schema_properties.schema_id == new_schema_properties.schema_id @@ -99,6 +130,13 @@ def test_schema_update(self, schemaregistry_endpoint, schemaregistry_group, **kw assert new_schema.schema_properties.version == schema_properties.version + 1 assert new_schema.schema_properties.serialization_type == "Avro" + # check that properties object is the same in caches + client._id_to_schema = {} + client._description_to_properties = {} + new_schema = client.get_schema(schema_id=new_schema_properties.schema_id) + new_schema_properties = client.get_schema_id(schemaregistry_group, schema_name, serialization_type, schema_str_new) + assert new_schema.schema_properties == new_schema_properties + @SchemaRegistryPowerShellPreparer() def test_schema_same_twice(self, schemaregistry_endpoint, schemaregistry_group, **kwargs): client = self.create_client(schemaregistry_endpoint) @@ -106,8 +144,14 @@ def test_schema_same_twice(self, schemaregistry_endpoint, schemaregistry_group, schema_str = """{"namespace":"example.avro","type":"record","name":"User","fields":[{"name":"name","type":"string"},{"name":"age","type":["int","null"]},{"name":"city","type":["string","null"]}]}""" serialization_type = "Avro" schema_properties = client.register_schema(schemaregistry_group, schema_name, serialization_type, schema_str) + schema_cache_length = len(client._id_to_schema) + desc_cache_length = len(client._description_to_properties) schema_properties_second = client.register_schema(schemaregistry_group, schema_name, serialization_type, schema_str) + schema_cache_second_length = len(client._id_to_schema) + desc_cache_second_length = len(client._description_to_properties) assert schema_properties.schema_id == schema_properties_second.schema_id + assert schema_cache_length == schema_cache_second_length + assert desc_cache_length == desc_cache_second_length @SchemaRegistryPowerShellPreparer() def test_schema_negative_wrong_credential(self, schemaregistry_endpoint, schemaregistry_group, **kwargs): From e3c8167047eae41444e92b362c36ab31b46ceaf5 Mon Sep 17 00:00:00 2001 From: annatisch Date: Thu, 12 Aug 2021 11:54:34 -0700 Subject: [PATCH 053/104] [QnA] Review feedback (#20133) * Support auto record ID * Fix knowledge base casing * Updated changelog * Remove chardet --- .../CHANGELOG.md | 9 + .../README.md | 8 +- .../ai/language/questionanswering/_patch.py | 38 ++++ .../questionanswering/_rest/__init__.py | 6 +- .../_rest/_request_builders.py | 2 +- .../_rest/_request_builders_py3.py | 2 +- .../_question_answering_client_operations.py | 18 +- .../_question_answering_client_operations.py | 22 ++- .../async_samples/sample_chat_async.py | 10 +- .../sample_query_knowledgebase_async.py | 6 +- .../samples/sample_chat.py | 10 +- .../samples/sample_query_knowledgebase.py | 6 +- .../setup.py | 3 +- ...t_query_text.test_query_text_overload.yaml | 162 ++++-------------- ...text.test_query_text_with_str_records.yaml | 67 ++++++++ ...y_text_async.test_query_text_overload.yaml | 162 ++++-------------- ...sync.test_query_text_with_str_records.yaml | 57 ++++++ .../tests/test_query_knowledgebase.py | 20 +-- .../tests/test_query_knowledgebase_async.py | 20 +-- .../tests/test_query_text.py | 56 ++++++ .../tests/test_query_text_async.py | 55 ++++++ 21 files changed, 422 insertions(+), 317 deletions(-) create mode 100644 sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/_patch.py create mode 100644 sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/recordings/test_query_text.test_query_text_with_str_records.yaml create mode 100644 sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/recordings/test_query_text_async.test_query_text_with_str_records.yaml diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/CHANGELOG.md b/sdk/cognitivelanguage/azure-ai-language-questionanswering/CHANGELOG.md index d0b11136cae8..e9f0408f0f86 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/CHANGELOG.md +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/CHANGELOG.md @@ -1,5 +1,14 @@ # Release History +## 1.0.0b2 (unreleased) + +### Breaking changes +* The method `QuestionAnsweringClient.query_knowledgebase` has been renamed to `query_knowledge_base`. + +### Features Added +* The method `QuestionAnsweringClient.query_text` now supports a list of records as strings, where the ID value will be automatically populated. + + ## 1.0.0b1 (2021-07-27) ### Features Added diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/README.md b/sdk/cognitivelanguage/azure-ai-language-questionanswering/README.md index 740c535acdc1..a3e4f543c1dd 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/README.md +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/README.md @@ -79,7 +79,7 @@ params = qna.KnowledgeBaseQueryOptions( question="How long should my Surface battery last?" ) -output = client.query_knowledgebase( +output = client.query_knowledge_base( params, project_name="FAQ", ) @@ -104,7 +104,7 @@ params = qna.models.KnowledgeBaseQueryOptions( ) ) -output = client.query_knowledgebase( +output = client.query_knowledge_base( params, project_name="FAQ" ) @@ -127,7 +127,7 @@ params = qna.KnowledgeBaseQueryOptions( question="How long should my Surface battery last?" ) -output = await client.query_knowledgebase( +output = await client.query_knowledge_base( params, project_name="FAQ" ) @@ -148,7 +148,7 @@ For example, if you submit a question to a non-existant knowledge base, a `400` from azure.core.exceptions import HttpResponseError try: - client.query_knowledgebase( + client.query_knowledge_base( params, project_name="invalid-knowledge-base" ) diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/_patch.py b/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/_patch.py new file mode 100644 index 000000000000..7308492dcdab --- /dev/null +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/_patch.py @@ -0,0 +1,38 @@ +# 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. +# -------------------------------------------------------------------------- + +import six + +from .models import TextRecord + + +def _validate_text_records(records): + if not records: + raise ValueError("Input records can not be empty or None") + + if isinstance(records, six.string_types): + raise TypeError("Input records cannot be a string.") + + if isinstance(records, dict): + raise TypeError("Input records cannot be a dict") + + if not all(isinstance(x, six.string_types) for x in records): + if not all( + isinstance(x, (dict, TextRecord)) + for x in records + ): + raise TypeError( + "Mixing string and dictionary/object record input unsupported." + ) + + request_batch = [] + for idx, doc in enumerate(records): + if isinstance(doc, six.string_types): + record = {"id": str(idx), "text": doc} + request_batch.append(record) + else: + request_batch.append(doc) + return request_batch diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/_rest/__init__.py b/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/_rest/__init__.py index 4edb3526786a..bb4c4f612106 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/_rest/__init__.py +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/_rest/__init__.py @@ -7,13 +7,13 @@ # -------------------------------------------------------------------------- try: - from ._request_builders_py3 import build_query_knowledgebase_request + from ._request_builders_py3 import build_query_knowledge_base_request from ._request_builders_py3 import build_query_text_request except (SyntaxError, ImportError): - from ._request_builders import build_query_knowledgebase_request # type: ignore + from ._request_builders import build_query_knowledge_base_request # type: ignore from ._request_builders import build_query_text_request # type: ignore __all__ = [ - "build_query_knowledgebase_request", + "build_query_knowledge_base_request", "build_query_text_request", ] diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/_rest/_request_builders.py b/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/_rest/_request_builders.py index 981287ff61f4..2d9863dd1c85 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/_rest/_request_builders.py +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/_rest/_request_builders.py @@ -18,7 +18,7 @@ # fmt: off -def build_query_knowledgebase_request( +def build_query_knowledge_base_request( **kwargs # type: Any ): # type: (...) -> HttpRequest diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/_rest/_request_builders_py3.py b/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/_rest/_request_builders_py3.py index 283d2d36e45b..77bb3c947abe 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/_rest/_request_builders_py3.py +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/_rest/_request_builders_py3.py @@ -13,7 +13,7 @@ _SERIALIZER = Serializer() -def build_query_knowledgebase_request( +def build_query_knowledge_base_request( *, project_name: str, json: Any = None, content: Any = None, deployment_name: Optional[str] = None, **kwargs: Any ) -> HttpRequest: """Answers the specified question using your knowledge base. diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/aio/operations/_question_answering_client_operations.py b/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/aio/operations/_question_answering_client_operations.py index fdee9098cb24..00d91b45f212 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/aio/operations/_question_answering_client_operations.py +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/aio/operations/_question_answering_client_operations.py @@ -21,6 +21,7 @@ from azure.core.rest import HttpRequest from ... import models as _models, _rest as rest +from ..._patch import _validate_text_records T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -28,7 +29,7 @@ class QuestionAnsweringClientOperationsMixin: @overload - async def query_knowledgebase( + async def query_knowledge_base( self, knowledge_base_query_options: "_models.KnowledgeBaseQueryOptions", *, @@ -53,7 +54,7 @@ async def query_knowledgebase( ... @overload - async def query_knowledgebase( + async def query_knowledge_base( self, *, project_name: str, @@ -106,7 +107,7 @@ async def query_knowledgebase( """ ... - async def query_knowledgebase( + async def query_knowledge_base( self, *args, **kwargs: Any @@ -172,12 +173,12 @@ async def query_knowledgebase( json = self._serialize.body(knowledge_base_query_options, "KnowledgeBaseQueryOptions") - request = rest.build_query_knowledgebase_request( + request = rest.build_query_knowledge_base_request( content_type=content_type, project_name=project_name, deployment_name=deployment_name, json=json, - template_url=self.query_knowledgebase.metadata["url"], + template_url=self.query_knowledge_base.metadata["url"], )._to_pipeline_transport_request() path_format_arguments = { "Endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str", skip_quote=True), @@ -201,7 +202,7 @@ async def query_knowledgebase( return deserialized - query_knowledgebase.metadata = {"url": "/:query-knowledgebases"} # type: ignore + query_knowledge_base.metadata = {"url": "/:query-knowledgebases"} # type: ignore @overload async def query_text( @@ -286,6 +287,11 @@ async def query_text( language=kwargs.pop("language", None), string_index_type=kwargs.pop("string_index_type", "TextElements_v8") ) + try: + text_query_options['records'] = _validate_text_records(text_query_options['records']) + except TypeError: + text_query_options.records = _validate_text_records(text_query_options.records) + cls = kwargs.pop("cls", None) # type: ClsType["_models.TextAnswers"] error_map = {401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError} error_map.update(kwargs.pop("error_map", {})) diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/operations/_question_answering_client_operations.py b/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/operations/_question_answering_client_operations.py index 7f76c69ab66f..0d415602e1c9 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/operations/_question_answering_client_operations.py +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/azure/ai/language/questionanswering/operations/_question_answering_client_operations.py @@ -21,6 +21,7 @@ from azure.core.rest import HttpRequest from .. import models as _models, _rest as rest +from .._patch import _validate_text_records if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -32,7 +33,7 @@ class QuestionAnsweringClientOperationsMixin(object): @overload - def query_knowledgebase( + def query_knowledge_base( self, knowledge_base_query_options, # type: "_models.KnowledgeBaseQueryOptions" **kwargs # type: Any @@ -55,7 +56,7 @@ def query_knowledgebase( pass @overload - def query_knowledgebase( + def query_knowledge_base( self, **kwargs # type: Any ): @@ -96,7 +97,7 @@ def query_knowledgebase( """ pass - def query_knowledgebase( + def query_knowledge_base( self, *args, # type: "_models.KnowledgeBaseQueryOptions" **kwargs # type: Any @@ -163,12 +164,12 @@ def query_knowledgebase( json = self._serialize.body(knowledge_base_query_options, "KnowledgeBaseQueryOptions") - request = rest.build_query_knowledgebase_request( + request = rest.build_query_knowledge_base_request( content_type=content_type, project_name=project_name, deployment_name=deployment_name, json=json, - template_url=self.query_knowledgebase.metadata["url"], + template_url=self.query_knowledge_base.metadata["url"], )._to_pipeline_transport_request() path_format_arguments = { "Endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str", skip_quote=True), @@ -190,7 +191,7 @@ def query_knowledgebase( return deserialized - query_knowledgebase.metadata = {"url": "/:query-knowledgebases"} # type: ignore + query_knowledge_base.metadata = {"url": "/:query-knowledgebases"} # type: ignore @overload def query_text( @@ -221,7 +222,7 @@ def query_text( :keyword question: Required. User question to query against the given text records. :paramtype question: str :keyword records: Required. Text records to be searched for given question. - :paramtype records: list[~azure.ai.language.questionanswering.models.TextInput] + :paramtype records: list[str or ~azure.ai.language.questionanswering.models.TextRecord] :keyword language: Language of the text records. This is BCP-47 representation of a language. For example, use "en" for English; "es" for Spanish etc. If not set, use "en" for English as default. @@ -254,7 +255,7 @@ def query_text( :paramtype question: str :keyword records: Text records to be searched for given question. Provide either `text_query_options`, OR individual keyword arguments. If both are provided, only the options object will be used. - :paramtype records: list[~azure.ai.language.questionanswering.models.TextInput] + :paramtype records: list[str or ~azure.ai.language.questionanswering.models.TextRecord] :keyword language: Language of the text records. This is BCP-47 representation of a language. For example, use "en" for English; "es" for Spanish etc. If not set, use "en" for English as default. :paramtype language: str @@ -277,6 +278,11 @@ def query_text( language=kwargs.pop("language", None), string_index_type=kwargs.pop("string_index_type", "TextElements_v8") ) + try: + text_query_options['records'] = _validate_text_records(text_query_options['records']) + except TypeError: + text_query_options.records = _validate_text_records(text_query_options.records) + cls = kwargs.pop("cls", None) # type: ClsType["_models.TextAnswers"] error_map = {401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError} error_map.update(kwargs.pop("error_map", {})) diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/samples/async_samples/sample_chat_async.py b/sdk/cognitivelanguage/azure-ai-language-questionanswering/samples/async_samples/sample_chat_async.py index 059bf3e17e73..483e68f85705 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/samples/async_samples/sample_chat_async.py +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/samples/async_samples/sample_chat_async.py @@ -31,7 +31,7 @@ async def sample_chit_chat(): endpoint = os.environ["AZURE_QUESTIONANSWERING_ENDPOINT"] key = os.environ["AZURE_QUESTIONANSWERING_KEY"] - knowledgebase_project = os.environ["AZURE_QUESTIONANSWERING_PROJECT"] + knowledge_base_project = os.environ["AZURE_QUESTIONANSWERING_PROJECT"] client = QuestionAnsweringClient(endpoint, AzureKeyCredential(key)) async with client: @@ -47,9 +47,9 @@ async def sample_chit_chat(): ), ) - output = await client.query_knowledgebase( + output = await client.query_knowledge_base( first_question, - project_name=knowledgebase_project, + project_name=knowledge_base_project, deployment_name="test" ) best_candidate = [a for a in output.answers if a.confidence_score > 0.9][0] @@ -72,9 +72,9 @@ async def sample_chit_chat(): include_unstructured_sources=True ) - output = await client.query_knowledgebase( + output = await client.query_knowledge_base( followup_question, - project_name=knowledgebase_project, + project_name=knowledge_base_project, deployment_name="test" ) print("Q: {}".format(followup_question.question)) diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/samples/async_samples/sample_query_knowledgebase_async.py b/sdk/cognitivelanguage/azure-ai-language-questionanswering/samples/async_samples/sample_query_knowledgebase_async.py index fdaee2ee65e5..2f5b0ef1f2e5 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/samples/async_samples/sample_query_knowledgebase_async.py +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/samples/async_samples/sample_query_knowledgebase_async.py @@ -31,7 +31,7 @@ async def sample_query_knowledgebase(): endpoint = os.environ["AZURE_QUESTIONANSWERING_ENDPOINT"] key = os.environ["AZURE_QUESTIONANSWERING_KEY"] - knowledgebase_project = os.environ["AZURE_QUESTIONANSWERING_PROJECT"] + knowledge_base_project = os.environ["AZURE_QUESTIONANSWERING_PROJECT"] client = QuestionAnsweringClient(endpoint, AzureKeyCredential(key)) async with client: @@ -47,9 +47,9 @@ async def sample_query_knowledgebase(): ), ) - output = await client.query_knowledgebase( + output = await client.query_knowledge_base( input, - project_name=knowledgebase_project, + project_name=knowledge_base_project, deployment_name="test" ) best_candidate = [a for a in output.answers if a.confidence_score > 0.9][0] diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/samples/sample_chat.py b/sdk/cognitivelanguage/azure-ai-language-questionanswering/samples/sample_chat.py index 48c7be634897..68077ff16f05 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/samples/sample_chat.py +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/samples/sample_chat.py @@ -29,7 +29,7 @@ def sample_chit_chat(): endpoint = os.environ["AZURE_QUESTIONANSWERING_ENDPOINT"] key = os.environ["AZURE_QUESTIONANSWERING_KEY"] - knowledgebase_project = os.environ["AZURE_QUESTIONANSWERING_PROJECT"] + knowledge_base_project = os.environ["AZURE_QUESTIONANSWERING_PROJECT"] client = QuestionAnsweringClient(endpoint, AzureKeyCredential(key)) with client: @@ -45,9 +45,9 @@ def sample_chit_chat(): ), ) - output = client.query_knowledgebase( + output = client.query_knowledge_base( first_question, - project_name=knowledgebase_project, + project_name=knowledge_base_project, deployment_name="test" ) best_candidate = [a for a in output.answers if a.confidence_score > 0.9][0] @@ -70,9 +70,9 @@ def sample_chit_chat(): include_unstructured_sources=True ) - output = client.query_knowledgebase( + output = client.query_knowledge_base( followup_question, - project_name=knowledgebase_project, + project_name=knowledge_base_project, deployment_name="test" ) print("Q: {}".format(followup_question.question)) diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/samples/sample_query_knowledgebase.py b/sdk/cognitivelanguage/azure-ai-language-questionanswering/samples/sample_query_knowledgebase.py index da25074b7ace..21599649b602 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/samples/sample_query_knowledgebase.py +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/samples/sample_query_knowledgebase.py @@ -29,7 +29,7 @@ def sample_query_knowledgebase(): endpoint = os.environ["AZURE_QUESTIONANSWERING_ENDPOINT"] key = os.environ["AZURE_QUESTIONANSWERING_KEY"] - knowledgebase_project = os.environ["AZURE_QUESTIONANSWERING_PROJECT"] + knowledge_base_project = os.environ["AZURE_QUESTIONANSWERING_PROJECT"] client = QuestionAnsweringClient(endpoint, AzureKeyCredential(key)) with client: @@ -45,9 +45,9 @@ def sample_query_knowledgebase(): ), ) - output = client.query_knowledgebase( + output = client.query_knowledge_base( input, - project_name=knowledgebase_project, + project_name=knowledge_base_project, deployment_name="test" ) best_candidate = [a for a in output.answers if a.confidence_score > 0.9][0] diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/setup.py b/sdk/cognitivelanguage/azure-ai-language-questionanswering/setup.py index c5c359fe8608..976409977724 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/setup.py +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/setup.py @@ -68,11 +68,10 @@ install_requires=[ 'azure-core<2.0.0,>=1.16.0', 'msrest>=0.6.21', - 'chardet>=3.0.2,<5' ], extras_require={ ":python_version<'3.0'": ['futures', 'azure-ai-language-nspkg'], - ":python_version<'3.5'": ["typing"] + ":python_version<'3.5'": ["typing"], }, project_urls={ 'Bug Reports': 'https://github.com/Azure/azure-sdk-for-python/issues', diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/recordings/test_query_text.test_query_text_overload.yaml b/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/recordings/test_query_text.test_query_text_overload.yaml index 74e875f88e16..bae034dbea31 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/recordings/test_query_text.test_query_text_overload.yaml +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/recordings/test_query_text.test_query_text_overload.yaml @@ -1,99 +1,14 @@ interactions: - request: - body: '{"question": "What is the meaning of life?", "records": [{"id": "doc1", - "text": "abc Graphics Surprise, surprise -- our 4K "}, {"id": "doc2", "text": - "e graphics card. While the Nvidia GeForce MX250 GPU isn''t meant for demanding - gaming, it is a step up from integrated graphics as proven by comparing it to - the UHD 620 GPU in the FHD model. The MX250-equipped Envy 13 scored a 116,575 - on the Ice Storm Unlimited benchmark while the base model scored a 82,270. Upgrading - to the discrete graphics gives the Envy 13 better performance than the Notebook - 9 Pro (61,662; UHD 620), Surface Laptop 2 (71,647; UHD 620) and the premium - laptop average (86,937). While the Nvidia GeForce MX250 GPU isn''t meant for - demanding gaming, it is a step up from integrated graphics as proven by comparing - it to the UHD 620 GPU in the FHD model. We played the racing game Dirt 3 at - 92 frames per second on "}, {"id": "doc3", "text": "Graphics Surprise, surprise - -- our 4K Envy 13 came with a discrete graphics card. While the Nvidia GeForce - MX250 GPU isn''t meant for demanding gaming, it is a step up from integrated - graphics as proven by comparing it to the UHD 620 GPU in the FHD model. The - MX250-equipped Envy 13 scored a 116,575 on the Ice Storm Unlimited benchmark - while the base model scored a 82,270. Upgrading to the discrete graphics gives - the Envy 13 better performance than the Notebook 9 Pro (61,662; UHD 620), Surface - Laptop 2 (71,647; UHD 620) and the premium laptop average (86,937). While - the Nvidia GeForce MX250 GPU isn''t meant for demanding gaming, it is a step - up from integrated graphics as proven by comparing it to the UHD 620 GPU in - the FHD model. We played the racing game Dirt 3 at 92 frames per second on - the MX250 model, which is well above our 30-fps playability, the category average - (69 fps) and what the Surface Laptop 2 (82 fps) achieved. The ZenBook S UX391UA - (45 fps) fell flat on this real-world test but ran better than the base model - Envy 13 (31 fps). Audio I had a good ol'' time groovin'' to the sound of the - Envy 13''s crisp speakers. HP went all out with the Envy, placing dual speakers - on the underside of the chassis along with a third, top-firing driver above - the keyboard. Devon Gilfillian''s funky jam \"Here and Now\" boomed smooth, - soulful tunes throughout my small apartment. The twang of the electric guitar - played nicely with the thudding percussion but never overshadowed Gilfillian - or the female backup vocals. Bang & Olufsen software comes preinstalled on - the Envy 13, with equalizer controls so you can adjust the bass, midrange and - treble to your liking. But even out of the box, you''ll enjoy great sound without - having to bust out your headphones. Battery Life Get an Envy 13 with the 1080p - non-touch display if battery life is important to you. The FHD model endured - for 11 hours and 11 minutes whereas the 4K model lasted only 4 hours and 36 - minutes on our battery test, which involves continuous web browsing over Wi-Fi - at 150 nits of brightness. MORE: Laptops with Best Battery Life - Longest - Lasting Laptop Batteries Competing laptops like the ZenBook S UX391UA (7:05), - Surface Laptop 2 (9:22) and Notebook 9 Pro (8:53) outstayed the 4K Envy 13 but - powered down long before the 1080p version. Webcam The 720p webcam on the - Envy 13 is nothing to write home about. A selfie I snapped in my dimly lit room - was covered in a haze of visual noise. My beard and hair were unkempt blobs, - while my eyes looked like they were drawn on by a pointillist painter. If there''s - one positive, it''s that the lens captures natural colors and even extracted - the different shades of gray in my T-shirt. On the right edge of the Envy - 13 is a physical kill switch that cuts the power to the webcam so you can feel - reassured that nobody is snooping on you. Heat Leave the lapdesk at home - - you don''t have to worry about the Envy 13 overheating. After I played - a 15-minute, full-HD video in full screen, the touchpad on the HP Envy 13 with - a Core i7 CPU rose to only 83 degrees Fahrenheit while the keyboard (87 degrees) - and underside (90 degrees) also remained well below our 95-degree comfort threshold. - Even the toastiest part of the machine, the lower-left edge on the underside, - topped out at 94 degrees. Software and Warranty It''s a shame that a laptop - with such beautiful hardware ships with such ugly software. Pre-installed on - this machine are entirely too many programs that could either be packaged together - or omitted altogether. HP provides an app called Audio Switch, which simply - lets you switch your audio input/output between the internal speakers and headphones. - As the same implies, HP''s Command Center is where you can get information about - your Envy 13 but also switch the thermal profiles between comfort and performance. - Along with support documentation, HP also bundles in a setup program called - JumpStart, a program for connecting printers and a redundant system-info app - called Event Utility. Also installed on the Envy 13''s Windows 10 Home OS - are several Microsoft apps, including Simple Solitaire, Candy Crush Friends - and Your Phone. Other third-party apps include Booking.com, Netflix and McAfee - Security. HP ships the Envy 13 with a one-year warranty. See how HP did on - our Tech Support Showdown and Best and Worst Brands ranking. Bottom Line The - Envy 13 has cemented its standing as the ultimate laptop for college students - or travelers. Along with 11-plus hours of battery life (on the FHD model), the - Envy 13 has a sleek, ultraportable chassis, fast performance, and powerful speakers. - Best of all, the Envy 13 starts at a reasonable $799, which is hundreds less - than the competition. In many ways, the Envy 13 is what we wanted the new MacBook - Air to be. The new HP Envy 13 is everything I was hoping the new MacBook Air - would be: fast, attractive and affordable. Just be sure to buy the right model. - We strongly recommend the 1080p version over the 4K model because it lasts several - hours longer on a charge and costs less. In fact, if we were reviewing the 4K - model separately, we''d only give it a 3.5 rating. You should also consider - the Envy 13 with a 10th Gen CPU, although we haven''t gotten the chance to review - it yet. If you absolutely need a high-res display, the 4K Envy 13 is one of - many good options. We also recommend the Samsung Notebook 9 Pro, which has a - similarly premium design but much better battery life than the 4K Envy. The - Microsoft Surface Laptop 2 is another recommended alternative, though you might - want to wait a few months for the rumored Surface Laptop 3. Overall, the HP - Envy 13 is a fantastic laptop that checks all the right boxes --- as long as - you buy the 1080p model. Credit: Laptop Mag HP Envy 13 (2019) Specs BluetoothBluetooth - 5.0 BrandHP CPUIntel Core i7-8565U Card SlotsmicroSD Company Websitehttps://www8.hp.com/us/en/home.html - Display Size13.3 Graphics CardNvidia GeForce MX250 Hard Drive Size512GB Hard - Drive TypePCIe NVMe M.2 Highest Available Resolution3840 x 2160 Native Resolution3840 - x 2160 Operating SystemWindows 10 Home Ports (excluding USB)USB 3.1 with Type-C, - USB 3.1 Always-On, USB 3.1, Headphone/Mic, microSD RAM16GB RAM Upgradable to16GB - Size12.1 x 8.3 x .57 inches Touchpad Size4.3 x 2.2 inches USB Ports3 Video Memory2GB - Warranty/Supportone-year warranty. Weight2.8 pounds Wi-Fi802.11ac Wi-Fi ModelIntel - Wireless-AC 9560 "}], "language": "en", "stringIndexType": "TextElements_v8"}' + body: '{"question": "How long it takes to charge surface?", "records": [{"id": + "0", "text": "Power and charging. It takes two to four hours to charge the Surface + Pro 4 battery fully from an empty state. It can take longer if you\u2019re using + your Surface for power-intensive activities like gaming or video streaming while + you\u2019re charging it."}, {"id": "1", "text": "You can use the USB port on + your Surface Pro 4 power supply to charge other devices, like a phone, while + your Surface charges. The USB port on the power supply is only for charging, + not for data transfer. If you want to use a USB device, plug it into the USB + port on your Surface."}], "stringIndexType": "TextElements_v8"}' headers: Accept: - application/json @@ -102,7 +17,7 @@ interactions: Connection: - keep-alive Content-Length: - - '7447' + - '688' Content-Type: - application/json User-Agent: @@ -111,50 +26,41 @@ interactions: uri: https://test-resource.api.cognitive.microsoft.com/language/:query-text?api-version=2021-05-01-preview response: body: - string: "{\n \"answers\": [\n {\n \"answer\": \"Battery Life Get an - Envy 13 with the 1080p non-touch display if battery life is important to you. - \ The FHD model endured for 11 hours and 11 minutes whereas the 4K model - lasted only 4 hours and 36 minutes on our battery test, which involves continuous - web browsing over Wi-Fi at 150 nits of brightness. MORE: Laptops with Best - Battery Life - Longest Lasting Laptop Batteries Competing laptops like the - ZenBook S UX391UA (7:05), Surface Laptop 2 (9:22) and Notebook 9 Pro (8:53) - outstayed the 4K Envy 13 but powered down long before the 1080p version.\",\n - \ \"confidenceScore\": 0.017458289861679077,\n \"id\": \"doc3\",\n - \ \"answerSpan\": {\n \"text\": \"Battery Life\",\n \"confidenceScore\": - 0.26247412,\n \"offset\": 0,\n \"length\": 12\n },\n \"offset\": - 1779,\n \"length\": 555\n },\n {\n \"answer\": \"Along with - 11-plus hours of battery life (on the FHD model), the Envy 13 has a sleek, - ultraportable chassis, fast performance, and powerful speakers. Best of all, - the Envy 13 starts at a reasonable $799, which is hundreds less than the competition. - In many ways, the Envy 13 is what we wanted the new MacBook Air to be.\",\n - \ \"confidenceScore\": 0.00940172653645277,\n \"id\": \"doc3\",\n - \ \"answerSpan\": {\n \"text\": \"battery life\",\n \"confidenceScore\": - 0.35305238,\n \"offset\": 27,\n \"length\": 13\n },\n \"offset\": - 4508,\n \"length\": 319\n },\n {\n \"answer\": \"We also recommend - the Samsung Notebook 9 Pro, which has a similarly premium design but much - better battery life than the 4K Envy. The Microsoft Surface Laptop 2 is another - recommended alternative, though you might want to wait a few months for the - rumored Surface Laptop 3. Overall, the HP Envy 13 is a fantastic laptop - that checks all the right boxes --- as long as you buy the 1080p model.\",\n - \ \"confidenceScore\": 0.0070572528056800365,\n \"id\": \"doc3\",\n - \ \"answerSpan\": {\n \"text\": \"battery life\",\n \"confidenceScore\": - 0.5914322,\n \"offset\": 98,\n \"length\": 13\n },\n \"offset\": - 5391,\n \"length\": 393\n }\n ]\n}" + string: "{\n \"answers\": [\n {\n \"answer\": \"Power and charging. + It takes two to four hours to charge the Surface Pro 4 battery fully from + an empty state. It can take longer if you\u2019re using your Surface for power-intensive + activities like gaming or video streaming while you\u2019re charging it.\",\n + \ \"confidenceScore\": 0.9298818707466125,\n \"id\": \"0\",\n \"answerSpan\": + {\n \"text\": \"two to four hours\",\n \"confidenceScore\": + 0.98579097,\n \"offset\": 28,\n \"length\": 18\n },\n \"offset\": + 0,\n \"length\": 245\n },\n {\n \"answer\": \"It takes two + to four hours to charge the Surface Pro 4 battery fully from an empty state. + It can take longer if you\u2019re using your Surface for power-intensive activities + like gaming or video streaming while you\u2019re charging it.\",\n \"confidenceScore\": + 0.9254360198974609,\n \"id\": \"0\",\n \"answerSpan\": {\n \"text\": + \"two to four hours\",\n \"confidenceScore\": 0.98562825,\n \"offset\": + 8,\n \"length\": 18\n },\n \"offset\": 20,\n \"length\": + 225\n },\n {\n \"answer\": \"It can take longer if you\u2019re + using your Surface for power-intensive activities like gaming or video streaming + while you\u2019re charging it.\",\n \"confidenceScore\": 0.05503516271710396,\n + \ \"id\": \"0\",\n \"answerSpan\": {\n \"text\": \"longer\",\n + \ \"confidenceScore\": 0.624118,\n \"offset\": 11,\n \"length\": + 7\n },\n \"offset\": 110,\n \"length\": 135\n }\n ]\n}" headers: apim-request-id: - - 1166df47-3640-4276-ba1b-8352467aabde + - 0859996e-48ab-42f9-9d67-04d21bc14fba content-length: - - '2147' + - '1479' content-type: - application/json; charset=utf-8 date: - - Tue, 13 Jul 2021 17:24:16 GMT + - Fri, 06 Aug 2021 18:14:29 GMT strict-transport-security: - max-age=31536000; includeSubDomains; preload x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '263' + - '1084' status: code: 200 message: OK diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/recordings/test_query_text.test_query_text_with_str_records.yaml b/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/recordings/test_query_text.test_query_text_with_str_records.yaml new file mode 100644 index 000000000000..1f40ef745ff9 --- /dev/null +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/recordings/test_query_text.test_query_text_with_str_records.yaml @@ -0,0 +1,67 @@ +interactions: +- request: + body: '{"question": "How long it takes to charge surface?", "records": [{"id": + "0", "text": "Power and charging. It takes two to four hours to charge the Surface + Pro 4 battery fully from an empty state. It can take longer if you\u2019re using + your Surface for power-intensive activities like gaming or video streaming while + you\u2019re charging it."}, {"id": "1", "text": "You can use the USB port on + your Surface Pro 4 power supply to charge other devices, like a phone, while + your Surface charges. The USB port on the power supply is only for charging, + not for data transfer. If you want to use a USB device, plug it into the USB + port on your Surface."}], "language": "en"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '668' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-language-questionanswering/1.0.0b1 Python/3.7.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://test-resource.api.cognitive.microsoft.com/language/:query-text?api-version=2021-05-01-preview + response: + body: + string: "{\n \"answers\": [\n {\n \"answer\": \"Power and charging. + It takes two to four hours to charge the Surface Pro 4 battery fully from + an empty state. It can take longer if you\u2019re using your Surface for power-intensive + activities like gaming or video streaming while you\u2019re charging it.\",\n + \ \"confidenceScore\": 0.9298818111419678,\n \"id\": \"0\",\n \"answerSpan\": + {\n \"text\": \"two to four hours\",\n \"confidenceScore\": + 0.98579097,\n \"offset\": 28,\n \"length\": 18\n },\n \"offset\": + 0,\n \"length\": 245\n },\n {\n \"answer\": \"It takes two + to four hours to charge the Surface Pro 4 battery fully from an empty state. + It can take longer if you\u2019re using your Surface for power-intensive activities + like gaming or video streaming while you\u2019re charging it.\",\n \"confidenceScore\": + 0.9254360198974609,\n \"id\": \"0\",\n \"answerSpan\": {\n \"text\": + \"two to four hours\",\n \"confidenceScore\": 0.98562825,\n \"offset\": + 8,\n \"length\": 18\n },\n \"offset\": 20,\n \"length\": + 225\n },\n {\n \"answer\": \"It can take longer if you\u2019re + using your Surface for power-intensive activities like gaming or video streaming + while you\u2019re charging it.\",\n \"confidenceScore\": 0.05503518134355545,\n + \ \"id\": \"0\",\n \"answerSpan\": {\n \"text\": \"longer\",\n + \ \"confidenceScore\": 0.624118,\n \"offset\": 11,\n \"length\": + 7\n },\n \"offset\": 110,\n \"length\": 135\n }\n ]\n}" + headers: + apim-request-id: + - c103d09b-72cd-489c-8d4a-e077a5526e70 + content-length: + - '1479' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 06 Aug 2021 18:18:43 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '491' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/recordings/test_query_text_async.test_query_text_overload.yaml b/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/recordings/test_query_text_async.test_query_text_overload.yaml index 45124a7a4e5b..564793648d31 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/recordings/test_query_text_async.test_query_text_overload.yaml +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/recordings/test_query_text_async.test_query_text_overload.yaml @@ -1,104 +1,19 @@ interactions: - request: - body: '{"question": "What is the meaning of life?", "records": [{"id": "doc1", - "text": "abc Graphics Surprise, surprise -- our 4K "}, {"id": "doc2", "text": - "e graphics card. While the Nvidia GeForce MX250 GPU isn''t meant for demanding - gaming, it is a step up from integrated graphics as proven by comparing it to - the UHD 620 GPU in the FHD model. The MX250-equipped Envy 13 scored a 116,575 - on the Ice Storm Unlimited benchmark while the base model scored a 82,270. Upgrading - to the discrete graphics gives the Envy 13 better performance than the Notebook - 9 Pro (61,662; UHD 620), Surface Laptop 2 (71,647; UHD 620) and the premium - laptop average (86,937). While the Nvidia GeForce MX250 GPU isn''t meant for - demanding gaming, it is a step up from integrated graphics as proven by comparing - it to the UHD 620 GPU in the FHD model. We played the racing game Dirt 3 at - 92 frames per second on "}, {"id": "doc3", "text": "Graphics Surprise, surprise - -- our 4K Envy 13 came with a discrete graphics card. While the Nvidia GeForce - MX250 GPU isn''t meant for demanding gaming, it is a step up from integrated - graphics as proven by comparing it to the UHD 620 GPU in the FHD model. The - MX250-equipped Envy 13 scored a 116,575 on the Ice Storm Unlimited benchmark - while the base model scored a 82,270. Upgrading to the discrete graphics gives - the Envy 13 better performance than the Notebook 9 Pro (61,662; UHD 620), Surface - Laptop 2 (71,647; UHD 620) and the premium laptop average (86,937). While - the Nvidia GeForce MX250 GPU isn''t meant for demanding gaming, it is a step - up from integrated graphics as proven by comparing it to the UHD 620 GPU in - the FHD model. We played the racing game Dirt 3 at 92 frames per second on - the MX250 model, which is well above our 30-fps playability, the category average - (69 fps) and what the Surface Laptop 2 (82 fps) achieved. The ZenBook S UX391UA - (45 fps) fell flat on this real-world test but ran better than the base model - Envy 13 (31 fps). Audio I had a good ol'' time groovin'' to the sound of the - Envy 13''s crisp speakers. HP went all out with the Envy, placing dual speakers - on the underside of the chassis along with a third, top-firing driver above - the keyboard. Devon Gilfillian''s funky jam \"Here and Now\" boomed smooth, - soulful tunes throughout my small apartment. The twang of the electric guitar - played nicely with the thudding percussion but never overshadowed Gilfillian - or the female backup vocals. Bang & Olufsen software comes preinstalled on - the Envy 13, with equalizer controls so you can adjust the bass, midrange and - treble to your liking. But even out of the box, you''ll enjoy great sound without - having to bust out your headphones. Battery Life Get an Envy 13 with the 1080p - non-touch display if battery life is important to you. The FHD model endured - for 11 hours and 11 minutes whereas the 4K model lasted only 4 hours and 36 - minutes on our battery test, which involves continuous web browsing over Wi-Fi - at 150 nits of brightness. MORE: Laptops with Best Battery Life - Longest - Lasting Laptop Batteries Competing laptops like the ZenBook S UX391UA (7:05), - Surface Laptop 2 (9:22) and Notebook 9 Pro (8:53) outstayed the 4K Envy 13 but - powered down long before the 1080p version. Webcam The 720p webcam on the - Envy 13 is nothing to write home about. A selfie I snapped in my dimly lit room - was covered in a haze of visual noise. My beard and hair were unkempt blobs, - while my eyes looked like they were drawn on by a pointillist painter. If there''s - one positive, it''s that the lens captures natural colors and even extracted - the different shades of gray in my T-shirt. On the right edge of the Envy - 13 is a physical kill switch that cuts the power to the webcam so you can feel - reassured that nobody is snooping on you. Heat Leave the lapdesk at home - - you don''t have to worry about the Envy 13 overheating. After I played - a 15-minute, full-HD video in full screen, the touchpad on the HP Envy 13 with - a Core i7 CPU rose to only 83 degrees Fahrenheit while the keyboard (87 degrees) - and underside (90 degrees) also remained well below our 95-degree comfort threshold. - Even the toastiest part of the machine, the lower-left edge on the underside, - topped out at 94 degrees. Software and Warranty It''s a shame that a laptop - with such beautiful hardware ships with such ugly software. Pre-installed on - this machine are entirely too many programs that could either be packaged together - or omitted altogether. HP provides an app called Audio Switch, which simply - lets you switch your audio input/output between the internal speakers and headphones. - As the same implies, HP''s Command Center is where you can get information about - your Envy 13 but also switch the thermal profiles between comfort and performance. - Along with support documentation, HP also bundles in a setup program called - JumpStart, a program for connecting printers and a redundant system-info app - called Event Utility. Also installed on the Envy 13''s Windows 10 Home OS - are several Microsoft apps, including Simple Solitaire, Candy Crush Friends - and Your Phone. Other third-party apps include Booking.com, Netflix and McAfee - Security. HP ships the Envy 13 with a one-year warranty. See how HP did on - our Tech Support Showdown and Best and Worst Brands ranking. Bottom Line The - Envy 13 has cemented its standing as the ultimate laptop for college students - or travelers. Along with 11-plus hours of battery life (on the FHD model), the - Envy 13 has a sleek, ultraportable chassis, fast performance, and powerful speakers. - Best of all, the Envy 13 starts at a reasonable $799, which is hundreds less - than the competition. In many ways, the Envy 13 is what we wanted the new MacBook - Air to be. The new HP Envy 13 is everything I was hoping the new MacBook Air - would be: fast, attractive and affordable. Just be sure to buy the right model. - We strongly recommend the 1080p version over the 4K model because it lasts several - hours longer on a charge and costs less. In fact, if we were reviewing the 4K - model separately, we''d only give it a 3.5 rating. You should also consider - the Envy 13 with a 10th Gen CPU, although we haven''t gotten the chance to review - it yet. If you absolutely need a high-res display, the 4K Envy 13 is one of - many good options. We also recommend the Samsung Notebook 9 Pro, which has a - similarly premium design but much better battery life than the 4K Envy. The - Microsoft Surface Laptop 2 is another recommended alternative, though you might - want to wait a few months for the rumored Surface Laptop 3. Overall, the HP - Envy 13 is a fantastic laptop that checks all the right boxes --- as long as - you buy the 1080p model. Credit: Laptop Mag HP Envy 13 (2019) Specs BluetoothBluetooth - 5.0 BrandHP CPUIntel Core i7-8565U Card SlotsmicroSD Company Websitehttps://www8.hp.com/us/en/home.html - Display Size13.3 Graphics CardNvidia GeForce MX250 Hard Drive Size512GB Hard - Drive TypePCIe NVMe M.2 Highest Available Resolution3840 x 2160 Native Resolution3840 - x 2160 Operating SystemWindows 10 Home Ports (excluding USB)USB 3.1 with Type-C, - USB 3.1 Always-On, USB 3.1, Headphone/Mic, microSD RAM16GB RAM Upgradable to16GB - Size12.1 x 8.3 x .57 inches Touchpad Size4.3 x 2.2 inches USB Ports3 Video Memory2GB - Warranty/Supportone-year warranty. Weight2.8 pounds Wi-Fi802.11ac Wi-Fi ModelIntel - Wireless-AC 9560 "}], "language": "en", "stringIndexType": "TextElements_v8"}' + body: '{"question": "How long it takes to charge surface?", "records": [{"id": + "0", "text": "Power and charging. It takes two to four hours to charge the Surface + Pro 4 battery fully from an empty state. It can take longer if you\u2019re using + your Surface for power-intensive activities like gaming or video streaming while + you\u2019re charging it."}, {"id": "1", "text": "You can use the USB port on + your Surface Pro 4 power supply to charge other devices, like a phone, while + your Surface charges. The USB port on the power supply is only for charging, + not for data transfer. If you want to use a USB device, plug it into the USB + port on your Surface."}], "stringIndexType": "TextElements_v8"}' headers: Accept: - application/json Content-Length: - - '7447' + - '688' Content-Type: - application/json User-Agent: @@ -107,43 +22,34 @@ interactions: uri: https://test-resource.api.cognitive.microsoft.com/language/:query-text?api-version=2021-05-01-preview response: body: - string: "{\n \"answers\": [\n {\n \"answer\": \"Battery Life Get an - Envy 13 with the 1080p non-touch display if battery life is important to you. - \ The FHD model endured for 11 hours and 11 minutes whereas the 4K model - lasted only 4 hours and 36 minutes on our battery test, which involves continuous - web browsing over Wi-Fi at 150 nits of brightness. MORE: Laptops with Best - Battery Life - Longest Lasting Laptop Batteries Competing laptops like the - ZenBook S UX391UA (7:05), Surface Laptop 2 (9:22) and Notebook 9 Pro (8:53) - outstayed the 4K Envy 13 but powered down long before the 1080p version.\",\n - \ \"confidenceScore\": 0.017458289861679077,\n \"id\": \"doc3\",\n - \ \"answerSpan\": {\n \"text\": \"Battery Life\",\n \"confidenceScore\": - 0.26247412,\n \"offset\": 0,\n \"length\": 12\n },\n \"offset\": - 1779,\n \"length\": 555\n },\n {\n \"answer\": \"Along with - 11-plus hours of battery life (on the FHD model), the Envy 13 has a sleek, - ultraportable chassis, fast performance, and powerful speakers. Best of all, - the Envy 13 starts at a reasonable $799, which is hundreds less than the competition. - In many ways, the Envy 13 is what we wanted the new MacBook Air to be.\",\n - \ \"confidenceScore\": 0.009401722811162472,\n \"id\": \"doc3\",\n - \ \"answerSpan\": {\n \"text\": \"battery life\",\n \"confidenceScore\": - 0.3530523,\n \"offset\": 27,\n \"length\": 13\n },\n \"offset\": - 4508,\n \"length\": 319\n },\n {\n \"answer\": \"We also recommend - the Samsung Notebook 9 Pro, which has a similarly premium design but much - better battery life than the 4K Envy. The Microsoft Surface Laptop 2 is another - recommended alternative, though you might want to wait a few months for the - rumored Surface Laptop 3. Overall, the HP Envy 13 is a fantastic laptop - that checks all the right boxes --- as long as you buy the 1080p model.\",\n - \ \"confidenceScore\": 0.007057250943034887,\n \"id\": \"doc3\",\n - \ \"answerSpan\": {\n \"text\": \"battery life\",\n \"confidenceScore\": - 0.5914322,\n \"offset\": 98,\n \"length\": 13\n },\n \"offset\": - 5391,\n \"length\": 393\n }\n ]\n}" + string: "{\n \"answers\": [\n {\n \"answer\": \"Power and charging. + It takes two to four hours to charge the Surface Pro 4 battery fully from + an empty state. It can take longer if you\u2019re using your Surface for power-intensive + activities like gaming or video streaming while you\u2019re charging it.\",\n + \ \"confidenceScore\": 0.9298818707466125,\n \"id\": \"0\",\n \"answerSpan\": + {\n \"text\": \"two to four hours\",\n \"confidenceScore\": + 0.98579097,\n \"offset\": 28,\n \"length\": 18\n },\n \"offset\": + 0,\n \"length\": 245\n },\n {\n \"answer\": \"It takes two + to four hours to charge the Surface Pro 4 battery fully from an empty state. + It can take longer if you\u2019re using your Surface for power-intensive activities + like gaming or video streaming while you\u2019re charging it.\",\n \"confidenceScore\": + 0.9254360198974609,\n \"id\": \"0\",\n \"answerSpan\": {\n \"text\": + \"two to four hours\",\n \"confidenceScore\": 0.98562825,\n \"offset\": + 8,\n \"length\": 18\n },\n \"offset\": 20,\n \"length\": + 225\n },\n {\n \"answer\": \"It can take longer if you\u2019re + using your Surface for power-intensive activities like gaming or video streaming + while you\u2019re charging it.\",\n \"confidenceScore\": 0.05503516271710396,\n + \ \"id\": \"0\",\n \"answerSpan\": {\n \"text\": \"longer\",\n + \ \"confidenceScore\": 0.624118,\n \"offset\": 11,\n \"length\": + 7\n },\n \"offset\": 110,\n \"length\": 135\n }\n ]\n}" headers: - apim-request-id: 82332b85-228b-41c2-b65d-a7b893a52dff - content-length: '2146' + apim-request-id: 05642021-6f95-4a4c-a641-9dd5f3a6762f + content-length: '1479' content-type: application/json; charset=utf-8 - date: Tue, 13 Jul 2021 17:24:19 GMT + date: Fri, 06 Aug 2021 18:14:30 GMT strict-transport-security: max-age=31536000; includeSubDomains; preload x-content-type-options: nosniff - x-envoy-upstream-service-time: '254' + x-envoy-upstream-service-time: '862' status: code: 200 message: OK diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/recordings/test_query_text_async.test_query_text_with_str_records.yaml b/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/recordings/test_query_text_async.test_query_text_with_str_records.yaml new file mode 100644 index 000000000000..f95eec132700 --- /dev/null +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/recordings/test_query_text_async.test_query_text_with_str_records.yaml @@ -0,0 +1,57 @@ +interactions: +- request: + body: '{"question": "How long it takes to charge surface?", "records": [{"id": + "0", "text": "Power and charging. It takes two to four hours to charge the Surface + Pro 4 battery fully from an empty state. It can take longer if you\u2019re using + your Surface for power-intensive activities like gaming or video streaming while + you\u2019re charging it."}, {"id": "1", "text": "You can use the USB port on + your Surface Pro 4 power supply to charge other devices, like a phone, while + your Surface charges. The USB port on the power supply is only for charging, + not for data transfer. If you want to use a USB device, plug it into the USB + port on your Surface."}], "language": "en"}' + headers: + Accept: + - application/json + Content-Length: + - '668' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-language-questionanswering/1.0.0b1 Python/3.7.4 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://test-resource.api.cognitive.microsoft.com/language/:query-text?api-version=2021-05-01-preview + response: + body: + string: "{\n \"answers\": [\n {\n \"answer\": \"Power and charging. + It takes two to four hours to charge the Surface Pro 4 battery fully from + an empty state. It can take longer if you\u2019re using your Surface for power-intensive + activities like gaming or video streaming while you\u2019re charging it.\",\n + \ \"confidenceScore\": 0.9298818707466125,\n \"id\": \"0\",\n \"answerSpan\": + {\n \"text\": \"two to four hours\",\n \"confidenceScore\": + 0.98579097,\n \"offset\": 28,\n \"length\": 18\n },\n \"offset\": + 0,\n \"length\": 245\n },\n {\n \"answer\": \"It takes two + to four hours to charge the Surface Pro 4 battery fully from an empty state. + It can take longer if you\u2019re using your Surface for power-intensive activities + like gaming or video streaming while you\u2019re charging it.\",\n \"confidenceScore\": + 0.9254359602928162,\n \"id\": \"0\",\n \"answerSpan\": {\n \"text\": + \"two to four hours\",\n \"confidenceScore\": 0.98562825,\n \"offset\": + 8,\n \"length\": 18\n },\n \"offset\": 20,\n \"length\": + 225\n },\n {\n \"answer\": \"It can take longer if you\u2019re + using your Surface for power-intensive activities like gaming or video streaming + while you\u2019re charging it.\",\n \"confidenceScore\": 0.05503518134355545,\n + \ \"id\": \"0\",\n \"answerSpan\": {\n \"text\": \"longer\",\n + \ \"confidenceScore\": 0.624118,\n \"offset\": 11,\n \"length\": + 7\n },\n \"offset\": 110,\n \"length\": 135\n }\n ]\n}" + headers: + apim-request-id: 0b3e9e81-ead6-45fa-83ab-9c04b41a14cf + content-length: '1479' + content-type: application/json; charset=utf-8 + date: Fri, 06 Aug 2021 18:18:44 GMT + strict-transport-security: max-age=31536000; includeSubDomains; preload + x-content-type-options: nosniff + x-envoy-upstream-service-time: '376' + status: + code: 200 + message: OK + url: https://wuppe.api.cognitive.microsoft.com/language/:query-text?api-version=2021-05-01-preview +version: 1 diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/test_query_knowledgebase.py b/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/test_query_knowledgebase.py index e48e4dc00b82..260340e20756 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/test_query_knowledgebase.py +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/test_query_knowledgebase.py @@ -35,7 +35,7 @@ def test_query_knowledgebase_llc(self, qna_account, qna_key, qna_project): "previousQnAId": 4 } } - request = build_query_knowledgebase_request( + request = build_query_knowledge_base_request( json=json_content, project_name=qna_project, deployment_name='test' @@ -84,7 +84,7 @@ def test_query_knowledgebase_llc_with_answerspan(self, qna_account, qna_key, qna "topAnswersWithSpan": 1 } } - request = build_query_knowledgebase_request( + request = build_query_knowledge_base_request( json=json_content, project_name=qna_project, deployment_name='test' @@ -135,7 +135,7 @@ def test_query_knowledgebase(self, qna_account, qna_key, qna_project): ) with client: - output = client.query_knowledgebase( + output = client.query_knowledge_base( query_params, project_name=qna_project, deployment_name='test' @@ -181,7 +181,7 @@ def test_query_knowledgebase_with_answerspan(self, qna_account, qna_key, qna_pro ) with client: - output = client.query_knowledgebase( + output = client.query_knowledge_base( query_params, project_name=qna_project, deployment_name='test' @@ -232,7 +232,7 @@ def test_query_knowledgebase_with_dictparams(self, qna_account, qna_key, qna_pro } with client: - output = client.query_knowledgebase( + output = client.query_knowledge_base( query_params, project_name=qna_project, deployment_name='test' @@ -247,7 +247,7 @@ def test_query_knowledgebase_with_dictparams(self, qna_account, qna_key, qna_pro def test_query_knowledgebase_overload(self, qna_account, qna_key, qna_project): client = QuestionAnsweringClient(qna_account, AzureKeyCredential(qna_key)) with client: - output = client.query_knowledgebase( + output = client.query_knowledge_base( project_name=qna_project, deployment_name='test', question="How long should my Surface battery last?", @@ -284,7 +284,7 @@ def test_query_knowledgebase_with_followup(self, qna_account, qna_key, qna_proje include_unstructured_sources=True ) - output = client.query_knowledgebase( + output = client.query_knowledge_base( query_params, project_name=qna_project, deployment_name='test' @@ -309,7 +309,7 @@ def test_query_knowledgebase_with_followup(self, qna_account, qna_key, qna_proje ), include_unstructured_sources=True ) - output = client.query_knowledgebase( + output = client.query_knowledge_base( query_params, project_name=qna_project, deployment_name='test' @@ -329,7 +329,7 @@ def test_query_knowledgebase_only_id(self, qna_account, qna_key, qna_project): qna_id=19 ) - output = client.query_knowledgebase( + output = client.query_knowledge_base( query_params, project_name=qna_project, deployment_name='test' @@ -343,7 +343,7 @@ def test_query_knowledgebase_python_dict(self, qna_account, qna_key, qna_project with client: query_params = {"qna_id": 19} - output = client.query_knowledgebase( + output = client.query_knowledge_base( query_params, project_name=qna_project, deployment_name='test' diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/test_query_knowledgebase_async.py b/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/test_query_knowledgebase_async.py index d3aa12ca20c1..32ea2bab5e7f 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/test_query_knowledgebase_async.py +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/test_query_knowledgebase_async.py @@ -37,7 +37,7 @@ async def test_query_knowledgebase_llc(self, qna_account, qna_key, qna_project): "previousQnAId": 4 } } - request = build_query_knowledgebase_request( + request = build_query_knowledge_base_request( json=json_content, project_name=qna_project, deployment_name='test' @@ -86,7 +86,7 @@ async def test_query_knowledgebase_llc_with_answerspan(self, qna_account, qna_ke "topAnswersWithSpan": 2 } } - request = build_query_knowledgebase_request( + request = build_query_knowledge_base_request( json=json_content, project_name=qna_project, deployment_name='test' @@ -137,7 +137,7 @@ async def test_query_knowledgebase(self, qna_account, qna_key, qna_project): ) async with client: - output = await client.query_knowledgebase( + output = await client.query_knowledge_base( query_params, project_name=qna_project, deployment_name='test' @@ -183,7 +183,7 @@ async def test_query_knowledgebase_with_answerspan(self, qna_account, qna_key, q ) async with client: - output = await client.query_knowledgebase( + output = await client.query_knowledge_base( query_params, project_name=qna_project, deployment_name='test' @@ -233,7 +233,7 @@ async def test_query_knowledgebase_with_dictparams(self, qna_account, qna_key, q } async with client: - output = await client.query_knowledgebase( + output = await client.query_knowledge_base( query_params, project_name=qna_project, deployment_name='test' @@ -248,7 +248,7 @@ async def test_query_knowledgebase_with_dictparams(self, qna_account, qna_key, q async def test_query_knowledgebase_overload(self, qna_account, qna_key, qna_project): client = QuestionAnsweringClient(qna_account, AzureKeyCredential(qna_key)) async with client: - output = await client.query_knowledgebase( + output = await client.query_knowledge_base( project_name=qna_project, deployment_name='test', question="How long should my Surface battery last?", @@ -285,7 +285,7 @@ async def test_query_knowledgebase_with_followup(self, qna_account, qna_key, qna include_unstructured_sources=True ) - output = await client.query_knowledgebase( + output = await client.query_knowledge_base( query_params, project_name=qna_project, deployment_name='test' @@ -310,7 +310,7 @@ async def test_query_knowledgebase_with_followup(self, qna_account, qna_key, qna ), include_unstructured_sources=True ) - output = await client.query_knowledgebase( + output = await client.query_knowledge_base( query_params, project_name=qna_project, deployment_name='test' @@ -327,7 +327,7 @@ async def test_query_knowledgebase_only_id(self, qna_account, qna_key, qna_proje async with client: query_params = {"qnaId": 19} - output = await client.query_knowledgebase( + output = await client.query_knowledge_base( query_params, project_name=qna_project, deployment_name='test' @@ -341,7 +341,7 @@ async def test_query_knowledgebase_python_dict(self, qna_account, qna_key, qna_p async with client: query_params = {"qna_id": 19} - output = await client.query_knowledgebase( + output = await client.query_knowledge_base( query_params, project_name=qna_project, deployment_name='test' diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/test_query_text.py b/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/test_query_text.py index 488306fa2510..2bfc61fd58b8 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/test_query_text.py +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/test_query_text.py @@ -4,6 +4,8 @@ # Licensed under the MIT License. # ------------------------------------ +import pytest + from azure.core.exceptions import HttpResponseError, ClientAuthenticationError from azure.core.credentials import AzureKeyCredential @@ -124,3 +126,57 @@ def test_query_text_with_dictparams(self, qna_account, qna_key): confident_answers = [a for a in output.answers if a.confidence_score > 0.9] assert len(confident_answers) == 2 assert confident_answers[0].answer_span.text == "two to four hours" + + + @GlobalQuestionAnsweringAccountPreparer() + def test_query_text_with_str_records(self, qna_account, qna_key): + client = QuestionAnsweringClient(qna_account, AzureKeyCredential(qna_key)) + params = { + "question": "How long it takes to charge surface?", + "records": [ + "Power and charging. It takes two to four hours to charge the Surface Pro 4 battery fully from an empty state. " + + "It can take longer if you’re using your Surface for power-intensive activities like gaming or video streaming while you’re charging it.", + "You can use the USB port on your Surface Pro 4 power supply to charge other devices, like a phone, while your Surface charges. "+ + "The USB port on the power supply is only for charging, not for data transfer. If you want to use a USB device, plug it into the USB port on your Surface.", + ], + "language": "en" + } + + with client: + output = client.query_text(params) + assert len(output.answers) == 3 + confident_answers = [a for a in output.answers if a.confidence_score > 0.9] + assert len(confident_answers) == 2 + assert confident_answers[0].answer_span.text == "two to four hours" + + @GlobalQuestionAnsweringAccountPreparer() + def test_query_text_overload(self, qna_account, qna_key): + client = QuestionAnsweringClient(qna_account, AzureKeyCredential(qna_key)) + + with client: + with pytest.raises(TypeError): + client.query_text( + question="How long it takes to charge surface?", + records=[ + "Power and charging. It takes two to four hours to charge the Surface Pro 4 battery fully from an empty state. " + + "It can take longer if you’re using your Surface for power-intensive activities like gaming or video streaming while you’re charging it.", + { + "text": "You can use the USB port on your Surface Pro 4 power supply to charge other devices, like a phone, while your Surface charges. "+ + "The USB port on the power supply is only for charging, not for data transfer. If you want to use a USB device, plug it into the USB port on your Surface.", + "id": "2" + } + ] + ) + output = client.query_text( + question="How long it takes to charge surface?", + records=[ + "Power and charging. It takes two to four hours to charge the Surface Pro 4 battery fully from an empty state. " + + "It can take longer if you’re using your Surface for power-intensive activities like gaming or video streaming while you’re charging it.", + "You can use the USB port on your Surface Pro 4 power supply to charge other devices, like a phone, while your Surface charges. "+ + "The USB port on the power supply is only for charging, not for data transfer. If you want to use a USB device, plug it into the USB port on your Surface.", + ] + ) + assert len(output.answers) == 3 + confident_answers = [a for a in output.answers if a.confidence_score > 0.9] + assert len(confident_answers) == 2 + assert confident_answers[0].answer_span.text == "two to four hours" diff --git a/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/test_query_text_async.py b/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/test_query_text_async.py index 9f1cfa1f6e10..1eee19633ec7 100644 --- a/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/test_query_text_async.py +++ b/sdk/cognitivelanguage/azure-ai-language-questionanswering/tests/test_query_text_async.py @@ -4,6 +4,8 @@ # Licensed under the MIT License. # ------------------------------------ +import pytest + from azure.core.exceptions import HttpResponseError, ClientAuthenticationError from azure.core.credentials import AzureKeyCredential @@ -126,3 +128,56 @@ async def test_query_text_with_dictparams(self, qna_account, qna_key): confident_answers = [a for a in output.answers if a.confidence_score > 0.9] assert len(confident_answers) == 2 assert confident_answers[0].answer_span.text == "two to four hours" + + @GlobalQuestionAnsweringAccountPreparer() + async def test_query_text_with_str_records(self, qna_account, qna_key): + client = QuestionAnsweringClient(qna_account, AzureKeyCredential(qna_key)) + params = { + "question": "How long it takes to charge surface?", + "records": [ + "Power and charging. It takes two to four hours to charge the Surface Pro 4 battery fully from an empty state. " + + "It can take longer if you’re using your Surface for power-intensive activities like gaming or video streaming while you’re charging it.", + "You can use the USB port on your Surface Pro 4 power supply to charge other devices, like a phone, while your Surface charges. "+ + "The USB port on the power supply is only for charging, not for data transfer. If you want to use a USB device, plug it into the USB port on your Surface.", + ], + "language": "en" + } + + async with client: + output = await client.query_text(params) + assert len(output.answers) == 3 + confident_answers = [a for a in output.answers if a.confidence_score > 0.9] + assert len(confident_answers) == 2 + assert confident_answers[0].answer_span.text == "two to four hours" + + @GlobalQuestionAnsweringAccountPreparer() + async def test_query_text_overload(self, qna_account, qna_key): + client = QuestionAnsweringClient(qna_account, AzureKeyCredential(qna_key)) + + async with client: + with pytest.raises(TypeError): + await client.query_text( + question="How long it takes to charge surface?", + records=[ + "Power and charging. It takes two to four hours to charge the Surface Pro 4 battery fully from an empty state. " + + "It can take longer if you’re using your Surface for power-intensive activities like gaming or video streaming while you’re charging it.", + { + "text": "You can use the USB port on your Surface Pro 4 power supply to charge other devices, like a phone, while your Surface charges. "+ + "The USB port on the power supply is only for charging, not for data transfer. If you want to use a USB device, plug it into the USB port on your Surface.", + "id": "2" + } + ] + ) + output = await client.query_text( + question="How long it takes to charge surface?", + records=[ + "Power and charging. It takes two to four hours to charge the Surface Pro 4 battery fully from an empty state. " + + "It can take longer if you’re using your Surface for power-intensive activities like gaming or video streaming while you’re charging it.", + "You can use the USB port on your Surface Pro 4 power supply to charge other devices, like a phone, while your Surface charges. "+ + "The USB port on the power supply is only for charging, not for data transfer. If you want to use a USB device, plug it into the USB port on your Surface.", + ] + ) + assert len(output.answers) == 3 + confident_answers = [a for a in output.answers if a.confidence_score > 0.9] + assert len(confident_answers) == 2 + assert confident_answers[0].answer_span.text == "two to four hours" From 319181f51a52e20f7b03cb84a968fc892197fb28 Mon Sep 17 00:00:00 2001 From: ckairen <38804567+ckairen@users.noreply.github.com> Date: Thu, 12 Aug 2021 14:15:49 -0700 Subject: [PATCH 054/104] Smoke test isolation per package (#20243) * Smoke test isolation per package * Smoke test isolation - remove unnecessary params * Passing in single artifact for smoke test * Passing in single artifact for smoke test * Temporarily adding azure-template in requirements-release * Smoke test isolation per package * Smoke test isolation - remove unnecessary params * Passing in single artifact for smoke test * Passing in single artifact for smoke test * Temporarily adding azure-template in requirements-release * Smoke test isolation - ArtifactName fix * Smoke test isolation - trimming down env matrix * Smoke test isolation - differentiating nightly build with other builds * Smoke test isolation per package * Smoke test isolation - remove unnecessary params * Passing in single artifact for smoke test * Passing in single artifact for smoke test * Temporarily adding azure-template in requirements-release * Smoke test isolation - ArtifactName fix * Smoke test isolation - trimming down env matrix * Smoke test isolation - differentiating nightly build with other builds * Smoke test isolation * Smoke test isolation * Adding displayName for smoke test * Update eng/pipelines/templates/stages/archetype-python-release.yml Co-authored-by: Ben Broderick Phillips * Resolve PR suggestions Co-authored-by: Ben Broderick Phillips --- common/smoketest/requirements-release.txt | 2 + eng/pipelines/templates/jobs/smoke.tests.yml | 169 +++++++++--------- .../stages/archetype-python-release.yml | 15 +- 3 files changed, 93 insertions(+), 93 deletions(-) diff --git a/common/smoketest/requirements-release.txt b/common/smoketest/requirements-release.txt index f32ec3483233..6e2fb4d76eb0 100644 --- a/common/smoketest/requirements-release.txt +++ b/common/smoketest/requirements-release.txt @@ -6,3 +6,5 @@ azure-keyvault-certificates>=0.0.0b1 azure-keyvault-keys>=0.0.0b1 azure-keyvault-secrets>=0.0.0b1 azure-storage-blob>=0.0.0b1 +# Required for template release to trigger smoke tests +azure-template>=0.0.0b1 \ No newline at end of file diff --git a/eng/pipelines/templates/jobs/smoke.tests.yml b/eng/pipelines/templates/jobs/smoke.tests.yml index 5b762eeb3ad1..8b68a151ff57 100644 --- a/eng/pipelines/templates/jobs/smoke.tests.yml +++ b/eng/pipelines/templates/jobs/smoke.tests.yml @@ -1,9 +1,9 @@ parameters: - name: Daily default: true - - name: Artifacts + - name: Artifact type: object - default: [] + default: {} - name: ArtifactName type: string default: "not-specified" @@ -16,16 +16,15 @@ jobs: name: "azsdk-pool-mms-ubuntu-2004-general" vmImage: "MMSUbuntu20.04" steps: - - ${{ each artifact in parameters.Artifacts }}: - - ${{ if and(ne(variables['Skip.Release'], 'true'), ne(artifact.skipPublishPackage, 'true')) }}: - - pwsh: | - $packages = Get-Content $(Build.SourcesDirectory)/common/smoketest/requirements-release.txt - if ($packages | Where-Object { $_ -match "${{ replace(artifact.name, '_', '-') }}" }) { - Write-Host "Smoke tests will run for ${{ artifact.name }}" - Write-Host "##vso[task.setvariable variable=RunSmokeTests;]true" - } - name: check_smoke_tests_${{ artifact.safeName }} - displayName: Check smoke test eligibility for ${{ artifact.name }} + - ${{ if and(ne(variables['Skip.Release'], 'true'), ne(parameters.Artifact.skipPublishPackage, 'true')) }}: + - pwsh: | + $packages = Get-Content $(Build.SourcesDirectory)/common/smoketest/requirements-release.txt + if ($packages | Where-Object { $_ -match "${{ replace(parameters.Artifact.name, '_', '-') }}" }) { + Write-Host "Smoke tests will run for ${{ parameters.Artifact.name }}" + Write-Host "##vso[task.setvariable variable=RunSmokeTests;]true" + } + name: check_smoke_tests_${{ parameters.Artifact.safeName }} + displayName: Check smoke test eligibility for ${{ parameters.Artifact.name }} - pwsh: | Write-Host "Setting RunSmokeTests to $($env:RunSmokeTests)" @@ -34,89 +33,91 @@ jobs: env: RunSmokeTests: $(RunSmokeTests) - - job: + - job: run_smoke_test + displayName: Run Smoke Test ${{ if eq(parameters.Daily, false) }}: dependsOn: smoke_test_eligibility condition: and(succeeded(), eq(dependencies.smoke_test_eligibility.outputs['output_eligibility.RunSmokeTests'], true)) strategy: matrix: - Python_27_Linux (AzureCloud): - PythonVersion: '2.7' - SkipAsyncInstall: true - Pool: "azsdk-pool-mms-ubuntu-2004-general" - OSVmImage: "MMSUbuntu20.04" - SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) - ArmTemplateParameters: $(azureCloudArmParameters) - Python_37_Linux (AzureCloud): - PythonVersion: '3.7' - Pool: "azsdk-pool-mms-ubuntu-2004-general" - OSVmImage: "MMSUbuntu20.04" - SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) - ArmTemplateParameters: $(azureCloudArmParameters) Python_38_Linux (AzureCloud): PythonVersion: '3.8' Pool: "azsdk-pool-mms-ubuntu-2004-general" OSVmImage: "MMSUbuntu20.04" SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) ArmTemplateParameters: $(azureCloudArmParameters) - Python_38_Linux (AzureCloud Canary): - PythonVersion: '3.8' - Pool: "azsdk-pool-mms-ubuntu-2004-general" - OSVmImage: "MMSUbuntu20.04" - SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources-preview) - ArmTemplateParameters: $(azureCloudArmParameters) - Location: 'eastus2euap' - Python_37_Windows (AzureCloud): - PythonVersion: '3.7' - Pool: "azsdk-pool-mms-win-2019-general" - OSVmImage: "MMS2019" - SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) - ArmTemplateParameters: $(azureCloudArmParameters) - Python_38_Windows (AzureCloud): - PythonVersion: '3.8' - Pool: "azsdk-pool-mms-ubuntu-2004-general" - OSVmImage: "MMSUbuntu20.04" - SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) - ArmTemplateParameters: $(azureCloudArmParameters) - Python_37_Mac (AzureCloud): - PythonVersion: '3.7' - Pool: Azure Pipelines - OSVmImage: macOS-10.15 - SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) - ArmTemplateParameters: $(azureCloudArmParameters) - Python_38_Mac (AzureCloud): - PythonVersion: '3.8' - Pool: Azure Pipelines - OSVmImage: macOS-10.15 - SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) - ArmTemplateParameters: $(azureCloudArmParameters) - Python_38_Linux (AzureUSGovernment): - PythonVersion: '3.8' - Pool: "azsdk-pool-mms-ubuntu-2004-general" - OSVmImage: "MMSUbuntu120.04" - SubscriptionConfiguration: $(sub-config-gov-test-resources) - ArmTemplateParameters: $(azureUSGovernmentArmParameters) - Python_37_Windows (AzureUSGovernment): - PythonVersion: '3.7' - Pool: "azsdk-pool-mms-ubuntu-2004-general" - OSVmImage: "MMSUbuntu20.04" - SubscriptionConfiguration: $(sub-config-gov-test-resources) - ArmTemplateParameters: $(azureUSGovernmentArmParameters) - Python_38_Linux (AzureChinaCloud): - PythonVersion: '3.8' - Pool: "azsdk-pool-mms-ubuntu-2004-general" - OSVmImage: "MMSUbuntu20.04" - SubscriptionConfiguration: $(sub-config-cn-test-resources) - Location: 'chinanorth' - ArmTemplateParameters: $(azureChinaCloudArmParameters) - Python_37_Windows (AzureChinaCloud): - PythonVersion: '3.7' - Pool: "azsdk-pool-mms-ubuntu-2004-general" - OSVmImage: "MMSUbuntu20.04" - SubscriptionConfiguration: $(sub-config-cn-test-resources) - Location: 'chinanorth' - ArmTemplateParameters: $(azureChinaCloudArmParameters) - + ${{ if eq(parameters.Daily, true) }}: + Python_27_Linux (AzureCloud): + PythonVersion: '2.7' + SkipAsyncInstall: true + Pool: "azsdk-pool-mms-ubuntu-2004-general" + OSVmImage: "MMSUbuntu20.04" + SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) + ArmTemplateParameters: $(azureCloudArmParameters) + Python_37_Linux (AzureCloud): + PythonVersion: '3.7' + Pool: "azsdk-pool-mms-ubuntu-2004-general" + OSVmImage: "MMSUbuntu20.04" + SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) + ArmTemplateParameters: $(azureCloudArmParameters) + Python_38_Linux (AzureCloud Canary): + PythonVersion: '3.8' + Pool: "azsdk-pool-mms-ubuntu-2004-general" + OSVmImage: "MMSUbuntu20.04" + SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources-preview) + ArmTemplateParameters: $(azureCloudArmParameters) + Location: 'eastus2euap' + Python_37_Windows (AzureCloud): + PythonVersion: '3.7' + Pool: "azsdk-pool-mms-win-2019-general" + OSVmImage: "MMS2019" + SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) + ArmTemplateParameters: $(azureCloudArmParameters) + Python_38_Windows (AzureCloud): + PythonVersion: '3.8' + Pool: "azsdk-pool-mms-ubuntu-2004-general" + OSVmImage: "MMSUbuntu20.04" + SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) + ArmTemplateParameters: $(azureCloudArmParameters) + Python_37_Mac (AzureCloud): + PythonVersion: '3.7' + Pool: Azure Pipelines + OSVmImage: macOS-10.15 + SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) + ArmTemplateParameters: $(azureCloudArmParameters) + Python_38_Mac (AzureCloud): + PythonVersion: '3.8' + Pool: Azure Pipelines + OSVmImage: macOS-10.15 + SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) + ArmTemplateParameters: $(azureCloudArmParameters) + Python_38_Linux (AzureUSGovernment): + PythonVersion: '3.8' + Pool: "azsdk-pool-mms-ubuntu-2004-general" + OSVmImage: "MMSUbuntu120.04" + SubscriptionConfiguration: $(sub-config-gov-test-resources) + ArmTemplateParameters: $(azureUSGovernmentArmParameters) + Python_37_Windows (AzureUSGovernment): + PythonVersion: '3.7' + Pool: "azsdk-pool-mms-ubuntu-2004-general" + OSVmImage: "MMSUbuntu20.04" + SubscriptionConfiguration: $(sub-config-gov-test-resources) + ArmTemplateParameters: $(azureUSGovernmentArmParameters) + Python_38_Linux (AzureChinaCloud): + PythonVersion: '3.8' + Pool: "azsdk-pool-mms-ubuntu-2004-general" + OSVmImage: "MMSUbuntu20.04" + SubscriptionConfiguration: $(sub-config-cn-test-resources) + Location: 'chinanorth' + ArmTemplateParameters: $(azureChinaCloudArmParameters) + Python_37_Windows (AzureChinaCloud): + PythonVersion: '3.7' + Pool: "azsdk-pool-mms-ubuntu-2004-general" + OSVmImage: "MMSUbuntu20.04" + SubscriptionConfiguration: $(sub-config-cn-test-resources) + Location: 'chinanorth' + ArmTemplateParameters: $(azureChinaCloudArmParameters) + pool: name: $(Pool) vmImage: $(OSVmImage) diff --git a/eng/pipelines/templates/stages/archetype-python-release.yml b/eng/pipelines/templates/stages/archetype-python-release.yml index 622ea69bf038..b85ae44ca7bf 100644 --- a/eng/pipelines/templates/stages/archetype-python-release.yml +++ b/eng/pipelines/templates/stages/archetype-python-release.yml @@ -222,16 +222,13 @@ stages: PRTitle: "Increment version for ${{ parameters.ServiceDirectory }} releases" PRLabels: "auto-merge" CloseAfterOpenForTesting: '${{ parameters.TestPipeline }}' + - ${{if and(eq(variables['Build.Reason'], 'Manual'), eq(variables['System.TeamProject'], 'internal'))}}: + - template: /eng/pipelines/templates/jobs/smoke.tests.yml + parameters: + Daily: false + ArtifactName: ${{ parameters.ArtifactName }} + Artifact: ${{ artifact }} - - ${{if and(eq(variables['Build.Reason'], 'Manual'), eq(variables['System.TeamProject'], 'internal'))}}: - - stage: SmokeTest_Release_Packages - displayName: Smoke Test Release Packages - jobs: - - template: /eng/pipelines/templates/jobs/smoke.tests.yml - parameters: - Daily: false - ArtifactName: ${{ parameters.ArtifactName }} - Artifacts: ${{ parameters.Artifacts }} - stage: Integration dependsOn: ${{parameters.DependsOn}} From b3db76b18284e3123120b53b3f88b59ce973c92b Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Thu, 12 Aug 2021 19:51:02 -0700 Subject: [PATCH 055/104] Sync eng/common directory with azure-sdk-tools for PR 1894 (#20252) * Purge Key Vaults after deleting resource group * Resolve PR feedback * Purge Key Vaults and Managed HSMs * Clean up all purgeable KVs and MHSMs * Ignore null/empty purgeable resources * Resolve PR feedback * Resolve PR feedback * Fix logging, process each item when collection piped Co-authored-by: Heath Stewart --- .../TestResources/Remove-TestResources.ps1 | 38 ++++--- .../scripts/Helpers/Resource-Helpers.ps1 | 101 ++++++++++++++++++ 2 files changed, 125 insertions(+), 14 deletions(-) create mode 100644 eng/common/scripts/Helpers/Resource-Helpers.ps1 diff --git a/eng/common/TestResources/Remove-TestResources.ps1 b/eng/common/TestResources/Remove-TestResources.ps1 index fa524d987eef..2b6c7c5c4871 100644 --- a/eng/common/TestResources/Remove-TestResources.ps1 +++ b/eng/common/TestResources/Remove-TestResources.ps1 @@ -61,6 +61,21 @@ if (!$PSBoundParameters.ContainsKey('ErrorAction')) { $ErrorActionPreference = 'Stop' } +# Support actions to invoke on exit. +$exitActions = @({ + if ($exitActions.Count -gt 1) { + Write-Verbose 'Running registered exit actions.' + } +}) + +trap { + # Like using try..finally in PowerShell, but without keeping track of more braces or tabbing content. + $exitActions.Invoke() +} + +# Source helpers to purge resources. +. "$PSScriptRoot\..\scripts\Helpers\Resource-Helpers.ps1" + function Log($Message) { Write-Host ('{0} - {1}' -f [DateTime]::Now.ToLongTimeString(), $Message) } @@ -86,18 +101,6 @@ function Retry([scriptblock] $Action, [int] $Attempts = 5) { } } -# Support actions to invoke on exit. -$exitActions = @({ - if ($exitActions.Count -gt 1) { - Write-Verbose 'Running registered exit actions.' - } -}) - -trap { - # Like using try..finally in PowerShell, but without keeping track of more braces or tabbing content. - $exitActions.Invoke() -} - if ($ProvisionerApplicationId) { $null = Disable-AzContextAutosave -Scope Process @@ -213,16 +216,23 @@ $verifyDeleteScript = { } } +# Get any resources that can be purged after the resource group is deleted coerced into a collection even if empty. +$purgeableResources = @(Get-PurgeableGroupResources $ResourceGroupName) + Log "Deleting resource group '$ResourceGroupName'" -if ($Force) { +if ($Force -and !$purgeableResources) { Remove-AzResourceGroup -Name "$ResourceGroupName" -Force:$Force -AsJob + Write-Verbose "Running background job to delete resource group '$ResourceGroupName'" + Retry $verifyDeleteScript 3 - Write-Verbose "Requested async deletion of resource group '$ResourceGroupName'" } else { # Don't swallow interactive confirmation when Force is false Remove-AzResourceGroup -Name "$ResourceGroupName" -Force:$Force } +# Now purge the resources that should have been deleted with the resource group. +Remove-PurgeableResources $purgeableResources + $exitActions.Invoke() <# diff --git a/eng/common/scripts/Helpers/Resource-Helpers.ps1 b/eng/common/scripts/Helpers/Resource-Helpers.ps1 new file mode 100644 index 000000000000..e4aca5544e05 --- /dev/null +++ b/eng/common/scripts/Helpers/Resource-Helpers.ps1 @@ -0,0 +1,101 @@ +# Add 'AzsdkResourceType' member to outputs since actual output types have changed over the years. + +function Get-PurgeableGroupResources { + param ( + [Parameter(Mandatory=$true, Position=0)] + [string] $ResourceGroupName + ) + + # Get any Key Vaults that will be deleted so they can be purged later if soft delete is enabled. + Get-AzKeyVault @PSBoundParameters | ForEach-Object { + # Enumerating vaults from a resource group does not return all properties we required. + Get-AzKeyVault -VaultName $_.VaultName | Where-Object { $_.EnableSoftDelete } ` + | Add-Member -MemberType NoteProperty -Name AzsdkResourceType -Value 'Key Vault' -PassThru + } + + # Get any Managed HSMs in the resource group, for which soft delete cannot be disabled. + Get-AzKeyVaultManagedHsm @PSBoundParameters ` + | Add-Member -MemberType NoteProperty -Name AzsdkResourceType -Value 'Managed HSM' -PassThru +} + +function Get-PurgeableResources { + $subscriptionId = (Get-AzContext).Subscription.Id + + # Get deleted Key Vaults for the current subscription. + Get-AzKeyVault -InRemovedState ` + | Add-Member -MemberType NoteProperty -Name AzsdkResourceType -Value 'Key Vault' -PassThru + + # Get deleted Managed HSMs for the current subscription. + $response = Invoke-AzRestMethod -Method GET -Path "/subscriptions/$subscriptionId/providers/Microsoft.KeyVault/deletedManagedHSMs?api-version=2021-04-01-preview" -ErrorAction Ignore + if ($response.StatusCode -ge 200 -and $response.StatusCode -lt 300 -and $response.Content) { + $content = $response.Content | ConvertFrom-Json + foreach ($r in $content.value) { + [pscustomobject] @{ + AzsdkResourceType = 'Managed HSM' + Id = $r.id + Name = $r.name + Location = $r.properties.location + DeletionDate = $r.properties.deletionDate -as [DateTime] + ScheduledPurgeDate = $r.properties.scheduledPurgeDate -as [DateTime] + EnablePurgeProtection = $r.properties.purgeProtectionEnabled + } + } + } +} + +# A filter differs from a function by teating body as -process {} instead of -end {}. +# This allows you to pipe a collection and process each item in the collection. +filter Remove-PurgeableResources { + param ( + [Parameter(Position=0, ValueFromPipeline=$true)] + [object[]] $Resource + ) + + if (!$Resource) { + return + } + + $subscriptionId = (Get-AzContext).Subscription.Id + + foreach ($r in $Resource) { + switch ($r.AzsdkResourceType) { + 'Key Vault' { + Log "Attempting to purge $($r.AzsdkResourceType) '$($r.VaultName)'" + if ($r.EnablePurgeProtection) { + # We will try anyway but will ignore errors + Write-Warning "Key Vault '$($r.VaultName)' has purge protection enabled and may not be purged for $($r.SoftDeleteRetentionInDays) days" + } + + Remove-AzKeyVault -VaultName $r.VaultName -Location $r.Location -InRemovedState -Force -ErrorAction Continue + } + + 'Managed HSM' { + Log "Attempting to purge $($r.AzsdkResourceType) '$($r.Name)'" + if ($r.EnablePurgeProtection) { + # We will try anyway but will ignore errors + Write-Warning "Managed HSM '$($r.Name)' has purge protection enabled and may not be purged for $($r.SoftDeleteRetentionInDays) days" + } + + $response = Invoke-AzRestMethod -Method POST -Path "/subscriptions/$subscriptionId/providers/Microsoft.KeyVault/locations/$($r.Location)/deletedManagedHSMs/$($r.Name)/purge?api-version=2021-04-01-preview" -ErrorAction Ignore + if ($response.StatusCode -ge 200 -and $response.StatusCode -lt 300) { + Write-Warning "Successfully requested that Managed HSM '$($r.Name)' be purged, but may take a few minutes before it is actually purged." + } elseif ($response.Content) { + $content = $response.Content | ConvertFrom-Json + if ($content.error) { + $err = $content.error + Write-Warning "Failed to deleted Managed HSM '$($r.Name)': ($($err.code)) $($err.message)" + } + } + } + + default { + Write-Warning "Cannot purge resource type $($r.AzsdkResourceType). Add support to https://github.com/Azure/azure-sdk-tools/blob/main/eng/common/scripts/Helpers/Resource-Helpers.ps1." + } + } + } +} + +# The Log function can be overridden by the sourcing script. +function Log($Message) { + Write-Host ('{0} - {1}' -f [DateTime]::Now.ToLongTimeString(), $Message) +} From b7f2137371c1f25a7ae5eea3e63cb19ae6064588 Mon Sep 17 00:00:00 2001 From: "Adam Ling (MSFT)" Date: Fri, 13 Aug 2021 12:47:14 +0800 Subject: [PATCH 056/104] [Schema Registry] Drop python 3.5 and add python 3.9 (#20216) * drop python 3.5 and add python 3.9 * include cache info in the readme --- .../azure-schemaregistry-avroserializer/CHANGELOG.md | 9 +++++++++ .../azure-schemaregistry-avroserializer/README.md | 2 +- .../azure-schemaregistry-avroserializer/setup.py | 2 +- sdk/schemaregistry/azure-schemaregistry/CHANGELOG.md | 4 +++- sdk/schemaregistry/azure-schemaregistry/README.md | 5 ++++- sdk/schemaregistry/azure-schemaregistry/setup.py | 2 +- 6 files changed, 19 insertions(+), 5 deletions(-) diff --git a/sdk/schemaregistry/azure-schemaregistry-avroserializer/CHANGELOG.md b/sdk/schemaregistry/azure-schemaregistry-avroserializer/CHANGELOG.md index b012ab285e5e..46498c8bfd59 100644 --- a/sdk/schemaregistry/azure-schemaregistry-avroserializer/CHANGELOG.md +++ b/sdk/schemaregistry/azure-schemaregistry-avroserializer/CHANGELOG.md @@ -2,6 +2,15 @@ ## 1.0.0b2 (Unreleased) +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes + +This version and all future versions will require Python 2.7 or Python 3.6+, Python 3.5 is no longer supported. ## 1.0.0b1 (2020-09-09) diff --git a/sdk/schemaregistry/azure-schemaregistry-avroserializer/README.md b/sdk/schemaregistry/azure-schemaregistry-avroserializer/README.md index 7f50618e7fc4..dcf41d6169e1 100644 --- a/sdk/schemaregistry/azure-schemaregistry-avroserializer/README.md +++ b/sdk/schemaregistry/azure-schemaregistry-avroserializer/README.md @@ -20,7 +20,7 @@ pip install azure-schemaregistry-avroserializer azure-identity To use this package, you must have: * Azure subscription - [Create a free account][azure_sub] * [Azure Schema Registry][schemaregistry_service] -* Python 2.7, 3.5 or later - [Install Python][python] +* Python 2.7, 3.6 or later - [Install Python][python] ### Authenticate the client Interaction with Schema Registry Avro Serializer starts with an instance of SchemaRegistryAvroSerializer class. You need the endpoint, AAD credential and schema group name to instantiate the client object. diff --git a/sdk/schemaregistry/azure-schemaregistry-avroserializer/setup.py b/sdk/schemaregistry/azure-schemaregistry-avroserializer/setup.py index dbbb37794d4c..488ad631c775 100644 --- a/sdk/schemaregistry/azure-schemaregistry-avroserializer/setup.py +++ b/sdk/schemaregistry/azure-schemaregistry-avroserializer/setup.py @@ -56,10 +56,10 @@ 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', 'License :: OSI Approved :: MIT License', ], zip_safe=False, diff --git a/sdk/schemaregistry/azure-schemaregistry/CHANGELOG.md b/sdk/schemaregistry/azure-schemaregistry/CHANGELOG.md index 916c2e66c36b..6cb3bc3bc3c5 100644 --- a/sdk/schemaregistry/azure-schemaregistry/CHANGELOG.md +++ b/sdk/schemaregistry/azure-schemaregistry/CHANGELOG.md @@ -1,6 +1,8 @@ # Release History -## 1.0.0b2 (Unreleased) +## 1.0.0b2 (2021-08-17) + +This version and all future versions will require Python 2.7 or Python 3.6+, Python 3.5 is no longer supported. ### Features Added diff --git a/sdk/schemaregistry/azure-schemaregistry/README.md b/sdk/schemaregistry/azure-schemaregistry/README.md index 8b0e9c894f8c..da2e038417d6 100644 --- a/sdk/schemaregistry/azure-schemaregistry/README.md +++ b/sdk/schemaregistry/azure-schemaregistry/README.md @@ -20,7 +20,7 @@ pip install azure-schemaregistry azure-identity To use this package, you must have: * Azure subscription - [Create a free account][azure_sub] * [Azure Schema Registry][schemaregistry_service] -* Python 2.7, 3.5 or later - [Install Python][python] +* Python 2.7, 3.6 or later - [Install Python][python] ### Authenticate the client Interaction with Schema Registry starts with an instance of SchemaRegistryClient class. You need the endpoint and AAD credential to instantiate the client object. @@ -53,6 +53,7 @@ The following sections provide several code snippets covering some of the most c ### Register a schema Use `SchemaRegistryClient.register_schema` method to register a schema. +When registering a schema, the `Schema` and `SchemaProperties` will be cached in the `SchemaRegistryClient` instance, so that any subsequent calls to `get_schema_id` and `get_schema` corresponding to the same schema can use the cached value rather than going to the service. ```python import os @@ -86,6 +87,7 @@ with schema_registry_client: ### Get the schema by id Get the schema content and its properties by schema id. +When looking up the schema content by schema id, the `Schema` will be cached in the `SchemaRegistryClient` instance so that subsequent requests for this schema id do not need to go the service. ```python import os @@ -106,6 +108,7 @@ with schema_registry_client: ### Get the id of a schema Get the schema id of a schema by schema content and its properties. +When looking up the schema id, the `Schema` and `SchemaProperties` will be cached in the `SchemaRegistryClient` instance, so that subsequent requests for this schema do not need to go the service. ```python import os diff --git a/sdk/schemaregistry/azure-schemaregistry/setup.py b/sdk/schemaregistry/azure-schemaregistry/setup.py index 6a2dc729cd1c..0dcef78e360e 100644 --- a/sdk/schemaregistry/azure-schemaregistry/setup.py +++ b/sdk/schemaregistry/azure-schemaregistry/setup.py @@ -58,10 +58,10 @@ 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', 'License :: OSI Approved :: MIT License', ], zip_safe=False, From f17b048a3bf5bce92b59752657157d46500fed54 Mon Sep 17 00:00:00 2001 From: Charles Lowell Date: Fri, 13 Aug 2021 10:09:23 -0700 Subject: [PATCH 057/104] Avoid passing unexpected kwarg to EnvironmentCredential (#20231) --- .../identity/_credentials/application.py | 10 +++--- .../identity/aio/_credentials/application.py | 10 +++--- .../tests/test_azure_application.py | 36 +++++++++++++++++++ .../tests/test_azure_application_async.py | 33 +++++++++++++++++ 4 files changed, 77 insertions(+), 12 deletions(-) create mode 100644 sdk/identity/azure-identity/tests/test_azure_application.py create mode 100644 sdk/identity/azure-identity/tests/test_azure_application_async.py diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/application.py b/sdk/identity/azure-identity/azure/identity/_credentials/application.py index c8412ac82014..46a84e13eb7b 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/application.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/application.py @@ -64,14 +64,12 @@ def __init__(self, **kwargs): # type: (**Any) -> None authority = kwargs.pop("authority", None) authority = normalize_authority(authority) if authority else get_default_authority() + managed_identity_client_id = kwargs.pop( + "managed_identity_client_id", os.environ.get(EnvironmentVariables.AZURE_CLIENT_ID) + ) super(AzureApplicationCredential, self).__init__( EnvironmentCredential(authority=authority, **kwargs), - ManagedIdentityCredential( - client_id=kwargs.pop( - "managed_identity_client_id", os.environ.get(EnvironmentVariables.AZURE_CLIENT_ID) - ), - **kwargs - ), + ManagedIdentityCredential(client_id=managed_identity_client_id, **kwargs), ) def get_token(self, *scopes, **kwargs): diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/application.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/application.py index 484abbb9f871..7e63bc9b78db 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/application.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/application.py @@ -63,14 +63,12 @@ class AzureApplicationCredential(ChainedTokenCredential): def __init__(self, **kwargs: "Any") -> None: authority = kwargs.pop("authority", None) authority = normalize_authority(authority) if authority else get_default_authority() + managed_identity_client_id = kwargs.pop( + "managed_identity_client_id", os.environ.get(EnvironmentVariables.AZURE_CLIENT_ID) + ) super().__init__( EnvironmentCredential(authority=authority, **kwargs), - ManagedIdentityCredential( - client_id=kwargs.pop( - "managed_identity_client_id", os.environ.get(EnvironmentVariables.AZURE_CLIENT_ID) - ), - **kwargs - ), + ManagedIdentityCredential(client_id=managed_identity_client_id, **kwargs), ) async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": diff --git a/sdk/identity/azure-identity/tests/test_azure_application.py b/sdk/identity/azure-identity/tests/test_azure_application.py new file mode 100644 index 000000000000..9879200eb8d3 --- /dev/null +++ b/sdk/identity/azure-identity/tests/test_azure_application.py @@ -0,0 +1,36 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +try: + from unittest.mock import patch +except ImportError: + from mock import patch # type: ignore + +from azure.identity import AzureApplicationCredential +from azure.identity._constants import EnvironmentVariables + + +def test_managed_identity_client_id(): + """the credential should accept a user-assigned managed identity's client ID by kwarg or environment variable""" + + expected_args = {"client_id": "the client"} + + ENVIRON = AzureApplicationCredential.__module__ + ".os.environ" + MANAGED_IDENTITY_CREDENTIAL = AzureApplicationCredential.__module__ + ".ManagedIdentityCredential" + + with patch(MANAGED_IDENTITY_CREDENTIAL) as mock_credential: + AzureApplicationCredential(managed_identity_client_id=expected_args["client_id"]) + mock_credential.assert_called_once_with(**expected_args) + + # client id can also be specified in $AZURE_CLIENT_ID + with patch.dict(ENVIRON, {EnvironmentVariables.AZURE_CLIENT_ID: expected_args["client_id"]}, clear=True): + with patch(MANAGED_IDENTITY_CREDENTIAL) as mock_credential: + AzureApplicationCredential() + mock_credential.assert_called_once_with(**expected_args) + + # keyword argument should override environment variable + with patch.dict(ENVIRON, {EnvironmentVariables.AZURE_CLIENT_ID: "not-" + expected_args["client_id"]}, clear=True): + with patch(MANAGED_IDENTITY_CREDENTIAL) as mock_credential: + AzureApplicationCredential(managed_identity_client_id=expected_args["client_id"]) + mock_credential.assert_called_once_with(**expected_args) diff --git a/sdk/identity/azure-identity/tests/test_azure_application_async.py b/sdk/identity/azure-identity/tests/test_azure_application_async.py new file mode 100644 index 000000000000..c3970134b2fb --- /dev/null +++ b/sdk/identity/azure-identity/tests/test_azure_application_async.py @@ -0,0 +1,33 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +from unittest.mock import patch + +from azure.identity.aio import AzureApplicationCredential +from azure.identity._constants import EnvironmentVariables + + +def test_managed_identity_client_id(): + """the credential should accept a user-assigned managed identity's client ID by kwarg or environment variable""" + + expected_args = {"client_id": "the client"} + + ENVIRON = AzureApplicationCredential.__module__ + ".os.environ" + MANAGED_IDENTITY_CREDENTIAL = AzureApplicationCredential.__module__ + ".ManagedIdentityCredential" + + with patch(MANAGED_IDENTITY_CREDENTIAL) as mock_credential: + AzureApplicationCredential(managed_identity_client_id=expected_args["client_id"]) + mock_credential.assert_called_once_with(**expected_args) + + # client id can also be specified in $AZURE_CLIENT_ID + with patch.dict(ENVIRON, {EnvironmentVariables.AZURE_CLIENT_ID: expected_args["client_id"]}, clear=True): + with patch(MANAGED_IDENTITY_CREDENTIAL) as mock_credential: + AzureApplicationCredential() + mock_credential.assert_called_once_with(**expected_args) + + # keyword argument should override environment variable + with patch.dict(ENVIRON, {EnvironmentVariables.AZURE_CLIENT_ID: "not-" + expected_args["client_id"]}, clear=True): + with patch(MANAGED_IDENTITY_CREDENTIAL) as mock_credential: + AzureApplicationCredential(managed_identity_client_id=expected_args["client_id"]) + mock_credential.assert_called_once_with(**expected_args) From 8c079fdf001d7e266688ce963eb29c5a3a1a66bb Mon Sep 17 00:00:00 2001 From: Xiang Yan Date: Fri, 13 Aug 2021 10:33:55 -0700 Subject: [PATCH 058/104] revert to API 2019-11-01-preview (#20265) --- sdk/synapse/azure-synapse-monitoring/CHANGELOG.md | 3 +-- .../azure/synapse/monitoring/_configuration.py | 2 +- .../azure/synapse/monitoring/aio/_configuration.py | 2 +- .../monitoring/aio/operations/_monitoring_operations.py | 4 ++-- .../synapse/monitoring/operations/_monitoring_operations.py | 4 ++-- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/sdk/synapse/azure-synapse-monitoring/CHANGELOG.md b/sdk/synapse/azure-synapse-monitoring/CHANGELOG.md index 41865fb3db9f..e3f82f74b9d0 100644 --- a/sdk/synapse/azure-synapse-monitoring/CHANGELOG.md +++ b/sdk/synapse/azure-synapse-monitoring/CHANGELOG.md @@ -1,8 +1,7 @@ # Release History -## 0.3.0 (2021-08-10) +## 0.3.0 (Unreleased) -- Updated API version to "2020-12-01" ## 0.2.0 (2021-03-09) diff --git a/sdk/synapse/azure-synapse-monitoring/azure/synapse/monitoring/_configuration.py b/sdk/synapse/azure-synapse-monitoring/azure/synapse/monitoring/_configuration.py index 03e6333554aa..5201f650911c 100644 --- a/sdk/synapse/azure-synapse-monitoring/azure/synapse/monitoring/_configuration.py +++ b/sdk/synapse/azure-synapse-monitoring/azure/synapse/monitoring/_configuration.py @@ -47,7 +47,7 @@ def __init__( self.credential = credential self.endpoint = endpoint - self.api_version = "2020-12-01" + self.api_version = "2019-11-01-preview" self.credential_scopes = kwargs.pop('credential_scopes', ['https://dev.azuresynapse.net/.default']) kwargs.setdefault('sdk_moniker', 'synapse-monitoring/{}'.format(VERSION)) self._configure(**kwargs) diff --git a/sdk/synapse/azure-synapse-monitoring/azure/synapse/monitoring/aio/_configuration.py b/sdk/synapse/azure-synapse-monitoring/azure/synapse/monitoring/aio/_configuration.py index 6e28cb35ae20..1c5684463165 100644 --- a/sdk/synapse/azure-synapse-monitoring/azure/synapse/monitoring/aio/_configuration.py +++ b/sdk/synapse/azure-synapse-monitoring/azure/synapse/monitoring/aio/_configuration.py @@ -44,7 +44,7 @@ def __init__( self.credential = credential self.endpoint = endpoint - self.api_version = "2020-12-01" + self.api_version = "2019-11-01-preview" self.credential_scopes = kwargs.pop('credential_scopes', ['https://dev.azuresynapse.net/.default']) kwargs.setdefault('sdk_moniker', 'synapse-monitoring/{}'.format(VERSION)) self._configure(**kwargs) diff --git a/sdk/synapse/azure-synapse-monitoring/azure/synapse/monitoring/aio/operations/_monitoring_operations.py b/sdk/synapse/azure-synapse-monitoring/azure/synapse/monitoring/aio/operations/_monitoring_operations.py index f21402cb5148..c9ea1038935e 100644 --- a/sdk/synapse/azure-synapse-monitoring/azure/synapse/monitoring/aio/operations/_monitoring_operations.py +++ b/sdk/synapse/azure-synapse-monitoring/azure/synapse/monitoring/aio/operations/_monitoring_operations.py @@ -59,7 +59,7 @@ async def get_spark_job_list( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01" + api_version = "2019-11-01-preview" accept = "application/json" # Construct URL @@ -124,7 +124,7 @@ async def get_sql_job_query_string( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01" + api_version = "2019-11-01-preview" accept = "application/json" # Construct URL diff --git a/sdk/synapse/azure-synapse-monitoring/azure/synapse/monitoring/operations/_monitoring_operations.py b/sdk/synapse/azure-synapse-monitoring/azure/synapse/monitoring/operations/_monitoring_operations.py index 39fbdd48c075..c8884c6473b1 100644 --- a/sdk/synapse/azure-synapse-monitoring/azure/synapse/monitoring/operations/_monitoring_operations.py +++ b/sdk/synapse/azure-synapse-monitoring/azure/synapse/monitoring/operations/_monitoring_operations.py @@ -64,7 +64,7 @@ def get_spark_job_list( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01" + api_version = "2019-11-01-preview" accept = "application/json" # Construct URL @@ -130,7 +130,7 @@ def get_sql_job_query_string( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01" + api_version = "2019-11-01-preview" accept = "application/json" # Construct URL From 804bb736b17cfb17c0be1890c3f23ab24c9d0d3a Mon Sep 17 00:00:00 2001 From: AriZavala2 <77034370+AriZavala2@users.noreply.github.com> Date: Fri, 13 Aug 2021 10:48:25 -0700 Subject: [PATCH 059/104] Add missing extra requires in setup.py (#20246) --- sdk/communication/azure-communication-networktraversal/setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk/communication/azure-communication-networktraversal/setup.py b/sdk/communication/azure-communication-networktraversal/setup.py index b40d3021af48..21d2a6670ad9 100644 --- a/sdk/communication/azure-communication-networktraversal/setup.py +++ b/sdk/communication/azure-communication-networktraversal/setup.py @@ -66,6 +66,7 @@ 'azure-core<2.0.0,>=1.2.2' ], extras_require={ + ":python_version<'3.0'": ['azure-communication-nspkg'], ":python_version<'3.8'": ["typing-extensions"] }, project_urls={ From 041ec311d0abff91832ad204b908ed10347597a0 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Fri, 13 Aug 2021 11:08:39 -0700 Subject: [PATCH 060/104] Sync eng/common directory with azure-sdk-tools for PR 1876 (#20248) * rebase * Resolve conflict Co-authored-by: Albert Cheng --- .../TestResources/New-TestResources.ps1 | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/eng/common/TestResources/New-TestResources.ps1 b/eng/common/TestResources/New-TestResources.ps1 index a38155cba855..60f9f2bf2c06 100644 --- a/eng/common/TestResources/New-TestResources.ps1 +++ b/eng/common/TestResources/New-TestResources.ps1 @@ -167,9 +167,11 @@ try { Get-ChildItem -Path $root -Filter "$_" -Recurse | ForEach-Object { Write-Verbose "Found template '$($_.FullName)'" if ($_.Extension -eq '.bicep') { - $templateFiles += (BuildBicepFile $_) + $templateFile = @{originalFilePath = $_.FullName; jsonFilePath = (BuildBicepFile $_)} + $templateFiles += $templateFile } else { - $templateFiles += $_.FullName + $templateFile = @{originalFilePath = $_.FullName; jsonFilePath = $_.FullName} + $templateFiles += $templateFile } } } @@ -457,8 +459,8 @@ try { # Deploy the templates foreach ($templateFile in $templateFiles) { # Deployment fails if we pass in more parameters than are defined. - Write-Verbose "Removing unnecessary parameters from template '$templateFile'" - $templateJson = Get-Content -LiteralPath $templateFile | ConvertFrom-Json + Write-Verbose "Removing unnecessary parameters from template '$($templateFile.jsonFilePath)'" + $templateJson = Get-Content -LiteralPath $templateFile.jsonFilePath | ConvertFrom-Json $templateParameterNames = $templateJson.parameters.PSObject.Properties.Name $templateFileParameters = $templateParameters.Clone() @@ -469,20 +471,20 @@ try { } } - $preDeploymentScript = $templateFile | Split-Path | Join-Path -ChildPath 'test-resources-pre.ps1' + $preDeploymentScript = $templateFile.originalFilePath | Split-Path | Join-Path -ChildPath 'test-resources-pre.ps1' if (Test-Path $preDeploymentScript) { Log "Invoking pre-deployment script '$preDeploymentScript'" &$preDeploymentScript -ResourceGroupName $ResourceGroupName @PSBoundParameters } - Log "Deploying template '$templateFile' to resource group '$($resourceGroup.ResourceGroupName)'" + Log "Deploying template '$($templateFile.originalFilePath)' to resource group '$($resourceGroup.ResourceGroupName)'" $deployment = Retry { $lastDebugPreference = $DebugPreference try { if ($CI) { $DebugPreference = 'Continue' } - New-AzResourceGroupDeployment -Name $BaseName -ResourceGroupName $resourceGroup.ResourceGroupName -TemplateFile $templateFile -TemplateParameterObject $templateFileParameters -Force:$Force + New-AzResourceGroupDeployment -Name $BaseName -ResourceGroupName $resourceGroup.ResourceGroupName -TemplateFile $templateFile.jsonFilePath -TemplateParameterObject $templateFileParameters -Force:$Force } catch { Write-Output @' ##################################################### @@ -498,7 +500,7 @@ try { if ($deployment.ProvisioningState -eq 'Succeeded') { # New-AzResourceGroupDeployment would've written an error and stopped the pipeline by default anyway. - Write-Verbose "Successfully deployed template '$templateFile' to resource group '$($resourceGroup.ResourceGroupName)'" + Write-Verbose "Successfully deployed template '$($templateFile.jsonFilePath)' to resource group '$($resourceGroup.ResourceGroupName)'" } $serviceDirectoryPrefix = $serviceName.ToUpperInvariant() + "_" @@ -536,7 +538,7 @@ try { Write-Host 'File option is supported only on Windows' } - $outputFile = "$templateFile.env" + $outputFile = "$($templateFile.jsonFilePath).env" $environmentText = $deploymentOutputs | ConvertTo-Json; $bytes = ([System.Text.Encoding]::UTF8).GetBytes($environmentText) @@ -574,15 +576,15 @@ try { } } - $postDeploymentScript = $templateFile | Split-Path | Join-Path -ChildPath 'test-resources-post.ps1' + $postDeploymentScript = $templateFile.originalFilePath | Split-Path | Join-Path -ChildPath 'test-resources-post.ps1' if (Test-Path $postDeploymentScript) { Log "Invoking post-deployment script '$postDeploymentScript'" &$postDeploymentScript -ResourceGroupName $ResourceGroupName -DeploymentOutputs $deploymentOutputs @PSBoundParameters } - if ($templateFile.EndsWith('.compiled.json')) { - Write-Verbose "Removing compiled bicep file $templateFile" - Remove-Item $templateFile + if ($templateFile.jsonFilePath.EndsWith('.compiled.json')) { + Write-Verbose "Removing compiled bicep file $($templateFile.jsonFilePath)" + Remove-Item $templateFile.jsonFilePath } } @@ -760,4 +762,4 @@ Run this in an Azure DevOps CI (with approrpiate variables configured) before executing live tests. The script will output variables as secrets (to enable log redaction). -#> +#> \ No newline at end of file From 43d39f0bdcb7e73508e5f7386be4d6c0a0166232 Mon Sep 17 00:00:00 2001 From: Xiang Yan Date: Fri, 13 Aug 2021 11:33:28 -0700 Subject: [PATCH 061/104] expose models (#20266) --- sdk/search/azure-search-documents/CHANGELOG.md | 16 ++++++++++++++++ .../azure/search/documents/_version.py | 2 +- .../search/documents/indexes/models/__init__.py | 16 ++++++++++++++++ .../azure/search/documents/models/__init__.py | 4 ++++ 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/sdk/search/azure-search-documents/CHANGELOG.md b/sdk/search/azure-search-documents/CHANGELOG.md index 2e1cfbc47f2a..7c8df48d1e24 100644 --- a/sdk/search/azure-search-documents/CHANGELOG.md +++ b/sdk/search/azure-search-documents/CHANGELOG.md @@ -1,5 +1,21 @@ # Release History +## 11.3.0b3 (Unreleased) + +### Features Added + +- Added new models: + - `azure.search.documents.models.Captions` + - `azure.search.documents.models.CaptionResult` + - `azure.search.documents.indexes.models.CustomEntityLookupSkillLanguage` + - `azure.search.documents.indexes.models.LexicalNormalizerName` + - `azure.search.documents.indexes.models.PIIDetectionSkill` + - `azure.search.documents.indexes.models.PIIDetectionSkillMaskingMode` + - `azure.search.documents.indexes.models.SearchIndexerCache` + - `azure.search.documents.indexes.models.SearchIndexerDataIdentity` + - `azure.search.documents.indexes.models.SearchIndexerDataNoneIdentity` + - `azure.search.documents.indexes.models.SearchIndexerDataUserAssignedIdentity` + ## 11.3.0b2 (2021-08-10) ### Features Added diff --git a/sdk/search/azure-search-documents/azure/search/documents/_version.py b/sdk/search/azure-search-documents/azure/search/documents/_version.py index b4b9f0f3817d..49efd4643318 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_version.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_version.py @@ -3,6 +3,6 @@ # Licensed under the MIT License. # ------------------------------------ -VERSION = "11.3.0b2" # type: str +VERSION = "11.3.0b3" # type: str SDK_MONIKER = "search-documents/{}".format(VERSION) # type: str diff --git a/sdk/search/azure-search-documents/azure/search/documents/indexes/models/__init__.py b/sdk/search/azure-search-documents/azure/search/documents/indexes/models/__init__.py index 733e0fac500c..7fc795068670 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/indexes/models/__init__.py +++ b/sdk/search/azure-search-documents/azure/search/documents/indexes/models/__init__.py @@ -46,6 +46,7 @@ ConditionalSkill, CorsOptions, CustomEntityLookupSkill, + CustomEntityLookupSkillLanguage, CustomNormalizer, DictionaryDecompounderTokenFilter, DistanceScoringFunction, @@ -82,6 +83,7 @@ LengthTokenFilter, LexicalAnalyzer, LexicalNormalizer, + LexicalNormalizerName, LexicalTokenizer, LimitTokenFilter, LuceneStandardAnalyzer, @@ -103,11 +105,17 @@ PatternCaptureTokenFilter, PatternReplaceCharFilter, PatternReplaceTokenFilter, + PIIDetectionSkill, + PIIDetectionSkillMaskingMode, PhoneticEncoder, PhoneticTokenFilter, RegexFlags, SearchIndexer, + SearchIndexerCache, SearchIndexerDataContainer, + SearchIndexerDataIdentity, + SearchIndexerDataNoneIdentity, + SearchIndexerDataUserAssignedIdentity, SearchIndexerDataSourceType, SearchIndexerError, SearchIndexerKnowledgeStore, @@ -185,6 +193,7 @@ "CorsOptions", "CustomAnalyzer", "CustomEntityLookupSkill", + "CustomEntityLookupSkillLanguage", "CustomNormalizer", "DictionaryDecompounderTokenFilter", "DistanceScoringFunction", @@ -221,6 +230,7 @@ "LengthTokenFilter", "LexicalAnalyzer", "LexicalNormalizer", + "LexicalNormalizerName", "LexicalTokenizer", "LimitTokenFilter", "LuceneStandardAnalyzer", @@ -244,6 +254,8 @@ "PatternReplaceCharFilter", "PatternReplaceTokenFilter", "PatternTokenizer", + "PIIDetectionSkill", + "PIIDetectionSkillMaskingMode", "PhoneticEncoder", "PhoneticTokenFilter", "RegexFlags", @@ -254,7 +266,11 @@ "SearchField", "SearchIndex", "SearchIndexer", + "SearchIndexerCache", "SearchIndexerDataContainer", + "SearchIndexerDataIdentity", + "SearchIndexerDataNoneIdentity", + "SearchIndexerDataUserAssignedIdentity", "SearchIndexerDataSourceConnection", "SearchIndexerDataSourceType", "SearchIndexerError", diff --git a/sdk/search/azure-search-documents/azure/search/documents/models/__init__.py b/sdk/search/azure-search-documents/azure/search/documents/models/__init__.py index d478e39fd33b..b1d2c678d771 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/models/__init__.py +++ b/sdk/search/azure-search-documents/azure/search/documents/models/__init__.py @@ -28,6 +28,8 @@ Answers, AnswerResult, AutocompleteMode, + Captions, + CaptionResult, IndexAction, IndexingResult, QueryLanguage, @@ -42,6 +44,8 @@ "Answers", "AnswerResult", "AutocompleteMode", + "Captions", + "CaptionResult", "IndexAction", "IndexingResult", "odata", From 0a06eb6591b842d70df05a0522f747cc87f2a7a4 Mon Sep 17 00:00:00 2001 From: luc <44377201+LuChen-Microsoft@users.noreply.github.com> Date: Fri, 13 Aug 2021 14:33:35 -0700 Subject: [PATCH 062/104] Update the release date for 1.1.0b1 (#20271) --- sdk/communication/azure-communication-chat/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/communication/azure-communication-chat/CHANGELOG.md b/sdk/communication/azure-communication-chat/CHANGELOG.md index 2210aeebd752..ecf64fd7bf5f 100644 --- a/sdk/communication/azure-communication-chat/CHANGELOG.md +++ b/sdk/communication/azure-communication-chat/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 1.1.0b1 (2021-08-10) +## 1.1.0b1 (2021-08-13) ### Added - Added support to add `metadata` for `message` From 23c36de08794cc0980777a5dd2e7162ea9fe762b Mon Sep 17 00:00:00 2001 From: luc <44377201+LuChen-Microsoft@users.noreply.github.com> Date: Fri, 13 Aug 2021 14:49:32 -0700 Subject: [PATCH 063/104] Update the release date for ACS chat 1.1.0b1 (#20277) --- sdk/communication/azure-communication-chat/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/communication/azure-communication-chat/CHANGELOG.md b/sdk/communication/azure-communication-chat/CHANGELOG.md index ecf64fd7bf5f..2f1929d0acc9 100644 --- a/sdk/communication/azure-communication-chat/CHANGELOG.md +++ b/sdk/communication/azure-communication-chat/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 1.1.0b1 (2021-08-13) +## 1.1.0b1 (2021-08-16) ### Added - Added support to add `metadata` for `message` From e961252cbe4d347d3fc0c96678964e4ba10dfbe5 Mon Sep 17 00:00:00 2001 From: AriZavala2 <77034370+AriZavala2@users.noreply.github.com> Date: Fri, 13 Aug 2021 15:15:56 -0700 Subject: [PATCH 064/104] Update release date (#20270) * Update release date * Update release date for Monday --- .../azure-communication-networktraversal/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/communication/azure-communication-networktraversal/CHANGELOG.md b/sdk/communication/azure-communication-networktraversal/CHANGELOG.md index 89d6a8ed08e8..e4cfa026e6f6 100644 --- a/sdk/communication/azure-communication-networktraversal/CHANGELOG.md +++ b/sdk/communication/azure-communication-networktraversal/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 1.0.0b1 (2021-08-11) +## 1.0.0b1 (2021-08-16) - Preview release of `azure-communication-networktraversal`. The first preview of the Azure Communication Relay Client has the following features: From e0ad014c6f69ee9ac10aa1ddb81f4fb0eab8fb80 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Fri, 13 Aug 2021 15:22:16 -0700 Subject: [PATCH 065/104] Add Rest Method checks to Prepare-Release (#20275) Co-authored-by: Wes Haggard --- .../Helpers/DevOps-WorkItem-Helpers.ps1 | 62 +++++++++++-------- .../Update-DevOps-Release-WorkItem.ps1 | 2 + 2 files changed, 37 insertions(+), 27 deletions(-) diff --git a/eng/common/scripts/Helpers/DevOps-WorkItem-Helpers.ps1 b/eng/common/scripts/Helpers/DevOps-WorkItem-Helpers.ps1 index aca34080da46..24420cef2b66 100644 --- a/eng/common/scripts/Helpers/DevOps-WorkItem-Helpers.ps1 +++ b/eng/common/scripts/Helpers/DevOps-WorkItem-Helpers.ps1 @@ -3,6 +3,38 @@ $ReleaseDevOpsOrgParameters = @("--organization", "https://dev.azure.com/azure- $ReleaseDevOpsCommonParameters = $ReleaseDevOpsOrgParameters + @("--output", "json") $ReleaseDevOpsCommonParametersWithProject = $ReleaseDevOpsCommonParameters + @("--project", "Release") +function Get-DevOpsRestHeaders() +{ + $headers = $null + if (Get-Variable -Name "devops_pat" -ValueOnly -ErrorAction "Ignore") + { + $encodedToken = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes([string]::Format("{0}:{1}", "", $devops_pat))) + $headers = @{ Authorization = "Basic $encodedToken" } + } + else + { + # Get a temp access token from the logged in az cli user for azure devops resource + $jwt_accessToken = (az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" --output tsv) + $headers = @{ Authorization = "Bearer $jwt_accessToken" } + } + + return $headers +} + +function CheckDevOpsAccess() +{ + # Dummy test query to validate permissions + $query = "SELECT [System.ID] FROM WorkItems WHERE [Work Item Type] = 'Package' AND [Package] = 'azure-sdk-template'" + + $response = Invoke-RestMethod -Method POST ` + -Uri "https://dev.azure.com/azure-sdk/Release/_apis/wit/wiql/?api-version=6.0" ` + -Headers (Get-DevOpsRestHeaders) -Body "{ ""query"": ""$query"" }" -ContentType "application/json" | ConvertTo-Json -Depth 10 | ConvertFrom-Json -AsHashTable + + if ($response -isnot [HashTable] -or !$response.ContainsKey("workItems")) { + throw "Failed to run test query against Azure DevOps. Please ensure you are logged into the public azure cloud. Consider running 'az logout' and then 'az login'." + } +} + function Invoke-AzBoardsCmd($subCmd, $parameters, $output = $true) { $azCmdStr = "az boards ${subCmd} $($parameters -join ' ')" @@ -26,23 +58,11 @@ function Invoke-Query($fields, $wiql, $output = $true) Write-Host "Executing query $wiql" } - $headers = $null - if (Get-Variable -Name "devops_pat" -ValueOnly -ErrorAction "Ignore") - { - $encodedToken = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes([string]::Format("{0}:{1}", "", $devops_pat))) - $headers = @{ Authorization = "Basic $encodedToken" } - } - else - { - # Get a temp access token from the logged in az cli user for azure devops resource - $jwt_accessToken = (az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" --output tsv) - $headers = @{ Authorization = "Bearer $jwt_accessToken" } - } $response = Invoke-RestMethod -Method POST ` -Uri "https://dev.azure.com/azure-sdk/Release/_apis/wit/wiql/?`$top=10000&api-version=6.0" ` - -Headers $headers -Body $body -ContentType "application/json" | ConvertTo-Json -Depth 10 | ConvertFrom-Json -AsHashTable + -Headers (Get-DevOpsRestHeaders) -Body $body -ContentType "application/json" | ConvertTo-Json -Depth 10 | ConvertFrom-Json -AsHashTable - if (!$response.workItems) { + if ($response -isnot [HashTable] -or !$response.ContainsKey("workItems")) { Write-Verbose "Query returned no items. $wiql" return ,@() } @@ -891,20 +911,8 @@ function UpdatePackageVersions($pkgWorkItem, $plannedVersions, $shippedVersions) $body = "[" + ($fieldUpdates -join ',') + "]" - $headers = $null - if (Get-Variable -Name "devops_pat" -ValueOnly -ErrorAction "Ignore") - { - $encodedToken = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes([string]::Format("{0}:{1}", "", $devops_pat))) - $headers = @{ Authorization = "Basic $encodedToken" } - } - else - { - # Get a temp access token from the logged in az cli user for azure devops resource - $jwt_accessToken = (az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" --output tsv) - $headers = @{ Authorization = "Bearer $jwt_accessToken" } - } $response = Invoke-RestMethod -Method PATCH ` -Uri "https://dev.azure.com/azure-sdk/_apis/wit/workitems/${id}?api-version=6.0" ` - -Headers $headers -Body $body -ContentType "application/json-patch+json" | ConvertTo-Json -Depth 10 | ConvertFrom-Json -AsHashTable + -Headers (Get-DevOpsRestHeaders) -Body $body -ContentType "application/json-patch+json" | ConvertTo-Json -Depth 10 | ConvertFrom-Json -AsHashTable return $response } \ No newline at end of file diff --git a/eng/common/scripts/Update-DevOps-Release-WorkItem.ps1 b/eng/common/scripts/Update-DevOps-Release-WorkItem.ps1 index b1a45abffa2e..34c754006276 100644 --- a/eng/common/scripts/Update-DevOps-Release-WorkItem.ps1 +++ b/eng/common/scripts/Update-DevOps-Release-WorkItem.ps1 @@ -38,6 +38,8 @@ if (!$?){ . (Join-Path $PSScriptRoot SemVer.ps1) . (Join-Path $PSScriptRoot Helpers DevOps-WorkItem-Helpers.ps1) +CheckDevOpsAccess + $parsedNewVersion = [AzureEngSemanticVersion]::new($version) $state = "In Release" $releaseType = $parsedNewVersion.VersionType From ad24e1db873f639c891e46cf8ef6aa27753c44e2 Mon Sep 17 00:00:00 2001 From: annatisch Date: Fri, 13 Aug 2021 15:47:45 -0700 Subject: [PATCH 066/104] [Tables] Fix bug in update mode (#20264) * Fix bug in update mode * Updated codeowners --- .github/CODEOWNERS | 2 +- sdk/tables/azure-data-tables/CHANGELOG.md | 2 + .../azure/data/tables/_table_batch.py | 12 +- .../azure/data/tables/_table_client.py | 10 +- .../data/tables/aio/_table_batch_async.py | 12 +- .../data/tables/aio/_table_client_async.py | 10 +- ...test_table_batch.test_batch_with_mode.yaml | 292 ++++++++++++++++++ ...able_batch_async.test_batch_with_mode.yaml | 228 ++++++++++++++ .../tests/test_table_batch.py | 44 +++ .../tests/test_table_batch_async.py | 44 +++ 10 files changed, 637 insertions(+), 19 deletions(-) create mode 100644 sdk/tables/azure-data-tables/tests/recordings/test_table_batch.test_batch_with_mode.yaml create mode 100644 sdk/tables/azure-data-tables/tests/recordings/test_table_batch_async.test_batch_with_mode.yaml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 3efc8ea7bc47..b1ff2a9e0396 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -119,7 +119,7 @@ /sdk/translation/ @kristapratico @mohamedshabanofficial # PRLabel: %Tables -/sdk/tables/ @seankane-msft +/sdk/tables/ @annatisch @YalinLi0312 # PRLabel: %Media /sdk/media/ @naiteeks @bennage @giakas diff --git a/sdk/tables/azure-data-tables/CHANGELOG.md b/sdk/tables/azure-data-tables/CHANGELOG.md index 77b2ca167eae..284c5b4577ce 100644 --- a/sdk/tables/azure-data-tables/CHANGELOG.md +++ b/sdk/tables/azure-data-tables/CHANGELOG.md @@ -8,6 +8,8 @@ ### Bugs Fixed +- Resolved bug where strings couldn't be used instead of enum value for entity Update Mode (#20247). + ### Other Changes - Bumped dependency on `msrest` to `>=0.6.21` diff --git a/sdk/tables/azure-data-tables/azure/data/tables/_table_batch.py b/sdk/tables/azure-data-tables/azure/data/tables/_table_batch.py index 89fe84b1117a..83071a71dec0 100644 --- a/sdk/tables/azure-data-tables/azure/data/tables/_table_batch.py +++ b/sdk/tables/azure-data-tables/azure/data/tables/_table_batch.py @@ -261,7 +261,7 @@ def update( partition_key = temp["PartitionKey"] row_key = temp["RowKey"] temp = _add_entity_properties(temp) - if mode is UpdateMode.REPLACE: + if mode == UpdateMode.REPLACE: self._batch_update_entity( table=self.table_name, partition_key=partition_key, @@ -270,7 +270,7 @@ def update( table_entity_properties=temp, **kwargs ) - elif mode is UpdateMode.MERGE: + elif mode == UpdateMode.MERGE: self._batch_merge_entity( table=self.table_name, partition_key=partition_key, @@ -279,6 +279,8 @@ def update( table_entity_properties=temp, **kwargs ) + else: + raise ValueError("Mode type '{}' is not supported.".format(mode)) def _batch_update_entity( self, @@ -668,7 +670,7 @@ def upsert( row_key = temp["RowKey"] temp = _add_entity_properties(temp) - if mode is UpdateMode.MERGE: + if mode == UpdateMode.MERGE: self._batch_merge_entity( table=self.table_name, partition_key=partition_key, @@ -676,7 +678,7 @@ def upsert( table_entity_properties=temp, **kwargs ) - elif mode is UpdateMode.REPLACE: + elif mode == UpdateMode.REPLACE: self._batch_update_entity( table=self.table_name, partition_key=partition_key, @@ -684,3 +686,5 @@ def upsert( table_entity_properties=temp, **kwargs ) + else: + raise ValueError("Mode type '{}' is not supported.".format(mode)) diff --git a/sdk/tables/azure-data-tables/azure/data/tables/_table_client.py b/sdk/tables/azure-data-tables/azure/data/tables/_table_client.py index 14e9e437f461..4821acfc4664 100644 --- a/sdk/tables/azure-data-tables/azure/data/tables/_table_client.py +++ b/sdk/tables/azure-data-tables/azure/data/tables/_table_client.py @@ -466,7 +466,7 @@ def update_entity( try: metadata = None content = None - if mode is UpdateMode.REPLACE: + if mode == UpdateMode.REPLACE: metadata, content = self._client.table.update_entity( # type: ignore table=self.table_name, partition_key=partition_key, @@ -476,7 +476,7 @@ def update_entity( cls=kwargs.pop("cls", _return_headers_and_deserialized), **kwargs ) - elif mode is UpdateMode.MERGE: + elif mode == UpdateMode.MERGE: metadata, content = self._client.table.merge_entity( # type: ignore table=self.table_name, partition_key=partition_key, @@ -487,7 +487,7 @@ def update_entity( **kwargs ) else: - raise ValueError("Mode type is not supported") + raise ValueError("Mode type '{}' is not supported.".format(mode)) except HttpResponseError as error: _process_table_error(error) return _trim_service_metadata(metadata, content=content) # type: ignore @@ -654,7 +654,7 @@ def upsert_entity( try: metadata = None content = None - if mode is UpdateMode.MERGE: + if mode == UpdateMode.MERGE: metadata, content = self._client.table.merge_entity( # type: ignore table=self.table_name, partition_key=partition_key, @@ -663,7 +663,7 @@ def upsert_entity( cls=kwargs.pop("cls", _return_headers_and_deserialized), **kwargs ) - elif mode is UpdateMode.REPLACE: + elif mode == UpdateMode.REPLACE: metadata, content = self._client.table.update_entity( # type: ignore table=self.table_name, partition_key=partition_key, diff --git a/sdk/tables/azure-data-tables/azure/data/tables/aio/_table_batch_async.py b/sdk/tables/azure-data-tables/azure/data/tables/aio/_table_batch_async.py index 4c8e590cdafa..c6a319ddaff9 100644 --- a/sdk/tables/azure-data-tables/azure/data/tables/aio/_table_batch_async.py +++ b/sdk/tables/azure-data-tables/azure/data/tables/aio/_table_batch_async.py @@ -233,7 +233,7 @@ def update( partition_key = temp["PartitionKey"] row_key = temp["RowKey"] temp = _add_entity_properties(temp) - if mode is UpdateMode.REPLACE: + if mode == UpdateMode.REPLACE: self._batch_update_entity( table=self.table_name, partition_key=partition_key, @@ -242,7 +242,7 @@ def update( table_entity_properties=temp, **kwargs ) - elif mode is UpdateMode.MERGE: + elif mode == UpdateMode.MERGE: self._batch_merge_entity( table=self.table_name, partition_key=partition_key, @@ -251,6 +251,8 @@ def update( table_entity_properties=temp, **kwargs ) + else: + raise ValueError("Mode type '{}' is not supported.".format(mode)) def _batch_update_entity( self, @@ -631,7 +633,7 @@ def upsert( row_key = temp["RowKey"] temp = _add_entity_properties(temp) - if mode is UpdateMode.MERGE: + if mode == UpdateMode.MERGE: self._batch_merge_entity( table=self.table_name, partition_key=partition_key, @@ -639,7 +641,7 @@ def upsert( table_entity_properties=temp, **kwargs ) - elif mode is UpdateMode.REPLACE: + elif mode == UpdateMode.REPLACE: self._batch_update_entity( table=self.table_name, partition_key=partition_key, @@ -647,3 +649,5 @@ def upsert( table_entity_properties=temp, **kwargs ) + else: + raise ValueError("Mode type '{}' is not supported.".format(mode)) diff --git a/sdk/tables/azure-data-tables/azure/data/tables/aio/_table_client_async.py b/sdk/tables/azure-data-tables/azure/data/tables/aio/_table_client_async.py index 4513b657d9ef..a2b2964d4e29 100644 --- a/sdk/tables/azure-data-tables/azure/data/tables/aio/_table_client_async.py +++ b/sdk/tables/azure-data-tables/azure/data/tables/aio/_table_client_async.py @@ -448,7 +448,7 @@ async def update_entity( try: metadata = None content = None - if mode is UpdateMode.REPLACE: + if mode == UpdateMode.REPLACE: metadata, content = await self._client.table.update_entity( # type: ignore table=self.table_name, partition_key=partition_key, @@ -458,7 +458,7 @@ async def update_entity( cls=kwargs.pop("cls", _return_headers_and_deserialized), **kwargs ) - elif mode is UpdateMode.MERGE: + elif mode == UpdateMode.MERGE: metadata, content = await self._client.table.merge_entity( # type: ignore table=self.table_name, partition_key=partition_key, @@ -469,7 +469,7 @@ async def update_entity( **kwargs ) else: - raise ValueError("Mode type is not supported") + raise ValueError("Mode type '{}' is not supported.".format(mode)) except HttpResponseError as error: _process_table_error(error) return _trim_service_metadata(metadata, content=content) # type: ignore @@ -632,7 +632,7 @@ async def upsert_entity( try: metadata = None content = None - if mode is UpdateMode.MERGE: + if mode == UpdateMode.MERGE: metadata, content = await self._client.table.merge_entity( # type: ignore table=self.table_name, partition_key=partition_key, @@ -641,7 +641,7 @@ async def upsert_entity( cls=kwargs.pop("cls", _return_headers_and_deserialized), **kwargs ) - elif mode is UpdateMode.REPLACE: + elif mode == UpdateMode.REPLACE: metadata, content = await self._client.table.update_entity( # type: ignore table=self.table_name, partition_key=partition_key, diff --git a/sdk/tables/azure-data-tables/tests/recordings/test_table_batch.test_batch_with_mode.yaml b/sdk/tables/azure-data-tables/tests/recordings/test_table_batch.test_batch_with_mode.yaml new file mode 100644 index 000000000000..5d32714639bf --- /dev/null +++ b/sdk/tables/azure-data-tables/tests/recordings/test_table_batch.test_batch_with_mode.yaml @@ -0,0 +1,292 @@ +interactions: +- request: + body: '{"TableName": "uttable1ca30ef7"}' + headers: + Accept: + - application/json;odata=minimalmetadata + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '32' + Content-Type: + - application/json;odata=nometadata + DataServiceVersion: + - '3.0' + Date: + - Fri, 13 Aug 2021 15:51:32 GMT + User-Agent: + - azsdk-python-data-tables/12.1.1 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Fri, 13 Aug 2021 15:51:32 GMT + x-ms-version: + - '2019-02-02' + method: POST + uri: https://fake_table_account.table.core.windows.net/Tables + response: + body: + string: '{"odata.metadata":"https://fake_table_account.table.core.windows.net/$metadata#Tables/@Element","TableName":"uttable1ca30ef7"}' + headers: + cache-control: + - no-cache + content-type: + - application/json;odata=minimalmetadata;streaming=true;charset=utf-8 + date: + - Fri, 13 Aug 2021 15:51:32 GMT + location: + - https://fake_table_account.table.core.windows.net/Tables('uttable1ca30ef7') + server: + - Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-ms-version: + - '2019-02-02' + status: + code: 201 + message: Created +- request: + body: '{"TableName": "table21ca30ef7"}' + headers: + Accept: + - application/json;odata=minimalmetadata + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '31' + Content-Type: + - application/json;odata=nometadata + DataServiceVersion: + - '3.0' + Date: + - Fri, 13 Aug 2021 15:51:32 GMT + User-Agent: + - azsdk-python-data-tables/12.1.1 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Fri, 13 Aug 2021 15:51:32 GMT + x-ms-version: + - '2019-02-02' + method: POST + uri: https://fake_table_account.table.core.windows.net/Tables + response: + body: + string: '{"odata.metadata":"https://fake_table_account.table.core.windows.net/$metadata#Tables/@Element","TableName":"table21ca30ef7"}' + headers: + cache-control: + - no-cache + content-type: + - application/json;odata=minimalmetadata;streaming=true;charset=utf-8 + date: + - Fri, 13 Aug 2021 15:51:32 GMT + location: + - https://fake_table_account.table.core.windows.net/Tables('table21ca30ef7') + server: + - Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-ms-version: + - '2019-02-02' + status: + code: 201 + message: Created +- request: + body: "--batch_736b8e4d-b1b6-4cee-8285-06891044a4f0\r\nContent-Type: multipart/mixed; + boundary=changeset_82fbf594-7f1c-4890-ab65-bddeb3232afb\r\n\r\n--changeset_82fbf594-7f1c-4890-ab65-bddeb3232afb\r\nContent-Type: + application/http\r\nContent-Transfer-Encoding: binary\r\nContent-ID: 0\r\n\r\nPATCH + https://pytestremote.table.core.windows.net/uttable1ca30ef7(PartitionKey='pk001',RowKey='rk001') + HTTP/1.1\r\nx-ms-version: 2019-02-02\r\nDataServiceVersion: 3.0\r\nContent-Type: + application/json\r\nAccept: application/json\r\nContent-Length: 231\r\nx-ms-date: + Fri, 13 Aug 2021 15:51:32 GMT\r\nDate: Fri, 13 Aug 2021 15:51:32 GMT\r\n\r\n{\"PartitionKey\": + \"pk001\", \"PartitionKey@odata.type\": \"Edm.String\", \"RowKey\": \"rk001\", + \"RowKey@odata.type\": \"Edm.String\", \"Value\": 1, \"day\": \"Monday\", \"day@odata.type\": + \"Edm.String\", \"float\": 1.001, \"float@odata.type\": \"Edm.Double\"}\r\n--changeset_82fbf594-7f1c-4890-ab65-bddeb3232afb\r\nContent-Type: + application/http\r\nContent-Transfer-Encoding: binary\r\nContent-ID: 1\r\n\r\nPUT + https://pytestremote.table.core.windows.net/uttable1ca30ef7(PartitionKey='pk001',RowKey='rk002') + HTTP/1.1\r\nx-ms-version: 2019-02-02\r\nDataServiceVersion: 3.0\r\nContent-Type: + application/json\r\nAccept: application/json\r\nContent-Length: 231\r\nx-ms-date: + Fri, 13 Aug 2021 15:51:32 GMT\r\nDate: Fri, 13 Aug 2021 15:51:32 GMT\r\n\r\n{\"PartitionKey\": + \"pk001\", \"PartitionKey@odata.type\": \"Edm.String\", \"RowKey\": \"rk002\", + \"RowKey@odata.type\": \"Edm.String\", \"Value\": 1, \"day\": \"Monday\", \"day@odata.type\": + \"Edm.String\", \"float\": 1.001, \"float@odata.type\": \"Edm.Double\"}\r\n--changeset_82fbf594-7f1c-4890-ab65-bddeb3232afb--\r\n\r\n--batch_736b8e4d-b1b6-4cee-8285-06891044a4f0--\r\n" + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1618' + Content-Type: + - multipart/mixed; boundary=batch_736b8e4d-b1b6-4cee-8285-06891044a4f0 + DataServiceVersion: + - '3.0' + Date: + - Fri, 13 Aug 2021 15:51:32 GMT + MaxDataServiceVersion: + - 3.0;NetFx + User-Agent: + - azsdk-python-data-tables/12.1.1 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Fri, 13 Aug 2021 15:51:32 GMT + x-ms-version: + - '2019-02-02' + method: POST + uri: https://fake_table_account.table.core.windows.net/$batch + response: + body: + string: "--batchresponse_402b5216-258f-466f-8036-4d5da49543d2\r\nContent-Type: + multipart/mixed; boundary=changesetresponse_d8a05621-36ea-459c-be11-193ddd020a77\r\n\r\n--changesetresponse_d8a05621-36ea-459c-be11-193ddd020a77\r\nContent-Type: + application/http\r\nContent-Transfer-Encoding: binary\r\n\r\nHTTP/1.1 204 + No Content\r\nX-Content-Type-Options: nosniff\r\nCache-Control: no-cache\r\nDataServiceVersion: + 1.0;\r\nETag: W/\"datetime'2021-08-13T15%3A51%3A32.9675797Z'\"\r\n\r\n\r\n--changesetresponse_d8a05621-36ea-459c-be11-193ddd020a77\r\nContent-Type: + application/http\r\nContent-Transfer-Encoding: binary\r\n\r\nHTTP/1.1 204 + No Content\r\nX-Content-Type-Options: nosniff\r\nCache-Control: no-cache\r\nDataServiceVersion: + 1.0;\r\nETag: W/\"datetime'2021-08-13T15%3A51%3A32.9685804Z'\"\r\n\r\n\r\n--changesetresponse_d8a05621-36ea-459c-be11-193ddd020a77--\r\n--batchresponse_402b5216-258f-466f-8036-4d5da49543d2--\r\n" + headers: + cache-control: + - no-cache + content-type: + - multipart/mixed; boundary=batchresponse_402b5216-258f-466f-8036-4d5da49543d2 + date: + - Fri, 13 Aug 2021 15:51:32 GMT + server: + - Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-ms-version: + - '2019-02-02' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/json;odata=minimalmetadata + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + DataServiceVersion: + - '3.0' + Date: + - Fri, 13 Aug 2021 15:51:32 GMT + User-Agent: + - azsdk-python-data-tables/12.1.1 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Fri, 13 Aug 2021 15:51:32 GMT + x-ms-version: + - '2019-02-02' + method: GET + uri: https://fake_table_account.table.core.windows.net/Tables + response: + body: + string: '{"odata.metadata":"https://fake_table_account.table.core.windows.net/$metadata#Tables","value":[{"TableName":"table21ca30ef7"},{"TableName":"uttable1ca30ef7"}]}' + headers: + cache-control: + - no-cache + content-type: + - application/json;odata=minimalmetadata;streaming=true;charset=utf-8 + date: + - Fri, 13 Aug 2021 15:51:33 GMT + server: + - Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-ms-version: + - '2019-02-02' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Date: + - Fri, 13 Aug 2021 15:51:33 GMT + User-Agent: + - azsdk-python-data-tables/12.1.1 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Fri, 13 Aug 2021 15:51:33 GMT + x-ms-version: + - '2019-02-02' + method: DELETE + uri: https://fake_table_account.table.core.windows.net/Tables('table21ca30ef7') + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Fri, 13 Aug 2021 15:51:33 GMT + server: + - Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0 + x-content-type-options: + - nosniff + x-ms-version: + - '2019-02-02' + status: + code: 204 + message: No Content +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Date: + - Fri, 13 Aug 2021 15:51:33 GMT + User-Agent: + - azsdk-python-data-tables/12.1.1 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Fri, 13 Aug 2021 15:51:33 GMT + x-ms-version: + - '2019-02-02' + method: DELETE + uri: https://fake_table_account.table.core.windows.net/Tables('uttable1ca30ef7') + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Fri, 13 Aug 2021 15:51:33 GMT + server: + - Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0 + x-content-type-options: + - nosniff + x-ms-version: + - '2019-02-02' + status: + code: 204 + message: No Content +version: 1 diff --git a/sdk/tables/azure-data-tables/tests/recordings/test_table_batch_async.test_batch_with_mode.yaml b/sdk/tables/azure-data-tables/tests/recordings/test_table_batch_async.test_batch_with_mode.yaml new file mode 100644 index 000000000000..4af38339577d --- /dev/null +++ b/sdk/tables/azure-data-tables/tests/recordings/test_table_batch_async.test_batch_with_mode.yaml @@ -0,0 +1,228 @@ +interactions: +- request: + body: '{"TableName": "uttable80af1174"}' + headers: + Accept: + - application/json;odata=minimalmetadata + Content-Length: + - '32' + Content-Type: + - application/json;odata=nometadata + DataServiceVersion: + - '3.0' + Date: + - Fri, 13 Aug 2021 15:51:43 GMT + User-Agent: + - azsdk-python-data-tables/12.1.1 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Fri, 13 Aug 2021 15:51:43 GMT + x-ms-version: + - '2019-02-02' + method: POST + uri: https://fake_table_account.table.core.windows.net/Tables + response: + body: + string: '{"odata.metadata":"https://fake_table_account.table.core.windows.net/$metadata#Tables/@Element","TableName":"uttable80af1174"}' + headers: + cache-control: no-cache + content-type: application/json;odata=minimalmetadata;streaming=true;charset=utf-8 + date: Fri, 13 Aug 2021 15:51:42 GMT + location: https://fake_table_account.table.core.windows.net/Tables('uttable80af1174') + server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: chunked + x-content-type-options: nosniff + x-ms-version: '2019-02-02' + status: + code: 201 + message: Created + url: https://pytestremote.table.core.windows.net/Tables +- request: + body: '{"TableName": "table280af1174"}' + headers: + Accept: + - application/json;odata=minimalmetadata + Content-Length: + - '31' + Content-Type: + - application/json;odata=nometadata + DataServiceVersion: + - '3.0' + Date: + - Fri, 13 Aug 2021 15:51:43 GMT + User-Agent: + - azsdk-python-data-tables/12.1.1 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Fri, 13 Aug 2021 15:51:43 GMT + x-ms-version: + - '2019-02-02' + method: POST + uri: https://fake_table_account.table.core.windows.net/Tables + response: + body: + string: '{"odata.metadata":"https://fake_table_account.table.core.windows.net/$metadata#Tables/@Element","TableName":"table280af1174"}' + headers: + cache-control: no-cache + content-type: application/json;odata=minimalmetadata;streaming=true;charset=utf-8 + date: Fri, 13 Aug 2021 15:51:42 GMT + location: https://fake_table_account.table.core.windows.net/Tables('table280af1174') + server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: chunked + x-content-type-options: nosniff + x-ms-version: '2019-02-02' + status: + code: 201 + message: Created + url: https://pytestremote.table.core.windows.net/Tables +- request: + body: "--batch_331ceef8-6b4f-44f3-af14-1d89bd5141c3\r\nContent-Type: multipart/mixed; + boundary=changeset_5af4fc18-4d1a-41d2-8c20-f3402d9a61a4\r\n\r\n--changeset_5af4fc18-4d1a-41d2-8c20-f3402d9a61a4\r\nContent-Type: + application/http\r\nContent-Transfer-Encoding: binary\r\nContent-ID: 0\r\n\r\nPATCH + https://pytestremote.table.core.windows.net/uttable80af1174(PartitionKey='pk001',RowKey='rk001') + HTTP/1.1\r\nx-ms-version: 2019-02-02\r\nDataServiceVersion: 3.0\r\nContent-Type: + application/json\r\nAccept: application/json\r\nContent-Length: 231\r\nx-ms-date: + Fri, 13 Aug 2021 15:51:43 GMT\r\nDate: Fri, 13 Aug 2021 15:51:43 GMT\r\n\r\n{\"PartitionKey\": + \"pk001\", \"PartitionKey@odata.type\": \"Edm.String\", \"RowKey\": \"rk001\", + \"RowKey@odata.type\": \"Edm.String\", \"Value\": 1, \"day\": \"Monday\", \"day@odata.type\": + \"Edm.String\", \"float\": 1.001, \"float@odata.type\": \"Edm.Double\"}\r\n--changeset_5af4fc18-4d1a-41d2-8c20-f3402d9a61a4\r\nContent-Type: + application/http\r\nContent-Transfer-Encoding: binary\r\nContent-ID: 1\r\n\r\nPUT + https://pytestremote.table.core.windows.net/uttable80af1174(PartitionKey='pk001',RowKey='rk002') + HTTP/1.1\r\nx-ms-version: 2019-02-02\r\nDataServiceVersion: 3.0\r\nContent-Type: + application/json\r\nAccept: application/json\r\nContent-Length: 231\r\nx-ms-date: + Fri, 13 Aug 2021 15:51:43 GMT\r\nDate: Fri, 13 Aug 2021 15:51:43 GMT\r\n\r\n{\"PartitionKey\": + \"pk001\", \"PartitionKey@odata.type\": \"Edm.String\", \"RowKey\": \"rk002\", + \"RowKey@odata.type\": \"Edm.String\", \"Value\": 1, \"day\": \"Monday\", \"day@odata.type\": + \"Edm.String\", \"float\": 1.001, \"float@odata.type\": \"Edm.Double\"}\r\n--changeset_5af4fc18-4d1a-41d2-8c20-f3402d9a61a4--\r\n\r\n--batch_331ceef8-6b4f-44f3-af14-1d89bd5141c3--\r\n" + headers: + Accept: + - application/json + Content-Length: + - '1618' + Content-Type: + - multipart/mixed; boundary=batch_331ceef8-6b4f-44f3-af14-1d89bd5141c3 + DataServiceVersion: + - '3.0' + Date: + - Fri, 13 Aug 2021 15:51:43 GMT + MaxDataServiceVersion: + - 3.0;NetFx + User-Agent: + - azsdk-python-data-tables/12.1.1 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Fri, 13 Aug 2021 15:51:43 GMT + x-ms-version: + - '2019-02-02' + method: POST + uri: https://fake_table_account.table.core.windows.net/$batch + response: + body: + string: "--batchresponse_694a648a-8c87-4a80-a302-b426b5e31170\r\nContent-Type: + multipart/mixed; boundary=changesetresponse_a8badf0a-0c7d-4ff0-ac6b-0e6970a9541a\r\n\r\n--changesetresponse_a8badf0a-0c7d-4ff0-ac6b-0e6970a9541a\r\nContent-Type: + application/http\r\nContent-Transfer-Encoding: binary\r\n\r\nHTTP/1.1 204 + No Content\r\nX-Content-Type-Options: nosniff\r\nCache-Control: no-cache\r\nDataServiceVersion: + 1.0;\r\nETag: W/\"datetime'2021-08-13T15%3A51%3A43.6900767Z'\"\r\n\r\n\r\n--changesetresponse_a8badf0a-0c7d-4ff0-ac6b-0e6970a9541a\r\nContent-Type: + application/http\r\nContent-Transfer-Encoding: binary\r\n\r\nHTTP/1.1 204 + No Content\r\nX-Content-Type-Options: nosniff\r\nCache-Control: no-cache\r\nDataServiceVersion: + 1.0;\r\nETag: W/\"datetime'2021-08-13T15%3A51%3A43.6900767Z'\"\r\n\r\n\r\n--changesetresponse_a8badf0a-0c7d-4ff0-ac6b-0e6970a9541a--\r\n--batchresponse_694a648a-8c87-4a80-a302-b426b5e31170--\r\n" + headers: + cache-control: no-cache + content-type: multipart/mixed; boundary=batchresponse_694a648a-8c87-4a80-a302-b426b5e31170 + date: Fri, 13 Aug 2021 15:51:43 GMT + server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: chunked + x-content-type-options: nosniff + x-ms-version: '2019-02-02' + status: + code: 202 + message: Accepted + url: https://pytestremote.table.core.windows.net/$batch +- request: + body: null + headers: + Accept: + - application/json;odata=minimalmetadata + DataServiceVersion: + - '3.0' + Date: + - Fri, 13 Aug 2021 15:51:43 GMT + User-Agent: + - azsdk-python-data-tables/12.1.1 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Fri, 13 Aug 2021 15:51:43 GMT + x-ms-version: + - '2019-02-02' + method: GET + uri: https://fake_table_account.table.core.windows.net/Tables + response: + body: + string: '{"odata.metadata":"https://fake_table_account.table.core.windows.net/$metadata#Tables","value":[{"TableName":"table280af1174"},{"TableName":"uttable80af1174"}]}' + headers: + cache-control: no-cache + content-type: application/json;odata=minimalmetadata;streaming=true;charset=utf-8 + date: Fri, 13 Aug 2021 15:51:43 GMT + server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: chunked + x-content-type-options: nosniff + x-ms-version: '2019-02-02' + status: + code: 200 + message: OK + url: https://pytestremote.table.core.windows.net/Tables +- request: + body: null + headers: + Accept: + - application/json + Date: + - Fri, 13 Aug 2021 15:51:43 GMT + User-Agent: + - azsdk-python-data-tables/12.1.1 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Fri, 13 Aug 2021 15:51:43 GMT + x-ms-version: + - '2019-02-02' + method: DELETE + uri: https://fake_table_account.table.core.windows.net/Tables('table280af1174') + response: + body: + string: '' + headers: + cache-control: no-cache + content-length: '0' + date: Fri, 13 Aug 2021 15:51:43 GMT + server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0 + x-content-type-options: nosniff + x-ms-version: '2019-02-02' + status: + code: 204 + message: No Content + url: https://pytestremote.table.core.windows.net/Tables('table280af1174') +- request: + body: null + headers: + Accept: + - application/json + Date: + - Fri, 13 Aug 2021 15:51:43 GMT + User-Agent: + - azsdk-python-data-tables/12.1.1 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Fri, 13 Aug 2021 15:51:43 GMT + x-ms-version: + - '2019-02-02' + method: DELETE + uri: https://fake_table_account.table.core.windows.net/Tables('uttable80af1174') + response: + body: + string: '' + headers: + cache-control: no-cache + content-length: '0' + date: Fri, 13 Aug 2021 15:51:43 GMT + server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0 + x-content-type-options: nosniff + x-ms-version: '2019-02-02' + status: + code: 204 + message: No Content + url: https://pytestremote.table.core.windows.net/Tables('uttable80af1174') +version: 1 diff --git a/sdk/tables/azure-data-tables/tests/test_table_batch.py b/sdk/tables/azure-data-tables/tests/test_table_batch.py index fca3e2ae0489..7d4a0f9806c4 100644 --- a/sdk/tables/azure-data-tables/tests/test_table_batch.py +++ b/sdk/tables/azure-data-tables/tests/test_table_batch.py @@ -768,3 +768,47 @@ def test_batch_request_too_large(self, tables_storage_account_name, tables_prima finally: self._tear_down() + + @pytest.mark.skipif(sys.version_info < (3, 0), reason="requires Python3") + @tables_decorator + def test_batch_with_mode(self, tables_storage_account_name, tables_primary_storage_account_key): + # Arrange + self._set_up(tables_storage_account_name, tables_primary_storage_account_key) + try: + table2_name = self._get_table_reference('table2') + table2 = self.ts.get_table_client(table2_name) + table2.create_table() + + # Act + entity1 = { + "PartitionKey": "pk001", + "RowKey": "rk001", + "Value": 1, + "day": "Monday", + "float": 1.001 + } + entity2 = { + "PartitionKey": "pk001", + "RowKey": "rk002", + "Value": 1, + "day": "Monday", + "float": 1.001 + } + + + batch = [ + ("upsert", entity1, {"mode": "merge"}), + ("upsert", entity2, {"mode": "replace"}) + ] + + resp = self.table.submit_transaction(batch) + assert len(resp) == 2 + + with pytest.raises(ValueError): + batch = [ + ("upsert", entity1, {"mode": "foo"}), + ("upsert", entity2, {"mode": "bar"}) + ] + self.table.submit_transaction(batch) + finally: + self._tear_down() diff --git a/sdk/tables/azure-data-tables/tests/test_table_batch_async.py b/sdk/tables/azure-data-tables/tests/test_table_batch_async.py index b965d26d487c..4cfc025c55fa 100644 --- a/sdk/tables/azure-data-tables/tests/test_table_batch_async.py +++ b/sdk/tables/azure-data-tables/tests/test_table_batch_async.py @@ -648,3 +648,47 @@ async def test_delete_batch_with_bad_kwarg(self, tables_storage_account_name, ta finally: await self._tear_down() + @pytest.mark.skipif(sys.version_info < (3, 0), reason="requires Python3") + @tables_decorator_async + async def test_batch_with_mode(self, tables_storage_account_name, tables_primary_storage_account_key): + # Arrange + await self._set_up(tables_storage_account_name, tables_primary_storage_account_key) + try: + table2_name = self._get_table_reference('table2') + table2 = self.ts.get_table_client(table2_name) + await table2.create_table() + + # Act + entity1 = { + "PartitionKey": "pk001", + "RowKey": "rk001", + "Value": 1, + "day": "Monday", + "float": 1.001 + } + entity2 = { + "PartitionKey": "pk001", + "RowKey": "rk002", + "Value": 1, + "day": "Monday", + "float": 1.001 + } + + + batch = [ + ("upsert", entity1, {"mode": "merge"}), + ("upsert", entity2, {"mode": "replace"}) + ] + + resp = await self.table.submit_transaction(batch) + assert len(resp) == 2 + + with pytest.raises(ValueError): + batch = [ + ("upsert", entity1, {"mode": "foo"}), + ("upsert", entity2, {"mode": "bar"}) + ] + await self.table.submit_transaction(batch) + + finally: + await self._tear_down() From e1ecaf00fbf49b679713fe10e044a0aeb16beb3d Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Fri, 13 Aug 2021 16:03:08 -0700 Subject: [PATCH 067/104] Fix resource clean-up script (#20273) - Fix rg.Name to rg.ResourceGroupName - Add more verbose logging for better debugging - Handle deleted resource groups when gathering puragable resource - Remove coerce now that we are collecting in functions Co-authored-by: Wes Haggard --- .../TestResources/Remove-TestResources.ps1 | 2 +- .../scripts/Helpers/Resource-Helpers.ps1 | 195 +++++++++++------- 2 files changed, 116 insertions(+), 81 deletions(-) diff --git a/eng/common/TestResources/Remove-TestResources.ps1 b/eng/common/TestResources/Remove-TestResources.ps1 index 2b6c7c5c4871..3e697d789c60 100644 --- a/eng/common/TestResources/Remove-TestResources.ps1 +++ b/eng/common/TestResources/Remove-TestResources.ps1 @@ -217,7 +217,7 @@ $verifyDeleteScript = { } # Get any resources that can be purged after the resource group is deleted coerced into a collection even if empty. -$purgeableResources = @(Get-PurgeableGroupResources $ResourceGroupName) +$purgeableResources = Get-PurgeableGroupResources $ResourceGroupName Log "Deleting resource group '$ResourceGroupName'" if ($Force -and !$purgeableResources) { diff --git a/eng/common/scripts/Helpers/Resource-Helpers.ps1 b/eng/common/scripts/Helpers/Resource-Helpers.ps1 index e4aca5544e05..188639d46d4a 100644 --- a/eng/common/scripts/Helpers/Resource-Helpers.ps1 +++ b/eng/common/scripts/Helpers/Resource-Helpers.ps1 @@ -1,101 +1,136 @@ # Add 'AzsdkResourceType' member to outputs since actual output types have changed over the years. function Get-PurgeableGroupResources { - param ( - [Parameter(Mandatory=$true, Position=0)] - [string] $ResourceGroupName - ) - - # Get any Key Vaults that will be deleted so they can be purged later if soft delete is enabled. - Get-AzKeyVault @PSBoundParameters | ForEach-Object { - # Enumerating vaults from a resource group does not return all properties we required. - Get-AzKeyVault -VaultName $_.VaultName | Where-Object { $_.EnableSoftDelete } ` - | Add-Member -MemberType NoteProperty -Name AzsdkResourceType -Value 'Key Vault' -PassThru - } + param ( + [Parameter(Mandatory=$true, Position=0)] + [string] $ResourceGroupName + ) + $purgeableResources = @() - # Get any Managed HSMs in the resource group, for which soft delete cannot be disabled. - Get-AzKeyVaultManagedHsm @PSBoundParameters ` - | Add-Member -MemberType NoteProperty -Name AzsdkResourceType -Value 'Managed HSM' -PassThru -} + Write-Verbose "Retrieving deleted Key Vaults from resource group $ResourceGroupName" + + # Get any Key Vaults that will be deleted so they can be purged later if soft delete is enabled. + $deletedKeyVaults = Get-AzKeyVault -ResourceGroupName $ResourceGroupName -ErrorAction Ignore | ForEach-Object { + # Enumerating vaults from a resource group does not return all properties we required. + Get-AzKeyVault -VaultName $_.VaultName -ErrorAction Ignore | Where-Object { $_.EnableSoftDelete } ` + | Add-Member -MemberType NoteProperty -Name AzsdkResourceType -Value 'Key Vault' -PassThru + } + + if ($deletedKeyVaults) { + Write-Verbose "Found $($deletedKeyVaults.Count) deleted Key Vaults to potentially purge." + $purgeableResources += $deletedKeyVaults + } + + Write-Verbose "Retrieving deleted Managed HSMs from resource group $ResourceGroupName" + + # Get any Managed HSMs in the resource group, for which soft delete cannot be disabled. + $deletedHsms = Get-AzKeyVaultManagedHsm -ResourceGroupName $ResourceGroupName -ErrorAction Ignore ` + | Add-Member -MemberType NoteProperty -Name AzsdkResourceType -Value 'Managed HSM' -PassThru + + if ($deletedHsms) { + Write-Verbose "Found $($deletedHsms.Count) deleted Managed HSMs to potentially purge." + $purgeableResources += $deletedHsms + } + return $purgeableResources +} function Get-PurgeableResources { - $subscriptionId = (Get-AzContext).Subscription.Id - - # Get deleted Key Vaults for the current subscription. - Get-AzKeyVault -InRemovedState ` - | Add-Member -MemberType NoteProperty -Name AzsdkResourceType -Value 'Key Vault' -PassThru - - # Get deleted Managed HSMs for the current subscription. - $response = Invoke-AzRestMethod -Method GET -Path "/subscriptions/$subscriptionId/providers/Microsoft.KeyVault/deletedManagedHSMs?api-version=2021-04-01-preview" -ErrorAction Ignore - if ($response.StatusCode -ge 200 -and $response.StatusCode -lt 300 -and $response.Content) { - $content = $response.Content | ConvertFrom-Json - foreach ($r in $content.value) { - [pscustomobject] @{ - AzsdkResourceType = 'Managed HSM' - Id = $r.id - Name = $r.name - Location = $r.properties.location - DeletionDate = $r.properties.deletionDate -as [DateTime] - ScheduledPurgeDate = $r.properties.scheduledPurgeDate -as [DateTime] - EnablePurgeProtection = $r.properties.purgeProtectionEnabled - } - } + $purgeableResources = @() + $subscriptionId = (Get-AzContext).Subscription.Id + + Write-Verbose "Retrieving deleted Key Vaults from subscription $subscriptionId" + + # Get deleted Key Vaults for the current subscription. + $deletedKeyVaults = Get-AzKeyVault -InRemovedState ` + | Add-Member -MemberType NoteProperty -Name AzsdkResourceType -Value 'Key Vault' -PassThru + + if ($deletedKeyVaults) { + Write-Verbose "Found $($deletedKeyVaults.Count) deleted Key Vaults to potentially purge." + $purgeableResources += $deletedKeyVaults + } + + Write-Verbose "Retrieving deleted Managed HSMs from subscription $subscriptionId" + + # Get deleted Managed HSMs for the current subscription. + $response = Invoke-AzRestMethod -Method GET -Path "/subscriptions/$subscriptionId/providers/Microsoft.KeyVault/deletedManagedHSMs?api-version=2021-04-01-preview" -ErrorAction Ignore + if ($response.StatusCode -ge 200 -and $response.StatusCode -lt 300 -and $response.Content) { + $content = $response.Content | ConvertFrom-Json + + $deletedHsms = @() + foreach ($r in $content.value) { + $deletedHsms += [pscustomobject] @{ + AzsdkResourceType = 'Managed HSM' + Id = $r.id + Name = $r.name + Location = $r.properties.location + DeletionDate = $r.properties.deletionDate -as [DateTime] + ScheduledPurgeDate = $r.properties.scheduledPurgeDate -as [DateTime] + EnablePurgeProtection = $r.properties.purgeProtectionEnabled + } + } + + if ($deletedHsms) { + Write-Verbose "Found $($deletedHsms.Count) deleted Managed HSMs to potentially purge." + $purgeableResources += $deletedHsms } + } + + return $purgeableResources } # A filter differs from a function by teating body as -process {} instead of -end {}. # This allows you to pipe a collection and process each item in the collection. filter Remove-PurgeableResources { - param ( - [Parameter(Position=0, ValueFromPipeline=$true)] - [object[]] $Resource - ) + param ( + [Parameter(Position=0, ValueFromPipeline=$true)] + [object[]] $Resource + ) - if (!$Resource) { - return - } + if (!$Resource) { + return + } + + $subscriptionId = (Get-AzContext).Subscription.Id - $subscriptionId = (Get-AzContext).Subscription.Id - - foreach ($r in $Resource) { - switch ($r.AzsdkResourceType) { - 'Key Vault' { - Log "Attempting to purge $($r.AzsdkResourceType) '$($r.VaultName)'" - if ($r.EnablePurgeProtection) { - # We will try anyway but will ignore errors - Write-Warning "Key Vault '$($r.VaultName)' has purge protection enabled and may not be purged for $($r.SoftDeleteRetentionInDays) days" - } - - Remove-AzKeyVault -VaultName $r.VaultName -Location $r.Location -InRemovedState -Force -ErrorAction Continue - } - - 'Managed HSM' { - Log "Attempting to purge $($r.AzsdkResourceType) '$($r.Name)'" - if ($r.EnablePurgeProtection) { - # We will try anyway but will ignore errors - Write-Warning "Managed HSM '$($r.Name)' has purge protection enabled and may not be purged for $($r.SoftDeleteRetentionInDays) days" - } - - $response = Invoke-AzRestMethod -Method POST -Path "/subscriptions/$subscriptionId/providers/Microsoft.KeyVault/locations/$($r.Location)/deletedManagedHSMs/$($r.Name)/purge?api-version=2021-04-01-preview" -ErrorAction Ignore - if ($response.StatusCode -ge 200 -and $response.StatusCode -lt 300) { - Write-Warning "Successfully requested that Managed HSM '$($r.Name)' be purged, but may take a few minutes before it is actually purged." - } elseif ($response.Content) { - $content = $response.Content | ConvertFrom-Json - if ($content.error) { - $err = $content.error - Write-Warning "Failed to deleted Managed HSM '$($r.Name)': ($($err.code)) $($err.message)" - } - } - } - - default { - Write-Warning "Cannot purge resource type $($r.AzsdkResourceType). Add support to https://github.com/Azure/azure-sdk-tools/blob/main/eng/common/scripts/Helpers/Resource-Helpers.ps1." - } + foreach ($r in $Resource) { + switch ($r.AzsdkResourceType) { + 'Key Vault' { + Log "Attempting to purge $($r.AzsdkResourceType) '$($r.VaultName)'" + if ($r.EnablePurgeProtection) { + # We will try anyway but will ignore errors + Write-Warning "Key Vault '$($r.VaultName)' has purge protection enabled and may not be purged for $($r.SoftDeleteRetentionInDays) days" } + + Remove-AzKeyVault -VaultName $r.VaultName -Location $r.Location -InRemovedState -Force -ErrorAction Continue + } + + 'Managed HSM' { + Log "Attempting to purge $($r.AzsdkResourceType) '$($r.Name)'" + if ($r.EnablePurgeProtection) { + # We will try anyway but will ignore errors + Write-Warning "Managed HSM '$($r.Name)' has purge protection enabled and may not be purged for $($r.SoftDeleteRetentionInDays) days" + } + + $response = Invoke-AzRestMethod -Method POST -Path "/subscriptions/$subscriptionId/providers/Microsoft.KeyVault/locations/$($r.Location)/deletedManagedHSMs/$($r.Name)/purge?api-version=2021-04-01-preview" -ErrorAction Ignore + if ($response.StatusCode -ge 200 -and $response.StatusCode -lt 300) { + Write-Warning "Successfully requested that Managed HSM '$($r.Name)' be purged, but may take a few minutes before it is actually purged." + } elseif ($response.Content) { + $content = $response.Content | ConvertFrom-Json + if ($content.error) { + $err = $content.error + Write-Warning "Failed to deleted Managed HSM '$($r.Name)': ($($err.code)) $($err.message)" + } + } + } + + default { + Write-Warning "Cannot purge resource type $($r.AzsdkResourceType). Add support to https://github.com/Azure/azure-sdk-tools/blob/main/eng/common/scripts/Helpers/Resource-Helpers.ps1." + } } + } } # The Log function can be overridden by the sourcing script. function Log($Message) { - Write-Host ('{0} - {1}' -f [DateTime]::Now.ToLongTimeString(), $Message) + Write-Host ('{0} - {1}' -f [DateTime]::Now.ToLongTimeString(), $Message) } From c2524442d71320a9e020cf6f8d7f758be86f3fea Mon Sep 17 00:00:00 2001 From: Jg1255 <68622473+Jg1255@users.noreply.github.com> Date: Fri, 13 Aug 2021 21:37:41 -0400 Subject: [PATCH 068/104] add implementation for checkpointstoretable (#19905) * add implementation add the test cases add the test file fix test file * fix pylint * fix pylint * fix pylint * fix pylint * fix pylint * fix pylint * fix pylint * fix pylint * fix pylint * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * new update * Update shared_requirements.txt Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * environment * redo * redo * redo * changed variable name * changed variable name * Update sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py Co-authored-by: Sean Kane <68240067+seankane-msft@users.noreply.github.com> * update on test file * update on test file * update on test file * update based on feedack * new update * update * update * update * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: chradek <51000525+chradek@users.noreply.github.com> * new update * new * new * new * new * new * update on spacing * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: chradek <51000525+chradek@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: chradek <51000525+chradek@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: chradek <51000525+chradek@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: chradek <51000525+chradek@users.noreply.github.com> * new update * update * update on test file * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * update * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * update * update * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * update * update * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * update * Update sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * update * Update sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * update * update * update * update * update * update * Revert "update" This reverts commit d2dbb2a49d7a4be531c3551ca7ea3e78822d2578. * update * update * update * newupdate * update * update * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * update * update * update * update * update * update * update * update * update * update * update * update * update * update * update * update * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/samples/receive_events_using_checkpoint_store.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/setup.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * update * update * update * update * update * update * p * update * update * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * Update sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> * update * update * update Co-authored-by: Josue Garcia Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> Co-authored-by: Sean Kane <68240067+seankane-msft@users.noreply.github.com> Co-authored-by: chradek <51000525+chradek@users.noreply.github.com> --- .../checkpointstoretable/_tablestoragecs.py | 349 +++++- .../checkpointstoretable/_vendor/__init__.py | 1 + .../_vendor/data/__init__.py | 1 + .../_vendor/data/tables/__init__.py | 52 + .../_vendor/data/tables/_authentication.py | 135 ++ .../_vendor/data/tables/_base_client.py | 417 +++++++ .../_vendor/data/tables/_common_conversion.py | 103 ++ .../_vendor/data/tables/_constants.py | 19 + .../_vendor/data/tables/_deserialize.py | 276 +++++ .../_vendor/data/tables/_entity.py | 73 ++ .../_vendor/data/tables/_error.py | 251 ++++ .../data/tables/_generated/__init__.py | 19 + .../data/tables/_generated/_azure_table.py | 66 + .../data/tables/_generated/_configuration.py | 59 + .../data/tables/_generated/_version.py | 9 + .../data/tables/_generated/aio/__init__.py | 10 + .../tables/_generated/aio/_azure_table.py | 58 + .../tables/_generated/aio/_configuration.py | 53 + .../_generated/aio/operations/__init__.py | 15 + .../aio/operations/_service_operations.py | 258 ++++ .../aio/operations/_table_operations.py | 1067 ++++++++++++++++ .../data/tables/_generated/models/__init__.py | 70 ++ .../_generated/models/_azure_table_enums.py | 46 + .../data/tables/_generated/models/_models.py | 540 ++++++++ .../tables/_generated/models/_models_py3.py | 608 +++++++++ .../tables/_generated/operations/__init__.py | 15 + .../operations/_service_operations.py | 265 ++++ .../operations/_table_operations.py | 1082 +++++++++++++++++ .../_vendor/data/tables/_generated/py.typed | 1 + .../_vendor/data/tables/_models.py | 696 +++++++++++ .../_vendor/data/tables/_policies.py | 241 ++++ .../_vendor/data/tables/_sdk_moniker.py | 11 + .../_vendor/data/tables/_serialize.py | 255 ++++ .../data/tables/_shared_access_signature.py | 283 +++++ .../_vendor/data/tables/_table_batch.py | 686 +++++++++++ .../_vendor/data/tables/_table_client.py | 731 +++++++++++ .../data/tables/_table_service_client.py | 337 +++++ .../tables/_table_shared_access_signature.py | 319 +++++ .../_vendor/data/tables/_version.py | 7 + .../_vendor/data/tables/aio/__init__.py | 13 + .../data/tables/aio/_base_client_async.py | 181 +++ .../_vendor/data/tables/aio/_models.py | 116 ++ .../data/tables/aio/_policies_async.py | 155 +++ .../data/tables/aio/_table_batch_async.py | 649 ++++++++++ .../data/tables/aio/_table_client_async.py | 709 +++++++++++ .../tables/aio/_table_service_client_async.py | 335 +++++ .../_vendor/data/tables/py.typed | 1 + .../dev_requirements.txt | 2 +- .../receive_events_using_checkpoint_store.py | 33 + .../setup.py | 38 +- .../test_storage_table_partition_manager.py | 212 +++- .../azure-mgmt-eventhub/dev_requirements.txt | 4 +- sdk/eventhub/tests.yml | 1 + shared_requirements.txt | 1 + 54 files changed, 11900 insertions(+), 34 deletions(-) create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/__init__.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/__init__.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/__init__.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_authentication.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_base_client.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_common_conversion.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_constants.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_deserialize.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_entity.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_error.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/__init__.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/_azure_table.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/_configuration.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/_version.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/__init__.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/_azure_table.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/_configuration.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/operations/__init__.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/operations/_service_operations.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/operations/_table_operations.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/models/__init__.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/models/_azure_table_enums.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/models/_models.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/models/_models_py3.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/operations/__init__.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/operations/_service_operations.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/operations/_table_operations.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/py.typed create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_models.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_policies.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_sdk_moniker.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_serialize.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_shared_access_signature.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_table_batch.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_table_client.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_table_service_client.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_table_shared_access_signature.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_version.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/__init__.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_base_client_async.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_models.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_policies_async.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_table_batch_async.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_table_client_async.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_table_service_client_async.py create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/py.typed create mode 100644 sdk/eventhub/azure-eventhub-checkpointstoretable/samples/receive_events_using_checkpoint_store.py diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py index 08c2b8158c6b..d88cb4b417ca 100644 --- a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_tablestoragecs.py @@ -2,10 +2,49 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- +from typing import Dict, Optional, Any, Iterable, Union +import datetime +import time +import logging +import calendar +import dateutil.parser +from azure.core import MatchConditions +from azure.eventhub import CheckpointStore # type: ignore # pylint: disable=no-name-in-module +from azure.eventhub.exceptions import OwnershipLostError # type: ignore +from azure.core.exceptions import ( + ResourceModifiedError, + ResourceExistsError, + ResourceNotFoundError, +) +from ._vendor.data.tables import TableClient, UpdateMode +from ._vendor.data.tables._base_client import parse_connection_str -class TableCheckpointStore: +logger = logging.getLogger(__name__) + + +def _utc_to_local(utc_dt): + timestamp = calendar.timegm(utc_dt.timetuple()) + local_dt = datetime.datetime.fromtimestamp(timestamp) + return local_dt.replace(microsecond=utc_dt.microsecond) + + +def _to_timestamp(date): + timestamp = None + if not date: + return timestamp + try: + timestamp = date.timestamp() + except AttributeError: # python2.7 compatible + timestamp = time.mktime(_utc_to_local(date).timetuple()) + timestamp += date.microsecond / 1e6 + return timestamp + + +class TableCheckpointStore(CheckpointStore): """A CheckpointStore that uses Azure Table Storage to store the partition ownership and checkpoint data. + This class implements methods list_ownership, claim_ownership, update_checkpoint and list_checkpoints. + :param str table_account_url: The URI to the storage account. :param table_name: @@ -17,22 +56,306 @@ class TableCheckpointStore: shared access key, or an instance of a TokenCredentials class from azure.identity. If the URL already has a SAS token, specifying an explicit credential will take priority. :keyword str api_version: - The Storage API version to use for requests. Default value is '2019-07-07'. - :keyword str secondary_hostname: - The hostname of the secondary endpoint. + The Storage API version to use for requests. Default value is '2018-03-28'. """ - def __init__(self, **kwargs): - pass + def __init__(self, table_account_url, table_name, credential=None, **kwargs): + # type: (str, str, Optional[Any], Any) -> None + self._table_client = kwargs.pop("table_client", None) + if not self._table_client: + api_version = kwargs.pop("api_version", None) + if api_version: + headers = kwargs.get("headers") + if headers: + headers["x-ms-version"] = api_version + else: + kwargs["headers"] = {"x-ms-version": api_version} + self._table_client = TableClient( + table_account_url, table_name, credential=credential, **kwargs + ) + + @classmethod + def from_connection_string(cls, conn_str, table_name, credential=None, **kwargs): + # type: (str, str, Optional[Any], Any) -> TableCheckpointStore + """Create TableCheckpointStore from a storage connection string. + + :param str conn_str: + A connection string to an Azure Storage account. + :param table_name: + The table name. + :type table_name: str + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token, or the connection string already has shared + access key values. The value can be a SAS token string, an account shared access + key, or an instance of a TokenCredentials class from azure.identity. + Credentials provided here will take precedence over those in the connection string. + :keyword str api_version: + The Storage API version to use for requests. Default value is '2018-03-28'. + :returns: A table checkpoint store. + :rtype: ~azure.eventhub.extensions.checkpointstoretable.TableCheckpointStore + """ + endpoint, credential = parse_connection_str( + conn_str=conn_str, credential=None, keyword_args=kwargs + ) + return cls(endpoint, table_name=table_name, credential=credential, **kwargs) + + def __enter__(self): + self._table_client.__enter__() + return self - def list_ownership(self, namespace, eventhub, consumergroup, **kwargs): - pass + def __exit__(self, *args): + self._table_client.__exit__(*args) - def list_checkpoints(self, namespace, eventhub, consumergroup, **kwargs): - pass + @classmethod + def _create_ownership_entity(cls, ownership): + """ + Create a dictionary with the `ownership` attributes. + """ + ownership_entity = { + "PartitionKey": "{} {} {} Ownership".format( + ownership["fully_qualified_namespace"], + ownership["eventhub_name"], + ownership["consumer_group"], + ), + "RowKey": ownership["partition_id"], + "ownerid": ownership["owner_id"], + } + return ownership_entity + + @classmethod + def _create_checkpoint_entity(cls, checkpoint): + """ + Create a dictionary with `checkpoint` attributes. + """ + checkpoint_entity = { + "PartitionKey": "{} {} {} Checkpoint".format( + checkpoint["fully_qualified_namespace"], + checkpoint["eventhub_name"], + checkpoint["consumer_group"], + ), + "RowKey": checkpoint["partition_id"], + "offset": checkpoint["offset"], + "sequencenumber": checkpoint["sequence_number"], + } + return checkpoint_entity + + def _update_ownership(self, ownership, **kwargs): + """_update_ownership mutates the passed in ownership.""" + try: + ownership_entity = TableCheckpointStore._create_ownership_entity(ownership) + metadata = self._table_client.update_entity( + mode=UpdateMode.REPLACE, + entity=ownership_entity, + etag=ownership["etag"], + match_condition=MatchConditions.IfNotModified, + **kwargs + ) + ownership["etag"] = metadata["etag"] + updated_entity = self._table_client.get_entity( + partition_key=ownership_entity["PartitionKey"], + row_key=ownership_entity["RowKey"], + **kwargs + ) + ownership["last_modified_time"] = _to_timestamp( + updated_entity.metadata.get("timestamp") + ) + except (ResourceNotFoundError, ValueError): + metadata = self._table_client.create_entity( + entity=ownership_entity, headers={"Prefer": "return-content"}, **kwargs + ) + ownership["etag"] = metadata["etag"] + ownership["last_modified_time"] = _to_timestamp( + dateutil.parser.isoparse(metadata["content"]["Timestamp"]) + ) + + def _claim_one_partition(self, ownership, **kwargs): + new_ownership = ownership.copy() + try: + self._update_ownership(new_ownership, **kwargs) + return new_ownership + except (ResourceModifiedError, ResourceExistsError): + logger.info( + "EventProcessor instance %r of namespace %r eventhub %r consumer group %r " + "lost ownership to partition %r", + new_ownership["owner_id"], + new_ownership["fully_qualified_namespace"], + new_ownership["eventhub_name"], + new_ownership["consumer_group"], + new_ownership["partition_id"], + ) + raise OwnershipLostError() + except Exception as error: # pylint:disable=broad-except + logger.warning( + "An exception occurred when EventProcessor instance %r claim_ownership for " + "namespace %r eventhub %r consumer group %r partition %r. " + "The ownership is now lost. Exception " + "is %r", + new_ownership["owner_id"], + new_ownership["fully_qualified_namespace"], + new_ownership["eventhub_name"], + new_ownership["consumer_group"], + new_ownership["partition_id"], + error, + ) + return new_ownership # Keep the ownership if an unexpected error happens + + def list_ownership( + self, fully_qualified_namespace, eventhub_name, consumer_group, **kwargs + ): + # type: (str, str, str, Any) -> Iterable[Dict[str, Any]] + """Retrieves a complete ownership list from the storage table. + + :param str fully_qualified_namespace: The fully qualified namespace that the Event Hub belongs to. + The format is like ".servicebus.windows.net". + :param str eventhub_name: The name of the specific Event Hub the partition ownerships are associated with, + relative to the Event Hubs namespace that contains it. + :param str consumer_group: The name of the consumer group the ownerships are associated with. + :rtype: Iterable[Dict[str, Any]], Iterable of dictionaries containing partition ownership information: + - `fully_qualified_namespace` (str): The fully qualified namespace that the Event Hub belongs to. + The format is like ".servicebus.windows.net". + - `eventhub_name` (str): The name of the specific Event Hub the checkpoint is associated with, + relative to the Event Hubs namespace that contains it. + - `consumer_group` (str): The name of the consumer group the ownership are associated with. + - `partition_id` (str): The partition ID which the checkpoint is created for. + - `owner_id` (str): A UUID representing the current owner of this partition. + - `last_modified_time` (float): The last time this ownership was claimed. + - `etag` (str): The Etag value for the last time this ownership was modified. Optional depending + on storage implementation. + """ + try: + partition_key = "{} {} {} Ownership".format( + fully_qualified_namespace, eventhub_name, consumer_group + ) + partition_key_filter = "PartitionKey eq '{}'".format(partition_key) + entities = self._table_client.query_entities(partition_key_filter, **kwargs) + result = [] + for entity in entities: + ownership = { + "fully_qualified_namespace": fully_qualified_namespace, + "eventhub_name": eventhub_name, + "consumer_group": consumer_group, + "partition_id": entity[u"RowKey"], + "owner_id": entity[u"ownerid"], + "last_modified_time": _to_timestamp( + entity.metadata.get("timestamp") + ), + "etag": entity.metadata.get("etag"), + } + result.append(ownership) + return result + except Exception as error: + logger.warning( + "An exception occurred during list_ownership for " + "namespace %r eventhub %r consumer group %r. " + "Exception is %r", + fully_qualified_namespace, + eventhub_name, + consumer_group, + error, + ) + raise + + def list_checkpoints( + self, fully_qualified_namespace, eventhub_name, consumer_group, **kwargs + ): + # type: (str, str, str, Any) -> Iterable[Dict[str, Any]] + """List the updated checkpoints from the storage table. + + :param str fully_qualified_namespace: The fully qualified namespace that the Event Hub belongs to. + The format is like ".servicebus.windows.net". + :param str eventhub_name: The name of the specific Event Hub the checkpoints are associated with, relative to + the Event Hubs namespace that contains it. + :param str consumer_group: The name of the consumer group the checkpoints are associated with. + :rtype: Iterable[Dict[str,Any]], Iterable of dictionaries containing partition checkpoint information: + - `fully_qualified_namespace` (str): The fully qualified namespace that the Event Hub belongs to. + The format is like ".servicebus.windows.net". + - `eventhub_name` (str): The name of the specific Event Hub the checkpoints are associated with, + relative to the Event Hubs namespace that contains it. + - `consumer_group` (str): The name of the consumer group the checkpoints are associated with. + - `partition_id` (str): The partition ID which the checkpoint is created for. + - `sequence_number` (int): The sequence number of the :class:`EventData`. + - `offset` (str): The offset of the :class:`EventData`. + """ + partition_key = "{} {} {} Checkpoint".format( + fully_qualified_namespace, eventhub_name, consumer_group + ) + partition_key_filter = "PartitionKey eq '{}'".format(partition_key) + entities = self._table_client.query_entities(partition_key_filter, **kwargs) + checkpoints_list = [] + for entity in entities: + checkpoint = { + "fully_qualified_namespace": fully_qualified_namespace, + "eventhub_name": eventhub_name, + "consumer_group": consumer_group, + "partition_id": entity[u"RowKey"], + "sequence_number": entity[u"sequencenumber"], + "offset": str(entity[u"offset"]), + } + checkpoints_list.append(checkpoint) + return checkpoints_list def update_checkpoint(self, checkpoint, **kwargs): - pass + # type: (Dict[str, Optional[Union[str, int]]], Any) -> None + """Updates the checkpoint using the given information for the offset, associated partition and + consumer group in the storage table. + + Note: If you plan to implement a custom checkpoint store with the intention of running between + cross-language EventHubs SDKs, it is recommended to persist the offset value as an integer. + :param Dict[str,Any] checkpoint: A dict containing checkpoint information: + - `fully_qualified_namespace` (str): The fully qualified namespace that the Event Hub belongs to. + The format is like ".servicebus.windows.net". + - `eventhub_name` (str): The name of the specific Event Hub the checkpoint is associated with, + relative to the Event Hubs namespace that contains it. + - `consumer_group` (str): The name of the consumer group the checkpoint is associated with. + - `partition_id` (str): The partition ID which the checkpoint is created for. + - `sequence_number` (int): The sequence number of the :class:`EventData` + the new checkpoint will be associated with. + - `offset` (str): The offset of the :class:`EventData` + the new checkpoint will be associated with. + :rtype: None + """ + checkpoint_entity = TableCheckpointStore._create_checkpoint_entity( + checkpoint + ) + entity_name = "{}/{}/{}/checkpoint/{}".format( + checkpoint["fully_qualified_namespace"], + checkpoint["eventhub_name"], + checkpoint["consumer_group"], + checkpoint["partition_id"], + ) + try: + self._table_client.update_entity( + mode=UpdateMode.REPLACE, entity=checkpoint_entity, **kwargs + ) + except ResourceNotFoundError: + logger.info( + "Create checkpoint entity %r because it hasn't existed in the table yet.", + entity_name, + ) + self._table_client.create_entity(entity=checkpoint_entity, **kwargs) + + def claim_ownership(self, ownership_list, **kwargs): + # type: (Iterable[Dict[str, Any]], Any) -> Iterable[Dict[str, Any]] + """Tries to claim ownership for a list of specified partitions. + + :param Iterable[Dict[str,Any]] ownership_list: Iterable of dictionaries containing all the ownerships to claim. + :rtype: Iterable[Dict[str,Any]], Iterable of dictionaries containing partition ownership information: + - `fully_qualified_namespace` (str): The fully qualified namespace that the Event Hub belongs to. + The format is like ".servicebus.windows.net". + - `eventhub_name` (str): The name of the specific Event Hub the checkpoint is associated with, + relative to the Event Hubs namespace that contains it. + - `consumer_group` (str): The name of the consumer group the ownership are associated with. + - `partition_id` (str): The partition ID which the checkpoint is created for. + - `owner_id` (str): A UUID representing the owner attempting to claim this partition. + - `last_modified_time` (float): The last time this ownership was claimed. + - `etag` (str): The Etag value for the last time this ownership was modified. Optional depending + on storage implementation. + """ + gathered_results = [] + for x in ownership_list: + gathered_results.append(self._claim_one_partition(x, **kwargs)) + return gathered_results - def claim_ownership(self, ownershiplist, **kwargs): - pass + def close(self): + self._container_client.__exit__() diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/__init__.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/__init__.py new file mode 100644 index 000000000000..0d1f7edf5dc6 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/__init__.py @@ -0,0 +1 @@ +__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: ignore diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/__init__.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/__init__.py new file mode 100644 index 000000000000..0d1f7edf5dc6 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/__init__.py @@ -0,0 +1 @@ +__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: ignore diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/__init__.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/__init__.py new file mode 100644 index 000000000000..c989f9191b88 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/__init__.py @@ -0,0 +1,52 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +from ._entity import TableEntity, EntityProperty, EdmType +from ._error import RequestTooLargeError, TableTransactionError, TableErrorCode +from ._table_shared_access_signature import generate_table_sas, generate_account_sas +from ._table_client import TableClient +from ._table_service_client import TableServiceClient +from ._models import ( + TableAccessPolicy, + TableMetrics, + TableRetentionPolicy, + TableAnalyticsLogging, + TableSasPermissions, + TableCorsRule, + UpdateMode, + SASProtocol, + TableItem, + ResourceTypes, + AccountSasPermissions, + TransactionOperation +) +from ._version import VERSION + +__version__ = VERSION + +__all__ = [ + "TableClient", + "TableServiceClient", + "ResourceTypes", + "AccountSasPermissions", + "TableErrorCode", + "TableSasPermissions", + "TableAccessPolicy", + "TableAnalyticsLogging", + "TableMetrics", + "generate_account_sas", + "TableCorsRule", + "UpdateMode", + "TableItem", + "TableEntity", + "EntityProperty", + "EdmType", + "TableRetentionPolicy", + "generate_table_sas", + "SASProtocol", + "TableTransactionError", + "TransactionOperation", + "RequestTooLargeError", +] diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_authentication.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_authentication.py new file mode 100644 index 000000000000..95d80dfd0844 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_authentication.py @@ -0,0 +1,135 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import logging +from typing import TYPE_CHECKING + +try: + from urllib.parse import urlparse +except ImportError: + from urlparse import urlparse # type: ignore + +from azure.core.exceptions import ClientAuthenticationError +from azure.core.pipeline.policies import SansIOHTTPPolicy + +try: + from azure.core.pipeline.transport import AsyncHttpTransport +except ImportError: + AsyncHttpTransport = None # type: ignore + +try: + from yarl import URL +except ImportError: + pass + +from ._common_conversion import ( + _sign_string, +) + +from ._error import ( + _wrap_exception, +) + +if TYPE_CHECKING: + from azure.core.pipeline import PipelineRequest # pylint: disable=ungrouped-imports + + +logger = logging.getLogger(__name__) + + +class AzureSigningError(ClientAuthenticationError): + """ + Represents a fatal error when attempting to sign a request. + In general, the cause of this exception is user error. For example, the given account key is not valid. + Please visit https://docs.microsoft.com/en-us/azure/storage/common/storage-create-storage-account for more info. + """ + + +# pylint: disable=no-self-use +class SharedKeyCredentialPolicy(SansIOHTTPPolicy): + def __init__(self, credential, is_emulated=False): + self._credential = credential + self.is_emulated = is_emulated + + def _get_headers(self, request, headers_to_sign): + headers = dict( + (name.lower(), value) for name, value in request.headers.items() if value + ) + if "content-length" in headers and headers["content-length"] == "0": + del headers["content-length"] + return "\n".join(headers.get(x, "") for x in headers_to_sign) + "\n" + + def _get_verb(self, request): + return request.method + "\n" + + def _get_canonicalized_resource(self, request): + uri_path = urlparse(request.http_request.url).path + try: + if ( + isinstance(request.context.transport, AsyncHttpTransport) + or isinstance( + getattr(request.context.transport, "_transport", None), + AsyncHttpTransport, + ) + or isinstance( + getattr( + getattr(request.context.transport, "_transport", None), + "_transport", + None, + ), + AsyncHttpTransport, + ) + ): + uri_path = URL(uri_path) + return "/" + self._credential.named_key.name + str(uri_path) + except TypeError: + pass + return "/" + self._credential.named_key.name + uri_path + + def _get_canonicalized_headers(self, request): + string_to_sign = "" + x_ms_headers = [] + for name, value in request.headers.items(): + if name.startswith("x-ms-"): + x_ms_headers.append((name.lower(), value)) + x_ms_headers.sort() + for name, value in x_ms_headers: + if value is not None: + string_to_sign += "".join([name, ":", value, "\n"]) + return string_to_sign + + def _add_authorization_header(self, request, string_to_sign): + try: + signature = _sign_string(self._credential.named_key.key, string_to_sign) + auth_string = "SharedKey " + self._credential.named_key.name + ":" + signature + request.headers["Authorization"] = auth_string + except Exception as ex: + # Wrap any error that occurred as signing error + # Doing so will clarify/locate the source of problem + raise _wrap_exception(ex, AzureSigningError) + + def on_request(self, request): + # type: (PipelineRequest) -> None + self.sign_request(request) + + def sign_request(self, request): + string_to_sign = ( + self._get_verb(request.http_request) + + self._get_headers( + request.http_request, + ["content-md5", "content-type", "x-ms-date"], + ) + + self._get_canonicalized_resource(request) + + self._get_canonicalized_resource_query(request.http_request) + ) + self._add_authorization_header(request.http_request, string_to_sign) + logger.debug("String_to_sign=%s", string_to_sign) + + def _get_canonicalized_resource_query(self, request): + for name, value in request.query.items(): + if name == "comp": + return "?comp=" + value + return "" diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_base_client.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_base_client.py new file mode 100644 index 000000000000..58c83d844b96 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_base_client.py @@ -0,0 +1,417 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from typing import Dict, Optional, Any, List, Mapping, Union, TYPE_CHECKING +from uuid import uuid4 +try: + from urllib.parse import parse_qs, quote, urlparse +except ImportError: + from urlparse import parse_qs, urlparse # type: ignore + from urllib2 import quote # type: ignore + +from azure.core.credentials import AzureSasCredential, AzureNamedKeyCredential +from azure.core.utils import parse_connection_string +from azure.core.pipeline.transport import ( + HttpTransport, + HttpRequest, +) +from azure.core.pipeline.policies import ( + RedirectPolicy, + ContentDecodePolicy, + BearerTokenCredentialPolicy, + ProxyPolicy, + DistributedTracingPolicy, + HttpLoggingPolicy, + UserAgentPolicy, + AzureSasCredentialPolicy, + NetworkTraceLoggingPolicy, + CustomHookPolicy, + RequestIdPolicy, +) + +from ._generated import AzureTable +from ._common_conversion import _is_cosmos_endpoint +from ._shared_access_signature import QueryStringConstants +from ._constants import ( + STORAGE_OAUTH_SCOPE, + SERVICE_HOST_BASE, +) +from ._error import RequestTooLargeError, TableTransactionError, _decode_error +from ._models import LocationMode +from ._authentication import SharedKeyCredentialPolicy +from ._policies import ( + CosmosPatchTransformPolicy, + StorageHeadersPolicy, + StorageHosts, + TablesRetryPolicy, +) +from ._sdk_moniker import SDK_MONIKER + +if TYPE_CHECKING: + from azure.core.credentials import TokenCredential + +_SUPPORTED_API_VERSIONS = ["2019-02-02", "2019-07-07"] + + +def get_api_version(kwargs, default): + # type: (Dict[str, Any], str) -> str + api_version = kwargs.pop("api_version", None) + if api_version and api_version not in _SUPPORTED_API_VERSIONS: + versions = "\n".join(_SUPPORTED_API_VERSIONS) + raise ValueError( + "Unsupported API version '{}'. Please select from:\n{}".format( + api_version, versions + ) + ) + return api_version or default + + +class AccountHostsMixin(object): # pylint: disable=too-many-instance-attributes + def __init__( + self, + account_url, # type: Any + credential=None, # type: Optional[Union[AzureNamedKeyCredential, AzureSasCredential, "TokenCredential"]] + **kwargs # type: Any + ): + # type: (...) -> None + try: + if not account_url.lower().startswith("http"): + account_url = "https://" + account_url + except AttributeError: + raise ValueError("Account URL must be a string.") + parsed_url = urlparse(account_url.rstrip("/")) + if not parsed_url.netloc: + raise ValueError("Invalid URL: {}".format(account_url)) + + _, sas_token = parse_query(parsed_url.query) + if not sas_token and not credential: + raise ValueError( + "You need to provide either an AzureSasCredential or AzureNamedKeyCredential" + ) + self._query_str, credential = format_query_string(sas_token, credential) + self._location_mode = kwargs.get("location_mode", LocationMode.PRIMARY) + self._hosts = kwargs.get("_hosts") + self.scheme = parsed_url.scheme + self._cosmos_endpoint = _is_cosmos_endpoint(parsed_url) + if ".core." in parsed_url.netloc or ".cosmos." in parsed_url.netloc: + account = parsed_url.netloc.split(".table.core.") + if "cosmos" in parsed_url.netloc: + account = parsed_url.netloc.split(".table.cosmos.") + self.account_name = account[0] if len(account) > 1 else None + else: + path_account_name = parsed_url.path.split("/") + if len(path_account_name) > 1: + self.account_name = path_account_name[1] + account = [self.account_name, parsed_url.netloc] + else: + # If format doesn't fit Azurite, default to standard parsing + account = parsed_url.netloc.split(".table.core.") + self.account_name = account[0] if len(account) > 1 else None + + secondary_hostname = None + self.credential = credential + if self.scheme.lower() != "https" and hasattr(self.credential, "get_token"): + raise ValueError("Token credential is only supported with HTTPS.") + if hasattr(self.credential, "named_key"): + self.account_name = self.credential.named_key.name # type: ignore + secondary_hostname = "{}-secondary.table.{}".format( + self.credential.named_key.name, SERVICE_HOST_BASE # type: ignore + ) + + if not self._hosts: + if len(account) > 1: + secondary_hostname = parsed_url.netloc.replace( + account[0], account[0] + "-secondary" + ) + parsed_url.path.replace( + account[0], account[0] + "-secondary" + ).rstrip("/") + if kwargs.get("secondary_hostname"): + secondary_hostname = kwargs["secondary_hostname"] + primary_hostname = (parsed_url.netloc + parsed_url.path).rstrip("/") + self._hosts = { + LocationMode.PRIMARY: primary_hostname, + LocationMode.SECONDARY: secondary_hostname, + } + self._credential_policy = None # type: ignore + self._configure_credential(self.credential) # type: ignore + self._policies = self._configure_policies(hosts=self._hosts, **kwargs) # type: ignore + if self._cosmos_endpoint: + self._policies.insert(0, CosmosPatchTransformPolicy()) + + @property + def url(self): + """The full endpoint URL to this entity, including SAS token if used. + + This could be either the primary endpoint, + or the secondary endpoint depending on the current :func:`location_mode`. + """ + return self._format_url(self._hosts[self._location_mode]) + + @property + def _primary_endpoint(self): + """The full primary endpoint URL. + + :type: str + """ + return self._format_url(self._hosts[LocationMode.PRIMARY]) + + @property + def _primary_hostname(self): + """The hostname of the primary endpoint. + + :type: str + """ + return self._hosts[LocationMode.PRIMARY] + + @property + def _secondary_endpoint(self): + """The full secondary endpoint URL if configured. + + If not available a ValueError will be raised. To explicitly specify a secondary hostname, use the optional + `secondary_hostname` keyword argument on instantiation. + + :type: str + :raise ValueError: + """ + if not self._hosts[LocationMode.SECONDARY]: + raise ValueError("No secondary host configured.") + return self._format_url(self._hosts[LocationMode.SECONDARY]) + + @property + def _secondary_hostname(self): + """The hostname of the secondary endpoint. + + If not available this will be None. To explicitly specify a secondary hostname, use the optional + `secondary_hostname` keyword argument on instantiation. + + :type: str or None + """ + return self._hosts[LocationMode.SECONDARY] + + @property + def api_version(self): + """The version of the Storage API used for requests. + + :type: str + """ + return self._client._config.version # pylint: disable=protected-access + + +class TablesBaseClient(AccountHostsMixin): + + def __init__( # pylint: disable=missing-client-constructor-parameter-credential + self, + endpoint, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + credential = kwargs.pop('credential', None) + super(TablesBaseClient, self).__init__(endpoint, credential=credential, **kwargs) + self._client = AzureTable( + self.url, + policies=kwargs.pop('policies', self._policies), + **kwargs + ) + self._client._config.version = get_api_version(kwargs, self._client._config.version) # pylint: disable=protected-access + + def __enter__(self): + self._client.__enter__() + return self + + def __exit__(self, *args): + self._client.__exit__(*args) + + def _configure_policies(self, **kwargs): + return [ + RequestIdPolicy(**kwargs), + StorageHeadersPolicy(**kwargs), + UserAgentPolicy(sdk_moniker=SDK_MONIKER, **kwargs), + ProxyPolicy(**kwargs), + self._credential_policy, + ContentDecodePolicy(response_encoding="utf-8"), + RedirectPolicy(**kwargs), + StorageHosts(**kwargs), + TablesRetryPolicy(**kwargs), + CustomHookPolicy(**kwargs), + NetworkTraceLoggingPolicy(**kwargs), + DistributedTracingPolicy(**kwargs), + HttpLoggingPolicy(**kwargs), + ] + + def _configure_credential(self, credential): + # type: (Any) -> None + if hasattr(credential, "get_token"): + self._credential_policy = BearerTokenCredentialPolicy( # type: ignore + credential, STORAGE_OAUTH_SCOPE + ) + elif isinstance(credential, SharedKeyCredentialPolicy): + self._credential_policy = credential # type: ignore + elif isinstance(credential, AzureSasCredential): + self._credential_policy = AzureSasCredentialPolicy(credential) # type: ignore + elif isinstance(credential, AzureNamedKeyCredential): + self._credential_policy = SharedKeyCredentialPolicy(credential) # type: ignore + elif credential is not None: + raise TypeError("Unsupported credential: {}".format(credential)) + + def _batch_send(self, *reqs, **kwargs): + # type: (List[HttpRequest], Any) -> List[Mapping[str, Any]] + """Given a series of request, do a Storage batch call.""" + # Pop it here, so requests doesn't feel bad about additional kwarg + policies = [StorageHeadersPolicy()] + + changeset = HttpRequest("POST", None) # type: ignore + changeset.set_multipart_mixed( + *reqs, policies=policies, boundary="changeset_{}".format(uuid4()) # type: ignore + ) + request = self._client._client.post( # pylint: disable=protected-access + url="https://{}/$batch".format(self._primary_hostname), + headers={ + "x-ms-version": self.api_version, + "DataServiceVersion": "3.0", + "MaxDataServiceVersion": "3.0;NetFx", + 'Content-Type': 'application/json', + 'Accept': 'application/json' + }, + ) + request.set_multipart_mixed( + changeset, + policies=policies, + enforce_https=False, + boundary="batch_{}".format(uuid4()), + ) + pipeline_response = self._client._client._pipeline.run(request, **kwargs) # pylint: disable=protected-access + response = pipeline_response.http_response + if response.status_code == 413: + raise _decode_error( + response, + error_message="The transaction request was too large", + error_type=RequestTooLargeError) + if response.status_code != 202: + raise _decode_error(response) + + parts = list(response.parts()) + error_parts = [p for p in parts if not 200 <= p.status_code < 300] + if any(error_parts): + if error_parts[0].status_code == 413: + raise _decode_error( + response, + error_message="The transaction request was too large", + error_type=RequestTooLargeError) + raise _decode_error( + response=error_parts[0], + error_type=TableTransactionError + ) + return [extract_batch_part_metadata(p) for p in parts] + + def close(self): + # type: () -> None + """This method is to close the sockets opened by the client. + It need not be used when using with a context manager. + """ + self._client.close() + + +class TransportWrapper(HttpTransport): + """Wrapper class that ensures that an inner client created + by a `get_client` method does not close the outer transport for the parent + when used in a context manager. + """ + def __init__(self, transport): + self._transport = transport + + def send(self, request, **kwargs): + return self._transport.send(request, **kwargs) + + def open(self): + pass + + def close(self): + pass + + def __enter__(self): + pass + + def __exit__(self, *args): # pylint: disable=arguments-differ + pass + + +def parse_connection_str(conn_str, credential, keyword_args): + conn_settings = parse_connection_string(conn_str) + primary = None + secondary = None + if not credential: + try: + credential = AzureNamedKeyCredential(name=conn_settings["accountname"], key=conn_settings["accountkey"]) + except KeyError: + credential = conn_settings.get("sharedaccesssignature", None) + if not credential: + raise ValueError("Connection string missing required connection details.") + credential = AzureSasCredential(credential) + primary = conn_settings.get("tableendpoint") + secondary = conn_settings.get("tablesecondaryendpoint") + if not primary: + if secondary: + raise ValueError("Connection string specifies only secondary endpoint.") + try: + primary = "{}://{}.table.{}".format( + conn_settings["defaultendpointsprotocol"], + conn_settings["accountname"], + conn_settings["endpointsuffix"], + ) + secondary = "{}-secondary.table.{}".format( + conn_settings["accountname"], conn_settings["endpointsuffix"] + ) + except KeyError: + pass + + if not primary: + try: + primary = "https://{}.table.{}".format( + conn_settings["accountname"], + conn_settings.get("endpointsuffix", SERVICE_HOST_BASE), + ) + except KeyError: + raise ValueError("Connection string missing required connection details.") + + if "secondary_hostname" not in keyword_args: + keyword_args["secondary_hostname"] = secondary + + return primary, credential + + +def extract_batch_part_metadata(response_part): + metadata = {} + if 'Etag' in response_part.headers: + metadata['etag'] = response_part.headers['Etag'] + return metadata + + +def format_query_string(sas_token, credential): + query_str = "?" + if sas_token and isinstance(credential, AzureSasCredential): + raise ValueError( + "You cannot use AzureSasCredential when the resource URI also contains a Shared Access Signature.") + if sas_token and not credential: + query_str += sas_token + elif credential: + return "", credential + return query_str.rstrip("?&"), None + + +def parse_query(query_str): + sas_values = QueryStringConstants.to_list() + parsed_query = {k: v[0] for k, v in parse_qs(query_str).items()} + sas_params = [ + "{}={}".format(k, quote(v, safe="")) + for k, v in parsed_query.items() + if k in sas_values + ] + sas_token = None + if sas_params: + sas_token = "&".join(sas_params) + + snapshot = parsed_query.get("snapshot") or parsed_query.get("sharesnapshot") + return snapshot, sas_token diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_common_conversion.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_common_conversion.py new file mode 100644 index 000000000000..180dc2193a0c --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_common_conversion.py @@ -0,0 +1,103 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +import base64 +import hashlib +import datetime +import hmac +from sys import version_info +import six + + +class UTC(datetime.tzinfo): + """Time Zone info for handling UTC""" + + def utcoffset(self, dt): + """UTF offset for UTC is 0.""" + return datetime.timedelta(0) + + def tzname(self, dt): + """Timestamp representation.""" + return "Z" + + def dst(self, dt): + """No daylight saving for UTC.""" + return datetime.timedelta(hours=1) + + +try: + from datetime import timezone + TZ_UTC = timezone.utc # type: ignore +except ImportError: + TZ_UTC = UTC() # type: ignore + + +if version_info < (3,): + + def _str(value): + if isinstance(value, unicode): # pylint: disable=undefined-variable + return value.encode("utf-8") + + return str(value) +else: + _str = str + + +def _to_str(value): + return _str(value) if value is not None else None + + +def _to_utc_datetime(value): + try: + value = value.astimezone(TZ_UTC) + except ValueError: + # Before Python 3.8, this raised for a naive datetime. + pass + try: + return value.strftime("%Y-%m-%dT%H:%M:%S.%fZ") + except ValueError: + return value.strftime("%Y-%m-%dT%H:%M:%SZ") + + +def _encode_base64(data): + if isinstance(data, six.text_type): + data = data.encode("utf-8") + encoded = base64.b64encode(data) + return encoded.decode("utf-8") + + +def _decode_base64_to_bytes(data): + if isinstance(data, six.text_type): + data = data.encode("utf-8") + return base64.b64decode(data) + + +def _sign_string(key, string_to_sign, key_is_base64=True): + if key_is_base64: + key = _decode_base64_to_bytes(key) + else: + if isinstance(key, six.text_type): + key = key.encode("utf-8") + if isinstance(string_to_sign, six.text_type): + string_to_sign = string_to_sign.encode("utf-8") + signed_hmac_sha256 = hmac.HMAC(key, string_to_sign, hashlib.sha256) + digest = signed_hmac_sha256.digest() + encoded_digest = _encode_base64(digest) + return encoded_digest + + +def _is_cosmos_endpoint(url): + if ".table.cosmosdb." in url.hostname: + return True + if ".table.cosmos." in url.hostname: + return True + if url.hostname == "localhost" and url.port != 10002: + return True + return False + + +def _transform_patch_to_cosmos_post(request): + request.method = "POST" + request.headers["X-HTTP-Method"] = "MERGE" diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_constants.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_constants.py new file mode 100644 index 000000000000..924b4c01bcf1 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_constants.py @@ -0,0 +1,19 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +from ._generated._version import VERSION + +# default values for common package, in case it is used directly +DEFAULT_X_MS_VERSION = "2018-03-28" +X_MS_VERSION = VERSION + +# Live ServiceClient URLs +SERVICE_HOST_BASE = "core.windows.net" + +STORAGE_OAUTH_SCOPE = "https://storage.azure.com/.default" + +NEXT_TABLE_NAME = "x-ms-continuation-NextTableName" +NEXT_PARTITION_KEY = "x-ms-continuation-NextPartitionKey" +NEXT_ROW_KEY = "x-ms-continuation-NextRowKey" diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_deserialize.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_deserialize.py new file mode 100644 index 000000000000..e81c5ada9a85 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_deserialize.py @@ -0,0 +1,276 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +from typing import Union, Dict, Any, Optional + +from uuid import UUID +import logging +import datetime + +import six + +from ._entity import EntityProperty, EdmType, TableEntity +from ._common_conversion import _decode_base64_to_bytes, TZ_UTC + + +_LOGGER = logging.getLogger(__name__) + +try: + from urllib.parse import quote +except ImportError: + from urllib2 import quote # type: ignore + + +class TablesEntityDatetime(datetime.datetime): + + @property + def tables_service_value(self): + try: + return self._service_value + except AttributeError: + return "" + + +def url_quote(url): + return quote(url) + + +def get_enum_value(value): + if value is None or value in ["None", ""]: + return None + try: + return value.value + except AttributeError: + return value + + +def _from_entity_binary(value): + # type: (str) -> EntityProperty + return _decode_base64_to_bytes(value) + + +def _from_entity_int32(value): + # type: (str) -> int + return int(value) + + +def _from_entity_int64(value): + # type: (str) -> EntityProperty + return EntityProperty(int(value), EdmType.INT64) + + +def _from_entity_datetime(value): + # Cosmos returns this with a decimal point that throws an error on deserialization + cleaned_value = clean_up_dotnet_timestamps(value) + try: + dt_obj = TablesEntityDatetime.strptime(cleaned_value, "%Y-%m-%dT%H:%M:%S.%fZ").replace( + tzinfo=TZ_UTC + ) + except ValueError: + dt_obj = TablesEntityDatetime.strptime(cleaned_value, "%Y-%m-%dT%H:%M:%SZ").replace( + tzinfo=TZ_UTC + ) + dt_obj._service_value = value # pylint:disable=protected-access + return dt_obj + + +def clean_up_dotnet_timestamps(value): + # .NET has more decimal places than Python supports in datetime objects, this truncates + # values after 6 decimal places. + value = value.split(".") + ms = "" + if len(value) == 2: + ms = value[-1].replace("Z", "") + if len(ms) > 6: + ms = ms[:6] + ms = ms + "Z" + return ".".join([value[0], ms]) + + return value[0] + + +def deserialize_iso(value): + if not value: + return value + return _from_entity_datetime(value) + + +def _from_entity_guid(value): + return UUID(value) + + +def _from_entity_str(value): + # type: (Union[str, bytes]) -> str + if isinstance(value, six.binary_type): + return value.decode('utf-8') + return value + + +_EDM_TYPES = [ + EdmType.BINARY, + EdmType.INT64, + EdmType.GUID, + EdmType.DATETIME, + EdmType.STRING, + EdmType.INT32, + EdmType.DOUBLE, + EdmType.BOOLEAN, +] + +_ENTITY_TO_PYTHON_CONVERSIONS = { + EdmType.BINARY: _from_entity_binary, + EdmType.INT32: _from_entity_int32, + EdmType.INT64: _from_entity_int64, + EdmType.DOUBLE: float, + EdmType.DATETIME: _from_entity_datetime, + EdmType.GUID: _from_entity_guid, + EdmType.STRING: _from_entity_str, +} + + +def _convert_to_entity(entry_element): + """Convert json response to entity. + The entity format is: + { + "Address":"Mountain View", + "Age":23, + "AmountDue":200.23, + "CustomerCode@odata.type":"Edm.Guid", + "CustomerCode":"c9da6455-213d-42c9-9a79-3e9149a57833", + "CustomerSince@odata.type":"Edm.DateTime", + "CustomerSince":"2008-07-10T00:00:00", + "IsActive":true, + "NumberOfOrders@odata.type":"Edm.Int64", + "NumberOfOrders":"255", + "PartitionKey":"mypartitionkey", + "RowKey":"myrowkey" + } + """ + entity = TableEntity() + + properties = {} + edmtypes = {} + odata = {} + + for name, value in entry_element.items(): + if name.startswith("odata."): + odata[name[6:]] = value + elif name.endswith("@odata.type"): + edmtypes[name[:-11]] = value + else: + properties[name] = value + + # Partition key is a known property + partition_key = properties.pop("PartitionKey", None) + if partition_key: + entity["PartitionKey"] = partition_key + + # Row key is a known property + row_key = properties.pop("RowKey", None) + if row_key: + entity["RowKey"] = row_key + + # Timestamp is a known property + timestamp = properties.pop("Timestamp", None) + + for name, value in properties.items(): + mtype = edmtypes.get(name) + + # Add type for Int32/64 + if isinstance(value, int) and mtype is None: + mtype = EdmType.INT32 + + if value >= 2 ** 31 or value < (-(2 ** 31)): + mtype = EdmType.INT64 + + # Add type for String + try: + if isinstance(value, unicode) and mtype is None: # type: ignore + mtype = EdmType.STRING + except NameError: + if isinstance(value, str) and mtype is None: + mtype = EdmType.STRING + + # no type info, property should parse automatically + if not mtype: + entity[name] = value + elif mtype in [EdmType.STRING, EdmType.INT32]: + entity[name] = value + else: # need an object to hold the property + conv = _ENTITY_TO_PYTHON_CONVERSIONS.get(mtype) + if conv is not None: + new_property = conv(value) + else: + new_property = EntityProperty(mtype, value) + entity[name] = new_property + + # extract etag from entry + etag = odata.pop("etag", None) + odata.pop("metadata", None) + if timestamp: + if not etag: + etag = "W/\"datetime'" + url_quote(timestamp) + "'\"" + timestamp = _from_entity_datetime(timestamp) + odata.update({'etag': etag, 'timestamp': timestamp}) + entity._metadata = odata # pylint: disable=protected-access + return entity + + +def _extract_etag(response): + """ Extracts the etag from the response headers. """ + if response and response.headers: + return response.headers.get("etag") + + return None + + +def _extract_continuation_token(continuation_token): + """Extract list entity continuation headers from token. + + :param dict(str,str) continuation_token: The listing continuation token. + :returns: The next partition key and next row key in a tuple + :rtype: (str,str) + """ + if not continuation_token: + return None, None + try: + return continuation_token.get("PartitionKey"), continuation_token.get("RowKey") + except AttributeError: + raise ValueError("Invalid continuation token format.") + + +def _normalize_headers(headers): + normalized = {} + for key, value in headers.items(): + if key.startswith("x-ms-"): + key = key[5:] + normalized[key.lower().replace("-", "_")] = get_enum_value(value) + return normalized + + +def _return_headers_and_deserialized( + response, deserialized, response_headers +): # pylint: disable=unused-argument + return _normalize_headers(response_headers), deserialized + + +def _return_context_and_deserialized( + response, deserialized, response_headers +): # pylint: disable=unused-argument + return response.context['location_mode'], deserialized, response_headers + + +def _trim_service_metadata(metadata, content=None): + # type: (Dict[str, str], Optional[Dict[str, Any]]) -> Dict[str, Any] + result = { + "date": metadata.pop("date", None), + "etag": metadata.pop("etag", None), + "version": metadata.pop("version", None), + } + preference = metadata.pop('preference_applied', None) + if preference: + result["preference_applied"] = preference + result["content"] = content # type: ignore + return result diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_entity.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_entity.py new file mode 100644 index 000000000000..90a8febdbbb8 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_entity.py @@ -0,0 +1,73 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +from enum import Enum +from typing import Any, Dict, Union, NamedTuple + + +class TableEntity(dict): + """ + An Entity dictionary with additional metadata + + """ + _metadata = {} # type: Dict[str, Any] + + @property + def metadata(self): + # type: () -> Dict[str, Any] + """Resets metadata to be a part of the entity + :return Dict of entity metadata + :rtype: Dict[str, Any] + """ + return self._metadata + + +class EdmType(str, Enum): + """ + Used by :class:`~.EntityProperty` to represent the type of the entity property + to be stored by the Table service. + """ + + BINARY = "Edm.Binary" + """ Represents byte data. This type will be inferred for Python bytes.. """ + + INT64 = "Edm.Int64" + """ Represents a number between -(2^31) and 2^31. This is the default type for Python numbers. """ + + GUID = "Edm.Guid" + """ Represents a GUID. This type will be inferred for uuid.UUID. """ + + DATETIME = "Edm.DateTime" + """ Represents a date. This type will be inferred for Python datetime objects. """ + + STRING = "Edm.String" + """ Represents a string. This type will be inferred for Python strings. """ + + INT32 = "Edm.Int32" + """ Represents a number between -(2^15) and 2^15. Must be specified or numbers will default to INT64. """ + + DOUBLE = "Edm.Double" + """ Represents a double. This type will be inferred for Python floating point numbers. """ + + BOOLEAN = "Edm.Boolean" + """ Represents a boolean. This type will be inferred for Python bools. """ + + +EntityProperty = NamedTuple("EntityProperty", [("value", Any), ("edm_type", Union[str, EdmType])]) +""" +An entity property. Used to explicitly set :class:`~EdmType` when necessary. + +Values which require explicit typing are GUID, INT64, and BINARY. Other EdmTypes +may be explicitly create as EntityProperty objects but need not be. For example, +the below with both create STRING typed properties on the entity:: + entity = TableEntity() + entity.a = 'b' + entity.x = EntityProperty('y', EdmType.STRING) + +:param value: +:type value: Any +:param edm_type: Type of the value +:type edm_type: str or :class:`~azure.data.tables.EdmType` +""" diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_error.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_error.py new file mode 100644 index 000000000000..3cfff0bebf4f --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_error.py @@ -0,0 +1,251 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +import sys +from re import match +from enum import Enum + +from azure.core.exceptions import ( + HttpResponseError, + ResourceNotFoundError, + ResourceModifiedError, + ResourceExistsError, + ClientAuthenticationError, + DecodeError, +) +from azure.core.pipeline.policies import ContentDecodePolicy + +if sys.version_info < (3,): + + def _str(value): + if isinstance(value, unicode): # pylint: disable=undefined-variable + return value.encode("utf-8") + + return str(value) +else: + _str = str + + + +def _to_str(value): + return _str(value) if value is not None else None + + +_ERROR_TYPE_NOT_SUPPORTED = "Type not supported when sending data to the service: {0}." +_ERROR_VALUE_TOO_LARGE = "{0} is too large to be cast to type {1}." +_ERROR_UNKNOWN = "Unknown error ({0})" +_ERROR_VALUE_NONE = "{0} should not be None." +_ERROR_UNKNOWN_KEY_WRAP_ALGORITHM = "Unknown key wrap algorithm." + + +def _validate_not_none(param_name, param): + if param is None: + raise ValueError(_ERROR_VALUE_NONE.format(param_name)) + + +def _wrap_exception(ex, desired_type): + msg = "" + if len(ex.args) > 0: + msg = ex.args[0] + if sys.version_info >= (3,): + # Automatic chaining in Python 3 means we keep the trace + return desired_type(msg) + + # There isn't a good solution in 2 for keeping the stack trace + # in general, or that will not result in an error in 3 + # However, we can keep the previous error type and message + # TODO: In the future we will log the trace + return desired_type("{}: {}".format(ex.__class__.__name__, msg)) + + +def _validate_table_name(table_name): + if match("^[a-zA-Z]{1}[a-zA-Z0-9]{2,62}$", table_name) is None: + raise ValueError( + "Table names must be alphanumeric, cannot begin with a number, and must be between 3-63 characters long." + ) + + +def _decode_error(response, error_message=None, error_type=None, **kwargs): + error_code = response.headers.get("x-ms-error-code") + additional_data = {} + try: + error_body = ContentDecodePolicy.deserialize_from_http_generics(response) + if isinstance(error_body, dict): + for info in error_body.get("odata.error", {}): + if info == "code": + error_code = error_body["odata.error"][info] + elif info == "message": + error_message = error_body["odata.error"][info]["value"] + else: + additional_data[info.tag] = info.text + else: + if error_body: + for info in error_body.iter(): + if info.tag.lower().find("code") != -1: + error_code = info.text + elif info.tag.lower().find("message") != -1: + error_message = info.text + else: + additional_data[info.tag] = info.text + except DecodeError: + pass + + try: + if not error_type: + error_code = TableErrorCode(error_code) + if error_code in [ + TableErrorCode.condition_not_met, + TableErrorCode.update_condition_not_satisfied + ]: + error_type = ResourceModifiedError + elif error_code in [ + TableErrorCode.invalid_authentication_info, + TableErrorCode.authentication_failed, + ]: + error_type = ClientAuthenticationError + elif error_code in [ + TableErrorCode.resource_not_found, + TableErrorCode.table_not_found, + TableErrorCode.entity_not_found, + ResourceNotFoundError, + ]: + error_type = ResourceNotFoundError + elif error_code in [ + TableErrorCode.resource_already_exists, + TableErrorCode.table_already_exists, + TableErrorCode.account_already_exists, + TableErrorCode.entity_already_exists, + ResourceExistsError, + ]: + error_type = ResourceExistsError + else: + error_type = HttpResponseError + except ValueError: + # Got an unknown error code + error_type = HttpResponseError + + try: + error_message += "\nErrorCode:{}".format(error_code.value) + except AttributeError: + error_message += "\nErrorCode:{}".format(error_code) + for name, info in additional_data.items(): + error_message += "\n{}:{}".format(name, info) + + error = error_type(message=error_message, response=response, **kwargs) + error.error_code = error_code + error.additional_info = additional_data + return error + + +def _reraise_error(decoded_error): + _, _, exc_traceback = sys.exc_info() + try: + raise decoded_error.with_traceback(exc_traceback) + except AttributeError: + decoded_error.__traceback__ = exc_traceback + raise decoded_error + + +def _process_table_error(storage_error): + decoded_error = _decode_error(storage_error.response, storage_error.message) + _reraise_error(decoded_error) + + +class TableTransactionError(HttpResponseError): + """There is a failure in the transaction operations. + + :ivar int index: If available, the index of the operation in the transaction that caused the error. + Defaults to 0 in the case where an index was not provided, or the error applies across operations. + :ivar ~azure.data.tables.TableErrorCode error_code: The error code. + :ivar str message: The error message. + :ivar additional_info: Any additional data for the error. + :vartype additional_info: Mapping[str, Any] + """ + + def __init__(self, **kwargs): + super(TableTransactionError, self).__init__(**kwargs) + self.index = kwargs.get('index', self._extract_index()) + + def _extract_index(self): + try: + message_sections = self.message.split(':', 1) + return int(message_sections[0]) + except: # pylint: disable=bare-except + return 0 + + +class RequestTooLargeError(TableTransactionError): + """An error response with status code 413 - Request Entity Too Large""" + + +class TableErrorCode(str, Enum): + # Generic storage values + account_already_exists = "AccountAlreadyExists" + account_being_created = "AccountBeingCreated" + account_is_disabled = "AccountIsDisabled" + authentication_failed = "AuthenticationFailed" + authorization_failure = "AuthorizationFailure" + no_authentication_information = "NoAuthenticationInformation" + condition_headers_not_supported = "ConditionHeadersNotSupported" + condition_not_met = "ConditionNotMet" + empty_metadata_key = "EmptyMetadataKey" + insufficient_account_permissions = "InsufficientAccountPermissions" + internal_error = "InternalError" + invalid_authentication_info = "InvalidAuthenticationInfo" + invalid_header_value = "InvalidHeaderValue" + invalid_http_verb = "InvalidHttpVerb" + invalid_input = "InvalidInput" + invalid_md5 = "InvalidMd5" + invalid_metadata = "InvalidMetadata" + invalid_query_parameter_value = "InvalidQueryParameterValue" + invalid_range = "InvalidRange" + invalid_resource_name = "InvalidResourceName" + invalid_uri = "InvalidUri" + invalid_xml_document = "InvalidXmlDocument" + invalid_xml_node_value = "InvalidXmlNodeValue" + md5_mismatch = "Md5Mismatch" + metadata_too_large = "MetadataTooLarge" + missing_content_length_header = "MissingContentLengthHeader" + missing_required_query_parameter = "MissingRequiredQueryParameter" + missing_required_header = "MissingRequiredHeader" + missing_required_xml_node = "MissingRequiredXmlNode" + multiple_condition_headers_not_supported = "MultipleConditionHeadersNotSupported" + operation_timed_out = "OperationTimedOut" + out_of_range_input = "OutOfRangeInput" + out_of_range_query_parameter_value = "OutOfRangeQueryParameterValue" + request_body_too_large = "RequestBodyTooLarge" + resource_type_mismatch = "ResourceTypeMismatch" + request_url_failed_to_parse = "RequestUrlFailedToParse" + resource_already_exists = "ResourceAlreadyExists" + resource_not_found = "ResourceNotFound" + server_busy = "ServerBusy" + unsupported_header = "UnsupportedHeader" + unsupported_xml_node = "UnsupportedXmlNode" + unsupported_query_parameter = "UnsupportedQueryParameter" + unsupported_http_verb = "UnsupportedHttpVerb" + + # table error codes + duplicate_properties_specified = "DuplicatePropertiesSpecified" + entity_not_found = "EntityNotFound" + entity_already_exists = "EntityAlreadyExists" + entity_too_large = "EntityTooLarge" + host_information_not_present = "HostInformationNotPresent" + invalid_duplicate_row = "InvalidDuplicateRow" + invalid_value_type = "InvalidValueType" + json_format_not_supported = "JsonFormatNotSupported" + method_not_allowed = "MethodNotAllowed" + not_implemented = "NotImplemented" + properties_need_value = "PropertiesNeedValue" + property_name_invalid = "PropertyNameInvalid" + property_name_too_long = "PropertyNameTooLong" + property_value_too_large = "PropertyValueTooLarge" + table_already_exists = "TableAlreadyExists" + table_being_deleted = "TableBeingDeleted" + table_not_found = "TableNotFound" + too_many_properties = "TooManyProperties" + update_condition_not_satisfied = "UpdateConditionNotSatisfied" + x_method_incorrect_count = "XMethodIncorrectCount" + x_method_incorrect_value = "XMethodIncorrectValue" + x_method_not_using_post = "XMethodNotUsingPost" diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/__init__.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/__init__.py new file mode 100644 index 000000000000..62c47d0d219e --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/__init__.py @@ -0,0 +1,19 @@ +# 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 ._azure_table import AzureTable +from ._version import VERSION + +__version__ = VERSION +__all__ = ['AzureTable'] + +try: + from ._patch import patch_sdk # type: ignore + patch_sdk() +except ImportError: + pass diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/_azure_table.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/_azure_table.py new file mode 100644 index 000000000000..94fbac4da4c4 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/_azure_table.py @@ -0,0 +1,66 @@ +# 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 + +from azure.core import PipelineClient +from msrest import Deserializer, Serializer + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any + +from ._configuration import AzureTableConfiguration +from .operations import TableOperations +from .operations import ServiceOperations +from . import models + + +class AzureTable(object): + """AzureTable. + + :ivar table: TableOperations operations + :vartype table: azure.data.tables.operations.TableOperations + :ivar service: ServiceOperations operations + :vartype service: azure.data.tables.operations.ServiceOperations + :param url: The URL of the service account or table that is the targe of the desired operation. + :type url: str + """ + + def __init__( + self, + url, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + base_url = '{url}' + self._config = AzureTableConfiguration(url, **kwargs) + self._client = PipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False + self._deserialize = Deserializer(client_models) + + self.table = TableOperations( + self._client, self._config, self._serialize, self._deserialize) + self.service = ServiceOperations( + self._client, self._config, self._serialize, self._deserialize) + + def close(self): + # type: () -> None + self._client.close() + + def __enter__(self): + # type: () -> AzureTable + self._client.__enter__() + return self + + def __exit__(self, *exc_details): + # type: (Any) -> None + self._client.__exit__(*exc_details) diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/_configuration.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/_configuration.py new file mode 100644 index 000000000000..e7c7674b0940 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/_configuration.py @@ -0,0 +1,59 @@ +# 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 + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies + +from ._version import VERSION + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any + + +class AzureTableConfiguration(Configuration): + """Configuration for AzureTable. + + Note that all parameters used to create this instance are saved as instance + attributes. + + :param url: The URL of the service account or table that is the targe of the desired operation. + :type url: str + """ + + def __init__( + self, + url, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + if url is None: + raise ValueError("Parameter 'url' must not be None.") + super(AzureTableConfiguration, self).__init__(**kwargs) + + self.url = url + self.version = "2019-02-02" + kwargs.setdefault('sdk_moniker', 'data-tables/{}'.format(VERSION)) + self._configure(**kwargs) + + def _configure( + self, + **kwargs # type: Any + ): + # type: (...) -> None + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or policies.HttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/_version.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/_version.py new file mode 100644 index 000000000000..0a99d31fccc0 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/_version.py @@ -0,0 +1,9 @@ +# 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. +# -------------------------------------------------------------------------- + +VERSION = "2019-02-02" diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/__init__.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/__init__.py new file mode 100644 index 000000000000..5029783fe86b --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/__init__.py @@ -0,0 +1,10 @@ +# 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 ._azure_table import AzureTable +__all__ = ['AzureTable'] diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/_azure_table.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/_azure_table.py new file mode 100644 index 000000000000..1fc8affe42a6 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/_azure_table.py @@ -0,0 +1,58 @@ +# 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 + +from azure.core import AsyncPipelineClient +from msrest import Deserializer, Serializer + +from ._configuration import AzureTableConfiguration +from .operations import TableOperations +from .operations import ServiceOperations +from .. import models + + +class AzureTable(object): + """AzureTable. + + :ivar table: TableOperations operations + :vartype table: azure.data.tables.aio.operations.TableOperations + :ivar service: ServiceOperations operations + :vartype service: azure.data.tables.aio.operations.ServiceOperations + :param url: The URL of the service account or table that is the targe of the desired operation. + :type url: str + """ + + def __init__( + self, + url: str, + **kwargs: Any + ) -> None: + base_url = '{url}' + self._config = AzureTableConfiguration(url, **kwargs) + self._client = AsyncPipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False + self._deserialize = Deserializer(client_models) + + self.table = TableOperations( + self._client, self._config, self._serialize, self._deserialize) + self.service = ServiceOperations( + self._client, self._config, self._serialize, self._deserialize) + + async def close(self) -> None: + await self._client.close() + + async def __aenter__(self) -> "AzureTable": + await self._client.__aenter__() + return self + + async def __aexit__(self, *exc_details) -> None: + await self._client.__aexit__(*exc_details) diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/_configuration.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/_configuration.py new file mode 100644 index 000000000000..67bb9d47fb5c --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/_configuration.py @@ -0,0 +1,53 @@ +# 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 + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies + +from .._version import VERSION + + +class AzureTableConfiguration(Configuration): + """Configuration for AzureTable. + + Note that all parameters used to create this instance are saved as instance + attributes. + + :param url: The URL of the service account or table that is the targe of the desired operation. + :type url: str + """ + + def __init__( + self, + url: str, + **kwargs: Any + ) -> None: + if url is None: + raise ValueError("Parameter 'url' must not be None.") + super(AzureTableConfiguration, self).__init__(**kwargs) + + self.url = url + self.version = "2019-02-02" + kwargs.setdefault('sdk_moniker', 'data-tables/{}'.format(VERSION)) + self._configure(**kwargs) + + def _configure( + self, + **kwargs: Any + ) -> None: + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or policies.HttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/operations/__init__.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/operations/__init__.py new file mode 100644 index 000000000000..774e1c0d97a4 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/operations/__init__.py @@ -0,0 +1,15 @@ +# 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 ._table_operations import TableOperations +from ._service_operations import ServiceOperations + +__all__ = [ + 'TableOperations', + 'ServiceOperations', +] diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/operations/_service_operations.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/operations/_service_operations.py new file mode 100644 index 000000000000..14715416451e --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/operations/_service_operations.py @@ -0,0 +1,258 @@ +# 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, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest + +from ... import models 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.data.tables.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 + + async def set_properties( + self, + table_service_properties: "_models.TableServiceProperties", + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + **kwargs + ) -> None: + """Sets properties for an account's Table service endpoint, including properties for Analytics and + CORS (Cross-Origin Resource Sharing) rules. + + :param table_service_properties: The Table Service properties. + :type table_service_properties: ~azure.data.tables.models.TableServiceProperties + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + restype = "service" + comp = "properties" + content_type = kwargs.pop("content_type", "application/xml") + accept = "application/xml" + + # Construct URL + url = self.set_properties.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + 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(table_service_properties, 'TableServiceProperties', is_xml=True) + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + + if cls: + return cls(pipeline_response, None, response_headers) + + set_properties.metadata = {'url': '/'} # type: ignore + + async def get_properties( + self, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + **kwargs + ) -> "_models.TableServiceProperties": + """Gets the properties of an account's Table service, including properties for Analytics and CORS + (Cross-Origin Resource Sharing) rules. + + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TableServiceProperties, or the result of cls(response) + :rtype: ~azure.data.tables.models.TableServiceProperties + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TableServiceProperties"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + restype = "service" + comp = "properties" + accept = "application/xml" + + # Construct URL + url = self.get_properties.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + 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) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + deserialized = self._deserialize('TableServiceProperties', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + get_properties.metadata = {'url': '/'} # type: ignore + + async def get_statistics( + self, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + **kwargs + ) -> "_models.TableServiceStats": + """Retrieves statistics related to replication for the Table service. It is only available on the + secondary location endpoint when read-access geo-redundant replication is enabled for the + account. + + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TableServiceStats, or the result of cls(response) + :rtype: ~azure.data.tables.models.TableServiceStats + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TableServiceStats"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + restype = "service" + comp = "stats" + accept = "application/xml" + + # Construct URL + url = self.get_statistics.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + 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) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + deserialized = self._deserialize('TableServiceStats', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + get_statistics.metadata = {'url': '/'} # type: ignore diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/operations/_table_operations.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/operations/_table_operations.py new file mode 100644 index 000000000000..29f2273f788d --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/aio/operations/_table_operations.py @@ -0,0 +1,1067 @@ +# 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, Callable, Dict, Generic, List, Optional, TypeVar, Union +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class TableOperations: + """TableOperations 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.data.tables.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 + + async def query( + self, + request_id_parameter: Optional[str] = None, + next_table_name: Optional[str] = None, + query_options: Optional["_models.QueryOptions"] = None, + **kwargs + ) -> "_models.TableQueryResponse": + """Queries tables under the given account. + + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param next_table_name: A table query continuation token from a previous call. + :type next_table_name: str + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TableQueryResponse, or the result of cls(response) + :rtype: ~azure.data.tables.models.TableQueryResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TableQueryResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _format = None + _top = None + _select = None + _filter = None + if query_options is not None: + _format = query_options.format + _top = query_options.top + _select = query_options.select + _filter = query_options.filter + data_service_version = "3.0" + accept = "application/json;odata=minimalmetadata" + + # Construct URL + url = self.query.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if _format is not None: + query_parameters['$format'] = self._serialize.query("format", _format, 'str') + if _top is not None: + query_parameters['$top'] = self._serialize.query("top", _top, 'int', minimum=0) + if _select is not None: + query_parameters['$select'] = self._serialize.query("select", _select, 'str') + if _filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", _filter, 'str') + if next_table_name is not None: + query_parameters['NextTableName'] = self._serialize.query("next_table_name", next_table_name, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + header_parameters['DataServiceVersion'] = self._serialize.header("data_service_version", data_service_version, 'str') + 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) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['x-ms-continuation-NextTableName']=self._deserialize('str', response.headers.get('x-ms-continuation-NextTableName')) + deserialized = self._deserialize('TableQueryResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + query.metadata = {'url': '/Tables'} # type: ignore + + async def create( + self, + table_properties: "_models.TableProperties", + request_id_parameter: Optional[str] = None, + response_preference: Optional[Union[str, "_models.ResponseFormat"]] = None, + query_options: Optional["_models.QueryOptions"] = None, + **kwargs + ) -> Optional["_models.TableResponse"]: + """Creates a new table under the given account. + + :param table_properties: The Table properties. + :type table_properties: ~azure.data.tables.models.TableProperties + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param response_preference: Specifies whether the response should include the inserted entity + in the payload. Possible values are return-no-content and return-content. + :type response_preference: str or ~azure.data.tables.models.ResponseFormat + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TableResponse, or the result of cls(response) + :rtype: ~azure.data.tables.models.TableResponse or None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.TableResponse"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + content_type = kwargs.pop("content_type", "application/json;odata=nometadata") + accept = "application/json;odata=minimalmetadata" + + # Construct URL + url = self.create.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if _format is not None: + query_parameters['$format'] = self._serialize.query("format", _format, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + header_parameters['DataServiceVersion'] = self._serialize.header("data_service_version", data_service_version, 'str') + if response_preference is not None: + header_parameters['Prefer'] = self._serialize.header("response_preference", response_preference, 'str') + 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(table_properties, 'TableProperties') + 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 [201, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + deserialized = None + if response.status_code == 201: + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['Preference-Applied']=self._deserialize('str', response.headers.get('Preference-Applied')) + deserialized = self._deserialize('TableResponse', pipeline_response) + + if response.status_code == 204: + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['Preference-Applied']=self._deserialize('str', response.headers.get('Preference-Applied')) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + create.metadata = {'url': '/Tables'} # type: ignore + + async def delete( + self, + table: str, + request_id_parameter: Optional[str] = None, + **kwargs + ) -> None: + """Operation permanently deletes the specified table. + + :param table: The name of the table. + :type table: str + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + + if cls: + return cls(pipeline_response, None, response_headers) + + delete.metadata = {'url': '/Tables(\'{table}\')'} # type: ignore + + async def query_entities( + self, + table: str, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + next_partition_key: Optional[str] = None, + next_row_key: Optional[str] = None, + query_options: Optional["_models.QueryOptions"] = None, + **kwargs + ) -> "_models.TableEntityQueryResponse": + """Queries entities in a table. + + :param table: The name of the table. + :type table: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param next_partition_key: An entity query continuation token from a previous call. + :type next_partition_key: str + :param next_row_key: An entity query continuation token from a previous call. + :type next_row_key: str + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TableEntityQueryResponse, or the result of cls(response) + :rtype: ~azure.data.tables.models.TableEntityQueryResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TableEntityQueryResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _format = None + _top = None + _select = None + _filter = None + if query_options is not None: + _format = query_options.format + _top = query_options.top + _select = query_options.select + _filter = query_options.filter + data_service_version = "3.0" + accept = "application/json;odata=minimalmetadata" + + # Construct URL + url = self.query_entities.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if _format is not None: + query_parameters['$format'] = self._serialize.query("format", _format, 'str') + if _top is not None: + query_parameters['$top'] = self._serialize.query("top", _top, 'int', minimum=0) + if _select is not None: + query_parameters['$select'] = self._serialize.query("select", _select, 'str') + if _filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", _filter, 'str') + if next_partition_key is not None: + query_parameters['NextPartitionKey'] = self._serialize.query("next_partition_key", next_partition_key, 'str') + if next_row_key is not None: + query_parameters['NextRowKey'] = self._serialize.query("next_row_key", next_row_key, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + header_parameters['DataServiceVersion'] = self._serialize.header("data_service_version", data_service_version, 'str') + 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) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['x-ms-continuation-NextPartitionKey']=self._deserialize('str', response.headers.get('x-ms-continuation-NextPartitionKey')) + response_headers['x-ms-continuation-NextRowKey']=self._deserialize('str', response.headers.get('x-ms-continuation-NextRowKey')) + deserialized = self._deserialize('TableEntityQueryResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + query_entities.metadata = {'url': '/{table}()'} # type: ignore + + async def query_entity_with_partition_and_row_key( + self, + table: str, + partition_key: str, + row_key: str, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + query_options: Optional["_models.QueryOptions"] = None, + **kwargs + ) -> Dict[str, object]: + """Queries a single entity in a table. + + :param table: The name of the table. + :type table: str + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: dict mapping str to object, or the result of cls(response) + :rtype: dict[str, object] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Dict[str, object]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _format = None + _select = None + _filter = None + if query_options is not None: + _format = query_options.format + _select = query_options.select + _filter = query_options.filter + data_service_version = "3.0" + accept = "application/json;odata=minimalmetadata" + + # Construct URL + url = self.query_entity_with_partition_and_row_key.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + 'partitionKey': self._serialize.url("partition_key", partition_key, 'str'), + 'rowKey': self._serialize.url("row_key", row_key, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if _format is not None: + query_parameters['$format'] = self._serialize.query("format", _format, 'str') + if _select is not None: + query_parameters['$select'] = self._serialize.query("select", _select, 'str') + if _filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", _filter, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + header_parameters['DataServiceVersion'] = self._serialize.header("data_service_version", data_service_version, 'str') + 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) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['ETag']=self._deserialize('str', response.headers.get('ETag')) + response_headers['x-ms-continuation-NextPartitionKey']=self._deserialize('str', response.headers.get('x-ms-continuation-NextPartitionKey')) + response_headers['x-ms-continuation-NextRowKey']=self._deserialize('str', response.headers.get('x-ms-continuation-NextRowKey')) + deserialized = self._deserialize('{object}', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + query_entity_with_partition_and_row_key.metadata = {'url': '/{table}(PartitionKey=\'{partitionKey}\',RowKey=\'{rowKey}\')'} # type: ignore + + async def update_entity( + self, + table: str, + partition_key: str, + row_key: str, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + if_match: Optional[str] = None, + table_entity_properties: Optional[Dict[str, object]] = None, + query_options: Optional["_models.QueryOptions"] = None, + **kwargs + ) -> None: + """Update entity in a table. + + :param table: The name of the table. + :type table: str + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param if_match: Match condition for an entity to be updated. If specified and a matching + entity is not found, an error will be raised. To force an unconditional update, set to the + wildcard character (*). If not specified, an insert will be performed when no existing entity + is found to update and a replace will be performed if an existing entity is found. + :type if_match: str + :param table_entity_properties: The properties for the table entity. + :type table_entity_properties: dict[str, object] + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_entity.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + 'partitionKey': self._serialize.url("partition_key", partition_key, 'str'), + 'rowKey': self._serialize.url("row_key", row_key, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if _format is not None: + query_parameters['$format'] = self._serialize.query("format", _format, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + header_parameters['DataServiceVersion'] = self._serialize.header("data_service_version", data_service_version, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + 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] + if table_entity_properties is not None: + body_content = self._serialize.body(table_entity_properties, '{object}') + else: + body_content = None + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['ETag']=self._deserialize('str', response.headers.get('ETag')) + + if cls: + return cls(pipeline_response, None, response_headers) + + update_entity.metadata = {'url': '/{table}(PartitionKey=\'{partitionKey}\',RowKey=\'{rowKey}\')'} # type: ignore + + async def merge_entity( + self, + table: str, + partition_key: str, + row_key: str, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + if_match: Optional[str] = None, + table_entity_properties: Optional[Dict[str, object]] = None, + query_options: Optional["_models.QueryOptions"] = None, + **kwargs + ) -> None: + """Merge entity in a table. + + :param table: The name of the table. + :type table: str + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param if_match: Match condition for an entity to be updated. If specified and a matching + entity is not found, an error will be raised. To force an unconditional update, set to the + wildcard character (*). If not specified, an insert will be performed when no existing entity + is found to update and a merge will be performed if an existing entity is found. + :type if_match: str + :param table_entity_properties: The properties for the table entity. + :type table_entity_properties: dict[str, object] + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.merge_entity.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + 'partitionKey': self._serialize.url("partition_key", partition_key, 'str'), + 'rowKey': self._serialize.url("row_key", row_key, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if _format is not None: + query_parameters['$format'] = self._serialize.query("format", _format, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + header_parameters['DataServiceVersion'] = self._serialize.header("data_service_version", data_service_version, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + 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] + if table_entity_properties is not None: + body_content = self._serialize.body(table_entity_properties, '{object}') + else: + body_content = None + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['ETag']=self._deserialize('str', response.headers.get('ETag')) + + if cls: + return cls(pipeline_response, None, response_headers) + + merge_entity.metadata = {'url': '/{table}(PartitionKey=\'{partitionKey}\',RowKey=\'{rowKey}\')'} # type: ignore + + async def delete_entity( + self, + table: str, + partition_key: str, + row_key: str, + if_match: str, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + query_options: Optional["_models.QueryOptions"] = None, + **kwargs + ) -> None: + """Deletes the specified entity in a table. + + :param table: The name of the table. + :type table: str + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :param if_match: Match condition for an entity to be deleted. If specified and a matching + entity is not found, an error will be raised. To force an unconditional delete, set to the + wildcard character (*). + :type if_match: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + accept = "application/json;odata=minimalmetadata" + + # Construct URL + url = self.delete_entity.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + 'partitionKey': self._serialize.url("partition_key", partition_key, 'str'), + 'rowKey': self._serialize.url("row_key", row_key, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if _format is not None: + query_parameters['$format'] = self._serialize.query("format", _format, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + header_parameters['DataServiceVersion'] = self._serialize.header("data_service_version", data_service_version, 'str') + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + + if cls: + return cls(pipeline_response, None, response_headers) + + delete_entity.metadata = {'url': '/{table}(PartitionKey=\'{partitionKey}\',RowKey=\'{rowKey}\')'} # type: ignore + + async def insert_entity( + self, + table: str, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + response_preference: Optional[Union[str, "_models.ResponseFormat"]] = None, + table_entity_properties: Optional[Dict[str, object]] = None, + query_options: Optional["_models.QueryOptions"] = None, + **kwargs + ) -> Optional[Dict[str, object]]: + """Insert entity in a table. + + :param table: The name of the table. + :type table: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param response_preference: Specifies whether the response should include the inserted entity + in the payload. Possible values are return-no-content and return-content. + :type response_preference: str or ~azure.data.tables.models.ResponseFormat + :param table_entity_properties: The properties for the table entity. + :type table_entity_properties: dict[str, object] + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: dict mapping str to object, or the result of cls(response) + :rtype: dict[str, object] or None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Optional[Dict[str, object]]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + content_type = kwargs.pop("content_type", "application/json;odata=nometadata") + accept = "application/json;odata=minimalmetadata" + + # Construct URL + url = self.insert_entity.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if _format is not None: + query_parameters['$format'] = self._serialize.query("format", _format, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + header_parameters['DataServiceVersion'] = self._serialize.header("data_service_version", data_service_version, 'str') + if response_preference is not None: + header_parameters['Prefer'] = self._serialize.header("response_preference", response_preference, 'str') + 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] + if table_entity_properties is not None: + body_content = self._serialize.body(table_entity_properties, '{object}') + else: + body_content = None + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + deserialized = None + if response.status_code == 201: + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['ETag']=self._deserialize('str', response.headers.get('ETag')) + response_headers['Preference-Applied']=self._deserialize('str', response.headers.get('Preference-Applied')) + response_headers['Content-Type']=self._deserialize('str', response.headers.get('Content-Type')) + deserialized = self._deserialize('{object}', pipeline_response) + + if response.status_code == 204: + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['ETag']=self._deserialize('str', response.headers.get('ETag')) + response_headers['Preference-Applied']=self._deserialize('str', response.headers.get('Preference-Applied')) + response_headers['Content-Type']=self._deserialize('str', response.headers.get('Content-Type')) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + insert_entity.metadata = {'url': '/{table}'} # type: ignore + + async def get_access_policy( + self, + table: str, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + **kwargs + ) -> List["_models.SignedIdentifier"]: + """Retrieves details about any stored access policies specified on the table that may be used with + Shared Access Signatures. + + :param table: The name of the table. + :type table: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of SignedIdentifier, or the result of cls(response) + :rtype: list[~azure.data.tables.models.SignedIdentifier] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.SignedIdentifier"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + comp = "acl" + accept = "application/xml" + + # Construct URL + url = self.get_access_policy.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + 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) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + deserialized = self._deserialize('[SignedIdentifier]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + get_access_policy.metadata = {'url': '/{table}'} # type: ignore + + async def set_access_policy( + self, + table: str, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + table_acl: Optional[List["_models.SignedIdentifier"]] = None, + **kwargs + ) -> None: + """Sets stored access policies for the table that may be used with Shared Access Signatures. + + :param table: The name of the table. + :type table: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param table_acl: The acls for the table. + :type table_acl: list[~azure.data.tables.models.SignedIdentifier] + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + comp = "acl" + content_type = kwargs.pop("content_type", "application/xml") + accept = "application/xml" + + # Construct URL + url = self.set_access_policy.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + 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] + serialization_ctxt = {'xml': {'name': 'SignedIdentifiers', 'wrapped': True, 'itemsName': 'SignedIdentifier'}} + if table_acl is not None: + body_content = self._serialize.body(table_acl, '[SignedIdentifier]', is_xml=True, serialization_ctxt=serialization_ctxt) + else: + body_content = None + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + + if cls: + return cls(pipeline_response, None, response_headers) + + set_access_policy.metadata = {'url': '/{table}'} # type: ignore diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/models/__init__.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/models/__init__.py new file mode 100644 index 000000000000..79fdccd13282 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/models/__init__.py @@ -0,0 +1,70 @@ +# 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. +# -------------------------------------------------------------------------- + +try: + from ._models_py3 import AccessPolicy + from ._models_py3 import CorsRule + from ._models_py3 import GeoReplication + from ._models_py3 import Logging + from ._models_py3 import Metrics + from ._models_py3 import QueryOptions + from ._models_py3 import RetentionPolicy + from ._models_py3 import SignedIdentifier + from ._models_py3 import TableEntityQueryResponse + from ._models_py3 import TableProperties + from ._models_py3 import TableQueryResponse + from ._models_py3 import TableResponse + from ._models_py3 import TableResponseProperties + from ._models_py3 import TableServiceError + from ._models_py3 import TableServiceProperties + from ._models_py3 import TableServiceStats +except (SyntaxError, ImportError): + from ._models import AccessPolicy # type: ignore + from ._models import CorsRule # type: ignore + from ._models import GeoReplication # type: ignore + from ._models import Logging # type: ignore + from ._models import Metrics # type: ignore + from ._models import QueryOptions # type: ignore + from ._models import RetentionPolicy # type: ignore + from ._models import SignedIdentifier # type: ignore + from ._models import TableEntityQueryResponse # type: ignore + from ._models import TableProperties # type: ignore + from ._models import TableQueryResponse # type: ignore + from ._models import TableResponse # type: ignore + from ._models import TableResponseProperties # type: ignore + from ._models import TableServiceError # type: ignore + from ._models import TableServiceProperties # type: ignore + from ._models import TableServiceStats # type: ignore + +from ._azure_table_enums import ( + GeoReplicationStatusType, + OdataMetadataFormat, + ResponseFormat, +) + +__all__ = [ + 'AccessPolicy', + 'CorsRule', + 'GeoReplication', + 'Logging', + 'Metrics', + 'QueryOptions', + 'RetentionPolicy', + 'SignedIdentifier', + 'TableEntityQueryResponse', + 'TableProperties', + 'TableQueryResponse', + 'TableResponse', + 'TableResponseProperties', + 'TableServiceError', + 'TableServiceProperties', + 'TableServiceStats', + 'GeoReplicationStatusType', + 'OdataMetadataFormat', + 'ResponseFormat', +] diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/models/_azure_table_enums.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/models/_azure_table_enums.py new file mode 100644 index 000000000000..7685b428f163 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/models/_azure_table_enums.py @@ -0,0 +1,46 @@ +# 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 enum import Enum, EnumMeta +from six import with_metaclass + +class _CaseInsensitiveEnumMeta(EnumMeta): + def __getitem__(self, name): + return super().__getitem__(name.upper()) + + def __getattr__(cls, name): + """Return the enum member matching `name` + We use __getattr__ instead of descriptors or inserting into the enum + class' __dict__ in order to support `name` and `value` being both + properties for enum members (which live in the class' __dict__) and + enum members themselves. + """ + try: + return cls._member_map_[name.upper()] + except KeyError: + raise AttributeError(name) + + +class GeoReplicationStatusType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The status of the secondary location. + """ + + LIVE = "live" + BOOTSTRAP = "bootstrap" + UNAVAILABLE = "unavailable" + +class OdataMetadataFormat(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + APPLICATION_JSON_ODATA_NOMETADATA = "application/json;odata=nometadata" + APPLICATION_JSON_ODATA_MINIMALMETADATA = "application/json;odata=minimalmetadata" + APPLICATION_JSON_ODATA_FULLMETADATA = "application/json;odata=fullmetadata" + +class ResponseFormat(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + RETURN_NO_CONTENT = "return-no-content" + RETURN_CONTENT = "return-content" diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/models/_models.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/models/_models.py new file mode 100644 index 000000000000..1138cbf8dc5a --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/models/_models.py @@ -0,0 +1,540 @@ +# 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 azure.core.exceptions import HttpResponseError +import msrest.serialization + + +class AccessPolicy(msrest.serialization.Model): + """An Access policy. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. The start datetime from which the policy is active. + :type start: str + :param expiry: Required. The datetime that the policy expires. + :type expiry: str + :param permission: Required. The permissions for the acl policy. + :type permission: str + """ + + _validation = { + 'start': {'required': True}, + 'expiry': {'required': True}, + 'permission': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'str', 'xml': {'name': 'Start'}}, + 'expiry': {'key': 'Expiry', 'type': 'str', 'xml': {'name': 'Expiry'}}, + 'permission': {'key': 'Permission', 'type': 'str', 'xml': {'name': 'Permission'}}, + } + _xml_map = { + 'name': 'AccessPolicy' + } + + def __init__( + self, + **kwargs + ): + super(AccessPolicy, self).__init__(**kwargs) + self.start = kwargs['start'] + self.expiry = kwargs['expiry'] + self.permission = kwargs['permission'] + + +class CorsRule(msrest.serialization.Model): + """CORS is an HTTP feature that enables a web application running under one domain to access resources in another domain. Web browsers implement a security restriction known as same-origin policy that prevents a web page from calling APIs in a different domain; CORS provides a secure way to allow one domain (the origin domain) to call APIs in another domain. + + All required parameters must be populated in order to send to Azure. + + :param allowed_origins: Required. The origin domains that are permitted to make a request + against the service via CORS. The origin domain is the domain from which the request + originates. Note that the origin must be an exact case-sensitive match with the origin that the + user age sends to the service. You can also use the wildcard character '*' to allow all origin + domains to make requests via CORS. + :type allowed_origins: str + :param allowed_methods: Required. The methods (HTTP request verbs) that the origin domain may + use for a CORS request. (comma separated). + :type allowed_methods: str + :param allowed_headers: Required. The request headers that the origin domain may specify on the + CORS request. + :type allowed_headers: str + :param exposed_headers: Required. The response headers that may be sent in the response to the + CORS request and exposed by the browser to the request issuer. + :type exposed_headers: str + :param max_age_in_seconds: Required. The maximum amount time that a browser should cache the + preflight OPTIONS request. + :type max_age_in_seconds: int + """ + + _validation = { + 'allowed_origins': {'required': True}, + 'allowed_methods': {'required': True}, + 'allowed_headers': {'required': True}, + 'exposed_headers': {'required': True}, + 'max_age_in_seconds': {'required': True, 'minimum': 0}, + } + + _attribute_map = { + 'allowed_origins': {'key': 'AllowedOrigins', 'type': 'str', 'xml': {'name': 'AllowedOrigins'}}, + 'allowed_methods': {'key': 'AllowedMethods', 'type': 'str', 'xml': {'name': 'AllowedMethods'}}, + 'allowed_headers': {'key': 'AllowedHeaders', 'type': 'str', 'xml': {'name': 'AllowedHeaders'}}, + 'exposed_headers': {'key': 'ExposedHeaders', 'type': 'str', 'xml': {'name': 'ExposedHeaders'}}, + 'max_age_in_seconds': {'key': 'MaxAgeInSeconds', 'type': 'int', 'xml': {'name': 'MaxAgeInSeconds'}}, + } + _xml_map = { + 'name': 'CorsRule' + } + + def __init__( + self, + **kwargs + ): + super(CorsRule, self).__init__(**kwargs) + self.allowed_origins = kwargs['allowed_origins'] + self.allowed_methods = kwargs['allowed_methods'] + self.allowed_headers = kwargs['allowed_headers'] + self.exposed_headers = kwargs['exposed_headers'] + self.max_age_in_seconds = kwargs['max_age_in_seconds'] + + +class GeoReplication(msrest.serialization.Model): + """GeoReplication. + + All required parameters must be populated in order to send to Azure. + + :param status: Required. The status of the secondary location. Possible values include: "live", + "bootstrap", "unavailable". + :type status: str or ~azure.data.tables.models.GeoReplicationStatusType + :param last_sync_time: Required. A GMT date/time value, to the second. All primary writes + preceding this value are guaranteed to be available for read operations at the secondary. + Primary writes after this point in time may or may not be available for reads. + :type last_sync_time: ~datetime.datetime + """ + + _validation = { + 'status': {'required': True}, + 'last_sync_time': {'required': True}, + } + + _attribute_map = { + 'status': {'key': 'Status', 'type': 'str', 'xml': {'name': 'Status'}}, + 'last_sync_time': {'key': 'LastSyncTime', 'type': 'rfc-1123', 'xml': {'name': 'LastSyncTime'}}, + } + _xml_map = { + 'name': 'GeoReplication' + } + + def __init__( + self, + **kwargs + ): + super(GeoReplication, self).__init__(**kwargs) + self.status = kwargs['status'] + self.last_sync_time = kwargs['last_sync_time'] + + +class Logging(msrest.serialization.Model): + """Azure Analytics Logging settings. + + All required parameters must be populated in order to send to Azure. + + :param version: Required. The version of Analytics to configure. + :type version: str + :param delete: Required. Indicates whether all delete requests should be logged. + :type delete: bool + :param read: Required. Indicates whether all read requests should be logged. + :type read: bool + :param write: Required. Indicates whether all write requests should be logged. + :type write: bool + :param retention_policy: Required. The retention policy. + :type retention_policy: ~azure.data.tables.models.RetentionPolicy + """ + + _validation = { + 'version': {'required': True}, + 'delete': {'required': True}, + 'read': {'required': True}, + 'write': {'required': True}, + 'retention_policy': {'required': True}, + } + + _attribute_map = { + 'version': {'key': 'Version', 'type': 'str', 'xml': {'name': 'Version'}}, + 'delete': {'key': 'Delete', 'type': 'bool', 'xml': {'name': 'Delete'}}, + 'read': {'key': 'Read', 'type': 'bool', 'xml': {'name': 'Read'}}, + 'write': {'key': 'Write', 'type': 'bool', 'xml': {'name': 'Write'}}, + 'retention_policy': {'key': 'RetentionPolicy', 'type': 'RetentionPolicy'}, + } + _xml_map = { + 'name': 'Logging' + } + + def __init__( + self, + **kwargs + ): + super(Logging, self).__init__(**kwargs) + self.version = kwargs['version'] + self.delete = kwargs['delete'] + self.read = kwargs['read'] + self.write = kwargs['write'] + self.retention_policy = kwargs['retention_policy'] + + +class Metrics(msrest.serialization.Model): + """Metrics. + + All required parameters must be populated in order to send to Azure. + + :param version: The version of Analytics to configure. + :type version: str + :param enabled: Required. Indicates whether metrics are enabled for the Table service. + :type enabled: bool + :param include_apis: Indicates whether metrics should generate summary statistics for called + API operations. + :type include_apis: bool + :param retention_policy: The retention policy. + :type retention_policy: ~azure.data.tables.models.RetentionPolicy + """ + + _validation = { + 'enabled': {'required': True}, + } + + _attribute_map = { + 'version': {'key': 'Version', 'type': 'str', 'xml': {'name': 'Version'}}, + 'enabled': {'key': 'Enabled', 'type': 'bool', 'xml': {'name': 'Enabled'}}, + 'include_apis': {'key': 'IncludeAPIs', 'type': 'bool', 'xml': {'name': 'IncludeAPIs'}}, + 'retention_policy': {'key': 'RetentionPolicy', 'type': 'RetentionPolicy'}, + } + _xml_map = { + + } + + def __init__( + self, + **kwargs + ): + super(Metrics, self).__init__(**kwargs) + self.version = kwargs.get('version', None) + self.enabled = kwargs['enabled'] + self.include_apis = kwargs.get('include_apis', None) + self.retention_policy = kwargs.get('retention_policy', None) + + +class QueryOptions(msrest.serialization.Model): + """Parameter group. + + :param format: Specifies the media type for the response. Possible values include: + "application/json;odata=nometadata", "application/json;odata=minimalmetadata", + "application/json;odata=fullmetadata". + :type format: str or ~azure.data.tables.models.OdataMetadataFormat + :param top: Maximum number of records to return. + :type top: int + :param select: Select expression using OData notation. Limits the columns on each record to + just those requested, e.g. "$select=PolicyAssignmentId, ResourceId". + :type select: str + :param filter: OData filter expression. + :type filter: str + """ + + _validation = { + 'top': {'minimum': 0}, + } + + _attribute_map = { + 'format': {'key': 'Format', 'type': 'str'}, + 'top': {'key': 'Top', 'type': 'int'}, + 'select': {'key': 'Select', 'type': 'str'}, + 'filter': {'key': 'Filter', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(QueryOptions, self).__init__(**kwargs) + self.format = kwargs.get('format', None) + self.top = kwargs.get('top', None) + self.select = kwargs.get('select', None) + self.filter = kwargs.get('filter', None) + + +class RetentionPolicy(msrest.serialization.Model): + """The retention policy. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Required. Indicates whether a retention policy is enabled for the service. + :type enabled: bool + :param days: Indicates the number of days that metrics or logging or soft-deleted data should + be retained. All data older than this value will be deleted. + :type days: int + """ + + _validation = { + 'enabled': {'required': True}, + 'days': {'minimum': 1}, + } + + _attribute_map = { + 'enabled': {'key': 'Enabled', 'type': 'bool', 'xml': {'name': 'Enabled'}}, + 'days': {'key': 'Days', 'type': 'int', 'xml': {'name': 'Days'}}, + } + _xml_map = { + 'name': 'RetentionPolicy' + } + + def __init__( + self, + **kwargs + ): + super(RetentionPolicy, self).__init__(**kwargs) + self.enabled = kwargs['enabled'] + self.days = kwargs.get('days', None) + + +class SignedIdentifier(msrest.serialization.Model): + """A signed identifier. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A unique id. + :type id: str + :param access_policy: The access policy. + :type access_policy: ~azure.data.tables.models.AccessPolicy + """ + + _validation = { + 'id': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'Id', 'type': 'str', 'xml': {'name': 'Id'}}, + 'access_policy': {'key': 'AccessPolicy', 'type': 'AccessPolicy'}, + } + _xml_map = { + 'name': 'SignedIdentifier' + } + + def __init__( + self, + **kwargs + ): + super(SignedIdentifier, self).__init__(**kwargs) + self.id = kwargs['id'] + self.access_policy = kwargs.get('access_policy', None) + + +class TableEntityQueryResponse(msrest.serialization.Model): + """The properties for the table entity query response. + + :param odata_metadata: The metadata response of the table. + :type odata_metadata: str + :param value: List of table entities. + :type value: list[dict[str, object]] + """ + + _attribute_map = { + 'odata_metadata': {'key': 'odata\\.metadata', 'type': 'str'}, + 'value': {'key': 'value', 'type': '[{object}]'}, + } + + def __init__( + self, + **kwargs + ): + super(TableEntityQueryResponse, self).__init__(**kwargs) + self.odata_metadata = kwargs.get('odata_metadata', None) + self.value = kwargs.get('value', None) + + +class TableProperties(msrest.serialization.Model): + """The properties for creating a table. + + :param table_name: The name of the table to create. + :type table_name: str + """ + + _attribute_map = { + 'table_name': {'key': 'TableName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(TableProperties, self).__init__(**kwargs) + self.table_name = kwargs.get('table_name', None) + + +class TableQueryResponse(msrest.serialization.Model): + """The properties for the table query response. + + :param odata_metadata: The metadata response of the table. + :type odata_metadata: str + :param value: List of tables. + :type value: list[~azure.data.tables.models.TableResponseProperties] + """ + + _attribute_map = { + 'odata_metadata': {'key': 'odata\\.metadata', 'type': 'str'}, + 'value': {'key': 'value', 'type': '[TableResponseProperties]'}, + } + + def __init__( + self, + **kwargs + ): + super(TableQueryResponse, self).__init__(**kwargs) + self.odata_metadata = kwargs.get('odata_metadata', None) + self.value = kwargs.get('value', None) + + +class TableResponseProperties(msrest.serialization.Model): + """The properties for the table response. + + :param table_name: The name of the table. + :type table_name: str + :param odata_type: The odata type of the table. + :type odata_type: str + :param odata_id: The id of the table. + :type odata_id: str + :param odata_edit_link: The edit link of the table. + :type odata_edit_link: str + """ + + _attribute_map = { + 'table_name': {'key': 'TableName', 'type': 'str'}, + 'odata_type': {'key': 'odata\\.type', 'type': 'str'}, + 'odata_id': {'key': 'odata\\.id', 'type': 'str'}, + 'odata_edit_link': {'key': 'odata\\.editLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(TableResponseProperties, self).__init__(**kwargs) + self.table_name = kwargs.get('table_name', None) + self.odata_type = kwargs.get('odata_type', None) + self.odata_id = kwargs.get('odata_id', None) + self.odata_edit_link = kwargs.get('odata_edit_link', None) + + +class TableResponse(TableResponseProperties): + """The response for a single table. + + :param table_name: The name of the table. + :type table_name: str + :param odata_type: The odata type of the table. + :type odata_type: str + :param odata_id: The id of the table. + :type odata_id: str + :param odata_edit_link: The edit link of the table. + :type odata_edit_link: str + :param odata_metadata: The metadata response of the table. + :type odata_metadata: str + """ + + _attribute_map = { + 'table_name': {'key': 'TableName', 'type': 'str'}, + 'odata_type': {'key': 'odata\\.type', 'type': 'str'}, + 'odata_id': {'key': 'odata\\.id', 'type': 'str'}, + 'odata_edit_link': {'key': 'odata\\.editLink', 'type': 'str'}, + 'odata_metadata': {'key': 'odata\\.metadata', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(TableResponse, self).__init__(**kwargs) + self.odata_metadata = kwargs.get('odata_metadata', None) + + +class TableServiceError(msrest.serialization.Model): + """Table Service error. + + :param message: The error message. + :type message: str + """ + + _attribute_map = { + 'message': {'key': 'Message', 'type': 'str', 'xml': {'name': 'Message'}}, + } + _xml_map = { + + } + + def __init__( + self, + **kwargs + ): + super(TableServiceError, self).__init__(**kwargs) + self.message = kwargs.get('message', None) + + +class TableServiceProperties(msrest.serialization.Model): + """Table Service Properties. + + :param logging: Azure Analytics Logging settings. + :type logging: ~azure.data.tables.models.Logging + :param hour_metrics: A summary of request statistics grouped by API in hourly aggregates for + tables. + :type hour_metrics: ~azure.data.tables.models.Metrics + :param minute_metrics: A summary of request statistics grouped by API in minute aggregates for + tables. + :type minute_metrics: ~azure.data.tables.models.Metrics + :param cors: The set of CORS rules. + :type cors: list[~azure.data.tables.models.CorsRule] + """ + + _attribute_map = { + 'logging': {'key': 'Logging', 'type': 'Logging'}, + 'hour_metrics': {'key': 'HourMetrics', 'type': 'Metrics'}, + 'minute_metrics': {'key': 'MinuteMetrics', 'type': 'Metrics'}, + 'cors': {'key': 'Cors', 'type': '[CorsRule]', 'xml': {'name': 'Cors', 'wrapped': True, 'itemsName': 'CorsRule'}}, + } + _xml_map = { + 'name': 'StorageServiceProperties' + } + + def __init__( + self, + **kwargs + ): + super(TableServiceProperties, self).__init__(**kwargs) + self.logging = kwargs.get('logging', None) + self.hour_metrics = kwargs.get('hour_metrics', None) + self.minute_metrics = kwargs.get('minute_metrics', None) + self.cors = kwargs.get('cors', None) + + +class TableServiceStats(msrest.serialization.Model): + """Stats for the service. + + :param geo_replication: Geo-Replication information for the Secondary Storage Service. + :type geo_replication: ~azure.data.tables.models.GeoReplication + """ + + _attribute_map = { + 'geo_replication': {'key': 'GeoReplication', 'type': 'GeoReplication'}, + } + _xml_map = { + 'name': 'StorageServiceStats' + } + + def __init__( + self, + **kwargs + ): + super(TableServiceStats, self).__init__(**kwargs) + self.geo_replication = kwargs.get('geo_replication', None) diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/models/_models_py3.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/models/_models_py3.py new file mode 100644 index 000000000000..13318e659b97 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/models/_models_py3.py @@ -0,0 +1,608 @@ +# 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. +# -------------------------------------------------------------------------- + +import datetime +from typing import Dict, List, Optional, Union + +from azure.core.exceptions import HttpResponseError +import msrest.serialization + +from ._azure_table_enums import * + + +class AccessPolicy(msrest.serialization.Model): + """An Access policy. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. The start datetime from which the policy is active. + :type start: str + :param expiry: Required. The datetime that the policy expires. + :type expiry: str + :param permission: Required. The permissions for the acl policy. + :type permission: str + """ + + _validation = { + 'start': {'required': True}, + 'expiry': {'required': True}, + 'permission': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'str', 'xml': {'name': 'Start'}}, + 'expiry': {'key': 'Expiry', 'type': 'str', 'xml': {'name': 'Expiry'}}, + 'permission': {'key': 'Permission', 'type': 'str', 'xml': {'name': 'Permission'}}, + } + _xml_map = { + 'name': 'AccessPolicy' + } + + def __init__( + self, + *, + start: str, + expiry: str, + permission: str, + **kwargs + ): + super(AccessPolicy, self).__init__(**kwargs) + self.start = start + self.expiry = expiry + self.permission = permission + + +class CorsRule(msrest.serialization.Model): + """CORS is an HTTP feature that enables a web application running under one domain to access resources in another domain. Web browsers implement a security restriction known as same-origin policy that prevents a web page from calling APIs in a different domain; CORS provides a secure way to allow one domain (the origin domain) to call APIs in another domain. + + All required parameters must be populated in order to send to Azure. + + :param allowed_origins: Required. The origin domains that are permitted to make a request + against the service via CORS. The origin domain is the domain from which the request + originates. Note that the origin must be an exact case-sensitive match with the origin that the + user age sends to the service. You can also use the wildcard character '*' to allow all origin + domains to make requests via CORS. + :type allowed_origins: str + :param allowed_methods: Required. The methods (HTTP request verbs) that the origin domain may + use for a CORS request. (comma separated). + :type allowed_methods: str + :param allowed_headers: Required. The request headers that the origin domain may specify on the + CORS request. + :type allowed_headers: str + :param exposed_headers: Required. The response headers that may be sent in the response to the + CORS request and exposed by the browser to the request issuer. + :type exposed_headers: str + :param max_age_in_seconds: Required. The maximum amount time that a browser should cache the + preflight OPTIONS request. + :type max_age_in_seconds: int + """ + + _validation = { + 'allowed_origins': {'required': True}, + 'allowed_methods': {'required': True}, + 'allowed_headers': {'required': True}, + 'exposed_headers': {'required': True}, + 'max_age_in_seconds': {'required': True, 'minimum': 0}, + } + + _attribute_map = { + 'allowed_origins': {'key': 'AllowedOrigins', 'type': 'str', 'xml': {'name': 'AllowedOrigins'}}, + 'allowed_methods': {'key': 'AllowedMethods', 'type': 'str', 'xml': {'name': 'AllowedMethods'}}, + 'allowed_headers': {'key': 'AllowedHeaders', 'type': 'str', 'xml': {'name': 'AllowedHeaders'}}, + 'exposed_headers': {'key': 'ExposedHeaders', 'type': 'str', 'xml': {'name': 'ExposedHeaders'}}, + 'max_age_in_seconds': {'key': 'MaxAgeInSeconds', 'type': 'int', 'xml': {'name': 'MaxAgeInSeconds'}}, + } + _xml_map = { + 'name': 'CorsRule' + } + + def __init__( + self, + *, + allowed_origins: str, + allowed_methods: str, + allowed_headers: str, + exposed_headers: str, + max_age_in_seconds: int, + **kwargs + ): + super(CorsRule, self).__init__(**kwargs) + self.allowed_origins = allowed_origins + self.allowed_methods = allowed_methods + self.allowed_headers = allowed_headers + self.exposed_headers = exposed_headers + self.max_age_in_seconds = max_age_in_seconds + + +class GeoReplication(msrest.serialization.Model): + """GeoReplication. + + All required parameters must be populated in order to send to Azure. + + :param status: Required. The status of the secondary location. Possible values include: "live", + "bootstrap", "unavailable". + :type status: str or ~azure.data.tables.models.GeoReplicationStatusType + :param last_sync_time: Required. A GMT date/time value, to the second. All primary writes + preceding this value are guaranteed to be available for read operations at the secondary. + Primary writes after this point in time may or may not be available for reads. + :type last_sync_time: ~datetime.datetime + """ + + _validation = { + 'status': {'required': True}, + 'last_sync_time': {'required': True}, + } + + _attribute_map = { + 'status': {'key': 'Status', 'type': 'str', 'xml': {'name': 'Status'}}, + 'last_sync_time': {'key': 'LastSyncTime', 'type': 'rfc-1123', 'xml': {'name': 'LastSyncTime'}}, + } + _xml_map = { + 'name': 'GeoReplication' + } + + def __init__( + self, + *, + status: Union[str, "GeoReplicationStatusType"], + last_sync_time: datetime.datetime, + **kwargs + ): + super(GeoReplication, self).__init__(**kwargs) + self.status = status + self.last_sync_time = last_sync_time + + +class Logging(msrest.serialization.Model): + """Azure Analytics Logging settings. + + All required parameters must be populated in order to send to Azure. + + :param version: Required. The version of Analytics to configure. + :type version: str + :param delete: Required. Indicates whether all delete requests should be logged. + :type delete: bool + :param read: Required. Indicates whether all read requests should be logged. + :type read: bool + :param write: Required. Indicates whether all write requests should be logged. + :type write: bool + :param retention_policy: Required. The retention policy. + :type retention_policy: ~azure.data.tables.models.RetentionPolicy + """ + + _validation = { + 'version': {'required': True}, + 'delete': {'required': True}, + 'read': {'required': True}, + 'write': {'required': True}, + 'retention_policy': {'required': True}, + } + + _attribute_map = { + 'version': {'key': 'Version', 'type': 'str', 'xml': {'name': 'Version'}}, + 'delete': {'key': 'Delete', 'type': 'bool', 'xml': {'name': 'Delete'}}, + 'read': {'key': 'Read', 'type': 'bool', 'xml': {'name': 'Read'}}, + 'write': {'key': 'Write', 'type': 'bool', 'xml': {'name': 'Write'}}, + 'retention_policy': {'key': 'RetentionPolicy', 'type': 'RetentionPolicy'}, + } + _xml_map = { + 'name': 'Logging' + } + + def __init__( + self, + *, + version: str, + delete: bool, + read: bool, + write: bool, + retention_policy: "RetentionPolicy", + **kwargs + ): + super(Logging, self).__init__(**kwargs) + self.version = version + self.delete = delete + self.read = read + self.write = write + self.retention_policy = retention_policy + + +class Metrics(msrest.serialization.Model): + """Metrics. + + All required parameters must be populated in order to send to Azure. + + :param version: The version of Analytics to configure. + :type version: str + :param enabled: Required. Indicates whether metrics are enabled for the Table service. + :type enabled: bool + :param include_apis: Indicates whether metrics should generate summary statistics for called + API operations. + :type include_apis: bool + :param retention_policy: The retention policy. + :type retention_policy: ~azure.data.tables.models.RetentionPolicy + """ + + _validation = { + 'enabled': {'required': True}, + } + + _attribute_map = { + 'version': {'key': 'Version', 'type': 'str', 'xml': {'name': 'Version'}}, + 'enabled': {'key': 'Enabled', 'type': 'bool', 'xml': {'name': 'Enabled'}}, + 'include_apis': {'key': 'IncludeAPIs', 'type': 'bool', 'xml': {'name': 'IncludeAPIs'}}, + 'retention_policy': {'key': 'RetentionPolicy', 'type': 'RetentionPolicy'}, + } + _xml_map = { + + } + + def __init__( + self, + *, + enabled: bool, + version: Optional[str] = None, + include_apis: Optional[bool] = None, + retention_policy: Optional["RetentionPolicy"] = None, + **kwargs + ): + super(Metrics, self).__init__(**kwargs) + self.version = version + self.enabled = enabled + self.include_apis = include_apis + self.retention_policy = retention_policy + + +class QueryOptions(msrest.serialization.Model): + """Parameter group. + + :param format: Specifies the media type for the response. Possible values include: + "application/json;odata=nometadata", "application/json;odata=minimalmetadata", + "application/json;odata=fullmetadata". + :type format: str or ~azure.data.tables.models.OdataMetadataFormat + :param top: Maximum number of records to return. + :type top: int + :param select: Select expression using OData notation. Limits the columns on each record to + just those requested, e.g. "$select=PolicyAssignmentId, ResourceId". + :type select: str + :param filter: OData filter expression. + :type filter: str + """ + + _validation = { + 'top': {'minimum': 0}, + } + + _attribute_map = { + 'format': {'key': 'Format', 'type': 'str'}, + 'top': {'key': 'Top', 'type': 'int'}, + 'select': {'key': 'Select', 'type': 'str'}, + 'filter': {'key': 'Filter', 'type': 'str'}, + } + + def __init__( + self, + *, + format: Optional[Union[str, "OdataMetadataFormat"]] = None, + top: Optional[int] = None, + select: Optional[str] = None, + filter: Optional[str] = None, + **kwargs + ): + super(QueryOptions, self).__init__(**kwargs) + self.format = format + self.top = top + self.select = select + self.filter = filter + + +class RetentionPolicy(msrest.serialization.Model): + """The retention policy. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Required. Indicates whether a retention policy is enabled for the service. + :type enabled: bool + :param days: Indicates the number of days that metrics or logging or soft-deleted data should + be retained. All data older than this value will be deleted. + :type days: int + """ + + _validation = { + 'enabled': {'required': True}, + 'days': {'minimum': 1}, + } + + _attribute_map = { + 'enabled': {'key': 'Enabled', 'type': 'bool', 'xml': {'name': 'Enabled'}}, + 'days': {'key': 'Days', 'type': 'int', 'xml': {'name': 'Days'}}, + } + _xml_map = { + 'name': 'RetentionPolicy' + } + + def __init__( + self, + *, + enabled: bool, + days: Optional[int] = None, + **kwargs + ): + super(RetentionPolicy, self).__init__(**kwargs) + self.enabled = enabled + self.days = days + + +class SignedIdentifier(msrest.serialization.Model): + """A signed identifier. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A unique id. + :type id: str + :param access_policy: The access policy. + :type access_policy: ~azure.data.tables.models.AccessPolicy + """ + + _validation = { + 'id': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'Id', 'type': 'str', 'xml': {'name': 'Id'}}, + 'access_policy': {'key': 'AccessPolicy', 'type': 'AccessPolicy'}, + } + _xml_map = { + 'name': 'SignedIdentifier' + } + + def __init__( + self, + *, + id: str, + access_policy: Optional["AccessPolicy"] = None, + **kwargs + ): + super(SignedIdentifier, self).__init__(**kwargs) + self.id = id + self.access_policy = access_policy + + +class TableEntityQueryResponse(msrest.serialization.Model): + """The properties for the table entity query response. + + :param odata_metadata: The metadata response of the table. + :type odata_metadata: str + :param value: List of table entities. + :type value: list[dict[str, object]] + """ + + _attribute_map = { + 'odata_metadata': {'key': 'odata\\.metadata', 'type': 'str'}, + 'value': {'key': 'value', 'type': '[{object}]'}, + } + + def __init__( + self, + *, + odata_metadata: Optional[str] = None, + value: Optional[List[Dict[str, object]]] = None, + **kwargs + ): + super(TableEntityQueryResponse, self).__init__(**kwargs) + self.odata_metadata = odata_metadata + self.value = value + + +class TableProperties(msrest.serialization.Model): + """The properties for creating a table. + + :param table_name: The name of the table to create. + :type table_name: str + """ + + _attribute_map = { + 'table_name': {'key': 'TableName', 'type': 'str'}, + } + + def __init__( + self, + *, + table_name: Optional[str] = None, + **kwargs + ): + super(TableProperties, self).__init__(**kwargs) + self.table_name = table_name + + +class TableQueryResponse(msrest.serialization.Model): + """The properties for the table query response. + + :param odata_metadata: The metadata response of the table. + :type odata_metadata: str + :param value: List of tables. + :type value: list[~azure.data.tables.models.TableResponseProperties] + """ + + _attribute_map = { + 'odata_metadata': {'key': 'odata\\.metadata', 'type': 'str'}, + 'value': {'key': 'value', 'type': '[TableResponseProperties]'}, + } + + def __init__( + self, + *, + odata_metadata: Optional[str] = None, + value: Optional[List["TableResponseProperties"]] = None, + **kwargs + ): + super(TableQueryResponse, self).__init__(**kwargs) + self.odata_metadata = odata_metadata + self.value = value + + +class TableResponseProperties(msrest.serialization.Model): + """The properties for the table response. + + :param table_name: The name of the table. + :type table_name: str + :param odata_type: The odata type of the table. + :type odata_type: str + :param odata_id: The id of the table. + :type odata_id: str + :param odata_edit_link: The edit link of the table. + :type odata_edit_link: str + """ + + _attribute_map = { + 'table_name': {'key': 'TableName', 'type': 'str'}, + 'odata_type': {'key': 'odata\\.type', 'type': 'str'}, + 'odata_id': {'key': 'odata\\.id', 'type': 'str'}, + 'odata_edit_link': {'key': 'odata\\.editLink', 'type': 'str'}, + } + + def __init__( + self, + *, + table_name: Optional[str] = None, + odata_type: Optional[str] = None, + odata_id: Optional[str] = None, + odata_edit_link: Optional[str] = None, + **kwargs + ): + super(TableResponseProperties, self).__init__(**kwargs) + self.table_name = table_name + self.odata_type = odata_type + self.odata_id = odata_id + self.odata_edit_link = odata_edit_link + + +class TableResponse(TableResponseProperties): + """The response for a single table. + + :param table_name: The name of the table. + :type table_name: str + :param odata_type: The odata type of the table. + :type odata_type: str + :param odata_id: The id of the table. + :type odata_id: str + :param odata_edit_link: The edit link of the table. + :type odata_edit_link: str + :param odata_metadata: The metadata response of the table. + :type odata_metadata: str + """ + + _attribute_map = { + 'table_name': {'key': 'TableName', 'type': 'str'}, + 'odata_type': {'key': 'odata\\.type', 'type': 'str'}, + 'odata_id': {'key': 'odata\\.id', 'type': 'str'}, + 'odata_edit_link': {'key': 'odata\\.editLink', 'type': 'str'}, + 'odata_metadata': {'key': 'odata\\.metadata', 'type': 'str'}, + } + + def __init__( + self, + *, + table_name: Optional[str] = None, + odata_type: Optional[str] = None, + odata_id: Optional[str] = None, + odata_edit_link: Optional[str] = None, + odata_metadata: Optional[str] = None, + **kwargs + ): + super(TableResponse, self).__init__(table_name=table_name, odata_type=odata_type, odata_id=odata_id, odata_edit_link=odata_edit_link, **kwargs) + self.odata_metadata = odata_metadata + + +class TableServiceError(msrest.serialization.Model): + """Table Service error. + + :param message: The error message. + :type message: str + """ + + _attribute_map = { + 'message': {'key': 'Message', 'type': 'str', 'xml': {'name': 'Message'}}, + } + _xml_map = { + + } + + def __init__( + self, + *, + message: Optional[str] = None, + **kwargs + ): + super(TableServiceError, self).__init__(**kwargs) + self.message = message + + +class TableServiceProperties(msrest.serialization.Model): + """Table Service Properties. + + :param logging: Azure Analytics Logging settings. + :type logging: ~azure.data.tables.models.Logging + :param hour_metrics: A summary of request statistics grouped by API in hourly aggregates for + tables. + :type hour_metrics: ~azure.data.tables.models.Metrics + :param minute_metrics: A summary of request statistics grouped by API in minute aggregates for + tables. + :type minute_metrics: ~azure.data.tables.models.Metrics + :param cors: The set of CORS rules. + :type cors: list[~azure.data.tables.models.CorsRule] + """ + + _attribute_map = { + 'logging': {'key': 'Logging', 'type': 'Logging'}, + 'hour_metrics': {'key': 'HourMetrics', 'type': 'Metrics'}, + 'minute_metrics': {'key': 'MinuteMetrics', 'type': 'Metrics'}, + 'cors': {'key': 'Cors', 'type': '[CorsRule]', 'xml': {'name': 'Cors', 'wrapped': True, 'itemsName': 'CorsRule'}}, + } + _xml_map = { + 'name': 'StorageServiceProperties' + } + + def __init__( + self, + *, + logging: Optional["Logging"] = None, + hour_metrics: Optional["Metrics"] = None, + minute_metrics: Optional["Metrics"] = None, + cors: Optional[List["CorsRule"]] = None, + **kwargs + ): + super(TableServiceProperties, self).__init__(**kwargs) + self.logging = logging + self.hour_metrics = hour_metrics + self.minute_metrics = minute_metrics + self.cors = cors + + +class TableServiceStats(msrest.serialization.Model): + """Stats for the service. + + :param geo_replication: Geo-Replication information for the Secondary Storage Service. + :type geo_replication: ~azure.data.tables.models.GeoReplication + """ + + _attribute_map = { + 'geo_replication': {'key': 'GeoReplication', 'type': 'GeoReplication'}, + } + _xml_map = { + 'name': 'StorageServiceStats' + } + + def __init__( + self, + *, + geo_replication: Optional["GeoReplication"] = None, + **kwargs + ): + super(TableServiceStats, self).__init__(**kwargs) + self.geo_replication = geo_replication diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/operations/__init__.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/operations/__init__.py new file mode 100644 index 000000000000..774e1c0d97a4 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/operations/__init__.py @@ -0,0 +1,15 @@ +# 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 ._table_operations import TableOperations +from ._service_operations import ServiceOperations + +__all__ = [ + 'TableOperations', + 'ServiceOperations', +] diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/operations/_service_operations.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/operations/_service_operations.py new file mode 100644 index 000000000000..a55e05345e87 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/operations/_service_operations.py @@ -0,0 +1,265 @@ +# 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.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Optional, TypeVar + + 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.data.tables.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 set_properties( + self, + table_service_properties, # type: "_models.TableServiceProperties" + timeout=None, # type: Optional[int] + request_id_parameter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> None + """Sets properties for an account's Table service endpoint, including properties for Analytics and + CORS (Cross-Origin Resource Sharing) rules. + + :param table_service_properties: The Table Service properties. + :type table_service_properties: ~azure.data.tables.models.TableServiceProperties + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + restype = "service" + comp = "properties" + content_type = kwargs.pop("content_type", "application/xml") + accept = "application/xml" + + # Construct URL + url = self.set_properties.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + 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(table_service_properties, 'TableServiceProperties', is_xml=True) + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + + if cls: + return cls(pipeline_response, None, response_headers) + + set_properties.metadata = {'url': '/'} # type: ignore + + def get_properties( + self, + timeout=None, # type: Optional[int] + request_id_parameter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.TableServiceProperties" + """Gets the properties of an account's Table service, including properties for Analytics and CORS + (Cross-Origin Resource Sharing) rules. + + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TableServiceProperties, or the result of cls(response) + :rtype: ~azure.data.tables.models.TableServiceProperties + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TableServiceProperties"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + restype = "service" + comp = "properties" + accept = "application/xml" + + # Construct URL + url = self.get_properties.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + 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) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + deserialized = self._deserialize('TableServiceProperties', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + get_properties.metadata = {'url': '/'} # type: ignore + + def get_statistics( + self, + timeout=None, # type: Optional[int] + request_id_parameter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.TableServiceStats" + """Retrieves statistics related to replication for the Table service. It is only available on the + secondary location endpoint when read-access geo-redundant replication is enabled for the + account. + + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TableServiceStats, or the result of cls(response) + :rtype: ~azure.data.tables.models.TableServiceStats + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TableServiceStats"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + restype = "service" + comp = "stats" + accept = "application/xml" + + # Construct URL + url = self.get_statistics.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + 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) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + deserialized = self._deserialize('TableServiceStats', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + get_statistics.metadata = {'url': '/'} # type: ignore diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/operations/_table_operations.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/operations/_table_operations.py new file mode 100644 index 000000000000..4fc9e308b463 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/operations/_table_operations.py @@ -0,0 +1,1082 @@ +# 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.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, List, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class TableOperations(object): + """TableOperations 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.data.tables.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 query( + self, + request_id_parameter=None, # type: Optional[str] + next_table_name=None, # type: Optional[str] + query_options=None, # type: Optional["_models.QueryOptions"] + **kwargs # type: Any + ): + # type: (...) -> "_models.TableQueryResponse" + """Queries tables under the given account. + + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param next_table_name: A table query continuation token from a previous call. + :type next_table_name: str + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TableQueryResponse, or the result of cls(response) + :rtype: ~azure.data.tables.models.TableQueryResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TableQueryResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _format = None + _top = None + _select = None + _filter = None + if query_options is not None: + _format = query_options.format + _top = query_options.top + _select = query_options.select + _filter = query_options.filter + data_service_version = "3.0" + accept = "application/json;odata=minimalmetadata" + + # Construct URL + url = self.query.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if _format is not None: + query_parameters['$format'] = self._serialize.query("format", _format, 'str') + if _top is not None: + query_parameters['$top'] = self._serialize.query("top", _top, 'int', minimum=0) + if _select is not None: + query_parameters['$select'] = self._serialize.query("select", _select, 'str') + if _filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", _filter, 'str') + if next_table_name is not None: + query_parameters['NextTableName'] = self._serialize.query("next_table_name", next_table_name, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + header_parameters['DataServiceVersion'] = self._serialize.header("data_service_version", data_service_version, 'str') + 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) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['x-ms-continuation-NextTableName']=self._deserialize('str', response.headers.get('x-ms-continuation-NextTableName')) + deserialized = self._deserialize('TableQueryResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + query.metadata = {'url': '/Tables'} # type: ignore + + def create( + self, + table_properties, # type: "_models.TableProperties" + request_id_parameter=None, # type: Optional[str] + response_preference=None, # type: Optional[Union[str, "_models.ResponseFormat"]] + query_options=None, # type: Optional["_models.QueryOptions"] + **kwargs # type: Any + ): + # type: (...) -> Optional["_models.TableResponse"] + """Creates a new table under the given account. + + :param table_properties: The Table properties. + :type table_properties: ~azure.data.tables.models.TableProperties + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param response_preference: Specifies whether the response should include the inserted entity + in the payload. Possible values are return-no-content and return-content. + :type response_preference: str or ~azure.data.tables.models.ResponseFormat + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TableResponse, or the result of cls(response) + :rtype: ~azure.data.tables.models.TableResponse or None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.TableResponse"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + content_type = kwargs.pop("content_type", "application/json;odata=nometadata") + accept = "application/json;odata=minimalmetadata" + + # Construct URL + url = self.create.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if _format is not None: + query_parameters['$format'] = self._serialize.query("format", _format, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + header_parameters['DataServiceVersion'] = self._serialize.header("data_service_version", data_service_version, 'str') + if response_preference is not None: + header_parameters['Prefer'] = self._serialize.header("response_preference", response_preference, 'str') + 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(table_properties, 'TableProperties') + 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 [201, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + deserialized = None + if response.status_code == 201: + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['Preference-Applied']=self._deserialize('str', response.headers.get('Preference-Applied')) + deserialized = self._deserialize('TableResponse', pipeline_response) + + if response.status_code == 204: + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['Preference-Applied']=self._deserialize('str', response.headers.get('Preference-Applied')) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + create.metadata = {'url': '/Tables'} # type: ignore + + def delete( + self, + table, # type: str + request_id_parameter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> None + """Operation permanently deletes the specified table. + + :param table: The name of the table. + :type table: str + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + + if cls: + return cls(pipeline_response, None, response_headers) + + delete.metadata = {'url': '/Tables(\'{table}\')'} # type: ignore + + def query_entities( + self, + table, # type: str + timeout=None, # type: Optional[int] + request_id_parameter=None, # type: Optional[str] + next_partition_key=None, # type: Optional[str] + next_row_key=None, # type: Optional[str] + query_options=None, # type: Optional["_models.QueryOptions"] + **kwargs # type: Any + ): + # type: (...) -> "_models.TableEntityQueryResponse" + """Queries entities in a table. + + :param table: The name of the table. + :type table: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param next_partition_key: An entity query continuation token from a previous call. + :type next_partition_key: str + :param next_row_key: An entity query continuation token from a previous call. + :type next_row_key: str + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TableEntityQueryResponse, or the result of cls(response) + :rtype: ~azure.data.tables.models.TableEntityQueryResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TableEntityQueryResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _format = None + _top = None + _select = None + _filter = None + if query_options is not None: + _format = query_options.format + _top = query_options.top + _select = query_options.select + _filter = query_options.filter + data_service_version = "3.0" + accept = "application/json;odata=minimalmetadata" + + # Construct URL + url = self.query_entities.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if _format is not None: + query_parameters['$format'] = self._serialize.query("format", _format, 'str') + if _top is not None: + query_parameters['$top'] = self._serialize.query("top", _top, 'int', minimum=0) + if _select is not None: + query_parameters['$select'] = self._serialize.query("select", _select, 'str') + if _filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", _filter, 'str') + if next_partition_key is not None: + query_parameters['NextPartitionKey'] = self._serialize.query("next_partition_key", next_partition_key, 'str') + if next_row_key is not None: + query_parameters['NextRowKey'] = self._serialize.query("next_row_key", next_row_key, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + header_parameters['DataServiceVersion'] = self._serialize.header("data_service_version", data_service_version, 'str') + 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) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['x-ms-continuation-NextPartitionKey']=self._deserialize('str', response.headers.get('x-ms-continuation-NextPartitionKey')) + response_headers['x-ms-continuation-NextRowKey']=self._deserialize('str', response.headers.get('x-ms-continuation-NextRowKey')) + deserialized = self._deserialize('TableEntityQueryResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + query_entities.metadata = {'url': '/{table}()'} # type: ignore + + def query_entity_with_partition_and_row_key( + self, + table, # type: str + partition_key, # type: str + row_key, # type: str + timeout=None, # type: Optional[int] + request_id_parameter=None, # type: Optional[str] + query_options=None, # type: Optional["_models.QueryOptions"] + **kwargs # type: Any + ): + # type: (...) -> Dict[str, object] + """Queries a single entity in a table. + + :param table: The name of the table. + :type table: str + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: dict mapping str to object, or the result of cls(response) + :rtype: dict[str, object] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Dict[str, object]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _format = None + _select = None + _filter = None + if query_options is not None: + _format = query_options.format + _select = query_options.select + _filter = query_options.filter + data_service_version = "3.0" + accept = "application/json;odata=minimalmetadata" + + # Construct URL + url = self.query_entity_with_partition_and_row_key.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + 'partitionKey': self._serialize.url("partition_key", partition_key, 'str'), + 'rowKey': self._serialize.url("row_key", row_key, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if _format is not None: + query_parameters['$format'] = self._serialize.query("format", _format, 'str') + if _select is not None: + query_parameters['$select'] = self._serialize.query("select", _select, 'str') + if _filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", _filter, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + header_parameters['DataServiceVersion'] = self._serialize.header("data_service_version", data_service_version, 'str') + 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) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['ETag']=self._deserialize('str', response.headers.get('ETag')) + response_headers['x-ms-continuation-NextPartitionKey']=self._deserialize('str', response.headers.get('x-ms-continuation-NextPartitionKey')) + response_headers['x-ms-continuation-NextRowKey']=self._deserialize('str', response.headers.get('x-ms-continuation-NextRowKey')) + deserialized = self._deserialize('{object}', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + query_entity_with_partition_and_row_key.metadata = {'url': '/{table}(PartitionKey=\'{partitionKey}\',RowKey=\'{rowKey}\')'} # type: ignore + + def update_entity( + self, + table, # type: str + partition_key, # type: str + row_key, # type: str + timeout=None, # type: Optional[int] + request_id_parameter=None, # type: Optional[str] + if_match=None, # type: Optional[str] + table_entity_properties=None, # type: Optional[Dict[str, object]] + query_options=None, # type: Optional["_models.QueryOptions"] + **kwargs # type: Any + ): + # type: (...) -> None + """Update entity in a table. + + :param table: The name of the table. + :type table: str + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param if_match: Match condition for an entity to be updated. If specified and a matching + entity is not found, an error will be raised. To force an unconditional update, set to the + wildcard character (*). If not specified, an insert will be performed when no existing entity + is found to update and a replace will be performed if an existing entity is found. + :type if_match: str + :param table_entity_properties: The properties for the table entity. + :type table_entity_properties: dict[str, object] + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_entity.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + 'partitionKey': self._serialize.url("partition_key", partition_key, 'str'), + 'rowKey': self._serialize.url("row_key", row_key, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if _format is not None: + query_parameters['$format'] = self._serialize.query("format", _format, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + header_parameters['DataServiceVersion'] = self._serialize.header("data_service_version", data_service_version, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + 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] + if table_entity_properties is not None: + body_content = self._serialize.body(table_entity_properties, '{object}') + else: + body_content = None + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['ETag']=self._deserialize('str', response.headers.get('ETag')) + + if cls: + return cls(pipeline_response, None, response_headers) + + update_entity.metadata = {'url': '/{table}(PartitionKey=\'{partitionKey}\',RowKey=\'{rowKey}\')'} # type: ignore + + def merge_entity( + self, + table, # type: str + partition_key, # type: str + row_key, # type: str + timeout=None, # type: Optional[int] + request_id_parameter=None, # type: Optional[str] + if_match=None, # type: Optional[str] + table_entity_properties=None, # type: Optional[Dict[str, object]] + query_options=None, # type: Optional["_models.QueryOptions"] + **kwargs # type: Any + ): + # type: (...) -> None + """Merge entity in a table. + + :param table: The name of the table. + :type table: str + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param if_match: Match condition for an entity to be updated. If specified and a matching + entity is not found, an error will be raised. To force an unconditional update, set to the + wildcard character (*). If not specified, an insert will be performed when no existing entity + is found to update and a merge will be performed if an existing entity is found. + :type if_match: str + :param table_entity_properties: The properties for the table entity. + :type table_entity_properties: dict[str, object] + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.merge_entity.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + 'partitionKey': self._serialize.url("partition_key", partition_key, 'str'), + 'rowKey': self._serialize.url("row_key", row_key, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if _format is not None: + query_parameters['$format'] = self._serialize.query("format", _format, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + header_parameters['DataServiceVersion'] = self._serialize.header("data_service_version", data_service_version, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + 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] + if table_entity_properties is not None: + body_content = self._serialize.body(table_entity_properties, '{object}') + else: + body_content = None + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['ETag']=self._deserialize('str', response.headers.get('ETag')) + + if cls: + return cls(pipeline_response, None, response_headers) + + merge_entity.metadata = {'url': '/{table}(PartitionKey=\'{partitionKey}\',RowKey=\'{rowKey}\')'} # type: ignore + + def delete_entity( + self, + table, # type: str + partition_key, # type: str + row_key, # type: str + if_match, # type: str + timeout=None, # type: Optional[int] + request_id_parameter=None, # type: Optional[str] + query_options=None, # type: Optional["_models.QueryOptions"] + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes the specified entity in a table. + + :param table: The name of the table. + :type table: str + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :param if_match: Match condition for an entity to be deleted. If specified and a matching + entity is not found, an error will be raised. To force an unconditional delete, set to the + wildcard character (*). + :type if_match: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + accept = "application/json;odata=minimalmetadata" + + # Construct URL + url = self.delete_entity.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + 'partitionKey': self._serialize.url("partition_key", partition_key, 'str'), + 'rowKey': self._serialize.url("row_key", row_key, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if _format is not None: + query_parameters['$format'] = self._serialize.query("format", _format, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + header_parameters['DataServiceVersion'] = self._serialize.header("data_service_version", data_service_version, 'str') + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + + if cls: + return cls(pipeline_response, None, response_headers) + + delete_entity.metadata = {'url': '/{table}(PartitionKey=\'{partitionKey}\',RowKey=\'{rowKey}\')'} # type: ignore + + def insert_entity( + self, + table, # type: str + timeout=None, # type: Optional[int] + request_id_parameter=None, # type: Optional[str] + response_preference=None, # type: Optional[Union[str, "_models.ResponseFormat"]] + table_entity_properties=None, # type: Optional[Dict[str, object]] + query_options=None, # type: Optional["_models.QueryOptions"] + **kwargs # type: Any + ): + # type: (...) -> Optional[Dict[str, object]] + """Insert entity in a table. + + :param table: The name of the table. + :type table: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param response_preference: Specifies whether the response should include the inserted entity + in the payload. Possible values are return-no-content and return-content. + :type response_preference: str or ~azure.data.tables.models.ResponseFormat + :param table_entity_properties: The properties for the table entity. + :type table_entity_properties: dict[str, object] + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: dict mapping str to object, or the result of cls(response) + :rtype: dict[str, object] or None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Optional[Dict[str, object]]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + content_type = kwargs.pop("content_type", "application/json;odata=nometadata") + accept = "application/json;odata=minimalmetadata" + + # Construct URL + url = self.insert_entity.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if _format is not None: + query_parameters['$format'] = self._serialize.query("format", _format, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + header_parameters['DataServiceVersion'] = self._serialize.header("data_service_version", data_service_version, 'str') + if response_preference is not None: + header_parameters['Prefer'] = self._serialize.header("response_preference", response_preference, 'str') + 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] + if table_entity_properties is not None: + body_content = self._serialize.body(table_entity_properties, '{object}') + else: + body_content = None + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + deserialized = None + if response.status_code == 201: + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['ETag']=self._deserialize('str', response.headers.get('ETag')) + response_headers['Preference-Applied']=self._deserialize('str', response.headers.get('Preference-Applied')) + response_headers['Content-Type']=self._deserialize('str', response.headers.get('Content-Type')) + deserialized = self._deserialize('{object}', pipeline_response) + + if response.status_code == 204: + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + response_headers['ETag']=self._deserialize('str', response.headers.get('ETag')) + response_headers['Preference-Applied']=self._deserialize('str', response.headers.get('Preference-Applied')) + response_headers['Content-Type']=self._deserialize('str', response.headers.get('Content-Type')) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + insert_entity.metadata = {'url': '/{table}'} # type: ignore + + def get_access_policy( + self, + table, # type: str + timeout=None, # type: Optional[int] + request_id_parameter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> List["_models.SignedIdentifier"] + """Retrieves details about any stored access policies specified on the table that may be used with + Shared Access Signatures. + + :param table: The name of the table. + :type table: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of SignedIdentifier, or the result of cls(response) + :rtype: list[~azure.data.tables.models.SignedIdentifier] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.SignedIdentifier"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + comp = "acl" + accept = "application/xml" + + # Construct URL + url = self.get_access_policy.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + 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) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + deserialized = self._deserialize('[SignedIdentifier]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + get_access_policy.metadata = {'url': '/{table}'} # type: ignore + + def set_access_policy( + self, + table, # type: str + timeout=None, # type: Optional[int] + request_id_parameter=None, # type: Optional[str] + table_acl=None, # type: Optional[List["_models.SignedIdentifier"]] + **kwargs # type: Any + ): + # type: (...) -> None + """Sets stored access policies for the table that may be used with Shared Access Signatures. + + :param table: The name of the table. + :type table: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param table_acl: The acls for the table. + :type table_acl: list[~azure.data.tables.models.SignedIdentifier] + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + comp = "acl" + content_type = kwargs.pop("content_type", "application/xml") + accept = "application/xml" + + # Construct URL + url = self.set_access_policy.metadata['url'] # type: ignore + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True), + 'table': self._serialize.url("table", table, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id_parameter is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id_parameter", request_id_parameter, 'str') + 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] + serialization_ctxt = {'xml': {'name': 'SignedIdentifiers', 'wrapped': True, 'itemsName': 'SignedIdentifier'}} + if table_acl is not None: + body_content = self._serialize.body(table_acl, '[SignedIdentifier]', is_xml=True, serialization_ctxt=serialization_ctxt) + else: + body_content = None + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(_models.TableServiceError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['x-ms-client-request-id']=self._deserialize('str', response.headers.get('x-ms-client-request-id')) + response_headers['x-ms-request-id']=self._deserialize('str', response.headers.get('x-ms-request-id')) + response_headers['x-ms-version']=self._deserialize('str', response.headers.get('x-ms-version')) + response_headers['Date']=self._deserialize('rfc-1123', response.headers.get('Date')) + + if cls: + return cls(pipeline_response, None, response_headers) + + set_access_policy.metadata = {'url': '/{table}'} # type: ignore diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/py.typed b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/py.typed new file mode 100644 index 000000000000..e5aff4f83af8 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_generated/py.typed @@ -0,0 +1 @@ +# Marker file for PEP 561. \ No newline at end of file diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_models.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_models.py new file mode 100644 index 000000000000..bb39c03cdc72 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_models.py @@ -0,0 +1,696 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +from enum import Enum +from typing import TYPE_CHECKING, Any, Dict, List + +from azure.core.exceptions import HttpResponseError +from azure.core.paging import PageIterator +# from azure.core import CaseInsensitiveEnumMeta +# from six import with_metaclass + +from ._generated.models import TableServiceStats as GenTableServiceStats +from ._generated.models import AccessPolicy as GenAccessPolicy +from ._generated.models import Logging as GeneratedLogging +from ._generated.models import Metrics as GeneratedMetrics +from ._generated.models import RetentionPolicy as GeneratedRetentionPolicy +from ._generated.models import CorsRule as GeneratedCorsRule +from ._generated.models import QueryOptions +from ._deserialize import ( + _convert_to_entity, + _return_context_and_deserialized, + _extract_continuation_token, +) +from ._error import _process_table_error +from ._constants import NEXT_PARTITION_KEY, NEXT_ROW_KEY, NEXT_TABLE_NAME + +if TYPE_CHECKING: + from ._generated.models import TableQueryResponse + from ._generated.models import TableServiceProperties as GenTableServiceProperties + + +class TableAccessPolicy(GenAccessPolicy): + """Access Policy class used by the set and get access policy methods. + + A stored access policy can specify the start time, expiry time, and + permissions for the Shared Access Signatures with which it's associated. + Depending on how you want to control access to your resource, you can + specify all of these parameters within the stored access policy, and omit + them from the URL for the Shared Access Signature. Doing so permits you to + modify the associated signature's behavior at any time, as well as to revoke + it. Or you can specify one or more of the access policy parameters within + the stored access policy, and the others on the URL. Finally, you can + specify all of the parameters on the URL. In this case, you can use the + stored access policy to revoke the signature, but not to modify its behavior. + + Together the Shared Access Signature and the stored access policy must + include all fields required to authenticate the signature. If any required + fields are missing, the request will fail. Likewise, if a field is specified + both in the Shared Access Signature URL and in the stored access policy, the + request will fail with status code 400 (Bad Request). + + :keyword str permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. + :keyword expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :paramtype expiry: ~datetime.datetime or str + :keyword start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :paramtype start: ~datetime.datetime or str + """ + def __init__(self, **kwargs): # pylint: disable=super-init-not-called + self.start = kwargs.get('start') + self.expiry = kwargs.get('expiry') + self.permission = kwargs.get('permission') + + def __repr__(self): + # type: () -> str + return "TableAccessPolicy(start={}, expiry={}, permission={})".format( + self.start, self.expiry, self.permission + )[1024:] + + +class TableAnalyticsLogging(GeneratedLogging): + """Azure Analytics Logging settings. + + All required parameters must be populated in order to send to Azure. + + :keyword str version: Required. The version of Storage Analytics to configure. + :keyword bool delete: Required. Indicates whether all delete requests should be logged. + :keyword bool read: Required. Indicates whether all read requests should be logged. + :keyword bool write: Required. Indicates whether all write requests should be logged. + :keyword ~azure.data.tables.TableRetentionPolicy retention_policy: Required. + The retention policy for the metrics. + """ + + def __init__(self, **kwargs): # pylint: disable=super-init-not-called + # type: (Any)-> None + self.version = kwargs.get("version", u"1.0") + self.delete = kwargs.get("delete", False) + self.read = kwargs.get("read", False) + self.write = kwargs.get("write", False) + self.retention_policy = kwargs.get("retention_policy") or TableRetentionPolicy() + + @classmethod + def _from_generated(cls, generated): + if not generated: + return cls() + return cls( + version=generated.version, + delete=generated.delete, + read=generated.read, + write=generated.write, + retention_policy=TableRetentionPolicy._from_generated( # pylint: disable=protected-access + generated.retention_policy + ) + ) + + def __repr__(self): + # type: () -> str + return "TableAnalyticsLogging(version={}, delete={}, read={}, write={}, retention_policy={})".format( + self.version, self.delete, self.read, self.write, self.retention_policy + )[1024:] + + +class TableMetrics(GeneratedMetrics): + """A summary of request statistics grouped by API in hour or minute aggregates. + + All required parameters must be populated in order to send to Azure. + + :keyword str version: The version of Storage Analytics to configure. + :keyword bool enabled: Required. Indicates whether metrics are enabled for the service. + :keyword bool include_apis: Indicates whether metrics should generate summary + statistics for called API operations. + :keyword ~azure.data.tables.TableRetentionPolicy retention_policy: Required. + The retention policy for the metrics. + """ + + def __init__(self, **kwargs): # pylint: disable=super-init-not-called + # type: (Any) -> None + self.version = kwargs.get("version", u"1.0") + self.enabled = kwargs.get("enabled", False) + self.include_apis = kwargs.get("include_apis") + self.retention_policy = kwargs.get("retention_policy") or TableRetentionPolicy() + + @classmethod + def _from_generated(cls, generated): + # type: (...) -> TableMetrics + """A summary of request statistics grouped by API in hour or minute aggregates. + + :param TableMetrics generated: generated Metrics + """ + if not generated: + return cls() + return cls( + version=generated.version, + enabled=generated.enabled, + include_apis=generated.include_apis, + retention_policy=TableRetentionPolicy._from_generated( # pylint: disable=protected-access + generated.retention_policy + ) + ) + + def __repr__(self): + # type: () -> str + return "TableMetrics(version={}, enabled={}, include_apis={}, retention_policy={})".format( + self.version, self.enabled, self.include_apis, self.retention_policy + )[1024:] + + +class TableRetentionPolicy(GeneratedRetentionPolicy): + def __init__(self, **kwargs): # pylint: disable=super-init-not-called + # type: (Any) -> None + """The retention policy which determines how long the associated data should + persist. + + All required parameters must be populated in order to send to Azure. + + :keyword bool enabled: Required. Indicates whether a retention policy is enabled + for the storage service. Default value is False. + :keyword int days: Indicates the number of days that metrics or logging or + soft-deleted data should be retained. All data older than this value will + be deleted. Must be specified if policy is enabled. + """ + self.enabled = kwargs.get('enabled', False) + self.days = kwargs.get('days') + if self.enabled and (self.days is None): + raise ValueError("If policy is enabled, 'days' must be specified.") + + @classmethod + def _from_generated(cls, generated, **kwargs): # pylint: disable=unused-argument + # type: (GeneratedRetentionPolicy, Dict[str, Any]) -> TableRetentionPolicy + """The retention policy which determines how long the associated data should + persist. + + All required parameters must be populated in order to send to Azure. + + :param TableRetentionPolicy generated: Generated Retention Policy + """ + + if not generated: + return cls() + return cls( + enabled=generated.enabled, + days=generated.days, + ) + def __repr__(self): + # type: () -> str + return "TableRetentionPolicy(enabled={}, days={})".format(self.enabled, self.days)[1024:] + + +class TableCorsRule(object): + """CORS is an HTTP feature that enables a web application running under one + domain to access resources in another domain. Web browsers implement a + security restriction known as same-origin policy that prevents a web page + from calling APIs in a different domain; CORS provides a secure way to + allow one domain (the origin domain) to call APIs in another domain. + + All required parameters must be populated in order to send to Azure. + + :param list[str] allowed_origins: + A list of origin domains that will be allowed via CORS, or "*" to allow + all domains. The list of must contain at least one entry. Limited to 64 + origin domains. Each allowed origin can have up to 256 characters. + :param list[str] allowed_methods: + A list of HTTP methods that are allowed to be executed by the origin. + The list of must contain at least one entry. For Azure Storage, + permitted methods are DELETE, GET, HEAD, MERGE, POST, OPTIONS or PUT. + :keyword int max_age_in_seconds: + The number of seconds that the client/browser should cache a + pre-flight response. + :keyword list[str] exposed_headers: + Defaults to an empty list. A list of response headers to expose to CORS + clients. Limited to 64 defined headers and two prefixed headers. Each + header can be up to 256 characters. + :keyword list[str] allowed_headers: + Defaults to an empty list. A list of headers allowed to be part of + the cross-origin request. Limited to 64 defined headers and 2 prefixed + headers. Each header can be up to 256 characters. + """ + + def __init__( + self, + allowed_origins, # type: List[str] + allowed_methods, # type: List[str] + **kwargs # type: Any + ): + # type: (...)-> None + self.allowed_origins = allowed_origins + self.allowed_methods = allowed_methods + self.allowed_headers = kwargs.get("allowed_headers", []) + self.exposed_headers = kwargs.get("exposed_headers", []) + self.max_age_in_seconds = kwargs.get("max_age_in_seconds", 0) + + def _to_generated(self): + return GeneratedCorsRule( + allowed_origins=",".join(self.allowed_origins), + allowed_methods=",".join(self.allowed_methods), + allowed_headers=",".join(self.allowed_headers), + exposed_headers=",".join(self.exposed_headers), + max_age_in_seconds=self.max_age_in_seconds + ) + + @classmethod + def _from_generated(cls, generated): + exposedheaders = generated.exposed_headers.split(',') if generated.exposed_headers else [] + allowedheaders = generated.allowed_headers.split(',') if generated.allowed_headers else [] + return cls( + generated.allowed_origins.split(','), + generated.allowed_methods.split(','), + allowed_headers=allowedheaders, + exposed_headers=exposedheaders, + max_age_in_seconds=generated.max_age_in_seconds, + ) + + def __repr__(self): + # type: () -> str + return "TableCorsRules(allowed_origins={}, allowed_methods={}, allowed_headers={}, exposed_headers={}, max_age_in_seconds={})".format( # pylint: disable=line-too-long + self.allowed_origins, self.allowed_methods, self.allowed_headers, self.exposed_headers, self.max_age_in_seconds # pylint: disable=line-too-long + )[1024:] + + +class TablePropertiesPaged(PageIterator): + """An iterable of Table properties. + + :param callable command: Function to retrieve the next page of items. + :keyword int results_per_page: The maximum number of results retrieved per API call. + :keyword str filter: The filter to apply to results. + :keyword str continuation_token: An opaque continuation token. + """ + + def __init__(self, command, **kwargs): + super(TablePropertiesPaged, self).__init__( + self._get_next_cb, + self._extract_data_cb, + continuation_token=kwargs.get("continuation_token") or "", + ) + self._command = command + self._headers = None + self._response = None + self.results_per_page = kwargs.get("results_per_page") + self.filter = kwargs.get("filter") + self._location_mode = None + + def _get_next_cb(self, continuation_token, **kwargs): + query_options = QueryOptions(top=self.results_per_page, filter=self.filter) + try: + return self._command( + query_options=query_options, + next_table_name=continuation_token or None, + cls=kwargs.pop("cls", None) or _return_context_and_deserialized, + use_location=self._location_mode, + ) + except HttpResponseError as error: + _process_table_error(error) + + def _extract_data_cb(self, get_next_return): + self._location_mode, self._response, self._headers = get_next_return + props_list = [ + TableItem._from_generated(t, **self._headers) for t in self._response.value # pylint: disable=protected-access + ] + return self._headers[NEXT_TABLE_NAME] or None, props_list + + +class TableEntityPropertiesPaged(PageIterator): + """An iterable of TableEntity properties. + + :param callable command: Function to retrieve the next page of items. + :param str table: The name of the table. + :keyword int results_per_page: The maximum number of results retrieved per API call. + :keyword str filter: The filter to apply to results. + :keyword str select: The select filter to apply to results. + :keyword str continuation_token: An opaque continuation token. + """ + + def __init__(self, command, table, **kwargs): + super(TableEntityPropertiesPaged, self).__init__( + self._get_next_cb, + self._extract_data_cb, + continuation_token=kwargs.get("continuation_token") or {}, + ) + self._command = command + self._headers = None + self._response = None + self.table = table + self.results_per_page = kwargs.get("results_per_page") + self.filter = kwargs.get("filter") + self.select = kwargs.get("select") + self._location_mode = None + + def _get_next_cb(self, continuation_token, **kwargs): + next_partition_key, next_row_key = _extract_continuation_token( + continuation_token + ) + query_options = QueryOptions( + top=self.results_per_page, select=self.select, filter=self.filter + ) + try: + return self._command( + query_options=query_options, + next_row_key=next_row_key, + next_partition_key=next_partition_key, + table=self.table, + cls=kwargs.pop("cls", None) or _return_context_and_deserialized, + use_location=self._location_mode, + ) + except HttpResponseError as error: + _process_table_error(error) + + def _extract_data_cb(self, get_next_return): + self._location_mode, self._response, self._headers = get_next_return + props_list = [_convert_to_entity(t) for t in self._response.value] + next_entity = {} + if self._headers[NEXT_PARTITION_KEY] or self._headers[NEXT_ROW_KEY]: + next_entity = { + "PartitionKey": self._headers[NEXT_PARTITION_KEY], + "RowKey": self._headers[NEXT_ROW_KEY], + } + return next_entity or None, props_list + + +class TableSasPermissions(object): + def __init__(self, **kwargs): + # type: (Any) -> None + """ + :keyword bool read: + Get entities and query entities. + :keyword bool add: + Add entities. Add and Update permissions are required for upsert operations. + :keyword bool update: + Update entities. Add and Update permissions are required for upsert operations. + :keyword bool delete: + Delete entities. + """ + _str = kwargs.pop('_str', "") or "" + self.read = kwargs.pop("read", False) or ("r" in _str) + self.add = kwargs.pop("add", False) or ("a" in _str) + self.update = kwargs.pop("update", False) or ("u" in _str) + self.delete = kwargs.pop("delete", False) or ("d" in _str) + + def __or__(self, other): + # type: (TableSasPermissions) -> TableSasPermissions + """ + :param other: + :type other: :class:`~azure.data.tables.TableSasPermissions` + """ + return TableSasPermissions(_str=str(self) + str(other)) + + def __add__(self, other): + # type: (TableSasPermissions) -> TableSasPermissions + """ + :param other: + :type other: :class:`~azure.data.tables.TableSasPermissions` + """ + return TableSasPermissions(_str=str(self) + str(other)) + + def __str__(self): + # type: () -> str + return ( + ("r" if self.read else "") + + ("a" if self.add else "") + + ("u" if self.update else "") + + ("d" if self.delete else "") + ) + + def __repr__(self): + # type: () -> str + return "TableSasPermissions(read={}, add={}, update={}, delete={})".format( + self.read, self.add, self.update, self.delete + )[1024:] + + @classmethod + def from_string( + cls, + permission, + **kwargs + ): + # Type: (str, Dict[str, Any]) -> AccountSasPermissions + """Create AccountSasPermissions from a string. + + To specify read, write, delete, etc. permissions you need only to + include the first letter of the word in the string. E.g. for read and write + permissions you would provide a string "rw". + + :param str permission: Specify permissions in + the string with the first letter of the word. + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An AccountSasPermissions object + :rtype: :class:`~azure.data.tables.AccountSasPermissions` + """ + p_read = "r" in permission + p_add = "a" in permission + p_delete = "d" in permission + p_update = "u" in permission + + parsed = cls( + **dict(kwargs, read=p_read, add=p_add, delete=p_delete, update=p_update) + ) + parsed._str = permission # pylint: disable=protected-access,attribute-defined-outside-init + return parsed + + +def service_stats_deserialize(generated): + # type: (GenTableServiceStats) -> Dict[str, Any] + """Deserialize a ServiceStats objects into a dict.""" + return { + "geo_replication": { + "status": generated.geo_replication.status, # type: ignore + "last_sync_time": generated.geo_replication.last_sync_time, # type: ignore + } + } + + +def service_properties_deserialize(generated): + # type: (GenTableServiceProperties) -> Dict[str, Any] + """Deserialize a ServiceProperties objects into a dict.""" + return { + "analytics_logging": TableAnalyticsLogging._from_generated(generated.logging), # pylint: disable=protected-access + "hour_metrics": TableMetrics._from_generated( # pylint: disable=protected-access + generated.hour_metrics + ), + "minute_metrics": TableMetrics._from_generated( # pylint: disable=protected-access + generated.minute_metrics + ), + "cors": [ + TableCorsRule._from_generated(cors) # pylint: disable=protected-access + for cors in generated.cors # type: ignore + ], + } + + +class TableItem(object): + """ + Represents an Azure TableItem. + Returned by TableServiceClient.list_tables and TableServiceClient.query_tables. + + :ivar str name: The name of the table. + """ + + def __init__(self, name): + # type: (str) -> None + """ + :param str name: Name of the Table + """ + self.name = name + + # TODO: TableQueryResponse is not the correct type + @classmethod + def _from_generated(cls, generated, **kwargs): # pylint: disable=unused-argument + # type: (TableQueryResponse, Any) -> TableItem + return cls(generated.table_name) # type: ignore + + def __repr__(self): + # type: () -> str + return "TableItem(name={})".format(self.name)[1024:] + + +class TablePayloadFormat(object): + """ + Specifies the accepted content type of the response payload. More information + can be found here: https://msdn.microsoft.com/en-us/library/azure/dn535600.aspx + """ + + JSON_NO_METADATA = "application/json;odata=nometadata" + """Returns no type information for the entity properties.""" + + JSON_MINIMAL_METADATA = "application/json;odata=minimalmetadata" + """Returns minimal type information for the entity properties.""" + + JSON_FULL_METADATA = "application/json;odata=fullmetadata" + """Returns minimal type information for the entity properties plus some extra odata properties.""" + + +class UpdateMode(str, Enum): + REPLACE = "replace" + MERGE = "merge" + + +class TransactionOperation(str, Enum): + CREATE = "create" + UPSERT = "upsert" + UPDATE = "update" + DELETE = "delete" + + +class SASProtocol(str, Enum): + HTTPS = "https" + HTTP = "http" + + +class LocationMode(str, Enum): + """ + Specifies the location the request should be sent to. This mode only applies + for RA-GRS accounts which allow secondary read access. All other account types + must use PRIMARY. + """ + + PRIMARY = "primary" #: Requests should be sent to the primary location. + SECONDARY = ( + "secondary" #: Requests should be sent to the secondary location, if possible. + ) + + +class ResourceTypes(object): + """ + Specifies the resource types that are accessible with the account SAS. + + :keyword bool service: + Access to service-level APIs (e.g., Get/Set Service Properties, + Get Service Stats, List Tables) + :keyword bool object: + Access to object-level APIs for tables (e.g. Get/Create/Query Entity etc.) + """ + + def __init__(self, **kwargs): + # type: (Any) -> None + self.service = kwargs.get('service', False) + self.object = kwargs.get('object', False) + self._str = ("s" if self.service else "") + ("o" if self.object else "") + + def __str__(self): + return self._str + + @classmethod + def from_string(cls, string): + # type: (str) -> ResourceTypes + """Create a ResourceTypes from a string. + + To specify service, container, or object you need only to + include the first letter of the word in the string. E.g. service and container, + you would provide a string "sc". + + :param str string: Specify service, container, or object in + in the string with the first letter of the word. + :return: A ResourceTypes object + :rtype: :class:`~azure.data.tables.ResourceTypes` + """ + res_service = "s" in string + res_object = "o" in string + + parsed = cls(service=res_service, object=res_object) + parsed._str = string # pylint: disable = protected-access + return parsed + + +class AccountSasPermissions(object): + """ + :class:`~AccountSasPermissions` class to be used with generate_account_sas + + :ivar bool read: + Valid for all signed resources types (Service, Container, and Object). + Permits read permissions to the specified resource type. + :ivar bool write: + Valid for all signed resources types (Service, Container, and Object). + Permits write permissions to the specified resource type. + :ivar bool delete: + Valid for Container and Object resource types, except for queue messages. + :ivar bool list: + Valid for Service and Container resource types only. + :ivar bool add: + Valid for the following Object resource types only: queue messages, and append blobs. + :ivar bool create: + Valid for the following Object resource types only: blobs and files. + Users can create new blobs or files, but may not overwrite existing + blobs or files. + :ivar bool update: + Valid for the following Object resource types only: queue messages. + :ivar bool process: + Valid for the following Object resource type only: queue messages. + """ + + def __init__(self, **kwargs): + self.read = kwargs.pop("read", False) + self.write = kwargs.pop("write", False) + self.delete = kwargs.pop("delete", False) + self.list = kwargs.pop("list", False) + self.add = kwargs.pop("add", False) + self.create = kwargs.pop("create", False) + self.update = kwargs.pop("update", False) + self.process = kwargs.pop("process", False) + self._str = ( + ("r" if self.read else "") + + ("w" if self.write else "") + + ("d" if self.delete else "") + + ("l" if self.list else "") + + ("a" if self.add else "") + + ("c" if self.create else "") + + ("u" if self.update else "") + + ("p" if self.process else "") + ) + + def __str__(self): + return self._str + + @classmethod + def from_string(cls, permission, **kwargs): + # type: (str, Dict[str, Any]) -> AccountSasPermissions + """Create AccountSasPermissions from a string. + + To specify read, write, delete, etc. permissions you need only to + include the first letter of the word in the string. E.g. for read and write + permissions you would provide a string "rw". + + :param permission: Specify permissions in the string with the first letter of the word. + :type permission: str + :return: An AccountSasPermissions object + :rtype: :class:`~azure.data.tables.AccountSasPermissions` + """ + p_read = "r" in permission + p_write = "w" in permission + p_delete = "d" in permission + p_list = "l" in permission + p_add = "a" in permission + p_create = "c" in permission + p_update = "u" in permission + p_process = "p" in permission + + parsed = cls( + **dict( + kwargs, + read=p_read, + write=p_write, + delete=p_delete, + list=p_list, + add=p_add, + create=p_create, + update=p_update, + process=p_process, + ) + ) + parsed._str = permission # pylint: disable = protected-access + return parsed diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_policies.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_policies.py new file mode 100644 index 000000000000..ad5045703369 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_policies.py @@ -0,0 +1,241 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import time +from typing import Any, TYPE_CHECKING, Dict +from wsgiref.handlers import format_date_time +try: + from urllib.parse import urlparse +except ImportError: + from urlparse import urlparse # type: ignore + +from azure.core.pipeline.policies import ( + HeadersPolicy, + SansIOHTTPPolicy, + RetryPolicy, +) +from azure.core.exceptions import AzureError, ServiceRequestError, ClientAuthenticationError + +from ._common_conversion import _transform_patch_to_cosmos_post +from ._models import LocationMode + +if TYPE_CHECKING: + from azure.core.pipeline import PipelineRequest + + +def set_next_host_location(settings, request): + # type: (Dict[str, Any], PipelineRequest) -> None + """ + A function which sets the next host location on the request, if applicable. + """ + if request.http_request.method not in ['GET', 'HEAD']: + return + try: + if settings["retry_secondary"] and settings["hosts"] and all(settings["hosts"].values()): + url = urlparse(request.http_request.url) + # If there's more than one possible location, retry to the alternative + if settings["mode"] == LocationMode.PRIMARY: + settings["mode"] = LocationMode.SECONDARY + else: + settings["mode"] = LocationMode.PRIMARY + updated = url._replace(netloc=settings["hosts"].get(settings["mode"])) + request.http_request.url = updated.geturl() + except KeyError: + pass + + +class StorageHeadersPolicy(HeadersPolicy): + + def on_request(self, request): + # type: (PipelineRequest) -> None + super(StorageHeadersPolicy, self).on_request(request) + + # Add required date headers + current_time = format_date_time(time.time()) + request.http_request.headers["x-ms-date"] = current_time + request.http_request.headers["Date"] = current_time + + +class StorageHosts(SansIOHTTPPolicy): + def __init__(self, hosts=None, **kwargs): # pylint: disable=unused-argument + self.hosts = hosts + super(StorageHosts, self).__init__() + + def on_request(self, request): + # type: (PipelineRequest) -> None + request.context.options["hosts"] = self.hosts + parsed_url = urlparse(request.http_request.url) + + # Detect what location mode we're currently requesting with + location_mode = LocationMode.PRIMARY + for key, value in self.hosts.items(): + if parsed_url.netloc == value: + location_mode = key + + # See if a specific location mode has been specified, and if so, redirect + use_location = request.context.options.pop("use_location", None) + if use_location: + # Lock retries to the specific location + request.context.options["retry_to_secondary"] = False + if use_location not in self.hosts: + raise ValueError( + "Attempting to use undefined host location {}".format(use_location) + ) + if use_location != location_mode: + # Update request URL to use the specified location + updated = parsed_url._replace(netloc=self.hosts[use_location]) + request.http_request.url = updated.geturl() + location_mode = use_location + + request.context.options["location_mode"] = location_mode + + +class TablesRetryPolicy(RetryPolicy): + """A retry policy. + + The retry policy in the pipeline can be configured directly, or tweaked on a per-call basis. + + :keyword bool retry_to_secondary: Whether to allow retrying to the secondary fail-over host + location. Default value is False. + + :keyword int retry_total: Total number of retries to allow. Takes precedence over other counts. + Default value is 10. + + :keyword int retry_connect: How many connection-related errors to retry on. + These are errors raised before the request is sent to the remote server, + which we assume has not triggered the server to process the request. Default value is 3. + + :keyword int retry_read: How many times to retry on read errors. + These errors are raised after the request was sent to the server, so the + request may have side-effects. Default value is 3. + + :keyword int retry_status: How many times to retry on bad status codes. Default value is 3. + + :keyword float retry_backoff_factor: A backoff factor to apply between attempts after the second try + (most errors are resolved immediately by a second try without a delay). + In fixed mode, retry policy will alwasy sleep for {backoff factor}. + In 'exponential' mode, retry policy will sleep for: `{backoff factor} * (2 ** ({number of total retries} - 1))` + seconds. If the backoff_factor is 0.1, then the retry will sleep + for [0.0s, 0.2s, 0.4s, ...] between retries. The default value is 0.8. + + :keyword int retry_backoff_max: The maximum back off time. Default value is 120 seconds (2 minutes). + + :keyword RetryMode retry_mode: Fixed or exponential delay between attemps, default is exponential. + + :keyword int timeout: Timeout setting for the operation in seconds, default is 604800s (7 days). + """ + + def __init__(self, **kwargs): + super(TablesRetryPolicy, self).__init__(**kwargs) + self.retry_to_secondary = kwargs.get('retry_to_secondary', False) + + def is_retry(self, settings, response): + """Is this method/status code retryable? (Based on whitelists and control + variables such as the number of total retries to allow, whether to + respect the Retry-After header, whether this header is present, and + whether the returned status code is on the list of status codes to + be retried upon on the presence of the aforementioned header) + """ + should_retry = super(TablesRetryPolicy, self).is_retry(settings, response) + status = response.http_response.status_code + if status == 404 and settings['mode'] == LocationMode.SECONDARY: + # Response code 404 should be retried if secondary was used. + return True + return should_retry + + def configure_retries(self, options): + """Configures the retry settings. + + :param options: keyword arguments from context. + :return: A dict containing settings and history for retries. + :rtype: dict + """ + config = super(TablesRetryPolicy, self).configure_retries(options) + config["retry_secondary"] = options.pop("retry_to_secondary", self.retry_to_secondary) + config["mode"] = options.pop("location_mode", LocationMode.PRIMARY) + config["hosts"] = options.pop("hosts", None) + return config + + def update_context(self, context, retry_settings): + """Updates retry history in pipeline context. + + :param context: The pipeline context. + :type context: ~azure.core.pipeline.PipelineContext + :param retry_settings: The retry settings. + :type retry_settings: dict + """ + super(TablesRetryPolicy, self).update_context(context, retry_settings) + context['location_mode'] = retry_settings['mode'] + + def update_request(self, request, retry_settings): # pylint:disable=no-self-use + """Updates the pipeline request before attempting to retry. + + :param PipelineRequest request: The outgoing request. + :param dict(str, Any) retry_settings: The current retry context settings. + """ + set_next_host_location(retry_settings, request) + + def send(self, request): + """Sends the PipelineRequest object to the next policy. Uses retry settings if necessary. + + :param request: The PipelineRequest object + :type request: ~azure.core.pipeline.PipelineRequest + :return: Returns the PipelineResponse or raises error if maximum retries exceeded. + :rtype: :class:`~azure.core.pipeline.PipelineResponse` + :raises: ~azure.core.exceptions.AzureError if maximum retries exceeded. + :raises: ~azure.core.exceptions.ClientAuthenticationError if authentication + """ + retry_active = True + response = None + retry_settings = self.configure_retries(request.context.options) + absolute_timeout = retry_settings['timeout'] + is_response_error = True + + while retry_active: + try: + start_time = time.time() + self._configure_timeout(request, absolute_timeout, is_response_error) + response = self.next.send(request) + if self.is_retry(retry_settings, response): + retry_active = self.increment(retry_settings, response=response) + if retry_active: + self.update_request(request, retry_settings) + self.sleep(retry_settings, request.context.transport, response=response) + is_response_error = True + continue + break + except ClientAuthenticationError: # pylint:disable=try-except-raise + # the authentication policy failed such that the client's request can't + # succeed--we'll never have a response to it, so propagate the exception + raise + except AzureError as err: + if self._is_method_retryable(retry_settings, request.http_request): + retry_active = self.increment(retry_settings, response=request, error=err) + if retry_active: + self.update_request(request, retry_settings) + self.sleep(retry_settings, request.context.transport) + if isinstance(err, ServiceRequestError): + is_response_error = False + else: + is_response_error = True + continue + raise err + finally: + end_time = time.time() + if absolute_timeout: + absolute_timeout -= (end_time - start_time) + + self.update_context(response.context, retry_settings) + return response + + +class CosmosPatchTransformPolicy(SansIOHTTPPolicy): + """Policy to transform PATCH requests into POST requests with the "X-HTTP-Method":"MERGE" header set.""" + + def on_request(self, request): + # type: (PipelineRequest) -> None + if request.http_request.method == "PATCH": + _transform_patch_to_cosmos_post(request.http_request) diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_sdk_moniker.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_sdk_moniker.py new file mode 100644 index 000000000000..8a7571636b37 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_sdk_moniker.py @@ -0,0 +1,11 @@ +# 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 ._version import VERSION + +SDK_MONIKER = "data-tables/{}".format(VERSION) diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_serialize.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_serialize.py new file mode 100644 index 000000000000..b7c71952d08f --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_serialize.py @@ -0,0 +1,255 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +from binascii import hexlify +from typing import Dict +from uuid import UUID +from datetime import datetime +from math import isnan +from enum import Enum +import sys + +import six +from azure.core import MatchConditions +from azure.core.exceptions import raise_with_traceback + +from ._entity import EdmType +from ._common_conversion import _encode_base64, _to_utc_datetime +from ._error import _ERROR_VALUE_TOO_LARGE, _ERROR_TYPE_NOT_SUPPORTED + + +def _get_match_headers(etag, match_condition): + if match_condition == MatchConditions.IfNotModified: + if not etag: + raise ValueError("IfNotModified must be specified with etag.") + return etag + if match_condition == MatchConditions.Unconditionally: + if etag: + raise ValueError("Etag is not supported for an Unconditional operation.") + return "*" + raise ValueError("Unsupported match condition: {}".format(match_condition)) + + +def _parameter_filter_substitution(parameters, query_filter): + # type: (Dict[str, str], str) -> str + """Replace user defined parameter in filter + :param parameters: User defined parameters + :param str query_filter: Filter for querying + """ + if parameters: + filter_strings = query_filter.split(' ') + for index, word in enumerate(filter_strings): + if word[0] == u'@': + val = parameters[word[1:]] + if val in [True, False]: + filter_strings[index] = str(val).lower() + elif isinstance(val, (float)): + filter_strings[index] = str(val) + elif isinstance(val, six.integer_types): + if val.bit_length() <= 32: + filter_strings[index] = str(val) + else: + filter_strings[index] = "{}L".format(str(val)) + elif isinstance(val, datetime): + filter_strings[index] = "datetime'{}'".format(_to_utc_datetime(val)) + elif isinstance(val, UUID): + filter_strings[index] = "guid'{}'".format(str(val)) + elif isinstance(val, six.binary_type): + v = str(hexlify(val)) + if v[0] == 'b': # Python 3 adds a 'b' and quotations, python 2.7 does neither + v = v[2:-1] + filter_strings[index] = "X'{}'".format(v) + else: + filter_strings[index] = "'{}'".format(val.replace("'", "''")) + return ' '.join(filter_strings) + return query_filter + + +def _to_entity_binary(value): + return EdmType.BINARY, _encode_base64(value) + + +def _to_entity_bool(value): + return None, value + + +def _to_entity_datetime(value): + if isinstance(value, str): + # Pass a serialized datetime straight through + return EdmType.DATETIME, value + try: + # Check is this is a 'round-trip' datetime, and if so + # pass through the original value. + if value.tables_service_value: + return EdmType.DATETIME, value.tables_service_value + except AttributeError: + pass + return EdmType.DATETIME, _to_utc_datetime(value) + + +def _to_entity_float(value): + if isnan(value): + return EdmType.DOUBLE, "NaN" + if value == float("inf"): + return EdmType.DOUBLE, "Infinity" + if value == float("-inf"): + return EdmType.DOUBLE, "-Infinity" + return EdmType.DOUBLE, value + + +def _to_entity_guid(value): + return EdmType.GUID, str(value) + + +def _to_entity_int32(value): + value = int(value) + if value >= 2 ** 31 or value < -(2 ** 31): + raise TypeError(_ERROR_VALUE_TOO_LARGE.format(str(value), EdmType.INT32)) + return None, value + + +def _to_entity_int64(value): + if sys.version_info < (3,): + ivalue = int(value) + else: + ivalue = int(value) + if ivalue >= 2 ** 63 or ivalue < -(2 ** 63): + raise TypeError(_ERROR_VALUE_TOO_LARGE.format(str(value), EdmType.INT64)) + return EdmType.INT64, str(value) + + +def _to_entity_str(value): + return EdmType.STRING, value + + +def _to_entity_none(value): # pylint: disable=unused-argument + return None, None + + +# Conversion from Python type to a function which returns a tuple of the +# type string and content string. +_PYTHON_TO_ENTITY_CONVERSIONS = { + int: _to_entity_int32, + bool: _to_entity_bool, + datetime: _to_entity_datetime, + float: _to_entity_float, + UUID: _to_entity_guid, + Enum: _to_entity_str, +} +try: + _PYTHON_TO_ENTITY_CONVERSIONS.update( + { + unicode: _to_entity_str, # type: ignore + str: _to_entity_binary, + long: _to_entity_int32, # type: ignore + } + ) +except NameError: + _PYTHON_TO_ENTITY_CONVERSIONS.update( + { + str: _to_entity_str, + bytes: _to_entity_binary, + } + ) + +# Conversion from Edm type to a function which returns a tuple of the +# type string and content string. +_EDM_TO_ENTITY_CONVERSIONS = { + EdmType.BINARY: _to_entity_binary, + EdmType.BOOLEAN: _to_entity_bool, + EdmType.DATETIME: _to_entity_datetime, + EdmType.DOUBLE: _to_entity_float, + EdmType.GUID: _to_entity_guid, + EdmType.INT32: _to_entity_int32, + EdmType.INT64: _to_entity_int64, + EdmType.STRING: _to_entity_str, +} + + +def _add_entity_properties(source): + """Converts an entity object to json to send. + The entity format is: + { + "Address":"Mountain View", + "Age":23, + "AmountDue":200.23, + "CustomerCode@odata.type":"Edm.Guid", + "CustomerCode":"c9da6455-213d-42c9-9a79-3e9149a57833", + "CustomerSince@odata.type":"Edm.DateTime", + "CustomerSince":"2008-07-10T00:00:00", + "IsActive":true, + "NumberOfOrders@odata.type":"Edm.Int64", + "NumberOfOrders":"255", + "PartitionKey":"mypartitionkey", + "RowKey":"myrowkey" + } + """ + + properties = {} + + to_send = dict(source) # shallow copy + + # set properties type for types we know if value has no type info. + # if value has type info, then set the type to value.type + for name, value in to_send.items(): + mtype = "" + + if isinstance(value, Enum): + try: + conv = _PYTHON_TO_ENTITY_CONVERSIONS.get(unicode) # type: ignore + except NameError: + conv = _PYTHON_TO_ENTITY_CONVERSIONS.get(str) + mtype, value = conv(value) + elif isinstance(value, datetime): + mtype, value = _to_entity_datetime(value) + elif isinstance(value, tuple): + conv = _EDM_TO_ENTITY_CONVERSIONS.get(value[1]) + mtype, value = conv(value[0]) + else: + conv = _PYTHON_TO_ENTITY_CONVERSIONS.get(type(value)) + if conv is None and value is not None: + raise TypeError(_ERROR_TYPE_NOT_SUPPORTED.format(type(value))) + if value is None: + conv = _to_entity_none + + mtype, value = conv(value) + + # form the property node + if value is not None: + properties[name] = value + if mtype: + properties[name + "@odata.type"] = mtype.value + + # generate the entity_body + return properties + + +def serialize_iso(attr): + """Serialize Datetime object into ISO-8601 formatted string. + + :param Datetime attr: Object to be serialized. + :rtype: str + :raises ValueError: If format is invalid. + """ + if not attr: + return None + if isinstance(attr, str): + # Pass a string through unaltered + return attr + try: + utc = attr.utctimetuple() + if utc.tm_year > 9999 or utc.tm_year < 1: + raise OverflowError("Hit max or min date") + + date = "{:04}-{:02}-{:02}T{:02}:{:02}:{:02}".format( + utc.tm_year, utc.tm_mon, utc.tm_mday, utc.tm_hour, utc.tm_min, utc.tm_sec + ) + return date + "Z" + except (ValueError, OverflowError) as err: + msg = "Unable to serialize datetime object." + raise_with_traceback(ValueError, msg, err) + except AttributeError as err: + msg = "ISO-8601 object must be valid Datetime object." + raise_with_traceback(TypeError, msg, err) diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_shared_access_signature.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_shared_access_signature.py new file mode 100644 index 000000000000..e80c725156d0 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_shared_access_signature.py @@ -0,0 +1,283 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +from datetime import date +from typing import Optional, Union, TYPE_CHECKING + +from ._deserialize import url_quote + + +from ._common_conversion import ( + _sign_string, + _to_str, +) +from ._constants import DEFAULT_X_MS_VERSION + +if TYPE_CHECKING: + from datetime import datetime # pylint: disable=ungrouped-imports + from ._models import AccountSasPermissions, ResourceTypes, SASProtocol + + +def _to_utc_datetime(value): + # This is for SAS where milliseconds are not supported + return value.strftime("%Y-%m-%dT%H:%M:%SZ") + + +class SharedAccessSignature(object): + """ + Provides a factory for creating account access + signature tokens with an account name and account key. Users can either + use the factory or can construct the appropriate service and use the + generate_*_shared_access_signature method directly. + """ + + def __init__(self, credential, x_ms_version=DEFAULT_X_MS_VERSION): + """ + :param credential: The credential used for authenticating requests + :type credential: :class:`~azure.core.credentials.NamedKeyCredential` + :param str x_ms_version: + The service version used to generate the shared access signatures. + """ + self.account_name = credential.named_key.name + self.account_key = credential.named_key.key + self.x_ms_version = x_ms_version + + def generate_account( + self, + services, # type: str + resource_types, # type: ResourceTypes + permission, # type: Union[AccountSasPermissions, str] + expiry, # type: Union[datetime, str] + start=None, # type: Optional[Union[datetime, str]] + ip_address_or_range=None, # type: Optional[str] + protocol=None, # type: Optional[Union[str, SASProtocol]] + ): + # type: (...) -> str + """ + Generates a shared access signature for the account. + Use the returned signature with the sas_token parameter of the service + or to create a new account object. + + :param str services: + Specifies the services as a bitmap accessible with the account SAS. You can + combine values to provide access to more than one service. + :param ResourceTypes resource_types: + Specifies the resource types that are accessible with the account + SAS. You can combine values to provide access to more than one + resource type. + :param AccountSasPermissions permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. You can combine + values to provide more than one permission. + :param expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :type expiry: datetime or str + :param start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :type start: datetime or str + :param str ip_address_or_range: + Specifies an IP address or a range of IP addresses from which to accept requests. + If the IP address from which the request originates does not match the IP address + or address range specified on the SAS token, the request is not authenticated. + For example, specifying sip=168.1.5.65 or sip=168.1.5.60-168.1.5.70 on the SAS + restricts the request to those IP addresses. + :param Union[str, SASProtocol] protocol: + Specifies the protocol permitted for a request made. The default value + is https,http. See :class:`~azure.cosmosdb.table.common.models.Protocol` for possible values. + """ + sas = _SharedAccessHelper() + sas.add_base( + permission, expiry, start, ip_address_or_range, protocol, self.x_ms_version + ) + sas.add_account(services, resource_types) + sas.add_account_signature(self.account_name, self.account_key) + + return sas.get_token() + + +class QueryStringConstants(object): + SIGNED_SIGNATURE = "sig" + SIGNED_PERMISSION = "sp" + SIGNED_START = "st" + SIGNED_EXPIRY = "se" + SIGNED_RESOURCE = "sr" + SIGNED_IDENTIFIER = "si" + SIGNED_IP = "sip" + SIGNED_PROTOCOL = "spr" + SIGNED_VERSION = "sv" + SIGNED_CACHE_CONTROL = "rscc" + SIGNED_CONTENT_DISPOSITION = "rscd" + SIGNED_CONTENT_ENCODING = "rsce" + SIGNED_CONTENT_LANGUAGE = "rscl" + SIGNED_CONTENT_TYPE = "rsct" + START_PK = "spk" + START_RK = "srk" + END_PK = "epk" + END_RK = "erk" + SIGNED_RESOURCE_TYPES = "srt" + SIGNED_SERVICES = "ss" + TABLE_NAME = "tn" + + @staticmethod + def to_list(): + return [ + QueryStringConstants.SIGNED_SIGNATURE, + QueryStringConstants.SIGNED_PERMISSION, + QueryStringConstants.SIGNED_START, + QueryStringConstants.SIGNED_EXPIRY, + QueryStringConstants.SIGNED_RESOURCE, + QueryStringConstants.SIGNED_IDENTIFIER, + QueryStringConstants.SIGNED_IP, + QueryStringConstants.SIGNED_PROTOCOL, + QueryStringConstants.SIGNED_VERSION, + QueryStringConstants.SIGNED_CACHE_CONTROL, + QueryStringConstants.SIGNED_CONTENT_DISPOSITION, + QueryStringConstants.SIGNED_CONTENT_ENCODING, + QueryStringConstants.SIGNED_CONTENT_LANGUAGE, + QueryStringConstants.SIGNED_CONTENT_TYPE, + QueryStringConstants.START_PK, + QueryStringConstants.START_RK, + QueryStringConstants.END_PK, + QueryStringConstants.END_RK, + QueryStringConstants.SIGNED_RESOURCE_TYPES, + QueryStringConstants.SIGNED_SERVICES, + QueryStringConstants.TABLE_NAME, + ] + + +class _SharedAccessHelper(object): + def __init__(self): + self.query_dict = {} + + def _add_query(self, name, val): + if val: + self.query_dict[name] = _to_str(val) + + def add_base(self, permission, expiry, start, ip, protocol, x_ms_version): + if isinstance(start, date): + start = _to_utc_datetime(start) + + if isinstance(expiry, date): + expiry = _to_utc_datetime(expiry) + + self._add_query(QueryStringConstants.SIGNED_START, start) + self._add_query(QueryStringConstants.SIGNED_EXPIRY, expiry) + self._add_query(QueryStringConstants.SIGNED_PERMISSION, permission) + self._add_query(QueryStringConstants.SIGNED_IP, ip) + self._add_query(QueryStringConstants.SIGNED_PROTOCOL, protocol) + self._add_query(QueryStringConstants.SIGNED_VERSION, x_ms_version) + + def add_resource(self, resource): + self._add_query(QueryStringConstants.SIGNED_RESOURCE, resource) + + def add_id(self, id): # pylint: disable=redefined-builtin + self._add_query(QueryStringConstants.SIGNED_IDENTIFIER, id) + + def add_account(self, services, resource_types): + self._add_query(QueryStringConstants.SIGNED_SERVICES, services) + self._add_query(QueryStringConstants.SIGNED_RESOURCE_TYPES, resource_types) + + def add_override_response_headers( + self, + cache_control, + content_disposition, + content_encoding, + content_language, + content_type, + ): + self._add_query(QueryStringConstants.SIGNED_CACHE_CONTROL, cache_control) + self._add_query( + QueryStringConstants.SIGNED_CONTENT_DISPOSITION, content_disposition + ) + self._add_query(QueryStringConstants.SIGNED_CONTENT_ENCODING, content_encoding) + self._add_query(QueryStringConstants.SIGNED_CONTENT_LANGUAGE, content_language) + self._add_query(QueryStringConstants.SIGNED_CONTENT_TYPE, content_type) + + def add_resource_signature(self, account_name, account_key, service, path): + def get_value_to_append(query): + return_value = self.query_dict.get(query) or "" + return return_value + "\n" + + if path[0] != "/": + path = "/" + path + + canonicalized_resource = "/" + service + "/" + account_name + path + "\n" + + # Form the string to sign from shared_access_policy and canonicalized + # resource. The order of values is important. + string_to_sign = ( + get_value_to_append(QueryStringConstants.SIGNED_PERMISSION) + + get_value_to_append(QueryStringConstants.SIGNED_START) + + get_value_to_append(QueryStringConstants.SIGNED_EXPIRY) + + canonicalized_resource + + get_value_to_append(QueryStringConstants.SIGNED_IDENTIFIER) + + get_value_to_append(QueryStringConstants.SIGNED_IP) + + get_value_to_append(QueryStringConstants.SIGNED_PROTOCOL) + + get_value_to_append(QueryStringConstants.SIGNED_VERSION) + ) + + if service in ["blob", "file"]: + string_to_sign += ( + get_value_to_append(QueryStringConstants.SIGNED_CACHE_CONTROL) + + get_value_to_append(QueryStringConstants.SIGNED_CONTENT_DISPOSITION) + + get_value_to_append(QueryStringConstants.SIGNED_CONTENT_ENCODING) + + get_value_to_append(QueryStringConstants.SIGNED_CONTENT_LANGUAGE) + + get_value_to_append(QueryStringConstants.SIGNED_CONTENT_TYPE) + ) + + # remove the trailing newline + if string_to_sign[-1] == "\n": + string_to_sign = string_to_sign[:-1] + + self._add_query( + QueryStringConstants.SIGNED_SIGNATURE, + _sign_string(account_key, string_to_sign), + ) + + def add_account_signature(self, account_name, account_key): + # type: (str, str) -> None + def get_value_to_append(query): + return_value = self.query_dict.get(query) or "" + return return_value + "\n" + + string_to_sign = ( + account_name + + "\n" + + get_value_to_append(QueryStringConstants.SIGNED_PERMISSION) + + get_value_to_append(QueryStringConstants.SIGNED_SERVICES) + + get_value_to_append(QueryStringConstants.SIGNED_RESOURCE_TYPES) + + get_value_to_append(QueryStringConstants.SIGNED_START) + + get_value_to_append(QueryStringConstants.SIGNED_EXPIRY) + + get_value_to_append(QueryStringConstants.SIGNED_IP) + + get_value_to_append(QueryStringConstants.SIGNED_PROTOCOL) + + get_value_to_append(QueryStringConstants.SIGNED_VERSION) + ) + + self._add_query( + QueryStringConstants.SIGNED_SIGNATURE, + _sign_string(account_key, string_to_sign), + ) + + def get_token(self): + # type: () -> str + return "&".join( + [ + "{0}={1}".format(n, url_quote(v)) + for n, v in self.query_dict.items() + if v is not None + ] + ) diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_table_batch.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_table_batch.py new file mode 100644 index 000000000000..89fe84b1117a --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_table_batch.py @@ -0,0 +1,686 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +from typing import ( + TYPE_CHECKING, + Union, + Any, + Dict, + Mapping, + Optional, + List +) + +from azure.core import MatchConditions + +from ._common_conversion import _transform_patch_to_cosmos_post +from ._models import UpdateMode +from ._serialize import _get_match_headers, _add_entity_properties +from ._entity import TableEntity + +if TYPE_CHECKING: + from azure.core.pipeline.transport import HttpRequest + import msrest + from ._generated import models, AzureTable + from ._generated._configuration import AzureTableConfiguration + +EntityType = Union[TableEntity, Mapping[str, Any]] + + + +class TableBatchOperations(object): + """ + This is the class that is used for batch operations for the data tables + service. + + The Tables service supports batch transactions on entities that are in the + same table and belong to the same partition group. Multiple operations are + supported within a single transaction. The batch can include at most 100 + entities, and its total payload may be no more than 4 MB in size. + + """ + + def __init__( + self, + client, # type: AzureTable + serializer, # type: msrest.Serializer + deserializer, # type: msrest.Deserializer + config, # type: AzureTableConfiguration + table_name, # type: str + is_cosmos_endpoint=False, # type: bool + **kwargs # type: Dict[str, Any] + ): + """Create TableClient from a Credential. + + :param client: an AzureTable object + :type client: AzureTable + :param serializer: serializer object for request serialization + :type serializer: msrest.Serializer + :param deserializer: deserializer object for request serialization + :type deserializer: msrest.Deserializer + :param config: Azure Table Configuration object + :type config: AzureTableConfiguration + :param table_name: name of the Table to perform operations on + :type table_name: str + :param table_client: TableClient object to perform operations on + :type table_client: TableClient + + :returns: None + """ + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + self._is_cosmos_endpoint = is_cosmos_endpoint + self.table_name = table_name + + self._partition_key = kwargs.pop("partition_key", None) + self.requests = [] # type: List[HttpRequest] + + def __len__(self): + return len(self.requests) + + def _verify_partition_key( + self, entity # type: EntityType + ): + # (...) -> None + if self._partition_key is None: + self._partition_key = entity["PartitionKey"] + elif entity["PartitionKey"] != self._partition_key: + raise ValueError("Partition Keys must all be the same") + + def create( + self, + entity, # type: EntityType + **kwargs # type: Any + ): + # type: (...) -> None + """Adds an insert operation to the current batch. + + :param entity: The properties for the table entity. + :type entity: :class:`~azure.data.tables.TableEntity` or Dict[str,str] + :return: None + :rtype: None + :raises ValueError: + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_batching.py + :start-after: [START batching] + :end-before: [END batching] + :language: python + :dedent: 8 + :caption: Creating and adding an entity to a Table + """ + self._verify_partition_key(entity) + temp = entity.copy() # type: ignore + + if "PartitionKey" in temp and "RowKey" in temp: + temp = _add_entity_properties(temp) + else: + raise ValueError("PartitionKey and/or RowKey were not provided in entity") + self._batch_create_entity(table=self.table_name, entity=temp, **kwargs) + + def _batch_create_entity( + self, + table, # type: str + entity, # type: EntityType + timeout=None, # type: Optional[int] + request_id_parameter=None, # type: Optional[str] + response_preference="return-no-content", # type: Optional[Union[str, "models.ResponseFormat"]] + query_options=None, # type: Optional["models.QueryOptions"] + **kwargs # type: Any + ): + # (...) -> None + """ + Adds an insert operation to the batch. See + :func:`azure.data.tables.TableClient.insert_entity` for more information + on insert operations. + + The operation will not be executed until the batch is committed + + :param: table: + The table to perform the operation on + :type: table: str + :param: entity: + The entity to insert. Can be a dict or an entity object + Must contain a PartitionKey and a RowKey. + :type: entity: dict or :class:`~azure.data.tables.models.Entity` + """ + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + content_type = kwargs.pop("content_type", "application/json;odata=nometadata") + accept = "application/json;odata=minimalmetadata" + + # Construct URL + url = self._batch_create_entity.metadata["url"] # type: ignore + path_format_arguments = { + "url": self._serialize.url( + "self._config.url", self._config.url, "str", skip_quote=True + ), + "table": self._serialize.url("table", table, "str"), + } + url = self._client._client.format_url( # pylint: disable=protected-access + url, **path_format_arguments + ) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters["timeout"] = self._serialize.query( + "timeout", timeout, "int", minimum=0 + ) + if _format is not None: + query_parameters["$format"] = self._serialize.query( + "format", _format, "str" + ) + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters["x-ms-version"] = self._serialize.header( + "self._config.version", self._config.version, "str" + ) + if request_id_parameter is not None: + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "request_id_parameter", request_id_parameter, "str" + ) + header_parameters["DataServiceVersion"] = self._serialize.header( + "data_service_version", data_service_version, "str" + ) + if response_preference is not None: + header_parameters["Prefer"] = self._serialize.header( + "response_preference", response_preference, "str" + ) + 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] + if entity is not None: + body_content = self._serialize.body(entity, "{object}") + else: + body_content = None + body_content_kwargs["content"] = body_content + request = self._client._client.post( # pylint: disable=protected-access + url, query_parameters, header_parameters, **body_content_kwargs + ) + self.requests.append(request) + + _batch_create_entity.metadata = {"url": "/{table}"} # type: ignore + + def update( + self, + entity, # type: EntityType + mode=UpdateMode.MERGE, # type: Union[str, UpdateMode] + **kwargs # type: Any + ): + # (...) -> None + + """Adds an update operation to the current batch. + + :param entity: The properties for the table entity. + :type entity: :class:`~azure.data.tables.TableEntity` or Dict[str,str] + :param mode: Merge or Replace entity + :type mode: :class:`~azure.data.tables.UpdateMode` + :keyword str etag: Etag of the entity + :keyword match_condition: MatchCondition + :paramtype match_condition: ~azure.core.MatchCondition + :return: None + :rtype: None + :raises ValueError: + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_batching.py + :start-after: [START batching] + :end-before: [END batching] + :language: python + :dedent: 8 + :caption: Creating and adding an entity to a Table + """ + self._verify_partition_key(entity) + temp = entity.copy() # type: ignore + + match_condition = kwargs.pop("match_condition", None) + etag = kwargs.pop("etag", None) + if match_condition and not etag: + try: + etag = entity.metadata.get("etag", None) # type: ignore + except (AttributeError, TypeError): + pass + if_match = _get_match_headers( + etag=etag, + match_condition=match_condition or MatchConditions.Unconditionally, + ) + + partition_key = temp["PartitionKey"] + row_key = temp["RowKey"] + temp = _add_entity_properties(temp) + if mode is UpdateMode.REPLACE: + self._batch_update_entity( + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + if_match=if_match, + table_entity_properties=temp, + **kwargs + ) + elif mode is UpdateMode.MERGE: + self._batch_merge_entity( + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + if_match=if_match, + table_entity_properties=temp, + **kwargs + ) + + def _batch_update_entity( + self, + table, # type: str + partition_key, # type: str + row_key, # type: str + timeout=None, # type: Optional[int] + request_id_parameter=None, # type: Optional[str] + if_match=None, # type: Optional[str] + table_entity_properties=None, # type: Optional[EntityType] + query_options=None, # type: Optional["models.QueryOptions"] + **kwargs # type: Any + ): + # type: (...) -> None + """Update entity in a table. + + :param table: The name of the table. + :type table: str + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param if_match: Match condition for an entity to be updated. If specified and a matching + entity is not found, an error will be raised. To force an unconditional update, set to the + wildcard character (*). If not specified, an insert will be performed when no existing entity + is found to update and a replace will be performed if an existing entity is found. + :type if_match: str + :param table_entity_properties: The properties for the table entity. + :type table_entity_properties: dict[str, object] + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :return: None + :rtype: None + """ + + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._batch_update_entity.metadata["url"] # type: ignore + path_format_arguments = { + "url": self._serialize.url( + "self._config.url", self._config.url, "str", skip_quote=True + ), + "table": self._serialize.url("table", table, "str"), + "partitionKey": self._serialize.url("partition_key", partition_key, "str"), + "rowKey": self._serialize.url("row_key", row_key, "str"), + } + url = self._client._client.format_url( # pylint: disable=protected-access + url, **path_format_arguments + ) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters["timeout"] = self._serialize.query( + "timeout", timeout, "int", minimum=0 + ) + if _format is not None: + query_parameters["$format"] = self._serialize.query( + "format", _format, "str" + ) + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters["x-ms-version"] = self._serialize.header( + "self._config.version", self._config.version, "str" + ) + if request_id_parameter is not None: + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "request_id_parameter", request_id_parameter, "str" + ) + header_parameters["DataServiceVersion"] = self._serialize.header( + "data_service_version", data_service_version, "str" + ) + if if_match is not None: + header_parameters["If-Match"] = self._serialize.header( + "if_match", if_match, "str" + ) + 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] + if table_entity_properties is not None: + body_content = self._serialize.body(table_entity_properties, "{object}") + else: + body_content = None + body_content_kwargs["content"] = body_content + request = self._client._client.put( # pylint: disable=protected-access + url, query_parameters, header_parameters, **body_content_kwargs + ) + self.requests.append(request) + + _batch_update_entity.metadata = { # type: ignore + "url": "/{table}(PartitionKey='{partitionKey}',RowKey='{rowKey}')" + } # type: ignore + + def _batch_merge_entity( + self, + table, # type: str + partition_key, # type: str + row_key, # type: str + timeout=None, # type: Optional[int] + request_id_parameter=None, # type: Optional[str] + if_match=None, # type: Optional[str] + table_entity_properties=None, # type: Optional[EntityType] + query_options=None, # type: Optional["models.QueryOptions"] + **kwargs # type: Any + ): + # type: (...) -> None + """Merge entity in a table. + + :param table: The name of the table. + :type table: str + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param if_match: Match condition for an entity to be updated. If specified and a matching + entity is not found, an error will be raised. To force an unconditional update, set to the + wildcard character (*). If not specified, an insert will be performed when no existing entity + is found to update and a merge will be performed if an existing entity is found. + :type if_match: str + :param table_entity_properties: The properties for the table entity. + :type table_entity_properties: dict[str, object] + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :return: None + :rtype: None + """ + + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._batch_merge_entity.metadata["url"] # type: ignore + path_format_arguments = { + "url": self._serialize.url( + "self._config.url", self._config.url, "str", skip_quote=True + ), + "table": self._serialize.url("table", table, "str"), + "partitionKey": self._serialize.url("partition_key", partition_key, "str"), + "rowKey": self._serialize.url("row_key", row_key, "str"), + } + url = self._client._client.format_url( # pylint: disable=protected-access + url, **path_format_arguments + ) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters["timeout"] = self._serialize.query( + "timeout", timeout, "int", minimum=0 + ) + if _format is not None: + query_parameters["$format"] = self._serialize.query( + "format", _format, "str" + ) + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters["x-ms-version"] = self._serialize.header( + "self._config.version", self._config.version, "str" + ) + if request_id_parameter is not None: + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "request_id_parameter", request_id_parameter, "str" + ) + header_parameters["DataServiceVersion"] = self._serialize.header( + "data_service_version", data_service_version, "str" + ) + if if_match is not None: + header_parameters["If-Match"] = self._serialize.header( + "if_match", if_match, "str" + ) + 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] + if table_entity_properties is not None: + body_content = self._serialize.body(table_entity_properties, "{object}") + else: + body_content = None + body_content_kwargs["content"] = body_content + request = self._client._client.patch( # pylint: disable=protected-access + url, query_parameters, header_parameters, **body_content_kwargs + ) + if self._is_cosmos_endpoint: + _transform_patch_to_cosmos_post(request) + self.requests.append(request) + + _batch_merge_entity.metadata = { # type: ignore + "url": "/{table}(PartitionKey='{partitionKey}',RowKey='{rowKey}')" + } + + def delete( + self, + entity, # type: EntityType + **kwargs # type: Any + ): + # type: (...) -> None + """Adds a delete operation to the current branch. + + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :keyword str etag: Etag of the entity + :keyword match_condition: MatchCondition + :paramtype match_condition: ~azure.core.MatchCondition + :raises ValueError: + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_batching.py + :start-after: [START batching] + :end-before: [END batching] + :language: python + :dedent: 8 + :caption: Creating and adding an entity to a Table + """ + self._verify_partition_key(entity) + temp = entity.copy() # type: ignore + partition_key = temp["PartitionKey"] + row_key = temp["RowKey"] + + match_condition = kwargs.pop("match_condition", None) + etag = kwargs.pop("etag", None) + if match_condition and not etag: + try: + etag = entity.metadata.get("etag", None) # type: ignore + except (AttributeError, TypeError): + pass + if_match = _get_match_headers( + etag=etag, + match_condition=match_condition or MatchConditions.Unconditionally, + ) + + self._batch_delete_entity( + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + if_match=if_match, + **kwargs + ) + + def _batch_delete_entity( + self, + table, # type: str + partition_key, # type: str + row_key, # type: str + if_match, # type: str + timeout=None, # type: Optional[int] + request_id_parameter=None, # type: Optional[str] + query_options=None, # type: Optional["models.QueryOptions"] + ): + # type: (...) -> None + """Deletes the specified entity in a table. + + :param table: The name of the table. + :type table: str + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :param if_match: Match condition for an entity to be deleted. If specified and a matching + entity is not found, an error will be raised. To force an unconditional delete, set to the + wildcard character (*). + :type if_match: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + :return: None + :rtype: None + """ + + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + accept = "application/json;odata=minimalmetadata" + + # Construct URL + url = self._batch_delete_entity.metadata["url"] # type: ignore + path_format_arguments = { + "url": self._serialize.url( + "self._config.url", self._config.url, "str", skip_quote=True + ), + "table": self._serialize.url("table", table, "str"), + "partitionKey": self._serialize.url("partition_key", partition_key, "str"), + "rowKey": self._serialize.url("row_key", row_key, "str"), + } + url = self._client._client.format_url( # pylint: disable=protected-access + url, **path_format_arguments + ) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters["timeout"] = self._serialize.query( + "timeout", timeout, "int", minimum=0 + ) + if _format is not None: + query_parameters["$format"] = self._serialize.query( + "format", _format, "str" + ) + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters["x-ms-version"] = self._serialize.header( + "self._config.version", self._config.version, "str" + ) + if request_id_parameter is not None: + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "request_id_parameter", request_id_parameter, "str" + ) + header_parameters["DataServiceVersion"] = self._serialize.header( + "data_service_version", data_service_version, "str" + ) + header_parameters["If-Match"] = self._serialize.header( + "if_match", if_match, "str" + ) + header_parameters["Accept"] = self._serialize.header("accept", accept, "str") + + request = self._client._client.delete( # pylint: disable=protected-access + url, query_parameters, header_parameters + ) + self.requests.append(request) + + _batch_delete_entity.metadata = { # type: ignore + "url": "/{table}(PartitionKey='{partitionKey}',RowKey='{rowKey}')" + } + + def upsert( + self, + entity, # type: EntityType + mode=UpdateMode.MERGE, # type: Union[str, UpdateMode] + **kwargs # type: Any + ): + # type: (...) -> None + """Adds an upsert (update/merge) operation to the batch. + + :param entity: The properties for the table entity. + :type entity: :class:`~azure.data.tables.TableEntity` or Dict[str,str] + :param mode: Merge or Replace entity + :type mode: :class:`~azure.data.tables.UpdateMode` + :raises ValueError: + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_batching.py + :start-after: [START batching] + :end-before: [END batching] + :language: python + :dedent: 8 + :caption: Creating and adding an entity to a Table + """ + self._verify_partition_key(entity) + temp = entity.copy() # type: ignore + + partition_key = temp["PartitionKey"] + row_key = temp["RowKey"] + temp = _add_entity_properties(temp) + + if mode is UpdateMode.MERGE: + self._batch_merge_entity( + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + table_entity_properties=temp, + **kwargs + ) + elif mode is UpdateMode.REPLACE: + self._batch_update_entity( + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + table_entity_properties=temp, + **kwargs + ) diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_table_client.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_table_client.py new file mode 100644 index 000000000000..14e9e437f461 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_table_client.py @@ -0,0 +1,731 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import functools +from typing import Optional, Any, TYPE_CHECKING, Union, List, Tuple, Dict, Mapping, Iterable, overload, cast +try: + from urllib.parse import urlparse, unquote +except ImportError: + from urlparse import urlparse # type: ignore + from urllib2 import unquote # type: ignore + +from azure.core import MatchConditions +from azure.core.exceptions import HttpResponseError +from azure.core.paging import ItemPaged +from azure.core.tracing.decorator import distributed_trace + +from ._deserialize import _convert_to_entity, _trim_service_metadata +from ._entity import TableEntity +from ._error import ( + _process_table_error, + _validate_table_name, + _reraise_error, + _decode_error +) +from ._generated.models import ( + SignedIdentifier, + TableProperties, + QueryOptions +) +from ._serialize import _get_match_headers, _add_entity_properties +from ._base_client import parse_connection_str, TablesBaseClient +from ._serialize import serialize_iso, _parameter_filter_substitution +from ._deserialize import deserialize_iso, _return_headers_and_deserialized +from ._table_batch import TableBatchOperations +from ._models import ( + TableEntityPropertiesPaged, + UpdateMode, + TableAccessPolicy, + TransactionOperation, + TableItem +) + +EntityType = Union[TableEntity, Mapping[str, Any]] +OperationType = Union[TransactionOperation, str] +TransactionOperationType = Union[Tuple[OperationType, EntityType], Tuple[OperationType, EntityType, Mapping[str, Any]]] + +if TYPE_CHECKING: + from azure.core.credentials import AzureNamedKeyCredential, AzureSasCredential + + +class TableClient(TablesBaseClient): + """A client to interact with a specific Table in an Azure Tables account. + + :ivar str account_name: The name of the Tables account. + :ivar str table_name: The name of the table. + :ivar str url: The full URL to the Tables account. + """ + + def __init__( # pylint: disable=missing-client-constructor-parameter-credential + self, + endpoint, # type: str + table_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Create TableClient from a Credential. + + :param str endpoint: A URL to an Azure Tables account. + :param str table_name: The table name. + :keyword credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token. The value can be one of AzureNamedKeyCredential (azure-core), + AzureSasCredential (azure-core), or TokenCredentials from azure-identity. + :paramtype credential: + :class:`~azure.core.credentials.AzureNamedKeyCredential` or + :class:`~azure.core.credentials.AzureSasCredential` or + :class:`~azure.core.credentials.TokenCredential` + :returns: None + """ + if not table_name: + raise ValueError("Please specify a table name.") + _validate_table_name(table_name) + self.table_name = table_name + super(TableClient, self).__init__(endpoint, **kwargs) + + def _format_url(self, hostname): + """Format the endpoint URL according to the current location + mode hostname. + """ + return "{}://{}{}".format(self.scheme, hostname, self._query_str) + + @classmethod + def from_connection_string( + cls, + conn_str, # type: str + table_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> TableClient + """Create TableClient from a Connection String. + + :param str conn_str: A connection string to an Azure Tables account. + :param str table_name: The table name. + :returns: A table client. + :rtype: :class:`~azure.data.tables.TableClient` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_create_client.py + :start-after: [START create_table_client] + :end-before: [END create_table_client] + :language: python + :dedent: 8 + :caption: Authenticating a TableServiceClient from a connection_string + """ + endpoint, credential = parse_connection_str( + conn_str=conn_str, credential=None, keyword_args=kwargs + ) + return cls(endpoint, table_name=table_name, credential=credential, **kwargs) + + @classmethod + def from_table_url(cls, table_url, **kwargs): + # type: (str, Any) -> TableClient + """A client to interact with a specific Table. + + :param str table_url: The full URI to the table, including SAS token if used. + :keyword credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token. The value can be one of AzureNamedKeyCredential + or AzureSasCredential from azure-core. + :paramtype credential: + :class:`~azure.core.credentials.AzureNamedKeyCredential` or + :class:`~azure.core.credentials.AzureSasCredential` + :returns: A table client. + :rtype: :class:`~azure.data.tables.TableClient` + """ + try: + if not table_url.lower().startswith("http"): + table_url = "https://" + table_url + except AttributeError: + raise ValueError("Table URL must be a string.") + parsed_url = urlparse(table_url.rstrip("/")) + + if not parsed_url.netloc: + raise ValueError("Invalid URL: {}".format(table_url)) + + table_path = parsed_url.path.lstrip("/").split("/") + account_path = "" + if len(table_path) > 1: + account_path = "/" + "/".join(table_path[:-1]) + endpoint = "{}://{}{}?{}".format( + parsed_url.scheme, + parsed_url.netloc.rstrip("/"), + account_path, + parsed_url.query, + ) + table_name = unquote(table_path[-1]) + if table_name.lower().startswith("tables('"): + table_name = table_name[8:-2] + if not table_name: + raise ValueError( + "Invalid URL. Please provide a URL with a valid table name" + ) + return cls(endpoint, table_name=table_name, **kwargs) + + @distributed_trace + def get_table_access_policy( + self, **kwargs # type: Any + ): + # type: (...) -> Dict[str, Optional[TableAccessPolicy]] + """Retrieves details about any stored access policies specified on the table that may be + used with Shared Access Signatures. + + :return: Dictionary of SignedIdentifiers + :rtype: Dict[str, Optional[:class:`~azure.data.tables.TableAccessPolicy`]] + :raises: :class:`~azure.core.exceptions.HttpResponseError` + """ + timeout = kwargs.pop("timeout", None) + try: + _, identifiers = self._client.table.get_access_policy( + table=self.table_name, + timeout=timeout, + cls=kwargs.pop("cls", None) or _return_headers_and_deserialized, + **kwargs + ) + except HttpResponseError as error: + _process_table_error(error) + output = {} # type: Dict[str, Optional[TableAccessPolicy]] + for identifier in cast(List[SignedIdentifier], identifiers): + if identifier.access_policy: + output[identifier.id] = TableAccessPolicy( + start=deserialize_iso(identifier.access_policy.start), + expiry=deserialize_iso(identifier.access_policy.expiry), + permission=identifier.access_policy.permission + ) + else: + output[identifier.id] = None + return output + + @distributed_trace + def set_table_access_policy( + self, + signed_identifiers, # type: Dict[str, Optional[TableAccessPolicy]] + **kwargs + ): + # type: (...) -> None + """Sets stored access policies for the table that may be used with Shared Access Signatures. + + :param signed_identifiers: Access policies to set for the table + :type signed_identifiers: Dict[str, Optional[:class:`~azure.data.tables.TableAccessPolicy`]] + :return: None + :rtype: None + :raises: :class:`~azure.core.exceptions.HttpResponseError` + """ + identifiers = [] + for key, value in signed_identifiers.items(): + payload = None + if value: + payload = TableAccessPolicy( + start=serialize_iso(value.start), + expiry=serialize_iso(value.expiry), + permission=value.permission + ) + identifiers.append(SignedIdentifier(id=key, access_policy=payload)) + signed_identifiers = identifiers # type: ignore + try: + self._client.table.set_access_policy( + table=self.table_name, table_acl=signed_identifiers or None, **kwargs # type: ignore + ) + except HttpResponseError as error: + try: + _process_table_error(error) + except HttpResponseError as table_error: + if (table_error.error_code == 'InvalidXmlDocument' # type: ignore + and len(signed_identifiers) > 5): + raise ValueError( + 'Too many access policies provided. The server does not support setting ' + 'more than 5 access policies on a single resource.' + ) + raise + + @distributed_trace + def create_table( + self, **kwargs # type: Any + ): + # type: (...) -> TableItem + """Creates a new table under the current account. + + :return: A TableItem representing the created table. + :rtype: :class:`~azure.data.tables.TableItem` + :raises: :class:`~azure.core.exceptions.ResourceExistsError` If the entity already exists + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_create_delete_table.py + :start-after: [START create_table_from_table_client] + :end-before: [END create_table_from_table_client] + :language: python + :dedent: 8 + :caption: Creating a table from the TableClient object + """ + table_properties = TableProperties(table_name=self.table_name) + try: + result = self._client.table.create(table_properties, **kwargs) + except HttpResponseError as error: + _process_table_error(error) + return TableItem(name=result.table_name) # type: ignore + + @distributed_trace + def delete_table( + self, **kwargs # type: Any + ): + # type: (...) -> None + """Deletes the table under the current account. No error will be raised + if the table does not exist + + :return: None + :rtype: None + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_create_delete_table.py + :start-after: [START delete_table_from_table_client] + :end-before: [END delete_table_from_table_client] + :language: python + :dedent: 8 + :caption: Deleting a table from the TableClient object + """ + try: + self._client.table.delete(table=self.table_name, **kwargs) + except HttpResponseError as error: + if error.status_code == 404: + return + _process_table_error(error) + + @overload + def delete_entity(self, partition_key, row_key, **kwargs): + # type: (str, str, Any) -> None + pass + + @overload + def delete_entity(self, entity, **kwargs): + # type: (Union[TableEntity, Mapping[str, Any]], Any) -> None + pass + + @distributed_trace + def delete_entity(self, *args, **kwargs): + # type: (Union[TableEntity, str], Any) -> None + """Deletes the specified entity in a table. No error will be raised if + the entity or PartitionKey-RowKey pairing is not found. + + :param str partition_key: The partition key of the entity. + :param str row_key: The row key of the entity. + :param entity: The entity to delete + :type entity: Union[TableEntity, Mapping[str, str]] + :keyword str etag: Etag of the entity + :keyword match_condition: The condition under which to perform the operation. + Supported values include: MatchConditions.IfNotModified, MatchConditions.Unconditionally. + The default value is Unconditionally. + :paramtype match_condition: ~azure.core.MatchConditions + :return: None + :rtype: None + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_insert_delete_entities.py + :start-after: [START delete_entity] + :end-before: [END delete_entity] + :language: python + :dedent: 12 + :caption: Deleting an entity of a Table + """ + try: + entity = kwargs.pop('entity', None) + if not entity: + entity = args[0] + partition_key = entity['PartitionKey'] + row_key = entity['RowKey'] + except (TypeError, IndexError): + partition_key = kwargs.pop('partition_key', None) + if not partition_key: + partition_key = args[0] + row_key = kwargs.pop("row_key", None) + if not row_key: + row_key = args[1] + + match_condition = kwargs.pop("match_condition", None) + etag = kwargs.pop("etag", None) + if match_condition and entity and not etag: + try: + etag = entity.metadata.get("etag", None) + except (AttributeError, TypeError): + pass + if_match = _get_match_headers( + etag=etag, + match_condition=match_condition or MatchConditions.Unconditionally, + ) + + try: + self._client.table.delete_entity( + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + if_match=if_match, + **kwargs + ) + except HttpResponseError as error: + if error.status_code == 404: + return + _process_table_error(error) + + @distributed_trace + def create_entity( + self, + entity, # type: EntityType + **kwargs # type: Any + ): + # type: (...) -> Dict[str,str] + """Insert entity in a table. + + :param entity: The properties for the table entity. + :type entity: Union[TableEntity, Mapping[str, Any]] + :return: Dictionary mapping operation metadata returned from the service + :rtype: Dict[str,str] + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_insert_delete_entities.py + :start-after: [START create_entity] + :end-before: [END create_entity] + :language: python + :dedent: 12 + :caption: Creating and adding an entity to a Table + """ + entity = _add_entity_properties(entity) + try: + metadata, content = self._client.table.insert_entity( # type: ignore + table=self.table_name, + table_entity_properties=entity, # type: ignore + cls=kwargs.pop("cls", _return_headers_and_deserialized), + **kwargs + ) + except HttpResponseError as error: + decoded = _decode_error(error.response, error.message) + if decoded.error_code == "PropertiesNeedValue": + if entity.get("PartitionKey") is None: + raise ValueError("PartitionKey must be present in an entity") + if entity.get("RowKey") is None: + raise ValueError("RowKey must be present in an entity") + _reraise_error(error) + return _trim_service_metadata(metadata, content=content) # type: ignore + + @distributed_trace + def update_entity( + self, + entity, # type: EntityType + mode=UpdateMode.MERGE, # type: UpdateMode + **kwargs # type: Any + ): + # type: (...) -> Dict[str,str] + """Update entity in a table. + + :param entity: The properties for the table entity. + :type entity: :class:`~azure.data.tables.TableEntity` or Dict[str,str] + :param mode: Merge or Replace entity + :type mode: :class:`~azure.data.tables.UpdateMode` + :keyword str etag: Etag of the entity + :keyword match_condition: The condition under which to perform the operation. + Supported values include: MatchConditions.IfNotModified, MatchConditions.Unconditionally. + The default value is Unconditionally. + :paramtype match_condition: ~azure.core.MatchConditions + :return: Dictionary mapping operation metadata returned from the service + :rtype: Dict[str,str] + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_update_upsert_merge_entities.py + :start-after: [START update_entity] + :end-before: [END update_entity] + :language: python + :dedent: 16 + :caption: Updating an already exiting entity in a Table + """ + match_condition = kwargs.pop("match_condition", None) + etag = kwargs.pop("etag", None) + if match_condition and not etag: + try: + etag = entity.metadata.get("etag", None) # type: ignore + except (AttributeError, TypeError): + pass + if_match = _get_match_headers( + etag=etag, + match_condition=match_condition or MatchConditions.Unconditionally, + ) + + partition_key = entity["PartitionKey"] + row_key = entity["RowKey"] + entity = _add_entity_properties(entity) + try: + metadata = None + content = None + if mode is UpdateMode.REPLACE: + metadata, content = self._client.table.update_entity( # type: ignore + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + table_entity_properties=entity, # type: ignore + if_match=if_match, + cls=kwargs.pop("cls", _return_headers_and_deserialized), + **kwargs + ) + elif mode is UpdateMode.MERGE: + metadata, content = self._client.table.merge_entity( # type: ignore + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + if_match=if_match, + table_entity_properties=entity, # type: ignore + cls=kwargs.pop("cls", _return_headers_and_deserialized), + **kwargs + ) + else: + raise ValueError("Mode type is not supported") + except HttpResponseError as error: + _process_table_error(error) + return _trim_service_metadata(metadata, content=content) # type: ignore + + @distributed_trace + def list_entities( + self, **kwargs # type: Any + ): + # type: (...) -> ItemPaged[TableEntity] + """Lists entities in a table. + + :keyword int results_per_page: Number of entities returned per service request. + :keyword select: Specify desired properties of an entity to return. + :paramtype select: str or List[str] + :return: ItemPaged[:class:`~azure.data.tables.TableEntity`] + :rtype: ~azure.core.paging.ItemPaged + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_update_upsert_merge_entities.py + :start-after: [START query_entities] + :end-before: [END query_entities] + :language: python + :dedent: 16 + :caption: List all entities held within a table + """ + user_select = kwargs.pop("select", None) + if user_select and not isinstance(user_select, str): + user_select = ",".join(user_select) + top = kwargs.pop("results_per_page", None) + + command = functools.partial(self._client.table.query_entities, **kwargs) + return ItemPaged( + command, + table=self.table_name, + results_per_page=top, + select=user_select, + page_iterator_class=TableEntityPropertiesPaged, + ) + + @distributed_trace + def query_entities( + self, + query_filter, + **kwargs + ): + # type: (str, Dict[str, Any]) -> ItemPaged[TableEntity] + """Lists entities in a table. + + :param str query_filter: Specify a filter to return certain entities + :keyword int results_per_page: Number of entities returned per service request. + :keyword select: Specify desired properties of an entity to return. + :paramtype select: str or List[str] + :keyword parameters: Dictionary for formatting query with additional, user defined parameters + :paramtype parameters: Dict[str, Any] + :return: ItemPaged[:class:`~azure.data.tables.TableEntity`] + :rtype: ~azure.core.paging.ItemPaged + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_query_table.py + :start-after: [START query_entities] + :end-before: [END query_entities] + :language: python + :dedent: 8 + :caption: Query entities held within a table + """ + parameters = kwargs.pop("parameters", None) + query_filter = _parameter_filter_substitution( + parameters, query_filter # type: ignore + ) + top = kwargs.pop("results_per_page", None) + user_select = kwargs.pop("select", None) + if user_select and not isinstance(user_select, str): + user_select = ",".join(user_select) # type: ignore + + command = functools.partial(self._client.table.query_entities, **kwargs) + return ItemPaged( + command, + table=self.table_name, + results_per_page=top, + filter=query_filter, + select=user_select, + page_iterator_class=TableEntityPropertiesPaged, + ) + + @distributed_trace + def get_entity( + self, + partition_key, # type: str + row_key, # type: str + **kwargs # type: Any + ): + # type: (...) -> TableEntity + """Get a single entity in a table. + + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :keyword select: Specify desired properties of an entity to return. + :paramtype select: str or List[str] + :return: Dictionary mapping operation metadata returned from the service + :rtype: :class:`~azure.data.tables.TableEntity` + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_update_upsert_merge_entities.py + :start-after: [START get_entity] + :end-before: [END get_entity] + :language: python + :dedent: 16 + :caption: Get a single entity from a table + """ + user_select = kwargs.pop("select", None) + if user_select and not isinstance(user_select, str): + user_select = ",".join(user_select) + try: + entity = self._client.table.query_entity_with_partition_and_row_key( + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + query_options=QueryOptions(select=user_select), + **kwargs + ) + except HttpResponseError as error: + _process_table_error(error) + return _convert_to_entity(entity) + + @distributed_trace + def upsert_entity( + self, + entity, # type: EntityType + mode=UpdateMode.MERGE, # type: UpdateMode + **kwargs # type: Any + ): + # type: (...) -> Dict[str,str] + """Update/Merge or Insert entity into table. + + :param entity: The properties for the table entity. + :type entity: :class:`~azure.data.tables.TableEntity` or Dict[str,str] + :param mode: Merge or Replace entity + :type mode: :class:`~azure.data.tables.UpdateMode` + :return: Dictionary mapping operation metadata returned from the service + :rtype: Dict[str,str] + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_update_upsert_merge_entities.py + :start-after: [START upsert_entity] + :end-before: [END upsert_entity] + :language: python + :dedent: 16 + :caption: Update/merge or insert an entity into a table + """ + + partition_key = entity["PartitionKey"] + row_key = entity["RowKey"] + entity = _add_entity_properties(entity) + try: + metadata = None + content = None + if mode is UpdateMode.MERGE: + metadata, content = self._client.table.merge_entity( # type: ignore + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + table_entity_properties=entity, # type: ignore + cls=kwargs.pop("cls", _return_headers_and_deserialized), + **kwargs + ) + elif mode is UpdateMode.REPLACE: + metadata, content = self._client.table.update_entity( # type: ignore + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + table_entity_properties=entity, # type: ignore + cls=kwargs.pop("cls", _return_headers_and_deserialized), + **kwargs + ) + else: + raise ValueError( + """Update mode {} is not supported. + For a list of supported modes see the UpdateMode enum""".format( + mode + ) + ) + except HttpResponseError as error: + _process_table_error(error) + return _trim_service_metadata(metadata, content=content) # type: ignore + + def submit_transaction( + self, + operations, # type: Iterable[TransactionOperationType] + **kwargs # type: Any + ): + # type: (...) -> List[Mapping[str, Any]] + """Commit a list of operations as a single transaction. + + If any one of these operations fails, the entire transaction will be rejected. + + :param operations: The list of operations to commit in a transaction. This should be a list of + tuples containing an operation name, the entity on which to operate, and optionally, a dict of additional + kwargs for that operation. + :type operations: Iterable[Tuple[str, EntityType]] + :return: A list of mappings with response metadata for each operation in the transaction. + :rtype: List[Mapping[str, Any]] + :raises: :class:`~azure.data.tables.TableTransactionError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_batching.py + :start-after: [START batching] + :end-before: [END batching] + :language: python + :dedent: 8 + :caption: Using transactions to send multiple requests at once + """ + batched_requests = TableBatchOperations( + self._client, + self._client._serialize, # pylint: disable=protected-access + self._client._deserialize, # pylint: disable=protected-access + self._client._config, # pylint: disable=protected-access + self.table_name, + is_cosmos_endpoint=self._cosmos_endpoint, + **kwargs + ) + for operation in operations: + try: + operation_kwargs = operation[2] # type: ignore + except IndexError: + operation_kwargs = {} + try: + getattr(batched_requests, operation[0].lower())(operation[1], **operation_kwargs) + except AttributeError: + raise ValueError("Unrecognized operation: {}".format(operation[0])) + return self._batch_send(*batched_requests.requests, **kwargs) # type: ignore diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_table_service_client.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_table_service_client.py new file mode 100644 index 000000000000..b970f02e215d --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_table_service_client.py @@ -0,0 +1,337 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import functools +from typing import Any, Dict, TYPE_CHECKING +from azure.core.exceptions import HttpResponseError, ResourceExistsError +from azure.core.paging import ItemPaged +from azure.core.tracing.decorator import distributed_trace +from azure.core.pipeline import Pipeline + +from ._generated.models import TableServiceProperties +from ._models import ( + TablePropertiesPaged, + service_stats_deserialize, + service_properties_deserialize, + TableItem +) +from ._base_client import parse_connection_str, TablesBaseClient, TransportWrapper +from ._models import LocationMode +from ._error import _process_table_error +from ._table_client import TableClient +from ._serialize import _parameter_filter_substitution + +if TYPE_CHECKING: + from ._models import TableCorsRule, TableMetrics, TableAnalyticsLogging + + +class TableServiceClient(TablesBaseClient): + """A client to interact with the Table Service at the account level. + + This client provides operations to retrieve and configure the account properties + as well as list, create and delete tables within the account. + For operations relating to a specific table, a client for this entity + can be retrieved using the :func:`~get_table_client` function. + + :ivar str account_name: The name of the Tables account. + :ivar str url: The full URL to the Tables account. + :param str endpoint: + The URL to the table service endpoint. Any other entities included + in the URL path (e.g. table) will be discarded. This URL can be optionally + authenticated with a SAS token. + :keyword credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token. The value can be one of AzureNamedKeyCredential (azure-core), + AzureSasCredential (azure-core), or TokenCredentials from azure-identity. + :paramtype credential: + :class:`~azure.core.credentials.AzureNamedKeyCredential` or + :class:`~azure.core.credentials.AzureSasCredential` or + :class:`~azure.core.credentials.TokenCredential` + :keyword str api_version: + The Storage API version to use for requests. Default value is '2019-02-02'. + Setting to an older version may result in reduced feature compatibility. + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_authentication.py + :start-after: [START auth_from_sas] + :end-before: [END auth_from_sas] + :language: python + :dedent: 8 + :caption: Authenticating a TableServiceClient from a Shared Access Key + + .. literalinclude:: ../samples/sample_authentication.py + :start-after: [START auth_from_shared_key] + :end-before: [END auth_from_shared_key] + :language: python + :dedent: 8 + :caption: Authenticating a TableServiceClient from a Shared Account Key + """ + + def _format_url(self, hostname): + # type: (str) -> str + """Format the endpoint URL according to the current location + mode hostname. + """ + return "{}://{}{}".format(self.scheme, hostname, self._query_str) + + @classmethod + def from_connection_string(cls, conn_str, **kwargs): + # type: (str, Any) -> TableServiceClient + """Create TableServiceClient from a connection string. + + :param str conn_str: A connection string to an Azure Storage or Cosmos account. + :returns: A Table service client. + :rtype: :class:`~azure.data.tables.TableServiceClient` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_authentication.py + :start-after: [START auth_from_connection_string] + :end-before: [END auth_from_connection_string] + :language: python + :dedent: 8 + :caption: Authenticating a TableServiceClient from a connection_string + """ + endpoint, credential = parse_connection_str( + conn_str=conn_str, credential=None, keyword_args=kwargs + ) + return cls(endpoint, credential=credential, **kwargs) + + @distributed_trace + def get_service_stats(self, **kwargs): + # type: (Any) -> Dict[str, object] + """Retrieves statistics related to replication for the Table service. It is only available on the secondary + location endpoint when read-access geo-redundant replication is enabled for the account. + + :return: Dictionary of service stats + :rtype: Dict[str, object] + :raises: :class:`~azure.core.exceptions.HttpResponseError:` + """ + try: + timeout = kwargs.pop("timeout", None) + stats = self._client.service.get_statistics( # type: ignore + timeout=timeout, use_location=LocationMode.SECONDARY, **kwargs + ) + except HttpResponseError as error: + _process_table_error(error) + return service_stats_deserialize(stats) + + @distributed_trace + def get_service_properties(self, **kwargs): + # type: (Any) -> Dict[str, object] + """Gets the properties of an account's Table service, + including properties for Analytics and CORS (Cross-Origin Resource Sharing) rules. + + :return: Dictionary of service properties + :rtype: Dict[str, object] + :raises: :class:`~azure.core.exceptions.HttpResponseError` + """ + timeout = kwargs.pop("timeout", None) + try: + service_props = self._client.service.get_properties(timeout=timeout, **kwargs) # type: ignore + except HttpResponseError as error: + _process_table_error(error) + return service_properties_deserialize(service_props) + + @distributed_trace + def set_service_properties(self, **kwargs): + # type: (Any) -> None + """Sets properties for an account's Table service endpoint, + including properties for Analytics and CORS (Cross-Origin Resource Sharing) rules. + + :keyword analytics_logging: Properties for analytics + :paramtype analytics_logging: ~azure.data.tables.TableAnalyticsLogging + :keyword hour_metrics: Hour level metrics + :paramtype hour_metrics: ~azure.data.tables.TableMetrics + :keyword minute_metrics: Minute level metrics + :paramtype minute_metrics: ~azure.data.tables.TableMetrics + :keyword cors: Cross-origin resource sharing rules + :paramtype cors: List[~azure.data.tables.TableCorsRule] + :return: None + :rtype: None + :raises: :class:`~azure.core.exceptions.HttpResponseError` + """ + cors = kwargs.pop('cors', None) + if cors: + cors = [c._to_generated() for c in cors] # pylint:disable=protected-access + props = TableServiceProperties( + logging=kwargs.pop('analytics_logging', None), + hour_metrics=kwargs.pop('hour_metrics', None), + minute_metrics=kwargs.pop('minute_metrics', None), + cors=cors, # type: ignore + ) + try: + self._client.service.set_properties(props, **kwargs) + except HttpResponseError as error: + _process_table_error(error) + + @distributed_trace + def create_table(self, table_name, **kwargs): + # type: (str, Any) -> TableClient + """Creates a new table under the current account. + + :param table_name: The Table name. + :type table_name: str + :return: TableClient + :rtype: :class:`~azure.data.tables.TableClient` + :raises: :class:`~azure.core.exceptions.ResourceExistsError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_create_delete_table.py + :start-after: [START create_table_from_tc] + :end-before: [END create_table_from_tc] + :language: python + :dedent: 8 + :caption: Creating a table from the TableServiceClient object + """ + table = self.get_table_client(table_name=table_name) + table.create_table(**kwargs) + return table + + @distributed_trace + def create_table_if_not_exists(self, table_name, **kwargs): + # type: (str, Any) -> TableClient + """Creates a new table if it does not currently exist. + If the table currently exists, the current table is + returned. + + :param table_name: The Table name. + :type table_name: str + :return: TableClient + :rtype: :class:`~azure.data.tables.TableClient` + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_create_delete_table.py + :start-after: [START create_table_if_not_exists] + :end-before: [END create_table_if_not_exists] + :language: python + :dedent: 8 + :caption: Deleting a table from the TableServiceClient object + """ + table = self.get_table_client(table_name=table_name) + try: + table.create_table(**kwargs) + except ResourceExistsError: + pass + return table + + @distributed_trace + def delete_table(self, table_name, **kwargs): + # type: (str, Any) -> None + """Deletes the table under the current account. No error will be raised + if the given table is not found. + + :param table_name: The Table name. + :type table_name: str + :return: None + :rtype: None + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_create_delete_table.py + :start-after: [START delete_table_from_tc] + :end-before: [END delete_table_from_tc] + :language: python + :dedent: 8 + :caption: Deleting a table from the TableServiceClient object + """ + table = self.get_table_client(table_name=table_name) + table.delete_table(**kwargs) + + @distributed_trace + def query_tables(self, query_filter, **kwargs): + # type: (str, Any) -> ItemPaged[TableItem] + """Queries tables under the given account. + + :param str query_filter: Specify a filter to return certain tables. + :keyword int results_per_page: Number of tables per page in return ItemPaged + :keyword parameters: Dictionary for formatting query with additional, user defined parameters + :paramtype parameters: Dict[str, Any] + :return: ItemPaged[:class:`~azure.data.tables.TableItem`] + :rtype: ~azure.core.paging.ItemPaged + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_query_tables.py + :start-after: [START tsc_query_tables] + :end-before: [END tsc_query_tables] + :language: python + :dedent: 16 + :caption: Querying tables in a storage account + """ + parameters = kwargs.pop("parameters", None) + query_filter = _parameter_filter_substitution( + parameters, query_filter + ) + top = kwargs.pop("results_per_page", None) + + command = functools.partial(self._client.table.query, **kwargs) + return ItemPaged( + command, + results_per_page=top, + filter=query_filter, + page_iterator_class=TablePropertiesPaged, + ) + + @distributed_trace + def list_tables(self, **kwargs): + # type: (Any) -> ItemPaged[TableItem] + """Queries tables under the given account. + + :keyword int results_per_page: Number of tables per page in returned ItemPaged + :return: ItemPaged[:class:`~azure.data.tables.TableItem`] + :rtype: ~azure.core.paging.ItemPaged + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_query_tables.py + :start-after: [START tsc_list_tables] + :end-before: [END tsc_list_tables] + :language: python + :dedent: 16 + :caption: Listing all tables in a storage account + """ + top = kwargs.pop("results_per_page", None) + + command = functools.partial(self._client.table.query, **kwargs) + return ItemPaged( + command, + results_per_page=top, + page_iterator_class=TablePropertiesPaged, + ) + + def get_table_client(self, table_name, **kwargs): + # type: (str, Any) -> TableClient + """Get a client to interact with the specified table. + + The table need not already exist. + + :param str table_name: The table name + :returns: A :class:`~azure.data.tables.TableClient` object. + :rtype: :class:`~azure.data.tables.TableClient` + + """ + pipeline = Pipeline( # type: ignore + transport=TransportWrapper(self._client._client._pipeline._transport), # pylint: disable = protected-access + policies=self._policies + ) + return TableClient( + self.url, + table_name=table_name, + credential=self.credential, + api_version=self.api_version, + pipeline=pipeline, + location_mode=self._location_mode, + _hosts=self._hosts, + **kwargs + ) diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_table_shared_access_signature.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_table_shared_access_signature.py new file mode 100644 index 000000000000..eec1aac2110b --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_table_shared_access_signature.py @@ -0,0 +1,319 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +from typing import Union, Any, TYPE_CHECKING + +from ._models import AccountSasPermissions +from ._common_conversion import _sign_string +from ._error import _validate_not_none +from ._constants import X_MS_VERSION +from ._shared_access_signature import ( + _SharedAccessHelper, + SharedAccessSignature, + QueryStringConstants, +) + +if TYPE_CHECKING: + from datetime import datetime + from azure.core.credentials import AzureNamedKeyCredential + from ._models import ResourceTypes + + +def generate_account_sas( + credential, # type: AzureNamedKeyCredential + resource_types, # type: ResourceTypes + permission, # type: Union[str, AccountSasPermissions] + expiry, # type: Union[datetime, str] + **kwargs # type: Any +): + # type: (...) -> str + """ + Generates a shared access signature for the table service. + Use the returned signature with the sas_token parameter of TableService. + + :param credential: Credential for the Azure account + :type credential: :class:`~azure.core.credentials.AzureNamedKeyCredential` + :param resource_types: + Specifies the resource types that are accessible with the account SAS. + :type resource_types: ResourceTypes + :param permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. + :type permission: str or AccountSasPermissions + :param expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :type expiry: datetime or str + :keyword start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :paramtype start: datetime or str + :keyword str ip_address_or_range: + Specifies an IP address or a range of IP addresses from which to accept requests. + If the IP address from which the request originates does not match the IP address + or address range specified on the SAS token, the request is not authenticated. + For example, specifying sip=168.1.5.65 or sip=168.1.5.60-168.1.5.70 on the SAS + restricts the request to those IP addresses. + :keyword protocol: + Specifies the protocol permitted for a request made. + :paramtype protocol: str or SASProtocol + :return: A Shared Access Signature (sas) token. + :rtype: str + """ + _validate_not_none("account_name", credential.named_key.name) + _validate_not_none("account_key", credential.named_key.key) + if permission is str: + permission = AccountSasPermissions.from_string(permission=permission) # type: ignore + sas = TableSharedAccessSignature(credential) + return sas.generate_account( + "t", + resource_types, + permission, + expiry, + start=kwargs.pop("start", None), + ip_address_or_range=kwargs.pop("ip_address_or_range", None), + protocol=kwargs.pop("protocol", None), + ) + + +def generate_table_sas(credential, table_name, **kwargs): + # type: (AzureNamedKeyCredential, str, **Any) -> str + """ + Generates a shared access signature for the table service. + Use the returned signature with the sas_token parameter of TableService. + + + :param credential: Credential used for creating Shared Access Signature + :type credential: :class:`~azure.core.credentials.AzureNamedKeyCredential` + :param table_name: Table name + :type table_name: str + :keyword TableSasPermissions permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. + :keyword expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :paramtype expiry: datetime or str + :keyword start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :paramtype start: datetime or str + :keyword str ip_address_or_range: + Specifies an IP address or a range of IP addresses from which to accept requests. + If the IP address from which the request originates does not match the IP address + or address range specified on the SAS token, the request is not authenticated. + For example, specifying sip=168.1.5.65 or sip=168.1.5.60-168.1.5.70 on the SAS + restricts the request to those IP addresses. + :keyword str policy_id: Access policy ID. + :keyword protocol: + Specifies the protocol permitted for a request made. + :paramtype protocol: str or SASProtocol + :keyword str end_rk: End row key + :keyword str end_pk: End partition key + :keyword str start_rk: Starting row key + :keyword str start_pk: Starting partition key + :return: A Shared Access Signature (sas) token. + :rtype: str + """ + + sas = TableSharedAccessSignature(credential) + return sas.generate_table( + table_name=table_name, + permission=kwargs.pop("permission", None), + expiry=kwargs.pop("expiry", None), + start=kwargs.pop("start", None), + policy_id=kwargs.pop("policy_id", None), + ip=kwargs.pop("ip_address_or_range", None), + protocol=kwargs.pop("protocol", None), + start_pk=kwargs.pop("start_pk", None), + start_rk=kwargs.pop("start_rk", None), + end_pk=kwargs.pop("end_pk", None), + end_rk=kwargs.pop("end_rk", None), + **kwargs + ) # type: ignore + + +class TableSharedAccessSignature(SharedAccessSignature): + """ + Provides a factory for creating file and share access + signature tokens with a common account name and account key. Users can either + use the factory or can construct the appropriate service and use the + generate_*_shared_access_signature method directly. + """ + + def __init__(self, credential): + """ + :param credential: The credential used for authenticating requests + :type credential: :class:`~azure.core.credentials.NamedKeyCredential` + """ + super(TableSharedAccessSignature, self).__init__( + credential, x_ms_version=X_MS_VERSION + ) + + def generate_table( + self, + table_name, + permission=None, + expiry=None, + start=None, + policy_id=None, + ip_address_or_range=None, + protocol=None, + start_pk=None, + start_rk=None, + end_pk=None, + end_rk=None, + **kwargs # pylint: disable=unused-argument + ): + """ + Generates a shared access signature for the table. + Use the returned signature with the sas_token parameter of TableService. + + :param str table_name: + Name of table. + :param TablePermissions permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. + :param expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :type expiry: datetime or str + :param start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :type start: datetime or str + :param str policy_id: + A unique value up to 64 characters in length that correlates to a + stored access policy. To create a stored access policy, use + set_table_service_properties. + :param str ip_address_or_range: + Specifies an IP address or a range of IP addresses from which to accept requests. + If the IP address from which the request originates does not match the IP address + or address range specified on the SAS token, the request is not authenticated. + For example, specifying sip=168.1.5.65 or sip=168.1.5.60-168.1.5.70 on the SAS + restricts the request to those IP addresses. + :param str protocol: + Specifies the protocol permitted for a request made. The default value + is https,http. See :class:`~azure.cosmosdb.table.common.models.Protocol` for possible values. + :param str start_pk: + The minimum partition key accessible with this shared access + signature. startpk must accompany startrk. Key values are inclusive. + If omitted, there is no lower bound on the table entities that can + be accessed. + :param str start_rk: + The minimum row key accessible with this shared access signature. + startpk must accompany startrk. Key values are inclusive. If + omitted, there is no lower bound on the table entities that can be + accessed. + :param str end_pk: + The maximum partition key accessible with this shared access + signature. endpk must accompany endrk. Key values are inclusive. If + omitted, there is no upper bound on the table entities that can be + accessed. + :param str end_rk: + The maximum row key accessible with this shared access signature. + endpk must accompany endrk. Key values are inclusive. If omitted, + there is no upper bound on the table entities that can be accessed. + """ + sas = _TableSharedAccessHelper() + sas.add_base( + permission, expiry, start, ip_address_or_range, protocol, X_MS_VERSION + ) + sas.add_id(policy_id) + sas.add_table_access_ranges(table_name, start_pk, start_rk, end_pk, end_rk) + + # Table names must be signed lower case + resource_path = table_name.lower() + sas.add_resource_signature( + self.account_name, self.account_key, "table", resource_path + ) + + return sas.get_token() + + +class _TableQueryStringConstants(QueryStringConstants): + TABLE_NAME = "tn" + + +class _TableSharedAccessHelper(_SharedAccessHelper): + def __init__(self): + super(_TableSharedAccessHelper, self).__init__() + self.query_dict = {} + + def add_table_access_ranges(self, table_name, start_pk, start_rk, end_pk, end_rk): + self._add_query(_TableQueryStringConstants.TABLE_NAME, table_name) + self._add_query(_TableQueryStringConstants.START_PK, start_pk) + self._add_query(_TableQueryStringConstants.START_RK, start_rk) + self._add_query(_TableQueryStringConstants.END_PK, end_pk) + self._add_query(_TableQueryStringConstants.END_RK, end_rk) + + def add_resource_signature(self, account_name, account_key, service, path): + def get_value_to_append(query): + return_value = self.query_dict.get(query) or "" + return return_value + "\n" + + if path[0] != "/": + path = "/" + path + + canonicalized_resource = "/" + service + "/" + account_name + path + "\n" + + # Form the string to sign from shared_access_policy and canonicalized + # resource. The order of values is important. + string_to_sign = ( + get_value_to_append(QueryStringConstants.SIGNED_PERMISSION) + + get_value_to_append(QueryStringConstants.SIGNED_START) + + get_value_to_append(QueryStringConstants.SIGNED_EXPIRY) + + canonicalized_resource + + get_value_to_append(QueryStringConstants.SIGNED_IDENTIFIER) + + get_value_to_append(QueryStringConstants.SIGNED_IP) + + get_value_to_append(QueryStringConstants.SIGNED_PROTOCOL) + + get_value_to_append(QueryStringConstants.SIGNED_VERSION) + ) + + string_to_sign += ( + get_value_to_append(QueryStringConstants.START_PK) + + get_value_to_append(QueryStringConstants.START_RK) + + get_value_to_append(QueryStringConstants.END_PK) + + get_value_to_append(QueryStringConstants.END_RK) + ) + + # remove the trailing newline + if string_to_sign[-1] == "\n": + string_to_sign = string_to_sign[:-1] + + self._add_query( + QueryStringConstants.SIGNED_SIGNATURE, + _sign_string(account_key, string_to_sign), + ) diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_version.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_version.py new file mode 100644 index 000000000000..1aff1291cc52 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/_version.py @@ -0,0 +1,7 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +VERSION = "12.1.0" diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/__init__.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/__init__.py new file mode 100644 index 000000000000..7b3856f8848b --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/__init__.py @@ -0,0 +1,13 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from azure.data.tables.aio._table_client_async import TableClient +from azure.data.tables.aio._table_service_client_async import TableServiceClient + +__all__ = [ + "TableClient", + "TableServiceClient", +] diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_base_client_async.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_base_client_async.py new file mode 100644 index 000000000000..06b3136394d1 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_base_client_async.py @@ -0,0 +1,181 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from typing import Any, List, Mapping, Optional, Union, TYPE_CHECKING +from uuid import uuid4 + +from azure.core.credentials import AzureSasCredential, AzureNamedKeyCredential +from azure.core.pipeline.policies import ( + ContentDecodePolicy, + AsyncBearerTokenCredentialPolicy, + AsyncRedirectPolicy, + DistributedTracingPolicy, + HttpLoggingPolicy, + UserAgentPolicy, + ProxyPolicy, + AzureSasCredentialPolicy, + RequestIdPolicy, + CustomHookPolicy, + NetworkTraceLoggingPolicy, +) +from azure.core.pipeline.transport import ( + AsyncHttpTransport, + HttpRequest, +) + +from .._generated.aio import AzureTable +from .._base_client import AccountHostsMixin, get_api_version, extract_batch_part_metadata +from .._authentication import SharedKeyCredentialPolicy +from .._constants import STORAGE_OAUTH_SCOPE +from .._error import RequestTooLargeError, TableTransactionError, _decode_error +from .._policies import StorageHosts, StorageHeadersPolicy +from .._sdk_moniker import SDK_MONIKER +from ._policies_async import AsyncTablesRetryPolicy + +if TYPE_CHECKING: + from azure.core.credentials_async import AsyncTokenCredential + + +class AsyncTablesBaseClient(AccountHostsMixin): + + def __init__( # pylint: disable=missing-client-constructor-parameter-credential + self, + endpoint: str, + *, + credential: Optional[Union[AzureSasCredential, AzureNamedKeyCredential, "AsyncTokenCredential"]] = None, + **kwargs: Any + ) -> None: + super(AsyncTablesBaseClient, self).__init__(endpoint, credential=credential, **kwargs) # type: ignore + self._client = AzureTable( + self.url, + policies=kwargs.pop('policies', self._policies), + **kwargs + ) + self._client._config.version = get_api_version(kwargs, self._client._config.version) # pylint: disable=protected-access + + + async def __aenter__(self): + await self._client.__aenter__() + return self + + async def __aexit__(self, *args): + await self._client.__aexit__(*args) + + async def close(self) -> None: + """This method is to close the sockets opened by the client. + It need not be used when using with a context manager. + """ + await self._client.close() + + def _configure_credential(self, credential): + # type: (Any) -> None + if hasattr(credential, "get_token"): + self._credential_policy = AsyncBearerTokenCredentialPolicy( # type: ignore + credential, STORAGE_OAUTH_SCOPE + ) + elif isinstance(credential, SharedKeyCredentialPolicy): + self._credential_policy = credential # type: ignore + elif isinstance(credential, AzureSasCredential): + self._credential_policy = AzureSasCredentialPolicy(credential) # type: ignore + elif isinstance(credential, AzureNamedKeyCredential): + self._credential_policy = SharedKeyCredentialPolicy(credential) # type: ignore + elif credential is not None: + raise TypeError("Unsupported credential: {}".format(credential)) + + def _configure_policies(self, **kwargs): + return [ + RequestIdPolicy(**kwargs), + StorageHeadersPolicy(**kwargs), + UserAgentPolicy(sdk_moniker=SDK_MONIKER, **kwargs), + ProxyPolicy(**kwargs), + self._credential_policy, + ContentDecodePolicy(response_encoding="utf-8"), + AsyncRedirectPolicy(**kwargs), + StorageHosts(**kwargs), + AsyncTablesRetryPolicy(**kwargs), + CustomHookPolicy(**kwargs), + NetworkTraceLoggingPolicy(**kwargs), + DistributedTracingPolicy(**kwargs), + HttpLoggingPolicy(**kwargs), + ] + + async def _batch_send(self, *reqs: "HttpRequest", **kwargs) -> List[Mapping[str, Any]]: + """Given a series of request, do a Storage batch call.""" + # Pop it here, so requests doesn't feel bad about additional kwarg + policies = [StorageHeadersPolicy()] + + changeset = HttpRequest("POST", None) # type: ignore + changeset.set_multipart_mixed( + *reqs, policies=policies, boundary="changeset_{}".format(uuid4()) + ) + request = self._client._client.post( # pylint: disable=protected-access + url="https://{}/$batch".format(self._primary_hostname), + headers={ + "x-ms-version": self.api_version, + "DataServiceVersion": "3.0", + "MaxDataServiceVersion": "3.0;NetFx", + "Content-Type": "application/json", + "Accept": "application/json" + }, + ) + request.set_multipart_mixed( + changeset, + policies=policies, + enforce_https=False, + boundary="batch_{}".format(uuid4()), + ) + + pipeline_response = await self._client._client._pipeline.run(request, **kwargs) # pylint: disable=protected-access + response = pipeline_response.http_response + # TODO: Check for proper error model deserialization + if response.status_code == 413: + raise _decode_error( + response, + error_message="The transaction request was too large", + error_type=RequestTooLargeError) + if response.status_code != 202: + raise _decode_error(response) + + parts_iter = response.parts() + parts = [] + async for p in parts_iter: + parts.append(p) + error_parts = [p for p in parts if not 200 <= p.status_code < 300] + if any(error_parts): + if error_parts[0].status_code == 413: + raise _decode_error( + response, + error_message="The transaction request was too large", + error_type=RequestTooLargeError) + raise _decode_error( + response=error_parts[0], + error_type=TableTransactionError, + ) + return [extract_batch_part_metadata(p) for p in parts] + + +class AsyncTransportWrapper(AsyncHttpTransport): + """Wrapper class that ensures that an inner client created + by a `get_client` method does not close the outer transport for the parent + when used in a context manager. + """ + def __init__(self, async_transport): + self._transport = async_transport + + async def send(self, request, **kwargs): + return await self._transport.send(request, **kwargs) + + async def open(self): + pass + + async def close(self): + pass + + async def __aenter__(self): + pass + + async def __aexit__(self, *args): # pylint: disable=arguments-differ + pass diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_models.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_models.py new file mode 100644 index 000000000000..1a27a24ddea4 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_models.py @@ -0,0 +1,116 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +from azure.core.exceptions import HttpResponseError +from azure.core.async_paging import AsyncPageIterator + +from .._deserialize import ( + _return_context_and_deserialized, + _convert_to_entity, + _extract_continuation_token, +) +from .._generated.models import QueryOptions +from .._models import TableItem +from .._error import _process_table_error +from .._constants import NEXT_PARTITION_KEY, NEXT_TABLE_NAME, NEXT_ROW_KEY + + +class TablePropertiesPaged(AsyncPageIterator): + """An iterable of Table properties. + + :param callable command: Function to retrieve the next page of items. + :keyword int results_per_page: The maximum number of results retrieved per API call. + :keyword str filter: The filter to apply to results. + :keyword str continuation_token: An opaque continuation token. + """ + + def __init__(self, command, **kwargs): + super(TablePropertiesPaged, self).__init__( + self._get_next_cb, + self._extract_data_cb, + continuation_token=kwargs.get("continuation_token") or "", + ) + self._command = command + self._headers = None + self._response = None + self.results_per_page = kwargs.get("results_per_page") + self.filter = kwargs.get("filter") + self._location_mode = None + + async def _get_next_cb(self, continuation_token, **kwargs): + query_options = QueryOptions(top=self.results_per_page, filter=self.filter) + try: + return await self._command( + query_options=query_options, + next_table_name=continuation_token or None, + cls=kwargs.pop("cls", None) or _return_context_and_deserialized, + use_location=self._location_mode, + ) + except HttpResponseError as error: + _process_table_error(error) + + async def _extract_data_cb(self, get_next_return): + self._location_mode, self._response, self._headers = get_next_return + props_list = [ + TableItem._from_generated(t, **self._headers) for t in self._response.value # pylint: disable=protected-access + ] + return self._headers[NEXT_TABLE_NAME] or None, props_list + + +class TableEntityPropertiesPaged(AsyncPageIterator): + """An iterable of TableEntity properties. + + :param callable command: Function to retrieve the next page of items. + :param str table: The name of the table. + :keyword int results_per_page: The maximum number of results retrieved per API call. + :keyword str filter: The filter to apply to results. + :keyword str select: The select filter to apply to results. + :keyword str continuation_token: An opaque continuation token. + """ + + def __init__(self, command, table, **kwargs): + super(TableEntityPropertiesPaged, self).__init__( + self._get_next_cb, + self._extract_data_cb, + continuation_token=kwargs.get("continuation_token") or {}, + ) + self._command = command + self._headers = None + self._response = None + self.table = table + self.results_per_page = kwargs.get("results_per_page") + self.filter = kwargs.get("filter") + self.select = kwargs.get("select") + self._location_mode = None + + async def _get_next_cb(self, continuation_token, **kwargs): + next_partition_key, next_row_key = _extract_continuation_token( + continuation_token + ) + query_options = QueryOptions( + top=self.results_per_page, select=self.select, filter=self.filter + ) + try: + return await self._command( + query_options=query_options, + next_row_key=next_row_key, + next_partition_key=next_partition_key, + table=self.table, + cls=kwargs.pop("cls", _return_context_and_deserialized), + use_location=self._location_mode, + ) + except HttpResponseError as error: + _process_table_error(error) + + async def _extract_data_cb(self, get_next_return): + self._location_mode, self._response, self._headers = get_next_return + props_list = [_convert_to_entity(t) for t in self._response.value] + next_entity = {} + if self._headers[NEXT_PARTITION_KEY] or self._headers[NEXT_ROW_KEY]: + next_entity = { + "PartitionKey": self._headers[NEXT_PARTITION_KEY], + "RowKey": self._headers[NEXT_ROW_KEY], + } + return next_entity or None, props_list diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_policies_async.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_policies_async.py new file mode 100644 index 000000000000..96139f7c5b4e --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_policies_async.py @@ -0,0 +1,155 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +import time + +from azure.core.pipeline.policies import AsyncRetryPolicy +from azure.core.exceptions import ( + AzureError, + ClientAuthenticationError, + ServiceRequestError +) + +from .._models import LocationMode +from .._policies import set_next_host_location + + +class AsyncTablesRetryPolicy(AsyncRetryPolicy): + """A retry policy. + + The retry policy in the pipeline can be configured directly, or tweaked on a per-call basis. + + :keyword bool retry_to_secondary: Whether to allow retrying to the secondary fail-over host + location. Default value is False. + + :keyword int retry_total: Total number of retries to allow. Takes precedence over other counts. + Default value is 10. + + :keyword int retry_connect: How many connection-related errors to retry on. + These are errors raised before the request is sent to the remote server, + which we assume has not triggered the server to process the request. Default value is 3. + + :keyword int retry_read: How many times to retry on read errors. + These errors are raised after the request was sent to the server, so the + request may have side-effects. Default value is 3. + + :keyword int retry_status: How many times to retry on bad status codes. Default value is 3. + + :keyword float retry_backoff_factor: A backoff factor to apply between attempts after the second try + (most errors are resolved immediately by a second try without a delay). + In fixed mode, retry policy will alwasy sleep for {backoff factor}. + In 'exponential' mode, retry policy will sleep for: `{backoff factor} * (2 ** ({number of total retries} - 1))` + seconds. If the backoff_factor is 0.1, then the retry will sleep + for [0.0s, 0.2s, 0.4s, ...] between retries. The default value is 0.8. + + :keyword int retry_backoff_max: The maximum back off time. Default value is 120 seconds (2 minutes). + + :keyword RetryMode retry_mode: Fixed or exponential delay between attemps, default is exponential. + + :keyword int timeout: Timeout setting for the operation in seconds, default is 604800s (7 days). + """ + + def __init__(self, **kwargs): + super(AsyncTablesRetryPolicy, self).__init__(**kwargs) + self.retry_to_secondary = kwargs.get('retry_to_secondary', False) + + def is_retry(self, settings, response): + """Is this method/status code retryable? (Based on whitelists and control + variables such as the number of total retries to allow, whether to + respect the Retry-After header, whether this header is present, and + whether the returned status code is on the list of status codes to + be retried upon on the presence of the aforementioned header) + """ + should_retry = super(AsyncTablesRetryPolicy, self).is_retry(settings, response) + status = response.http_response.status_code + if status == 404 and settings['mode'] == LocationMode.SECONDARY: + # Response code 404 should be retried if secondary was used. + return True + return should_retry + + def configure_retries(self, options): + """Configures the retry settings. + + :param options: keyword arguments from context. + :return: A dict containing settings and history for retries. + :rtype: dict + """ + config = super(AsyncTablesRetryPolicy, self).configure_retries(options) + config["retry_secondary"] = options.pop("retry_to_secondary", self.retry_to_secondary) + config["mode"] = options.pop("location_mode", LocationMode.PRIMARY) + config["hosts"] = options.pop("hosts", None) + return config + + def update_context(self, context, retry_settings): + """Updates retry history in pipeline context. + + :param context: The pipeline context. + :type context: ~azure.core.pipeline.PipelineContext + :param retry_settings: The retry settings. + :type retry_settings: dict + """ + super(AsyncTablesRetryPolicy, self).update_context(context, retry_settings) + context['location_mode'] = retry_settings['mode'] + + def update_request(self, request, retry_settings): # pylint: disable=no-self-use + """Updates the pipeline request before attempting to retry. + + :param PipelineRequest request: The outgoing request. + :param dict(str, Any) retry_settings: The current retry context settings. + """ + set_next_host_location(retry_settings, request) + + async def send(self, request): + """Uses the configured retry policy to send the request to the next policy in the pipeline. + + :param request: The PipelineRequest object + :type request: ~azure.core.pipeline.PipelineRequest + :return: Returns the PipelineResponse or raises error if maximum retries exceeded. + :rtype: ~azure.core.pipeline.PipelineResponse + :raise: ~azure.core.exceptions.AzureError if maximum retries exceeded. + :raise: ~azure.core.exceptions.ClientAuthenticationError if authentication fails + """ + retry_active = True + response = None + retry_settings = self.configure_retries(request.context.options) + absolute_timeout = retry_settings['timeout'] + is_response_error = True + + while retry_active: + try: + start_time = time.time() + self._configure_timeout(request, absolute_timeout, is_response_error) + response = await self.next.send(request) + if self.is_retry(retry_settings, response): + retry_active = self.increment(retry_settings, response=response) + if retry_active: + self.update_request(request, retry_settings) + await self.sleep(retry_settings, request.context.transport, response=response) + is_response_error = True + continue + break + except ClientAuthenticationError: # pylint:disable=try-except-raise + # the authentication policy failed such that the client's request can't + # succeed--we'll never have a response to it, so propagate the exception + raise + except AzureError as err: + if self._is_method_retryable(retry_settings, request.http_request): + retry_active = self.increment(retry_settings, response=request, error=err) + if retry_active: + self.update_request(request, retry_settings) + await self.sleep(retry_settings, request.context.transport) + if isinstance(err, ServiceRequestError): + is_response_error = False + else: + is_response_error = True + continue + raise err + finally: + end_time = time.time() + if absolute_timeout: + absolute_timeout -= (end_time - start_time) + + self.update_context(response.context, retry_settings) + return response diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_table_batch_async.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_table_batch_async.py new file mode 100644 index 000000000000..4c8e590cdafa --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_table_batch_async.py @@ -0,0 +1,649 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +from typing import Dict, Any, Optional, Union, TYPE_CHECKING +import msrest + +from azure.core import MatchConditions + +from .._common_conversion import _transform_patch_to_cosmos_post +from .._models import UpdateMode +from .._entity import TableEntity +from .._table_batch import EntityType +from .._serialize import ( + _get_match_headers, + _add_entity_properties, +) + +from .._generated.aio._azure_table import AzureTable +from .._generated.aio._configuration import AzureTableConfiguration + +if TYPE_CHECKING: + from .._generated import models + + +class TableBatchOperations(object): + """ + This is the class that is used for batch operations for the data tables + service. + + The Tables service supports batch transactions on entities that are in the + same table and belong to the same partition group. Multiple operations are + supported within a single transaction. The batch can include at most 100 + entities, and its total payload may be no more than 4 MB in size. + + """ + + def __init__( + self, + client: AzureTable, + serializer: msrest.Serializer, + deserializer: msrest.Deserializer, + config: AzureTableConfiguration, + table_name: str, + is_cosmos_endpoint: bool = False, + **kwargs: Dict[str, Any] + ) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + self._is_cosmos_endpoint = is_cosmos_endpoint + self.table_name = table_name + + self._partition_key = kwargs.pop("partition_key", None) + self.requests = [] # type: ignore + + def __len__(self): + return len(self.requests) + + def _verify_partition_key( + self, entity: EntityType + ) -> None: + if self._partition_key is None: + self._partition_key = entity["PartitionKey"] + elif entity["PartitionKey"] != self._partition_key: + raise ValueError("Partition Keys must all be the same") + + def create( + self, + entity: EntityType, + **kwargs + ) -> None: + """Insert entity in a table. + + :param entity: The properties for the table entity. + :type entity: :class:`~azure.data.tables.TableEntity` or Dict[str,str] + :return: None + :rtype: None + :raises ValueError: + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_batching.py + :start-after: [START batching] + :end-before: [END batching] + :language: python + :dedent: 8 + :caption: Creating and adding an entity to a Table + """ + self._verify_partition_key(entity) + temp = entity.copy() # type: ignore + + if "PartitionKey" in temp and "RowKey" in temp: + temp = _add_entity_properties(temp) + else: + raise ValueError("PartitionKey and/or RowKey were not provided in entity") + self._batch_create_entity(table=self.table_name, entity=temp, **kwargs) + + def _batch_create_entity( + self, + table: str, + entity: EntityType, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + response_preference: Optional[Union[str, "models.ResponseFormat"]] = "return-no-content", + query_options: Optional["models.QueryOptions"] = None, + **kwargs: Any + ) -> None: + """ + Adds an insert operation to the batch. See + :func:`azure.data.tables.TableClient.insert_entity` for more information + on insert operations. + + The operation will not be executed until the batch is committed + + :param: table: + The table to perform the operation on + :type: table: str + :param: entity: + The entity to insert. Can be a dict or an entity object + Must contain a PartitionKey and a RowKey. + :type: entity: dict or :class:`~azure.data.tables.models.Entity` + """ + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + content_type = kwargs.pop("content_type", "application/json;odata=nometadata") + accept = "application/json;odata=minimalmetadata" + + # Construct URL + url = self._batch_create_entity.metadata["url"] # type: ignore + path_format_arguments = { + "url": self._serialize.url( + "self._config.url", self._config.url, "str", skip_quote=True + ), + "table": self._serialize.url("table", table, "str"), + } + url = self._client._client.format_url( # pylint: disable=protected-access + url, **path_format_arguments + ) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters["timeout"] = self._serialize.query( + "timeout", timeout, "int", minimum=0 + ) + if _format is not None: + query_parameters["$format"] = self._serialize.query( + "format", _format, "str" + ) + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters["x-ms-version"] = self._serialize.header( + "self._config.version", self._config.version, "str" + ) + if request_id_parameter is not None: + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "request_id_parameter", request_id_parameter, "str" + ) + header_parameters["DataServiceVersion"] = self._serialize.header( + "data_service_version", data_service_version, "str" + ) + if response_preference is not None: + header_parameters["Prefer"] = self._serialize.header( + "response_preference", response_preference, "str" + ) + 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] + if entity is not None: + body_content = self._serialize.body(entity, "{object}") + else: + body_content = None + body_content_kwargs["content"] = body_content + request = self._client._client.post( # pylint: disable=protected-access + url, query_parameters, header_parameters, **body_content_kwargs + ) + self.requests.append(request) + + _batch_create_entity.metadata = {"url": "/{table}"} # type: ignore + + def update( + self, + entity: EntityType, + mode: Union[str, UpdateMode] = UpdateMode.MERGE, + **kwargs: Any + ) -> None: + """Adds an update operation to the current batch. + + :param entity: The properties for the table entity. + :type entity: :class:`~azure.data.tables.TableEntity` or Dict[str,str] + :param mode: Merge or Replace entity + :type mode: :class:`~azure.data.tables.UpdateMode` + :keyword str etag: Etag of the entity + :keyword match_condition: MatchCondition + :paramtype match_condition: ~azure.core.MatchCondition + :return: None + :rtype: None + :raises ValueError: + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_batching_async.py + :start-after: [START batching] + :end-before: [END batching] + :language: python + :dedent: 8 + :caption: Creating and adding an entity to a Table + """ + self._verify_partition_key(entity) + temp = entity.copy() # type: ignore + + match_condition = kwargs.pop("match_condition", None) + etag = kwargs.pop("etag", None) + if match_condition and not etag: + try: + etag = entity.metadata.get("etag", None) # type: ignore + except (AttributeError, TypeError): + pass + if_match = _get_match_headers( + etag=etag, + match_condition=match_condition or MatchConditions.Unconditionally, + ) + + partition_key = temp["PartitionKey"] + row_key = temp["RowKey"] + temp = _add_entity_properties(temp) + if mode is UpdateMode.REPLACE: + self._batch_update_entity( + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + if_match=if_match, + table_entity_properties=temp, + **kwargs + ) + elif mode is UpdateMode.MERGE: + self._batch_merge_entity( + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + if_match=if_match, + table_entity_properties=temp, + **kwargs + ) + + def _batch_update_entity( + self, + table: str, + partition_key: str, + row_key: str, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + if_match: Optional[str] = None, + table_entity_properties: Optional[EntityType] = None, + query_options: Optional["models.QueryOptions"] = None, + **kwargs: Any + ) -> None: + """Update entity in a table. + + :param table: The name of the table. + :type table: str + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param if_match: Match condition for an entity to be updated. If specified and a matching + entity is not found, an error will be raised. To force an unconditional update, set to the + wildcard character (*). If not specified, an insert will be performed when no existing entity + is found to update and a replace will be performed if an existing entity is found. + :type if_match: str + :param table_entity_properties: The properties for the table entity. + :type table_entity_properties: dict[str, object] + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + """ + + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._batch_update_entity.metadata["url"] # type: ignore + path_format_arguments = { + "url": self._serialize.url( + "self._config.url", self._config.url, "str", skip_quote=True + ), + "table": self._serialize.url("table", table, "str"), + "partitionKey": self._serialize.url("partition_key", partition_key, "str"), + "rowKey": self._serialize.url("row_key", row_key, "str"), + } + url = self._client._client.format_url( # pylint: disable=protected-access + url, **path_format_arguments + ) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters["timeout"] = self._serialize.query( + "timeout", timeout, "int", minimum=0 + ) + if _format is not None: + query_parameters["$format"] = self._serialize.query( + "format", _format, "str" + ) + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters["x-ms-version"] = self._serialize.header( + "self._config.version", self._config.version, "str" + ) + if request_id_parameter is not None: + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "request_id_parameter", request_id_parameter, "str" + ) + header_parameters["DataServiceVersion"] = self._serialize.header( + "data_service_version", data_service_version, "str" + ) + if if_match is not None: + header_parameters["If-Match"] = self._serialize.header( + "if_match", if_match, "str" + ) + 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] + if table_entity_properties is not None: + body_content = self._serialize.body(table_entity_properties, "{object}") + else: + body_content = None + body_content_kwargs["content"] = body_content + request = self._client._client.put( # pylint: disable=protected-access + url, query_parameters, header_parameters, **body_content_kwargs + ) + self.requests.append(request) + + _batch_update_entity.metadata = { # type: ignore + "url": "/{table}(PartitionKey='{partitionKey}',RowKey='{rowKey}')" + } + + def _batch_merge_entity( + self, + table: str, + partition_key: str, + row_key: str, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + if_match: Optional[str] = None, + table_entity_properties: Optional[EntityType] = None, + query_options: Optional["models.QueryOptions"] = None, + **kwargs + ) -> None: + """Merge entity in a table. + + :param table: The name of the table. + :type table: str + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param if_match: Match condition for an entity to be updated. If specified and a matching + entity is not found, an error will be raised. To force an unconditional update, set to the + wildcard character (*). If not specified, an insert will be performed when no existing entity + is found to update and a merge will be performed if an existing entity is found. + :type if_match: str + :param table_entity_properties: The properties for the table entity. + :type table_entity_properties: dict[str, object] + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + """ + + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._batch_merge_entity.metadata["url"] # type: ignore + path_format_arguments = { + "url": self._serialize.url( + "self._config.url", self._config.url, "str", skip_quote=True + ), + "table": self._serialize.url("table", table, "str"), + "partitionKey": self._serialize.url("partition_key", partition_key, "str"), + "rowKey": self._serialize.url("row_key", row_key, "str"), + } + url = self._client._client.format_url( # pylint: disable=protected-access + url, **path_format_arguments + ) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters["timeout"] = self._serialize.query( + "timeout", timeout, "int", minimum=0 + ) + if _format is not None: + query_parameters["$format"] = self._serialize.query( + "format", _format, "str" + ) + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters["x-ms-version"] = self._serialize.header( + "self._config.version", self._config.version, "str" + ) + if request_id_parameter is not None: + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "request_id_parameter", request_id_parameter, "str" + ) + header_parameters["DataServiceVersion"] = self._serialize.header( + "data_service_version", data_service_version, "str" + ) + if if_match is not None: + header_parameters["If-Match"] = self._serialize.header( + "if_match", if_match, "str" + ) + 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] + if table_entity_properties is not None: + body_content = self._serialize.body(table_entity_properties, "{object}") + else: + body_content = None + body_content_kwargs["content"] = body_content + request = self._client._client.patch( # pylint: disable=protected-access + url, query_parameters, header_parameters, **body_content_kwargs + ) + if self._is_cosmos_endpoint: + _transform_patch_to_cosmos_post(request) + self.requests.append(request) + + _batch_merge_entity.metadata = { # type: ignore + "url": "/{table}(PartitionKey='{partitionKey}',RowKey='{rowKey}')" + } + + def delete( + self, + entity: EntityType, + **kwargs + ) -> None: + """Deletes the specified entity in a table. + + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :keyword str etag: Etag of the entity + :keyword match_condition: MatchCondition + :paramtype match_condition: ~azure.core.MatchCondition + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_batching.py + :start-after: [START batching] + :end-before: [END batching] + :language: python + :dedent: 8 + :caption: Creating and adding an entity to a Table + """ + self._verify_partition_key(entity) + temp = entity.copy() # type: ignore + partition_key = temp["PartitionKey"] + row_key = temp["RowKey"] + + match_condition = kwargs.pop("match_condition", None) + etag = kwargs.pop("etag", None) + if match_condition and not etag: + try: + etag = entity.metadata.get("etag", None) # type: ignore + except (AttributeError, TypeError): + pass + if_match = _get_match_headers( + etag=etag, + match_condition=match_condition or MatchConditions.Unconditionally, + ) + + self._batch_delete_entity( + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + if_match=if_match, + **kwargs + ) + + def _batch_delete_entity( + self, + table: str, + partition_key: str, + row_key: str, + if_match: str, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + query_options: Optional["models.QueryOptions"] = None, + ) -> None: + """Deletes the specified entity in a table. + + :param table: The name of the table. + :type table: str + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :param if_match: Match condition for an entity to be deleted. If specified and a matching + entity is not found, an error will be raised. To force an unconditional delete, set to the + wildcard character (*). + :type if_match: str + :param timeout: The timeout parameter is expressed in seconds. + :type timeout: int + :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character + limit that is recorded in the analytics logs when analytics logging is enabled. + :type request_id_parameter: str + :param query_options: Parameter group. + :type query_options: ~azure.data.tables.models.QueryOptions + """ + + _format = None + if query_options is not None: + _format = query_options.format + data_service_version = "3.0" + accept = "application/json;odata=minimalmetadata" + + # Construct URL + url = self._batch_delete_entity.metadata["url"] # type: ignore + path_format_arguments = { + "url": self._serialize.url( + "self._config.url", self._config.url, "str", skip_quote=True + ), + "table": self._serialize.url("table", table, "str"), + "partitionKey": self._serialize.url("partition_key", partition_key, "str"), + "rowKey": self._serialize.url("row_key", row_key, "str"), + } + url = self._client._client.format_url( # pylint: disable=protected-access + url, **path_format_arguments + ) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if timeout is not None: + query_parameters["timeout"] = self._serialize.query( + "timeout", timeout, "int", minimum=0 + ) + if _format is not None: + query_parameters["$format"] = self._serialize.query( + "format", _format, "str" + ) + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters["x-ms-version"] = self._serialize.header( + "self._config.version", self._config.version, "str" + ) + if request_id_parameter is not None: + header_parameters["x-ms-client-request-id"] = self._serialize.header( + "request_id_parameter", request_id_parameter, "str" + ) + header_parameters["DataServiceVersion"] = self._serialize.header( + "data_service_version", data_service_version, "str" + ) + header_parameters["If-Match"] = self._serialize.header( + "if_match", if_match, "str" + ) + header_parameters["Accept"] = self._serialize.header("accept", accept, "str") + + request = self._client._client.delete( # pylint: disable=protected-access + url, query_parameters, header_parameters + ) + self.requests.append(request) + + _batch_delete_entity.metadata = { # type: ignore + "url": "/{table}(PartitionKey='{partitionKey}',RowKey='{rowKey}')" + } + + def upsert( + self, + entity: EntityType, + mode: Union[str, UpdateMode] = UpdateMode.MERGE, + **kwargs + ) -> None: + """Update/Merge or Insert entity into table. + + :param entity: The properties for the table entity. + :type entity: :class:`~azure.data.tables.TableEntity` or Dict[str,str] + :param mode: Merge or Replace entity + :type mode: :class:`~azure.data.tables.UpdateMode` + :return: None + :rtype: None + :raises ValueError: + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_batching.py + :start-after: [START batching] + :end-before: [END batching] + :language: python + :dedent: 8 + :caption: Creating and adding an entity to a Table + """ + self._verify_partition_key(entity) + temp = entity.copy() # type: ignore + + partition_key = temp["PartitionKey"] + row_key = temp["RowKey"] + temp = _add_entity_properties(temp) + + if mode is UpdateMode.MERGE: + self._batch_merge_entity( + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + table_entity_properties=temp, + **kwargs + ) + elif mode is UpdateMode.REPLACE: + self._batch_update_entity( + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + table_entity_properties=temp, + **kwargs + ) diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_table_client_async.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_table_client_async.py new file mode 100644 index 000000000000..4513b657d9ef --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_table_client_async.py @@ -0,0 +1,709 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +import functools +from typing import List, Union, Any, Optional, Mapping, Iterable, Dict, overload, cast, TYPE_CHECKING +try: + from urllib.parse import urlparse, unquote +except ImportError: + from urlparse import urlparse # type: ignore + from urllib2 import unquote # type: ignore + +from azure.core import MatchConditions +from azure.core.credentials import AzureNamedKeyCredential, AzureSasCredential +from azure.core.async_paging import AsyncItemPaged +from azure.core.exceptions import HttpResponseError +from azure.core.tracing.decorator import distributed_trace +from azure.core.tracing.decorator_async import distributed_trace_async + +from .._base_client import parse_connection_str +from .._entity import TableEntity +from .._generated.models import SignedIdentifier, TableProperties, QueryOptions +from .._models import TableAccessPolicy, TableItem +from .._serialize import serialize_iso, _parameter_filter_substitution +from .._deserialize import deserialize_iso, _return_headers_and_deserialized +from .._error import ( + _process_table_error, + _validate_table_name, + _decode_error, + _reraise_error +) +from .._models import UpdateMode +from .._deserialize import _convert_to_entity, _trim_service_metadata +from .._serialize import _add_entity_properties, _get_match_headers +from .._table_client import EntityType, TransactionOperationType +from ._base_client_async import AsyncTablesBaseClient +from ._models import TableEntityPropertiesPaged +from ._table_batch_async import TableBatchOperations + +if TYPE_CHECKING: + from azure.core.credentials_async import AsyncTokenCredential + + +class TableClient(AsyncTablesBaseClient): + """A client to interact with a specific Table in an Azure Tables account. + + :ivar str account_name: The name of the Tables account. + :ivar str table_name: The name of the table. + :ivar str url: The full URL to the Tables account. + """ + + def __init__( # pylint: disable=missing-client-constructor-parameter-credential + self, + endpoint: str, + table_name: str, + *, + credential: Optional[Union[AzureSasCredential, AzureNamedKeyCredential, "AsyncTokenCredential"]] = None, + **kwargs + ) -> None: + """Create TableClient from a Credential. + + :param str endpoint: A URL to an Azure Tables account. + :param str table_name: The table name. + :keyword credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token. The value can be one of AzureNamedKeyCredential (azure-core), + AzureSasCredential (azure-core), or TokenCredentials from azure-identity. + :paramtype credential: + :class:`~azure.core.credentials.AzureNamedKeyCredential` or + :class:`~azure.core.credentials.AzureSasCredential` or + :class:`~azure.core.credentials.TokenCredential` + + :returns: None + """ + if not table_name: + raise ValueError("Please specify a table name.") + _validate_table_name(table_name) + self.table_name = table_name + super(TableClient, self).__init__(endpoint, credential=credential, **kwargs) + + def _format_url(self, hostname): + """Format the endpoint URL according to the current location + mode hostname. + """ + return "{}://{}{}".format(self.scheme, hostname, self._query_str) + + @classmethod + def from_connection_string( + cls, + conn_str: str, + table_name: str, + **kwargs + ) -> 'TableClient': + """Create TableClient from a Connection string. + + :param str conn_str: A connection string to an Azure Tables account. + :param str table_name: The table name. + :returns: A table client. + :rtype: :class:`~azure.data.tables.TableClient` + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_create_client_async.py + :start-after: [START create_table_client] + :end-before: [END create_table_client] + :language: python + :dedent: 8 + :caption: Creating the TableClient from a connection string. + """ + endpoint, credential = parse_connection_str( + conn_str=conn_str, credential=None, keyword_args=kwargs + ) + return cls(endpoint, table_name=table_name, credential=credential, **kwargs) + + @classmethod + def from_table_url( + cls, + table_url: str, + **kwargs + ) -> 'TableClient': + """A client to interact with a specific Table. + + :param str table_url: The full URI to the table, including SAS token if used. + :keyword credential: + The credentials with which to authenticate. This is optional if the + table URL already has a SAS token. The value can be one of AzureNamedKeyCredential + or AzureSasCredential from azure-core. + :paramtype credential: + :class:`~azure.core.credentials.AzureNamedKeyCredential` or + :class:`~azure.core.credentials.AzureSasCredential` + :returns: A table client. + :rtype: :class:`~azure.data.tables.TableClient` + """ + try: + if not table_url.lower().startswith("http"): + table_url = "https://" + table_url + except AttributeError: + raise ValueError("Table URL must be a string.") + parsed_url = urlparse(table_url.rstrip("/")) + + if not parsed_url.netloc: + raise ValueError("Invalid URL: {}".format(table_url)) + + table_path = parsed_url.path.lstrip("/").split("/") + account_path = "" + if len(table_path) > 1: + account_path = "/" + "/".join(table_path[:-1]) + endpoint = "{}://{}{}?{}".format( + parsed_url.scheme, + parsed_url.netloc.rstrip("/"), + account_path, + parsed_url.query, + ) + table_name = unquote(table_path[-1]) + if table_name.lower().startswith("tables('"): + table_name = table_name[8:-2] + if not table_name: + raise ValueError( + "Invalid URL. Please provide a URL with a valid table name" + ) + return cls(endpoint, table_name=table_name, **kwargs) + + @distributed_trace_async + async def get_table_access_policy(self, **kwargs) -> Mapping[str, Optional[TableAccessPolicy]]: + """ + Retrieves details about any stored access policies specified on the table that may be + used with Shared Access Signatures. + + :return: Dictionary of SignedIdentifiers + :rtype: Dict[str, Optional[:class:`~azure.data.tables.TableAccessPolicy`]] + :raises: :class:`~azure.core.exceptions.HttpResponseError` + """ + timeout = kwargs.pop("timeout", None) + try: + _, identifiers = await self._client.table.get_access_policy( + table=self.table_name, + timeout=timeout, + cls=kwargs.pop("cls", None) or _return_headers_and_deserialized, + **kwargs + ) + except HttpResponseError as error: + _process_table_error(error) + output = {} # type: Dict[str, Optional[TableAccessPolicy]] + for identifier in cast(List[SignedIdentifier], identifiers): + if identifier.access_policy: + output[identifier.id] = TableAccessPolicy( + start=deserialize_iso(identifier.access_policy.start), + expiry=deserialize_iso(identifier.access_policy.expiry), + permission=identifier.access_policy.permission + ) + else: + output[identifier.id] = None + return output + + @distributed_trace_async + async def set_table_access_policy( + self, + signed_identifiers: Mapping[str, Optional[TableAccessPolicy]], + **kwargs + ) -> None: + """Sets stored access policies for the table that may be used with Shared Access Signatures. + + :param signed_identifiers: Access policies to set for the table + :type signed_identifiers: Dict[str, :class:`~azure.data.tables.TableAccessPolicy`] + :return: None + :rtype: None + :raises: :class:`~azure.core.exceptions.HttpResponseError` + """ + identifiers = [] + for key, value in signed_identifiers.items(): + payload = None + if value: + payload = TableAccessPolicy( + start=serialize_iso(value.start), + expiry=serialize_iso(value.expiry), + permission=value.permission + ) + identifiers.append(SignedIdentifier(id=key, access_policy=payload)) + try: + await self._client.table.set_access_policy( + table=self.table_name, table_acl=identifiers or None, **kwargs # type: ignore + ) + except HttpResponseError as error: + try: + _process_table_error(error) + except HttpResponseError as table_error: + if (table_error.error_code == 'InvalidXmlDocument' # type: ignore + and len(identifiers) > 5): + raise ValueError( + 'Too many access policies provided. The server does not support setting ' + 'more than 5 access policies on a single resource.' + ) + raise + + @distributed_trace_async + async def create_table(self, **kwargs) -> TableItem: + """Creates a new table under the given account. + + :return: A TableItem representing the created table. + :rtype: :class:`~azure.data.tables.TableItem` + :raises: :class:`~azure.core.exceptions.ResourceExistsError` If the entity already exists + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_create_delete_table_async.py + :start-after: [START create_table] + :end-before: [END create_table] + :language: python + :dedent: 8 + :caption: Creating a table from the TableClient object. + """ + table_properties = TableProperties(table_name=self.table_name) + try: + result = await self._client.table.create(table_properties, **kwargs) + except HttpResponseError as error: + _process_table_error(error) + return TableItem(name=result.table_name) # type: ignore + + @distributed_trace_async + async def delete_table(self, **kwargs) -> None: + """Deletes the table under the current account. No error will be raised if + the given table name is not found. + + :return: None + :rtype: None + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_create_delete_table_async.py + :start-after: [START delete_from_table_client] + :end-before: [END delete_from_table_client] + :language: python + :dedent: 8 + :caption: Deleting a table from the TableClient object. + """ + try: + await self._client.table.delete(table=self.table_name, **kwargs) + except HttpResponseError as error: + if error.status_code == 404: + return + _process_table_error(error) + + @overload + async def delete_entity(self, partition_key: str, row_key: str, **kwargs: Any) -> None: + ... + + @overload + async def delete_entity(self, entity: Union[TableEntity, Mapping[str, Any]], **kwargs: Any) -> None: + ... + + @distributed_trace_async + async def delete_entity(self, *args: Union[TableEntity, str], **kwargs: Any) -> None: + """Deletes the specified entity in a table. No error will be raised if + the entity or PartitionKey-RowKey pairing is not found. + + :param str partition_key: The partition key of the entity. + :param str row_key: The row key of the entity. + :param entity: The entity to delete + :type entity: Union[TableEntity, Mapping[str, str]] + :keyword str etag: Etag of the entity + :keyword match_condition: The condition under which to perform the operation. + Supported values include: MatchConditions.IfNotModified, MatchConditions.Unconditionally. + The default value is Unconditionally. + :paramtype match_condition: ~azure.core.MatchConditions + :return: None + :rtype: None + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_insert_delete_entities_async.py + :start-after: [START delete_entity] + :end-before: [END delete_entity] + :language: python + :dedent: 8 + :caption: Adding an entity to a Table + """ + try: + entity = kwargs.pop('entity', None) + if not entity: + entity = args[0] + partition_key = entity['PartitionKey'] + row_key = entity['RowKey'] + except (TypeError, IndexError): + partition_key = kwargs.pop('partition_key', None) + if not partition_key: + partition_key = args[0] + row_key = kwargs.pop("row_key", None) + if not row_key: + row_key = args[1] + + match_condition = kwargs.pop("match_condition", None) + etag = kwargs.pop("etag", None) + if match_condition and entity and not etag: + try: + etag = entity.metadata.get("etag", None) # type: ignore + except (AttributeError, TypeError): + pass + if_match = _get_match_headers( + etag=etag, + match_condition=match_condition or MatchConditions.Unconditionally, + ) + + try: + await self._client.table.delete_entity( + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + if_match=if_match, + **kwargs + ) + except HttpResponseError as error: + if error.status_code == 404: + return + _process_table_error(error) + + @distributed_trace_async + async def create_entity( + self, + entity: EntityType, + **kwargs + ) -> Mapping[str, Any]: + """Insert entity in a table. + + :param entity: The properties for the table entity. + :type entity: Union[TableEntity, Mapping[str, Any]] + :return: Dictionary mapping operation metadata returned from the service + :rtype: Dict[str,str] + :raises: :class:`~azure.core.exceptions.ResourceExistsError` If the entity already exists + + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_insert_delete_entities_async.py + :start-after: [START create_entity] + :end-before: [END create_entity] + :language: python + :dedent: 8 + :caption: Adding an entity to a Table + """ + entity = _add_entity_properties(entity) + try: + metadata, content = await self._client.table.insert_entity( # type: ignore + table=self.table_name, + table_entity_properties=entity, # type: ignore + cls=kwargs.pop("cls", _return_headers_and_deserialized), + **kwargs + ) + except HttpResponseError as error: + decoded = _decode_error(error.response, error.message) + if decoded.error_code == "PropertiesNeedValue": + if entity.get("PartitionKey") is None: + raise ValueError("PartitionKey must be present in an entity") + if entity.get("RowKey") is None: + raise ValueError("RowKey must be present in an entity") + _reraise_error(error) + return _trim_service_metadata(metadata, content=content) # type: ignore + + + @distributed_trace_async + async def update_entity( + self, + entity: EntityType, + mode: Union[str, UpdateMode] = UpdateMode.MERGE, + **kwargs + ) -> Mapping[str, Any]: + """Update entity in a table. + + :param entity: The properties for the table entity. + :type entity: :class:`~azure.data.tables.TableEntity` or Dict[str,str] + :param mode: Merge or Replace entity + :type mode: :class:`~azure.data.tables.UpdateMode` + :keyword str etag: Etag of the entity + :keyword match_condition: The condition under which to perform the operation. + Supported values include: MatchConditions.IfNotModified, MatchConditions.Unconditionally. + The default value is Unconditionally. + :paramtype match_condition: ~azure.core.MatchCondition + :return: Dictionary of operation metadata returned from service + :rtype: Dict[str,str] + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_update_upsert_merge_entities_async.py + :start-after: [START update_entity] + :end-before: [END update_entity] + :language: python + :dedent: 16 + :caption: Querying entities from a TableClient + """ + match_condition = kwargs.pop("match_condition", None) + etag = kwargs.pop("etag", None) + if match_condition and entity and not etag: + try: + etag = entity.metadata.get("etag", None) # type: ignore + except (AttributeError, TypeError): + pass + if_match = _get_match_headers( + etag=etag, + match_condition=match_condition or MatchConditions.Unconditionally, + ) + + partition_key = entity["PartitionKey"] + row_key = entity["RowKey"] + entity = _add_entity_properties(entity) + try: + metadata = None + content = None + if mode is UpdateMode.REPLACE: + metadata, content = await self._client.table.update_entity( # type: ignore + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + table_entity_properties=entity, # type: ignore + if_match=if_match, + cls=kwargs.pop("cls", _return_headers_and_deserialized), + **kwargs + ) + elif mode is UpdateMode.MERGE: + metadata, content = await self._client.table.merge_entity( # type: ignore + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + if_match=if_match, + cls=kwargs.pop("cls", _return_headers_and_deserialized), + table_entity_properties=entity, # type: ignore + **kwargs + ) + else: + raise ValueError("Mode type is not supported") + except HttpResponseError as error: + _process_table_error(error) + return _trim_service_metadata(metadata, content=content) # type: ignore + + @distributed_trace + def list_entities(self, **kwargs) -> AsyncItemPaged[TableEntity]: + """Lists entities in a table. + + :keyword int results_per_page: Number of entities returned per service request. + :keyword select: Specify desired properties of an entity to return. + :paramtype select: str or List[str] + :return: AsyncItemPaged[:class:`~azure.data.tables.TableEntity`] + :rtype: ~azure.core.async_paging.AsyncItemPaged[TableEntity] + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_update_upsert_merge_entities_async.py + :start-after: [START list_entities] + :end-before: [END list_entities] + :language: python + :dedent: 16 + :caption: Querying entities from a TableClient + """ + user_select = kwargs.pop("select", None) + if user_select and not isinstance(user_select, str): + user_select = ",".join(user_select) + top = kwargs.pop("results_per_page", None) + + command = functools.partial(self._client.table.query_entities, **kwargs) + return AsyncItemPaged( + command, + table=self.table_name, + results_per_page=top, + select=user_select, + page_iterator_class=TableEntityPropertiesPaged, + ) + + @distributed_trace + def query_entities( + self, + query_filter: str, + **kwargs + ) -> AsyncItemPaged[TableEntity]: + """Lists entities in a table. + + :param str query_filter: Specify a filter to return certain entities + :keyword int results_per_page: Number of entities returned per service request. + :keyword select: Specify desired properties of an entity to return. + :paramtype select: str or List[str] + :keyword parameters: Dictionary for formatting query with additional, user defined parameters + :paramtype parameters: Dict[str, Any] + :return: AsyncItemPaged[:class:`~azure.data.tables.TableEntity`] + :rtype: ~azure.core.async_paging.AsyncItemPaged[TableEntity] + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_query_table_async.py + :start-after: [START query_entities] + :end-before: [END query_entities] + :language: python + :dedent: 8 + :caption: Querying entities from a TableClient + """ + parameters = kwargs.pop("parameters", None) + query_filter = _parameter_filter_substitution( + parameters, query_filter + ) + top = kwargs.pop("results_per_page", None) + user_select = kwargs.pop("select", None) + if user_select and not isinstance(user_select, str): + user_select = ",".join(user_select) + + command = functools.partial(self._client.table.query_entities, **kwargs) + return AsyncItemPaged( + command, + table=self.table_name, + results_per_page=top, + filter=query_filter, + select=user_select, + page_iterator_class=TableEntityPropertiesPaged, + ) + + @distributed_trace_async + async def get_entity( + self, + partition_key: str, + row_key: str, + **kwargs + ) -> TableEntity: + """Get a single entity in a table. + + :param partition_key: The partition key of the entity. + :type partition_key: str + :param row_key: The row key of the entity. + :type row_key: str + :keyword select: Specify desired properties of an entity to return. + :paramtype select: str or List[str] + :return: Dictionary mapping operation metadata returned from the service + :rtype: :class:`~azure.data.tables.TableEntity` + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_update_upsert_merge_entities_async.py + :start-after: [START get_entity] + :end-before: [END get_entity] + :language: python + :dedent: 16 + :caption: Getting an entity from PartitionKey and RowKey + """ + user_select = kwargs.pop("select", None) + if user_select and not isinstance(user_select, str): + user_select = ",".join(user_select) + try: + entity = await self._client.table.query_entity_with_partition_and_row_key( + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + query_options=QueryOptions(select=user_select), + **kwargs + ) + properties = _convert_to_entity(entity) + except HttpResponseError as error: + _process_table_error(error) + return properties + + @distributed_trace_async + async def upsert_entity( + self, + entity: EntityType, + mode: Union[str, UpdateMode] = UpdateMode.MERGE, + **kwargs + ) -> Mapping[str, Any]: + """Update/Merge or Insert entity into table. + + :param entity: The properties for the table entity. + :type entity: :class:`~azure.data.tables.TableEntity` or Dict[str,str] + :param mode: Merge or Replace entity + :type mode: :class:`~azure.data.tables.UpdateMode` + :return: Dictionary mapping operation metadata returned from the service + :rtype: Dict[str,str] + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_update_upsert_merge_entities_async.py + :start-after: [START upsert_entity] + :end-before: [END upsert_entity] + :language: python + :dedent: 16 + :caption: Update/Merge or Insert an entity into a table + """ + + partition_key = entity["PartitionKey"] + row_key = entity["RowKey"] + entity = _add_entity_properties(entity) + + try: + metadata = None + content = None + if mode is UpdateMode.MERGE: + metadata, content = await self._client.table.merge_entity( # type: ignore + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + table_entity_properties=entity, # type: ignore + cls=kwargs.pop("cls", _return_headers_and_deserialized), + **kwargs + ) + elif mode is UpdateMode.REPLACE: + metadata, content = await self._client.table.update_entity( # type: ignore + table=self.table_name, + partition_key=partition_key, + row_key=row_key, + table_entity_properties=entity, # type: ignore + cls=kwargs.pop("cls", _return_headers_and_deserialized), + **kwargs + ) + else: + raise ValueError( + """Update mode {} is not supported. + For a list of supported modes see the UpdateMode enum""".format( + mode + ) + ) + except HttpResponseError as error: + _process_table_error(error) + return _trim_service_metadata(metadata, content=content) # type: ignore + + @distributed_trace_async + async def submit_transaction( + self, + operations: Iterable[TransactionOperationType], + **kwargs + ) -> List[Mapping[str, Any]]: + """Commit a list of operations as a single transaction. + + If any one of these operations fails, the entire transaction will be rejected. + + :param operations: The list of operations to commit in a transaction. This should be a list of + tuples containing an operation name, the entity on which to operate, and optionally, a dict of additional + kwargs for that operation. + :type operations: Iterable[Tuple[str, EntityType]] + :return: A list of mappings with response metadata for each operation in the transaction. + :rtype: List[Mapping[str, Any]] + :raises ~azure.data.tables.TableTransactionError: + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_batching_async.py + :start-after: [START batching] + :end-before: [END batching] + :language: python + :dedent: 8 + :caption: Using transactions to send multiple requests at once + """ + batched_requests = TableBatchOperations( + self._client, + self._client._serialize, # pylint: disable=protected-access + self._client._deserialize, # pylint: disable=protected-access + self._client._config, # pylint: disable=protected-access + self.table_name, + is_cosmos_endpoint=self._cosmos_endpoint, + **kwargs + ) + for operation in operations: + try: + operation_kwargs = operation[2] # type: ignore + except IndexError: + operation_kwargs = {} + try: + getattr(batched_requests, operation[0].lower())(operation[1], **operation_kwargs) + except AttributeError: + raise ValueError("Unrecognized operation: {}".format(operation)) + return await self._batch_send(*batched_requests.requests, **kwargs) diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_table_service_client_async.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_table_service_client_async.py new file mode 100644 index 000000000000..ba5282a1f7ec --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/aio/_table_service_client_async.py @@ -0,0 +1,335 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +import functools +from typing import ( + Optional, + Dict, + List, + TYPE_CHECKING +) + +from azure.core.async_paging import AsyncItemPaged +from azure.core.exceptions import HttpResponseError, ResourceExistsError +from azure.core.pipeline import AsyncPipeline +from azure.core.tracing.decorator import distributed_trace +from azure.core.tracing.decorator_async import distributed_trace_async + +from .._base_client import parse_connection_str +from .._generated.models import TableServiceProperties +from .._models import service_stats_deserialize, service_properties_deserialize +from .._error import _process_table_error +from .._models import TableItem, LocationMode +from .._serialize import _parameter_filter_substitution +from ._table_client_async import TableClient +from ._base_client_async import AsyncTablesBaseClient, AsyncTransportWrapper +from ._models import TablePropertiesPaged + +if TYPE_CHECKING: + from .._models import TableCorsRule, TableMetrics, TableAnalyticsLogging + + +class TableServiceClient(AsyncTablesBaseClient): + """A client to interact with the Table Service at the account level. + + This client provides operations to retrieve and configure the account properties + as well as list, create and delete tables within the account. + For operations relating to a specific table, a client for this entity + can be retrieved using the :func:`~get_table_client` function. + + :ivar str account_name: The name of the Tables account. + :ivar str url: The full URL to the Tables account. + :param str endpoint: + The URL to the table service endpoint. Any other entities included + in the URL path (e.g. table) will be discarded. This URL can be optionally + authenticated with a SAS token. + :keyword credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token. The value can be one of AzureNamedKeyCredential (azure-core), + AzureSasCredential (azure-core), or TokenCredentials from azure-identity. + :paramtype credential: + :class:`~azure.core.credentials.AzureNamedKeyCredential` or + :class:`~azure.core.credentials.AzureSasCredential` or + :class:`~azure.core.credentials.TokenCredential` + :keyword str api_version: + The Storage API version to use for requests. Default value is '2019-02-02'. + Setting to an older version may result in reduced feature compatibility. + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_authentication_async.py + :start-after: [START auth_from_shared_key] + :end-before: [END auth_from_shared_key] + :language: python + :dedent: 8 + :caption: Creating the tableServiceClient with an account url and credential. + + .. literalinclude:: ../samples/async_samples/sample_authentication_async.py + :start-after: [START auth_by_sas] + :end-before: [END auth_by_sas] + :language: python + :dedent: 8 + :caption: Creating the tableServiceClient with Shared Access Signature. + """ + + def _format_url(self, hostname: str) -> str: + """Format the endpoint URL according to the current location + mode hostname. + """ + return "{}://{}{}".format(self.scheme, hostname, self._query_str) + + @classmethod + def from_connection_string(cls, conn_str: str, **kwargs) -> 'TableServiceClient': + """Create TableServiceClient from a Connection String. + + :param str conn_str: A connection string to an Azure Tables account. + :returns: A Table service client. + :rtype: :class:`~azure.data.tables.aio.TableServiceClient` + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_authentication_async.py + :start-after: [START auth_from_connection_string] + :end-before: [END auth_from_connection_string] + :language: python + :dedent: 8 + :caption: Creating the tableServiceClient from a connection string + + """ + endpoint, credential = parse_connection_str( + conn_str=conn_str, credential=None, keyword_args=kwargs + ) + return cls(endpoint, credential=credential, **kwargs) + + @distributed_trace_async + async def get_service_stats(self, **kwargs) -> Dict[str, object]: + """Retrieves statistics related to replication for the Table service. It is only available on the secondary + location endpoint when read-access geo-redundant replication is enabled for the account. + + :return: Dictionary of service stats + :rtype: Dict[str, object] + :raises: :class:`~azure.core.exceptions.HttpResponseError` + """ + try: + timeout = kwargs.pop("timeout", None) + stats = await self._client.service.get_statistics( # type: ignore + timeout=timeout, use_location=LocationMode.SECONDARY, **kwargs + ) + except HttpResponseError as error: + _process_table_error(error) + return service_stats_deserialize(stats) + + @distributed_trace_async + async def get_service_properties(self, **kwargs) -> Dict[str, object]: + """Gets the properties of an account's Table service, + including properties for Analytics and CORS (Cross-Origin Resource Sharing) rules. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TableServiceProperties, or the result of cls(response) + :rtype: Dict[str, object] + :raises: :class:`~azure.core.exceptions.HttpResponseError` + """ + timeout = kwargs.pop("timeout", None) + try: + service_props = await self._client.service.get_properties(timeout=timeout, **kwargs) # type: ignore + except HttpResponseError as error: + _process_table_error(error) + return service_properties_deserialize(service_props) + + @distributed_trace_async + async def set_service_properties( + self, + *, + analytics_logging: Optional['TableAnalyticsLogging'] = None, + hour_metrics: Optional['TableMetrics'] = None, + minute_metrics: Optional['TableMetrics'] = None, + cors: Optional[List['TableCorsRule']] = None, + **kwargs + ) -> None: + """Sets properties for an account's Table service endpoint, + including properties for Analytics and CORS (Cross-Origin Resource Sharing) rules. + + :keyword analytics_logging: Properties for analytics + :paramtype analytics_logging: ~azure.data.tables.TableAnalyticsLogging + :keyword hour_metrics: Hour level metrics + :paramtype hour_metrics: ~azure.data.tables.TableMetrics + :keyword minute_metrics: Minute level metrics + :paramtype minute_metrics: ~azure.data.tables.TableMetrics + :keyword cors: Cross-origin resource sharing rules + :paramtype cors: List[~azure.data.tables.TableCorsRule] + :return: None + :rtype: None + :raises: :class:`~azure.core.exceptions.HttpResponseError` + """ + if cors: + cors = [c._to_generated() for c in cors] # pylint:disable=protected-access + props = TableServiceProperties( + logging=analytics_logging, + hour_metrics=hour_metrics, + minute_metrics=minute_metrics, + cors=cors, # type: ignore + ) + try: + await self._client.service.set_properties(props, **kwargs) # type: ignore + except HttpResponseError as error: + _process_table_error(error) + + @distributed_trace_async + async def create_table(self, table_name: str, **kwargs) -> TableClient: + """Creates a new table under the given account. + + :param headers: + :param str table_name: The Table name. + :return: TableClient, or the result of cls(response) + :rtype: :class:`~azure.data.tables.aio.TableClient` + :raises: :class:`~azure.core.exceptions.ResourceExistsError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_create_delete_table_async.py + :start-after: [START create_table] + :end-before: [END create_table] + :language: python + :dedent: 8 + :caption: Creating a table from TableServiceClient. + """ + table = self.get_table_client(table_name=table_name) + await table.create_table(**kwargs) + return table + + @distributed_trace_async + async def create_table_if_not_exists(self, table_name: str, **kwargs) -> TableClient: + """Creates a new table if it does not currently exist. + If the table currently exists, the current table is + returned. + + :param table_name: The Table name. + :type table_name: str + :return: TableClient + :rtype: :class:`~azure.data.tables.aio.TableClient` + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_create_delete_table_async.py + :start-after: [START create_if_not_exists] + :end-before: [END create_if_not_exists] + :language: python + :dedent: 8 + :caption: Creating a table if it does not already exist + """ + table = self.get_table_client(table_name=table_name) + try: + await table.create_table(**kwargs) + except ResourceExistsError: + pass + return table + + @distributed_trace_async + async def delete_table(self, table_name: str, **kwargs) -> None: + """Deletes a table under the current account. No error will be raised if + the table is not found. + + :param str table_name: The Table name. + :return: None + :rtype: None + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_create_delete_table_async.py + :start-after: [START delete_table] + :end-before: [END delete_table] + :language: python + :dedent: 8 + :caption: Deleting a table + """ + table = self.get_table_client(table_name=table_name) + await table.delete_table(**kwargs) + + @distributed_trace + def list_tables(self, **kwargs) -> AsyncItemPaged[TableItem]: + """Queries tables under the given account. + + :keyword int results_per_page: Number of tables per page in returned ItemPaged + :return: AsyncItemPaged[:class:`~azure.data.tables.TableItem`] + :rtype: ~azure.core.async_paging.AsyncItemPaged + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_query_tables_async.py + :start-after: [START tsc_list_tables] + :end-before: [END tsc_list_tables] + :language: python + :dedent: 16 + :caption: Listing all tables in an account + """ + top = kwargs.pop("results_per_page", None) + + command = functools.partial(self._client.table.query, **kwargs) + return AsyncItemPaged( + command, + results_per_page=top, + page_iterator_class=TablePropertiesPaged, + ) + + @distributed_trace + def query_tables(self, query_filter: str, **kwargs) -> AsyncItemPaged[TableItem]: + """Queries tables under the given account. + + :param str query_filter: Specify a filter to return certain tables. + :keyword int results_per_page: Number of tables per page in return ItemPaged + :keyword parameters: Dictionary for formatting query with additional, user defined parameters + :paramtype parameters: Dict[str, Any] + :return: AsyncItemPaged[:class:`~azure.data.tables.TableItem`] + :rtype: ~azure.core.async_paging.AsyncItemPaged + :raises: :class:`~azure.core.exceptions.HttpResponseError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_query_tables_async.py + :start-after: [START tsc_query_tables] + :end-before: [END tsc_query_tables] + :language: python + :dedent: 16 + :caption: Querying tables in an account given specific parameters + """ + parameters = kwargs.pop("parameters", None) + query_filter = _parameter_filter_substitution( + parameters, query_filter + ) + top = kwargs.pop("results_per_page", None) + command = functools.partial(self._client.table.query, **kwargs) + return AsyncItemPaged( + command, + results_per_page=top, + filter=query_filter, + page_iterator_class=TablePropertiesPaged, + ) + + def get_table_client(self, table_name: str, **kwargs) -> TableClient: + """Get a client to interact with the specified table. + + The table need not already exist. + + :param str table_name: The table name + :returns: A :class:`~azure.data.tables.aio.TableClient` object. + :rtype: :class:`~azure.data.tables.aio.TableClient` + + """ + pipeline = AsyncPipeline( # type: ignore + transport=AsyncTransportWrapper(self._client._client._pipeline._transport), # pylint:disable=protected-access + policies=self._policies, + ) + return TableClient( + self.url, + table_name=table_name, + credential=self.credential, # type: ignore + api_version=self.api_version, + pipeline=pipeline, + location_mode=self._location_mode, + _hosts=self._hosts, + **kwargs + ) diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/py.typed b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/py.typed new file mode 100644 index 000000000000..e5aff4f83af8 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/azure/eventhub/extensions/checkpointstoretable/_vendor/data/tables/py.typed @@ -0,0 +1 @@ +# Marker file for PEP 561. \ No newline at end of file diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/dev_requirements.txt b/sdk/eventhub/azure-eventhub-checkpointstoretable/dev_requirements.txt index 30f891539e8f..cfd543b488e3 100644 --- a/sdk/eventhub/azure-eventhub-checkpointstoretable/dev_requirements.txt +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/dev_requirements.txt @@ -1,3 +1,3 @@ -e ../../../tools/azure-sdk-tools -../../core/azure-core +aiohttp>=3.0; python_version >= '3.5' -e ../../../tools/azure-devtools \ No newline at end of file diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/samples/receive_events_using_checkpoint_store.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/samples/receive_events_using_checkpoint_store.py new file mode 100644 index 000000000000..822fdf1e0ef5 --- /dev/null +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/samples/receive_events_using_checkpoint_store.py @@ -0,0 +1,33 @@ +import os +from azure.eventhub import EventHubConsumerClient +from azure.eventhub.extensions.checkpointstoretable import TableCheckpointStore + +CONNECTION_STR = os.environ["EVENT_HUB_CONN_STR"] +EVENTHUB_NAME = os.environ["EVENT_HUB_NAME"] +STORAGE_CONNECTION_STR = os.environ["AZURE_STORAGE_CONN_STR"] +TABLE_NAME = "your-table-name" # Please make sure the table resource exists. + + +def on_event(partition_context, event): + # Put your code here. + # Avoid time-consuming operations. + print(event) + partition_context.update_checkpoint(event) + + +if __name__ == "__main__": + checkpoint_store = TableCheckpointStore.from_connection_string( + STORAGE_CONNECTION_STR, + table_name=TABLE_NAME, + ) + client = EventHubConsumerClient.from_connection_string( + CONNECTION_STR, + consumer_group="$Default", + eventhub_name=EVENTHUB_NAME, + checkpoint_store=checkpoint_store, + ) + + try: + client.receive(on_event) + except KeyboardInterrupt: + client.close() diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/setup.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/setup.py index adff84f000bc..4a981983cfa7 100644 --- a/sdk/eventhub/azure-eventhub-checkpointstoretable/setup.py +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/setup.py @@ -1,24 +1,23 @@ +#!/usr/bin/env python + +#------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +#-------------------------------------------------------------------------- + from setuptools import setup, find_packages import os from io import open import re -# example setup.py Feel free to copy the entire "azure-template" folder into a package folder named -# with "azure-". Ensure that the below arguments to setup() are updated to reflect -# your package. - -# this setup.py is set up in a specific way to keep the azure* and azure-mgmt-* namespaces WORKING all the way -# up from python 2.7. Reference here: https://github.com/Azure/azure-sdk-for-python/wiki/Azure-packaging - PACKAGE_NAME = "azure-eventhub-checkpointstoretable" PACKAGE_PPRINT_NAME = "Event Hubs checkpointer implementation with Azure Table Storage" # a-b-c => a/b/c -package_folder_path = PACKAGE_NAME.replace("-", "/") -# a-b-c => a.b.c -namespace_name = PACKAGE_NAME.replace("-", ".") - package_folder_path = "azure/eventhub/extensions/checkpointstoretable" +# a-b-c => a.b.c +namespace_name = "azure.eventhub.extensions.checkpointstoretable" # Version extraction inspired from 'requests' with open(os.path.join(package_folder_path, "_version.py"), "r") as fd: @@ -59,18 +58,27 @@ # Exclude packages that will be covered by PEP420 or nspkg # This means any folder structure that only consists of a __init__.py. # For example, for storage, this would mean adding 'azure.storage' - # in addition to the default 'azure' that is seen here. - "azure", + 'samples', + # Exclude packages that will be covered by PEP420 or nspkg + 'azure', + 'azure.eventhub', + 'azure.eventhub.extensions', ] ), install_requires=[ - "azure-core<2.0.0,>=1.2.2", + "azure-core<2.0.0,>=1.14.0", + 'azure-eventhub<6.0.0,>=5.0.0', + 'msrest>=0.5.0', + 'azure-eventhub<6.0.0,>=5.0.0', ], extras_require={ ":python_version<'3.0'": ["azure-nspkg"], + ":python_version<'3.0'": ['futures', 'azure-data-nspkg<2.0.0,>=1.0.0'], + ":python_version<'3.4'": ['enum34>=1.0.4'], + ":python_version<'3.5'": ["typing"], }, project_urls={ "Bug Reports": "https://github.com/Azure/azure-sdk-for-python/issues", "Source": "https://github.com/Azure/azure-sdk-python", }, -) +) \ No newline at end of file diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py index 612a196e10ac..f6c0f8bf0e09 100644 --- a/sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py @@ -1,8 +1,212 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + import pytest +import uuid +import warnings +import os + +from azure.eventhub.extensions.checkpointstoretable._vendor.data.tables import TableServiceClient from azure.eventhub.extensions.checkpointstoretable import TableCheckpointStore +from azure.eventhub.exceptions import OwnershipLostError + +STORAGE_CONN_STR = [ + #os.environ.get("AZURE_STORAGE_CONN_STR", "Azure Storage Connection String"), + os.environ.get("AZURE_COSMOS_CONN_STR", "Azure Storage Connection String"), +] + + +def get_live_storage_table_client(storage_connection_str): + try: + table_name = "table{}".format(uuid.uuid4().hex) + table_service_client = TableServiceClient.from_connection_string( + storage_connection_str + ) + table_service_client.create_table_if_not_exists(table_name) + return storage_connection_str, table_name + except: + pytest.skip("Storage table client can't be created") + + +def remove_live_storage_table_client(storage_connection_str, table_name): + try: + table_service_client = TableServiceClient.from_connection_string( + storage_connection_str + ) + table_service_client.delete_table(table_name) + except: + warnings.warn(UserWarning("storage table teardown failed")) + + +def _create_checkpoint(partition_id, offset, sequence_number): + return { + "fully_qualified_namespace": "test_namespace", + "eventhub_name": "eventhub", + "consumer_group": "$default", + "partition_id": str(partition_id), + "offset": offset, + "sequence_number": sequence_number, + } + + +def _create_ownership(partition_id, owner_id, etag, last_modified_time): + return { + "fully_qualified_namespace": "test_namespace", + "eventhub_name": "eventhub", + "consumer_group": "$default", + "partition_id": str(partition_id), + "owner_id": owner_id, + "etag": etag, + "last_modified_time": last_modified_time, + } + + +def _claim_ownership_exception_test(storage_connection_str, table_name): + fully_qualified_namespace = "test_namespace" + eventhub_name = "eventhub" + consumer_group = "$default" + ownership_cnt = 8 + + checkpoint_store = TableCheckpointStore.from_connection_string( + storage_connection_str, table_name + ) + ownership_list = [] + for i in range(ownership_cnt): + ownership = _create_ownership(str(i), "owner_id", None, None) + ownership_list.append(ownership) + result_ownership_list = checkpoint_store.claim_ownership(ownership_list) + assert result_ownership_list[0]["owner_id"] == "owner_id" + single_ownership = [result_ownership_list[0].copy()] + single_ownership[0]["owner_id"] = "Bill" + ownership_list = checkpoint_store.claim_ownership(single_ownership) + assert ownership_list[0]["owner_id"] == "Bill" + + single_ownership = [result_ownership_list[0].copy()] + single_ownership[0]["etag"] = "W/\"datetime'2021-08-02T00%3A46%3A51.7645424Z'\"" + single_ownership[0]["owner_id"] = "Jack" + single_ownership[0]["partition_id"] = "10" + result_ownership = checkpoint_store.claim_ownership(single_ownership) + list_ownership = checkpoint_store.list_ownership( + fully_qualified_namespace, eventhub_name, consumer_group + ) + assert result_ownership[0] in list_ownership + + single_ownership = [result_ownership_list[0].copy()] + single_ownership[0]["etag"] = "W/\"datetime'2021-08-02T00%3A46%3A51.7645424Z'\"" + with pytest.raises(OwnershipLostError) as e_info: + checkpoint_store.claim_ownership(single_ownership) + + +def _claim_and_list_ownership(storage_connection_str, table_name): + fully_qualified_namespace = "test_namespace" + eventhub_name = "eventhub" + consumer_group = "$default" + ownership_cnt = 8 + + checkpoint_store = TableCheckpointStore.from_connection_string( + storage_connection_str, table_name + ) + ownership_list = checkpoint_store.list_ownership( + fully_qualified_namespace, eventhub_name, consumer_group + ) + assert len(ownership_list) == 0 + + ownership_list = [] + + for i in range(ownership_cnt): + ownership = _create_ownership(str(i), "owner_id", None, None) + ownership_list.append(ownership) + result_ownership_list = checkpoint_store.claim_ownership(ownership_list) + assert ownership_list != result_ownership_list + assert len(result_ownership_list) == len(ownership_list) + for i in range(len(ownership_list)): + assert ownership_list[i]["etag"] != result_ownership_list[i]["etag"] + assert ( + ownership_list[i]["last_modified_time"] + != result_ownership_list[i]["last_modified_time"] + ) + + ownership_list = checkpoint_store.list_ownership( + fully_qualified_namespace, eventhub_name, consumer_group + ) + assert len(ownership_list) == ownership_cnt + assert len(ownership_list) == len(result_ownership_list) + for i in range(len(result_ownership_list)): + assert ownership_list[i]["etag"] == result_ownership_list[i]["etag"] + assert ( + ownership_list[i]["last_modified_time"] + == result_ownership_list[i]["last_modified_time"] + ) + + +def _update_and_list_checkpoint(storage_connection_str, table_name): + fully_qualified_namespace = "test_namespace" + eventhub_name = "eventhub" + consumer_group = "$default" + partition_cnt = 8 + + checkpoint_store = TableCheckpointStore.from_connection_string( + storage_connection_str, table_name + ) + checkpoint_list = checkpoint_store.list_checkpoints( + fully_qualified_namespace, eventhub_name, consumer_group + ) + assert len(checkpoint_list) == 0 + for i in range(partition_cnt): + checkpoint = _create_checkpoint(i, 2, 20) + checkpoint_store.update_checkpoint(checkpoint) + + checkpoint_list = checkpoint_store.list_checkpoints( + fully_qualified_namespace, eventhub_name, consumer_group + ) + assert len(checkpoint_list) == partition_cnt + for checkpoint in checkpoint_list: + assert checkpoint["offset"] == "2" + assert checkpoint["sequence_number"] == 20 + + checkpoint = _create_checkpoint(0, "30", 42) + checkpoint_store.update_checkpoint(checkpoint) + checkpoint_list = checkpoint_store.list_checkpoints( + fully_qualified_namespace, eventhub_name, consumer_group + ) + assert len(checkpoint_list) == partition_cnt + assert checkpoint_list[0]["offset"] == "30" + + +@pytest.mark.parametrize("storage_connection_str", STORAGE_CONN_STR) +@pytest.mark.liveTest +def test_claim_ownership_exception(storage_connection_str): + storage_connection_str, table_name = get_live_storage_table_client( + storage_connection_str + ) + try: + _claim_ownership_exception_test(storage_connection_str, table_name) + finally: + remove_live_storage_table_client(storage_connection_str, table_name) + + +@pytest.mark.parametrize("storage_connection_str", STORAGE_CONN_STR) +@pytest.mark.liveTest +def test_claim_and_list_ownership(storage_connection_str): + storage_connection_str, table_name = get_live_storage_table_client( + storage_connection_str + ) + try: + _claim_and_list_ownership(storage_connection_str, table_name) + finally: + remove_live_storage_table_client(storage_connection_str, table_name) -def test_constructor(): - client = TableCheckpointStore() - assert client is not None - +@pytest.mark.parametrize("storage_connection_str", STORAGE_CONN_STR) +@pytest.mark.liveTest +def test_update_checkpoint(storage_connection_str): + storage_connection_str, table_name = get_live_storage_table_client( + storage_connection_str + ) + try: + _update_and_list_checkpoint(storage_connection_str, table_name) + finally: + remove_live_storage_table_client(storage_connection_str, table_name) diff --git a/sdk/eventhub/azure-mgmt-eventhub/dev_requirements.txt b/sdk/eventhub/azure-mgmt-eventhub/dev_requirements.txt index cfd543b488e3..501388194f4f 100644 --- a/sdk/eventhub/azure-mgmt-eventhub/dev_requirements.txt +++ b/sdk/eventhub/azure-mgmt-eventhub/dev_requirements.txt @@ -1,3 +1,5 @@ -e ../../../tools/azure-sdk-tools -aiohttp>=3.0; python_version >= '3.5' +../../core/azure-core +../azure-eventhub +../../tables/azure-data-tables -e ../../../tools/azure-devtools \ No newline at end of file diff --git a/sdk/eventhub/tests.yml b/sdk/eventhub/tests.yml index a4912dfe1dec..024fa153ea3d 100644 --- a/sdk/eventhub/tests.yml +++ b/sdk/eventhub/tests.yml @@ -19,3 +19,4 @@ stages: AZURE_TENANT_ID: $(python-eh-livetest-event-hub-aad-tenant-id) AZURE_CLIENT_SECRET: $(python-eh-livetest-event-hub-aad-secret) AZURE_SUBSCRIPTION_ID: $(python-eh-livetest-event-hub-subscription-id) + AZURE_COSMOS_CONN_STR: $(python-eventhub-livetest-cosmos-conn-str) diff --git a/shared_requirements.txt b/shared_requirements.txt index 41a62d9addc7..7d966ae7b825 100644 --- a/shared_requirements.txt +++ b/shared_requirements.txt @@ -177,6 +177,7 @@ opentelemetry-sdk<2.0.0,>=1.0.0 #override azure-eventhub-checkpointstoreblob azure-core<2.0.0,>=1.10.0 #override azure-eventhub-checkpointstoreblob-aio azure-core<2.0.0,>=1.10.0 #override azure-eventhub-checkpointstoreblob-aio aiohttp<4.0,>=3.0 +#override azure-eventhub-checkpointstoretable azure-core<2.0.0,>=1.14.0 #override azure-eventhub uamqp>=1.4.1,<2.0.0 #override azure-appconfiguration msrest>=0.6.10 #override azure-mgmt-appconfiguration msrest>=0.6.21 From 28a0c24e3f1f2089f0199c15c9245e30864e20cd Mon Sep 17 00:00:00 2001 From: Azure CLI Bot Date: Mon, 16 Aug 2021 10:14:37 +0800 Subject: [PATCH 069/104] [AutoRelease] t2-purview-2021-08-13-30358 (#20260) * CodeGen from PR 15245 in Azure/azure-rest-api-specs Revert "Revert "Added GA API version (2021-07-01) (#14937)" (#15129)" (#15245) This reverts commit 654c237832960c2753b7a4a4459a434af6d57a4a. Co-authored-by: Shailesh Kelkar * version,CHANGELOG Co-authored-by: SDKAuto Co-authored-by: Shailesh Kelkar Co-authored-by: PythonSdkPipelines Co-authored-by: Zed Lei <59104634+RAY-316@users.noreply.github.com> --- sdk/purview/azure-mgmt-purview/CHANGELOG.md | 19 + sdk/purview/azure-mgmt-purview/MANIFEST.in | 1 + sdk/purview/azure-mgmt-purview/_meta.json | 11 + .../azure/mgmt/purview/_configuration.py | 2 +- .../azure/mgmt/purview/_metadata.json | 66 +- .../purview/_purview_management_client.py | 20 + .../azure/mgmt/purview/_version.py | 2 +- .../azure/mgmt/purview/aio/_configuration.py | 2 +- .../purview/aio/_purview_management_client.py | 19 + .../aio/operations/_accounts_operations.py | 132 +++- .../_default_accounts_operations.py | 22 +- .../purview/aio/operations/_operations.py | 6 +- ...private_endpoint_connections_operations.py | 131 +++- .../_private_link_resources_operations.py | 12 +- .../azure/mgmt/purview/models/__init__.py | 31 +- .../azure/mgmt/purview/models/_models.py | 616 +++++++++-------- .../azure/mgmt/purview/models/_models_py3.py | 630 +++++++++--------- .../_purview_management_client_enums.py | 21 + .../operations/_accounts_operations.py | 111 ++- .../_default_accounts_operations.py | 16 +- .../mgmt/purview/operations/_operations.py | 4 +- ...private_endpoint_connections_operations.py | 122 +++- .../_private_link_resources_operations.py | 8 +- sdk/purview/azure-mgmt-purview/setup.py | 2 +- shared_requirements.txt | 1 + 25 files changed, 1195 insertions(+), 812 deletions(-) create mode 100644 sdk/purview/azure-mgmt-purview/_meta.json diff --git a/sdk/purview/azure-mgmt-purview/CHANGELOG.md b/sdk/purview/azure-mgmt-purview/CHANGELOG.md index e15790ab78c1..4f99ca595fec 100644 --- a/sdk/purview/azure-mgmt-purview/CHANGELOG.md +++ b/sdk/purview/azure-mgmt-purview/CHANGELOG.md @@ -1,5 +1,24 @@ # Release History +## 1.0.0 (2021-08-13) + +**Features** + + - Model Account has a new parameter managed_resource_group_name + - Model Account has a new parameter system_data + - Model TrackedResource has a new parameter system_data + - Model PrivateLinkResource has a new parameter properties + - Added operation AccountsOperations.add_root_collection_admin + - Added operation PrivateEndpointConnectionsOperations.begin_create_or_update + +**Breaking changes** + + - Model PrivateLinkResource no longer has parameter required_zone_names + - Model PrivateLinkResource no longer has parameter group_id + - Model PrivateLinkResource no longer has parameter required_members + - Model AccountUpdateParameters has a new signature + - Removed operation PrivateEndpointConnectionsOperations.create_or_update + ## 1.0.0b1 (2021-02-01) * Initial Release diff --git a/sdk/purview/azure-mgmt-purview/MANIFEST.in b/sdk/purview/azure-mgmt-purview/MANIFEST.in index a3cb07df8765..3a9b6517412b 100644 --- a/sdk/purview/azure-mgmt-purview/MANIFEST.in +++ b/sdk/purview/azure-mgmt-purview/MANIFEST.in @@ -1,3 +1,4 @@ +include _meta.json recursive-include tests *.py *.yaml include *.md include azure/__init__.py diff --git a/sdk/purview/azure-mgmt-purview/_meta.json b/sdk/purview/azure-mgmt-purview/_meta.json new file mode 100644 index 000000000000..8f43a3a92d0a --- /dev/null +++ b/sdk/purview/azure-mgmt-purview/_meta.json @@ -0,0 +1,11 @@ +{ + "autorest": "3.4.5", + "use": [ + "@autorest/python@5.8.4", + "@autorest/modelerfour@4.19.2" + ], + "commit": "ebe90b1dfef9ec9706dee06e84676a6c6979ab53", + "repository_url": "https://github.com/Azure/azure-rest-api-specs", + "autorest_command": "autorest specification/purview/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.8.4 --use=@autorest/modelerfour@4.19.2 --version=3.4.5", + "readme": "specification/purview/resource-manager/readme.md" +} \ No newline at end of file diff --git a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/_configuration.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/_configuration.py index 91cb571d92f8..19097948256d 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/_configuration.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/_configuration.py @@ -48,7 +48,7 @@ def __init__( self.credential = credential self.subscription_id = subscription_id - self.api_version = "2020-12-01-preview" + self.api_version = "2021-07-01" self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) kwargs.setdefault('sdk_moniker', 'mgmt-purview/{}'.format(VERSION)) self._configure(**kwargs) diff --git a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/_metadata.json b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/_metadata.json index 063b7d675577..96fa45190246 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/_metadata.json +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/_metadata.json @@ -1,6 +1,6 @@ { - "chosen_version": "2020-12-01-preview", - "total_api_version_list": ["2020-12-01-preview"], + "chosen_version": "2021-07-01", + "total_api_version_list": ["2021-07-01"], "client": { "name": "PurviewManagementClient", "filename": "_purview_management_client", @@ -9,7 +9,9 @@ "custom_base_url": null, "azure_arm": true, "has_lro_operations": true, - "client_side_validation": true + "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\": [\"PurviewManagementClientConfiguration\"]}}, \"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\": [\"PurviewManagementClientConfiguration\"]}}, \"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 subscription identifier.", "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": { "accounts": "AccountsOperations", @@ -57,9 +103,5 @@ "operations": "Operations", "private_endpoint_connections": "PrivateEndpointConnectionsOperations", "private_link_resources": "PrivateLinkResourcesOperations" - }, - "operation_mixins": { - }, - "sync_imports": "None", - "async_imports": "None" + } } \ No newline at end of file diff --git a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/_purview_management_client.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/_purview_management_client.py index 50148e1f1238..0c4cbaf22df6 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/_purview_management_client.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/_purview_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 PurviewManagementClientConfiguration from .operations import AccountsOperations @@ -62,6 +63,7 @@ def __init__( client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False self._deserialize = Deserializer(client_models) self.accounts = AccountsOperations( @@ -75,6 +77,24 @@ def __init__( self.private_link_resources = PrivateLinkResourcesOperations( 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'), + } + 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 self._client.close() diff --git a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/_version.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/_version.py index e5754a47ce68..c47f66669f1b 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/_version.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "1.0.0b1" +VERSION = "1.0.0" diff --git a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/_configuration.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/_configuration.py index 9f4350734e62..0fe146e261e7 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/_configuration.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/_configuration.py @@ -45,7 +45,7 @@ def __init__( self.credential = credential self.subscription_id = subscription_id - self.api_version = "2020-12-01-preview" + self.api_version = "2021-07-01" self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) kwargs.setdefault('sdk_moniker', 'mgmt-purview/{}'.format(VERSION)) self._configure(**kwargs) diff --git a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/_purview_management_client.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/_purview_management_client.py index ef650f5d042a..7d856ac75df6 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/_purview_management_client.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/_purview_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 @@ -59,6 +60,7 @@ def __init__( client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False self._deserialize = Deserializer(client_models) self.accounts = AccountsOperations( @@ -72,6 +74,23 @@ def __init__( self.private_link_resources = PrivateLinkResourcesOperations( 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'), + } + 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/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_accounts_operations.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_accounts_operations.py index 9faa886a3e52..6a8a8f6bae95 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_accounts_operations.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_accounts_operations.py @@ -47,7 +47,7 @@ def list_by_resource_group( self, resource_group_name: str, skip_token: Optional[str] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.AccountList"]: """Gets the accounts resources by resource group. @@ -67,7 +67,7 @@ def list_by_resource_group( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" def prepare_request(next_link=None): @@ -110,7 +110,7 @@ async def get_next(next_link=None): response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) @@ -124,7 +124,7 @@ async def get_next(next_link=None): def list_by_subscription( self, skip_token: Optional[str] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.AccountList"]: """Gets the accounts resources by subscription. @@ -142,7 +142,7 @@ def list_by_subscription( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" def prepare_request(next_link=None): @@ -184,7 +184,7 @@ async def get_next(next_link=None): response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) @@ -199,7 +199,7 @@ async def get( self, resource_group_name: str, account_name: str, - **kwargs + **kwargs: Any ) -> "_models.Account": """Gets the account resource. @@ -219,7 +219,7 @@ async def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -245,7 +245,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.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('Account', pipeline_response) @@ -261,14 +261,14 @@ async def _create_or_update_initial( resource_group_name: str, account_name: str, account: "_models.Account", - **kwargs + **kwargs: Any ) -> "_models.Account": cls = kwargs.pop('cls', None) # type: ClsType["_models.Account"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -299,7 +299,7 @@ async def _create_or_update_initial( if response.status_code not in [200, 201]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if response.status_code == 200: @@ -319,7 +319,7 @@ async def begin_create_or_update( resource_group_name: str, account_name: str, account: "_models.Account", - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.Account"]: """Create or update an account resource. @@ -333,8 +333,8 @@ async def begin_create_or_update( :type account: ~azure.mgmt.purview.models.Account :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 Account or the result of cls(response) @@ -391,14 +391,14 @@ async def _delete_initial( self, resource_group_name: str, account_name: str, - **kwargs + **kwargs: Any ) -> 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 = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -424,7 +424,7 @@ async def _delete_initial( if response.status_code not in [200, 202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -436,7 +436,7 @@ async def begin_delete( self, resource_group_name: str, account_name: str, - **kwargs + **kwargs: Any ) -> AsyncLROPoller[None]: """Deletes the account resource. @@ -448,8 +448,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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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) @@ -503,14 +503,14 @@ async def _update_initial( resource_group_name: str, account_name: str, account_update_parameters: "_models.AccountUpdateParameters", - **kwargs + **kwargs: Any ) -> "_models.Account": cls = kwargs.pop('cls', None) # type: ClsType["_models.Account"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -541,7 +541,7 @@ async def _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.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if response.status_code == 200: @@ -561,7 +561,7 @@ async def begin_update( resource_group_name: str, account_name: str, account_update_parameters: "_models.AccountUpdateParameters", - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.Account"]: """Patches the account resource. @@ -575,8 +575,8 @@ async def begin_update( :type account_update_parameters: ~azure.mgmt.purview.models.AccountUpdateParameters :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 Account or the result of cls(response) @@ -633,7 +633,7 @@ async def list_keys( self, resource_group_name: str, account_name: str, - **kwargs + **kwargs: Any ) -> "_models.AccessKeys": """Lists the keys asynchronous. @@ -653,7 +653,7 @@ async def list_keys( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -679,7 +679,7 @@ async def list_keys( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('AccessKeys', pipeline_response) @@ -690,10 +690,76 @@ async def list_keys( return deserialized list_keys.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Purview/accounts/{accountName}/listkeys'} # type: ignore + async def add_root_collection_admin( + self, + resource_group_name: str, + account_name: str, + collection_admin_update: "_models.CollectionAdminUpdate", + **kwargs: Any + ) -> None: + """Add the administrator for root collection. + + Add the administrator for root collection associated with this account. + + :param resource_group_name: The resource group name. + :type resource_group_name: str + :param account_name: The name of the account. + :type account_name: str + :param collection_admin_update: The collection admin update payload. + :type collection_admin_update: ~azure.mgmt.purview.models.CollectionAdminUpdate + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.add_root_collection_admin.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'accountName': self._serialize.url("account_name", account_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(collection_admin_update, 'CollectionAdminUpdate') + 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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + add_root_collection_admin.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Purview/accounts/{accountName}/addRootCollectionAdmin'} # type: ignore + async def check_name_availability( self, check_name_availability_request: "_models.CheckNameAvailabilityRequest", - **kwargs + **kwargs: Any ) -> "_models.CheckNameAvailabilityResult": """Checks the account name availability. @@ -711,7 +777,7 @@ async def check_name_availability( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -740,7 +806,7 @@ async def check_name_availability( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('CheckNameAvailabilityResult', pipeline_response) diff --git a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_default_accounts_operations.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_default_accounts_operations.py index 3df9a2115bac..2035ebb4737f 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_default_accounts_operations.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_default_accounts_operations.py @@ -45,7 +45,7 @@ async def get( scope_tenant_id: str, scope_type: Union[str, "_models.ScopeType"], scope: Optional[str] = None, - **kwargs + **kwargs: Any ) -> "_models.DefaultAccountPayload": """Gets the default account information set for the scope. @@ -68,7 +68,7 @@ async def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -92,7 +92,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.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('DefaultAccountPayload', pipeline_response) @@ -106,11 +106,11 @@ async def get( async def set( self, default_account_payload: "_models.DefaultAccountPayload", - **kwargs + **kwargs: Any ) -> "_models.DefaultAccountPayload": """Sets the default account for the scope. - Set the default account for the scope. + Sets the default account for the scope. :param default_account_payload: The payload containing the default account information and the scope. @@ -125,7 +125,7 @@ async def set( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -150,7 +150,7 @@ async def set( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('DefaultAccountPayload', pipeline_response) @@ -166,11 +166,11 @@ async def remove( scope_tenant_id: str, scope_type: Union[str, "_models.ScopeType"], scope: Optional[str] = None, - **kwargs + **kwargs: Any ) -> None: """Removes the default account from the scope. - Remove the default account from the scope. + Removes the default account from the scope. :param scope_tenant_id: The tenant ID. :type scope_tenant_id: str @@ -189,7 +189,7 @@ async def remove( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -213,7 +213,7 @@ async def remove( if response.status_code not in [200, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: diff --git a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_operations.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_operations.py index cbde10d66c08..6a19ac9e24db 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_operations.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.OperationList"]: """Lists the available operations. @@ -59,7 +59,7 @@ def list( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" def prepare_request(next_link=None): @@ -95,7 +95,7 @@ async def get_next(next_link=None): response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) diff --git a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_private_endpoint_connections_operations.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_private_endpoint_connections_operations.py index c6563831981f..9e91fc476e11 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_private_endpoint_connections_operations.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_private_endpoint_connections_operations.py @@ -48,7 +48,7 @@ def list_by_account( resource_group_name: str, account_name: str, skip_token: Optional[str] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.PrivateEndpointConnectionList"]: """Gets private endpoint connections. @@ -70,7 +70,7 @@ def list_by_account( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" def prepare_request(next_link=None): @@ -114,7 +114,7 @@ async def get_next(next_link=None): response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) @@ -130,7 +130,7 @@ async def get( resource_group_name: str, account_name: str, private_endpoint_connection_name: str, - **kwargs + **kwargs: Any ) -> "_models.PrivateEndpointConnection": """Gets private endpoint connection information. @@ -152,7 +152,7 @@ async def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -179,7 +179,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.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('PrivateEndpointConnection', pipeline_response) @@ -190,42 +190,25 @@ async def get( return deserialized get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Purview/accounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore - async def create_or_update( + async def _create_or_update_initial( self, resource_group_name: str, account_name: str, private_endpoint_connection_name: str, request: "_models.PrivateEndpointConnection", - **kwargs + **kwargs: Any ) -> "_models.PrivateEndpointConnection": - """Approves/Rejects private endpoint connection request. - - Create or update a private endpoint connection. - - :param resource_group_name: The resource group name. - :type resource_group_name: str - :param account_name: The name of the account. - :type account_name: str - :param private_endpoint_connection_name: Name of the private endpoint connection. - :type private_endpoint_connection_name: str - :param request: The request. - :type request: ~azure.mgmt.purview.models.PrivateEndpointConnection - :keyword callable cls: A custom type or function that will be passed the direct response - :return: PrivateEndpointConnection, or the result of cls(response) - :rtype: ~azure.mgmt.purview.models.PrivateEndpointConnection - :raises: ~azure.core.exceptions.HttpResponseError - """ cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" # Construct URL - url = self.create_or_update.metadata['url'] # type: ignore + url = self._create_or_update_initial.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), @@ -252,7 +235,7 @@ async def create_or_update( if response.status_code not in [200, 201]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if response.status_code == 200: @@ -265,21 +248,99 @@ async def create_or_update( return cls(pipeline_response, deserialized, {}) return deserialized - create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Purview/accounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Purview/accounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def begin_create_or_update( + self, + resource_group_name: str, + account_name: str, + private_endpoint_connection_name: str, + request: "_models.PrivateEndpointConnection", + **kwargs: Any + ) -> AsyncLROPoller["_models.PrivateEndpointConnection"]: + """Approves/Rejects private endpoint connection request. + + Create or update a private endpoint connection. + + :param resource_group_name: The resource group name. + :type resource_group_name: str + :param account_name: The name of the account. + :type account_name: str + :param private_endpoint_connection_name: Name of the private endpoint connection. + :type private_endpoint_connection_name: str + :param request: The request. + :type request: ~azure.mgmt.purview.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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.purview.models.PrivateEndpointConnection] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] + 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_or_update_initial( + resource_group_name=resource_group_name, + account_name=account_name, + private_endpoint_connection_name=private_endpoint_connection_name, + request=request, + 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('PrivateEndpointConnection', 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'accountName': self._serialize.url("account_name", account_name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_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_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Purview/accounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore async def _delete_initial( self, resource_group_name: str, account_name: str, private_endpoint_connection_name: str, - **kwargs + **kwargs: Any ) -> 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 = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -306,7 +367,7 @@ async def _delete_initial( if response.status_code not in [200, 202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -319,7 +380,7 @@ async def begin_delete( resource_group_name: str, account_name: str, private_endpoint_connection_name: str, - **kwargs + **kwargs: Any ) -> AsyncLROPoller[None]: """Deletes private endpoint connection. @@ -333,8 +394,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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_private_link_resources_operations.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_private_link_resources_operations.py index 298971badec3..9a2669ee2ccb 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_private_link_resources_operations.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/aio/operations/_private_link_resources_operations.py @@ -45,7 +45,7 @@ def list_by_account( self, resource_group_name: str, account_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.PrivateLinkResourceList"]: """Gets a list of privately linkable resources for an account. @@ -65,7 +65,7 @@ def list_by_account( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" 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.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) @@ -123,7 +123,7 @@ async def get_by_group_id( resource_group_name: str, account_name: str, group_id: str, - **kwargs + **kwargs: Any ) -> "_models.PrivateLinkResource": """Gets a privately linkable resources for an account with given group identifier. @@ -145,7 +145,7 @@ async def get_by_group_id( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -172,7 +172,7 @@ async def get_by_group_id( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('PrivateLinkResource', pipeline_response) diff --git a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/models/__init__.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/models/__init__.py index 1504d97411a5..e958a3eaf6e1 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/models/__init__.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/models/__init__.py @@ -11,6 +11,7 @@ from ._models_py3 import Account from ._models_py3 import AccountEndpoints from ._models_py3 import AccountList + from ._models_py3 import AccountProperties from ._models_py3 import AccountPropertiesEndpoints from ._models_py3 import AccountPropertiesManagedResources from ._models_py3 import AccountSku @@ -18,11 +19,8 @@ from ._models_py3 import CheckNameAvailabilityRequest from ._models_py3 import CheckNameAvailabilityResult from ._models_py3 import CloudConnectors + from ._models_py3 import CollectionAdminUpdate from ._models_py3 import DefaultAccountPayload - from ._models_py3 import DeletedAccount - from ._models_py3 import DeletedAccountList - from ._models_py3 import DeletedAccountProperties - from ._models_py3 import DeletedAccountPropertiesAutoGenerated from ._models_py3 import DimensionProperties from ._models_py3 import ErrorModel from ._models_py3 import ErrorResponseModel @@ -40,14 +38,18 @@ from ._models_py3 import PrivateEndpointConnectionList from ._models_py3 import PrivateLinkResource from ._models_py3 import PrivateLinkResourceList + from ._models_py3 import PrivateLinkResourceProperties from ._models_py3 import PrivateLinkServiceConnectionState from ._models_py3 import ProxyResource + from ._models_py3 import SystemData from ._models_py3 import TrackedResource + from ._models_py3 import TrackedResourceSystemData except (SyntaxError, ImportError): from ._models import AccessKeys # type: ignore from ._models import Account # type: ignore from ._models import AccountEndpoints # type: ignore from ._models import AccountList # type: ignore + from ._models import AccountProperties # type: ignore from ._models import AccountPropertiesEndpoints # type: ignore from ._models import AccountPropertiesManagedResources # type: ignore from ._models import AccountSku # type: ignore @@ -55,11 +57,8 @@ from ._models import CheckNameAvailabilityRequest # type: ignore from ._models import CheckNameAvailabilityResult # type: ignore from ._models import CloudConnectors # type: ignore + from ._models import CollectionAdminUpdate # type: ignore from ._models import DefaultAccountPayload # type: ignore - from ._models import DeletedAccount # type: ignore - from ._models import DeletedAccountList # type: ignore - from ._models import DeletedAccountProperties # type: ignore - from ._models import DeletedAccountPropertiesAutoGenerated # type: ignore from ._models import DimensionProperties # type: ignore from ._models import ErrorModel # type: ignore from ._models import ErrorResponseModel # type: ignore @@ -77,11 +76,16 @@ from ._models import PrivateEndpointConnectionList # type: ignore from ._models import PrivateLinkResource # type: ignore from ._models import PrivateLinkResourceList # type: ignore + from ._models import PrivateLinkResourceProperties # type: ignore from ._models import PrivateLinkServiceConnectionState # type: ignore from ._models import ProxyResource # type: ignore + from ._models import SystemData # type: ignore from ._models import TrackedResource # type: ignore + from ._models import TrackedResourceSystemData # type: ignore from ._purview_management_client_enums import ( + CreatedByType, + LastModifiedByType, Name, ProvisioningState, PublicNetworkAccess, @@ -96,6 +100,7 @@ 'Account', 'AccountEndpoints', 'AccountList', + 'AccountProperties', 'AccountPropertiesEndpoints', 'AccountPropertiesManagedResources', 'AccountSku', @@ -103,11 +108,8 @@ 'CheckNameAvailabilityRequest', 'CheckNameAvailabilityResult', 'CloudConnectors', + 'CollectionAdminUpdate', 'DefaultAccountPayload', - 'DeletedAccount', - 'DeletedAccountList', - 'DeletedAccountProperties', - 'DeletedAccountPropertiesAutoGenerated', 'DimensionProperties', 'ErrorModel', 'ErrorResponseModel', @@ -125,9 +127,14 @@ 'PrivateEndpointConnectionList', 'PrivateLinkResource', 'PrivateLinkResourceList', + 'PrivateLinkResourceProperties', 'PrivateLinkServiceConnectionState', 'ProxyResource', + 'SystemData', 'TrackedResource', + 'TrackedResourceSystemData', + 'CreatedByType', + 'LastModifiedByType', 'Name', 'ProvisioningState', 'PublicNetworkAccess', diff --git a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/models/_models.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/models/_models.py index 9e52cf2abfb5..b0e8450b34b1 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/models/_models.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/models/_models.py @@ -46,6 +46,8 @@ class TrackedResource(msrest.serialization.Model): :type location: str :ivar name: Gets or sets the name. :vartype name: str + :ivar system_data: Metadata pertaining to creation and last modification of the resource. + :vartype system_data: ~azure.mgmt.purview.models.TrackedResourceSystemData :param tags: A set of tags. Tags on the azure resource. :type tags: dict[str, str] :ivar type: Gets or sets the type. @@ -55,6 +57,7 @@ class TrackedResource(msrest.serialization.Model): _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, + 'system_data': {'readonly': True}, 'type': {'readonly': True}, } @@ -63,6 +66,7 @@ class TrackedResource(msrest.serialization.Model): 'identity': {'key': 'identity', 'type': 'Identity'}, 'location': {'key': 'location', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, + 'system_data': {'key': 'systemData', 'type': 'TrackedResourceSystemData'}, 'tags': {'key': 'tags', 'type': '{str}'}, 'type': {'key': 'type', 'type': 'str'}, } @@ -76,6 +80,7 @@ def __init__( self.identity = kwargs.get('identity', None) self.location = kwargs.get('location', None) self.name = None + self.system_data = None self.tags = kwargs.get('tags', None) self.type = None @@ -93,6 +98,8 @@ class Account(TrackedResource): :type location: str :ivar name: Gets or sets the name. :vartype name: str + :ivar system_data: Metadata pertaining to creation and last modification of the resource. + :vartype system_data: ~azure.mgmt.purview.models.TrackedResourceSystemData :param tags: A set of tags. Tags on the azure resource. :type tags: dict[str, str] :ivar type: Gets or sets the type. @@ -109,26 +116,29 @@ class Account(TrackedResource): :ivar created_by_object_id: Gets the creators of the entity's object id. :vartype created_by_object_id: str :ivar endpoints: The URIs that are the public endpoints of the account. - :vartype endpoints: ~azure.mgmt.purview.models.AccountEndpoints + :vartype endpoints: ~azure.mgmt.purview.models.AccountPropertiesEndpoints :ivar friendly_name: Gets or sets the friendly name. :vartype friendly_name: str + :param managed_resource_group_name: Gets or sets the managed resource group name. + :type managed_resource_group_name: str :ivar managed_resources: Gets the resource identifiers of the managed resources. - :vartype managed_resources: ~azure.mgmt.purview.models.ManagedResources + :vartype managed_resources: ~azure.mgmt.purview.models.AccountPropertiesManagedResources :ivar private_endpoint_connections: Gets the private endpoint connections information. :vartype private_endpoint_connections: list[~azure.mgmt.purview.models.PrivateEndpointConnection] :ivar provisioning_state: Gets or sets the state of the provisioning. Possible values include: "Unknown", "Creating", "Moving", "Deleting", "SoftDeleting", "SoftDeleted", "Failed", - "Succeeded". + "Succeeded", "Canceled". :vartype provisioning_state: str or ~azure.mgmt.purview.models.ProvisioningState :param public_network_access: Gets or sets the public network access. Possible values include: - "NotSpecified", "Enabled", "Disabled". + "NotSpecified", "Enabled", "Disabled". Default value: "Enabled". :type public_network_access: str or ~azure.mgmt.purview.models.PublicNetworkAccess """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, + 'system_data': {'readonly': True}, 'type': {'readonly': True}, 'created_at': {'readonly': True}, 'created_by': {'readonly': True}, @@ -145,6 +155,7 @@ class Account(TrackedResource): 'identity': {'key': 'identity', 'type': 'Identity'}, 'location': {'key': 'location', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, + 'system_data': {'key': 'systemData', 'type': 'TrackedResourceSystemData'}, 'tags': {'key': 'tags', 'type': '{str}'}, 'type': {'key': 'type', 'type': 'str'}, 'sku': {'key': 'sku', 'type': 'AccountSku'}, @@ -152,9 +163,10 @@ class Account(TrackedResource): 'created_at': {'key': 'properties.createdAt', 'type': 'iso-8601'}, 'created_by': {'key': 'properties.createdBy', 'type': 'str'}, 'created_by_object_id': {'key': 'properties.createdByObjectId', 'type': 'str'}, - 'endpoints': {'key': 'properties.endpoints', 'type': 'AccountEndpoints'}, + 'endpoints': {'key': 'properties.endpoints', 'type': 'AccountPropertiesEndpoints'}, 'friendly_name': {'key': 'properties.friendlyName', 'type': 'str'}, - 'managed_resources': {'key': 'properties.managedResources', 'type': 'ManagedResources'}, + 'managed_resource_group_name': {'key': 'properties.managedResourceGroupName', 'type': 'str'}, + 'managed_resources': {'key': 'properties.managedResources', 'type': 'AccountPropertiesManagedResources'}, 'private_endpoint_connections': {'key': 'properties.privateEndpointConnections', 'type': '[PrivateEndpointConnection]'}, 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 'public_network_access': {'key': 'properties.publicNetworkAccess', 'type': 'str'}, @@ -172,10 +184,11 @@ def __init__( self.created_by_object_id = None self.endpoints = None self.friendly_name = None + self.managed_resource_group_name = kwargs.get('managed_resource_group_name', None) self.managed_resources = None self.private_endpoint_connections = None self.provisioning_state = None - self.public_network_access = kwargs.get('public_network_access', None) + self.public_network_access = kwargs.get('public_network_access', "Enabled") class AccountEndpoints(msrest.serialization.Model): @@ -246,6 +259,83 @@ def __init__( self.value = kwargs['value'] +class AccountProperties(msrest.serialization.Model): + """The account properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param cloud_connectors: Cloud connectors. + External cloud identifier used as part of scanning configuration. + :type cloud_connectors: ~azure.mgmt.purview.models.CloudConnectors + :ivar created_at: Gets the time at which the entity was created. + :vartype created_at: ~datetime.datetime + :ivar created_by: Gets the creator of the entity. + :vartype created_by: str + :ivar created_by_object_id: Gets the creators of the entity's object id. + :vartype created_by_object_id: str + :ivar endpoints: The URIs that are the public endpoints of the account. + :vartype endpoints: ~azure.mgmt.purview.models.AccountPropertiesEndpoints + :ivar friendly_name: Gets or sets the friendly name. + :vartype friendly_name: str + :param managed_resource_group_name: Gets or sets the managed resource group name. + :type managed_resource_group_name: str + :ivar managed_resources: Gets the resource identifiers of the managed resources. + :vartype managed_resources: ~azure.mgmt.purview.models.AccountPropertiesManagedResources + :ivar private_endpoint_connections: Gets the private endpoint connections information. + :vartype private_endpoint_connections: + list[~azure.mgmt.purview.models.PrivateEndpointConnection] + :ivar provisioning_state: Gets or sets the state of the provisioning. Possible values include: + "Unknown", "Creating", "Moving", "Deleting", "SoftDeleting", "SoftDeleted", "Failed", + "Succeeded", "Canceled". + :vartype provisioning_state: str or ~azure.mgmt.purview.models.ProvisioningState + :param public_network_access: Gets or sets the public network access. Possible values include: + "NotSpecified", "Enabled", "Disabled". Default value: "Enabled". + :type public_network_access: str or ~azure.mgmt.purview.models.PublicNetworkAccess + """ + + _validation = { + 'created_at': {'readonly': True}, + 'created_by': {'readonly': True}, + 'created_by_object_id': {'readonly': True}, + 'endpoints': {'readonly': True}, + 'friendly_name': {'readonly': True}, + 'managed_resources': {'readonly': True}, + 'private_endpoint_connections': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'cloud_connectors': {'key': 'cloudConnectors', 'type': 'CloudConnectors'}, + 'created_at': {'key': 'createdAt', 'type': 'iso-8601'}, + 'created_by': {'key': 'createdBy', 'type': 'str'}, + 'created_by_object_id': {'key': 'createdByObjectId', 'type': 'str'}, + 'endpoints': {'key': 'endpoints', 'type': 'AccountPropertiesEndpoints'}, + 'friendly_name': {'key': 'friendlyName', 'type': 'str'}, + 'managed_resource_group_name': {'key': 'managedResourceGroupName', 'type': 'str'}, + 'managed_resources': {'key': 'managedResources', 'type': 'AccountPropertiesManagedResources'}, + 'private_endpoint_connections': {'key': 'privateEndpointConnections', 'type': '[PrivateEndpointConnection]'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'public_network_access': {'key': 'publicNetworkAccess', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AccountProperties, self).__init__(**kwargs) + self.cloud_connectors = kwargs.get('cloud_connectors', None) + self.created_at = None + self.created_by = None + self.created_by_object_id = None + self.endpoints = None + self.friendly_name = None + self.managed_resource_group_name = kwargs.get('managed_resource_group_name', None) + self.managed_resources = None + self.private_endpoint_connections = None + self.provisioning_state = None + self.public_network_access = kwargs.get('public_network_access', "Enabled") + + class AccountPropertiesEndpoints(AccountEndpoints): """The URIs that are the public endpoints of the account. @@ -373,60 +463,15 @@ def __init__( class AccountUpdateParameters(msrest.serialization.Model): """The account update properties. - Variables are only populated by the server, and will be ignored when sending a request. - + :param properties: The account properties. + :type properties: ~azure.mgmt.purview.models.AccountProperties :param tags: A set of tags. Tags on the azure resource. :type tags: dict[str, str] - :param cloud_connectors: Cloud connectors. - External cloud identifier used as part of scanning configuration. - :type cloud_connectors: ~azure.mgmt.purview.models.CloudConnectors - :ivar created_at: Gets the time at which the entity was created. - :vartype created_at: ~datetime.datetime - :ivar created_by: Gets the creator of the entity. - :vartype created_by: str - :ivar created_by_object_id: Gets the creators of the entity's object id. - :vartype created_by_object_id: str - :ivar endpoints: The URIs that are the public endpoints of the account. - :vartype endpoints: ~azure.mgmt.purview.models.AccountEndpoints - :ivar friendly_name: Gets or sets the friendly name. - :vartype friendly_name: str - :ivar managed_resources: Gets the resource identifiers of the managed resources. - :vartype managed_resources: ~azure.mgmt.purview.models.ManagedResources - :ivar private_endpoint_connections: Gets the private endpoint connections information. - :vartype private_endpoint_connections: - list[~azure.mgmt.purview.models.PrivateEndpointConnection] - :ivar provisioning_state: Gets or sets the state of the provisioning. Possible values include: - "Unknown", "Creating", "Moving", "Deleting", "SoftDeleting", "SoftDeleted", "Failed", - "Succeeded". - :vartype provisioning_state: str or ~azure.mgmt.purview.models.ProvisioningState - :param public_network_access: Gets or sets the public network access. Possible values include: - "NotSpecified", "Enabled", "Disabled". - :type public_network_access: str or ~azure.mgmt.purview.models.PublicNetworkAccess """ - _validation = { - 'created_at': {'readonly': True}, - 'created_by': {'readonly': True}, - 'created_by_object_id': {'readonly': True}, - 'endpoints': {'readonly': True}, - 'friendly_name': {'readonly': True}, - 'managed_resources': {'readonly': True}, - 'private_endpoint_connections': {'readonly': True}, - 'provisioning_state': {'readonly': True}, - } - _attribute_map = { + 'properties': {'key': 'properties', 'type': 'AccountProperties'}, 'tags': {'key': 'tags', 'type': '{str}'}, - 'cloud_connectors': {'key': 'properties.cloudConnectors', 'type': 'CloudConnectors'}, - 'created_at': {'key': 'properties.createdAt', 'type': 'iso-8601'}, - 'created_by': {'key': 'properties.createdBy', 'type': 'str'}, - 'created_by_object_id': {'key': 'properties.createdByObjectId', 'type': 'str'}, - 'endpoints': {'key': 'properties.endpoints', 'type': 'AccountEndpoints'}, - 'friendly_name': {'key': 'properties.friendlyName', 'type': 'str'}, - 'managed_resources': {'key': 'properties.managedResources', 'type': 'ManagedResources'}, - 'private_endpoint_connections': {'key': 'properties.privateEndpointConnections', 'type': '[PrivateEndpointConnection]'}, - 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, - 'public_network_access': {'key': 'properties.publicNetworkAccess', 'type': 'str'}, } def __init__( @@ -434,17 +479,8 @@ def __init__( **kwargs ): super(AccountUpdateParameters, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) self.tags = kwargs.get('tags', None) - self.cloud_connectors = kwargs.get('cloud_connectors', None) - self.created_at = None - self.created_by = None - self.created_by_object_id = None - self.endpoints = None - self.friendly_name = None - self.managed_resources = None - self.private_endpoint_connections = None - self.provisioning_state = None - self.public_network_access = kwargs.get('public_network_access', None) class CheckNameAvailabilityRequest(msrest.serialization.Model): @@ -499,7 +535,7 @@ def __init__( class CloudConnectors(msrest.serialization.Model): - """Properties for configuring third party cloud connections. + """CloudConnectors. Variables are only populated by the server, and will be ignored when sending a request. @@ -524,6 +560,25 @@ def __init__( self.aws_external_id = None +class CollectionAdminUpdate(msrest.serialization.Model): + """Collection administrator update. + + :param object_id: Gets or sets the object identifier of the admin. + :type object_id: str + """ + + _attribute_map = { + 'object_id': {'key': 'objectId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(CollectionAdminUpdate, self).__init__(**kwargs) + self.object_id = kwargs.get('object_id', None) + + class DefaultAccountPayload(msrest.serialization.Model): """Payload to get and set the default account in the given scope. @@ -564,230 +619,6 @@ def __init__( self.subscription_id = kwargs.get('subscription_id', None) -class ProxyResource(msrest.serialization.Model): - """Proxy Azure Resource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Gets or sets the identifier. - :vartype id: str - :ivar name: Gets or sets the name. - :vartype name: str - :ivar type: Gets or sets the type. - :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) - self.id = None - self.name = None - self.type = None - - -class DeletedAccount(ProxyResource): - """Soft Deleted Account resource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Gets or sets the identifier. - :vartype id: str - :ivar name: Gets or sets the name. - :vartype name: str - :ivar type: Gets or sets the type. - :vartype type: str - :ivar account_id: Gets the account identifier associated with resource. - :vartype account_id: str - :ivar deleted_by: Gets the user identifier that deleted resource. - :vartype deleted_by: str - :ivar deletion_date: Gets the time at which the resource was soft deleted. - :vartype deletion_date: ~datetime.datetime - :ivar location: Gets the resource location. - :vartype location: str - :ivar scheduled_purge_date: Gets the scheduled purge datetime. - :vartype scheduled_purge_date: ~datetime.datetime - :ivar tags: A set of tags. Gets the account tags. - :vartype tags: dict[str, str] - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'account_id': {'readonly': True}, - 'deleted_by': {'readonly': True}, - 'deletion_date': {'readonly': True}, - 'location': {'readonly': True}, - 'scheduled_purge_date': {'readonly': True}, - 'tags': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'account_id': {'key': 'properties.accountId', 'type': 'str'}, - 'deleted_by': {'key': 'properties.deletedBy', 'type': 'str'}, - 'deletion_date': {'key': 'properties.deletionDate', 'type': 'iso-8601'}, - 'location': {'key': 'properties.location', 'type': 'str'}, - 'scheduled_purge_date': {'key': 'properties.scheduledPurgeDate', 'type': 'iso-8601'}, - 'tags': {'key': 'properties.tags', 'type': '{str}'}, - } - - def __init__( - self, - **kwargs - ): - super(DeletedAccount, self).__init__(**kwargs) - self.account_id = None - self.deleted_by = None - self.deletion_date = None - self.location = None - self.scheduled_purge_date = None - self.tags = None - - -class DeletedAccountList(msrest.serialization.Model): - """Paged list of soft deleted account resources. - - All required parameters must be populated in order to send to Azure. - - :param count: Total item count. - :type count: long - :param next_link: The Url of next result page. - :type next_link: str - :param value: Required. Collection of items of type results. - :type value: list[~azure.mgmt.purview.models.DeletedAccount] - """ - - _validation = { - 'value': {'required': True}, - } - - _attribute_map = { - 'count': {'key': 'count', 'type': 'long'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - 'value': {'key': 'value', 'type': '[DeletedAccount]'}, - } - - def __init__( - self, - **kwargs - ): - super(DeletedAccountList, self).__init__(**kwargs) - self.count = kwargs.get('count', None) - self.next_link = kwargs.get('next_link', None) - self.value = kwargs['value'] - - -class DeletedAccountProperties(msrest.serialization.Model): - """The soft deleted account properties. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar account_id: Gets the account identifier associated with resource. - :vartype account_id: str - :ivar deleted_by: Gets the user identifier that deleted resource. - :vartype deleted_by: str - :ivar deletion_date: Gets the time at which the resource was soft deleted. - :vartype deletion_date: ~datetime.datetime - :ivar location: Gets the resource location. - :vartype location: str - :ivar scheduled_purge_date: Gets the scheduled purge datetime. - :vartype scheduled_purge_date: ~datetime.datetime - :ivar tags: A set of tags. Gets the account tags. - :vartype tags: dict[str, str] - """ - - _validation = { - 'account_id': {'readonly': True}, - 'deleted_by': {'readonly': True}, - 'deletion_date': {'readonly': True}, - 'location': {'readonly': True}, - 'scheduled_purge_date': {'readonly': True}, - 'tags': {'readonly': True}, - } - - _attribute_map = { - 'account_id': {'key': 'accountId', 'type': 'str'}, - 'deleted_by': {'key': 'deletedBy', 'type': 'str'}, - 'deletion_date': {'key': 'deletionDate', 'type': 'iso-8601'}, - 'location': {'key': 'location', 'type': 'str'}, - 'scheduled_purge_date': {'key': 'scheduledPurgeDate', 'type': 'iso-8601'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - } - - def __init__( - self, - **kwargs - ): - super(DeletedAccountProperties, self).__init__(**kwargs) - self.account_id = None - self.deleted_by = None - self.deletion_date = None - self.location = None - self.scheduled_purge_date = None - self.tags = None - - -class DeletedAccountPropertiesAutoGenerated(DeletedAccountProperties): - """Gets or sets the properties. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar account_id: Gets the account identifier associated with resource. - :vartype account_id: str - :ivar deleted_by: Gets the user identifier that deleted resource. - :vartype deleted_by: str - :ivar deletion_date: Gets the time at which the resource was soft deleted. - :vartype deletion_date: ~datetime.datetime - :ivar location: Gets the resource location. - :vartype location: str - :ivar scheduled_purge_date: Gets the scheduled purge datetime. - :vartype scheduled_purge_date: ~datetime.datetime - :ivar tags: A set of tags. Gets the account tags. - :vartype tags: dict[str, str] - """ - - _validation = { - 'account_id': {'readonly': True}, - 'deleted_by': {'readonly': True}, - 'deletion_date': {'readonly': True}, - 'location': {'readonly': True}, - 'scheduled_purge_date': {'readonly': True}, - 'tags': {'readonly': True}, - } - - _attribute_map = { - 'account_id': {'key': 'accountId', 'type': 'str'}, - 'deleted_by': {'key': 'deletedBy', 'type': 'str'}, - 'deletion_date': {'key': 'deletionDate', 'type': 'iso-8601'}, - 'location': {'key': 'location', 'type': 'str'}, - 'scheduled_purge_date': {'key': 'scheduledPurgeDate', 'type': 'iso-8601'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - } - - def __init__( - self, - **kwargs - ): - super(DeletedAccountPropertiesAutoGenerated, self).__init__(**kwargs) - - class DimensionProperties(msrest.serialization.Model): """properties for dimension. @@ -862,7 +693,7 @@ class ErrorResponseModel(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar error: Gets or sets the error. - :vartype error: ~azure.mgmt.purview.models.ErrorModel + :vartype error: ~azure.mgmt.purview.models.ErrorResponseModelError """ _validation = { @@ -870,7 +701,7 @@ class ErrorResponseModel(msrest.serialization.Model): } _attribute_map = { - 'error': {'key': 'error', 'type': 'ErrorModel'}, + 'error': {'key': 'error', 'type': 'ErrorResponseModelError'}, } def __init__( @@ -1185,6 +1016,41 @@ def __init__( self.id = kwargs.get('id', None) +class ProxyResource(msrest.serialization.Model): + """Proxy Azure Resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Gets or sets the identifier. + :vartype id: str + :ivar name: Gets or sets the name. + :vartype name: str + :ivar type: Gets or sets the type. + :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) + self.id = None + self.name = None + self.type = None + + class PrivateEndpointConnection(ProxyResource): """A private endpoint connection class. @@ -1264,42 +1130,33 @@ def __init__( self.value = kwargs['value'] -class PrivateLinkResource(ProxyResource): +class PrivateLinkResource(msrest.serialization.Model): """A privately linkable resource. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Gets or sets the identifier. + :ivar id: The private link resource identifier. :vartype id: str - :ivar name: Gets or sets the name. + :ivar name: The private link resource name. :vartype name: str - :ivar type: Gets or sets the type. + :ivar properties: The private link resource properties. + :vartype properties: ~azure.mgmt.purview.models.PrivateLinkResourceProperties + :ivar type: The private link resource type. :vartype type: str - :ivar group_id: The private link resource group identifier. - :vartype group_id: str - :ivar required_members: This translates to how many Private IPs should be created for each - privately linkable resource. - :vartype required_members: list[str] - :ivar required_zone_names: The required zone names for private link resource. - :vartype required_zone_names: list[str] """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, + 'properties': {'readonly': True}, 'type': {'readonly': True}, - 'group_id': {'readonly': True}, - 'required_members': {'readonly': True}, - 'required_zone_names': {'readonly': True}, } _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'PrivateLinkResourceProperties'}, 'type': {'key': 'type', 'type': 'str'}, - 'group_id': {'key': 'properties.groupId', 'type': 'str'}, - 'required_members': {'key': 'properties.requiredMembers', 'type': '[str]'}, - 'required_zone_names': {'key': 'properties.requiredZoneNames', 'type': '[str]'}, } def __init__( @@ -1307,9 +1164,10 @@ def __init__( **kwargs ): super(PrivateLinkResource, self).__init__(**kwargs) - self.group_id = None - self.required_members = None - self.required_zone_names = None + self.id = None + self.name = None + self.properties = None + self.type = None class PrivateLinkResourceList(msrest.serialization.Model): @@ -1345,6 +1203,42 @@ def __init__( self.value = kwargs['value'] +class PrivateLinkResourceProperties(msrest.serialization.Model): + """A privately linkable resource properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar group_id: The private link resource group identifier. + :vartype group_id: str + :ivar required_members: This translates to how many Private IPs should be created for each + privately linkable resource. + :vartype required_members: list[str] + :ivar required_zone_names: The required zone names for private link resource. + :vartype required_zone_names: list[str] + """ + + _validation = { + 'group_id': {'readonly': True}, + 'required_members': {'readonly': True}, + 'required_zone_names': {'readonly': True}, + } + + _attribute_map = { + 'group_id': {'key': 'groupId', 'type': 'str'}, + 'required_members': {'key': 'requiredMembers', 'type': '[str]'}, + 'required_zone_names': {'key': 'requiredZoneNames', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkResourceProperties, self).__init__(**kwargs) + self.group_id = None + self.required_members = None + self.required_zone_names = None + + class PrivateLinkServiceConnectionState(msrest.serialization.Model): """The private link service connection state. @@ -1371,3 +1265,101 @@ def __init__( self.actions_required = kwargs.get('actions_required', None) self.description = kwargs.get('description', None) self.status = kwargs.get('status', None) + + +class SystemData(msrest.serialization.Model): + """Metadata pertaining to creation and last modification of the resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar created_at: The timestamp of resource creation (UTC). + :vartype created_at: ~datetime.datetime + :ivar created_by: The identity that created the resource. + :vartype created_by: str + :ivar created_by_type: The type of identity that created the resource. Possible values include: + "User", "Application", "ManagedIdentity", "Key". + :vartype created_by_type: str or ~azure.mgmt.purview.models.CreatedByType + :ivar last_modified_at: The timestamp of the last modification the resource (UTC). + :vartype last_modified_at: ~datetime.datetime + :ivar last_modified_by: The identity that last modified the resource. + :vartype last_modified_by: str + :ivar last_modified_by_type: The type of identity that last modified the resource. Possible + values include: "User", "Application", "ManagedIdentity", "Key". + :vartype last_modified_by_type: str or ~azure.mgmt.purview.models.LastModifiedByType + """ + + _validation = { + 'created_at': {'readonly': True}, + 'created_by': {'readonly': True}, + 'created_by_type': {'readonly': True}, + 'last_modified_at': {'readonly': True}, + 'last_modified_by': {'readonly': True}, + 'last_modified_by_type': {'readonly': True}, + } + + _attribute_map = { + 'created_at': {'key': 'createdAt', 'type': 'iso-8601'}, + 'created_by': {'key': 'createdBy', 'type': 'str'}, + 'created_by_type': {'key': 'createdByType', 'type': 'str'}, + 'last_modified_at': {'key': 'lastModifiedAt', 'type': 'iso-8601'}, + 'last_modified_by': {'key': 'lastModifiedBy', 'type': 'str'}, + 'last_modified_by_type': {'key': 'lastModifiedByType', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SystemData, self).__init__(**kwargs) + self.created_at = None + self.created_by = None + self.created_by_type = None + self.last_modified_at = None + self.last_modified_by = None + self.last_modified_by_type = None + + +class TrackedResourceSystemData(SystemData): + """Metadata pertaining to creation and last modification of the resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar created_at: The timestamp of resource creation (UTC). + :vartype created_at: ~datetime.datetime + :ivar created_by: The identity that created the resource. + :vartype created_by: str + :ivar created_by_type: The type of identity that created the resource. Possible values include: + "User", "Application", "ManagedIdentity", "Key". + :vartype created_by_type: str or ~azure.mgmt.purview.models.CreatedByType + :ivar last_modified_at: The timestamp of the last modification the resource (UTC). + :vartype last_modified_at: ~datetime.datetime + :ivar last_modified_by: The identity that last modified the resource. + :vartype last_modified_by: str + :ivar last_modified_by_type: The type of identity that last modified the resource. Possible + values include: "User", "Application", "ManagedIdentity", "Key". + :vartype last_modified_by_type: str or ~azure.mgmt.purview.models.LastModifiedByType + """ + + _validation = { + 'created_at': {'readonly': True}, + 'created_by': {'readonly': True}, + 'created_by_type': {'readonly': True}, + 'last_modified_at': {'readonly': True}, + 'last_modified_by': {'readonly': True}, + 'last_modified_by_type': {'readonly': True}, + } + + _attribute_map = { + 'created_at': {'key': 'createdAt', 'type': 'iso-8601'}, + 'created_by': {'key': 'createdBy', 'type': 'str'}, + 'created_by_type': {'key': 'createdByType', 'type': 'str'}, + 'last_modified_at': {'key': 'lastModifiedAt', 'type': 'iso-8601'}, + 'last_modified_by': {'key': 'lastModifiedBy', 'type': 'str'}, + 'last_modified_by_type': {'key': 'lastModifiedByType', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(TrackedResourceSystemData, self).__init__(**kwargs) diff --git a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/models/_models_py3.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/models/_models_py3.py index 43cbc94109bb..53e98175c4f4 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/models/_models_py3.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/models/_models_py3.py @@ -53,6 +53,8 @@ class TrackedResource(msrest.serialization.Model): :type location: str :ivar name: Gets or sets the name. :vartype name: str + :ivar system_data: Metadata pertaining to creation and last modification of the resource. + :vartype system_data: ~azure.mgmt.purview.models.TrackedResourceSystemData :param tags: A set of tags. Tags on the azure resource. :type tags: dict[str, str] :ivar type: Gets or sets the type. @@ -62,6 +64,7 @@ class TrackedResource(msrest.serialization.Model): _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, + 'system_data': {'readonly': True}, 'type': {'readonly': True}, } @@ -70,6 +73,7 @@ class TrackedResource(msrest.serialization.Model): 'identity': {'key': 'identity', 'type': 'Identity'}, 'location': {'key': 'location', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, + 'system_data': {'key': 'systemData', 'type': 'TrackedResourceSystemData'}, 'tags': {'key': 'tags', 'type': '{str}'}, 'type': {'key': 'type', 'type': 'str'}, } @@ -87,6 +91,7 @@ def __init__( self.identity = identity self.location = location self.name = None + self.system_data = None self.tags = tags self.type = None @@ -104,6 +109,8 @@ class Account(TrackedResource): :type location: str :ivar name: Gets or sets the name. :vartype name: str + :ivar system_data: Metadata pertaining to creation and last modification of the resource. + :vartype system_data: ~azure.mgmt.purview.models.TrackedResourceSystemData :param tags: A set of tags. Tags on the azure resource. :type tags: dict[str, str] :ivar type: Gets or sets the type. @@ -120,26 +127,29 @@ class Account(TrackedResource): :ivar created_by_object_id: Gets the creators of the entity's object id. :vartype created_by_object_id: str :ivar endpoints: The URIs that are the public endpoints of the account. - :vartype endpoints: ~azure.mgmt.purview.models.AccountEndpoints + :vartype endpoints: ~azure.mgmt.purview.models.AccountPropertiesEndpoints :ivar friendly_name: Gets or sets the friendly name. :vartype friendly_name: str + :param managed_resource_group_name: Gets or sets the managed resource group name. + :type managed_resource_group_name: str :ivar managed_resources: Gets the resource identifiers of the managed resources. - :vartype managed_resources: ~azure.mgmt.purview.models.ManagedResources + :vartype managed_resources: ~azure.mgmt.purview.models.AccountPropertiesManagedResources :ivar private_endpoint_connections: Gets the private endpoint connections information. :vartype private_endpoint_connections: list[~azure.mgmt.purview.models.PrivateEndpointConnection] :ivar provisioning_state: Gets or sets the state of the provisioning. Possible values include: "Unknown", "Creating", "Moving", "Deleting", "SoftDeleting", "SoftDeleted", "Failed", - "Succeeded". + "Succeeded", "Canceled". :vartype provisioning_state: str or ~azure.mgmt.purview.models.ProvisioningState :param public_network_access: Gets or sets the public network access. Possible values include: - "NotSpecified", "Enabled", "Disabled". + "NotSpecified", "Enabled", "Disabled". Default value: "Enabled". :type public_network_access: str or ~azure.mgmt.purview.models.PublicNetworkAccess """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, + 'system_data': {'readonly': True}, 'type': {'readonly': True}, 'created_at': {'readonly': True}, 'created_by': {'readonly': True}, @@ -156,6 +166,7 @@ class Account(TrackedResource): 'identity': {'key': 'identity', 'type': 'Identity'}, 'location': {'key': 'location', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, + 'system_data': {'key': 'systemData', 'type': 'TrackedResourceSystemData'}, 'tags': {'key': 'tags', 'type': '{str}'}, 'type': {'key': 'type', 'type': 'str'}, 'sku': {'key': 'sku', 'type': 'AccountSku'}, @@ -163,9 +174,10 @@ class Account(TrackedResource): 'created_at': {'key': 'properties.createdAt', 'type': 'iso-8601'}, 'created_by': {'key': 'properties.createdBy', 'type': 'str'}, 'created_by_object_id': {'key': 'properties.createdByObjectId', 'type': 'str'}, - 'endpoints': {'key': 'properties.endpoints', 'type': 'AccountEndpoints'}, + 'endpoints': {'key': 'properties.endpoints', 'type': 'AccountPropertiesEndpoints'}, 'friendly_name': {'key': 'properties.friendlyName', 'type': 'str'}, - 'managed_resources': {'key': 'properties.managedResources', 'type': 'ManagedResources'}, + 'managed_resource_group_name': {'key': 'properties.managedResourceGroupName', 'type': 'str'}, + 'managed_resources': {'key': 'properties.managedResources', 'type': 'AccountPropertiesManagedResources'}, 'private_endpoint_connections': {'key': 'properties.privateEndpointConnections', 'type': '[PrivateEndpointConnection]'}, 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 'public_network_access': {'key': 'properties.publicNetworkAccess', 'type': 'str'}, @@ -179,7 +191,8 @@ def __init__( tags: Optional[Dict[str, str]] = None, sku: Optional["AccountSku"] = None, cloud_connectors: Optional["CloudConnectors"] = None, - public_network_access: Optional[Union[str, "PublicNetworkAccess"]] = None, + managed_resource_group_name: Optional[str] = None, + public_network_access: Optional[Union[str, "PublicNetworkAccess"]] = "Enabled", **kwargs ): super(Account, self).__init__(identity=identity, location=location, tags=tags, **kwargs) @@ -190,6 +203,7 @@ def __init__( self.created_by_object_id = None self.endpoints = None self.friendly_name = None + self.managed_resource_group_name = managed_resource_group_name self.managed_resources = None self.private_endpoint_connections = None self.provisioning_state = None @@ -268,6 +282,87 @@ def __init__( self.value = value +class AccountProperties(msrest.serialization.Model): + """The account properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param cloud_connectors: Cloud connectors. + External cloud identifier used as part of scanning configuration. + :type cloud_connectors: ~azure.mgmt.purview.models.CloudConnectors + :ivar created_at: Gets the time at which the entity was created. + :vartype created_at: ~datetime.datetime + :ivar created_by: Gets the creator of the entity. + :vartype created_by: str + :ivar created_by_object_id: Gets the creators of the entity's object id. + :vartype created_by_object_id: str + :ivar endpoints: The URIs that are the public endpoints of the account. + :vartype endpoints: ~azure.mgmt.purview.models.AccountPropertiesEndpoints + :ivar friendly_name: Gets or sets the friendly name. + :vartype friendly_name: str + :param managed_resource_group_name: Gets or sets the managed resource group name. + :type managed_resource_group_name: str + :ivar managed_resources: Gets the resource identifiers of the managed resources. + :vartype managed_resources: ~azure.mgmt.purview.models.AccountPropertiesManagedResources + :ivar private_endpoint_connections: Gets the private endpoint connections information. + :vartype private_endpoint_connections: + list[~azure.mgmt.purview.models.PrivateEndpointConnection] + :ivar provisioning_state: Gets or sets the state of the provisioning. Possible values include: + "Unknown", "Creating", "Moving", "Deleting", "SoftDeleting", "SoftDeleted", "Failed", + "Succeeded", "Canceled". + :vartype provisioning_state: str or ~azure.mgmt.purview.models.ProvisioningState + :param public_network_access: Gets or sets the public network access. Possible values include: + "NotSpecified", "Enabled", "Disabled". Default value: "Enabled". + :type public_network_access: str or ~azure.mgmt.purview.models.PublicNetworkAccess + """ + + _validation = { + 'created_at': {'readonly': True}, + 'created_by': {'readonly': True}, + 'created_by_object_id': {'readonly': True}, + 'endpoints': {'readonly': True}, + 'friendly_name': {'readonly': True}, + 'managed_resources': {'readonly': True}, + 'private_endpoint_connections': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'cloud_connectors': {'key': 'cloudConnectors', 'type': 'CloudConnectors'}, + 'created_at': {'key': 'createdAt', 'type': 'iso-8601'}, + 'created_by': {'key': 'createdBy', 'type': 'str'}, + 'created_by_object_id': {'key': 'createdByObjectId', 'type': 'str'}, + 'endpoints': {'key': 'endpoints', 'type': 'AccountPropertiesEndpoints'}, + 'friendly_name': {'key': 'friendlyName', 'type': 'str'}, + 'managed_resource_group_name': {'key': 'managedResourceGroupName', 'type': 'str'}, + 'managed_resources': {'key': 'managedResources', 'type': 'AccountPropertiesManagedResources'}, + 'private_endpoint_connections': {'key': 'privateEndpointConnections', 'type': '[PrivateEndpointConnection]'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'public_network_access': {'key': 'publicNetworkAccess', 'type': 'str'}, + } + + def __init__( + self, + *, + cloud_connectors: Optional["CloudConnectors"] = None, + managed_resource_group_name: Optional[str] = None, + public_network_access: Optional[Union[str, "PublicNetworkAccess"]] = "Enabled", + **kwargs + ): + super(AccountProperties, self).__init__(**kwargs) + self.cloud_connectors = cloud_connectors + self.created_at = None + self.created_by = None + self.created_by_object_id = None + self.endpoints = None + self.friendly_name = None + self.managed_resource_group_name = managed_resource_group_name + self.managed_resources = None + self.private_endpoint_connections = None + self.provisioning_state = None + self.public_network_access = public_network_access + + class AccountPropertiesEndpoints(AccountEndpoints): """The URIs that are the public endpoints of the account. @@ -398,82 +493,27 @@ def __init__( class AccountUpdateParameters(msrest.serialization.Model): """The account update properties. - Variables are only populated by the server, and will be ignored when sending a request. - + :param properties: The account properties. + :type properties: ~azure.mgmt.purview.models.AccountProperties :param tags: A set of tags. Tags on the azure resource. :type tags: dict[str, str] - :param cloud_connectors: Cloud connectors. - External cloud identifier used as part of scanning configuration. - :type cloud_connectors: ~azure.mgmt.purview.models.CloudConnectors - :ivar created_at: Gets the time at which the entity was created. - :vartype created_at: ~datetime.datetime - :ivar created_by: Gets the creator of the entity. - :vartype created_by: str - :ivar created_by_object_id: Gets the creators of the entity's object id. - :vartype created_by_object_id: str - :ivar endpoints: The URIs that are the public endpoints of the account. - :vartype endpoints: ~azure.mgmt.purview.models.AccountEndpoints - :ivar friendly_name: Gets or sets the friendly name. - :vartype friendly_name: str - :ivar managed_resources: Gets the resource identifiers of the managed resources. - :vartype managed_resources: ~azure.mgmt.purview.models.ManagedResources - :ivar private_endpoint_connections: Gets the private endpoint connections information. - :vartype private_endpoint_connections: - list[~azure.mgmt.purview.models.PrivateEndpointConnection] - :ivar provisioning_state: Gets or sets the state of the provisioning. Possible values include: - "Unknown", "Creating", "Moving", "Deleting", "SoftDeleting", "SoftDeleted", "Failed", - "Succeeded". - :vartype provisioning_state: str or ~azure.mgmt.purview.models.ProvisioningState - :param public_network_access: Gets or sets the public network access. Possible values include: - "NotSpecified", "Enabled", "Disabled". - :type public_network_access: str or ~azure.mgmt.purview.models.PublicNetworkAccess """ - _validation = { - 'created_at': {'readonly': True}, - 'created_by': {'readonly': True}, - 'created_by_object_id': {'readonly': True}, - 'endpoints': {'readonly': True}, - 'friendly_name': {'readonly': True}, - 'managed_resources': {'readonly': True}, - 'private_endpoint_connections': {'readonly': True}, - 'provisioning_state': {'readonly': True}, - } - _attribute_map = { + 'properties': {'key': 'properties', 'type': 'AccountProperties'}, 'tags': {'key': 'tags', 'type': '{str}'}, - 'cloud_connectors': {'key': 'properties.cloudConnectors', 'type': 'CloudConnectors'}, - 'created_at': {'key': 'properties.createdAt', 'type': 'iso-8601'}, - 'created_by': {'key': 'properties.createdBy', 'type': 'str'}, - 'created_by_object_id': {'key': 'properties.createdByObjectId', 'type': 'str'}, - 'endpoints': {'key': 'properties.endpoints', 'type': 'AccountEndpoints'}, - 'friendly_name': {'key': 'properties.friendlyName', 'type': 'str'}, - 'managed_resources': {'key': 'properties.managedResources', 'type': 'ManagedResources'}, - 'private_endpoint_connections': {'key': 'properties.privateEndpointConnections', 'type': '[PrivateEndpointConnection]'}, - 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, - 'public_network_access': {'key': 'properties.publicNetworkAccess', 'type': 'str'}, } def __init__( self, *, + properties: Optional["AccountProperties"] = None, tags: Optional[Dict[str, str]] = None, - cloud_connectors: Optional["CloudConnectors"] = None, - public_network_access: Optional[Union[str, "PublicNetworkAccess"]] = None, **kwargs ): super(AccountUpdateParameters, self).__init__(**kwargs) + self.properties = properties self.tags = tags - self.cloud_connectors = cloud_connectors - self.created_at = None - self.created_by = None - self.created_by_object_id = None - self.endpoints = None - self.friendly_name = None - self.managed_resources = None - self.private_endpoint_connections = None - self.provisioning_state = None - self.public_network_access = public_network_access class CheckNameAvailabilityRequest(msrest.serialization.Model): @@ -535,7 +575,7 @@ def __init__( class CloudConnectors(msrest.serialization.Model): - """Properties for configuring third party cloud connections. + """CloudConnectors. Variables are only populated by the server, and will be ignored when sending a request. @@ -560,6 +600,27 @@ def __init__( self.aws_external_id = None +class CollectionAdminUpdate(msrest.serialization.Model): + """Collection administrator update. + + :param object_id: Gets or sets the object identifier of the admin. + :type object_id: str + """ + + _attribute_map = { + 'object_id': {'key': 'objectId', 'type': 'str'}, + } + + def __init__( + self, + *, + object_id: Optional[str] = None, + **kwargs + ): + super(CollectionAdminUpdate, self).__init__(**kwargs) + self.object_id = object_id + + class DefaultAccountPayload(msrest.serialization.Model): """Payload to get and set the default account in the given scope. @@ -607,234 +668,6 @@ def __init__( self.subscription_id = subscription_id -class ProxyResource(msrest.serialization.Model): - """Proxy Azure Resource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Gets or sets the identifier. - :vartype id: str - :ivar name: Gets or sets the name. - :vartype name: str - :ivar type: Gets or sets the type. - :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) - self.id = None - self.name = None - self.type = None - - -class DeletedAccount(ProxyResource): - """Soft Deleted Account resource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Gets or sets the identifier. - :vartype id: str - :ivar name: Gets or sets the name. - :vartype name: str - :ivar type: Gets or sets the type. - :vartype type: str - :ivar account_id: Gets the account identifier associated with resource. - :vartype account_id: str - :ivar deleted_by: Gets the user identifier that deleted resource. - :vartype deleted_by: str - :ivar deletion_date: Gets the time at which the resource was soft deleted. - :vartype deletion_date: ~datetime.datetime - :ivar location: Gets the resource location. - :vartype location: str - :ivar scheduled_purge_date: Gets the scheduled purge datetime. - :vartype scheduled_purge_date: ~datetime.datetime - :ivar tags: A set of tags. Gets the account tags. - :vartype tags: dict[str, str] - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'account_id': {'readonly': True}, - 'deleted_by': {'readonly': True}, - 'deletion_date': {'readonly': True}, - 'location': {'readonly': True}, - 'scheduled_purge_date': {'readonly': True}, - 'tags': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'account_id': {'key': 'properties.accountId', 'type': 'str'}, - 'deleted_by': {'key': 'properties.deletedBy', 'type': 'str'}, - 'deletion_date': {'key': 'properties.deletionDate', 'type': 'iso-8601'}, - 'location': {'key': 'properties.location', 'type': 'str'}, - 'scheduled_purge_date': {'key': 'properties.scheduledPurgeDate', 'type': 'iso-8601'}, - 'tags': {'key': 'properties.tags', 'type': '{str}'}, - } - - def __init__( - self, - **kwargs - ): - super(DeletedAccount, self).__init__(**kwargs) - self.account_id = None - self.deleted_by = None - self.deletion_date = None - self.location = None - self.scheduled_purge_date = None - self.tags = None - - -class DeletedAccountList(msrest.serialization.Model): - """Paged list of soft deleted account resources. - - All required parameters must be populated in order to send to Azure. - - :param count: Total item count. - :type count: long - :param next_link: The Url of next result page. - :type next_link: str - :param value: Required. Collection of items of type results. - :type value: list[~azure.mgmt.purview.models.DeletedAccount] - """ - - _validation = { - 'value': {'required': True}, - } - - _attribute_map = { - 'count': {'key': 'count', 'type': 'long'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - 'value': {'key': 'value', 'type': '[DeletedAccount]'}, - } - - def __init__( - self, - *, - value: List["DeletedAccount"], - count: Optional[int] = None, - next_link: Optional[str] = None, - **kwargs - ): - super(DeletedAccountList, self).__init__(**kwargs) - self.count = count - self.next_link = next_link - self.value = value - - -class DeletedAccountProperties(msrest.serialization.Model): - """The soft deleted account properties. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar account_id: Gets the account identifier associated with resource. - :vartype account_id: str - :ivar deleted_by: Gets the user identifier that deleted resource. - :vartype deleted_by: str - :ivar deletion_date: Gets the time at which the resource was soft deleted. - :vartype deletion_date: ~datetime.datetime - :ivar location: Gets the resource location. - :vartype location: str - :ivar scheduled_purge_date: Gets the scheduled purge datetime. - :vartype scheduled_purge_date: ~datetime.datetime - :ivar tags: A set of tags. Gets the account tags. - :vartype tags: dict[str, str] - """ - - _validation = { - 'account_id': {'readonly': True}, - 'deleted_by': {'readonly': True}, - 'deletion_date': {'readonly': True}, - 'location': {'readonly': True}, - 'scheduled_purge_date': {'readonly': True}, - 'tags': {'readonly': True}, - } - - _attribute_map = { - 'account_id': {'key': 'accountId', 'type': 'str'}, - 'deleted_by': {'key': 'deletedBy', 'type': 'str'}, - 'deletion_date': {'key': 'deletionDate', 'type': 'iso-8601'}, - 'location': {'key': 'location', 'type': 'str'}, - 'scheduled_purge_date': {'key': 'scheduledPurgeDate', 'type': 'iso-8601'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - } - - def __init__( - self, - **kwargs - ): - super(DeletedAccountProperties, self).__init__(**kwargs) - self.account_id = None - self.deleted_by = None - self.deletion_date = None - self.location = None - self.scheduled_purge_date = None - self.tags = None - - -class DeletedAccountPropertiesAutoGenerated(DeletedAccountProperties): - """Gets or sets the properties. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar account_id: Gets the account identifier associated with resource. - :vartype account_id: str - :ivar deleted_by: Gets the user identifier that deleted resource. - :vartype deleted_by: str - :ivar deletion_date: Gets the time at which the resource was soft deleted. - :vartype deletion_date: ~datetime.datetime - :ivar location: Gets the resource location. - :vartype location: str - :ivar scheduled_purge_date: Gets the scheduled purge datetime. - :vartype scheduled_purge_date: ~datetime.datetime - :ivar tags: A set of tags. Gets the account tags. - :vartype tags: dict[str, str] - """ - - _validation = { - 'account_id': {'readonly': True}, - 'deleted_by': {'readonly': True}, - 'deletion_date': {'readonly': True}, - 'location': {'readonly': True}, - 'scheduled_purge_date': {'readonly': True}, - 'tags': {'readonly': True}, - } - - _attribute_map = { - 'account_id': {'key': 'accountId', 'type': 'str'}, - 'deleted_by': {'key': 'deletedBy', 'type': 'str'}, - 'deletion_date': {'key': 'deletionDate', 'type': 'iso-8601'}, - 'location': {'key': 'location', 'type': 'str'}, - 'scheduled_purge_date': {'key': 'scheduledPurgeDate', 'type': 'iso-8601'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - } - - def __init__( - self, - **kwargs - ): - super(DeletedAccountPropertiesAutoGenerated, self).__init__(**kwargs) - - class DimensionProperties(msrest.serialization.Model): """properties for dimension. @@ -913,7 +746,7 @@ class ErrorResponseModel(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar error: Gets or sets the error. - :vartype error: ~azure.mgmt.purview.models.ErrorModel + :vartype error: ~azure.mgmt.purview.models.ErrorResponseModelError """ _validation = { @@ -921,7 +754,7 @@ class ErrorResponseModel(msrest.serialization.Model): } _attribute_map = { - 'error': {'key': 'error', 'type': 'ErrorModel'}, + 'error': {'key': 'error', 'type': 'ErrorResponseModelError'}, } def __init__( @@ -1275,6 +1108,41 @@ def __init__( self.id = id +class ProxyResource(msrest.serialization.Model): + """Proxy Azure Resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Gets or sets the identifier. + :vartype id: str + :ivar name: Gets or sets the name. + :vartype name: str + :ivar type: Gets or sets the type. + :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) + self.id = None + self.name = None + self.type = None + + class PrivateEndpointConnection(ProxyResource): """A private endpoint connection class. @@ -1361,42 +1229,33 @@ def __init__( self.value = value -class PrivateLinkResource(ProxyResource): +class PrivateLinkResource(msrest.serialization.Model): """A privately linkable resource. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Gets or sets the identifier. + :ivar id: The private link resource identifier. :vartype id: str - :ivar name: Gets or sets the name. + :ivar name: The private link resource name. :vartype name: str - :ivar type: Gets or sets the type. + :ivar properties: The private link resource properties. + :vartype properties: ~azure.mgmt.purview.models.PrivateLinkResourceProperties + :ivar type: The private link resource type. :vartype type: str - :ivar group_id: The private link resource group identifier. - :vartype group_id: str - :ivar required_members: This translates to how many Private IPs should be created for each - privately linkable resource. - :vartype required_members: list[str] - :ivar required_zone_names: The required zone names for private link resource. - :vartype required_zone_names: list[str] """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, + 'properties': {'readonly': True}, 'type': {'readonly': True}, - 'group_id': {'readonly': True}, - 'required_members': {'readonly': True}, - 'required_zone_names': {'readonly': True}, } _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'PrivateLinkResourceProperties'}, 'type': {'key': 'type', 'type': 'str'}, - 'group_id': {'key': 'properties.groupId', 'type': 'str'}, - 'required_members': {'key': 'properties.requiredMembers', 'type': '[str]'}, - 'required_zone_names': {'key': 'properties.requiredZoneNames', 'type': '[str]'}, } def __init__( @@ -1404,9 +1263,10 @@ def __init__( **kwargs ): super(PrivateLinkResource, self).__init__(**kwargs) - self.group_id = None - self.required_members = None - self.required_zone_names = None + self.id = None + self.name = None + self.properties = None + self.type = None class PrivateLinkResourceList(msrest.serialization.Model): @@ -1446,6 +1306,42 @@ def __init__( self.value = value +class PrivateLinkResourceProperties(msrest.serialization.Model): + """A privately linkable resource properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar group_id: The private link resource group identifier. + :vartype group_id: str + :ivar required_members: This translates to how many Private IPs should be created for each + privately linkable resource. + :vartype required_members: list[str] + :ivar required_zone_names: The required zone names for private link resource. + :vartype required_zone_names: list[str] + """ + + _validation = { + 'group_id': {'readonly': True}, + 'required_members': {'readonly': True}, + 'required_zone_names': {'readonly': True}, + } + + _attribute_map = { + 'group_id': {'key': 'groupId', 'type': 'str'}, + 'required_members': {'key': 'requiredMembers', 'type': '[str]'}, + 'required_zone_names': {'key': 'requiredZoneNames', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkResourceProperties, self).__init__(**kwargs) + self.group_id = None + self.required_members = None + self.required_zone_names = None + + class PrivateLinkServiceConnectionState(msrest.serialization.Model): """The private link service connection state. @@ -1476,3 +1372,101 @@ def __init__( self.actions_required = actions_required self.description = description self.status = status + + +class SystemData(msrest.serialization.Model): + """Metadata pertaining to creation and last modification of the resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar created_at: The timestamp of resource creation (UTC). + :vartype created_at: ~datetime.datetime + :ivar created_by: The identity that created the resource. + :vartype created_by: str + :ivar created_by_type: The type of identity that created the resource. Possible values include: + "User", "Application", "ManagedIdentity", "Key". + :vartype created_by_type: str or ~azure.mgmt.purview.models.CreatedByType + :ivar last_modified_at: The timestamp of the last modification the resource (UTC). + :vartype last_modified_at: ~datetime.datetime + :ivar last_modified_by: The identity that last modified the resource. + :vartype last_modified_by: str + :ivar last_modified_by_type: The type of identity that last modified the resource. Possible + values include: "User", "Application", "ManagedIdentity", "Key". + :vartype last_modified_by_type: str or ~azure.mgmt.purview.models.LastModifiedByType + """ + + _validation = { + 'created_at': {'readonly': True}, + 'created_by': {'readonly': True}, + 'created_by_type': {'readonly': True}, + 'last_modified_at': {'readonly': True}, + 'last_modified_by': {'readonly': True}, + 'last_modified_by_type': {'readonly': True}, + } + + _attribute_map = { + 'created_at': {'key': 'createdAt', 'type': 'iso-8601'}, + 'created_by': {'key': 'createdBy', 'type': 'str'}, + 'created_by_type': {'key': 'createdByType', 'type': 'str'}, + 'last_modified_at': {'key': 'lastModifiedAt', 'type': 'iso-8601'}, + 'last_modified_by': {'key': 'lastModifiedBy', 'type': 'str'}, + 'last_modified_by_type': {'key': 'lastModifiedByType', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SystemData, self).__init__(**kwargs) + self.created_at = None + self.created_by = None + self.created_by_type = None + self.last_modified_at = None + self.last_modified_by = None + self.last_modified_by_type = None + + +class TrackedResourceSystemData(SystemData): + """Metadata pertaining to creation and last modification of the resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar created_at: The timestamp of resource creation (UTC). + :vartype created_at: ~datetime.datetime + :ivar created_by: The identity that created the resource. + :vartype created_by: str + :ivar created_by_type: The type of identity that created the resource. Possible values include: + "User", "Application", "ManagedIdentity", "Key". + :vartype created_by_type: str or ~azure.mgmt.purview.models.CreatedByType + :ivar last_modified_at: The timestamp of the last modification the resource (UTC). + :vartype last_modified_at: ~datetime.datetime + :ivar last_modified_by: The identity that last modified the resource. + :vartype last_modified_by: str + :ivar last_modified_by_type: The type of identity that last modified the resource. Possible + values include: "User", "Application", "ManagedIdentity", "Key". + :vartype last_modified_by_type: str or ~azure.mgmt.purview.models.LastModifiedByType + """ + + _validation = { + 'created_at': {'readonly': True}, + 'created_by': {'readonly': True}, + 'created_by_type': {'readonly': True}, + 'last_modified_at': {'readonly': True}, + 'last_modified_by': {'readonly': True}, + 'last_modified_by_type': {'readonly': True}, + } + + _attribute_map = { + 'created_at': {'key': 'createdAt', 'type': 'iso-8601'}, + 'created_by': {'key': 'createdBy', 'type': 'str'}, + 'created_by_type': {'key': 'createdByType', 'type': 'str'}, + 'last_modified_at': {'key': 'lastModifiedAt', 'type': 'iso-8601'}, + 'last_modified_by': {'key': 'lastModifiedBy', 'type': 'str'}, + 'last_modified_by_type': {'key': 'lastModifiedByType', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(TrackedResourceSystemData, self).__init__(**kwargs) diff --git a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/models/_purview_management_client_enums.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/models/_purview_management_client_enums.py index 76998be29c9b..f017663e5f5c 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/models/_purview_management_client_enums.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/models/_purview_management_client_enums.py @@ -26,6 +26,24 @@ def __getattr__(cls, name): raise AttributeError(name) +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 LastModifiedByType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The type of identity that last modified the resource. + """ + + USER = "User" + APPLICATION = "Application" + MANAGED_IDENTITY = "ManagedIdentity" + KEY = "Key" + class Name(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Gets or sets the sku name. """ @@ -44,6 +62,7 @@ class ProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): SOFT_DELETED = "SoftDeleted" FAILED = "Failed" SUCCEEDED = "Succeeded" + CANCELED = "Canceled" class PublicNetworkAccess(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Gets or sets the public network access. @@ -61,6 +80,8 @@ class Reason(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): ALREADY_EXISTS = "AlreadyExists" class ScopeType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The scope where the default account is set. + """ TENANT = "Tenant" SUBSCRIPTION = "Subscription" diff --git a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_accounts_operations.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_accounts_operations.py index 480df79a5593..94752f3fd608 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_accounts_operations.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_accounts_operations.py @@ -72,7 +72,7 @@ def list_by_resource_group( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" def prepare_request(next_link=None): @@ -115,7 +115,7 @@ def get_next(next_link=None): response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) @@ -148,7 +148,7 @@ def list_by_subscription( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" def prepare_request(next_link=None): @@ -190,7 +190,7 @@ def get_next(next_link=None): response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) @@ -226,7 +226,7 @@ def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -252,7 +252,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.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('Account', pipeline_response) @@ -276,7 +276,7 @@ def _create_or_update_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -307,7 +307,7 @@ def _create_or_update_initial( if response.status_code not in [200, 201]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if response.status_code == 200: @@ -342,8 +342,8 @@ def begin_create_or_update( :type account: ~azure.mgmt.purview.models.Account :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 Account or the result of cls(response) @@ -408,7 +408,7 @@ def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -434,7 +434,7 @@ def _delete_initial( if response.status_code not in [200, 202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -459,8 +459,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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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) @@ -522,7 +522,7 @@ def _update_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -553,7 +553,7 @@ def _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.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if response.status_code == 200: @@ -588,8 +588,8 @@ def begin_update( :type account_update_parameters: ~azure.mgmt.purview.models.AccountUpdateParameters :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 Account or the result of cls(response) @@ -667,7 +667,7 @@ def list_keys( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -693,7 +693,7 @@ def list_keys( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('AccessKeys', pipeline_response) @@ -704,6 +704,73 @@ def list_keys( return deserialized list_keys.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Purview/accounts/{accountName}/listkeys'} # type: ignore + def add_root_collection_admin( + self, + resource_group_name, # type: str + account_name, # type: str + collection_admin_update, # type: "_models.CollectionAdminUpdate" + **kwargs # type: Any + ): + # type: (...) -> None + """Add the administrator for root collection. + + Add the administrator for root collection associated with this account. + + :param resource_group_name: The resource group name. + :type resource_group_name: str + :param account_name: The name of the account. + :type account_name: str + :param collection_admin_update: The collection admin update payload. + :type collection_admin_update: ~azure.mgmt.purview.models.CollectionAdminUpdate + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-07-01" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.add_root_collection_admin.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'accountName': self._serialize.url("account_name", account_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(collection_admin_update, 'CollectionAdminUpdate') + 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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + add_root_collection_admin.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Purview/accounts/{accountName}/addRootCollectionAdmin'} # type: ignore + def check_name_availability( self, check_name_availability_request, # type: "_models.CheckNameAvailabilityRequest" @@ -726,7 +793,7 @@ def check_name_availability( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -755,7 +822,7 @@ def check_name_availability( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('CheckNameAvailabilityResult', pipeline_response) diff --git a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_default_accounts_operations.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_default_accounts_operations.py index 213d47843ac5..b6bbf95a34c7 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_default_accounts_operations.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_default_accounts_operations.py @@ -73,7 +73,7 @@ def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -97,7 +97,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.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('DefaultAccountPayload', pipeline_response) @@ -116,7 +116,7 @@ def set( # type: (...) -> "_models.DefaultAccountPayload" """Sets the default account for the scope. - Set the default account for the scope. + Sets the default account for the scope. :param default_account_payload: The payload containing the default account information and the scope. @@ -131,7 +131,7 @@ def set( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -156,7 +156,7 @@ def set( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('DefaultAccountPayload', pipeline_response) @@ -177,7 +177,7 @@ def remove( # type: (...) -> None """Removes the default account from the scope. - Remove the default account from the scope. + Removes the default account from the scope. :param scope_tenant_id: The tenant ID. :type scope_tenant_id: str @@ -196,7 +196,7 @@ def remove( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -220,7 +220,7 @@ def remove( if response.status_code not in [200, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: diff --git a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_operations.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_operations.py index fd7c0023bb2d..1a77ad29b801 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_operations.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_operations.py @@ -64,7 +64,7 @@ def list( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" def prepare_request(next_link=None): @@ -100,7 +100,7 @@ def get_next(next_link=None): response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) diff --git a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_private_endpoint_connections_operations.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_private_endpoint_connections_operations.py index 948ad0930b3f..18fe2b9411e3 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_private_endpoint_connections_operations.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_private_endpoint_connections_operations.py @@ -75,7 +75,7 @@ def list_by_account( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" def prepare_request(next_link=None): @@ -119,7 +119,7 @@ def get_next(next_link=None): response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) @@ -158,7 +158,7 @@ def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -185,7 +185,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.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('PrivateEndpointConnection', pipeline_response) @@ -196,7 +196,7 @@ def get( return deserialized get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Purview/accounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore - def create_or_update( + def _create_or_update_initial( self, resource_group_name, # type: str account_name, # type: str @@ -205,34 +205,17 @@ def create_or_update( **kwargs # type: Any ): # type: (...) -> "_models.PrivateEndpointConnection" - """Approves/Rejects private endpoint connection request. - - Create or update a private endpoint connection. - - :param resource_group_name: The resource group name. - :type resource_group_name: str - :param account_name: The name of the account. - :type account_name: str - :param private_endpoint_connection_name: Name of the private endpoint connection. - :type private_endpoint_connection_name: str - :param request: The request. - :type request: ~azure.mgmt.purview.models.PrivateEndpointConnection - :keyword callable cls: A custom type or function that will be passed the direct response - :return: PrivateEndpointConnection, or the result of cls(response) - :rtype: ~azure.mgmt.purview.models.PrivateEndpointConnection - :raises: ~azure.core.exceptions.HttpResponseError - """ cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" # Construct URL - url = self.create_or_update.metadata['url'] # type: ignore + url = self._create_or_update_initial.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), @@ -259,7 +242,7 @@ def create_or_update( if response.status_code not in [200, 201]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if response.status_code == 200: @@ -272,7 +255,86 @@ def create_or_update( return cls(pipeline_response, deserialized, {}) return deserialized - create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Purview/accounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Purview/accounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def begin_create_or_update( + self, + resource_group_name, # type: str + account_name, # type: str + private_endpoint_connection_name, # type: str + request, # type: "_models.PrivateEndpointConnection" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.PrivateEndpointConnection"] + """Approves/Rejects private endpoint connection request. + + Create or update a private endpoint connection. + + :param resource_group_name: The resource group name. + :type resource_group_name: str + :param account_name: The name of the account. + :type account_name: str + :param private_endpoint_connection_name: Name of the private endpoint connection. + :type private_endpoint_connection_name: str + :param request: The request. + :type request: ~azure.mgmt.purview.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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.purview.models.PrivateEndpointConnection] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] + 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_or_update_initial( + resource_group_name=resource_group_name, + account_name=account_name, + private_endpoint_connection_name=private_endpoint_connection_name, + request=request, + 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('PrivateEndpointConnection', 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'accountName': self._serialize.url("account_name", account_name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_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_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Purview/accounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore def _delete_initial( self, @@ -287,7 +349,7 @@ def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -314,7 +376,7 @@ def _delete_initial( if response.status_code not in [200, 202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -342,8 +404,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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_private_link_resources_operations.py b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_private_link_resources_operations.py index 60b056ce9031..15acb10923c1 100644 --- a/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_private_link_resources_operations.py +++ b/sdk/purview/azure-mgmt-purview/azure/mgmt/purview/operations/_private_link_resources_operations.py @@ -70,7 +70,7 @@ def list_by_account( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" 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.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) @@ -151,7 +151,7 @@ def get_by_group_id( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-12-01-preview" + api_version = "2021-07-01" accept = "application/json" # Construct URL @@ -178,7 +178,7 @@ def get_by_group_id( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseModel, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponseModel, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('PrivateLinkResource', pipeline_response) diff --git a/sdk/purview/azure-mgmt-purview/setup.py b/sdk/purview/azure-mgmt-purview/setup.py index 58d51701caa9..14752522605e 100644 --- a/sdk/purview/azure-mgmt-purview/setup.py +++ b/sdk/purview/azure-mgmt-purview/setup.py @@ -81,7 +81,7 @@ 'azure.mgmt', ]), install_requires=[ - 'msrest>=0.5.0', + 'msrest>=0.6.21', 'azure-common~=1.1', 'azure-mgmt-core>=1.2.0,<2.0.0', ], diff --git a/shared_requirements.txt b/shared_requirements.txt index 7d966ae7b825..11da8a8a9fa8 100644 --- a/shared_requirements.txt +++ b/shared_requirements.txt @@ -329,6 +329,7 @@ opentelemetry-sdk<2.0.0,>=1.0.0 #override azure-mgmt-guestconfig msrest>=0.6.21 #override azure-mgmt-recoveryservices msrest>=0.6.21 #override azure-mgmt-avs msrest>=0.6.21 +#override azure-mgmt-purview msrest>=0.6.21 #override azure-mgmt-datafactory msrest>=0.6.21 #override azure-mgmt-containerinstance msrest>=0.6.21 #override azure-mgmt-recoveryservicessiterecovery msrest>=0.6.21 From 899b846c600d803cb17ce54283c68bec4dfdb0e5 Mon Sep 17 00:00:00 2001 From: Zed Lei <59104634+RAY-316@users.noreply.github.com> Date: Mon, 16 Aug 2021 16:52:30 +0800 Subject: [PATCH 070/104] Update main for 30-close.py (#20287) * Update main.py * Update main.py --- scripts/release_issue_status/main.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/scripts/release_issue_status/main.py b/scripts/release_issue_status/main.py index 94b05b730cb9..2f26cfeb4025 100644 --- a/scripts/release_issue_status/main.py +++ b/scripts/release_issue_status/main.py @@ -89,6 +89,12 @@ def _whether_author_comment(comments): return len(diff) > 0 +def _latest_comment_time(comments, delay_from_create_date): + q = [(comment.updated_at.timestamp(), comment.user.login) + for comment in comments if comment.user.login not in _PYTHON_SDK_ADMINISTRATORS] + q.sort() + + return delay_from_create_date if not q else int((time.time() - q[-1][0]) / 3600 / 24) def main(): # get latest issue status @@ -117,6 +123,7 @@ def main(): issue.whether_author_comment = _whether_author_comment(item.get_comments()) issue.issue_object = item issue.labels = [label.name for label in item.labels] + issue.days_from_latest_commit = _latest_comment_time(item.get_comments(), issue.delay_from_create_date) issue_status.append(issue) key = (issue.language, issue.package) @@ -140,12 +147,12 @@ def main(): elif item.delay_from_latest_update >= 7: item.bot_advice = 'delay for a long time and better to handle now.' - if item.delay_from_create_date >= 30 and item.language == 'Python' and not item.whether_author_comment and '30days attention' not in item.labels: + if item.delay_from_create_date >= 30 and item.language == 'Python' and '30days attention' not in item.labels: item.labels.append('30days attention') item.issue_object.set_labels(*item.labels) item.issue_object.create_comment(f'hi @{item.author}, the issue is closed since there is no reply for a long time. Please reopen it if necessary or create new one.') - issue.issue_object.edit(state='close') - elif item.delay_from_create_date >= 15 and item.language == 'Python' and not item.whether_author_comment and '15days attention' not in item.labels: + item.issue_object.edit(state='close') + elif item.delay_from_create_date >= 15 and item.language == 'Python' and '15days attention' not in item.labels: item.issue_object.create_comment(f'hi @{item.author}, this release-request has been delayed more than 15 days,' ' please deal with it ASAP. We will close the issue if there is still no response after 15 days!') item.labels.append('15days attention') From c4fcc6949198c5e9f52e43ef27382b4bf083399a Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Mon, 16 Aug 2021 08:43:06 -0700 Subject: [PATCH 071/104] Add support for 'files' configuration (#20272) Co-authored-by: Daniel Jurek --- .../templates/steps/check-spelling.yml | 1 + .../check-spelling-in-changed-files.ps1 | 80 ++++++++++++++++--- 2 files changed, 68 insertions(+), 13 deletions(-) diff --git a/eng/common/pipelines/templates/steps/check-spelling.yml b/eng/common/pipelines/templates/steps/check-spelling.yml index 986d729fc30c..79fef818a2b9 100644 --- a/eng/common/pipelines/templates/steps/check-spelling.yml +++ b/eng/common/pipelines/templates/steps/check-spelling.yml @@ -24,4 +24,5 @@ steps: -TargetBranch "origin/$("${{ parameters.TargetBranch }}" -replace "refs/heads/")" -SourceBranch ${{ parameters.SourceBranch }} -CspellConfigPath ${{ parameters.CspellConfigPath }} + -ExitWithError:(!$${{ parameters.ContinueOnError }}) pwsh: true diff --git a/eng/common/scripts/check-spelling-in-changed-files.ps1 b/eng/common/scripts/check-spelling-in-changed-files.ps1 index 9d41e5b56248..b0a9611620d5 100644 --- a/eng/common/scripts/check-spelling-in-changed-files.ps1 +++ b/eng/common/scripts/check-spelling-in-changed-files.ps1 @@ -7,7 +7,10 @@ Param ( [string] $SourceBranch, [Parameter()] - [string] $CspellConfigPath = "./.vscode/cspell.json" + [string] $CspellConfigPath = "./.vscode/cspell.json", + + [Parameter()] + [switch] $ExitWithError ) $ErrorActionPreference = "Continue" @@ -19,7 +22,7 @@ if ((Get-Command git | Measure-Object).Count -eq 0) { } if ((Get-Command npx | Measure-Object).Count -eq 0) { - LogError "Could not locate npx. Install NodeJS (includes npm and npx) https://nodejs.org/en/download/" + LogError "Could not locate npx. Install NodeJS (includes npx and npx) https://nodejs.org/en/download/" exit 1 } @@ -43,16 +46,60 @@ if ($changedFilesCount -eq 0) { exit 0 } -$changedFilesString = $changedFiles -join ' ' +$changedFilePaths = @() +foreach ($file in $changedFiles) { + $changedFilePaths += $file.Path +} -Write-Host "npx cspell --config $CspellConfigPath $changedFilesString" -$spellingErrors = Invoke-Expression "npx cspell --config $CspellConfigPath $changedFilesString" +# Using GetTempPath because it works on linux and windows. Setting .json +# extension because cspell requires the file have a .json or .jsonc extension +$cspellConfigTemporaryPath = Join-Path ` + ([System.IO.Path]::GetTempPath()) ` + "$([System.IO.Path]::GetRandomFileName()).json" + +$cspellConfigContent = Get-Content $CspellConfigPath -Raw +$cspellConfig = ConvertFrom-Json $cspellConfigContent + +# If the config has no "files" property this adds it. If the config has a +# "files" property this sets the value, overwriting the existing value. In this +# case, spell checking is only intended to check files from $changedFiles so +# preexisting entries in "files" will be overwritten. +Add-Member ` + -MemberType NoteProperty ` + -InputObject $cspellConfig ` + -Name "files" ` + -Value $changedFilePaths ` + -Force + +# Set the temporary config file with the mutated configuration. The temporary +# location is used to configure the command and the original file remains +# unchanged. +Write-Host "Setting config in: $cspellConfigTemporaryPath" +Set-Content ` + -Path $cspellConfigTemporaryPath ` + -Value (ConvertTo-Json $cspellConfig -Depth 100) + +# Use the mutated configuration file when calling cspell +Write-Host "npx cspell lint --config $cspellConfigTemporaryPath" +$spellingErrors = npx cspell lint --config $cspellConfigTemporaryPath if ($spellingErrors) { + $errorLoggingFunction = Get-Item 'Function:LogWarning' + if ($ExitWithError) { + $errorLoggingFunction = Get-Item 'Function:LogError' + } + foreach ($spellingError in $spellingErrors) { - LogWarning $spellingError + &$errorLoggingFunction $spellingError + } + &$errorLoggingFunction "Spelling errors detected. To correct false positives or learn about spell checking see: https://aka.ms/azsdk/engsys/spellcheck" + + if ($ExitWithError) { + exit 1 } - LogWarning "Spelling errors detected. To correct false positives or learn about spell checking see: https://aka.ms/azsdk/engsys/spellcheck" +} else { + Write-Host "No spelling errors detected. Removing temporary config file." + Remove-Item -Path $cspellConfigTemporaryPath -Force } exit 0 @@ -66,22 +113,26 @@ This script checks files that have changed relative to a base branch (default branch) for spelling errors. Dictionaries and spelling configurations reside in a configurable `cspell.json` location. -This script uses `npx` and assumes that NodeJS (and by extension `npm` and `npx` -) are installed on the machine. If it does not detect `npx` it will warn the -user and exit with an error. +This script uses `npx` and assumes that NodeJS (and by extension `npm` and +`npx`) are installed on the machine. If it does not detect `npx` it will warn +the user and exit with an error. The entire file is scanned, not just changed sections. Spelling errors in parts of the file not touched will still be shown. -Running this on the local machine will trigger tests +This script copies the config file supplied in CspellConfigPath to a temporary +location, mutates the config file to include only the files that have changed, +and then uses the mutated config file to call cspell. In the case of success +the temporary file is deleted. In the case of failure the temporary file, whose +location was logged to the console, remains on disk. .PARAMETER TargetBranch Git ref to compare changes. This is usually the "base" (GitHub) or "target" (DevOps) branch for which a pull request would be opened. -.PARAMETER SouceBranch +.PARAMETER SourceBranch Git ref to use instead of changes in current repo state. Use `HEAD` here to -check spelling of files that have been committed and exlcude any new files or +check spelling of files that have been committed and exclude any new files or modified files that are not committed. This is most useful in CI scenarios where builds may have modified the state of the repo. Leaving this parameter blank includes files for whom changes have not been committed. @@ -90,6 +141,9 @@ includes files for whom changes have not been committed. Optional location to use for cspell.json path. Default value is `./.vscode/cspell.json` +.PARAMETER ExitWithError +Exit with error code 1 if spelling errors are detected. + .EXAMPLE ./eng/common/scripts/check-spelling-in-changed-files.ps1 -TargetBranch 'target_branch_name' From f16b965d142a535b4cae57d5797474a747f4c7a5 Mon Sep 17 00:00:00 2001 From: Charles Lowell Date: Mon, 16 Aug 2021 08:50:16 -0700 Subject: [PATCH 072/104] Add context manager API to azure.identity credentials (#19746) --- sdk/identity/azure-identity/CHANGELOG.md | 5 + .../identity/_credentials/app_service.py | 38 ++---- .../_credentials/authorization_code.py | 12 ++ .../azure/identity/_credentials/azure_arc.py | 47 +++---- .../azure/identity/_credentials/azure_cli.py | 10 ++ .../identity/_credentials/azure_powershell.py | 10 ++ .../azure/identity/_credentials/chained.py | 14 +++ .../identity/_credentials/client_assertion.py | 11 ++ .../identity/_credentials/cloud_shell.py | 39 ++---- .../identity/_credentials/environment.py | 14 +++ .../azure/identity/_credentials/imds.py | 10 ++ .../identity/_credentials/managed_identity.py | 12 ++ .../identity/_credentials/service_fabric.py | 36 ++---- .../identity/_credentials/shared_cache.py | 21 ++++ .../azure/identity/_credentials/silent.py | 7 ++ .../azure/identity/_credentials/vscode.py | 14 +++ .../azure/identity/_internal/aad_client.py | 11 ++ .../_internal/managed_identity_base.py | 62 +++++++++ .../_internal/managed_identity_client.py | 11 ++ .../azure/identity/_internal/msal_client.py | 11 ++ .../identity/_internal/msal_credentials.py | 11 ++ .../identity/aio/_credentials/app_service.py | 40 ++---- .../identity/aio/_credentials/azure_arc.py | 40 ++---- .../identity/aio/_credentials/cloud_shell.py | 42 ++----- .../aio/_credentials/service_fabric.py | 40 ++---- .../aio/_internal/managed_identity_base.py | 56 +++++++++ .../tests/test_chained_credential.py | 35 +++++- .../tests/test_context_manager.py | 118 ++++++++++++++++++ .../azure-identity/tests/test_default.py | 27 +++- .../tests/test_environment_credential.py | 2 +- .../test_environment_credential_async.py | 55 ++++++-- .../tests/test_managed_identity.py | 50 ++++++++ .../tests/test_managed_identity_async.py | 13 +- .../tests/test_shared_cache_credential.py | 35 +++++- .../tests/test_vscode_credential.py | 9 ++ .../tests/test_vscode_credential_async.py | 10 ++ 36 files changed, 718 insertions(+), 260 deletions(-) create mode 100644 sdk/identity/azure-identity/azure/identity/_internal/managed_identity_base.py create mode 100644 sdk/identity/azure-identity/azure/identity/aio/_internal/managed_identity_base.py create mode 100644 sdk/identity/azure-identity/tests/test_context_manager.py diff --git a/sdk/identity/azure-identity/CHANGELOG.md b/sdk/identity/azure-identity/CHANGELOG.md index 0bbd7c8b75cd..d356c259187d 100644 --- a/sdk/identity/azure-identity/CHANGELOG.md +++ b/sdk/identity/azure-identity/CHANGELOG.md @@ -9,6 +9,11 @@ ### Bugs Fixed ### Other Changes +- Added context manager methods and `close()` to credentials in the + `azure.identity` namespace. At the end of a `with` block, or when `close()` + is called, these credentials close their underlying transport sessions. + ([#18798](https://github.com/Azure/azure-sdk-for-python/issues/18798)) + ## 1.7.0b3 (2021-08-10) diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/app_service.py b/sdk/identity/azure-identity/azure/identity/_credentials/app_service.py index 4c2663cd5d88..7da9589097d3 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/app_service.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/app_service.py @@ -6,45 +6,27 @@ import os from typing import TYPE_CHECKING -from azure.core.credentials import AccessToken from azure.core.pipeline.transport import HttpRequest -from .. import CredentialUnavailableError from .._constants import EnvironmentVariables +from .._internal.managed_identity_base import ManagedIdentityBase from .._internal.managed_identity_client import ManagedIdentityClient -from .._internal.get_token_mixin import GetTokenMixin if TYPE_CHECKING: from typing import Any, Optional -class AppServiceCredential(GetTokenMixin): - def __init__(self, **kwargs): - # type: (**Any) -> None - super(AppServiceCredential, self).__init__() - +class AppServiceCredential(ManagedIdentityBase): + def get_client(self, **kwargs): + # type: (**Any) -> Optional[ManagedIdentityClient] client_args = _get_client_args(**kwargs) if client_args: - self._available = True - self._client = ManagedIdentityClient(**client_args) - else: - self._available = False - - def get_token(self, *scopes, **kwargs): - # type: (*str, **Any) -> AccessToken - if not self._available: - raise CredentialUnavailableError( - message="App Service managed identity configuration not found in environment" - ) - return super(AppServiceCredential, self).get_token(*scopes, **kwargs) - - def _acquire_token_silently(self, *scopes, **kwargs): - # type: (*str, **Any) -> Optional[AccessToken] - return self._client.get_cached_token(*scopes) - - def _request_token(self, *scopes, **kwargs): - # type: (*str, **Any) -> AccessToken - return self._client.request_token(*scopes, **kwargs) + return ManagedIdentityClient(**client_args) + return None + + def get_unavailable_message(self): + # type: () -> str + return "App Service managed identity configuration not found in environment" def _get_client_args(**kwargs): diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/authorization_code.py b/sdk/identity/azure-identity/azure/identity/_credentials/authorization_code.py index ce7b33f117f2..587547640744 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/authorization_code.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/authorization_code.py @@ -44,6 +44,18 @@ def __init__(self, tenant_id, client_id, authorization_code, redirect_uri, **kwa self._redirect_uri = redirect_uri super(AuthorizationCodeCredential, self).__init__() + def __enter__(self): + self._client.__enter__() + return self + + def __exit__(self, *args): + self._client.__exit__(*args) + + def close(self): + # type: () -> None + """Close the credential's transport session.""" + self.__exit__() + def get_token(self, *scopes, **kwargs): # type: (*str, **Any) -> AccessToken """Request an access token for `scopes`. diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/azure_arc.py b/sdk/identity/azure-identity/azure/identity/_credentials/azure_arc.py index 5fcc5ddfbe9a..ff38ddbc7a83 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/azure_arc.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/azure_arc.py @@ -10,51 +10,42 @@ from azure.core.pipeline.transport import HttpRequest from azure.core.pipeline.policies import HTTPPolicy -from .. import CredentialUnavailableError from .._constants import EnvironmentVariables +from .._internal.managed_identity_base import ManagedIdentityBase from .._internal.managed_identity_client import ManagedIdentityClient -from .._internal.get_token_mixin import GetTokenMixin if TYPE_CHECKING: # pylint:disable=unused-import,ungrouped-imports - from typing import Any, Optional, Union - from azure.core.credentials import AccessToken + from typing import Any, Optional from azure.core.pipeline import PipelineRequest, PipelineResponse - from azure.core.pipeline.policies import SansIOHTTPPolicy - PolicyType = Union[HTTPPolicy, SansIOHTTPPolicy] - - -class AzureArcCredential(GetTokenMixin): - def __init__(self, **kwargs): - # type: (**Any) -> None - super(AzureArcCredential, self).__init__() +class AzureArcCredential(ManagedIdentityBase): + def get_client(self, **kwargs): + # type: (**Any) -> Optional[ManagedIdentityClient] url = os.environ.get(EnvironmentVariables.IDENTITY_ENDPOINT) imds = os.environ.get(EnvironmentVariables.IMDS_ENDPOINT) - self._available = url and imds - if self._available: - self._client = ManagedIdentityClient( + if url and imds: + return ManagedIdentityClient( _per_retry_policies=[ArcChallengeAuthPolicy()], request_factory=functools.partial(_get_request, url), **kwargs ) + return None - def get_token(self, *scopes, **kwargs): - # type: (*str, **Any) -> AccessToken - if not self._available: - raise CredentialUnavailableError( - message="Azure Arc managed identity configuration not found in environment" - ) - return super(AzureArcCredential, self).get_token(*scopes, **kwargs) + def __enter__(self): + self._client.__enter__() + return self + + def __exit__(self, *args): + self._client.__exit__(*args) - def _acquire_token_silently(self, *scopes, **kwargs): - # type: (*str, **Any) -> Optional[AccessToken] - return self._client.get_cached_token(*scopes) + def close(self): + self.__exit__() - def _request_token(self, *scopes, **kwargs): - # type: (*str, **Any) -> AccessToken - return self._client.request_token(*scopes, **kwargs) + def get_unavailable_message(self): + # type: () -> str + return "Azure Arc managed identity configuration not found in environment" def _get_request(url, scope, identity_config): diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py b/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py index 111856a3a090..24e160d768c4 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py @@ -44,6 +44,16 @@ class AzureCliCredential(object): def __init__(self, **kwargs): self._allow_multitenant = kwargs.get("allow_multitenant_authentication", False) + def __enter__(self): + return self + + def __exit__(self, *args): + pass + + def close(self): + # type: () -> None + """Calling this method is unnecessary.""" + @log_get_token("AzureCliCredential") def get_token(self, *scopes, **kwargs): # type: (*str, **Any) -> AccessToken diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/azure_powershell.py b/sdk/identity/azure-identity/azure/identity/_credentials/azure_powershell.py index ed3befb14462..8ce657c6e261 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/azure_powershell.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/azure_powershell.py @@ -61,6 +61,16 @@ def __init__(self, **kwargs): # type: (**Any) -> None self._allow_multitenant = kwargs.get("allow_multitenant_authentication", False) + def __enter__(self): + return self + + def __exit__(self, *args): + pass + + def close(self): + # type: () -> None + """Calling this method is unnecessary.""" + @log_get_token("AzurePowerShellCredential") def get_token(self, *scopes, **kwargs): # type: (*str, **Any) -> AccessToken diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/chained.py b/sdk/identity/azure-identity/azure/identity/_credentials/chained.py index 239adf55d988..35936acb7679 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/chained.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/chained.py @@ -53,6 +53,20 @@ def __init__(self, *credentials): self._successful_credential = None # type: Optional[TokenCredential] self.credentials = credentials + def __enter__(self): + for credential in self.credentials: + credential.__enter__() + return self + + def __exit__(self, *args): + for credential in self.credentials: + credential.__exit__(*args) + + def close(self): + # type: () -> None + """Close the transport session of each credential in the chain.""" + self.__exit__() + def get_token(self, *scopes, **kwargs): # pylint:disable=unused-argument # type: (*str, **Any) -> AccessToken """Request a token from each chained credential, in order, returning the first token received. diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/client_assertion.py b/sdk/identity/azure-identity/azure/identity/_credentials/client_assertion.py index 013307c3e39b..8c3dfefcd8a0 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/client_assertion.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/client_assertion.py @@ -34,6 +34,17 @@ def __init__(self, tenant_id, client_id, get_assertion, **kwargs): self._client = AadClient(tenant_id, client_id, **kwargs) super(ClientAssertionCredential, self).__init__(**kwargs) + def __enter__(self): + self._client.__enter__() + return self + + def __exit__(self, *args): + self._client.__exit__(*args) + + def close(self): + # type: () -> None + self.__exit__() + def _acquire_token_silently(self, *scopes, **kwargs): # type: (*str, **Any) -> Optional[AccessToken] return self._client.get_cached_access_token(scopes, **kwargs) diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/cloud_shell.py b/sdk/identity/azure-identity/azure/identity/_credentials/cloud_shell.py index 17e10feec6d9..a9fb5ed96432 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/cloud_shell.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/cloud_shell.py @@ -8,46 +8,27 @@ from azure.core.pipeline.transport import HttpRequest -from .. import CredentialUnavailableError from .._constants import EnvironmentVariables from .._internal.managed_identity_client import ManagedIdentityClient -from .._internal.get_token_mixin import GetTokenMixin +from .._internal.managed_identity_base import ManagedIdentityBase if TYPE_CHECKING: from typing import Any, Optional - from azure.core.credentials import AccessToken -class CloudShellCredential(GetTokenMixin): - def __init__(self, **kwargs): - # type: (**Any) -> None - super(CloudShellCredential, self).__init__() +class CloudShellCredential(ManagedIdentityBase): + def get_client(self, **kwargs): + # type: (**Any) -> Optional[ManagedIdentityClient] url = os.environ.get(EnvironmentVariables.MSI_ENDPOINT) if url: - self._available = True - self._client = ManagedIdentityClient( - request_factory=functools.partial(_get_request, url), - base_headers={"Metadata": "true"}, - **kwargs + return ManagedIdentityClient( + request_factory=functools.partial(_get_request, url), base_headers={"Metadata": "true"}, **kwargs ) - else: - self._available = False - - def get_token(self, *scopes, **kwargs): - # type: (*str, **Any) -> AccessToken - if not self._available: - raise CredentialUnavailableError( - message="Cloud Shell managed identity configuration not found in environment" - ) - return super(CloudShellCredential, self).get_token(*scopes, **kwargs) - - def _acquire_token_silently(self, *scopes, **kwargs): - # type: (*str, **Any) -> Optional[AccessToken] - return self._client.get_cached_token(*scopes) + return None - def _request_token(self, *scopes, **kwargs): - # type: (*str, **Any) -> AccessToken - return self._client.request_token(*scopes, **kwargs) + def get_unavailable_message(self): + # type: () -> str + return "Cloud Shell managed identity configuration not found in environment" def _get_request(url, scope, identity_config): diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/environment.py b/sdk/identity/azure-identity/azure/identity/_credentials/environment.py index 97aecf8c03f1..51e77d160372 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/environment.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/environment.py @@ -101,6 +101,20 @@ def __init__(self, **kwargs): else: _LOGGER.info("No environment configuration found.") + def __enter__(self): + if self._credential: + self._credential.__enter__() + return self + + def __exit__(self, *args): + if self._credential: + self._credential.__exit__(*args) + + def close(self): + # type: () -> None + """Close the credential's transport session.""" + self.__exit__() + @log_get_token("EnvironmentCredential") def get_token(self, *scopes, **kwargs): # pylint:disable=unused-argument # type: (*str, **Any) -> AccessToken diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/imds.py b/sdk/identity/azure-identity/azure/identity/_credentials/imds.py index ca385eeecb7e..d642dd063b21 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/imds.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/imds.py @@ -56,6 +56,16 @@ def __init__(self, **kwargs): self._error_message = None # type: Optional[str] self._user_assigned_identity = "client_id" in kwargs or "identity_config" in kwargs + def __enter__(self): + self._client.__enter__() + return self + + def __exit__(self, *args): + self._client.__exit__(*args) + + def close(self): + self.__exit__() + def _acquire_token_silently(self, *scopes, **kwargs): # type: (*str, **Any) -> Optional[AccessToken] return self._client.get_cached_token(*scopes) diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py b/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py index d0a0acef7931..3a291c1e1df3 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py @@ -81,6 +81,18 @@ def __init__(self, **kwargs): _LOGGER.info("%s will use IMDS", self.__class__.__name__) self._credential = ImdsCredential(**kwargs) + def __enter__(self): + self._credential.__enter__() + return self + + def __exit__(self, *args): + self._credential.__exit__(*args) + + def close(self): + # type: () -> None + """Close the credential's transport session.""" + self.__exit__() + @log_get_token("ManagedIdentityCredential") def get_token(self, *scopes, **kwargs): # type: (*str, **Any) -> AccessToken diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/service_fabric.py b/sdk/identity/azure-identity/azure/identity/_credentials/service_fabric.py index 0594a06f84ac..cb8c29a84ccc 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/service_fabric.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/service_fabric.py @@ -8,43 +8,25 @@ from azure.core.pipeline.transport import HttpRequest -from .. import CredentialUnavailableError from .._constants import EnvironmentVariables +from .._internal.managed_identity_base import ManagedIdentityBase from .._internal.managed_identity_client import ManagedIdentityClient -from .._internal.get_token_mixin import GetTokenMixin if TYPE_CHECKING: from typing import Any, Optional - from azure.core.credentials import AccessToken -class ServiceFabricCredential(GetTokenMixin): - def __init__(self, **kwargs): - # type: (**Any) -> None - super(ServiceFabricCredential, self).__init__() - +class ServiceFabricCredential(ManagedIdentityBase): + def get_client(self, **kwargs): + # type: (**Any) -> Optional[ManagedIdentityClient] client_args = _get_client_args(**kwargs) if client_args: - self._available = True - self._client = ManagedIdentityClient(**client_args) - else: - self._available = False - - def get_token(self, *scopes, **kwargs): - # type: (*str, **Any) -> AccessToken - if not self._available: - raise CredentialUnavailableError( - message="Service Fabric managed identity configuration not found in environment" - ) - return super(ServiceFabricCredential, self).get_token(*scopes, **kwargs) - - def _acquire_token_silently(self, *scopes, **kwargs): - # type: (*str, **Any) -> Optional[AccessToken] - return self._client.get_cached_token(*scopes) + return ManagedIdentityClient(**client_args) + return None - def _request_token(self, *scopes, **kwargs): - # type: (*str, **Any) -> AccessToken - return self._client.request_token(*scopes, **kwargs) + def get_unavailable_message(self): + # type: () -> str + return "Service Fabric managed identity configuration not found in environment" def _get_client_args(**kwargs): diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/shared_cache.py b/sdk/identity/azure-identity/azure/identity/_credentials/shared_cache.py index 7d49c9dcac3f..906aaad174fc 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/shared_cache.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/shared_cache.py @@ -48,6 +48,18 @@ def __init__(self, username=None, **kwargs): else: self._credential = _SharedTokenCacheCredential(username=username, **kwargs) + def __enter__(self): + self._credential.__enter__() + return self + + def __exit__(self, *args): + self._credential.__exit__(*args) + + def close(self): + # type: () -> None + """Close the credential's transport session.""" + self.__exit__() + @log_get_token("SharedTokenCacheCredential") def get_token(self, *scopes, **kwargs): # type (*str, **Any) -> AccessToken @@ -84,6 +96,15 @@ def supported(): class _SharedTokenCacheCredential(SharedTokenCacheBase): """The original SharedTokenCacheCredential, which doesn't use msal.ClientApplication""" + def __enter__(self): + if self._client: + self._client.__enter__() + return self + + def __exit__(self, *args): + if self._client: + self._client.__exit__(*args) + def get_token(self, *scopes, **kwargs): # type (*str, **Any) -> AccessToken if not scopes: diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/silent.py b/sdk/identity/azure-identity/azure/identity/_credentials/silent.py index e6996085c199..b1aa1ade8c46 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/silent.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/silent.py @@ -41,6 +41,13 @@ def __init__(self, authentication_record, **kwargs): self._client = MsalClient(**kwargs) self._initialized = False + def __enter__(self): + self._client.__enter__() + return self + + def __exit__(self, *args): + self._client.__exit__(*args) + def get_token(self, *scopes, **kwargs): # pylint:disable=unused-argument # type (*str, **Any) -> AccessToken if not scopes: diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/vscode.py b/sdk/identity/azure-identity/azure/identity/_credentials/vscode.py index 904766782bf7..cd6866f319da 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/vscode.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/vscode.py @@ -125,6 +125,20 @@ class VisualStudioCodeCredential(_VSCodeCredentialBase, GetTokenMixin): user's home tenant or the tenant configured by **tenant_id** or VS Code's user settings. """ + def __enter__(self): + if self._client: + self._client.__enter__() + return self + + def __exit__(self, *args): + if self._client: + self._client.__exit__(*args) + + def close(self): + # type: () -> None + """Close the credential's transport session.""" + self.__exit__() + def get_token(self, *scopes, **kwargs): # type: (*str, **Any) -> AccessToken """Request an access token for `scopes` as the user currently signed in to Visual Studio Code. diff --git a/sdk/identity/azure-identity/azure/identity/_internal/aad_client.py b/sdk/identity/azure-identity/azure/identity/_internal/aad_client.py index 79f986fca8a5..fb27461d8eb4 100644 --- a/sdk/identity/azure-identity/azure/identity/_internal/aad_client.py +++ b/sdk/identity/azure-identity/azure/identity/_internal/aad_client.py @@ -17,6 +17,17 @@ class AadClient(AadClientBase): + def __enter__(self): + self._pipeline.__enter__() + return self + + def __exit__(self, *args): + self._pipeline.__exit__(*args) + + def close(self): + # type: () -> None + self.__exit__() + def obtain_token_by_authorization_code(self, scopes, code, redirect_uri, client_secret=None, **kwargs): # type: (Iterable[str], str, str, Optional[str], **Any) -> AccessToken request = self._get_auth_code_request( diff --git a/sdk/identity/azure-identity/azure/identity/_internal/managed_identity_base.py b/sdk/identity/azure-identity/azure/identity/_internal/managed_identity_base.py new file mode 100644 index 000000000000..fba0c90e4071 --- /dev/null +++ b/sdk/identity/azure-identity/azure/identity/_internal/managed_identity_base.py @@ -0,0 +1,62 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +import abc +from typing import cast, TYPE_CHECKING + +from .. import CredentialUnavailableError +from .._internal.managed_identity_client import ManagedIdentityClient +from .._internal.get_token_mixin import GetTokenMixin + +if TYPE_CHECKING: + from typing import Any, Optional + from azure.core.credentials import AccessToken + + +class ManagedIdentityBase(GetTokenMixin): + """Base class for internal credentials using ManagedIdentityClient""" + + def __init__(self, **kwargs): + # type: (**Any) -> None + super(ManagedIdentityBase, self).__init__() + self._client = self.get_client(**kwargs) + + @abc.abstractmethod + def get_client(self, **kwargs): + # type: (**Any) -> Optional[ManagedIdentityClient] + pass + + @abc.abstractmethod + def get_unavailable_message(self): + # type: () -> str + pass + + def __enter__(self): + if self._client: + self._client.__enter__() + return self + + def __exit__(self, *args): + if self._client: + self._client.__exit__(*args) + + def close(self): + # type: () -> None + self.__exit__() + + def get_token(self, *scopes, **kwargs): + # type: (*str, **Any) -> AccessToken + if not self._client: + raise CredentialUnavailableError(message=self.get_unavailable_message()) + return super(ManagedIdentityBase, self).get_token(*scopes, **kwargs) + + def _acquire_token_silently(self, *scopes, **kwargs): + # type: (*str, **Any) -> Optional[AccessToken] + # casting because mypy can't determine that these methods are called + # only by get_token, which raises when self._client is None + return cast(ManagedIdentityClient, self._client).get_cached_token(*scopes) + + def _request_token(self, *scopes, **kwargs): + # type: (*str, **Any) -> AccessToken + return cast(ManagedIdentityClient, self._client).request_token(*scopes, **kwargs) diff --git a/sdk/identity/azure-identity/azure/identity/_internal/managed_identity_client.py b/sdk/identity/azure-identity/azure/identity/_internal/managed_identity_client.py index b593f7394076..2b2164f9a382 100644 --- a/sdk/identity/azure-identity/azure/identity/_internal/managed_identity_client.py +++ b/sdk/identity/azure-identity/azure/identity/_internal/managed_identity_client.py @@ -104,6 +104,17 @@ def _build_pipeline(self, **kwargs): class ManagedIdentityClient(ManagedIdentityClientBase): + def __enter__(self): + self._pipeline.__enter__() + return self + + def __exit__(self, *args): + self._pipeline.__exit__(*args) + + def close(self): + # type: () -> None + self.__exit__() + def request_token(self, *scopes, **kwargs): # type: (*str, **Any) -> AccessToken resource = _scopes_to_resource(*scopes) diff --git a/sdk/identity/azure-identity/azure/identity/_internal/msal_client.py b/sdk/identity/azure-identity/azure/identity/_internal/msal_client.py index 87fdcde5a0e4..faec84d439d7 100644 --- a/sdk/identity/azure-identity/azure/identity/_internal/msal_client.py +++ b/sdk/identity/azure-identity/azure/identity/_internal/msal_client.py @@ -73,6 +73,17 @@ def __init__(self, **kwargs): # pylint:disable=missing-client-constructor-param self._local = threading.local() self._pipeline = build_pipeline(**kwargs) + def __enter__(self): + self._pipeline.__enter__() + return self + + def __exit__(self, *args): + self._pipeline.__exit__(*args) + + def close(self): + # type: () -> None + self.__exit__() + def post(self, url, params=None, data=None, headers=None, **kwargs): # pylint:disable=unused-argument # type: (str, Optional[Dict[str, str]], RequestData, Optional[Dict[str, str]], **Any) -> MsalResponse request = HttpRequest("POST", url, headers=headers) diff --git a/sdk/identity/azure-identity/azure/identity/_internal/msal_credentials.py b/sdk/identity/azure-identity/azure/identity/_internal/msal_credentials.py index 3732f1595313..8ac10bbd687d 100644 --- a/sdk/identity/azure-identity/azure/identity/_internal/msal_credentials.py +++ b/sdk/identity/azure-identity/azure/identity/_internal/msal_credentials.py @@ -50,6 +50,17 @@ def __init__(self, client_id, client_credential=None, **kwargs): super(MsalCredential, self).__init__() + def __enter__(self): + self._client.__enter__() + return self + + def __exit__(self, *args): + self._client.__exit__(*args) + + def close(self): + # type: () -> None + self.__exit__() + def _get_app(self, **kwargs): # type: (**Any) -> msal.ClientApplication tenant_id = resolve_tenant(self._tenant_id, self._allow_multitenant, **kwargs) diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/app_service.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/app_service.py index e09f35006c1e..b41274042b11 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/app_service.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/app_service.py @@ -4,46 +4,20 @@ # ------------------------------------ from typing import TYPE_CHECKING -from .._internal import AsyncContextManager +from .._internal.managed_identity_base import AsyncManagedIdentityBase from .._internal.managed_identity_client import AsyncManagedIdentityClient -from .._internal.get_token_mixin import GetTokenMixin -from ... import CredentialUnavailableError from ..._credentials.app_service import _get_client_args if TYPE_CHECKING: from typing import Any, Optional - from azure.core.credentials import AccessToken -class AppServiceCredential(AsyncContextManager, GetTokenMixin): - def __init__(self, **kwargs: "Any") -> None: - super(AppServiceCredential, self).__init__() - +class AppServiceCredential(AsyncManagedIdentityBase): + def get_client(self, **kwargs: "Any") -> "Optional[AsyncManagedIdentityClient]": client_args = _get_client_args(**kwargs) if client_args: - self._available = True - self._client = AsyncManagedIdentityClient(**client_args) - else: - self._available = False - - async def __aenter__(self): - if self._available: - await self._client.__aenter__() - return self - - async def close(self) -> None: - await self._client.close() - - async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": - if not self._available: - raise CredentialUnavailableError( - message="App Service managed identity configuration not found in environment" - ) - - return await super().get_token(*scopes, **kwargs) - - async def _acquire_token_silently(self, *scopes: str, **kwargs: "Any") -> "Optional[AccessToken]": - return self._client.get_cached_token(*scopes) + return AsyncManagedIdentityClient(**client_args) + return None - async def _request_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": - return await self._client.request_token(*scopes, **kwargs) + def get_unavailable_message(self) -> str: + return "App Service managed identity configuration not found in environment" diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_arc.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_arc.py index 0b75b63af44a..f17f3b5b5177 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_arc.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_arc.py @@ -8,55 +8,31 @@ from azure.core.pipeline.policies import AsyncHTTPPolicy -from .._internal import AsyncContextManager +from .._internal.managed_identity_base import AsyncManagedIdentityBase from .._internal.managed_identity_client import AsyncManagedIdentityClient -from .._internal.get_token_mixin import GetTokenMixin -from ... import CredentialUnavailableError from ..._constants import EnvironmentVariables from ..._credentials.azure_arc import _get_request, _get_secret_key if TYPE_CHECKING: # pylint:disable=unused-import,ungrouped-imports from typing import Any, Optional - from azure.core.credentials import AccessToken from azure.core.pipeline import PipelineRequest, PipelineResponse -class AzureArcCredential(AsyncContextManager, GetTokenMixin): - def __init__(self, **kwargs: "Any") -> None: - super().__init__() - +class AzureArcCredential(AsyncManagedIdentityBase): + def get_client(self, **kwargs: "Any") -> "Optional[AsyncManagedIdentityClient]": url = os.environ.get(EnvironmentVariables.IDENTITY_ENDPOINT) imds = os.environ.get(EnvironmentVariables.IMDS_ENDPOINT) - self._available = url and imds - if self._available: - self._client = AsyncManagedIdentityClient( + if url and imds: + return AsyncManagedIdentityClient( _per_retry_policies=[ArcChallengeAuthPolicy()], request_factory=functools.partial(_get_request, url), **kwargs ) + return None - async def __aenter__(self): - if self._available: - await self._client.__aenter__() - return self - - async def close(self) -> None: - await self._client.close() - - async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": - if not self._available: - raise CredentialUnavailableError( - message="Service Fabric managed identity configuration not found in environment" - ) - - return await super().get_token(*scopes, **kwargs) - - async def _acquire_token_silently(self, *scopes: str, **kwargs: "Any") -> "Optional[AccessToken]": - return self._client.get_cached_token(*scopes) - - async def _request_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": - return await self._client.request_token(*scopes, **kwargs) + def get_unavailable_message(self) -> str: + return "Azure Arc managed identity configuration not found in environment" class ArcChallengeAuthPolicy(AsyncHTTPPolicy): diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/cloud_shell.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/cloud_shell.py index 512fc621a21b..140d9afe8bbf 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/cloud_shell.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/cloud_shell.py @@ -6,49 +6,23 @@ import os from typing import TYPE_CHECKING -from .._internal import AsyncContextManager -from .._internal.get_token_mixin import GetTokenMixin +from .._internal.managed_identity_base import AsyncManagedIdentityBase from .._internal.managed_identity_client import AsyncManagedIdentityClient -from ... import CredentialUnavailableError from ..._constants import EnvironmentVariables from ..._credentials.cloud_shell import _get_request if TYPE_CHECKING: from typing import Any, Optional - from azure.core.credentials import AccessToken -class CloudShellCredential(AsyncContextManager, GetTokenMixin): - def __init__(self, **kwargs: "Any") -> None: - super(CloudShellCredential, self).__init__() +class CloudShellCredential(AsyncManagedIdentityBase): + def get_client(self, **kwargs: "Any") -> "Optional[AsyncManagedIdentityClient]": url = os.environ.get(EnvironmentVariables.MSI_ENDPOINT) if url: - self._available = True - self._client = AsyncManagedIdentityClient( - request_factory=functools.partial(_get_request, url), - base_headers={"Metadata": "true"}, - **kwargs, + return AsyncManagedIdentityClient( + request_factory=functools.partial(_get_request, url), base_headers={"Metadata": "true"}, **kwargs ) - else: - self._available = False + return None - async def __aenter__(self): - if self._available: - await self._client.__aenter__() - return self - - async def close(self) -> None: - await self._client.close() - - async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": - if not self._available: - raise CredentialUnavailableError( - message="Cloud Shell managed identity configuration not found in environment" - ) - return await super(CloudShellCredential, self).get_token(*scopes, **kwargs) - - async def _acquire_token_silently(self, *scopes: str, **kwargs: "Any") -> "Optional[AccessToken]": - return self._client.get_cached_token(*scopes) - - async def _request_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": - return await self._client.request_token(*scopes, **kwargs) + def get_unavailable_message(self) -> str: + return "Cloud Shell managed identity configuration not found in environment" diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/service_fabric.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/service_fabric.py index 5e8de07d763e..1ab3477bab90 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/service_fabric.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/service_fabric.py @@ -4,46 +4,20 @@ # ------------------------------------ from typing import TYPE_CHECKING -from .._internal import AsyncContextManager +from .._internal.managed_identity_base import AsyncManagedIdentityBase from .._internal.managed_identity_client import AsyncManagedIdentityClient -from .._internal.get_token_mixin import GetTokenMixin -from ... import CredentialUnavailableError from ..._credentials.service_fabric import _get_client_args if TYPE_CHECKING: from typing import Any, Optional - from azure.core.credentials import AccessToken -class ServiceFabricCredential(AsyncContextManager, GetTokenMixin): - def __init__(self, **kwargs: "Any") -> None: - super().__init__() - +class ServiceFabricCredential(AsyncManagedIdentityBase): + def get_client(self, **kwargs: "Any") -> "Optional[AsyncManagedIdentityClient]": client_args = _get_client_args(**kwargs) if client_args: - self._available = True - self._client = AsyncManagedIdentityClient(**client_args) - else: - self._available = False - - async def __aenter__(self): - if self._available: - await self._client.__aenter__() - return self - - async def close(self) -> None: - await self._client.close() - - async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": - if not self._available: - raise CredentialUnavailableError( - message="Service Fabric managed identity configuration not found in environment" - ) - - return await super().get_token(*scopes, **kwargs) - - async def _acquire_token_silently(self, *scopes: str, **kwargs: "Any") -> "Optional[AccessToken]": - return self._client.get_cached_token(*scopes) + return AsyncManagedIdentityClient(**client_args) + return None - async def _request_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": - return await self._client.request_token(*scopes, **kwargs) + def get_unavailable_message(self) -> str: + return "Service Fabric managed identity configuration not found in environment" diff --git a/sdk/identity/azure-identity/azure/identity/aio/_internal/managed_identity_base.py b/sdk/identity/azure-identity/azure/identity/aio/_internal/managed_identity_base.py new file mode 100644 index 000000000000..63d8b6db9b49 --- /dev/null +++ b/sdk/identity/azure-identity/azure/identity/aio/_internal/managed_identity_base.py @@ -0,0 +1,56 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +import abc +from typing import cast, TYPE_CHECKING + +from . import AsyncContextManager +from .get_token_mixin import GetTokenMixin +from .managed_identity_client import AsyncManagedIdentityClient +from ... import CredentialUnavailableError + +if TYPE_CHECKING: + from typing import Any, Optional + from azure.core.credentials import AccessToken + + +class AsyncManagedIdentityBase(AsyncContextManager, GetTokenMixin): + """Base class for internal credentials using AsyncManagedIdentityClient""" + + def __init__(self, **kwargs: "Any") -> None: + super().__init__() + self._client = self.get_client(**kwargs) + + @abc.abstractmethod + def get_client(self, **kwargs: "Any") -> "Optional[AsyncManagedIdentityClient]": + pass + + @abc.abstractmethod + def get_unavailable_message(self) -> str: + pass + + async def __aenter__(self): + if self._client: + await self._client.__aenter__() + return self + + async def __aexit__(self, *args): + if self._client: + await self._client.__aexit__(*args) + + async def close(self) -> None: + await self.__aexit__() + + async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": + if not self._client: + raise CredentialUnavailableError(message=self.get_unavailable_message()) + return await super().get_token(*scopes, **kwargs) + + async def _acquire_token_silently(self, *scopes: str, **kwargs: "Any") -> "Optional[AccessToken]": + # casting because mypy can't determine that these methods are called + # only by get_token, which raises when self._client is None + return cast(AsyncManagedIdentityClient, self._client).get_cached_token(*scopes) + + async def _request_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": + return await cast(AsyncManagedIdentityClient, self._client).request_token(*scopes, **kwargs) diff --git a/sdk/identity/azure-identity/tests/test_chained_credential.py b/sdk/identity/azure-identity/tests/test_chained_credential.py index 85ce50b5035a..db6da5dc80c7 100644 --- a/sdk/identity/azure-identity/tests/test_chained_credential.py +++ b/sdk/identity/azure-identity/tests/test_chained_credential.py @@ -3,9 +3,9 @@ # Licensed under the MIT License. # ------------------------------------ try: - from unittest.mock import Mock + from unittest.mock import MagicMock, Mock except ImportError: # python < 3.3 - from mock import Mock # type: ignore + from mock import MagicMock, Mock # type: ignore from azure.core.credentials import AccessToken from azure.core.exceptions import ClientAuthenticationError @@ -17,6 +17,37 @@ import pytest +def test_close(): + credentials = [MagicMock(close=Mock()) for _ in range(5)] + chain = ChainedTokenCredential(*credentials) + + for credential in credentials: + assert credential.__exit__.call_count == 0 + + chain.close() + + for credential in credentials: + assert credential.__exit__.call_count == 1 + + +def test_context_manager(): + credentials = [MagicMock() for _ in range(5)] + chain = ChainedTokenCredential(*credentials) + + for credential in credentials: + assert credential.__enter__.call_count == 0 + assert credential.__exit__.call_count == 0 + + with chain: + for credential in credentials: + assert credential.__enter__.call_count == 1 + assert credential.__exit__.call_count == 0 + + for credential in credentials: + assert credential.__enter__.call_count == 1 + assert credential.__exit__.call_count == 1 + + def test_error_message(): first_error = "first_error" first_credential = Mock( diff --git a/sdk/identity/azure-identity/tests/test_context_manager.py b/sdk/identity/azure-identity/tests/test_context_manager.py new file mode 100644 index 000000000000..a777542a414a --- /dev/null +++ b/sdk/identity/azure-identity/tests/test_context_manager.py @@ -0,0 +1,118 @@ +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +try: + from unittest.mock import MagicMock, patch +except ImportError: + from mock import MagicMock, patch # type: ignore + +from azure.identity import ( + AzureApplicationCredential, + AzureCliCredential, + AzurePowerShellCredential, + AuthorizationCodeCredential, + CertificateCredential, + ClientSecretCredential, + DeviceCodeCredential, + EnvironmentCredential, + InteractiveBrowserCredential, + SharedTokenCacheCredential, + UsernamePasswordCredential, + VisualStudioCodeCredential, +) +from azure.identity._constants import EnvironmentVariables + +import pytest + +from test_certificate_credential import CERT_PATH +from test_vscode_credential import GET_USER_SETTINGS + + +class CredentialFixture: + def __init__(self, cls, default_kwargs=None, ctor_patch_factory=None): + self.cls = cls + self._default_kwargs = default_kwargs or {} + self._ctor_patch_factory = ctor_patch_factory or MagicMock + + def get_credential(self, **kwargs): + patch = self._ctor_patch_factory() + with patch: + return self.cls(**dict(self._default_kwargs, **kwargs)) + + +FIXTURES = ( + CredentialFixture( + AuthorizationCodeCredential, + {kwarg: "..." for kwarg in ("tenant_id", "client_id", "authorization_code", "redirect_uri")}, + ), + CredentialFixture(CertificateCredential, {"tenant_id": "...", "client_id": "...", "certificate_path": CERT_PATH}), + CredentialFixture(ClientSecretCredential, {kwarg: "..." for kwarg in ("tenant_id", "client_id", "client_secret")}), + CredentialFixture(DeviceCodeCredential), + CredentialFixture( + EnvironmentCredential, + ctor_patch_factory=lambda: patch.dict( + EnvironmentCredential.__module__ + ".os.environ", + {var: "..." for var in EnvironmentVariables.CLIENT_SECRET_VARS}, + ), + ), + CredentialFixture(InteractiveBrowserCredential), + CredentialFixture(UsernamePasswordCredential, {"client_id": "...", "username": "...", "password": "..."}), + CredentialFixture(VisualStudioCodeCredential, ctor_patch_factory=lambda: patch(GET_USER_SETTINGS, lambda: {})), +) + +all_fixtures = pytest.mark.parametrize("fixture", FIXTURES, ids=lambda fixture: fixture.cls.__name__) + + +@all_fixtures +def test_close(fixture): + transport = MagicMock() + credential = fixture.get_credential(transport=transport) + assert not transport.__enter__.called + assert not transport.__exit__.called + + credential.close() + assert not transport.__enter__.called + assert transport.__exit__.call_count == 1 + + +@all_fixtures +def test_context_manager(fixture): + transport = MagicMock() + credential = fixture.get_credential(transport=transport) + + with credential: + assert transport.__enter__.call_count == 1 + assert not transport.__exit__.called + + assert transport.__enter__.call_count == 1 + assert transport.__exit__.call_count == 1 + + +@all_fixtures +def test_exit_args(fixture): + transport = MagicMock() + credential = fixture.get_credential(transport=transport) + expected_args = ("type", "value", "traceback") + credential.__exit__(*expected_args) + transport.__exit__.assert_called_once_with(*expected_args) + + +@pytest.mark.parametrize( + "cls", + ( + AzureCliCredential, + AzureApplicationCredential, + AzurePowerShellCredential, + EnvironmentCredential, + SharedTokenCacheCredential, + ), +) +def test_no_op(cls): + """Credentials that don't allow custom transports, or require initialization or optional config, should have no-op methods""" + with patch.dict("os.environ", {}, clear=True): + credential = cls() + + with credential: + pass + credential.close() diff --git a/sdk/identity/azure-identity/tests/test_default.py b/sdk/identity/azure-identity/tests/test_default.py index 31c2ba1a71b4..a03a16cb85cc 100644 --- a/sdk/identity/azure-identity/tests/test_default.py +++ b/sdk/identity/azure-identity/tests/test_default.py @@ -24,9 +24,32 @@ from test_shared_cache_credential import build_aad_response, get_account_event, populated_cache try: - from unittest.mock import Mock, patch + from unittest.mock import MagicMock, Mock, patch except ImportError: # python < 3.3 - from mock import Mock, patch # type: ignore + from mock import MagicMock, Mock, patch # type: ignore + + +def test_close(): + transport = MagicMock() + credential = DefaultAzureCredential(transport=transport) + assert not transport.__enter__.called + assert not transport.__exit__.called + + credential.close() + assert not transport.__enter__.called + assert transport.__exit__.called # call count depends on the chain's composition + + +def test_context_manager(): + transport = MagicMock() + credential = DefaultAzureCredential(transport=transport) + + with credential: + assert transport.__enter__.called # call count depends on the chain's composition + assert not transport.__exit__.called + + assert transport.__enter__.called + assert transport.__exit__.called def test_iterates_only_once(): diff --git a/sdk/identity/azure-identity/tests/test_environment_credential.py b/sdk/identity/azure-identity/tests/test_environment_credential.py index 35ce51045ef7..2684263973c4 100644 --- a/sdk/identity/azure-identity/tests/test_environment_credential.py +++ b/sdk/identity/azure-identity/tests/test_environment_credential.py @@ -9,7 +9,7 @@ from azure.identity._constants import EnvironmentVariables import pytest -from helpers import mock, mock_response, Request, validating_transport +from helpers import mock ALL_VARIABLES = { diff --git a/sdk/identity/azure-identity/tests/test_environment_credential_async.py b/sdk/identity/azure-identity/tests/test_environment_credential_async.py index 634dfcb8a2dd..7b473841abb6 100644 --- a/sdk/identity/azure-identity/tests/test_environment_credential_async.py +++ b/sdk/identity/azure-identity/tests/test_environment_credential_async.py @@ -3,7 +3,6 @@ # Licensed under the MIT License. # ------------------------------------ import itertools -import os from unittest import mock from azure.identity import CredentialUnavailableError @@ -12,20 +11,60 @@ import pytest from helpers import mock_response, Request -from helpers_async import async_validating_transport +from helpers_async import async_validating_transport, AsyncMockTransport from test_environment_credential import ALL_VARIABLES +ENVIRON = EnvironmentCredential.__module__ + ".os.environ" + + +@pytest.mark.asyncio +async def test_close(): + transport = AsyncMockTransport() + with mock.patch.dict(ENVIRON, {var: "..." for var in EnvironmentVariables.CLIENT_SECRET_VARS}, clear=True): + credential = EnvironmentCredential(transport=transport) + assert transport.__aexit__.call_count == 0 + + await credential.close() + assert transport.__aexit__.call_count == 1 + + +@pytest.mark.asyncio +async def test_context_manager(): + transport = AsyncMockTransport() + with mock.patch.dict(ENVIRON, {var: "..." for var in EnvironmentVariables.CLIENT_SECRET_VARS}, clear=True): + credential = EnvironmentCredential(transport=transport) + + async with credential: + assert transport.__aenter__.call_count == 1 + assert transport.__aexit__.call_count == 0 + + assert transport.__aenter__.call_count == 1 + assert transport.__aexit__.call_count == 1 + + +@pytest.mark.asyncio +async def test_close_incomplete_configuration(): + with mock.patch.dict(ENVIRON, {}, clear=True): + await EnvironmentCredential().close() + + +@pytest.mark.asyncio +async def test_context_manager_incomplete_configuration(): + with mock.patch.dict(ENVIRON, {}, clear=True): + async with EnvironmentCredential(): + pass + @pytest.mark.asyncio async def test_incomplete_configuration(): """get_token should raise CredentialUnavailableError for incomplete configuration.""" - with mock.patch.dict(os.environ, {}, clear=True): + with mock.patch.dict(ENVIRON, {}, clear=True): with pytest.raises(CredentialUnavailableError) as ex: await EnvironmentCredential().get_token("scope") for a, b in itertools.combinations(ALL_VARIABLES, 2): # all credentials require at least 3 variables set - with mock.patch.dict(os.environ, {a: "a", b: "b"}, clear=True): + with mock.patch.dict(ENVIRON, {a: "a", b: "b"}, clear=True): with pytest.raises(CredentialUnavailableError) as ex: await EnvironmentCredential().get_token("scope") @@ -42,7 +81,7 @@ def test_passes_authority_argument(credential_name, environment_variables): authority = "authority" - with mock.patch.dict("os.environ", {variable: "foo" for variable in environment_variables}, clear=True): + with mock.patch.dict(ENVIRON, {variable: "foo" for variable in environment_variables}, clear=True): with mock.patch(EnvironmentCredential.__module__ + "." + credential_name) as mock_credential: EnvironmentCredential(authority=authority) @@ -65,7 +104,7 @@ def test_client_secret_configuration(): EnvironmentVariables.AZURE_TENANT_ID: tenant_id, } with mock.patch(EnvironmentCredential.__module__ + ".ClientSecretCredential") as mock_credential: - with mock.patch.dict("os.environ", environment, clear=True): + with mock.patch.dict(ENVIRON, environment, clear=True): EnvironmentCredential(foo=bar) assert mock_credential.call_count == 1 @@ -90,7 +129,7 @@ def test_certificate_configuration(): EnvironmentVariables.AZURE_TENANT_ID: tenant_id, } with mock.patch(EnvironmentCredential.__module__ + ".CertificateCredential") as mock_credential: - with mock.patch.dict("os.environ", environment, clear=True): + with mock.patch.dict(ENVIRON, environment, clear=True): EnvironmentCredential(foo=bar) assert mock_credential.call_count == 1 @@ -127,7 +166,7 @@ async def test_client_secret_environment_credential(): EnvironmentVariables.AZURE_CLIENT_SECRET: secret, EnvironmentVariables.AZURE_TENANT_ID: tenant_id, } - with mock.patch.dict("os.environ", environment, clear=True): + with mock.patch.dict(ENVIRON, environment, clear=True): token = await EnvironmentCredential(transport=transport).get_token("scope") assert token.token == access_token diff --git a/sdk/identity/azure-identity/tests/test_managed_identity.py b/sdk/identity/azure-identity/tests/test_managed_identity.py index eb199f08b368..994b25b0d9f0 100644 --- a/sdk/identity/azure-identity/tests/test_managed_identity.py +++ b/sdk/identity/azure-identity/tests/test_managed_identity.py @@ -21,6 +21,56 @@ from helpers import build_aad_response, validating_transport, mock_response, Request MANAGED_IDENTITY_ENVIRON = "azure.identity._credentials.managed_identity.os.environ" +ALL_ENVIRONMENTS = ( + {EnvironmentVariables.MSI_ENDPOINT: "...", EnvironmentVariables.MSI_SECRET: "..."}, # App Service + {EnvironmentVariables.MSI_ENDPOINT: "..."}, # Cloud Shell + { # Service Fabric + EnvironmentVariables.IDENTITY_ENDPOINT: "...", + EnvironmentVariables.IDENTITY_HEADER: "...", + EnvironmentVariables.IDENTITY_SERVER_THUMBPRINT: "...", + }, + {EnvironmentVariables.IDENTITY_ENDPOINT: "...", EnvironmentVariables.IMDS_ENDPOINT: "..."}, # Arc + { # token exchange + EnvironmentVariables.AZURE_CLIENT_ID: "...", + EnvironmentVariables.AZURE_TENANT_ID: "...", + EnvironmentVariables.TOKEN_FILE_PATH: __file__, + }, + {}, # IMDS +) + + +@pytest.mark.parametrize("environ", ALL_ENVIRONMENTS) +def test_close(environ): + transport = mock.MagicMock() + with mock.patch.dict("os.environ", environ, clear=True): + credential = ManagedIdentityCredential(transport=transport) + assert transport.__exit__.call_count == 0 + + credential.close() + assert transport.__exit__.call_count == 1 + + +@pytest.mark.parametrize("environ", ALL_ENVIRONMENTS) +def test_context_manager(environ): + transport = mock.MagicMock() + with mock.patch.dict("os.environ", environ, clear=True): + credential = ManagedIdentityCredential(transport=transport) + + with credential: + assert transport.__enter__.call_count == 1 + assert transport.__exit__.call_count == 0 + + assert transport.__enter__.call_count == 1 + assert transport.__exit__.call_count == 1 + + +def test_close_incomplete_configuration(): + ManagedIdentityCredential().close() + + +def test_context_manager_incomplete_configuration(): + with ManagedIdentityCredential(): + pass ALL_ENVIRONMENTS = ( diff --git a/sdk/identity/azure-identity/tests/test_managed_identity_async.py b/sdk/identity/azure-identity/tests/test_managed_identity_async.py index 14f616c404cc..0f2f5088ea44 100644 --- a/sdk/identity/azure-identity/tests/test_managed_identity_async.py +++ b/sdk/identity/azure-identity/tests/test_managed_identity_async.py @@ -16,7 +16,7 @@ import pytest from helpers import build_aad_response, mock_response, Request -from helpers_async import async_validating_transport, AsyncMockTransport, get_completed_future +from helpers_async import async_validating_transport, AsyncMockTransport from test_managed_identity import ALL_ENVIRONMENTS @@ -94,6 +94,17 @@ async def test_context_manager(environ): assert transport.__aexit__.call_count == 1 +@pytest.mark.asyncio +async def test_close_incomplete_configuration(): + await ManagedIdentityCredential().close() + + +@pytest.mark.asyncio +async def test_context_manager_incomplete_configuration(): + async with ManagedIdentityCredential(): + pass + + @pytest.mark.asyncio async def test_cloud_shell(): """Cloud Shell environment: only MSI_ENDPOINT set""" diff --git a/sdk/identity/azure-identity/tests/test_shared_cache_credential.py b/sdk/identity/azure-identity/tests/test_shared_cache_credential.py index 4cd3f8b1e6d4..5081825cebb5 100644 --- a/sdk/identity/azure-identity/tests/test_shared_cache_credential.py +++ b/sdk/identity/azure-identity/tests/test_shared_cache_credential.py @@ -25,9 +25,9 @@ from six.moves.urllib_parse import urlparse try: - from unittest.mock import Mock, patch + from unittest.mock import MagicMock, Mock, patch except ImportError: # python < 3.3 - from mock import Mock, patch # type: ignore + from mock import MagicMock, Mock, patch # type: ignore from helpers import ( build_aad_response, @@ -41,6 +41,37 @@ ) +def test_close(): + transport = MagicMock() + credential = SharedTokenCacheCredential(transport=transport, _cache=TokenCache()) + with pytest.raises(CredentialUnavailableError): + credential.get_token('scope') + + assert not transport.__enter__.called + assert not transport.__exit__.called + + credential.close() + assert not transport.__enter__.called + assert transport.__exit__.call_count == 1 + + +def test_context_manager(): + transport = MagicMock() + credential = SharedTokenCacheCredential(transport=transport, _cache=TokenCache()) + with pytest.raises(CredentialUnavailableError): + credential.get_token('scope') + + assert not transport.__enter__.called + assert not transport.__exit__.called + + with credential: + assert transport.__enter__.call_count == 1 + assert not transport.__exit__.called + + assert transport.__enter__.call_count == 1 + assert transport.__exit__.call_count == 1 + + def test_tenant_id_validation(): """The credential should raise ValueError when given an invalid tenant_id""" diff --git a/sdk/identity/azure-identity/tests/test_vscode_credential.py b/sdk/identity/azure-identity/tests/test_vscode_credential.py index ec06e41d14b4..e6db05f56e5f 100644 --- a/sdk/identity/azure-identity/tests/test_vscode_credential.py +++ b/sdk/identity/azure-identity/tests/test_vscode_credential.py @@ -225,6 +225,15 @@ def test_adfs(): assert "adfs" in ex.value.message.lower() +def test_custom_cloud_no_authority(): + """The credential is unavailable when VS Code is configured to use a custom cloud with no known authority""" + + cloud_name = "AzureCustomCloud" + credential = get_credential({"azure.cloud": cloud_name}) + with pytest.raises(CredentialUnavailableError, match="authority.*" + cloud_name): + credential.get_token("scope") + + @pytest.mark.parametrize( "cloud,authority", ( diff --git a/sdk/identity/azure-identity/tests/test_vscode_credential_async.py b/sdk/identity/azure-identity/tests/test_vscode_credential_async.py index d91332be0320..40c996e39957 100644 --- a/sdk/identity/azure-identity/tests/test_vscode_credential_async.py +++ b/sdk/identity/azure-identity/tests/test_vscode_credential_async.py @@ -213,6 +213,16 @@ async def test_adfs(): assert "adfs" in ex.value.message.lower() +@pytest.mark.asyncio +async def test_custom_cloud_no_authority(): + """The credential is unavailable when VS Code is configured to use a cloud with no known authority""" + + cloud_name = "AzureCustomCloud" + credential = get_credential({"azure.cloud": cloud_name}) + with pytest.raises(CredentialUnavailableError, match="authority.*" + cloud_name): + await credential.get_token("scope") + + @pytest.mark.asyncio @pytest.mark.parametrize( "cloud,authority", From 1bb2063f23b6f02f4976bbfff5886a08fbdadc82 Mon Sep 17 00:00:00 2001 From: "Tong Xu (MSFT)" <57166602+v-xuto@users.noreply.github.com> Date: Tue, 17 Aug 2021 00:24:18 +0800 Subject: [PATCH 073/104] Fix IOT Device Update readme issue (#18752) * Fix IOT Device Update readme issue * Update README.md --- sdk/deviceupdate/azure-iot-deviceupdate/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/deviceupdate/azure-iot-deviceupdate/README.md b/sdk/deviceupdate/azure-iot-deviceupdate/README.md index 20e6c0e491d3..94b411f30a27 100644 --- a/sdk/deviceupdate/azure-iot-deviceupdate/README.md +++ b/sdk/deviceupdate/azure-iot-deviceupdate/README.md @@ -37,7 +37,7 @@ You can familiarize yourself with different APIs using [Samples](https://github. ## Troubleshooting -The Device Update for IoT Hub client will raise exceptions defined in [Azure Core][https://github.com/azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/readme.md]. +The Device Update for IoT Hub client will raise exceptions defined in [Azure Core](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/README.md). ## Next steps From 16ce116129df8eaeecc9541ce63b83b69349eb5d Mon Sep 17 00:00:00 2001 From: "Liangying.Wei" Date: Tue, 17 Aug 2021 00:32:43 +0800 Subject: [PATCH 074/104] Fix typo and polish the key concepts (#18407) --- .../azure-messaging-webpubsubservice/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/sdk/webpubsub/azure-messaging-webpubsubservice/README.md b/sdk/webpubsub/azure-messaging-webpubsubservice/README.md index cdde8932157b..9135d4d09e22 100644 --- a/sdk/webpubsub/azure-messaging-webpubsubservice/README.md +++ b/sdk/webpubsub/azure-messaging-webpubsubservice/README.md @@ -1,6 +1,6 @@ # Azure WebPubSubService client library for Python -[Azure Web PubSub Service](https://aka.ms/awps/doc) is a service that enables you to build real-time messaging web applications using WebSockets and the publish-subscribe pattern. Any platform supporting WebSocket APIs can connect to the service easily, e.g. web pages, mobile applications, edge devices, etc. The service manages the WebSocket connections for you and allows up to 100K \*concurrent connections. It provides powerful APIs for you to manage these clients and deliver real-time messages. +[Azure Web PubSub Service](https://aka.ms/awps/doc) is a service that enables you to build real-time messaging web applications using WebSockets and the publish-subscribe pattern. Any platform supporting WebSocket APIs can connect to the service easily, e.g. web pages, mobile applications, edge devices, etc. The service manages the WebSocket connections for you and allows up to 100K concurrent connections. It provides powerful APIs for you to manage these clients and deliver real-time messages. Any scenario that requires real-time publish-subscribe messaging between server and clients or among clients, can use Azure Web PubSub service. Traditional real-time features that often require polling from server or submitting HTTP requests, can also use Azure Web PubSub service. @@ -79,9 +79,13 @@ In order to interact with the Azure WebPubSub service, you'll need to create an ## Key concepts +### Connection + +Connections, represented by a connection id, represent an individual websocket connection to the Web PubSub service. Connection id is always unique. + ### Hub -Hub is a logical set of connections. All connections to Web PubSub connect to a specific hub. Messages that are broadcast to the hub are dispatched to all connections to that hub. For example, hub can be used for different applications, different applications can share one Azure Web PubSub service by using different hub names. +Hub is a logical concept for a set of connections. Connections are always connected to a specific hub. Messages that are broadcast to the hub are dispatched to all connections to that hub. Hub can be used for different applications, different applications can share one Azure Web PubSub service by using different hub names. ### Group @@ -91,13 +95,9 @@ Group allow broadcast messages to a subset of connections to the hub. You can ad Connections to Web PubSub can belong to one user. A user might have multiple connections, for example when a single user is connected across multiple devices or multiple browser tabs. -### Connection - -Connections, represented by a connection id, represent an individual websocket connection to the Web PubSub service. Connection id is always unique. - ### Message -A message is either a UTF-8 encoded string, json or raw binary data. +Using this library, you can send messages to the client connections. A message can either be string text, JSON or binary payload. ## Troubleshooting From 623f7e12963e50cbd7440a47fe4b7b8f1ef1e945 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Mon, 16 Aug 2021 09:59:27 -0700 Subject: [PATCH 075/104] Prevent wildcard expansion in git sparse checkout add (#20267) Co-authored-by: Ben Broderick Phillips --- eng/common/pipelines/templates/steps/sparse-checkout.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/common/pipelines/templates/steps/sparse-checkout.yml b/eng/common/pipelines/templates/steps/sparse-checkout.yml index 50603bc35a24..5b36bf48e4a9 100644 --- a/eng/common/pipelines/templates/steps/sparse-checkout.yml +++ b/eng/common/pipelines/templates/steps/sparse-checkout.yml @@ -25,8 +25,6 @@ steps: script: | function SparseCheckout([Array]$paths, [Hashtable]$repository) { - $paths = $paths -Join ' ' - $dir = $repository.WorkingDirectory if (!$dir) { $dir = "./$($repository.Name)" @@ -50,7 +48,9 @@ steps: git sparse-checkout set '/*' '!/*/' '/eng' } - $gitsparsecmd = "git sparse-checkout add $paths" + # Prevent wildcard expansion in Invoke-Expression (e.g. for checkout path '/*') + $quotedPaths = $paths | ForEach-Object { "'$_'" } + $gitsparsecmd = "git sparse-checkout add $quotedPaths" Write-Host $gitsparsecmd Invoke-Expression -Command $gitsparsecmd From d5ce5547680b9009281ba9ceb1628d877a3284c2 Mon Sep 17 00:00:00 2001 From: Rakshith Bhyravabhotla Date: Mon, 16 Aug 2021 10:52:25 -0700 Subject: [PATCH 076/104] Update to use timespan (#20233) * Update to use timespan * lint * lint * lint + test * Update test_logs_client.py * comments * improve message --- sdk/monitor/azure-monitor-query/CHANGELOG.md | 1 + sdk/monitor/azure-monitor-query/README.md | 25 +++++----- .../azure/monitor/query/_helpers.py | 33 ++++++++----- .../azure/monitor/query/_logs_query_client.py | 20 +++----- .../monitor/query/_metrics_query_client.py | 18 +++---- .../azure/monitor/query/_models.py | 17 +++---- .../query/aio/_logs_query_client_async.py | 24 ++++------ .../query/aio/_metrics_query_client_async.py | 16 ++----- .../sample_log_query_client_async.py | 2 +- .../samples/sample_log_query_client.py | 4 +- .../sample_log_query_client_without_pandas.py | 4 +- .../sample_logs_query_key_value_form.py | 4 +- .../tests/async/test_logs_client_async.py | 21 +++++---- .../tests/async/test_metrics_client_async.py | 3 +- .../tests/perfstress_tests/metric_query.py | 4 -- .../tests/perfstress_tests/single_query.py | 10 ++-- .../tests/test_logs_client.py | 27 ++++++----- .../tests/test_logs_timespans.py | 47 +++++-------------- .../tests/test_metrics_client.py | 3 +- 19 files changed, 120 insertions(+), 163 deletions(-) diff --git a/sdk/monitor/azure-monitor-query/CHANGELOG.md b/sdk/monitor/azure-monitor-query/CHANGELOG.md index 90c1edbeb985..ddd660be7f11 100644 --- a/sdk/monitor/azure-monitor-query/CHANGELOG.md +++ b/sdk/monitor/azure-monitor-query/CHANGELOG.md @@ -10,6 +10,7 @@ - Rename `LogsBatchQueryRequest` to `LogsBatchQuery`. - `include_render` is now renamed to `include_visualization` in the query API. - `LogsQueryResult` and `LogsBatchQueryResult` now return `visualization` instead of `render`. +- `start_time`, `duration` and `end_time` are now replaced with a single param called `timespan` ### Bugs Fixed diff --git a/sdk/monitor/azure-monitor-query/README.md b/sdk/monitor/azure-monitor-query/README.md index 6ba734f6bd96..4805006ccdb1 100644 --- a/sdk/monitor/azure-monitor-query/README.md +++ b/sdk/monitor/azure-monitor-query/README.md @@ -100,7 +100,7 @@ Each set of metric values is a time series with the following characteristics: ## Examples - [Single logs query](#single-logs-query) - - [Specify duration](#specify-duration) + - [Specify timespan](#specify-timespan) - [Set logs query timeout](#set-logs-query-timeout) - [Batch logs query](#batch-logs-query) - [Query metrics](#query-metrics) @@ -113,9 +113,9 @@ Each set of metric values is a time series with the following characteristics: This example shows getting a log query. To handle the response and view it in a tabular form, the [pandas](https://pypi.org/project/pandas/) library is used. See the [samples][python-query-samples] if you choose not to use pandas. -#### Specify duration +#### Specify timespan -The `duration` parameter specifies the time duration for which to query the data. This argument can also be accompanied with either `start_time` or `end_time`. If either `start_time` or `end_time` aren't provided, the current time is used as the end time. As an alternative, the `start_time` and `end_time` arguments can be provided together instead of the `duration` argument. For example: +The `timespan` parameter specifies the time duration for which to query the data. The timespan for which to query the data. This can be a timedelta, a timedelta and a start datetime, or a start datetime/end datetime. For example: ```python import os @@ -132,12 +132,14 @@ client = LogsQueryClient(credential) query = """AppRequests | summarize avgRequestDuration=avg(DurationMs) by bin(TimeGenerated, 10m), _ResourceId""" +start_time=datetime(2021, 7, 2) +end_time=datetime.now() + # returns LogsQueryResult response = client.query( os.environ['LOG_WORKSPACE_ID'], query, - start_time=datetime(2021, 6, 2), - end_time=datetime.now() + timespan=(start_time, end_time) ) if not response.tables: @@ -185,14 +187,13 @@ client = LogsQueryClient(credential) requests = [ LogsBatchQuery( query="AzureActivity | summarize count()", - duration=timedelta(hours=1), + timespan=timedelta(hours=1), workspace_id=os.environ['LOG_WORKSPACE_ID'] ), LogsBatchQuery( query= """AppRequests | take 10 | summarize avgRequestDuration=avg(DurationMs) by bin(TimeGenerated, 10m), _ResourceId""", - duration=timedelta(hours=1), - start_time=datetime(2021, 6, 2), + timespan=(datetime(2021, 6, 2), timedelta(hours=1)), workspace_id=os.environ['LOG_WORKSPACE_ID'] ), LogsBatchQueryRequest( @@ -270,13 +271,13 @@ from azure.identity import DefaultAzureCredential credential = DefaultAzureCredential() client = MetricsQueryClient(credential) - +start_time = datetime(2021, 5, 25) +duration = timedelta(days=1) metrics_uri = os.environ['METRICS_RESOURCE_URI'] response = client.query( metrics_uri, metric_names=["PublishSuccessCount"], - start_time=datetime(2021, 5, 25), - duration=timedelta(days=1), + timespan=(start_time, duration) ) for metric in response.metrics: @@ -322,8 +323,6 @@ metrics_uri = os.environ['METRICS_RESOURCE_URI'] response = client.query( metrics_uri, metric_names=["MatchedEventCount"], - start_time=datetime(2021, 6, 21), - duration=timedelta(days=1), aggregations=[AggregationType.COUNT] ) diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_helpers.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_helpers.py index 727906c27494..d1333a4f362c 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_helpers.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_helpers.py @@ -4,6 +4,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +from datetime import datetime, timedelta from typing import TYPE_CHECKING from msrest import Serializer from azure.core.exceptions import HttpResponseError @@ -49,26 +50,34 @@ def order_results(request_order, responses): ordered = [mapping[id] for id in request_order] return ordered -def construct_iso8601(start=None, end=None, duration=None): - if duration is not None: - duration = 'PT{}S'.format(duration.total_seconds()) +def construct_iso8601(timespan=None): + if not timespan: + return None + try: + start, end, duration = None, None, None + if isinstance(timespan[1], datetime): # we treat thi as start_time, end_time + start, end = timespan[0], timespan[1] + elif isinstance(timespan[1], timedelta): # we treat this as start_time, duration + start, duration = timespan[0], timespan[1] + else: + raise ValueError('Tuple must be a start datetime with a timedelta or an end datetime.') + except TypeError: + duration = timespan # it means only duration (timedelta) is provideds + if duration: + try: + duration = 'PT{}S'.format(duration.total_seconds()) + except AttributeError: + raise ValueError('timespan must be a timedelta or a tuple.') iso_str = None if start is not None: start = Serializer.serialize_iso(start) - if end and duration: - raise ValueError("start_time can only be provided with duration or end_time, but not both.") if end is not None: end = Serializer.serialize_iso(end) iso_str = start + '/' + end elif duration is not None: iso_str = start + '/' + duration - else: - raise ValueError("Start time must be provided along with duration or end time.") - elif end is not None: - if not duration: - raise ValueError("End time must be provided along with duration or start time.") - end = Serializer.serialize_iso(end) - iso_str = duration + '/' + end + else: # means that an invalid value None that is provided with start_time + raise ValueError("Duration or end_time cannot be None when provided with start_time.") else: iso_str = duration return iso_str diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_logs_query_client.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_logs_query_client.py index f23157cfca03..30ae9238e579 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_logs_query_client.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_logs_query_client.py @@ -49,28 +49,22 @@ def __init__(self, credential, **kwargs): ) self._query_op = self._client.query - def query(self, workspace_id, query, duration=None, **kwargs): + def query(self, workspace_id, query, timespan=None, **kwargs): # type: (str, str, Optional[timedelta], Any) -> LogsQueryResult """Execute an Analytics query. Executes an Analytics query for data. - **Note**: Although the start_time, end_time, duration are optional parameters, it is highly - recommended to specify the timespan. If not, the entire dataset is queried. - :param workspace_id: ID of the workspace. This is Workspace ID from the Properties blade in the Azure portal. :type workspace_id: str :param query: The Analytics query. Learn more about the `Analytics query syntax `_. :type query: str - :param ~datetime.timedelta duration: The duration for which to query the data. This can also be accompanied - with either start_time or end_time. If start_time or end_time is not provided, the current time is - taken as the end time. - :keyword datetime start_time: The start time from which to query the data. This should be accompanied - with either end_time or duration. - :keyword datetime end_time: The end time till which to query the data. This should be accompanied - with either start_time or duration. + :param timespan: The timespan for which to query the data. This can be a timedelta, + a timedelta and a start datetime, or a start datetime/end datetime. + :type timespan: ~datetime.timedelta or tuple[~datetime.datetime, ~datetime.timedelta] + or tuple[~datetime.datetime, ~datetime.datetime] :keyword int server_timeout: the server timeout in seconds. The default timeout is 3 minutes, and the maximum timeout is 10 minutes. :keyword bool include_statistics: To get information about query statistics. @@ -93,9 +87,7 @@ def query(self, workspace_id, query, duration=None, **kwargs): :dedent: 0 :caption: Get a response for a single Log Query """ - start = kwargs.pop('start_time', None) - end = kwargs.pop('end_time', None) - timespan = construct_iso8601(start, end, duration) + timespan = construct_iso8601(timespan) include_statistics = kwargs.pop("include_statistics", False) include_visualization = kwargs.pop("include_visualization", False) server_timeout = kwargs.pop("server_timeout", None) diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_metrics_query_client.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_metrics_query_client.py index 2467b92216f8..4f0e4a5fe53b 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_metrics_query_client.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_metrics_query_client.py @@ -53,7 +53,7 @@ def __init__(self, credential, **kwargs): self._namespace_op = self._client.metric_namespaces self._definitions_op = self._client.metric_definitions - def query(self, resource_uri, metric_names, duration=None, **kwargs): + def query(self, resource_uri, metric_names, **kwargs): # type: (str, list, Optional[timedelta], Any) -> MetricsResult """Lists the metric values for a resource. @@ -64,13 +64,10 @@ def query(self, resource_uri, metric_names, duration=None, **kwargs): :type resource_uri: str :param metric_names: The names of the metrics to retrieve. :type metric_names: list[str] - :param ~datetime.timedelta duration: The duration for which to query the data. This can also be accompanied - with either start_time or end_time. If start_time or end_time is not provided, the current time is - taken as the end time. - :keyword datetime start_time: The start time from which to query the data. This should be accompanied - with either end_time or duration. - :keyword datetime end_time: The end time till which to query the data. This should be accompanied - with either start_time or duration. + :keyword timespan: The timespan for which to query the data. This can be a timedelta, + a timedelta and a start datetime, or a start datetime/end datetime. + :paramtype timespan: ~datetime.timedelta or tuple[~datetime.datetime, ~datetime.timedelta] + or tuple[~datetime.datetime, ~datetime.datetime] :keyword interval: The interval (i.e. timegrain) of the query. :paramtype interval: ~datetime.timedelta :keyword aggregations: The list of aggregation types to retrieve. Use `azure.monitor.query.AggregationType` @@ -112,12 +109,11 @@ def query(self, resource_uri, metric_names, duration=None, **kwargs): :dedent: 0 :caption: Get a response for a single Metrics Query """ - start = kwargs.pop('start_time', None) - end = kwargs.pop('end_time', None) + aggregations = kwargs.pop("aggregations", None) if aggregations: kwargs.setdefault("aggregation", ",".join(aggregations)) - timespan = construct_iso8601(start, end, duration) + timespan = construct_iso8601(kwargs.pop("timespan", None)) kwargs.setdefault("metricnames", ",".join(metric_names)) kwargs.setdefault("timespan", timespan) generated = self._metrics_op.list(resource_uri, connection_verify=False, **kwargs) diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py index 6f3372a2f53d..79e36c32f3cf 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py @@ -158,13 +158,10 @@ class LogsBatchQuery(object): :param query: The Analytics query. Learn more about the `Analytics query syntax `_. :type query: str - :param ~datetime.timedelta duration: The duration for which to query the data. This can also be accompanied - with either start_time or end_time. If start_time or end_time is not provided, the current time is - taken as the end time. - :keyword datetime start_time: The start time from which to query the data. This should be accompanied - with either end_time or duration. - :keyword datetime end_time: The end time till which to query the data. This should be accompanied - with either start_time or duration. + :param timespan: The timespan for which to query the data. This can be a timedelta, + a timedelta and a start datetime, or a start datetime/end datetime. + :type timespan: ~datetime.timedelta or tuple[~datetime.datetime, ~datetime.timedelta] + or tuple[~datetime.datetime, ~datetime.datetime] :keyword additional_workspaces: A list of workspaces that are included in the query. These can be qualified workspace names, workspace Ids, or Azure resource Ids. :paramtype additional_workspaces: list[str] @@ -180,7 +177,7 @@ class LogsBatchQuery(object): :paramtype headers: dict[str, str] """ - def __init__(self, query, workspace_id, duration=None, **kwargs): #pylint: disable=super-init-not-called + def __init__(self, query, workspace_id, timespan, **kwargs): #pylint: disable=super-init-not-called # type: (str, str, Optional[str], Any) -> None include_statistics = kwargs.pop("include_statistics", False) include_visualization = kwargs.pop("include_visualization", False) @@ -202,9 +199,7 @@ def __init__(self, query, workspace_id, duration=None, **kwargs): #pylint: disab headers['Prefer'] = prefer except TypeError: headers = {'Prefer': prefer} - start = kwargs.pop('start_time', None) - end = kwargs.pop('end_time', None) - timespan = construct_iso8601(start, end, duration) + timespan = construct_iso8601(timespan) additional_workspaces = kwargs.pop("additional_workspaces", None) self.id = kwargs.get("request_id", str(uuid.uuid4())) self.body = { diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_logs_query_client_async.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_logs_query_client_async.py index e68cf4f3983b..06718475a095 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_logs_query_client_async.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_logs_query_client_async.py @@ -5,8 +5,8 @@ # license information. # -------------------------------------------------------------------------- -from datetime import timedelta -from typing import Any, Union, Sequence, Dict, Optional, TYPE_CHECKING +from datetime import datetime, timedelta +from typing import Any, Tuple, Union, Sequence, Dict, Optional, TYPE_CHECKING from azure.core.exceptions import HttpResponseError from .._generated.aio._monitor_query_client import MonitorQueryClient @@ -42,28 +42,22 @@ async def query( self, workspace_id: str, query: str, - duration: Optional[timedelta] = None, + timespan: Optional[Union[timedelta, Tuple[datetime, timedelta], Tuple[datetime, datetime]]] = None, **kwargs: Any) -> LogsQueryResult: """Execute an Analytics query. Executes an Analytics query for data. - **Note**: Although the start_time, end_time, duration are optional parameters, it is highly - recommended to specify the timespan. If not, the entire dataset is queried. - :param workspace_id: ID of the workspace. This is Workspace ID from the Properties blade in the Azure portal. :type workspace_id: str :param query: The Analytics query. Learn more about the `Analytics query syntax `_. :type query: str - :param ~datetime.timedelta duration: The duration for which to query the data. This can also be accompanied - with either start_time or end_time. If start_time or end_time is not provided, the current time is - taken as the end time. - :keyword datetime start_time: The start time from which to query the data. This should be accompanied - with either end_time or duration. - :keyword datetime end_time: The end time till which to query the data. This should be accompanied - with either start_time or duration. + :param timespan: The timespan for which to query the data. This can be a timedelta, + a timedelta and a start datetime, or a start datetime/end datetime. + :type timespan: ~datetime.timedelta or tuple[~datetime.datetime, ~datetime.timedelta] + or tuple[~datetime.datetime, ~datetime.datetime] :keyword int server_timeout: the server timeout. The default timeout is 3 minutes, and the maximum timeout is 10 minutes. :keyword bool include_statistics: To get information about query statistics. @@ -77,9 +71,7 @@ async def query( :rtype: ~azure.monitor.query.LogsQueryResult :raises: ~azure.core.exceptions.HttpResponseError """ - start = kwargs.pop('start_time', None) - end = kwargs.pop('end_time', None) - timespan = construct_iso8601(start, end, duration) + timespan = construct_iso8601(timespan) include_statistics = kwargs.pop("include_statistics", False) include_visualization = kwargs.pop("include_visualization", False) server_timeout = kwargs.pop("server_timeout", None) diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_metrics_query_client_async.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_metrics_query_client_async.py index 4924611a393a..a7095ef6f081 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_metrics_query_client_async.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_metrics_query_client_async.py @@ -47,7 +47,6 @@ async def query( self, resource_uri: str, metric_names: List, - duration: Optional[timedelta] = None, **kwargs: Any ) -> MetricsResult: """Lists the metric values for a resource. @@ -59,13 +58,10 @@ async def query( :type resource_uri: str :param metric_names: The names of the metrics to retrieve. :type metric_names: list - :param ~datetime.timedelta duration: The duration for which to query the data. This can also be accompanied - with either start_time or end_time. If start_time or end_time is not provided, the current time is - taken as the end time. - :keyword datetime start_time: The start time from which to query the data. This should be accompanied - with either end_time or duration. - :keyword datetime end_time: The end time till which to query the data. This should be accompanied - with either start_time or duration. + :keyword timespan: The timespan for which to query the data. This can be a timedelta, + a timedelta and a start datetime, or a start datetime/end datetime. + :paramtype timespan: ~datetime.timedelta or tuple[~datetime.datetime, ~datetime.timedelta] + or tuple[~datetime.datetime, ~datetime.datetime] :keyword interval: The interval (i.e. timegrain) of the query. :paramtype interval: ~datetime.timedelta :keyword aggregations: The list of aggregation types to retrieve. Use `azure.monitor.query.AggregationType` @@ -98,9 +94,7 @@ async def query( :rtype: ~azure.monitor.query.MetricsResult :raises: ~azure.core.exceptions.HttpResponseError """ - start = kwargs.pop('start_time', None) - end = kwargs.pop('end_time', None) - timespan = construct_iso8601(start, end, duration) + timespan = construct_iso8601(kwargs.pop('timespan', None)) kwargs.setdefault("metricnames", ",".join(metric_names)) kwargs.setdefault("timespan", timespan) aggregations = kwargs.pop("aggregations", None) diff --git a/sdk/monitor/azure-monitor-query/samples/async_samples/sample_log_query_client_async.py b/sdk/monitor/azure-monitor-query/samples/async_samples/sample_log_query_client_async.py index 51d16b614467..4aebbde5e27f 100644 --- a/sdk/monitor/azure-monitor-query/samples/async_samples/sample_log_query_client_async.py +++ b/sdk/monitor/azure-monitor-query/samples/async_samples/sample_log_query_client_async.py @@ -24,7 +24,7 @@ async def logs_query(): # returns LogsQueryResult async with client: - response = await client.query(os.environ['LOG_WORKSPACE_ID'], query) + response = await client.query(os.environ['LOG_WORKSPACE_ID'], query, timespan=None) if not response.tables: print("No results for the query") diff --git a/sdk/monitor/azure-monitor-query/samples/sample_log_query_client.py b/sdk/monitor/azure-monitor-query/samples/sample_log_query_client.py index 7f95875af8f3..d9457b6d4b66 100644 --- a/sdk/monitor/azure-monitor-query/samples/sample_log_query_client.py +++ b/sdk/monitor/azure-monitor-query/samples/sample_log_query_client.py @@ -20,10 +20,8 @@ query = """AppRequests | summarize avgRequestDuration=avg(DurationMs) by bin(TimeGenerated, 10m), _ResourceId""" -end_time = datetime.now(UTC()) - # returns LogsQueryResult -response = client.query(os.environ['LOG_WORKSPACE_ID'], query, duration=timedelta(days=1), end_time=end_time) +response = client.query(os.environ['LOG_WORKSPACE_ID'], query, timespan=timedelta(days=1)) if not response.tables: print("No results for the query") diff --git a/sdk/monitor/azure-monitor-query/samples/sample_log_query_client_without_pandas.py b/sdk/monitor/azure-monitor-query/samples/sample_log_query_client_without_pandas.py index 89a55899e5d6..f6a1bff2517d 100644 --- a/sdk/monitor/azure-monitor-query/samples/sample_log_query_client_without_pandas.py +++ b/sdk/monitor/azure-monitor-query/samples/sample_log_query_client_without_pandas.py @@ -16,10 +16,8 @@ query = """AppRequests | summarize avgRequestDuration=avg(DurationMs) by bin(TimeGenerated, 10m), _ResourceId""" -end_time = datetime.now(UTC()) - # returns LogsQueryResult -response = client.query(os.environ['LOG_WORKSPACE_ID'], query, duration=timedelta(hours=1), end_time=end_time) +response = client.query(os.environ['LOG_WORKSPACE_ID'], query, timespan=timedelta(hours=1)) if not response.tables: print("No results for the query") diff --git a/sdk/monitor/azure-monitor-query/samples/sample_logs_query_key_value_form.py b/sdk/monitor/azure-monitor-query/samples/sample_logs_query_key_value_form.py index 6e018588b99d..29feebc087ce 100644 --- a/sdk/monitor/azure-monitor-query/samples/sample_logs_query_key_value_form.py +++ b/sdk/monitor/azure-monitor-query/samples/sample_logs_query_key_value_form.py @@ -16,10 +16,8 @@ query = """AppRequests | summarize avgRequestDuration=avg(DurationMs) by bin(TimeGenerated, 10m), _ResourceId""" -end_time = datetime.now(UTC()) - # returns LogsQueryResult -response = client.query(os.environ['LOG_WORKSPACE_ID'], query, duration=timedelta(days=1), end_time=end_time) +response = client.query(os.environ['LOG_WORKSPACE_ID'], query, timespan=timedelta(days=1)) try: table = response.tables[0] diff --git a/sdk/monitor/azure-monitor-query/tests/async/test_logs_client_async.py b/sdk/monitor/azure-monitor-query/tests/async/test_logs_client_async.py index 4568d2caf48c..6c9ea9f6fd13 100644 --- a/sdk/monitor/azure-monitor-query/tests/async/test_logs_client_async.py +++ b/sdk/monitor/azure-monitor-query/tests/async/test_logs_client_async.py @@ -1,3 +1,5 @@ +from datetime import timedelta +from time import time import pytest import os from azure.identity.aio import ClientSecretCredential @@ -22,7 +24,7 @@ async def test_logs_auth(): summarize avgRequestDuration=avg(DurationMs) by bin(TimeGenerated, 10m), _ResourceId""" # returns LogsQueryResult - response = await client.query(os.environ['LOG_WORKSPACE_ID'], query) + response = await client.query(os.environ['LOG_WORKSPACE_ID'], query, timespan=None) assert response is not None assert response.tables is not None @@ -35,6 +37,7 @@ async def test_logs_server_timeout(): response = await client.query( os.environ['LOG_WORKSPACE_ID'], "range x from 1 to 10000000000 step 1 | count", + timespan=None, server_timeout=1, ) assert e.message.contains('Gateway timeout') @@ -46,18 +49,19 @@ async def test_logs_query_batch(): requests = [ LogsBatchQuery( query="AzureActivity | summarize count()", - timespan="PT1H", + timespan=timedelta(hours=1), workspace_id= os.environ['LOG_WORKSPACE_ID'] ), LogsBatchQuery( query= """AppRequests | take 10 | summarize avgRequestDuration=avg(DurationMs) by bin(TimeGenerated, 10m), _ResourceId""", - timespan="PT1H", + timespan=timedelta(hours=1), workspace_id= os.environ['LOG_WORKSPACE_ID'] ), LogsBatchQuery( query= "AppRequests | take 2", - workspace_id= os.environ['LOG_WORKSPACE_ID'] + workspace_id= os.environ['LOG_WORKSPACE_ID'], + timespan=None ), ] response = await client.query_batch(requests) @@ -76,6 +80,7 @@ async def test_logs_single_query_additional_workspaces_async(): response = await client.query( os.environ['LOG_WORKSPACE_ID'], query, + timespan=None, additional_workspaces=[os.environ["SECONDARY_WORKSPACE_ID"]], ) @@ -92,13 +97,13 @@ async def test_logs_query_batch_additional_workspaces(): requests = [ LogsBatchQuery( query, - timespan="PT1H", + timespan=timedelta(hours=1), workspace_id= os.environ['LOG_WORKSPACE_ID'], additional_workspaces=[os.environ['SECONDARY_WORKSPACE_ID']] ), LogsBatchQuery( query, - timespan="PT1H", + timespan=timedelta(hours=1), workspace_id= os.environ['LOG_WORKSPACE_ID'], additional_workspaces=[os.environ['SECONDARY_WORKSPACE_ID']] ), @@ -123,7 +128,7 @@ async def test_logs_single_query_with_render(): query = """AppRequests""" # returns LogsQueryResult - response = await client.query(os.environ['LOG_WORKSPACE_ID'], query, include_visualization=True) + response = await client.query(os.environ['LOG_WORKSPACE_ID'], query, timespan=None, include_visualization=True) assert response.visualization is not None @@ -135,7 +140,7 @@ async def test_logs_single_query_with_render_and_stats(): query = """AppRequests""" # returns LogsQueryResult - response = await client.query(os.environ['LOG_WORKSPACE_ID'], query, include_visualization=True, include_statistics=True) + response = await client.query(os.environ['LOG_WORKSPACE_ID'], query, timespan=None, include_visualization=True, include_statistics=True) assert response.visualization is not None assert response.statistics is not None diff --git a/sdk/monitor/azure-monitor-query/tests/async/test_metrics_client_async.py b/sdk/monitor/azure-monitor-query/tests/async/test_metrics_client_async.py index 397178256497..fb76a4f4d7ea 100644 --- a/sdk/monitor/azure-monitor-query/tests/async/test_metrics_client_async.py +++ b/sdk/monitor/azure-monitor-query/tests/async/test_metrics_client_async.py @@ -20,8 +20,7 @@ async def test_metrics_auth(): response = await client.query( os.environ['METRICS_RESOURCE_URI'], metric_names=["MatchedEventCount"], - start_time=datetime(2021, 6, 21), - duration=timedelta(days=1), + timespan=timedelta(days=1), aggregations=[AggregationType.COUNT] ) assert response diff --git a/sdk/monitor/azure-monitor-query/tests/perfstress_tests/metric_query.py b/sdk/monitor/azure-monitor-query/tests/perfstress_tests/metric_query.py index 39512ae97e29..11995ed8812c 100644 --- a/sdk/monitor/azure-monitor-query/tests/perfstress_tests/metric_query.py +++ b/sdk/monitor/azure-monitor-query/tests/perfstress_tests/metric_query.py @@ -49,8 +49,6 @@ def run_sync(self): self.metrics_client.query( self.metrics_uri, self.names, - start_time=datetime(2021, 7, 25, 0, 0, 0, tzinfo=timezone.utc), - end_time=datetime(2021, 7, 26, 0, 0, 0, tzinfo=timezone.utc), aggregations=self.aggregations ) @@ -64,7 +62,5 @@ async def run_async(self): await self.async_metrics_client.query( self.metrics_uri, self.names, - start_time=datetime(2021, 7, 25, 0, 0, 0, tzinfo=timezone.utc), - end_time=datetime(2021, 7, 26, 0, 0, 0, tzinfo=timezone.utc), aggregations=self.aggregations ) diff --git a/sdk/monitor/azure-monitor-query/tests/perfstress_tests/single_query.py b/sdk/monitor/azure-monitor-query/tests/perfstress_tests/single_query.py index a8530961df54..724c5dec3d95 100644 --- a/sdk/monitor/azure-monitor-query/tests/perfstress_tests/single_query.py +++ b/sdk/monitor/azure-monitor-query/tests/perfstress_tests/single_query.py @@ -46,11 +46,12 @@ def run_sync(self): Avoid putting any ancilliary logic (e.g. generating UUIDs), and put this in the setup/init instead so that we're only measuring the client API call. """ + start_time=datetime(2021, 7, 25, 0, 0, 0, tzinfo=timezone.utc) + end_time=datetime(2021, 7, 26, 0, 0, 0, tzinfo=timezone.utc) self.logs_client.query( self.workspace_id, self.query, - start_time=datetime(2021, 7, 25, 0, 0, 0, tzinfo=timezone.utc), - end_time=datetime(2021, 7, 26, 0, 0, 0, tzinfo=timezone.utc), + timespan=(start_time, end_time) ) async def run_async(self): @@ -60,9 +61,10 @@ async def run_async(self): Avoid putting any ancilliary logic (e.g. generating UUIDs), and put this in the setup/init instead so that we're only measuring the client API call. """ + start_time=datetime(2021, 7, 25, 0, 0, 0, tzinfo=timezone.utc) + end_time=datetime(2021, 7, 26, 0, 0, 0, tzinfo=timezone.utc) await self.async_logs_client.query( self.workspace_id, self.query, - start_time=datetime(2021, 7, 25, 0, 0, 0, tzinfo=timezone.utc), - end_time=datetime(2021, 7, 26, 0, 0, 0, tzinfo=timezone.utc), + timespan=(start_time, end_time) ) diff --git a/sdk/monitor/azure-monitor-query/tests/test_logs_client.py b/sdk/monitor/azure-monitor-query/tests/test_logs_client.py index 2f46e16b74d8..e9e91b316dcc 100644 --- a/sdk/monitor/azure-monitor-query/tests/test_logs_client.py +++ b/sdk/monitor/azure-monitor-query/tests/test_logs_client.py @@ -1,3 +1,4 @@ +from datetime import timedelta import pytest import os from azure.identity import ClientSecretCredential @@ -34,7 +35,7 @@ def test_logs_single_query_with_non_200(): where TimeGenerated > ago(12h)""" with pytest.raises(HttpResponseError) as e: - client.query(os.environ['LOG_WORKSPACE_ID'], query) + client.query(os.environ['LOG_WORKSPACE_ID'], query, timespan=None) assert "SemanticError" in e.value.message @@ -44,7 +45,7 @@ def test_logs_single_query_with_partial_success(): client = LogsQueryClient(credential) query = "set truncationmaxrecords=1; union * | project TimeGenerated | take 10" - response = client.query(os.environ['LOG_WORKSPACE_ID'], query) + response = client.query(os.environ['LOG_WORKSPACE_ID'], query, timespan=None) assert response is not None @@ -57,6 +58,7 @@ def test_logs_server_timeout(): response = client.query( os.environ['LOG_WORKSPACE_ID'], "range x from 1 to 1000000000000000 step 1 | count", + timespan=None, server_timeout=1, ) assert 'Gateway timeout' in e.value.message @@ -68,18 +70,19 @@ def test_logs_query_batch(): requests = [ LogsBatchQuery( query="AzureActivity | summarize count()", - timespan="PT1H", + timespan=timedelta(hours=1), workspace_id= os.environ['LOG_WORKSPACE_ID'] ), LogsBatchQuery( query= """AppRequests | take 10 | summarize avgRequestDuration=avg(DurationMs) by bin(TimeGenerated, 10m), _ResourceId""", - timespan="PT1H", + timespan=timedelta(hours=1), workspace_id= os.environ['LOG_WORKSPACE_ID'] ), LogsBatchQuery( query= "AppRequests | take 2", - workspace_id= os.environ['LOG_WORKSPACE_ID'] + workspace_id= os.environ['LOG_WORKSPACE_ID'], + timespan=None ), ] response = client.query_batch(requests) @@ -93,7 +96,7 @@ def test_logs_single_query_with_statistics(): query = """AppRequests""" # returns LogsQueryResult - response = client.query(os.environ['LOG_WORKSPACE_ID'], query, include_statistics=True) + response = client.query(os.environ['LOG_WORKSPACE_ID'], query, timespan=None, include_statistics=True) assert response.statistics is not None @@ -115,7 +118,7 @@ def test_logs_single_query_with_render_and_stats(): query = """AppRequests""" # returns LogsQueryResult - response = client.query(os.environ['LOG_WORKSPACE_ID'], query, include_visualization=True, include_statistics=True) + response = client.query(os.environ['LOG_WORKSPACE_ID'], query, timespan=None, include_visualization=True, include_statistics=True) assert response.visualization is not None assert response.statistics is not None @@ -127,19 +130,20 @@ def test_logs_query_batch_with_statistics_in_some(): requests = [ LogsBatchQuery( query="AzureActivity | summarize count()", - timespan="PT1H", + timespan=timedelta(hours=1), workspace_id= os.environ['LOG_WORKSPACE_ID'] ), LogsBatchQuery( query= """AppRequests| summarize avgRequestDuration=avg(DurationMs) by bin(TimeGenerated, 10m), _ResourceId""", - timespan="PT1H", + timespan=timedelta(hours=1), workspace_id= os.environ['LOG_WORKSPACE_ID'], include_statistics=True ), LogsBatchQuery( query= "AppRequests", workspace_id= os.environ['LOG_WORKSPACE_ID'], + timespan=None, include_statistics=True ), ] @@ -160,6 +164,7 @@ def test_logs_single_query_additional_workspaces(): response = client.query( os.environ['LOG_WORKSPACE_ID'], query, + timespan=None, additional_workspaces=[os.environ["SECONDARY_WORKSPACE_ID"]], ) @@ -175,13 +180,13 @@ def test_logs_query_batch_additional_workspaces(): requests = [ LogsBatchQuery( query, - timespan="PT1H", + timespan=timedelta(hours=1), workspace_id= os.environ['LOG_WORKSPACE_ID'], additional_workspaces=[os.environ['SECONDARY_WORKSPACE_ID']] ), LogsBatchQuery( query, - timespan="PT1H", + timespan=timedelta(hours=1), workspace_id= os.environ['LOG_WORKSPACE_ID'], additional_workspaces=[os.environ['SECONDARY_WORKSPACE_ID']] ), diff --git a/sdk/monitor/azure-monitor-query/tests/test_logs_timespans.py b/sdk/monitor/azure-monitor-query/tests/test_logs_timespans.py index 5045ebe78125..b92ae331933b 100644 --- a/sdk/monitor/azure-monitor-query/tests/test_logs_timespans.py +++ b/sdk/monitor/azure-monitor-query/tests/test_logs_timespans.py @@ -30,7 +30,7 @@ def callback(request): dic = json.loads(request.http_request.body) assert dic.get('timespan') is None # returns LogsQueryResult - client.query(os.environ['LOG_WORKSPACE_ID'], query) + client.query(os.environ['LOG_WORKSPACE_ID'], query, timespan=None) @pytest.mark.live_test_only def test_query_start_and_end_time(): @@ -45,22 +45,7 @@ def callback(request): dic = json.loads(request.http_request.body) assert dic.get('timespan') is not None - client.query(os.environ['LOG_WORKSPACE_ID'], query, start_time=start_time, end_time=end_time, raw_request_hook=callback) - -@pytest.mark.live_test_only -def test_query_duration_and_end_time(): - credential = _credential() - client = LogsQueryClient(credential) - query = "AppRequests | take 5" - - end_time = datetime.now(UTC()) - duration = timedelta(days=3) - - def callback(request): - dic = json.loads(request.http_request.body) - assert 'PT259200.0S/' in dic.get('timespan') - - client.query(os.environ['LOG_WORKSPACE_ID'], query, duration=duration, end_time=end_time, raw_request_hook=callback) + client.query(os.environ['LOG_WORKSPACE_ID'], query, timespan=(start_time, end_time), raw_request_hook=callback) @pytest.mark.live_test_only def test_query_duration_and_start_time(): @@ -76,7 +61,7 @@ def callback(request): dic = json.loads(request.http_request.body) assert '/PT259200.0S' in dic.get('timespan') - client.query(os.environ['LOG_WORKSPACE_ID'], query, duration=duration, start_time=start_time, raw_request_hook=callback) + client.query(os.environ['LOG_WORKSPACE_ID'], query, timespan=(start_time,duration), raw_request_hook=callback) @pytest.mark.live_test_only @@ -91,7 +76,7 @@ def callback(request): dic = json.loads(request.http_request.body) assert 'PT259200.0S' in dic.get('timespan') - client.query(os.environ['LOG_WORKSPACE_ID'], query, duration=duration, raw_request_hook=callback) + client.query(os.environ['LOG_WORKSPACE_ID'], query, timespan=duration, raw_request_hook=callback) def test_duration_to_iso8601(): d1 = timedelta(days=1) @@ -102,19 +87,13 @@ def test_duration_to_iso8601(): d6 = timedelta(milliseconds=100000) d7 = timedelta(hours=24, days=1) - assert construct_iso8601(duration=d1) == 'PT86400.0S' - assert construct_iso8601(duration=d2) == 'PT604800.0S' - assert construct_iso8601(duration=d3) == 'PT2160000.0S' - assert construct_iso8601(duration=d4) == 'PT10.0S' - assert construct_iso8601(duration=d5) == 'PT0.001S' - assert construct_iso8601(duration=d5) == 'PT0.001S' - assert construct_iso8601(duration=d7) == 'PT172800.0S' - - with pytest.raises(ValueError, match="End time must be provided along with duration or start time."): - construct_iso8601(end=datetime.now(UTC())) - - with pytest.raises(ValueError, match="Start time must be provided along with duration or end time."): - construct_iso8601(start=datetime.now(UTC())) + assert construct_iso8601(timespan=d1) == 'PT86400.0S' + assert construct_iso8601(timespan=d2) == 'PT604800.0S' + assert construct_iso8601(timespan=d3) == 'PT2160000.0S' + assert construct_iso8601(timespan=d4) == 'PT10.0S' + assert construct_iso8601(timespan=d5) == 'PT0.001S' + assert construct_iso8601(timespan=d5) == 'PT0.001S' + assert construct_iso8601(timespan=d7) == 'PT172800.0S' - with pytest.raises(ValueError, match="start_time can only be provided with duration or end_time, but not both."): - construct_iso8601(end=datetime.now(UTC()), start=datetime(2020, 10, 10), duration=d3) + with pytest.raises(ValueError, match="timespan must be a timedelta or a tuple."): + construct_iso8601(timespan=(datetime.now(UTC()))) diff --git a/sdk/monitor/azure-monitor-query/tests/test_metrics_client.py b/sdk/monitor/azure-monitor-query/tests/test_metrics_client.py index b1f6df6a9d7e..95ee209b6775 100644 --- a/sdk/monitor/azure-monitor-query/tests/test_metrics_client.py +++ b/sdk/monitor/azure-monitor-query/tests/test_metrics_client.py @@ -19,8 +19,7 @@ def test_metrics_auth(): response = client.query( os.environ['METRICS_RESOURCE_URI'], metric_names=["MatchedEventCount"], - start_time=datetime(2021, 6, 21), - duration=timedelta(days=1), + timespan=timedelta(days=1), aggregations=[AggregationType.COUNT] ) assert response From 22e5b84a0c1da43a4e276310867dd63fb6a75f62 Mon Sep 17 00:00:00 2001 From: swathipil <76007337+swathipil@users.noreply.github.com> Date: Mon, 16 Aug 2021 10:58:04 -0700 Subject: [PATCH 077/104] [EventHubs] checkpointstoretable - skip tests until env vars configured (#20289) * skip tests * skip sample --- scripts/devops_tasks/test_run_samples.py | 3 +++ .../tests/test_storage_table_partition_manager.py | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/devops_tasks/test_run_samples.py b/scripts/devops_tasks/test_run_samples.py index 9156a30789a3..94f105587c9d 100644 --- a/scripts/devops_tasks/test_run_samples.py +++ b/scripts/devops_tasks/test_run_samples.py @@ -89,6 +89,9 @@ "iot_hub_connection_string_receive_async.py", "proxy_async.py" ], + "azure-eventhub-checkpointstoretable":[ + "receive_events_using_checkpoint_store.py" + ], "azure-servicebus": [ "mgmt_queue.py", "mgmt_rule.py", diff --git a/sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py b/sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py index f6c0f8bf0e09..33e60c134464 100644 --- a/sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py +++ b/sdk/eventhub/azure-eventhub-checkpointstoretable/tests/test_storage_table_partition_manager.py @@ -177,7 +177,7 @@ def _update_and_list_checkpoint(storage_connection_str, table_name): @pytest.mark.parametrize("storage_connection_str", STORAGE_CONN_STR) -@pytest.mark.liveTest +@pytest.mark.skip("update after adding conn str env var") def test_claim_ownership_exception(storage_connection_str): storage_connection_str, table_name = get_live_storage_table_client( storage_connection_str @@ -189,7 +189,7 @@ def test_claim_ownership_exception(storage_connection_str): @pytest.mark.parametrize("storage_connection_str", STORAGE_CONN_STR) -@pytest.mark.liveTest +@pytest.mark.skip("update after adding conn str env var") def test_claim_and_list_ownership(storage_connection_str): storage_connection_str, table_name = get_live_storage_table_client( storage_connection_str @@ -201,7 +201,7 @@ def test_claim_and_list_ownership(storage_connection_str): @pytest.mark.parametrize("storage_connection_str", STORAGE_CONN_STR) -@pytest.mark.liveTest +@pytest.mark.skip("update after adding conn str env var") def test_update_checkpoint(storage_connection_str): storage_connection_str, table_name = get_live_storage_table_client( storage_connection_str From 7ba9f0434cbce050bfa5e5334f1e146e93b7ea86 Mon Sep 17 00:00:00 2001 From: Rakshith Bhyravabhotla Date: Mon, 16 Aug 2021 11:45:29 -0700 Subject: [PATCH 078/104] Rename attrs is metrics (#20236) --- sdk/monitor/azure-monitor-query/CHANGELOG.md | 5 +++ sdk/monitor/azure-monitor-query/README.md | 2 +- .../monitor/query/_metrics_query_client.py | 5 +-- .../azure/monitor/query/_models.py | 36 +++++++++---------- .../query/aio/_metrics_query_client_async.py | 5 +-- 5 files changed, 30 insertions(+), 23 deletions(-) diff --git a/sdk/monitor/azure-monitor-query/CHANGELOG.md b/sdk/monitor/azure-monitor-query/CHANGELOG.md index ddd660be7f11..11fa24cf682f 100644 --- a/sdk/monitor/azure-monitor-query/CHANGELOG.md +++ b/sdk/monitor/azure-monitor-query/CHANGELOG.md @@ -11,6 +11,11 @@ - `include_render` is now renamed to `include_visualization` in the query API. - `LogsQueryResult` and `LogsBatchQueryResult` now return `visualization` instead of `render`. - `start_time`, `duration` and `end_time` are now replaced with a single param called `timespan` +- `resourceregion` is renamed to `resource_region` in the MetricResult type. +- `top` is renamed to `max_results` in the metric's `query` API. +- `metric_namespace_name` is renamed to `fully_qualified_namespace` +- `is_dimension_required` is renamed to `dimension_required` +- `time_grain` is renamed to `granularity` ### Bugs Fixed diff --git a/sdk/monitor/azure-monitor-query/README.md b/sdk/monitor/azure-monitor-query/README.md index 4805006ccdb1..336a887da4e5 100644 --- a/sdk/monitor/azure-monitor-query/README.md +++ b/sdk/monitor/azure-monitor-query/README.md @@ -297,7 +297,7 @@ MetricsResult |---timespan |---cost |---namespace -|---resourceregion +|---resource_region |---metrics (list of `Metric` objects) |---id |---type diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_metrics_query_client.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_metrics_query_client.py index 4f0e4a5fe53b..0b45d1bc10b3 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_metrics_query_client.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_metrics_query_client.py @@ -73,10 +73,10 @@ def query(self, resource_uri, metric_names, **kwargs): :keyword aggregations: The list of aggregation types to retrieve. Use `azure.monitor.query.AggregationType` enum to get each aggregation type. :paramtype aggregations: list[str] - :keyword top: The maximum number of records to retrieve. + :keyword max_results: The maximum number of records to retrieve. Valid only if $filter is specified. Defaults to 10. - :paramtype top: int + :paramtype max_results: int :keyword orderby: The aggregation to use for sorting results and the direction of the sort. Only one order can be specified. Examples: sum asc. @@ -116,6 +116,7 @@ def query(self, resource_uri, metric_names, **kwargs): timespan = construct_iso8601(kwargs.pop("timespan", None)) kwargs.setdefault("metricnames", ",".join(metric_names)) kwargs.setdefault("timespan", timespan) + kwargs.setdefault("top", kwargs.pop("max_results", None)) generated = self._metrics_op.list(resource_uri, connection_verify=False, **kwargs) return MetricsResult._from_generated(generated) # pylint: disable=protected-access diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py index 79e36c32f3cf..400f9f19f04a 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py @@ -121,8 +121,8 @@ class MetricsResult(object): :vartype interval: ~datetime.timedelta :ivar namespace: The namespace of the metrics that has been queried. :vartype namespace: str - :ivar resourceregion: The region of the resource that has been queried for metrics. - :vartype resourceregion: str + :ivar resource_region: The region of the resource that has been queried for metrics. + :vartype resource_region: str :ivar metrics: Required. The value of the collection. :vartype metrics: list[~monitor_query_client.models.Metric] """ @@ -132,7 +132,7 @@ def __init__(self, **kwargs): self.timespan = kwargs["timespan"] self.interval = kwargs.get("interval", None) self.namespace = kwargs.get("namespace", None) - self.resourceregion = kwargs.get("resourceregion", None) + self.resource_region = kwargs.get("resource_region", None) self.metrics = kwargs["metrics"] @classmethod @@ -144,7 +144,7 @@ def _from_generated(cls, generated): timespan=generated.timespan, interval=generated.interval, namespace=generated.namespace, - resourceregion=generated.resourceregion, + resource_region=generated.resourceregion, metrics=[Metric._from_generated(m) for m in generated.value] # pylint: disable=protected-access ) @@ -302,8 +302,8 @@ class MetricNamespace(object): :paramtype type: str :keyword name: The name of the namespace. :paramtype name: str - :keyword metric_namespace_name: The fully qualified namespace name. - :paramtype metric_namespace_name: str + :keyword fully_qualified_namespace: The fully qualified namespace name. + :paramtype fully_qualified_namespace: str """ def __init__( self, @@ -312,27 +312,27 @@ def __init__( self.id = kwargs.get('id', None) self.type = kwargs.get('type', None) self.name = kwargs.get('name', None) - self.metric_namespace_name = kwargs.get('metric_namespace_name', None) + self.fully_qualified_namespace = kwargs.get('fully_qualified_namespace', None) @classmethod def _from_generated(cls, generated): if not generated: return cls() - metric_namespace_name = None + fully_qualified_namespace = None if generated.properties: - metric_namespace_name = generated.properties.metric_namespace_name + fully_qualified_namespace = generated.properties.metric_namespace_name return cls( id=generated.id, type=generated.type, name=generated.name, - metric_namespace_name=metric_namespace_name + fully_qualified_namespace=fully_qualified_namespace ) class MetricDefinition(object): """Metric definition class specifies the metadata for a metric. - :keyword is_dimension_required: Flag to indicate whether the dimension is required. - :paramtype is_dimension_required: bool + :keyword dimension_required: Flag to indicate whether the dimension is required. + :paramtype dimension_required: bool :keyword resource_id: the resource identifier of the resource that emitted the metric. :paramtype resource_id: str :keyword namespace: the namespace the metric belongs to. @@ -363,7 +363,7 @@ def __init__( **kwargs ): # type: (Any) -> None - self.is_dimension_required = kwargs.get('is_dimension_required', None) # type: Optional[bool] + self.dimension_required = kwargs.get('dimension_required', None) # type: Optional[bool] self.resource_id = kwargs.get('resource_id', None) # type: Optional[str] self.namespace = kwargs.get('namespace', None) # type: Optional[str] self.name = kwargs.get('name', None) # type: Optional[str] @@ -382,7 +382,7 @@ def _from_generated(cls, generated): if generated.dimensions is not None: dimensions = [d.value for d in generated.dimensions] return cls( - is_dimension_required=generated.is_dimension_required, + dimension_required=generated.is_dimension_required, resource_id=generated.resource_id, namespace=generated.namespace, name=generated.name.value, @@ -552,9 +552,9 @@ class MetricAvailability(object): """Metric availability specifies the time grain (aggregation interval or frequency) and the retention period for that time grain. - :keyword time_grain: the time grain specifies the aggregation interval for the metric. Expressed + :keyword granularity: the time grain specifies the aggregation interval for the metric. Expressed as a duration 'PT1M', 'P1D', etc. - :paramtype time_grain: ~datetime.timedelta + :paramtype granularity: ~datetime.timedelta :keyword retention: the retention period for the metric at the specified timegrain. Expressed as a duration 'PT1M', 'P1D', etc. :paramtype retention: ~datetime.timedelta @@ -564,7 +564,7 @@ def __init__( **kwargs ): # type: (Any) -> None - self.time_grain = kwargs.get('time_grain', None) + self.granularity = kwargs.get('granularity', None) self.retention = kwargs.get('retention', None) @classmethod @@ -572,7 +572,7 @@ def _from_generated(cls, generated): if not generated: return cls() return cls( - time_grain=generated.time_grain, + granularity=generated.time_grain, retention=generated.retention ) diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_metrics_query_client_async.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_metrics_query_client_async.py index a7095ef6f081..69da6544cb8c 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_metrics_query_client_async.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_metrics_query_client_async.py @@ -67,10 +67,10 @@ async def query( :keyword aggregations: The list of aggregation types to retrieve. Use `azure.monitor.query.AggregationType` enum to get each aggregation type. :paramtype aggregations: list[str] - :keyword top: The maximum number of records to retrieve. + :keyword max_results: The maximum number of records to retrieve. Valid only if $filter is specified. Defaults to 10. - :paramtype top: int + :paramtype max_results: int :keyword orderby: The aggregation to use for sorting results and the direction of the sort. Only one order can be specified. Examples: sum asc. @@ -97,6 +97,7 @@ async def query( timespan = construct_iso8601(kwargs.pop('timespan', None)) kwargs.setdefault("metricnames", ",".join(metric_names)) kwargs.setdefault("timespan", timespan) + kwargs.setdefault("top", kwargs.pop("max_results", None)) aggregations = kwargs.pop("aggregations", None) if aggregations: kwargs.setdefault("aggregation", ",".join(aggregations)) From 7baa4976f776a729f9692d1073572c8b4003aecd Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Mon, 16 Aug 2021 16:18:30 -0700 Subject: [PATCH 079/104] Sync eng/common directory with azure-sdk-tools for PR 1909 (#20298) * add test-proxy invocations to eng/common folder Co-authored-by: scbedd <45376673+scbedd@users.noreply.github.com> --- eng/common/scripts/common.ps1 | 1 + .../scripts/trust-proxy-certificate.ps1 | 6 ++ eng/common/testproxy/apply-dev-cert.sh | 31 +++++++ eng/common/testproxy/docker-start-proxy.ps1 | 83 ++++++++++++++++++ eng/common/testproxy/dotnet-devcert.crt | 20 +++++ eng/common/testproxy/dotnet-devcert.pfx | Bin 0 -> 2445 bytes eng/common/testproxy/localhost.conf | 23 +++++ eng/common/testproxy/test-proxy-docker.yml | 15 ++++ eng/common/testproxy/test-proxy-tool.yml | 47 ++++++++++ 9 files changed, 226 insertions(+) create mode 100644 eng/common/scripts/trust-proxy-certificate.ps1 create mode 100644 eng/common/testproxy/apply-dev-cert.sh create mode 100644 eng/common/testproxy/docker-start-proxy.ps1 create mode 100644 eng/common/testproxy/dotnet-devcert.crt create mode 100644 eng/common/testproxy/dotnet-devcert.pfx create mode 100644 eng/common/testproxy/localhost.conf create mode 100644 eng/common/testproxy/test-proxy-docker.yml create mode 100644 eng/common/testproxy/test-proxy-tool.yml diff --git a/eng/common/scripts/common.ps1 b/eng/common/scripts/common.ps1 index 4e0b0847cdbf..4f31c92c3d20 100644 --- a/eng/common/scripts/common.ps1 +++ b/eng/common/scripts/common.ps1 @@ -44,3 +44,4 @@ $GetDocsMsMetadataForPackageFn = "Get-${Language}-DocsMsMetadataForPackage" $GetDocsMsDevLanguageSpecificPackageInfoFn = "Get-${Language}-DocsMsDevLanguageSpecificPackageInfo" $GetGithubIoDocIndexFn = "Get-${Language}-GithubIoDocIndex" $FindArtifactForApiReviewFn = "Find-${Language}-Artifacts-For-Apireview" +$TestProxyTrustCertFn = "Import-Dev-Cert-${Language}" diff --git a/eng/common/scripts/trust-proxy-certificate.ps1 b/eng/common/scripts/trust-proxy-certificate.ps1 new file mode 100644 index 000000000000..144d304cfd18 --- /dev/null +++ b/eng/common/scripts/trust-proxy-certificate.ps1 @@ -0,0 +1,6 @@ +. $PSScriptRoot/common.ps1 + +if ($TestProxyTrustCertFn -and (Test-Path "Function:$TestProxyTrustCertFn")) +{ + &$TestProxyTrustCertFn +} \ No newline at end of file diff --git a/eng/common/testproxy/apply-dev-cert.sh b/eng/common/testproxy/apply-dev-cert.sh new file mode 100644 index 000000000000..5b4523e8c3c6 --- /dev/null +++ b/eng/common/testproxy/apply-dev-cert.sh @@ -0,0 +1,31 @@ +#!/bin/bash +TMP_PATH=$CERT_FOLDER +PFXFILE=$CERT_FOLDER/dotnet-devcert.pfx +CRTFILE=$CERT_FOLDER/dotnet-devcert.crt + +NSSDB_PATHS=( + "$HOME/.pki/nssdb" + "$HOME/snap/chromium/current/.pki/nssdb" + "$HOME/snap/postman/current/.pki/nssdb" +) + +function configure_nssdb() { + echo "Configuring nssdb for $1" + certutil -d sql:$1 -D -n dotnet-devcert + certutil -d sql:$1 -A -t "CP,," -n dotnet-devcert -i $CRTFILE +} + +for NSSDB in ${NSSDB_PATHS[@]}; do + if [ -d "$NSSDB" ]; then + configure_nssdb $NSSDB + fi +done + +if [ $(id -u) -ne 0 ]; then + SUDO='sudo' +fi + +$SUDO cp $CRTFILE "/usr/local/share/ca-certificates" +$SUDO update-ca-certificates + +dotnet dev-certs https --clean --import $PFXFILE -p "password" diff --git a/eng/common/testproxy/docker-start-proxy.ps1 b/eng/common/testproxy/docker-start-proxy.ps1 new file mode 100644 index 000000000000..4e5da37278a2 --- /dev/null +++ b/eng/common/testproxy/docker-start-proxy.ps1 @@ -0,0 +1,83 @@ + #!/usr/bin/env pwsh -c + +<# +.DESCRIPTION +Start the docker proxy container. If it is already running, quietly exit. Any other error should fail. +.PARAMETER Mode +"start" or "stop" to start up or stop the test-proxy instance. +.PARAMETER TargetFolder +The folder in which context the test proxy will be started. Defaults to current working directory. +#> +[CmdletBinding(SupportsShouldProcess = $true)] +param( + [ValidateSet("start", "stop")] + [String] + $Mode, + [String] + $TargetFolder = "." +) + +try { + docker --version | Out-Null +} +catch { + Write-Error "A invocation of docker --version failed. This indicates that docker is not properly installed or running." + Write-Error "Please check your docker invocation and try running the script again." +} + +$SELECTED_IMAGE_TAG = "1037115" +$CONTAINER_NAME = "ambitious_azsdk_test_proxy" +$LINUX_IMAGE_SOURCE = "azsdkengsys.azurecr.io/engsys/testproxy-lin:${SELECTED_IMAGE_TAG}" +$WINDOWS_IMAGE_SOURCE = "azsdkengsys.azurecr.io/engsys/testproxy-win:${SELECTED_IMAGE_TAG}" +$root = (Resolve-Path $TargetFolder).Path.Replace("`\", "/") + +function Get-Proxy-Container(){ + return (docker container ls -a --format "{{ json . }}" --filter "name=$CONTAINER_NAME" ` + | ConvertFrom-Json ` + | Select-Object -First 1) +} + + +$SelectedImage = $LINUX_IMAGE_SOURCE +$Initial = "" + +# most of the time, running this script on a windows machine will work just fine, as docker defaults to linux containers +# however, in CI, windows images default to _windows_ containers. We cannot swap them. We can tell if we're in a CI build by +# checking for the environment variable TF_BUILD. +if ($IsWindows -and $env:TF_BUILD){ + $SelectedImage = $WINDOWS_IMAGE_SOURCE + $Initial = "C:" +} + +if ($Mode -eq "start"){ + $proxyContainer = Get-Proxy-Container + + # if we already have one, we just need to check the state + if($proxyContainer){ + if ($proxyContainer.State -eq "running") + { + Write-Host "Discovered an already running instance of the test-proxy!. Exiting" + exit(0) + } + } + # else we need to create it + else { + Write-Host "Attempting creation of Docker host $CONTAINER_NAME" + Write-Host "docker container create -v `"${root}:${Initial}/etc/testproxy`" -p 5001:5001 -p 5000:5000 --name $CONTAINER_NAME $SelectedImage" + docker container create -v "${root}:${Initial}/etc/testproxy" -p 5001:5001 -p 5000:5000 --name $CONTAINER_NAME $SelectedImage + } + + Write-Host "Attempting start of Docker host $CONTAINER_NAME" + docker container start $CONTAINER_NAME +} + +if ($Mode -eq "stop"){ + $proxyContainer = Get-Proxy-Container + + if($proxyContainer){ + if($proxyContainer.State -eq "running"){ + Write-Host "Found a running instance of $CONTAINER_NAME, shutting it down." + docker container stop $CONTAINER_NAME + } + } +} \ No newline at end of file diff --git a/eng/common/testproxy/dotnet-devcert.crt b/eng/common/testproxy/dotnet-devcert.crt new file mode 100644 index 000000000000..e8575ea44564 --- /dev/null +++ b/eng/common/testproxy/dotnet-devcert.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUPMKpJ/j10eQrcQBNnkImIaOYHakwDQYJKoZIhvcNAQEL +BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTIxMDgwNTAwMzU1NloXDTIyMDgw +NTAwMzU1NlowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAxe/ZseXgOTVoF7uTjX5Leknk95jIoyGc+VlxA8BhzGOr +r4u6VNQZRCMq+svHY36tW4+u/xHNe2kvbwy2mnS8cFFLfst+94qBZVJDBxSGZ9I/ +wekErNsjFsik4UrMvcC+ZlGPh7hb3f7tSx29tn1DIkAUXVnbZ6TT5s+mYRQpZ6fW +6kR3RNfc0A1IUM7Zs9yfNEr0O2H41P2HcLKoOPtvd7GvTQm9Ofh3srKvII+sZn/J +WH7r76oRQMX904mOMdryQwZLObsqX4dXIEbafKVSecB3PBVIhv8gVtJhcZbQP1pI +mMiWd6PHv46ZhGf7+cKnYUSa8Ia2t/wetK1wd00dFwIDAQABo4GRMIGOMA8GA1Ud +EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGmMBYGA1UdJQEB/wQMMAoGCCsGAQUF +BwMBMBcGA1UdEQEB/wQNMAuCCWxvY2FsaG9zdDA6BgorBgEEAYI3VAEBBCwMKkFT +UC5ORVQgQ29yZSBIVFRQUyBkZXZlbG9wbWVudCBjZXJ0aWZpY2F0ZTANBgkqhkiG +9w0BAQsFAAOCAQEAIj2VlBVcXGSly6KCBg6lgwFi+henWfSox77iuGAaAxDjN3jd +9lZahW4MPNLHKSrPRb4YNSLZ2jh7zdcttQrqd4qH65o1q56q5JrCmli99iIzY9Y8 +RdYyxK4Zzr31wjpsyFiWQfqJTuSFUUg9uDDj0negwEZLIGlt7nr12wflt2+QOJtD +byMeSZLbB5dPzn341DK0qfJEJMMgL0XsPEVZ3TQ6Alc9zq5wI608C/mXnz3xJE05 +UTYD8pRJJ/DyG0empvOVE8Sg93msHPquAbgqO9aqCpykgg/a8CFvI4wRdfvGEFlv +8XJKL8Y/PFsmFeO3axq3zUYKFVdc9Un4dFIaag== +-----END CERTIFICATE----- diff --git a/eng/common/testproxy/dotnet-devcert.pfx b/eng/common/testproxy/dotnet-devcert.pfx new file mode 100644 index 0000000000000000000000000000000000000000..28058ae4ce30e7a413e8f872d930fa2cf5c2107c GIT binary patch literal 2445 zcmY+Ec{me}AIEKGOw3W1T%&R;L(Z@fa?O=93FS=q=BQl7a-{|M|6Xqd27(0wI1w0#Ef}JdY@Ym$AHWSL zz(7zS3`GAI)K?F!Tb zfjk`X7|v1{OYWP-ZccVCBTB-xZYA4g%!tC;_FsW8vbMzZGh3`8ogVrPMR>ljPU4#- z`G@P4g@lf03(hTENs)vkx^jBoGHwj2avv-Dpe_DO>@3jk<%U$iX9rZd`=jP! zsg>})<%?TyfZg|Y*>jhF5Sk^W#Xi;Zf992<-1wem2j0S$iBLn3j~5NK^GDtfIXo`5 zEs4Sf`)CEeP0j%@`i~ke|2fh@=L=@SIJ}`Y+kWWchubBzbXCRXNLitiiMY3dmu!a( zFZPEvT^=8TlPT8*{GH8Y<-2>g>eDZprB2Z+>uP-Z?YAXY9h_{s@4_XehsU4Id_iyC zJ+N--k7cI{U3Bi+p2UKd+buQ)=Z*I*(W5Hw)&cuE;drYzBT8WE$tY9^^4o53%-qi5 z=n{`d!C!c+~BNXhVHGYMn+(JJ0#LCDfvOFPO#fMYz)uYiLDW|Co z(JGTK!;W~b1WLVc_OQ;;y-e`1>Itds$%e}1YQK|Ze#ae*l3sb6q>JipNOI#XV=WLu zsiaZOG)Y@E9Hc?8IGLp#_fdMEJxgwAltLxG(ZXfxQMhi>=<_k}P;!U4_5&K0su_n9 zQ&wnVaA_R&m2zs__fZs>G)%_NW)SfLFgowbEDRqBT^z zJMo)_(u@dc8+TU{Xdrq5=H(TjX}T`cCNE>>pH3;Ad}l6&(NCGu#)3`Gm)tWnFX*fWw>iusH-DeXc-0_K%B?cPcYb`dW?L5*s2f4hp zKeP|&@yDS&;8*PpQw~cQEhAf!7vf#A2DL4a-dY3E@O)XZKK~Y*%(FLu`*?(Zen_F2 zPxvUY0RHLI{s$pqq*$-r#fUBwfZo(KCs%hX?u@6-^jp@|GJ(4$>d|yLeaX7K7qf1N25=t-MWP)nc}xHt_coMNUZF&!y2dObegcrn^uF-D>4qs;DA=zqU?bmyx|I zx{YWUS(>xDdPsmyh{Z*-lg^&5RYzXkyVj#%Jjao_N!q@F2y*i=D;iN=%^8j1li)|W zO$Tp!3PT4fpfxfDq zUhF8y%X|XI1;l*cygss_+G?*f_ik^z=Ke5}=A~KOvHxYg)!i}dxwR25Xf+f!SPifN zK_Y9AKWpP+oI@T^$XT5`{_B4e3fD|c@Q}89T*QQwyld*zXZCAD4>GC}9;NG;RG0(5 znCLlG-=@yqe0I($$p5%?wp-oxY5FwGxwa%0!TBYiZX~;QPV~q@A%SXMowq=`bW3rT zPIq&knIrEPBS8(i=47qf){UF!GGy&r0Z;BbJc~h^^*-$0zZUMj%x?59QtrM0%^JKZ$4FPS{j?Ut<*pX!#dB%!EbOGU5*$5VFUa)Y@$M;Z z4sl8Ns(swP-zX*T#^Q9`@)Sed>bf4v-3@?4?C!~cisATi`B3dvT1mth0W%(+%O^(X)3 zB7ad%T0XtsUdE>o28`a;_iQtx4RfXR|6{`h;drtDABlWO*H zgT|>(isc2UO4D+-y-(X5*;PMlIb6=BB$EqoGaR;5T|(3cEW!exbkWR0 zKSxCTZ>!9^nIMV@rXZp3&~tT3_6(~U@dzr@{&LObWzJXp+%8Ugw8q*?g_nMorpp7&E#Ztx{^h3z}&B?D+fl@MlU+)b>qDi^1L1WD%$SyN(bMH5llaAfgwMN+(1yb)GL# zB644QI=;pr)DSWV2$)M5$_W(X;s71nM&EriZMXu9q4}jIu`Zb2ZMe}2;=yh6dp0e8 JEc(5Y{{n}~oSOgu literal 0 HcmV?d00001 diff --git a/eng/common/testproxy/localhost.conf b/eng/common/testproxy/localhost.conf new file mode 100644 index 000000000000..2e03415293cc --- /dev/null +++ b/eng/common/testproxy/localhost.conf @@ -0,0 +1,23 @@ +[req] +prompt = no +default_bits = 2048 +distinguished_name = subject +req_extensions = req_ext +x509_extensions = x509_ext + +[ subject ] +commonName = localhost + +[req_ext] +basicConstraints = critical, CA:true +subjectAltName = @alt_names + +[x509_ext] +basicConstraints = critical, CA:true +keyUsage = critical, keyCertSign, cRLSign, digitalSignature,keyEncipherment +extendedKeyUsage = critical, serverAuth +subjectAltName = critical, @alt_names +1.3.6.1.4.1.311.84.1.1 = ASN1:UTF8String:ASP.NET Core HTTPS development certificate # Needed to get it imported by dotnet dev-certs + +[alt_names] +DNS.1 = localhost diff --git a/eng/common/testproxy/test-proxy-docker.yml b/eng/common/testproxy/test-proxy-docker.yml new file mode 100644 index 000000000000..97617b6fd08a --- /dev/null +++ b/eng/common/testproxy/test-proxy-docker.yml @@ -0,0 +1,15 @@ +parameters: + rootFolder: '$(Build.SourcesDirectory)' + +steps: + - pwsh: | + $(Build.SourcesDirectory)/eng/common/scripts/trust-proxy-certificate.ps1 + displayName: 'Language Specific Certificate Trust' + + - pwsh: | + $(Build.SourcesDirectory)/eng/common/testproxy/docker-start-proxy.ps1 -Mode start -TargetFolder "${{ parameters.rootFolder }}" + displayName: 'Run the docker container' + + - pwsh: | + docker container ls -a + displayName: Check running container \ No newline at end of file diff --git a/eng/common/testproxy/test-proxy-tool.yml b/eng/common/testproxy/test-proxy-tool.yml new file mode 100644 index 000000000000..9f24b0f0d527 --- /dev/null +++ b/eng/common/testproxy/test-proxy-tool.yml @@ -0,0 +1,47 @@ +parameters: + rootFolder: '$(Build.SourcesDirectory)' + +steps: + - pwsh: | + $(Build.SourcesDirectory)/eng/common/scripts/trust-proxy-certificate.ps1 + displayName: 'Language Specific Certificate Trust' + + - pwsh: | + Write-Host "##vso[task.setvariable variable=OriginalPath]$env:PATH" + displayName: 'Store Path Value' + + - pwsh: | + Write-Host "##vso[task.setvariable variable=ASPNETCORE_Kestrel__Certificates__Default__Path]$(Build.SourcesDirectory)/eng/common/testproxy/dotnet-devcert.pfx" + Write-Host "##vso[task.setvariable variable=ASPNETCORE_Kestrel__Certificates__Default__Password]password" + displayName: 'Configure Kestrel Environment Variables' + + - task: UseDotNet@2 + displayName: "Use .NET Core SDK" + inputs: + packageType: sdk + version: 5.0.205 + + - pwsh: | + dotnet tool install azure.sdk.tools.testproxy ` + --tool-path $(Build.BinariesDirectory)/test-proxy ` + --add-source https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-net/nuget/v3/index.json ` + --version 1.0.0-dev.20210811.2 + displayName: "Install test-proxy" + + - pwsh: | + Start-Process $(Build.BinariesDirectory)/test-proxy/test-proxy.exe ` + -ArgumentList "--storage-location '${{ parameters.rootFolder }}'" ` + -NoNewWindow -PassThru + displayName: 'Run the testproxy - windows' + condition: and(succeeded(), eq(variables['Agent.OS'],'Windows_NT')) + + # nohup does NOT continue beyond the current session if you use it within powershell + - bash: | + sudo nohup $(Build.BinariesDirectory)/test-proxy/test-proxy & + displayName: "Run the testproxy - linux/mac" + condition: and(succeeded(), ne(variables['Agent.OS'],'Windows_NT')) + workingDirectory: "${{ parameters.rootFolder }}" + + - pwsh: | + Write-Host "##vso[task.setvariable variable=PATH]$(OriginalPath)" + displayName: 'Restore .NET version by resetting path' \ No newline at end of file From c9c5f527bff852d1442949ee48bebe086b8a1a37 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Mon, 16 Aug 2021 17:08:22 -0700 Subject: [PATCH 080/104] Increment package version after release of azure-eventgrid (#20204) --- sdk/eventgrid/azure-eventgrid/CHANGELOG.md | 10 ++++++++++ .../azure-eventgrid/azure/eventgrid/_version.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/sdk/eventgrid/azure-eventgrid/CHANGELOG.md b/sdk/eventgrid/azure-eventgrid/CHANGELOG.md index 5ffabbeb8994..a2d64cc37fa4 100644 --- a/sdk/eventgrid/azure-eventgrid/CHANGELOG.md +++ b/sdk/eventgrid/azure-eventgrid/CHANGELOG.md @@ -1,5 +1,15 @@ # Release History +## 4.5.1 (Unreleased) + +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes + ## 4.5.0 (2021-08-10) ### Features Added diff --git a/sdk/eventgrid/azure-eventgrid/azure/eventgrid/_version.py b/sdk/eventgrid/azure-eventgrid/azure/eventgrid/_version.py index 5638bcf9e648..2d9497f33fec 100644 --- a/sdk/eventgrid/azure-eventgrid/azure/eventgrid/_version.py +++ b/sdk/eventgrid/azure-eventgrid/azure/eventgrid/_version.py @@ -9,4 +9,4 @@ # regenerated. # -------------------------------------------------------------------------- -VERSION = "4.5.0" +VERSION = "4.5.1" From 1bed1fd8738df9f72818a27451b29d9c4e05b620 Mon Sep 17 00:00:00 2001 From: Azure CLI Bot Date: Tue, 17 Aug 2021 10:34:25 +0800 Subject: [PATCH 081/104] [AutoRelease] t2-iothubprovisioningservices-2021-07-15-81882 (#19816) * CodeGen from PR 15207 in Azure/azure-rest-api-specs Deviceprovisiongservices t1 config (#15207) * sql t2 readme config * readme config * Update readme.python.md * conflient resolve * t1 revert * Update readme.python.md Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com> * version,CHANGELOG Co-authored-by: SDKAuto Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com> Co-authored-by: PythonSdkPipelines --- .../CHANGELOG.md | 6 ++ .../_meta.json | 11 ++-- .../iothubprovisioningservices/_version.py | 2 +- .../operations/_dps_certificate_operations.py | 12 ++-- .../_iot_dps_resource_operations.py | 64 +++++++++---------- .../aio/operations/_operations.py | 2 +- .../models/_models.py | 5 ++ .../models/_models_py3.py | 6 ++ .../_iot_dps_resource_operations.py | 20 +++--- 9 files changed, 74 insertions(+), 54 deletions(-) diff --git a/sdk/iothub/azure-mgmt-iothubprovisioningservices/CHANGELOG.md b/sdk/iothub/azure-mgmt-iothubprovisioningservices/CHANGELOG.md index 73a4f2aee085..88bcaa9942a0 100644 --- a/sdk/iothub/azure-mgmt-iothubprovisioningservices/CHANGELOG.md +++ b/sdk/iothub/azure-mgmt-iothubprovisioningservices/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +## 1.0.0 (2021-07-15) + +**Features** + + - Model CertificateBodyDescription has a new parameter is_verified + ## 1.0.0b1 (2021-05-14) This is beta preview version. diff --git a/sdk/iothub/azure-mgmt-iothubprovisioningservices/_meta.json b/sdk/iothub/azure-mgmt-iothubprovisioningservices/_meta.json index a0296d99df0f..9a155702e00a 100644 --- a/sdk/iothub/azure-mgmt-iothubprovisioningservices/_meta.json +++ b/sdk/iothub/azure-mgmt-iothubprovisioningservices/_meta.json @@ -1,8 +1,11 @@ { - "autorest": "3.4.2", - "use": "@autorest/python@5.6.6", - "commit": "51d02bcb2421ebf41e0380f0c1542b07badd01b3", + "autorest": "3.4.5", + "use": [ + "@autorest/python@5.8.4", + "@autorest/modelerfour@4.19.2" + ], + "commit": "933b6d3d88fd5fc93be36731c2837b7b109ba49a", "repository_url": "https://github.com/Azure/azure-rest-api-specs", - "autorest_command": "autorest specification/deviceprovisioningservices/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.4.2", + "autorest_command": "autorest specification/deviceprovisioningservices/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.8.4 --use=@autorest/modelerfour@4.19.2 --version=3.4.5", "readme": "specification/deviceprovisioningservices/resource-manager/readme.md" } \ No newline at end of file diff --git a/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/_version.py b/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/_version.py index e5754a47ce68..c47f66669f1b 100644 --- a/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/_version.py +++ b/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "1.0.0b1" +VERSION = "1.0.0" diff --git a/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/aio/operations/_dps_certificate_operations.py b/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/aio/operations/_dps_certificate_operations.py index 2cee209a1e2e..02951540ce7d 100644 --- a/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/aio/operations/_dps_certificate_operations.py +++ b/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/aio/operations/_dps_certificate_operations.py @@ -47,7 +47,7 @@ async def get( resource_group_name: str, provisioning_service_name: str, if_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> "_models.CertificateResponse": """Get the certificate from the provisioning service. @@ -117,7 +117,7 @@ async def create_or_update( certificate_name: str, certificate_description: "_models.CertificateBodyDescription", if_match: Optional[str] = None, - **kwargs + **kwargs: Any ) -> "_models.CertificateResponse": """Upload the certificate to the provisioning service. @@ -203,7 +203,7 @@ async def delete( certificate_last_updated: Optional[datetime.datetime] = None, certificate_has_private_key: Optional[bool] = None, certificate_nonce: Optional[str] = None, - **kwargs + **kwargs: Any ) -> None: """Delete the Provisioning Service Certificate. @@ -301,7 +301,7 @@ async def list( self, resource_group_name: str, provisioning_service_name: str, - **kwargs + **kwargs: Any ) -> "_models.CertificateListDescription": """Get all the certificates tied to the provisioning service. @@ -370,7 +370,7 @@ async def generate_verification_code( certificate_last_updated: Optional[datetime.datetime] = None, certificate_has_private_key: Optional[bool] = None, certificate_nonce: Optional[str] = None, - **kwargs + **kwargs: Any ) -> "_models.VerificationCodeResponse": """Generate verification code for Proof of Possession. @@ -481,7 +481,7 @@ async def verify_certificate( certificate_last_updated: Optional[datetime.datetime] = None, certificate_has_private_key: Optional[bool] = None, certificate_nonce: Optional[str] = None, - **kwargs + **kwargs: Any ) -> "_models.CertificateResponse": """Verify certificate's private key possession. diff --git a/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/aio/operations/_iot_dps_resource_operations.py b/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/aio/operations/_iot_dps_resource_operations.py index a9028e3ee10f..ce2bd7cc82e9 100644 --- a/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/aio/operations/_iot_dps_resource_operations.py +++ b/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/aio/operations/_iot_dps_resource_operations.py @@ -47,7 +47,7 @@ async def get( self, provisioning_service_name: str, resource_group_name: str, - **kwargs + **kwargs: Any ) -> "_models.ProvisioningServiceDescription": """Get the non-security related metadata of the provisioning service. @@ -109,7 +109,7 @@ async def _create_or_update_initial( resource_group_name: str, provisioning_service_name: str, iot_dps_description: "_models.ProvisioningServiceDescription", - **kwargs + **kwargs: Any ) -> "_models.ProvisioningServiceDescription": cls = kwargs.pop('cls', None) # type: ClsType["_models.ProvisioningServiceDescription"] error_map = { @@ -167,7 +167,7 @@ async def begin_create_or_update( resource_group_name: str, provisioning_service_name: str, iot_dps_description: "_models.ProvisioningServiceDescription", - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.ProvisioningServiceDescription"]: """Create or update the metadata of the provisioning service. @@ -183,8 +183,8 @@ async def begin_create_or_update( :type iot_dps_description: ~azure.mgmt.iothubprovisioningservices.models.ProvisioningServiceDescription :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. + :keyword polling: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 ProvisioningServiceDescription or the result of cls(response) @@ -242,7 +242,7 @@ async def _update_initial( resource_group_name: str, provisioning_service_name: str, provisioning_service_tags: "_models.TagsResource", - **kwargs + **kwargs: Any ) -> "_models.ProvisioningServiceDescription": cls = kwargs.pop('cls', None) # type: ClsType["_models.ProvisioningServiceDescription"] error_map = { @@ -295,7 +295,7 @@ async def begin_update( resource_group_name: str, provisioning_service_name: str, provisioning_service_tags: "_models.TagsResource", - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.ProvisioningServiceDescription"]: """Update an existing provisioning service's tags. @@ -311,8 +311,8 @@ async def begin_update( :type provisioning_service_tags: ~azure.mgmt.iothubprovisioningservices.models.TagsResource :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. + :keyword polling: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 ProvisioningServiceDescription or the result of cls(response) @@ -369,7 +369,7 @@ async def _delete_initial( self, provisioning_service_name: str, resource_group_name: str, - **kwargs + **kwargs: Any ) -> None: cls = kwargs.pop('cls', None) # type: ClsType[None] error_map = { @@ -414,7 +414,7 @@ async def begin_delete( self, provisioning_service_name: str, resource_group_name: str, - **kwargs + **kwargs: Any ) -> AsyncLROPoller[None]: """Delete the Provisioning Service. @@ -426,8 +426,8 @@ async def begin_delete( :type resource_group_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. + :keyword polling: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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) @@ -478,7 +478,7 @@ def get_long_running_output(pipeline_response): def list_by_subscription( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.ProvisioningServiceDescriptionListResult"]: """Get all the provisioning services in a subscription. @@ -548,7 +548,7 @@ async def get_next(next_link=None): def list_by_resource_group( self, resource_group_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.ProvisioningServiceDescriptionListResult"]: """Get a list of all provisioning services in the given resource group. @@ -622,7 +622,7 @@ async def get_operation_result( resource_group_name: str, provisioning_service_name: str, asyncinfo: str = "true", - **kwargs + **kwargs: Any ) -> "_models.AsyncOperationResult": """Gets the status of a long running operation, such as create, update or delete a provisioning service. @@ -691,7 +691,7 @@ def list_valid_skus( self, provisioning_service_name: str, resource_group_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.IotDpsSkuDefinitionListResult"]: """Get the list of valid SKUs for a provisioning service. @@ -767,7 +767,7 @@ async def get_next(next_link=None): async def check_provisioning_service_name_availability( self, arguments: "_models.OperationInputs", - **kwargs + **kwargs: Any ) -> "_models.NameAvailabilityInfo": """Check if a provisioning service name is available. @@ -831,7 +831,7 @@ def list_keys( self, provisioning_service_name: str, resource_group_name: str, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.SharedAccessSignatureAuthorizationRuleListResult"]: """Get the security metadata for a provisioning service. @@ -910,7 +910,7 @@ async def list_keys_for_key_name( provisioning_service_name: str, key_name: str, resource_group_name: str, - **kwargs + **kwargs: Any ) -> "_models.SharedAccessSignatureAuthorizationRuleAccessRightsDescription": """Get a shared access policy by name from a provisioning service. @@ -975,7 +975,7 @@ async def list_private_link_resources( self, resource_group_name: str, resource_name: str, - **kwargs + **kwargs: Any ) -> "_models.PrivateLinkResources": """List private link resources. @@ -1038,7 +1038,7 @@ async def get_private_link_resources( resource_group_name: str, resource_name: str, group_id: str, - **kwargs + **kwargs: Any ) -> "_models.GroupIdInformation": """Get the specified private link resource. @@ -1103,7 +1103,7 @@ async def list_private_endpoint_connections( self, resource_group_name: str, resource_name: str, - **kwargs + **kwargs: Any ) -> List["_models.PrivateEndpointConnection"]: """List private endpoint connections. @@ -1166,7 +1166,7 @@ async def get_private_endpoint_connection( resource_group_name: str, resource_name: str, private_endpoint_connection_name: str, - **kwargs + **kwargs: Any ) -> "_models.PrivateEndpointConnection": """Get private endpoint connection. @@ -1233,7 +1233,7 @@ async def _create_or_update_private_endpoint_connection_initial( resource_name: str, private_endpoint_connection_name: str, private_endpoint_connection: "_models.PrivateEndpointConnection", - **kwargs + **kwargs: Any ) -> "_models.PrivateEndpointConnection": cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnection"] error_map = { @@ -1293,7 +1293,7 @@ async def begin_create_or_update_private_endpoint_connection( resource_name: str, private_endpoint_connection_name: str, private_endpoint_connection: "_models.PrivateEndpointConnection", - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.PrivateEndpointConnection"]: """Create or update private endpoint connection. @@ -1310,8 +1310,8 @@ async def begin_create_or_update_private_endpoint_connection( :type private_endpoint_connection: ~azure.mgmt.iothubprovisioningservices.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: 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. + :keyword polling: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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) @@ -1371,7 +1371,7 @@ async def _delete_private_endpoint_connection_initial( resource_group_name: str, resource_name: str, private_endpoint_connection_name: str, - **kwargs + **kwargs: Any ) -> Optional["_models.PrivateEndpointConnection"]: cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.PrivateEndpointConnection"]] error_map = { @@ -1426,7 +1426,7 @@ async def begin_delete_private_endpoint_connection( resource_group_name: str, resource_name: str, private_endpoint_connection_name: str, - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.PrivateEndpointConnection"]: """Delete private endpoint connection. @@ -1441,8 +1441,8 @@ async def begin_delete_private_endpoint_connection( :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: 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. + :keyword polling: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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) diff --git a/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/aio/operations/_operations.py b/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/aio/operations/_operations.py index 4c89d5acb537..b30023fea877 100644 --- a/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/aio/operations/_operations.py +++ b/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/aio/operations/_operations.py @@ -43,7 +43,7 @@ def __init__(self, client, config, serializer, deserializer) -> None: def list( self, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.OperationListResult"]: """Lists all of the available Microsoft.Devices REST API operations. diff --git a/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/models/_models.py b/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/models/_models.py index 2a870e44bb9c..5930c54f5312 100644 --- a/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/models/_models.py +++ b/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/models/_models.py @@ -39,10 +39,14 @@ class CertificateBodyDescription(msrest.serialization.Model): :param certificate: Base-64 representation of the X509 leaf certificate .cer file or just .pem file content. :type certificate: str + :param is_verified: True indicates that the certificate will be created in verified state and + proof of possession will not be required. + :type is_verified: bool """ _attribute_map = { 'certificate': {'key': 'certificate', 'type': 'str'}, + 'is_verified': {'key': 'isVerified', 'type': 'bool'}, } def __init__( @@ -51,6 +55,7 @@ def __init__( ): super(CertificateBodyDescription, self).__init__(**kwargs) self.certificate = kwargs.get('certificate', None) + self.is_verified = kwargs.get('is_verified', None) class CertificateListDescription(msrest.serialization.Model): diff --git a/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/models/_models_py3.py b/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/models/_models_py3.py index 043323238efd..9a6b001cec85 100644 --- a/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/models/_models_py3.py +++ b/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/models/_models_py3.py @@ -46,20 +46,26 @@ class CertificateBodyDescription(msrest.serialization.Model): :param certificate: Base-64 representation of the X509 leaf certificate .cer file or just .pem file content. :type certificate: str + :param is_verified: True indicates that the certificate will be created in verified state and + proof of possession will not be required. + :type is_verified: bool """ _attribute_map = { 'certificate': {'key': 'certificate', 'type': 'str'}, + 'is_verified': {'key': 'isVerified', 'type': 'bool'}, } def __init__( self, *, certificate: Optional[str] = None, + is_verified: Optional[bool] = None, **kwargs ): super(CertificateBodyDescription, self).__init__(**kwargs) self.certificate = certificate + self.is_verified = is_verified class CertificateListDescription(msrest.serialization.Model): diff --git a/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/operations/_iot_dps_resource_operations.py b/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/operations/_iot_dps_resource_operations.py index b83e48185913..715172d43336 100644 --- a/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/operations/_iot_dps_resource_operations.py +++ b/sdk/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices/operations/_iot_dps_resource_operations.py @@ -190,8 +190,8 @@ def begin_create_or_update( :type iot_dps_description: ~azure.mgmt.iothubprovisioningservices.models.ProvisioningServiceDescription :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. + :keyword polling: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 ProvisioningServiceDescription or the result of cls(response) @@ -320,8 +320,8 @@ def begin_update( :type provisioning_service_tags: ~azure.mgmt.iothubprovisioningservices.models.TagsResource :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. + :keyword polling: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 ProvisioningServiceDescription or the result of cls(response) @@ -437,8 +437,8 @@ def begin_delete( :type resource_group_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. + :keyword polling: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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) @@ -1334,8 +1334,8 @@ def begin_create_or_update_private_endpoint_connection( :type private_endpoint_connection: ~azure.mgmt.iothubprovisioningservices.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: 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. + :keyword polling: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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) @@ -1467,8 +1467,8 @@ def begin_delete_private_endpoint_connection( :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: 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. + :keyword polling: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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) From 8ad0ebb46597a2bf5031c58cb141a4ee964155da Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Tue, 17 Aug 2021 09:38:00 -0700 Subject: [PATCH 082/104] Enable API review approval check for Java spring packages (#20311) Co-authored-by: praveenkuttappan --- eng/common/scripts/Create-APIReview.ps1 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/eng/common/scripts/Create-APIReview.ps1 b/eng/common/scripts/Create-APIReview.ps1 index 3451cf7ab66b..5f1b0b320063 100644 --- a/eng/common/scripts/Create-APIReview.ps1 +++ b/eng/common/scripts/Create-APIReview.ps1 @@ -140,7 +140,9 @@ if ($packages) else { # Return error code if status code is 201 for new data plane package - if ($pkgInfo.SdkType -eq "client" -and $pkgInfo.IsNewSdk) + # Temporarily enable API review for spring SDK types. Ideally this should be done be using 'IsReviewRequired' method in language side + # to override default check of SDK type client + if (($pkgInfo.SdkType -eq "client" -or $pkgInfo.SdkType -eq "spring") -and $pkgInfo.IsNewSdk) { if ($respCode -eq '201') { From 7829a54074c4098f3b5df2d7857644a6629db12c Mon Sep 17 00:00:00 2001 From: Scott Beddall <45376673+scbedd@users.noreply.github.com> Date: Tue, 17 Aug 2021 12:41:44 -0700 Subject: [PATCH 083/104] feedback from docs repo (#20316) --- sdk/purview/azure-purview-scanning/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sdk/purview/azure-purview-scanning/README.md b/sdk/purview/azure-purview-scanning/README.md index f0b9598b7f05..3cb97f885da3 100644 --- a/sdk/purview/azure-purview-scanning/README.md +++ b/sdk/purview/azure-purview-scanning/README.md @@ -52,7 +52,7 @@ from azure.purview.scanning import PurviewScanningClient from azure.identity import DefaultAzureCredential credential = DefaultAzureCredential() -client = PurviewScanningClient(endpoint="https://.scanning.purview.azure.com", credential=credential) +client = PurviewScanningClient(endpoint="https://.scan.purview.azure.com", credential=credential) ``` ## Key concepts @@ -77,7 +77,7 @@ from azure.purview.scanning.rest import data_sources from azure.core.exceptions import HttpResponseError credential = DefaultAzureCredential() -client = PurviewScanningClient(endpoint="https://.scanning.purview.azure.com", credential=credential) +client = PurviewScanningClient(endpoint="https://.scan.purview.azure.com", credential=credential) request = data_sources.build_list_all_request() @@ -124,7 +124,7 @@ logger.setLevel(logging.DEBUG) handler = logging.StreamHandler(stream=sys.stdout) logger.addHandler(handler) -endpoint = "https://.scanning.purview.azure.com" +endpoint = "https://.scan.purview.azure.com" credential = DefaultAzureCredential() # This client will log detailed information about its HTTP sessions, at DEBUG level From a21d368258874cf836b749ad49ccacadf3a7b288 Mon Sep 17 00:00:00 2001 From: Yalin Li Date: Tue, 17 Aug 2021 13:53:42 -0700 Subject: [PATCH 084/104] [ACR]Bug fix for lacking of 'https://' prefix in endpoint in preparer (#20314) --- .../azure-containerregistry/tests/preparer.py | 4 +- ...test_anon_access.test_delete_manifest.yaml | 48 +- ...st_anon_access.test_delete_repository.yaml | 16 +- .../test_anon_access.test_delete_tag.yaml | 18 +- ...n_access.test_get_manifest_properties.yaml | 71 +- ...access.test_get_repository_properties.yaml | 26 +- ..._access.test_list_manifest_properties.yaml | 102 +- ...non_access.test_list_repository_names.yaml | 30 +- ...ss.test_list_repository_names_by_page.yaml | 2344 +---------------- ..._anon_access.test_list_tag_properties.yaml | 42 +- ...ccess.test_update_manifest_properties.yaml | 119 +- ...ess.test_update_repository_properties.yaml | 40 +- ...non_access.test_update_tag_properties.yaml | 44 +- ...non_access_async.test_delete_manifest.yaml | 56 +- ...n_access_async.test_delete_repository.yaml | 22 +- ...est_anon_access_async.test_delete_tag.yaml | 22 +- ...ss_async.test_get_manifest_properties.yaml | 80 +- ..._async.test_get_repository_properties.yaml | 28 +- ...s_async.test_list_manifest_properties.yaml | 78 +- ...cess_async.test_list_repository_names.yaml | 34 +- ...nc.test_list_repository_names_by_page.yaml | 1560 +---------- ...access_async.test_list_tag_properties.yaml | 30 +- ...async.test_update_manifest_properties.yaml | 135 +- ...ync.test_update_repository_properties.yaml | 52 +- ...cess_async.test_update_tag_properties.yaml | 52 +- ..._registry_client.test_delete_manifest.yaml | 144 +- ...t.test_delete_manifest_does_not_exist.yaml | 173 +- ...egistry_client.test_delete_repository.yaml | 111 +- ...test_delete_repository_does_not_exist.yaml | 24 +- ...ainer_registry_client.test_delete_tag.yaml | 96 +- ...client.test_delete_tag_does_not_exist.yaml | 24 +- ...y_client.test_expiration_time_parsing.yaml | 76 +- ...y_client.test_get_manifest_properties.yaml | 113 +- ...et_manifest_properties_does_not_exist.yaml | 171 +- ...client.test_get_repository_properties.yaml | 32 +- ...gistry_client.test_get_tag_properties.yaml | 32 +- ...est_get_tag_properties_does_not_exist.yaml | 4 +- ...ient.test_incorrect_credential_scopes.yaml | 48 + ...y_client.test_list_registry_artifacts.yaml | 187 +- ...est_list_registry_artifacts_ascending.yaml | 404 +-- ....test_list_registry_artifacts_by_page.yaml | 1579 ++--------- ...st_list_registry_artifacts_descending.yaml | 408 +-- ...try_client.test_list_repository_names.yaml | 39 +- ...nt.test_list_repository_names_by_page.yaml | 2276 +--------------- ...istry_client.test_list_tag_properties.yaml | 44 +- ...t_list_tag_properties_order_ascending.yaml | 126 +- ..._list_tag_properties_order_descending.yaml | 122 +- ...lient.test_update_manifest_properties.yaml | 399 ++- ...est_update_manifest_properties_kwargs.yaml | 828 ++++-- ...ent.test_update_repository_properties.yaml | 172 +- ...t_update_repository_properties_kwargs.yaml | 410 ++- ...try_client.test_update_tag_properties.yaml | 156 +- ...ent.test_update_tag_properties_kwargs.yaml | 340 ++- ...try_client_async.test_delete_manifest.yaml | 140 +- ...c.test_delete_manifest_does_not_exist.yaml | 169 +- ...y_client_async.test_delete_repository.yaml | 117 +- ...test_delete_repository_does_not_exist.yaml | 28 +- ...registry_client_async.test_delete_tag.yaml | 99 +- ..._async.test_delete_tag_does_not_exist.yaml | 34 +- ...nt_async.test_expiration_time_parsing.yaml | 96 +- ...nt_async.test_get_manifest_properties.yaml | 116 +- ...et_manifest_properties_does_not_exist.yaml | 6 +- ..._async.test_get_repository_properties.yaml | 40 +- ..._client_async.test_get_tag_properties.yaml | 40 +- ...est_get_tag_properties_does_not_exist.yaml | 6 +- ...sync.test_incorrect_credential_scopes.yaml | 31 + ...nt_async.test_list_registry_artifacts.yaml | 195 +- ...est_list_registry_artifacts_ascending.yaml | 407 +-- ....test_list_registry_artifacts_by_page.yaml | 1102 ++------ ...st_list_registry_artifacts_descending.yaml | 411 +-- ...ient_async.test_list_repository_names.yaml | 49 +- ...nc.test_list_repository_names_by_page.yaml | 1431 ++++------ ...client_async.test_list_tag_properties.yaml | 52 +- ...t_list_tag_properties_order_ascending.yaml | 125 +- ..._list_tag_properties_order_descending.yaml | 125 +- ...async.test_update_manifest_properties.yaml | 382 ++- ...est_update_manifest_properties_kwargs.yaml | 781 ++++-- ...y_client_async.test_update_properties.yaml | 170 +- ...t_update_repository_properties_kwargs.yaml | 394 ++- ...ient_async.test_update_tag_properties.yaml | 154 +- ...ync.test_update_tag_properties_kwargs.yaml | 323 ++- 81 files changed, 7161 insertions(+), 13453 deletions(-) create mode 100644 sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_incorrect_credential_scopes.yaml create mode 100644 sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_incorrect_credential_scopes.yaml diff --git a/sdk/containerregistry/azure-containerregistry/tests/preparer.py b/sdk/containerregistry/azure-containerregistry/tests/preparer.py index fa485da7a4dd..e5748d9f62a2 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/preparer.py +++ b/sdk/containerregistry/azure-containerregistry/tests/preparer.py @@ -10,7 +10,7 @@ acr_preparer = functools.partial( PowerShellPreparer, "containerregistry", - containerregistry_endpoint="fake_url.azurecr.io", + containerregistry_endpoint="https://fake_url.azurecr.io", containerregistry_resource_group="fake_rg", - containerregistry_anonregistry_endpoint="fake_url.azurecr.io", + containerregistry_anonregistry_endpoint="https://fake_url.azurecr.io", ) diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_delete_manifest.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_delete_manifest.yaml index af6a43d61afa..48995ea18285 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_delete_manifest.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_delete_manifest.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:14:21 GMT + - Tue, 17 Aug 2021 18:06:52 GMT docker-distribution-api-version: - registry/2.0 server: @@ -46,7 +46,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password headers: Accept: - application/json @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '108' + - '112' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:14:22 GMT + - Tue, 17 Aug 2021 18:06:52 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.633333' + - '166.55' status: code: 200 message: OK @@ -93,14 +93,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", - "tag": {"name": "latest", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-11T21:17:46.0365675Z", "lastUpdateTime": "2021-05-13T16:00:26.9280451Z", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/hello-world", + "tag": {"name": "latest", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:04:24.1991429Z", "lastUpdateTime": "2021-08-17T18:04:24.1991429Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -112,11 +112,11 @@ interactions: connection: - keep-alive content-length: - - '392' + - '396' content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:14:22 GMT + - Tue, 17 Aug 2021 18:06:52 GMT docker-distribution-api-version: - registry/2.0 server: @@ -141,9 +141,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/v2/library%2Fhello-world/manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/v2/library%2Fhello-world/manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -162,7 +162,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:14:22 GMT + - Tue, 17 Aug 2021 18:06:52 GMT docker-distribution-api-version: - registry/2.0 server: @@ -178,7 +178,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Adelete&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Adelete&grant_type=password headers: Accept: - application/json @@ -187,11 +187,11 @@ interactions: Connection: - keep-alive Content-Length: - - '101' + - '105' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -203,7 +203,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:14:22 GMT + - Tue, 17 Aug 2021 18:06:52 GMT server: - openresty strict-transport-security: @@ -211,7 +211,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.616667' + - '166.533333' status: code: 200 message: OK @@ -227,9 +227,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/v2/library%2Fhello-world/manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/v2/library%2Fhello-world/manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -248,7 +248,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:14:22 GMT + - Tue, 17 Aug 2021 18:06:52 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_delete_repository.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_delete_repository.yaml index 84ec5eda3fb6..3214042bb3df 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_delete_repository.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_delete_repository.yaml @@ -11,7 +11,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world response: @@ -32,7 +32,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:14:23 GMT + - Tue, 17 Aug 2021 18:06:52 GMT docker-distribution-api-version: - registry/2.0 server: @@ -48,7 +48,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Adelete&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Adelete&grant_type=password headers: Accept: - application/json @@ -57,11 +57,11 @@ interactions: Connection: - keep-alive Content-Length: - - '101' + - '105' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -73,7 +73,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:14:23 GMT + - Tue, 17 Aug 2021 18:06:52 GMT server: - openresty strict-transport-security: @@ -97,7 +97,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world response: @@ -118,7 +118,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:14:24 GMT + - Tue, 17 Aug 2021 18:06:52 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_delete_tag.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_delete_tag.yaml index e0686a3f26c3..7c0e9a18be9f 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_delete_tag.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_delete_tag.yaml @@ -11,7 +11,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: @@ -32,7 +32,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:14:24 GMT + - Tue, 17 Aug 2021 18:06:52 GMT docker-distribution-api-version: - registry/2.0 server: @@ -48,7 +48,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Adelete&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Adelete&grant_type=password headers: Accept: - application/json @@ -57,11 +57,11 @@ interactions: Connection: - keep-alive Content-Length: - - '101' + - '105' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -73,7 +73,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:14:25 GMT + - Tue, 17 Aug 2021 18:06:53 GMT server: - openresty strict-transport-security: @@ -81,7 +81,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.6' + - '166.116667' status: code: 200 message: OK @@ -97,7 +97,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: @@ -118,7 +118,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:14:25 GMT + - Tue, 17 Aug 2021 18:06:53 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_get_manifest_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_get_manifest_properties.yaml index ade69a1a5277..355fb8ddd88b 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_get_manifest_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_get_manifest_properties.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:07 GMT + - Tue, 17 Aug 2021 18:06:53 GMT docker-distribution-api-version: - registry/2.0 server: @@ -46,7 +46,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password headers: Accept: - application/json @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '108' + - '112' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:07 GMT + - Tue, 17 Aug 2021 18:06:53 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '166.183333' status: code: 200 message: OK @@ -93,14 +93,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", - "tag": {"name": "latest", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-11T21:17:46.0365675Z", "lastUpdateTime": "2021-05-13T16:00:26.9280451Z", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/hello-world", + "tag": {"name": "latest", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:04:24.1991429Z", "lastUpdateTime": "2021-08-17T18:04:24.1991429Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -112,11 +112,11 @@ interactions: connection: - keep-alive content-length: - - '392' + - '396' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:07 GMT + - Tue, 17 Aug 2021 18:06:53 GMT docker-distribution-api-version: - registry/2.0 server: @@ -139,9 +139,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -160,7 +160,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:07 GMT + - Tue, 17 Aug 2021 18:06:53 GMT docker-distribution-api-version: - registry/2.0 server: @@ -176,7 +176,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password headers: Accept: - application/json @@ -185,11 +185,11 @@ interactions: Connection: - keep-alive Content-Length: - - '108' + - '112' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -201,7 +201,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:08 GMT + - Tue, 17 Aug 2021 18:06:53 GMT server: - openresty strict-transport-security: @@ -209,7 +209,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.633333' + - '166.166667' status: code: 200 message: OK @@ -223,26 +223,27 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", - "manifest": {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-13T16:00:26.4243258Z", "lastUpdateTime": - "2021-05-13T16:00:26.4243258Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/hello-world", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:04:20.3411937Z", "lastUpdateTime": + "2021-08-17T18:04:20.3411937Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["latest", "v1", "v2", "v3", "v4"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: @@ -253,11 +254,11 @@ interactions: connection: - keep-alive content-length: - - '1598' + - '1725' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:08 GMT + - Tue, 17 Aug 2021 18:06:53 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_get_repository_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_get_repository_properties.yaml index 42c14660cc04..15f546528641 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_get_repository_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_get_repository_properties.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:08 GMT + - Tue, 17 Aug 2021 18:06:53 GMT docker-distribution-api-version: - registry/2.0 server: @@ -46,7 +46,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password headers: Accept: - application/json @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '108' + - '112' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:09 GMT + - Tue, 17 Aug 2021 18:06:53 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '165.983333' status: code: 200 message: OK @@ -93,14 +93,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", - "createdTime": "2021-05-11T21:17:45.937904Z", "lastUpdateTime": "2021-05-13T16:00:26.7224943Z", - "manifestCount": 12, "tagCount": 5, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/hello-world", + "createdTime": "2021-08-17T18:04:20.3129746Z", "lastUpdateTime": "2021-08-17T18:04:16.4657043Z", + "manifestCount": 11, "tagCount": 5, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": false}}' headers: @@ -112,11 +112,11 @@ interactions: connection: - keep-alive content-length: - - '325' + - '330' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:09 GMT + - Tue, 17 Aug 2021 18:06:53 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_list_manifest_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_list_manifest_properties.yaml index efd1616d4872..fbf3f6938dba 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_list_manifest_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_list_manifest_properties.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:35:06 GMT + - Tue, 17 Aug 2021 18:06:53 GMT docker-distribution-api-version: - registry/2.0 server: @@ -46,7 +46,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password headers: Accept: - application/json @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '108' + - '112' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:35:07 GMT + - Tue, 17 Aug 2021 18:06:53 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '166.633333' status: code: 200 message: OK @@ -93,72 +93,68 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", - "manifests": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "imageSize": 525, "createdTime": "2021-05-11T21:17:46.894001Z", "lastUpdateTime": - "2021-05-11T21:17:46.894001Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "imageSize": 525, "createdTime": "2021-05-11T21:17:47.5289051Z", "lastUpdateTime": - "2021-05-11T21:17:47.5289051Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-13T16:00:26.4243258Z", "lastUpdateTime": - "2021-05-13T16:00:26.4243258Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/hello-world", + "manifests": [{"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:04:20.3411937Z", "lastUpdateTime": + "2021-08-17T18:04:20.3411937Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["latest", "v1", "v2", "v3", "v4"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"digest": - "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", - "imageSize": 1125, "createdTime": "2021-05-13T16:00:27.8207151Z", "lastUpdateTime": - "2021-05-13T16:00:27.8207151Z", "architecture": "amd64", "os": "windows", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", + "imageSize": 525, "createdTime": "2021-08-17T18:04:21.3277628Z", "lastUpdateTime": + "2021-08-17T18:04:21.3277628Z", "architecture": "amd64", "os": "linux", "mediaType": + "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "imageSize": 525, "createdTime": "2021-05-11T21:17:47.1680665Z", "lastUpdateTime": - "2021-05-11T21:17:47.1680665Z", "architecture": "mips64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "imageSize": 525, "createdTime": "2021-08-17T18:06:04.8833061Z", "lastUpdateTime": + "2021-08-17T18:06:04.8833061Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", - "imageSize": 525, "createdTime": "2021-05-11T21:17:46.4820084Z", "lastUpdateTime": - "2021-05-11T21:17:46.4820084Z", "architecture": "arm64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "imageSize": 525, "createdTime": "2021-08-17T18:04:21.4942391Z", "lastUpdateTime": + "2021-08-17T18:04:21.4942391Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "imageSize": 525, "createdTime": "2021-05-11T21:17:47.4688177Z", "lastUpdateTime": - "2021-05-11T21:17:47.4688177Z", "architecture": "ppc64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "imageSize": 525, "createdTime": "2021-08-17T18:04:20.8782844Z", "lastUpdateTime": + "2021-08-17T18:04:20.8782844Z", "architecture": "s390x", "os": "linux", "mediaType": + "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": + true, "quarantineState": "Passed"}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", + "imageSize": 525, "createdTime": "2021-08-17T18:04:20.536826Z", "lastUpdateTime": + "2021-08-17T18:04:20.536826Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", - "imageSize": 525, "createdTime": "2021-05-11T21:17:47.6387006Z", "lastUpdateTime": - "2021-05-11T21:17:47.6387006Z", "architecture": "386", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "imageSize": 525, "createdTime": "2021-08-17T18:04:21.4039907Z", "lastUpdateTime": + "2021-08-17T18:04:21.4039907Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "imageSize": 525, "createdTime": "2021-05-11T21:17:46.9385336Z", "lastUpdateTime": - "2021-05-11T21:17:46.9385336Z", "architecture": "s390x", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", + "imageSize": 525, "createdTime": "2021-08-17T18:04:21.647164Z", "lastUpdateTime": + "2021-08-17T18:04:21.647164Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "imageSize": 525, "createdTime": "2021-05-11T21:17:46.3092689Z", "lastUpdateTime": - "2021-05-11T21:17:46.3092689Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "imageSize": 525, "createdTime": "2021-08-17T18:04:20.4469291Z", "lastUpdateTime": + "2021-08-17T18:04:20.4469291Z", "architecture": "riscv64", "os": "linux", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": + true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", + "imageSize": 525, "createdTime": "2021-08-17T18:04:20.6151862Z", "lastUpdateTime": + "2021-08-17T18:04:20.6151862Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ea0cfb27fd41ea0405d3095880c1efa45710f5bcdddb7d7d5a7317ad4825ae14", - "imageSize": 1125, "createdTime": "2021-05-11T21:17:47.7429606Z", "lastUpdateTime": - "2021-05-11T21:17:47.7429606Z", "architecture": "amd64", "os": "windows", + true, "quarantineState": "Passed"}}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", + "imageSize": 1125, "createdTime": "2021-08-17T18:04:20.5825244Z", "lastUpdateTime": + "2021-08-17T18:04:20.5825244Z", "architecture": "amd64", "os": "windows", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f2266cbfc127c960fd30e76b7c792dc23b588c0db76233517e1891a4e357d519", - "imageSize": 5325, "createdTime": "2021-05-11T21:17:46.7851308Z", "lastUpdateTime": - "2021-05-11T21:17:46.7851308Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}]}' + true, "quarantineState": "Passed"}}]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -170,7 +166,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:35:08 GMT + - Tue, 17 Aug 2021 18:06:54 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_list_repository_names.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_list_repository_names.yaml index 2e313f3d8dc0..4f4a7583eb04 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_list_repository_names.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_list_repository_names.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:11 GMT + - Tue, 17 Aug 2021 18:06:54 GMT docker-distribution-api-version: - registry/2.0 server: @@ -46,7 +46,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password headers: Accept: - application/json @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '82' + - '86' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:12 GMT + - Tue, 17 Aug 2021 18:06:54 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '166.1' status: code: 200 message: OK @@ -93,20 +93,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", - "repo13cf14de", "repo25ce0f5d", "repo26ab150f", "repo27331535", "repo28471541", - "repo2915152d", "repo2c591564", "repo34ab0fa1", "repo3c82158b", "repo3db51597", - "repo3dc21571", "repo3e8d15a3", "repo41a21dd2", "repo6969166d", "repo6a411679", - "repo7bda1b05", "repo7cee1b11", "repo80c61ece", "repo8b5a11da", "repo93d41b55", - "repo99be175b", "repo9cb4121e", "repoaf17178c", "repoaf8812b0", "repoaf9517b2", - "repob0a917be", "repob22512e7", "repoc1b5131a", "repoc1b812f4", "repoc28d1326", - "repoc7611808", "repodf771888", "repoe08b1894", "repof94c18ea", "repofa2418f6", - "to_be_deleted"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -116,11 +108,11 @@ interactions: connection: - keep-alive content-length: - - '617' + - '76' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:13 GMT + - Tue, 17 Aug 2021 18:06:54 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_list_repository_names_by_page.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_list_repository_names_by_page.yaml index fb2ac0c36828..a9928f0b0908 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_list_repository_names_by_page.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_list_repository_names_by_page.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog?n=2 response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:13 GMT + - Tue, 17 Aug 2021 18:06:54 GMT docker-distribution-api-version: - registry/2.0 server: @@ -46,7 +46,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password headers: Accept: - application/json @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '82' + - '86' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:14 GMT + - Tue, 17 Aug 2021 18:06:54 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '166.283333' status: code: 200 message: OK @@ -93,7 +93,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog?n=2 response: @@ -112,7 +112,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:14 GMT + - Tue, 17 Aug 2021 18:06:54 GMT docker-distribution-api-version: - registry/2.0 link: @@ -137,7 +137,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=library%2Fbusybox&n=2&orderby= response: @@ -158,7 +158,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:14 GMT + - Tue, 17 Aug 2021 18:06:54 GMT docker-distribution-api-version: - registry/2.0 server: @@ -174,7 +174,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password headers: Accept: - application/json @@ -183,11 +183,11 @@ interactions: Connection: - keep-alive Content-Length: - - '82' + - '86' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -199,7 +199,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:14 GMT + - Tue, 17 Aug 2021 18:06:54 GMT server: - openresty strict-transport-security: @@ -207,7 +207,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.633333' + - '166.266667' status: code: 200 message: OK @@ -221,12 +221,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=library%2Fbusybox&n=2&orderby= response: body: - string: '{"repositories": ["library/hello-world", "repo13cf14de"]}' + string: '{"repositories": ["library/hello-world"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -236,2315 +236,11 @@ interactions: connection: - keep-alive content-length: - - '56' + - '41' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:19:14 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo13cf14de&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:14 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:14 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.616667' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo13cf14de&n=2&orderby= - response: - body: - string: '{"repositories": ["repo25ce0f5d", "repo26ab150f"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:15 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo26ab150f&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:15 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:15 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.6' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo26ab150f&n=2&orderby= - response: - body: - string: '{"repositories": ["repo27331535", "repo28471541"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:15 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo28471541&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:15 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:15 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.583333' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo28471541&n=2&orderby= - response: - body: - string: '{"repositories": ["repo2915152d", "repo2c591564"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:16 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2c591564&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:16 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:16 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.566667' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2c591564&n=2&orderby= - response: - body: - string: '{"repositories": ["repo34ab0fa1", "repo3c82158b"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:16 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo3c82158b&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:16 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:17 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.55' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo3c82158b&n=2&orderby= - response: - body: - string: '{"repositories": ["repo3db51597", "repo3dc21571"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:17 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo3dc21571&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:17 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:17 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.533333' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo3dc21571&n=2&orderby= - response: - body: - string: '{"repositories": ["repo3e8d15a3", "repo41a21dd2"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:17 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo41a21dd2&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:17 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:17 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.516667' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo41a21dd2&n=2&orderby= - response: - body: - string: '{"repositories": ["repo6969166d", "repo6a411679"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:18 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo6a411679&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:18 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:18 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.5' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo6a411679&n=2&orderby= - response: - body: - string: '{"repositories": ["repo7bda1b05", "repo7cee1b11"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:18 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo7cee1b11&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:18 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:19 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.483333' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo7cee1b11&n=2&orderby= - response: - body: - string: '{"repositories": ["repo80c61ece", "repo8b5a11da"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:19 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo8b5a11da&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:19 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:19 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.466667' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo8b5a11da&n=2&orderby= - response: - body: - string: '{"repositories": ["repo93d41b55", "repo99be175b"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:19 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo99be175b&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:19 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:20 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.45' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo99be175b&n=2&orderby= - response: - body: - string: '{"repositories": ["repo9cb4121e", "repoaf17178c"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:20 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf17178c&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:20 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:20 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.433333' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf17178c&n=2&orderby= - response: - body: - string: '{"repositories": ["repoaf8812b0", "repoaf9517b2"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:20 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf9517b2&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:20 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:20 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.416667' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf9517b2&n=2&orderby= - response: - body: - string: '{"repositories": ["repob0a917be", "repob22512e7"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:21 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repob22512e7&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:21 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:21 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.4' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repob22512e7&n=2&orderby= - response: - body: - string: '{"repositories": ["repoc1b5131a", "repoc1b812f4"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:21 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoc1b812f4&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:21 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:21 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.383333' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoc1b812f4&n=2&orderby= - response: - body: - string: '{"repositories": ["repoc28d1326", "repoc7611808"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:21 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoc7611808&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:22 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:22 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.366667' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoc7611808&n=2&orderby= - response: - body: - string: '{"repositories": ["repodf771888", "repoe08b1894"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:22 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoe08b1894&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:22 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:22 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.35' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoe08b1894&n=2&orderby= - response: - body: - string: '{"repositories": ["repof94c18ea", "repofa2418f6"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:22 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repofa2418f6&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:22 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=seankaneanon.azurecr.io&scope=registry%3Acatalog%3A%2A&grant_type=password - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '82' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:23 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.333333' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repofa2418f6&n=2&orderby= - response: - body: - string: '{"repositories": ["to_be_deleted"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '35' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:19:23 GMT + - Tue, 17 Aug 2021 18:06:54 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_list_tag_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_list_tag_properties.yaml index ad343ea0fdf7..c101441f2028 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_list_tag_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_list_tag_properties.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:20:12 GMT + - Tue, 17 Aug 2021 18:06:54 GMT docker-distribution-api-version: - registry/2.0 server: @@ -46,7 +46,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password headers: Accept: - application/json @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '108' + - '112' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:20:12 GMT + - Tue, 17 Aug 2021 18:06:54 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '166.516667' status: code: 200 message: OK @@ -93,30 +93,30 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", - "tags": [{"name": "latest", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-11T21:17:46.0365675Z", "lastUpdateTime": "2021-05-13T16:00:26.9280451Z", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/hello-world", + "tags": [{"name": "latest", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:04:24.1991429Z", "lastUpdateTime": "2021-08-17T18:04:24.1991429Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "v1", "digest": - "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-11T21:17:48.0232569Z", "lastUpdateTime": "2021-05-13T16:00:27.4936591Z", + "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:04:21.5889666Z", "lastUpdateTime": "2021-08-17T18:04:21.5889666Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "v2", "digest": - "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-11T21:17:47.2166815Z", "lastUpdateTime": "2021-05-13T16:00:27.2638444Z", + "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:04:20.7787525Z", "lastUpdateTime": "2021-08-17T18:04:20.7787525Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "v3", "digest": - "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-11T21:17:48.5358052Z", "lastUpdateTime": "2021-05-13T16:00:27.4270294Z", + "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:04:22.3477986Z", "lastUpdateTime": "2021-08-17T18:04:22.3477986Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "v4", "digest": - "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-11T21:17:48.2377521Z", "lastUpdateTime": "2021-05-13T16:00:28.033089Z", + "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:04:20.6913902Z", "lastUpdateTime": "2021-08-17T18:04:20.6913902Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: @@ -128,11 +128,11 @@ interactions: connection: - keep-alive content-length: - - '1630' + - '1635' content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:20:12 GMT + - Tue, 17 Aug 2021 18:06:54 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_update_manifest_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_update_manifest_properties.yaml index 57c16a19691d..af9566244b66 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_update_manifest_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_update_manifest_properties.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:41 GMT + - Tue, 17 Aug 2021 18:06:54 GMT docker-distribution-api-version: - registry/2.0 server: @@ -46,7 +46,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password headers: Accept: - application/json @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '108' + - '112' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:41 GMT + - Tue, 17 Aug 2021 18:06:55 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '166.283333' status: code: 200 message: OK @@ -93,14 +93,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", - "tag": {"name": "latest", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-11T21:17:46.0365675Z", "lastUpdateTime": "2021-05-13T16:00:26.9280451Z", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/hello-world", + "tag": {"name": "latest", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:04:24.1991429Z", "lastUpdateTime": "2021-08-17T18:04:24.1991429Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -112,11 +112,11 @@ interactions: connection: - keep-alive content-length: - - '392' + - '396' content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:42 GMT + - Tue, 17 Aug 2021 18:06:55 GMT docker-distribution-api-version: - registry/2.0 server: @@ -139,9 +139,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -160,7 +160,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:42 GMT + - Tue, 17 Aug 2021 18:06:55 GMT docker-distribution-api-version: - registry/2.0 server: @@ -176,7 +176,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password headers: Accept: - application/json @@ -185,11 +185,11 @@ interactions: Connection: - keep-alive Content-Length: - - '108' + - '112' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -201,7 +201,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:42 GMT + - Tue, 17 Aug 2021 18:06:55 GMT server: - openresty strict-transport-security: @@ -209,7 +209,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.633333' + - '166.266667' status: code: 200 message: OK @@ -223,26 +223,27 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", - "manifest": {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-13T16:00:26.4243258Z", "lastUpdateTime": - "2021-05-13T16:00:26.4243258Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/hello-world", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:04:20.3411937Z", "lastUpdateTime": + "2021-08-17T18:04:20.3411937Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["latest", "v1", "v2", "v3", "v4"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: @@ -253,11 +254,11 @@ interactions: connection: - keep-alive content-length: - - '1598' + - '1725' content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:42 GMT + - Tue, 17 Aug 2021 18:06:55 GMT docker-distribution-api-version: - registry/2.0 server: @@ -280,7 +281,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: @@ -301,7 +302,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:42 GMT + - Tue, 17 Aug 2021 18:06:55 GMT docker-distribution-api-version: - registry/2.0 server: @@ -317,7 +318,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password headers: Accept: - application/json @@ -326,11 +327,11 @@ interactions: Connection: - keep-alive Content-Length: - - '108' + - '112' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -342,7 +343,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:42 GMT + - Tue, 17 Aug 2021 18:06:55 GMT server: - openresty strict-transport-security: @@ -350,7 +351,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.616667' + - '166.25' status: code: 200 message: OK @@ -364,14 +365,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", - "tag": {"name": "latest", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-11T21:17:46.0365675Z", "lastUpdateTime": "2021-05-13T16:00:26.9280451Z", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/hello-world", + "tag": {"name": "latest", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:04:24.1991429Z", "lastUpdateTime": "2021-08-17T18:04:24.1991429Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -383,11 +384,11 @@ interactions: connection: - keep-alive content-length: - - '392' + - '396' content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:42 GMT + - Tue, 17 Aug 2021 18:06:55 GMT docker-distribution-api-version: - registry/2.0 server: @@ -415,9 +416,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -436,7 +437,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:43 GMT + - Tue, 17 Aug 2021 18:06:55 GMT docker-distribution-api-version: - registry/2.0 server: @@ -452,7 +453,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_write&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_write&grant_type=password headers: Accept: - application/json @@ -461,11 +462,11 @@ interactions: Connection: - keep-alive Content-Length: - - '109' + - '113' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -477,7 +478,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:43 GMT + - Tue, 17 Aug 2021 18:06:55 GMT server: - openresty strict-transport-security: @@ -485,7 +486,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.6' + - '166.233333' status: code: 200 message: OK @@ -504,9 +505,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -525,7 +526,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:43 GMT + - Tue, 17 Aug 2021 18:06:55 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_update_repository_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_update_repository_properties.yaml index c7de6921749e..9d7634cea759 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_update_repository_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_update_repository_properties.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:43 GMT + - Tue, 17 Aug 2021 18:06:55 GMT docker-distribution-api-version: - registry/2.0 server: @@ -46,7 +46,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password headers: Accept: - application/json @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '108' + - '112' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:44 GMT + - Tue, 17 Aug 2021 18:06:55 GMT server: - openresty strict-transport-security: @@ -93,14 +93,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", - "createdTime": "2021-05-11T21:17:45.937904Z", "lastUpdateTime": "2021-05-13T16:00:26.7224943Z", - "manifestCount": 12, "tagCount": 5, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/hello-world", + "createdTime": "2021-08-17T18:04:20.3129746Z", "lastUpdateTime": "2021-08-17T18:04:16.4657043Z", + "manifestCount": 11, "tagCount": 5, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": false}}' headers: @@ -112,11 +112,11 @@ interactions: connection: - keep-alive content-length: - - '325' + - '330' content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:44 GMT + - Tue, 17 Aug 2021 18:06:55 GMT docker-distribution-api-version: - registry/2.0 server: @@ -144,7 +144,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world response: @@ -165,7 +165,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:44 GMT + - Tue, 17 Aug 2021 18:06:55 GMT docker-distribution-api-version: - registry/2.0 server: @@ -181,7 +181,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_write&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_write&grant_type=password headers: Accept: - application/json @@ -190,11 +190,11 @@ interactions: Connection: - keep-alive Content-Length: - - '109' + - '113' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -206,7 +206,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:44 GMT + - Tue, 17 Aug 2021 18:06:55 GMT server: - openresty strict-transport-security: @@ -233,7 +233,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world response: @@ -254,7 +254,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:44 GMT + - Tue, 17 Aug 2021 18:06:55 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_update_tag_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_update_tag_properties.yaml index 0689293813fa..ae3af1fb08b2 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_update_tag_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access.test_update_tag_properties.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:45 GMT + - Tue, 17 Aug 2021 18:06:55 GMT docker-distribution-api-version: - registry/2.0 server: @@ -46,7 +46,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&grant_type=password headers: Accept: - application/json @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '108' + - '112' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:45 GMT + - Tue, 17 Aug 2021 18:06:55 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '166.583333' status: code: 200 message: OK @@ -93,14 +93,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", - "tag": {"name": "latest", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-11T21:17:46.0365675Z", "lastUpdateTime": "2021-05-13T16:00:26.9280451Z", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/hello-world", + "tag": {"name": "latest", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:04:24.1991429Z", "lastUpdateTime": "2021-08-17T18:04:24.1991429Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -112,11 +112,11 @@ interactions: connection: - keep-alive content-length: - - '392' + - '396' content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:46 GMT + - Tue, 17 Aug 2021 18:06:55 GMT docker-distribution-api-version: - registry/2.0 server: @@ -144,7 +144,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: @@ -165,7 +165,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:46 GMT + - Tue, 17 Aug 2021 18:06:56 GMT docker-distribution-api-version: - registry/2.0 server: @@ -181,7 +181,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=seankaneanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_write&grant_type=password + body: service=yalinlitestsanon.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_write&grant_type=password headers: Accept: - application/json @@ -190,11 +190,11 @@ interactions: Connection: - keep-alive Content-Length: - - '109' + - '113' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -206,7 +206,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:46 GMT + - Tue, 17 Aug 2021 18:06:56 GMT server: - openresty strict-transport-security: @@ -214,7 +214,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.633333' + - '166.566667' status: code: 200 message: OK @@ -233,7 +233,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: @@ -254,7 +254,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 14:21:46 GMT + - Tue, 17 Aug 2021 18:06:56 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_delete_manifest.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_delete_manifest.yaml index ae59d8273331..aa5ef21b7417 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_delete_manifest.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_delete_manifest.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '222' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:15:50 GMT + date: Tue, 17 Aug 2021 18:06:56 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,18 +27,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: repository:library/hello-world:metadata_read - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -47,37 +47,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:15:50 GMT + date: Tue, 17 Aug 2021 18:06:56 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.65' + x-ms-ratelimit-remaining-calls-per-second: '165.966667' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", - "tag": {"name": "latest", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-11T21:17:46.0365675Z", "lastUpdateTime": "2021-05-13T16:00:26.9280451Z", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/hello-world", + "tag": {"name": "latest", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:04:24.1991429Z", "lastUpdateTime": "2021-08-17T18:04:24.1991429Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '392' + content-length: '396' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:15:50 GMT + date: Tue, 17 Aug 2021 18:06:56 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -85,16 +85,16 @@ interactions: status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/v2/library%2Fhello-world/manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/v2/library%2Fhello-world/manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -105,7 +105,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:15:50 GMT + date: Tue, 17 Aug 2021 18:06:56 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -114,18 +114,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/v2/library%2Fhello-world/manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitestsanon.azurecr.io/v2/library%2Fhello-world/manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: repository:library/hello-world:delete - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -134,24 +134,24 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:15:51 GMT + date: Tue, 17 Aug 2021 18:06:56 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.633333' + x-ms-ratelimit-remaining-calls-per-second: '165.95' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/v2/library%2Fhello-world/manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/v2/library%2Fhello-world/manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -162,7 +162,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:15:51 GMT + date: Tue, 17 Aug 2021 18:06:56 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -171,5 +171,5 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/v2/library%2Fhello-world/manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitestsanon.azurecr.io/v2/library%2Fhello-world/manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_delete_repository.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_delete_repository.yaml index 15ec5d7eb433..1dece186c4b7 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_delete_repository.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_delete_repository.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:15:51 GMT + date: Tue, 17 Aug 2021 18:06:56 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,18 +27,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: repository:library/hello-world:delete - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -47,22 +47,22 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:15:52 GMT + date: Tue, 17 Aug 2021 18:06:56 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.65' + x-ms-ratelimit-remaining-calls-per-second: '166.616667' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world response: @@ -75,7 +75,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:15:52 GMT + date: Tue, 17 Aug 2021 18:06:56 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -84,5 +84,5 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_delete_tag.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_delete_tag.yaml index 555f7cab8d7e..5a4572061553 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_delete_tag.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_delete_tag.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:15:52 GMT + date: Tue, 17 Aug 2021 18:06:56 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,18 +27,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: repository:library/hello-world:delete - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -47,22 +47,22 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:15:53 GMT + date: Tue, 17 Aug 2021 18:06:56 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.65' + x-ms-ratelimit-remaining-calls-per-second: '166.55' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: @@ -75,7 +75,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:15:53 GMT + date: Tue, 17 Aug 2021 18:06:56 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -84,5 +84,5 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_get_manifest_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_get_manifest_properties.yaml index 18bb7352b203..30aeb41f18e7 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_get_manifest_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_get_manifest_properties.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Falpine/_tags/latest response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '217' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:25 GMT + date: Tue, 17 Aug 2021 18:06:56 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,18 +27,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Falpine/_tags/latest + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Falpine/_tags/latest - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: repository:library/alpine:metadata_read - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -47,37 +47,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:25 GMT + date: Tue, 17 Aug 2021 18:06:56 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.316667' + x-ms-ratelimit-remaining-calls-per-second: '166.5' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Falpine/_tags/latest response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/alpine", - "tag": {"name": "latest", "digest": "sha256:69e70a79f2d41ab5d637de98c1e0b055206ba40a8145e7bddb55ccc04e13cf8f", - "createdTime": "2021-05-11T21:18:10.1680148Z", "lastUpdateTime": "2021-05-11T21:18:10.1680148Z", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/alpine", + "tag": {"name": "latest", "digest": "sha256:eb3e4e175ba6d212ba1d6e04fc0782916c08e1c9d7b45892e9796141b1d379ae", + "createdTime": "2021-08-17T18:06:23.0267255Z", "lastUpdateTime": "2021-08-17T18:06:23.0267255Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '387' + content-length: '391' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:25 GMT + date: Tue, 17 Aug 2021 18:06:56 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -85,16 +85,16 @@ interactions: status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/acr/v1/library%2Falpine/_tags/latest + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Falpine/_tags/latest - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Falpine/_manifests/sha256:69e70a79f2d41ab5d637de98c1e0b055206ba40a8145e7bddb55ccc04e13cf8f + uri: https://fake_url.azurecr.io/acr/v1/library%2Falpine/_manifests/sha256:eb3e4e175ba6d212ba1d6e04fc0782916c08e1c9d7b45892e9796141b1d379ae response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -105,7 +105,7 @@ interactions: connection: keep-alive content-length: '217' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:25 GMT + date: Tue, 17 Aug 2021 18:06:56 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -114,18 +114,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Falpine/_manifests/sha256:69e70a79f2d41ab5d637de98c1e0b055206ba40a8145e7bddb55ccc04e13cf8f + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Falpine/_manifests/sha256:eb3e4e175ba6d212ba1d6e04fc0782916c08e1c9d7b45892e9796141b1d379ae - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: repository:library/alpine:metadata_read - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -134,46 +134,46 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:26 GMT + date: Tue, 17 Aug 2021 18:06:56 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.3' + x-ms-ratelimit-remaining-calls-per-second: '166.483333' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Falpine/_manifests/sha256:69e70a79f2d41ab5d637de98c1e0b055206ba40a8145e7bddb55ccc04e13cf8f + uri: https://fake_url.azurecr.io/acr/v1/library%2Falpine/_manifests/sha256:eb3e4e175ba6d212ba1d6e04fc0782916c08e1c9d7b45892e9796141b1d379ae response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/alpine", - "manifest": {"digest": "sha256:69e70a79f2d41ab5d637de98c1e0b055206ba40a8145e7bddb55ccc04e13cf8f", - "imageSize": 3696, "createdTime": "2021-05-11T21:18:10.4807811Z", "lastUpdateTime": - "2021-05-11T21:18:10.4807811Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/alpine", + "manifest": {"digest": "sha256:eb3e4e175ba6d212ba1d6e04fc0782916c08e1c9d7b45892e9796141b1d379ae", + "imageSize": 3696, "createdTime": "2021-08-17T18:06:23.1196409Z", "lastUpdateTime": + "2021-08-17T18:06:23.1196409Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": - "sha256:def822f9851ca422481ec6fee59a9966f12b351c62ccb9aca841526ffaa9f748", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:ea73ecf48cd45e250f65eb731dd35808175ae37d70cca5d41f9ef57210737f04", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:9663906b1c3bf891618ebcac857961531357525b25493ef717bca0f86f581ad6", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:8f18fae117ec6e5777cc62ba78cbb3be10a8a38639ccfb949521abd95c8301a4", - "architecture": "arm64", "os": "linux"}, {"digest": "sha256:5de788243acadd50526e70868b86d12ad79f3793619719ae22e0d09e8c873a66", - "architecture": "386", "os": "linux"}, {"digest": "sha256:827525365ff718681b0688621e09912af49a17611701ee4d421ba50d57c13f7e", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:a090d7c93c8e9ab88946367500756c5f50cd660e09deb4c57494989c1f23fa5a", + "sha256:be9bdc0ef8e96dbc428dc189b31e2e3b05523d96d12ed627c37aa2936653258c", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:1d2cfbb29672ce268a77b3b9eca532a96356f4843044d22a9677231e1333e271", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:fb9ac82b4cc94c5a6c416a1c656b3ee84df9290ab4106c260eb959997e759e5e", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:bd9137c3bb45dbc40cde0f0e19a8b9064c2bc485466221f5e95eb72b0d0cf82e", + "architecture": "arm64", "os": "linux"}, {"digest": "sha256:169b2750787ff8d4995ba535293bf549958b596067165ce678afa928225d97cc", + "architecture": "386", "os": "linux"}, {"digest": "sha256:f553db2d6ab7f3ba07024cd1181e16242d8fea0a2840dc2ccbd59e9b8c59b478", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:8621732cdb8c893dccfaacfa22741154123addd7c0e5465056bbe9b0cb4c7737", "architecture": "s390x", "os": "linux"}]}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1326' + content-length: '1330' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:26 GMT + date: Tue, 17 Aug 2021 18:06:57 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -181,5 +181,5 @@ interactions: status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/acr/v1/library%2Falpine/_manifests/sha256:69e70a79f2d41ab5d637de98c1e0b055206ba40a8145e7bddb55ccc04e13cf8f + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Falpine/_manifests/sha256:eb3e4e175ba6d212ba1d6e04fc0782916c08e1c9d7b45892e9796141b1d379ae version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_get_repository_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_get_repository_properties.yaml index 3cae2b870e1b..c9e29d350cbb 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_get_repository_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_get_repository_properties.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Falpine response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '217' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:26 GMT + date: Tue, 17 Aug 2021 18:06:57 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,18 +27,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Falpine + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Falpine - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: repository:library/alpine:metadata_read - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -47,37 +47,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:27 GMT + date: Tue, 17 Aug 2021 18:06:57 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.566667' + x-ms-ratelimit-remaining-calls-per-second: '166.216667' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Falpine response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/alpine", - "createdTime": "2021-05-11T21:18:10.0225625Z", "lastUpdateTime": "2021-05-11T21:18:08.5904144Z", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/alpine", + "createdTime": "2021-08-17T18:06:22.9980171Z", "lastUpdateTime": "2021-08-17T18:06:21.2792387Z", "manifestCount": 8, "tagCount": 1, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": false}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '320' + content-length: '324' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:27 GMT + date: Tue, 17 Aug 2021 18:06:57 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -85,5 +85,5 @@ interactions: status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/acr/v1/library%2Falpine + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Falpine version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_list_manifest_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_list_manifest_properties.yaml index dd663f8f6b78..2f98fc660479 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_list_manifest_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_list_manifest_properties.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Falpine/_manifests response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '217' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:20:17 GMT + date: Tue, 17 Aug 2021 18:06:57 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,18 +27,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Falpine/_manifests + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Falpine/_manifests - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: repository:library/alpine:metadata_read - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -47,64 +47,64 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:20:17 GMT + date: Tue, 17 Aug 2021 18:06:57 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.65' + x-ms-ratelimit-remaining-calls-per-second: '166.616667' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Falpine/_manifests response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/alpine", - "manifests": [{"digest": "sha256:5de788243acadd50526e70868b86d12ad79f3793619719ae22e0d09e8c873a66", - "imageSize": 528, "createdTime": "2021-05-11T21:18:11.0755473Z", "lastUpdateTime": - "2021-05-11T21:18:11.0755473Z", "architecture": "386", "os": "linux", "mediaType": + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/alpine", + "manifests": [{"digest": "sha256:169b2750787ff8d4995ba535293bf549958b596067165ce678afa928225d97cc", + "imageSize": 528, "createdTime": "2021-08-17T18:06:24.1933064Z", "lastUpdateTime": + "2021-08-17T18:06:24.1933064Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:69e70a79f2d41ab5d637de98c1e0b055206ba40a8145e7bddb55ccc04e13cf8f", - "imageSize": 3696, "createdTime": "2021-05-11T21:18:10.4807811Z", "lastUpdateTime": - "2021-05-11T21:18:10.4807811Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:827525365ff718681b0688621e09912af49a17611701ee4d421ba50d57c13f7e", - "imageSize": 528, "createdTime": "2021-05-11T21:18:11.1394935Z", "lastUpdateTime": - "2021-05-11T21:18:11.1394935Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:8f18fae117ec6e5777cc62ba78cbb3be10a8a38639ccfb949521abd95c8301a4", - "imageSize": 528, "createdTime": "2021-05-11T21:18:11.5663537Z", "lastUpdateTime": - "2021-05-11T21:18:11.5663537Z", "architecture": "arm64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:1d2cfbb29672ce268a77b3b9eca532a96356f4843044d22a9677231e1333e271", + "imageSize": 528, "createdTime": "2021-08-17T18:06:24.1100226Z", "lastUpdateTime": + "2021-08-17T18:06:24.1100226Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:9663906b1c3bf891618ebcac857961531357525b25493ef717bca0f86f581ad6", - "imageSize": 528, "createdTime": "2021-05-11T21:18:11.4125673Z", "lastUpdateTime": - "2021-05-11T21:18:11.4125673Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:8621732cdb8c893dccfaacfa22741154123addd7c0e5465056bbe9b0cb4c7737", + "imageSize": 528, "createdTime": "2021-08-17T18:06:25.0984809Z", "lastUpdateTime": + "2021-08-17T18:06:25.0984809Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:a090d7c93c8e9ab88946367500756c5f50cd660e09deb4c57494989c1f23fa5a", - "imageSize": 528, "createdTime": "2021-05-11T21:18:11.8312059Z", "lastUpdateTime": - "2021-05-11T21:18:11.8312059Z", "architecture": "s390x", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:bd9137c3bb45dbc40cde0f0e19a8b9064c2bc485466221f5e95eb72b0d0cf82e", + "imageSize": 528, "createdTime": "2021-08-17T18:06:24.0276057Z", "lastUpdateTime": + "2021-08-17T18:06:24.0276057Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:def822f9851ca422481ec6fee59a9966f12b351c62ccb9aca841526ffaa9f748", - "imageSize": 528, "createdTime": "2021-05-11T21:18:10.2778252Z", "lastUpdateTime": - "2021-05-11T21:18:10.2778252Z", "architecture": "amd64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:be9bdc0ef8e96dbc428dc189b31e2e3b05523d96d12ed627c37aa2936653258c", + "imageSize": 528, "createdTime": "2021-08-17T18:06:24.3964606Z", "lastUpdateTime": + "2021-08-17T18:06:24.3964606Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ea73ecf48cd45e250f65eb731dd35808175ae37d70cca5d41f9ef57210737f04", - "imageSize": 528, "createdTime": "2021-05-11T21:18:11.6546011Z", "lastUpdateTime": - "2021-05-11T21:18:11.6546011Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:eb3e4e175ba6d212ba1d6e04fc0782916c08e1c9d7b45892e9796141b1d379ae", + "imageSize": 3696, "createdTime": "2021-08-17T18:06:23.1196409Z", "lastUpdateTime": + "2021-08-17T18:06:23.1196409Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:f553db2d6ab7f3ba07024cd1181e16242d8fea0a2840dc2ccbd59e9b8c59b478", + "imageSize": 528, "createdTime": "2021-08-17T18:06:25.0264984Z", "lastUpdateTime": + "2021-08-17T18:06:25.0264984Z", "architecture": "ppc64le", "os": "linux", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": + true, "quarantineState": "Passed"}}, {"digest": "sha256:fb9ac82b4cc94c5a6c416a1c656b3ee84df9290ab4106c260eb959997e759e5e", + "imageSize": 528, "createdTime": "2021-08-17T18:06:24.2418276Z", "lastUpdateTime": + "2021-08-17T18:06:24.2418276Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -112,7 +112,7 @@ interactions: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:20:18 GMT + date: Tue, 17 Aug 2021 18:06:57 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -121,5 +121,5 @@ interactions: status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/acr/v1/library%2Falpine/_manifests + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Falpine/_manifests version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_list_repository_names.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_list_repository_names.yaml index 7c9c5730f020..04adced23e10 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_list_repository_names.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_list_repository_names.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:28 GMT + date: Tue, 17 Aug 2021 18:06:57 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,18 +27,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog + url: https://yalinlitestsanon.azurecr.io/acr/v1/_catalog - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: registry:catalog:* - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -47,41 +47,33 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:29 GMT + date: Tue, 17 Aug 2021 18:06:57 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.283333' + x-ms-ratelimit-remaining-calls-per-second: '166.533333' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", - "repo13cf14de", "repo25ce0f5d", "repo26ab150f", "repo27331535", "repo28471541", - "repo2915152d", "repo2c591564", "repo34ab0fa1", "repo3c82158b", "repo3db51597", - "repo3dc21571", "repo3e8d15a3", "repo41a21dd2", "repo6969166d", "repo6a411679", - "repo7bda1b05", "repo7cee1b11", "repo80c61ece", "repo8b5a11da", "repo93d41b55", - "repo99be175b", "repo9cb4121e", "repoaf17178c", "repoaf8812b0", "repoaf9517b2", - "repob0a917be", "repob22512e7", "repoc1b5131a", "repoc1b812f4", "repoc28d1326", - "repoc7611808", "repodf771888", "repoe08b1894", "repof94c18ea", "repofa2418f6", - "to_be_deleted"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '617' + content-length: '76' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:29 GMT + date: Tue, 17 Aug 2021 18:06:57 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -89,5 +81,5 @@ interactions: status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog + url: https://yalinlitestsanon.azurecr.io/acr/v1/_catalog version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_list_repository_names_by_page.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_list_repository_names_by_page.yaml index 513f08af00e4..d42910760e7d 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_list_repository_names_by_page.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_list_repository_names_by_page.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog?n=2 response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:29 GMT + date: Tue, 17 Aug 2021 18:06:57 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,18 +27,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?n=2 + url: https://yalinlitestsanon.azurecr.io/acr/v1/_catalog?n=2 - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: registry:catalog:* - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -47,22 +47,22 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:30 GMT + date: Tue, 17 Aug 2021 18:06:57 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.65' + x-ms-ratelimit-remaining-calls-per-second: '166.15' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog?n=2 response: @@ -73,7 +73,7 @@ interactions: connection: keep-alive content-length: '54' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:30 GMT + date: Tue, 17 Aug 2021 18:06:57 GMT docker-distribution-api-version: registry/2.0 link: ; rel="next" server: openresty @@ -82,14 +82,14 @@ interactions: status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?n=2 + url: https://yalinlitestsanon.azurecr.io/acr/v1/_catalog?n=2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=library/busybox&n=2&orderby= response: @@ -102,7 +102,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:30 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -111,18 +111,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=library/busybox&n=2&orderby= + url: https://yalinlitestsanon.azurecr.io/acr/v1/_catalog?last=library/busybox&n=2&orderby= - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: registry:catalog:* - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -131,1551 +131,39 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:30 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.633333' + x-ms-ratelimit-remaining-calls-per-second: '166.133333' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=library/busybox&n=2&orderby= response: body: - string: '{"repositories": ["library/hello-world", "repo13cf14de"]}' + string: '{"repositories": ["library/hello-world"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '56' + content-length: '41' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:30 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT docker-distribution-api-version: registry/2.0 - link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=library/busybox&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo13cf14de&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:30 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo13cf14de&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:30 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.616667' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo13cf14de&n=2&orderby= - response: - body: - string: '{"repositories": ["repo25ce0f5d", "repo26ab150f"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:30 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo13cf14de&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo26ab150f&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:30 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo26ab150f&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:30 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.6' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo26ab150f&n=2&orderby= - response: - body: - string: '{"repositories": ["repo27331535", "repo28471541"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:31 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo26ab150f&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo28471541&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:31 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo28471541&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:31 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.583333' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo28471541&n=2&orderby= - response: - body: - string: '{"repositories": ["repo2915152d", "repo2c591564"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:31 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo28471541&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2c591564&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:31 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo2c591564&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:31 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.566667' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2c591564&n=2&orderby= - response: - body: - string: '{"repositories": ["repo34ab0fa1", "repo3c82158b"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:31 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo2c591564&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo3c82158b&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:31 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo3c82158b&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:31 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.55' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo3c82158b&n=2&orderby= - response: - body: - string: '{"repositories": ["repo3db51597", "repo3dc21571"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:32 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo3c82158b&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo3dc21571&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:32 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo3dc21571&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:32 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.533333' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo3dc21571&n=2&orderby= - response: - body: - string: '{"repositories": ["repo3e8d15a3", "repo41a21dd2"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:32 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo3dc21571&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo41a21dd2&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:32 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo41a21dd2&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:32 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.516667' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo41a21dd2&n=2&orderby= - response: - body: - string: '{"repositories": ["repo6969166d", "repo6a411679"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:32 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo41a21dd2&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo6a411679&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:32 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo6a411679&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:32 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.5' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo6a411679&n=2&orderby= - response: - body: - string: '{"repositories": ["repo7bda1b05", "repo7cee1b11"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:33 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo6a411679&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo7cee1b11&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:33 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo7cee1b11&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:33 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.483333' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo7cee1b11&n=2&orderby= - response: - body: - string: '{"repositories": ["repo80c61ece", "repo8b5a11da"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:33 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo7cee1b11&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo8b5a11da&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:33 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo8b5a11da&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:33 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.466667' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo8b5a11da&n=2&orderby= - response: - body: - string: '{"repositories": ["repo93d41b55", "repo99be175b"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:33 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo8b5a11da&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo99be175b&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:33 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo99be175b&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:34 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.45' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo99be175b&n=2&orderby= - response: - body: - string: '{"repositories": ["repo9cb4121e", "repoaf17178c"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:34 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repo99be175b&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf17178c&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:34 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repoaf17178c&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:34 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.433333' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf17178c&n=2&orderby= - response: - body: - string: '{"repositories": ["repoaf8812b0", "repoaf9517b2"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:35 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repoaf17178c&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf9517b2&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:35 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repoaf9517b2&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:35 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.416667' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf9517b2&n=2&orderby= - response: - body: - string: '{"repositories": ["repob0a917be", "repob22512e7"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:35 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repoaf9517b2&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repob22512e7&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:35 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repob22512e7&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:35 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.4' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repob22512e7&n=2&orderby= - response: - body: - string: '{"repositories": ["repoc1b5131a", "repoc1b812f4"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:36 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repob22512e7&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoc1b812f4&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:36 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repoc1b812f4&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:36 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.383333' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoc1b812f4&n=2&orderby= - response: - body: - string: '{"repositories": ["repoc28d1326", "repoc7611808"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:36 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repoc1b812f4&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoc7611808&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:36 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repoc7611808&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:36 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.366667' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoc7611808&n=2&orderby= - response: - body: - string: '{"repositories": ["repodf771888", "repoe08b1894"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:36 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repoc7611808&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoe08b1894&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:37 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repoe08b1894&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:37 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.35' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoe08b1894&n=2&orderby= - response: - body: - string: '{"repositories": ["repof94c18ea", "repofa2418f6"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:37 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repoe08b1894&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repofa2418f6&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:37 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repofa2418f6&n=2&orderby= -- request: - body: - grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - - password - scope: registry:catalog:* - service: seankaneanon.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:37 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.333333' - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repofa2418f6&n=2&orderby= - response: - body: - string: '{"repositories": ["to_be_deleted"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '35' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:19:37 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankaneanon.azurecr.io/acr/v1/_catalog?last=repofa2418f6&n=2&orderby= + url: https://yalinlitestsanon.azurecr.io/acr/v1/_catalog?last=library/busybox&n=2&orderby= version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_list_tag_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_list_tag_properties.yaml index f2d30d60974d..19c8bd5189f0 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_list_tag_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_list_tag_properties.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Falpine/_tags response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '217' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:20:24 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,18 +27,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Falpine/_tags + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Falpine/_tags - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: repository:library/alpine:metadata_read - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -47,37 +47,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:20:24 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.65' + x-ms-ratelimit-remaining-calls-per-second: '165.933333' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Falpine/_tags response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/alpine", - "tags": [{"name": "latest", "digest": "sha256:69e70a79f2d41ab5d637de98c1e0b055206ba40a8145e7bddb55ccc04e13cf8f", - "createdTime": "2021-05-11T21:18:10.1680148Z", "lastUpdateTime": "2021-05-11T21:18:10.1680148Z", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/alpine", + "tags": [{"name": "latest", "digest": "sha256:eb3e4e175ba6d212ba1d6e04fc0782916c08e1c9d7b45892e9796141b1d379ae", + "createdTime": "2021-08-17T18:06:23.0267255Z", "lastUpdateTime": "2021-08-17T18:06:23.0267255Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '390' + content-length: '394' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:20:24 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -85,5 +85,5 @@ interactions: status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/acr/v1/library%2Falpine/_tags + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Falpine/_tags version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_update_manifest_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_update_manifest_properties.yaml index 66506d36ff12..55ed82d9b3d8 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_update_manifest_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_update_manifest_properties.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '222' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:43 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,18 +27,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: repository:library/hello-world:metadata_read - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -47,37 +47,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:43 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.65' + x-ms-ratelimit-remaining-calls-per-second: '166.6' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", - "tag": {"name": "latest", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-11T21:17:46.0365675Z", "lastUpdateTime": "2021-05-13T16:00:26.9280451Z", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/hello-world", + "tag": {"name": "latest", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:04:24.1991429Z", "lastUpdateTime": "2021-08-17T18:04:24.1991429Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '392' + content-length: '396' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:44 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -85,16 +85,16 @@ interactions: status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -105,7 +105,7 @@ interactions: connection: keep-alive content-length: '222' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:44 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -114,18 +114,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: repository:library/hello-world:metadata_read - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -134,48 +134,49 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:44 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.633333' + x-ms-ratelimit-remaining-calls-per-second: '166.583333' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", - "manifest": {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-13T16:00:26.4243258Z", "lastUpdateTime": - "2021-05-13T16:00:26.4243258Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/hello-world", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:04:20.3411937Z", "lastUpdateTime": + "2021-08-17T18:04:20.3411937Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["latest", "v1", "v2", "v3", "v4"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1598' + content-length: '1725' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:44 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -183,14 +184,14 @@ interactions: status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: @@ -203,7 +204,7 @@ interactions: connection: keep-alive content-length: '222' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:44 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -212,18 +213,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: repository:library/hello-world:metadata_read - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -232,37 +233,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:44 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.616667' + x-ms-ratelimit-remaining-calls-per-second: '166.566667' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", - "tag": {"name": "latest", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-11T21:17:46.0365675Z", "lastUpdateTime": "2021-05-13T16:00:26.9280451Z", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/hello-world", + "tag": {"name": "latest", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:04:24.1991429Z", "lastUpdateTime": "2021-08-17T18:04:24.1991429Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '392' + content-length: '396' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:44 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -270,7 +271,7 @@ interactions: status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": true}' @@ -282,9 +283,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -295,7 +296,7 @@ interactions: connection: keep-alive content-length: '223' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:44 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -304,18 +305,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: repository:library/hello-world:metadata_write - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -324,15 +325,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:44 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.6' + x-ms-ratelimit-remaining-calls-per-second: '166.55' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": true}' @@ -344,9 +345,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -357,7 +358,7 @@ interactions: connection: keep-alive content-length: '223' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:45 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -366,5 +367,5 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_update_repository_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_update_repository_properties.yaml index eff198a5d240..dd4ab72318ce 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_update_repository_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_update_repository_properties.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '222' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:45 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,18 +27,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: repository:library/hello-world:metadata_read - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -47,37 +47,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:46 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.65' + x-ms-ratelimit-remaining-calls-per-second: '166.083333' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", - "createdTime": "2021-05-11T21:17:45.937904Z", "lastUpdateTime": "2021-05-13T16:00:26.7224943Z", - "manifestCount": 12, "tagCount": 5, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/hello-world", + "createdTime": "2021-08-17T18:04:20.3129746Z", "lastUpdateTime": "2021-08-17T18:04:16.4657043Z", + "manifestCount": 11, "tagCount": 5, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": false}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '325' + content-length: '330' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:46 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -85,7 +85,7 @@ interactions: status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": true}' @@ -97,7 +97,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world response: @@ -110,7 +110,7 @@ interactions: connection: keep-alive content-length: '223' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:46 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -119,18 +119,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: repository:library/hello-world:metadata_write - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -139,15 +139,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:46 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.633333' + x-ms-ratelimit-remaining-calls-per-second: '166.066667' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": true}' @@ -159,7 +159,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world response: @@ -172,7 +172,7 @@ interactions: connection: keep-alive content-length: '223' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:46 GMT + date: Tue, 17 Aug 2021 18:06:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -181,5 +181,5 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_update_tag_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_update_tag_properties.yaml index 68de7e3f1250..c0438767a7d6 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_update_tag_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_anon_access_async.test_update_tag_properties.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '222' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:47 GMT + date: Tue, 17 Aug 2021 18:06:59 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,18 +27,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: repository:library/hello-world:metadata_read - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -47,37 +47,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:47 GMT + date: Tue, 17 Aug 2021 18:06:59 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.65' + x-ms-ratelimit-remaining-calls-per-second: '166.116667' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", - "tag": {"name": "latest", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-11T21:17:46.0365675Z", "lastUpdateTime": "2021-05-13T16:00:26.9280451Z", + string: '{"registry": "yalinlitestsanon.azurecr.io", "imageName": "library/hello-world", + "tag": {"name": "latest", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:04:24.1991429Z", "lastUpdateTime": "2021-08-17T18:04:24.1991429Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '392' + content-length: '396' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:47 GMT + date: Tue, 17 Aug 2021 18:06:59 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -85,7 +85,7 @@ interactions: status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": true}' @@ -97,7 +97,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: @@ -110,7 +110,7 @@ interactions: connection: keep-alive content-length: '223' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:47 GMT + date: Tue, 17 Aug 2021 18:06:59 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -119,18 +119,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest - request: body: grant_type: !!python/object/apply:azure.containerregistry._generated.models._container_registry_enums.TokenGrantType - password scope: repository:library/hello-world:metadata_write - service: seankaneanon.azurecr.io + service: yalinlitestsanon.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -139,15 +139,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:48 GMT + date: Tue, 17 Aug 2021 18:06:59 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.633333' + x-ms-ratelimit-remaining-calls-per-second: '166.1' status: code: 200 message: OK - url: https://seankaneanon.azurecr.io/oauth2/token + url: https://yalinlitestsanon.azurecr.io/oauth2/token - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": true}' @@ -159,7 +159,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: @@ -172,7 +172,7 @@ interactions: connection: keep-alive content-length: '223' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 14:22:48 GMT + date: Tue, 17 Aug 2021 18:06:59 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -181,5 +181,5 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankaneanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest + url: https://yalinlitestsanon.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_manifest.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_manifest.yaml index 2fc395c929dc..bd4a49bbb560 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_manifest.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_manifest.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo26ab150f/_tags/tag26ab150f response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:11 GMT + - Tue, 17 Aug 2021 18:07:23 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:13 GMT + - Tue, 17 Aug 2021 18:07:24 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.35' + - '166.65' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:13 GMT + - Tue, 17 Aug 2021 18:07:24 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.333333' + - '166.633333' status: code: 200 message: OK @@ -131,14 +131,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo26ab150f/_tags/tag26ab150f response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo26ab150f", "tag": - {"name": "tag26ab150f", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T21:19:46.1093715Z", "lastUpdateTime": "2021-05-19T21:19:46.1093715Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo26ab150f", + "tag": {"name": "tag26ab150f", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:07:03.5179315Z", "lastUpdateTime": "2021-08-17T18:07:03.5179315Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -150,11 +150,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '390' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:13 GMT + - Tue, 17 Aug 2021 18:07:24 GMT docker-distribution-api-version: - registry/2.0 server: @@ -179,9 +179,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/v2/repo26ab150f/manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/v2/repo26ab150f/manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -200,7 +200,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:14 GMT + - Tue, 17 Aug 2021 18:07:24 GMT docker-distribution-api-version: - registry/2.0 server: @@ -215,6 +215,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:07:24 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.616667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo26ab150f%3Adelete&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -225,11 +263,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1135' + - '1145' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -241,7 +279,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:14 GMT + - Tue, 17 Aug 2021 18:07:24 GMT server: - openresty strict-transport-security: @@ -249,7 +287,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.316667' + - '166.6' status: code: 200 message: OK @@ -265,9 +303,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/v2/repo26ab150f/manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/v2/repo26ab150f/manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '' @@ -282,7 +320,7 @@ interactions: content-length: - '0' date: - - Wed, 19 May 2021 21:20:14 GMT + - Tue, 17 Aug 2021 18:07:25 GMT docker-distribution-api-version: - registry/2.0 server: @@ -307,7 +345,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo26ab150f/_tags/tag26ab150f response: @@ -328,7 +366,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:25 GMT + - Tue, 17 Aug 2021 18:07:35 GMT docker-distribution-api-version: - registry/2.0 server: @@ -343,6 +381,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:07:35 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.583333' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo26ab150f%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -353,11 +429,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -369,7 +445,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:25 GMT + - Tue, 17 Aug 2021 18:07:35 GMT server: - openresty strict-transport-security: @@ -377,7 +453,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.233333' + - '166.566667' status: code: 200 message: OK @@ -391,7 +467,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo26ab150f/_tags/tag26ab150f response: @@ -411,7 +487,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:25 GMT + - Tue, 17 Aug 2021 18:07:35 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_manifest_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_manifest_does_not_exist.yaml index ac7599a876ae..de3219cb838b 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_manifest_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_manifest_does_not_exist.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo93d41b55/_tags/tag93d41b55 response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:56 GMT + - Tue, 17 Aug 2021 18:08:00 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:57 GMT + - Tue, 17 Aug 2021 18:08:01 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '166.45' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:58 GMT + - Tue, 17 Aug 2021 18:08:01 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.633333' + - '166.366667' status: code: 200 message: OK @@ -131,14 +131,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo93d41b55/_tags/tag93d41b55 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo93d41b55", "tag": - {"name": "tag93d41b55", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T20:00:24.0073988Z", "lastUpdateTime": "2021-05-19T20:00:24.0073988Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo93d41b55", + "tag": {"name": "tag93d41b55", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:07:40.3091137Z", "lastUpdateTime": "2021-08-17T18:07:40.3091137Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -150,11 +150,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '390' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:58 GMT + - Tue, 17 Aug 2021 18:08:01 GMT docker-distribution-api-version: - registry/2.0 server: @@ -177,9 +177,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repo93d41b55/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repo93d41b55/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -198,7 +198,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:58 GMT + - Tue, 17 Aug 2021 18:08:01 GMT docker-distribution-api-version: - registry/2.0 server: @@ -213,6 +213,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:08:01 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.35' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo93d41b55%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -223,11 +261,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -239,7 +277,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:58 GMT + - Tue, 17 Aug 2021 18:08:01 GMT server: - openresty strict-transport-security: @@ -247,7 +285,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.616667' + - '166.333333' status: code: 200 message: OK @@ -261,26 +299,27 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repo93d41b55/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repo93d41b55/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo93d41b55", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-19T20:00:24.1565606Z", "lastUpdateTime": - "2021-05-19T20:00:24.1565606Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo93d41b55", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:07:40.2210567Z", "lastUpdateTime": + "2021-08-17T18:07:40.2210567Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tag93d41b55"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: @@ -291,11 +330,11 @@ interactions: connection: - keep-alive content-length: - - '1572' + - '1699' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:59 GMT + - Tue, 17 Aug 2021 18:08:01 GMT docker-distribution-api-version: - registry/2.0 server: @@ -320,9 +359,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/v2/repo93d41b55/manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835daaaaaaaaaa + uri: https://fake_url.azurecr.io/v2/repo93d41b55/manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250aaaaaaaaaa response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -341,7 +380,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:59 GMT + - Tue, 17 Aug 2021 18:08:01 GMT docker-distribution-api-version: - registry/2.0 server: @@ -356,6 +395,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:08:01 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.316667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo93d41b55%3Adelete&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -366,11 +443,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1135' + - '1145' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -382,7 +459,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:59 GMT + - Tue, 17 Aug 2021 18:08:01 GMT server: - openresty strict-transport-security: @@ -390,7 +467,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.6' + - '166.3' status: code: 200 message: OK @@ -406,12 +483,12 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/v2/repo93d41b55/manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835daaaaaaaaaa + uri: https://fake_url.azurecr.io/v2/repo93d41b55/manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250aaaaaaaaaa response: body: - string: '{"errors": [{"code": "MANIFEST_UNKNOWN", "message": "manifest sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835daaaaaaaaaa + string: '{"errors": [{"code": "MANIFEST_UNKNOWN", "message": "manifest sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250aaaaaaaaaa is not found"}]}' headers: access-control-expose-headers: @@ -426,7 +503,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:20:59 GMT + - Tue, 17 Aug 2021 18:08:01 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_repository.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_repository.yaml index adb2c9730a1e..7c9e96bd0711 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_repository.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_repository.yaml @@ -11,7 +11,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/to_be_deleted response: @@ -32,7 +32,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:21:30 GMT + - Tue, 17 Aug 2021 18:08:34 GMT docker-distribution-api-version: - registry/2.0 server: @@ -57,11 +57,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -73,7 +73,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:21:32 GMT + - Tue, 17 Aug 2021 18:08:34 GMT server: - openresty strict-transport-security: @@ -81,7 +81,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.583333' + - '166.35' status: code: 200 message: OK @@ -95,11 +95,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1136' + - '1146' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -111,7 +111,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:21:32 GMT + - Tue, 17 Aug 2021 18:08:35 GMT server: - openresty strict-transport-security: @@ -119,7 +119,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.5' + - '166.333333' status: code: 200 message: OK @@ -135,21 +135,22 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/to_be_deleted response: body: - string: '{"manifestsDeleted": ["sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + string: '{"manifestsDeleted": ["sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", + "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", - "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", + "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", + "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", - "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9"], + "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8"], "tagsDeleted": ["latest"]}' headers: access-control-expose-headers: @@ -160,11 +161,11 @@ interactions: connection: - keep-alive content-length: - - '788' + - '862' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:21:34 GMT + - Tue, 17 Aug 2021 18:08:36 GMT docker-distribution-api-version: - registry/2.0 server: @@ -189,7 +190,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: @@ -210,7 +211,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:21:34 GMT + - Tue, 17 Aug 2021 18:08:36 GMT docker-distribution-api-version: - registry/2.0 server: @@ -225,6 +226,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:08:36 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.316667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -235,11 +274,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1125' + - '1135' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -251,7 +290,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:21:34 GMT + - Tue, 17 Aug 2021 18:08:36 GMT server: - openresty strict-transport-security: @@ -259,7 +298,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.483333' + - '166.3' status: code: 200 message: OK @@ -273,21 +312,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["library/alpine", "library/busybox", "repo13cf14de", - "repo25ce0f5d", "repo26ab150f", "repo27331535", "repo28471541", "repo2915152d", - "repo2c591564", "repo2e8319c5", "repo308e19dd", "repo34ab0fa1", "repo3db51597", - "repo3dc21571", "repo3e8d15a3", "repo41a21dd2", "repo6969166d", "repo6a411679", - "repo7bda1b05", "repo7cee1b11", "repo80c61ece", "repo84e316ff", "repo8b5a11da", - "repo93d41b55", "repo99be175b", "repo9b321760", "repo9cb4121e", "repoaf17178c", - "repoaf8812b0", "repoaf9517b2", "repob0a917be", "repob22512e7", "repoc1b5131a", - "repoc1b812f4", "repoc28d1326", "repod2be1c42", "repodf771888", "repoe08b1894", - "repoeb7113db", "repof94c18ea", "repofa2418f6", "repos6ce51658", "reposetb7cc1bf8", - "reposetmani160e197b"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo26ab150f", "repo93d41b55"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -297,11 +328,11 @@ interactions: connection: - keep-alive content-length: - - '695' + - '106' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:21:35 GMT + - Tue, 17 Aug 2021 18:08:36 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_repository_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_repository_does_not_exist.yaml index 0ed911bbaa83..74d1d5274c48 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_repository_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_repository_does_not_exist.yaml @@ -11,7 +11,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/not_real_repo response: @@ -32,7 +32,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:21:35 GMT + - Tue, 17 Aug 2021 18:08:36 GMT docker-distribution-api-version: - registry/2.0 server: @@ -57,11 +57,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -73,7 +73,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:21:37 GMT + - Tue, 17 Aug 2021 18:08:37 GMT server: - openresty strict-transport-security: @@ -81,7 +81,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.45' + - '166.35' status: code: 200 message: OK @@ -95,11 +95,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1136' + - '1146' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -111,7 +111,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:21:37 GMT + - Tue, 17 Aug 2021 18:08:37 GMT server: - openresty strict-transport-security: @@ -119,7 +119,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.3' + - '166.233333' status: code: 200 message: OK @@ -135,7 +135,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/not_real_repo response: @@ -155,7 +155,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:21:38 GMT + - Tue, 17 Aug 2021 18:08:37 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_tag.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_tag.yaml index 01099d2ca067..ec86eaa992a2 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_tag.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_tag.yaml @@ -11,7 +11,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/repoc1b812f4/_tags/tagc1b812f40 response: @@ -32,7 +32,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:22:08 GMT + - Tue, 17 Aug 2021 18:09:02 GMT docker-distribution-api-version: - registry/2.0 server: @@ -57,11 +57,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -73,7 +73,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:22:10 GMT + - Tue, 17 Aug 2021 18:09:03 GMT server: - openresty strict-transport-security: @@ -81,7 +81,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '166.283333' status: code: 200 message: OK @@ -95,11 +95,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1135' + - '1145' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -111,7 +111,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:22:10 GMT + - Tue, 17 Aug 2021 18:09:03 GMT server: - openresty strict-transport-security: @@ -119,7 +119,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.633333' + - '166.2' status: code: 200 message: OK @@ -135,7 +135,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/repoc1b812f4/_tags/tagc1b812f40 response: @@ -152,7 +152,7 @@ interactions: content-length: - '0' date: - - Wed, 19 May 2021 21:22:11 GMT + - Tue, 17 Aug 2021 18:09:03 GMT docker-distribution-api-version: - registry/2.0 server: @@ -163,7 +163,7 @@ interactions: x-content-type-options: - nosniff x-ms-int-docker-content-digest: - - sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + - sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 x-ms-ratelimit-remaining-calls-per-second: - '8.000000' status: @@ -179,7 +179,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoc1b812f4/_tags response: @@ -200,7 +200,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:22:11 GMT + - Tue, 17 Aug 2021 18:09:03 GMT docker-distribution-api-version: - registry/2.0 server: @@ -215,6 +215,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:09:03 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.183333' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepoc1b812f4%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -225,11 +263,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -241,7 +279,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:22:11 GMT + - Tue, 17 Aug 2021 18:09:03 GMT server: - openresty strict-transport-security: @@ -249,7 +287,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.616667' + - '166.166667' status: code: 200 message: OK @@ -263,22 +301,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoc1b812f4/_tags response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoc1b812f4", "tags": - [{"name": "tagc1b812f41", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T18:31:08.7362236Z", "lastUpdateTime": "2021-05-19T18:31:08.7362236Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoc1b812f4", + "tags": [{"name": "tagc1b812f41", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:08:42.7900294Z", "lastUpdateTime": "2021-08-17T18:08:42.7900294Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tagc1b812f42", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T18:31:09.6068627Z", "lastUpdateTime": "2021-05-19T18:31:09.6068627Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:08:44.0893279Z", "lastUpdateTime": "2021-08-17T18:08:44.0893279Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tagc1b812f43", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T18:31:09.8757983Z", "lastUpdateTime": "2021-05-19T18:31:09.8757983Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:08:42.881532Z", "lastUpdateTime": "2021-08-17T18:08:42.881532Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: @@ -290,11 +328,11 @@ interactions: connection: - keep-alive content-length: - - '1028' + - '1030' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:22:11 GMT + - Tue, 17 Aug 2021 18:09:03 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_tag_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_tag_does_not_exist.yaml index c4ed178e40a1..a489d33f0df6 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_tag_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_tag_does_not_exist.yaml @@ -11,7 +11,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/does_not_exist/_tags/does_not_exist response: @@ -32,7 +32,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:22:12 GMT + - Tue, 17 Aug 2021 18:09:03 GMT docker-distribution-api-version: - registry/2.0 server: @@ -57,11 +57,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -73,7 +73,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:22:14 GMT + - Tue, 17 Aug 2021 18:09:04 GMT server: - openresty strict-transport-security: @@ -81,7 +81,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '166.15' status: code: 200 message: OK @@ -95,11 +95,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1137' + - '1147' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -111,7 +111,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:22:14 GMT + - Tue, 17 Aug 2021 18:09:04 GMT server: - openresty strict-transport-security: @@ -119,7 +119,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.633333' + - '166.133333' status: code: 200 message: OK @@ -135,7 +135,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/does_not_exist/_tags/does_not_exist response: @@ -155,7 +155,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:22:14 GMT + - Tue, 17 Aug 2021 18:09:04 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_expiration_time_parsing.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_expiration_time_parsing.yaml index 3f146327b911..f3511521a680 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_expiration_time_parsing.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_expiration_time_parsing.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 04 Jun 2021 14:47:52 GMT + - Tue, 17 Aug 2021 18:09:05 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 04 Jun 2021 14:47:53 GMT + - Tue, 17 Aug 2021 18:09:06 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.616667' + - '166.65' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1125' + - '1135' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 04 Jun 2021 14:47:53 GMT + - Tue, 17 Aug 2021 18:09:06 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.566667' + - '166.633333' status: code: 200 message: OK @@ -131,25 +131,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["library/alpine", "library/busybox", "repo12071936", - "repo13cf14de", "repo13d41966", "repo1ff2054", "repo25ce0f5d", "repo26ab150f", - "repo27331535", "repo27741d6f", "repo28471541", "repo2915152d", "repo2b381dc2", - "repo2b9d199e", "repo2bef19cb", "repo2c591564", "repo2e8319c5", "repo308e19dd", - "repo34ab0fa1", "repo3db51597", "repo3dc21571", "repo3e8d15a3", "repo41a21dd2", - "repo45431dd7", "repo46ec1a2d", "repo60eb1a9e", "repo63d41ad4", "repo6969166d", - "repo6a411679", "repo7bda1b05", "repo7cee1b11", "repo80c61ece", "repo816516e9", - "repo84e316ff", "repo8a3011c1", "repo8b5a11da", "repo93d41b55", "repo99be175b", - "repo9b321760", "repo9bf1d1b", "repo9cb4121e", "repoa14a1f36", "repoaf17178c", - "repoaf8317b0", "repoaf8812b0", "repoaf9517b2", "repob0a917be", "repob22512e7", - "repob3551bb3", "repoc1b5131a", "repoc1b812f4", "repoc28d1326", "repocf681c1b", - "repocfba1c48", "repod2be1c42", "repodf771888", "repoe08b1894", "repoe19b1892", - "repoe1a41fec", "repoe568203f", "repoeb7113db", "repoec051cb9", "repof94c18ea", - "repofa2418f6", "repofeb4143e", "repos6ce51658", "reposetb7cc1bf8", "reposetmani160e197b"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo26ab150f", "repo93d41b55", "repoc1b812f4"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -159,11 +147,11 @@ interactions: connection: - keep-alive content-length: - - '1053' + - '121' content-type: - application/json; charset=utf-8 date: - - Fri, 04 Jun 2021 14:47:53 GMT + - Tue, 17 Aug 2021 18:09:06 GMT docker-distribution-api-version: - registry/2.0 server: @@ -186,7 +174,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: @@ -207,7 +195,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 04 Jun 2021 14:47:53 GMT + - Tue, 17 Aug 2021 18:09:06 GMT docker-distribution-api-version: - registry/2.0 server: @@ -232,11 +220,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1125' + - '1135' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -248,7 +236,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 04 Jun 2021 14:47:53 GMT + - Tue, 17 Aug 2021 18:09:06 GMT server: - openresty strict-transport-security: @@ -256,7 +244,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.55' + - '166.616667' status: code: 200 message: OK @@ -270,25 +258,13 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["library/alpine", "library/busybox", "repo12071936", - "repo13cf14de", "repo13d41966", "repo1ff2054", "repo25ce0f5d", "repo26ab150f", - "repo27331535", "repo27741d6f", "repo28471541", "repo2915152d", "repo2b381dc2", - "repo2b9d199e", "repo2bef19cb", "repo2c591564", "repo2e8319c5", "repo308e19dd", - "repo34ab0fa1", "repo3db51597", "repo3dc21571", "repo3e8d15a3", "repo41a21dd2", - "repo45431dd7", "repo46ec1a2d", "repo60eb1a9e", "repo63d41ad4", "repo6969166d", - "repo6a411679", "repo7bda1b05", "repo7cee1b11", "repo80c61ece", "repo816516e9", - "repo84e316ff", "repo8a3011c1", "repo8b5a11da", "repo93d41b55", "repo99be175b", - "repo9b321760", "repo9bf1d1b", "repo9cb4121e", "repoa14a1f36", "repoaf17178c", - "repoaf8317b0", "repoaf8812b0", "repoaf9517b2", "repob0a917be", "repob22512e7", - "repob3551bb3", "repoc1b5131a", "repoc1b812f4", "repoc28d1326", "repocf681c1b", - "repocfba1c48", "repod2be1c42", "repodf771888", "repoe08b1894", "repoe19b1892", - "repoe1a41fec", "repoe568203f", "repoeb7113db", "repoec051cb9", "repof94c18ea", - "repofa2418f6", "repofeb4143e", "repos6ce51658", "reposetb7cc1bf8", "reposetmani160e197b"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo26ab150f", "repo93d41b55", "repoc1b812f4"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -298,11 +274,11 @@ interactions: connection: - keep-alive content-length: - - '1053' + - '121' content-type: - application/json; charset=utf-8 date: - - Fri, 04 Jun 2021 14:47:53 GMT + - Tue, 17 Aug 2021 18:09:06 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_manifest_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_manifest_properties.yaml index d6ac8256aa3d..43cb11897fa7 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_manifest_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_manifest_properties.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repodf771888/_tags/tagdf771888 response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:24:23 GMT + - Tue, 17 Aug 2021 18:09:30 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:24:25 GMT + - Tue, 17 Aug 2021 18:09:31 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.583333' + - '166.6' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:24:25 GMT + - Tue, 17 Aug 2021 18:09:31 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.3' + - '166.483333' status: code: 200 message: OK @@ -131,14 +131,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repodf771888/_tags/tagdf771888 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repodf771888", "tag": - {"name": "tagdf771888", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T18:31:44.9611245Z", "lastUpdateTime": "2021-05-19T18:31:44.9611245Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repodf771888", + "tag": {"name": "tagdf771888", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:09:11.0666264Z", "lastUpdateTime": "2021-08-17T18:09:11.0666264Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -150,11 +150,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '390' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:24:25 GMT + - Tue, 17 Aug 2021 18:09:31 GMT docker-distribution-api-version: - registry/2.0 server: @@ -177,9 +177,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repodf771888/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repodf771888/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -198,7 +198,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:24:26 GMT + - Tue, 17 Aug 2021 18:09:31 GMT docker-distribution-api-version: - registry/2.0 server: @@ -213,6 +213,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:09:31 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.466667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepodf771888%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -223,11 +261,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -239,7 +277,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:24:26 GMT + - Tue, 17 Aug 2021 18:09:31 GMT server: - openresty strict-transport-security: @@ -247,7 +285,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.283333' + - '166.45' status: code: 200 message: OK @@ -261,26 +299,27 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repodf771888/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repodf771888/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repodf771888", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-19T18:31:45.6558191Z", "lastUpdateTime": - "2021-05-19T18:31:45.6558191Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repodf771888", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:09:10.0627927Z", "lastUpdateTime": + "2021-08-17T18:09:10.0627927Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tagdf771888"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: @@ -291,11 +330,11 @@ interactions: connection: - keep-alive content-length: - - '1572' + - '1699' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:24:26 GMT + - Tue, 17 Aug 2021 18:09:31 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_manifest_properties_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_manifest_properties_does_not_exist.yaml index f9774cbe5f9b..caa8c3886261 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_manifest_properties_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_manifest_properties_does_not_exist.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo80c61ece/_tags/tag80c61ece response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:06 GMT + - Tue, 17 Aug 2021 18:09:56 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:08 GMT + - Tue, 17 Aug 2021 18:09:57 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.383333' + - '166.65' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:09 GMT + - Tue, 17 Aug 2021 18:09:57 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.366667' + - '166.633333' status: code: 200 message: OK @@ -131,14 +131,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo80c61ece/_tags/tag80c61ece response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo80c61ece", "tag": - {"name": "tag80c61ece", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T20:02:52.1893218Z", "lastUpdateTime": "2021-05-19T20:02:52.1893218Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo80c61ece", + "tag": {"name": "tag80c61ece", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:09:36.0810788Z", "lastUpdateTime": "2021-08-17T18:09:36.0810788Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -150,11 +150,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '390' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:09 GMT + - Tue, 17 Aug 2021 18:09:57 GMT docker-distribution-api-version: - registry/2.0 server: @@ -177,9 +177,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repo80c61ece/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repo80c61ece/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -198,7 +198,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:09 GMT + - Tue, 17 Aug 2021 18:09:57 GMT docker-distribution-api-version: - registry/2.0 server: @@ -213,6 +213,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:09:57 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.616667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo80c61ece%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -223,11 +261,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -239,7 +277,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:09 GMT + - Tue, 17 Aug 2021 18:09:57 GMT server: - openresty strict-transport-security: @@ -247,7 +285,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.35' + - '166.6' status: code: 200 message: OK @@ -261,26 +299,27 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repo80c61ece/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repo80c61ece/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo80c61ece", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-19T20:02:48.3381994Z", "lastUpdateTime": - "2021-05-19T20:02:48.3381994Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo80c61ece", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:09:36.1658367Z", "lastUpdateTime": + "2021-08-17T18:09:36.1658367Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tag80c61ece"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: @@ -291,11 +330,11 @@ interactions: connection: - keep-alive content-length: - - '1572' + - '1699' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:09 GMT + - Tue, 17 Aug 2021 18:09:57 GMT docker-distribution-api-version: - registry/2.0 server: @@ -318,9 +357,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repo80c61ece/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835daaaaaaaaaa + uri: https://fake_url.azurecr.io/acr/v1/repo80c61ece/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250aaaaaaaaaa response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -339,7 +378,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:10 GMT + - Tue, 17 Aug 2021 18:09:57 GMT docker-distribution-api-version: - registry/2.0 server: @@ -354,6 +393,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:09:57 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.583333' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo80c61ece%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -364,11 +441,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -380,7 +457,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:10 GMT + - Tue, 17 Aug 2021 18:09:57 GMT server: - openresty strict-transport-security: @@ -388,7 +465,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.333333' + - '166.566667' status: code: 200 message: OK @@ -402,9 +479,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repo80c61ece/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835daaaaaaaaaa + uri: https://fake_url.azurecr.io/acr/v1/repo80c61ece/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250aaaaaaaaaa response: body: string: '{"errors": [{"code": "MANIFEST_UNKNOWN", "message": "manifest unknown"}]}' @@ -421,7 +498,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:10 GMT + - Tue, 17 Aug 2021 18:09:57 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_repository_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_repository_properties.yaml index 0cc09505c669..d2c71a027ca2 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_repository_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_repository_properties.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Falpine response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:11 GMT + - Tue, 17 Aug 2021 18:09:57 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:12 GMT + - Tue, 17 Aug 2021 18:09:58 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '165.9' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1146' + - '1156' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:13 GMT + - Tue, 17 Aug 2021 18:09:58 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.633333' + - '165.65' status: code: 200 message: OK @@ -131,14 +131,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Falpine response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/alpine", - "createdTime": "2021-04-13T15:11:45.5428414Z", "lastUpdateTime": "2021-04-15T18:49:49.3963093Z", - "manifestCount": 16, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/alpine", + "createdTime": "2021-08-17T18:06:11.9091692Z", "lastUpdateTime": "2021-08-17T18:06:10.2845013Z", + "manifestCount": 8, "tagCount": 1, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": false}}' headers: @@ -150,11 +150,11 @@ interactions: connection: - keep-alive content-length: - - '317' + - '320' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:14 GMT + - Tue, 17 Aug 2021 18:09:58 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_tag_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_tag_properties.yaml index 4a008c3d6ba1..e9cf3681b644 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_tag_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_tag_properties.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo6969166d/_tags/tag6969166d response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:46 GMT + - Tue, 17 Aug 2021 18:10:23 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:48 GMT + - Tue, 17 Aug 2021 18:10:24 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.616667' + - '166.116667' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:48 GMT + - Tue, 17 Aug 2021 18:10:24 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.4' + - '165.9' status: code: 200 message: OK @@ -131,14 +131,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo6969166d/_tags/tag6969166d response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo6969166d", "tag": - {"name": "tag6969166d", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T18:32:20.9785869Z", "lastUpdateTime": "2021-05-19T18:32:20.9785869Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo6969166d", + "tag": {"name": "tag6969166d", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:10:03.2903051Z", "lastUpdateTime": "2021-08-17T18:10:03.2903051Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -150,11 +150,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '390' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:03:49 GMT + - Tue, 17 Aug 2021 18:10:24 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_tag_properties_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_tag_properties_does_not_exist.yaml index d94700c4b575..00272e0c028b 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_tag_properties_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_get_tag_properties_does_not_exist.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/Nonexistent/_tags/Nonexistent response: @@ -25,7 +25,7 @@ interactions: content-type: - text/plain; charset=utf-8 date: - - Wed, 19 May 2021 21:03:50 GMT + - Tue, 17 Aug 2021 18:10:24 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_incorrect_credential_scopes.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_incorrect_credential_scopes.yaml new file mode 100644 index 000000000000..cb5588cef838 --- /dev/null +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_incorrect_credential_scopes.yaml @@ -0,0 +1,48 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world + response: + body: + string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, + visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": + "repository", "Name": "library/hello-world", "Action": "metadata_read"}]}]}' + headers: + access-control-expose-headers: + - Docker-Content-Digest + - WWW-Authenticate + - Link + - X-Ms-Correlation-Request-Id + connection: + - keep-alive + content-length: + - '222' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:10:24 GMT + docker-distribution-api-version: + - registry/2.0 + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + - max-age=31536000; includeSubDomains + www-authenticate: + - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + x-content-type-options: + - nosniff + status: + code: 401 + message: Unauthorized +version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_registry_artifacts.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_registry_artifacts.yaml index 0c51d522b42b..8be91153c9b8 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_registry_artifacts.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_registry_artifacts.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:12 GMT + - Tue, 17 Aug 2021 18:10:25 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:13 GMT + - Tue, 17 Aug 2021 18:10:26 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '165.883333' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1147' + - '1157' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:13 GMT + - Tue, 17 Aug 2021 18:10:26 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.633333' + - '165.866667' status: code: 200 message: OK @@ -131,157 +131,64 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:02cf788367ec35bd85c4fa4aca9beccb02e128aa1e4bea6075204eb46d375b1f", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7864026Z", "lastUpdateTime": - "2021-05-18T17:16:25.7864026Z", "architecture": "mips64le", "os": "linux", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:002265f553555c92ddc51aa292e458a44615af64e22b8b35192ff4ca1801e8cd", + "imageSize": 528, "createdTime": "2021-08-17T18:06:35.7460007Z", "lastUpdateTime": + "2021-08-17T18:06:35.7460007Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.7232635Z", "lastUpdateTime": - "2021-05-05T14:12:53.7232635Z", "architecture": "386", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.076758Z", "lastUpdateTime": + "2021-08-17T18:06:35.076758Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1ccc0a0ca577e5fb5a0bdf2150a1a9f842f47c8865e861fa0062c5d343eb8cac", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.6976923Z", "lastUpdateTime": - "2021-04-13T15:11:15.6976923Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.9757197Z", "lastUpdateTime": - "2021-05-05T14:12:53.9757197Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e389843d4f03f45b1c21ba70fa10a4e182780eb42c2f6f9b868e6b1804f2d99", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.5813533Z", "lastUpdateTime": - "2021-05-05T14:12:53.5813533Z", "architecture": "mips64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.4654417Z", "lastUpdateTime": - "2021-05-18T17:16:26.4654417Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:37b77d92a7ca131dd379ab9a637b814dd99dc0cb560ccf59b566bd6448564b7c", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.3563152Z", "lastUpdateTime": - "2021-04-13T15:11:16.3563152Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.3522872Z", "lastUpdateTime": - "2021-05-05T14:12:53.3522872Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:554be197dddd3aeedd35536496106b331efe97458be0cf6cdabdd166b34f6ace", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.7224016Z", "lastUpdateTime": - "2021-05-18T17:16:26.7224016Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9220954Z", "lastUpdateTime": - "2021-04-13T15:11:15.9220954Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:82b4c9f36a6fa022454e78ad5c72a74fd34ca4e20489b36a8a436ca3ce9c34ef", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9893517Z", "lastUpdateTime": - "2021-04-13T15:11:15.9893517Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.8711031Z", "lastUpdateTime": - "2021-05-05T14:12:53.8711031Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:9708dc541771170e42aadc4c3c4477ec15e91e595673493bbbb78b7c8b75b0b5", - "imageSize": 527, "createdTime": "2021-05-18T17:16:27.1627549Z", "lastUpdateTime": - "2021-05-18T17:16:27.1627549Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.7730283Z", "lastUpdateTime": - "2021-04-13T15:11:15.7730283Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:9f665ff36d82565140f0f619274b023a451bc38a2dc6a2a9fe2b28c62ea27fd5", - "imageSize": 528, "createdTime": "2021-05-18T17:16:28.7425504Z", "lastUpdateTime": - "2021-05-18T17:16:28.7425504Z", "architecture": "ppc64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:0dc4e9a14237cae2d8e96e9e310116091c5ed4934448d7cfd22b122778964f11", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.8204333Z", "lastUpdateTime": + "2021-08-17T18:06:35.8204333Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.1951619Z", "lastUpdateTime": - "2021-04-13T15:11:15.1951619Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}, {"digest": "sha256:b4ad127c506802ba4e9702c335e6d78241668ee12840ce89957e9b945a680920", - "imageSize": 528, "createdTime": "2021-05-18T17:16:27.0293218Z", "lastUpdateTime": - "2021-05-18T17:16:27.0293218Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.779775Z", "lastUpdateTime": - "2021-05-05T14:12:53.779775Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5fc1d7b2e4ea86a06b0cf88de915a2c43a99a00b6b3c0af731e5f4c07ae8eff", - "imageSize": 4745, "createdTime": "2021-05-18T17:16:25.9591474Z", "lastUpdateTime": - "2021-05-18T17:16:25.9591474Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + true, "quarantineState": "Passed"}}, {"digest": "sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60", + "imageSize": 5272, "createdTime": "2021-08-17T18:06:34.0662553Z", "lastUpdateTime": + "2021-08-17T18:06:34.0662553Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:be4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb", - "imageSize": 4745, "createdTime": "2021-05-05T14:12:52.3468286Z", "lastUpdateTime": - "2021-05-05T14:12:52.3468286Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}, {"digest": "sha256:beded925d853f36a55cf1d0d4e92c81e945e0be5ade32df173c2827df2c9b12f", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.8778338Z", "lastUpdateTime": - "2021-04-13T15:11:16.8778338Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:c8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.4609714Z", "lastUpdateTime": - "2021-05-05T14:12:53.4609714Z", "architecture": "arm", "os": "linux", "mediaType": + true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:121373e88baca4c1ef533014de2759e002961de035607dd35d00886b052e37cf", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.5112709Z", "lastUpdateTime": + "2021-08-17T18:06:35.5112709Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d1eb04b3e60d4b8b90ee62f9a5a76bcc70bdeb9d43ffc4ae47c873828917f89e", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.0315661Z", "lastUpdateTime": - "2021-05-05T14:12:53.0315661Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.2838903Z", "lastUpdateTime": + "2021-08-17T18:06:35.2838903Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7329164Z", "lastUpdateTime": - "2021-05-18T17:16:25.7329164Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:4600ef29aff996daeadbc9b9f5c6e3ef83027704f9d75e07fc927911dd000a87", + "imageSize": 528, "createdTime": "2021-08-17T18:06:36.1029644Z", "lastUpdateTime": + "2021-08-17T18:06:36.1029644Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:e132653a6bb3ea3e3b0c63b608122ee72e03cd1e9849a05818965b695afad399", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.1965873Z", "lastUpdateTime": - "2021-04-13T15:11:16.1965873Z", "architecture": "mips64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.0655061Z", "lastUpdateTime": - "2021-04-13T15:11:16.0655061Z", "architecture": "arm64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.4218355Z", "lastUpdateTime": + "2021-08-17T18:06:35.4218355Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f1e9b10f3e11f03cc1881415598044364124c838dbc616621403bb88099ba8af", - "imageSize": 527, "createdTime": "2021-05-05T14:12:52.9174164Z", "lastUpdateTime": - "2021-05-05T14:12:52.9174164Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.0727331Z", "lastUpdateTime": - "2021-05-18T17:16:26.0727331Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + true, "quarantineState": "Passed"}}, {"digest": "sha256:5a43a82d5e4a8f1a827c0bb63648460af4e6a9f3c95a039c446614045a695b84", + "imageSize": 527, "createdTime": "2021-08-17T18:06:36.0392471Z", "lastUpdateTime": + "2021-08-17T18:06:36.0392471Z", "architecture": "riscv64", "os": "linux", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f3cfc9d0dbf931d3db4685ec659b7ac68e2a578219da4aae65427886e649b06b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.802626Z", "lastUpdateTime": - "2021-05-18T17:16:26.802626Z", "architecture": "amd64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:ccff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.9081554Z", "lastUpdateTime": + "2021-08-17T18:06:35.9081554Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:fd659a6f4786d18666586ab4935f8e846d7cf1ff1b2709671f3ff0fcd15519b9", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.6907072Z", "lastUpdateTime": - "2021-04-13T15:11:16.6907072Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:dca71257cd2e72840a21f0323234bb2e33fea6d949fa0f21c5102146f583486b", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.1560816Z", "lastUpdateTime": + "2021-08-17T18:06:35.1560816Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -296,7 +203,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:15 GMT + - Tue, 17 Aug 2021 18:10:26 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_registry_artifacts_ascending.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_registry_artifacts_ascending.yaml index 43b596d4b981..9a908bccc8ab 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_registry_artifacts_ascending.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_registry_artifacts_ascending.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timeasc response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:15 GMT + - Tue, 17 Aug 2021 18:10:27 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:17 GMT + - Tue, 17 Aug 2021 18:10:28 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '166.216667' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1147' + - '1157' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:17 GMT + - Tue, 17 Aug 2021 18:10:28 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.633333' + - '165.933333' status: code: 200 message: OK @@ -131,159 +131,66 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timeasc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:ae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.1951619Z", "lastUpdateTime": - "2021-04-13T15:11:15.1951619Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}, {"digest": "sha256:1ccc0a0ca577e5fb5a0bdf2150a1a9f842f47c8865e861fa0062c5d343eb8cac", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.6976923Z", "lastUpdateTime": - "2021-04-13T15:11:15.6976923Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.7730283Z", "lastUpdateTime": - "2021-04-13T15:11:15.7730283Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9220954Z", "lastUpdateTime": - "2021-04-13T15:11:15.9220954Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:82b4c9f36a6fa022454e78ad5c72a74fd34ca4e20489b36a8a436ca3ce9c34ef", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9893517Z", "lastUpdateTime": - "2021-04-13T15:11:15.9893517Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.0655061Z", "lastUpdateTime": - "2021-04-13T15:11:16.0655061Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:e132653a6bb3ea3e3b0c63b608122ee72e03cd1e9849a05818965b695afad399", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.1965873Z", "lastUpdateTime": - "2021-04-13T15:11:16.1965873Z", "architecture": "mips64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:37b77d92a7ca131dd379ab9a637b814dd99dc0cb560ccf59b566bd6448564b7c", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.3563152Z", "lastUpdateTime": - "2021-04-13T15:11:16.3563152Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:fd659a6f4786d18666586ab4935f8e846d7cf1ff1b2709671f3ff0fcd15519b9", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.6907072Z", "lastUpdateTime": - "2021-04-13T15:11:16.6907072Z", "architecture": "arm", "os": "linux", "mediaType": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60", + "imageSize": 5272, "createdTime": "2021-08-17T18:06:34.0662553Z", "lastUpdateTime": + "2021-08-17T18:06:34.0662553Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.076758Z", "lastUpdateTime": + "2021-08-17T18:06:35.076758Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:beded925d853f36a55cf1d0d4e92c81e945e0be5ade32df173c2827df2c9b12f", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.8778338Z", "lastUpdateTime": - "2021-04-13T15:11:16.8778338Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:be4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb", - "imageSize": 4745, "createdTime": "2021-05-05T14:12:52.3468286Z", "lastUpdateTime": - "2021-05-05T14:12:52.3468286Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}, {"digest": "sha256:f1e9b10f3e11f03cc1881415598044364124c838dbc616621403bb88099ba8af", - "imageSize": 527, "createdTime": "2021-05-05T14:12:52.9174164Z", "lastUpdateTime": - "2021-05-05T14:12:52.9174164Z", "architecture": "amd64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:dca71257cd2e72840a21f0323234bb2e33fea6d949fa0f21c5102146f583486b", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.1560816Z", "lastUpdateTime": + "2021-08-17T18:06:35.1560816Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d1eb04b3e60d4b8b90ee62f9a5a76bcc70bdeb9d43ffc4ae47c873828917f89e", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.0315661Z", "lastUpdateTime": - "2021-05-05T14:12:53.0315661Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.2838903Z", "lastUpdateTime": + "2021-08-17T18:06:35.2838903Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.3522872Z", "lastUpdateTime": - "2021-05-05T14:12:53.3522872Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.4218355Z", "lastUpdateTime": + "2021-08-17T18:06:35.4218355Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:c8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.4609714Z", "lastUpdateTime": - "2021-05-05T14:12:53.4609714Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:121373e88baca4c1ef533014de2759e002961de035607dd35d00886b052e37cf", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.5112709Z", "lastUpdateTime": + "2021-08-17T18:06:35.5112709Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e389843d4f03f45b1c21ba70fa10a4e182780eb42c2f6f9b868e6b1804f2d99", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.5813533Z", "lastUpdateTime": - "2021-05-05T14:12:53.5813533Z", "architecture": "mips64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:002265f553555c92ddc51aa292e458a44615af64e22b8b35192ff4ca1801e8cd", + "imageSize": 528, "createdTime": "2021-08-17T18:06:35.7460007Z", "lastUpdateTime": + "2021-08-17T18:06:35.7460007Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.7232635Z", "lastUpdateTime": - "2021-05-05T14:12:53.7232635Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.779775Z", "lastUpdateTime": - "2021-05-05T14:12:53.779775Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.8711031Z", "lastUpdateTime": - "2021-05-05T14:12:53.8711031Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.9757197Z", "lastUpdateTime": - "2021-05-05T14:12:53.9757197Z", "architecture": "ppc64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:0dc4e9a14237cae2d8e96e9e310116091c5ed4934448d7cfd22b122778964f11", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.8204333Z", "lastUpdateTime": + "2021-08-17T18:06:35.8204333Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7329164Z", "lastUpdateTime": - "2021-05-18T17:16:25.7329164Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:ccff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.9081554Z", "lastUpdateTime": + "2021-08-17T18:06:35.9081554Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:02cf788367ec35bd85c4fa4aca9beccb02e128aa1e4bea6075204eb46d375b1f", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7864026Z", "lastUpdateTime": - "2021-05-18T17:16:25.7864026Z", "architecture": "mips64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:5a43a82d5e4a8f1a827c0bb63648460af4e6a9f3c95a039c446614045a695b84", + "imageSize": 527, "createdTime": "2021-08-17T18:06:36.0392471Z", "lastUpdateTime": + "2021-08-17T18:06:36.0392471Z", "architecture": "riscv64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5fc1d7b2e4ea86a06b0cf88de915a2c43a99a00b6b3c0af731e5f4c07ae8eff", - "imageSize": 4745, "createdTime": "2021-05-18T17:16:25.9591474Z", "lastUpdateTime": - "2021-05-18T17:16:25.9591474Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:f2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.0727331Z", "lastUpdateTime": - "2021-05-18T17:16:26.0727331Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.4654417Z", "lastUpdateTime": - "2021-05-18T17:16:26.4654417Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:4600ef29aff996daeadbc9b9f5c6e3ef83027704f9d75e07fc927911dd000a87", + "imageSize": 528, "createdTime": "2021-08-17T18:06:36.1029644Z", "lastUpdateTime": + "2021-08-17T18:06:36.1029644Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:554be197dddd3aeedd35536496106b331efe97458be0cf6cdabdd166b34f6ace", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.7224016Z", "lastUpdateTime": - "2021-05-18T17:16:26.7224016Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f3cfc9d0dbf931d3db4685ec659b7ac68e2a578219da4aae65427886e649b06b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.802626Z", "lastUpdateTime": - "2021-05-18T17:16:26.802626Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b4ad127c506802ba4e9702c335e6d78241668ee12840ce89957e9b945a680920", - "imageSize": 528, "createdTime": "2021-05-18T17:16:27.0293218Z", "lastUpdateTime": - "2021-05-18T17:16:27.0293218Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:9708dc541771170e42aadc4c3c4477ec15e91e595673493bbbb78b7c8b75b0b5", - "imageSize": 527, "createdTime": "2021-05-18T17:16:27.1627549Z", "lastUpdateTime": - "2021-05-18T17:16:27.1627549Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:9f665ff36d82565140f0f619274b023a451bc38a2dc6a2a9fe2b28c62ea27fd5", - "imageSize": 528, "createdTime": "2021-05-18T17:16:28.7425504Z", "lastUpdateTime": - "2021-05-18T17:16:28.7425504Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' headers: access-control-expose-headers: @@ -296,7 +203,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:18 GMT + - Tue, 17 Aug 2021 18:10:28 GMT docker-distribution-api-version: - registry/2.0 server: @@ -321,7 +228,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timeasc response: @@ -342,7 +249,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:18 GMT + - Tue, 17 Aug 2021 18:10:28 GMT docker-distribution-api-version: - registry/2.0 server: @@ -357,6 +264,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:10:28 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '165.916667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fbusybox%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -367,11 +312,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1147' + - '1157' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -383,7 +328,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:18 GMT + - Tue, 17 Aug 2021 18:10:28 GMT server: - openresty strict-transport-security: @@ -391,7 +336,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.616667' + - '165.9' status: code: 200 message: OK @@ -405,159 +350,66 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timeasc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:ae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.1951619Z", "lastUpdateTime": - "2021-04-13T15:11:15.1951619Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}, {"digest": "sha256:1ccc0a0ca577e5fb5a0bdf2150a1a9f842f47c8865e861fa0062c5d343eb8cac", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.6976923Z", "lastUpdateTime": - "2021-04-13T15:11:15.6976923Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.7730283Z", "lastUpdateTime": - "2021-04-13T15:11:15.7730283Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9220954Z", "lastUpdateTime": - "2021-04-13T15:11:15.9220954Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:82b4c9f36a6fa022454e78ad5c72a74fd34ca4e20489b36a8a436ca3ce9c34ef", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9893517Z", "lastUpdateTime": - "2021-04-13T15:11:15.9893517Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.0655061Z", "lastUpdateTime": - "2021-04-13T15:11:16.0655061Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:e132653a6bb3ea3e3b0c63b608122ee72e03cd1e9849a05818965b695afad399", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.1965873Z", "lastUpdateTime": - "2021-04-13T15:11:16.1965873Z", "architecture": "mips64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:37b77d92a7ca131dd379ab9a637b814dd99dc0cb560ccf59b566bd6448564b7c", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.3563152Z", "lastUpdateTime": - "2021-04-13T15:11:16.3563152Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:fd659a6f4786d18666586ab4935f8e846d7cf1ff1b2709671f3ff0fcd15519b9", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.6907072Z", "lastUpdateTime": - "2021-04-13T15:11:16.6907072Z", "architecture": "arm", "os": "linux", "mediaType": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60", + "imageSize": 5272, "createdTime": "2021-08-17T18:06:34.0662553Z", "lastUpdateTime": + "2021-08-17T18:06:34.0662553Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.076758Z", "lastUpdateTime": + "2021-08-17T18:06:35.076758Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:beded925d853f36a55cf1d0d4e92c81e945e0be5ade32df173c2827df2c9b12f", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.8778338Z", "lastUpdateTime": - "2021-04-13T15:11:16.8778338Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:be4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb", - "imageSize": 4745, "createdTime": "2021-05-05T14:12:52.3468286Z", "lastUpdateTime": - "2021-05-05T14:12:52.3468286Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}, {"digest": "sha256:f1e9b10f3e11f03cc1881415598044364124c838dbc616621403bb88099ba8af", - "imageSize": 527, "createdTime": "2021-05-05T14:12:52.9174164Z", "lastUpdateTime": - "2021-05-05T14:12:52.9174164Z", "architecture": "amd64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:dca71257cd2e72840a21f0323234bb2e33fea6d949fa0f21c5102146f583486b", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.1560816Z", "lastUpdateTime": + "2021-08-17T18:06:35.1560816Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d1eb04b3e60d4b8b90ee62f9a5a76bcc70bdeb9d43ffc4ae47c873828917f89e", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.0315661Z", "lastUpdateTime": - "2021-05-05T14:12:53.0315661Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.2838903Z", "lastUpdateTime": + "2021-08-17T18:06:35.2838903Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.3522872Z", "lastUpdateTime": - "2021-05-05T14:12:53.3522872Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.4218355Z", "lastUpdateTime": + "2021-08-17T18:06:35.4218355Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:c8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.4609714Z", "lastUpdateTime": - "2021-05-05T14:12:53.4609714Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:121373e88baca4c1ef533014de2759e002961de035607dd35d00886b052e37cf", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.5112709Z", "lastUpdateTime": + "2021-08-17T18:06:35.5112709Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e389843d4f03f45b1c21ba70fa10a4e182780eb42c2f6f9b868e6b1804f2d99", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.5813533Z", "lastUpdateTime": - "2021-05-05T14:12:53.5813533Z", "architecture": "mips64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:002265f553555c92ddc51aa292e458a44615af64e22b8b35192ff4ca1801e8cd", + "imageSize": 528, "createdTime": "2021-08-17T18:06:35.7460007Z", "lastUpdateTime": + "2021-08-17T18:06:35.7460007Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.7232635Z", "lastUpdateTime": - "2021-05-05T14:12:53.7232635Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.779775Z", "lastUpdateTime": - "2021-05-05T14:12:53.779775Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.8711031Z", "lastUpdateTime": - "2021-05-05T14:12:53.8711031Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.9757197Z", "lastUpdateTime": - "2021-05-05T14:12:53.9757197Z", "architecture": "ppc64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:0dc4e9a14237cae2d8e96e9e310116091c5ed4934448d7cfd22b122778964f11", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.8204333Z", "lastUpdateTime": + "2021-08-17T18:06:35.8204333Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7329164Z", "lastUpdateTime": - "2021-05-18T17:16:25.7329164Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:ccff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.9081554Z", "lastUpdateTime": + "2021-08-17T18:06:35.9081554Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:02cf788367ec35bd85c4fa4aca9beccb02e128aa1e4bea6075204eb46d375b1f", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7864026Z", "lastUpdateTime": - "2021-05-18T17:16:25.7864026Z", "architecture": "mips64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:5a43a82d5e4a8f1a827c0bb63648460af4e6a9f3c95a039c446614045a695b84", + "imageSize": 527, "createdTime": "2021-08-17T18:06:36.0392471Z", "lastUpdateTime": + "2021-08-17T18:06:36.0392471Z", "architecture": "riscv64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5fc1d7b2e4ea86a06b0cf88de915a2c43a99a00b6b3c0af731e5f4c07ae8eff", - "imageSize": 4745, "createdTime": "2021-05-18T17:16:25.9591474Z", "lastUpdateTime": - "2021-05-18T17:16:25.9591474Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:f2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.0727331Z", "lastUpdateTime": - "2021-05-18T17:16:26.0727331Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.4654417Z", "lastUpdateTime": - "2021-05-18T17:16:26.4654417Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:554be197dddd3aeedd35536496106b331efe97458be0cf6cdabdd166b34f6ace", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.7224016Z", "lastUpdateTime": - "2021-05-18T17:16:26.7224016Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f3cfc9d0dbf931d3db4685ec659b7ac68e2a578219da4aae65427886e649b06b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.802626Z", "lastUpdateTime": - "2021-05-18T17:16:26.802626Z", "architecture": "amd64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:4600ef29aff996daeadbc9b9f5c6e3ef83027704f9d75e07fc927911dd000a87", + "imageSize": 528, "createdTime": "2021-08-17T18:06:36.1029644Z", "lastUpdateTime": + "2021-08-17T18:06:36.1029644Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b4ad127c506802ba4e9702c335e6d78241668ee12840ce89957e9b945a680920", - "imageSize": 528, "createdTime": "2021-05-18T17:16:27.0293218Z", "lastUpdateTime": - "2021-05-18T17:16:27.0293218Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:9708dc541771170e42aadc4c3c4477ec15e91e595673493bbbb78b7c8b75b0b5", - "imageSize": 527, "createdTime": "2021-05-18T17:16:27.1627549Z", "lastUpdateTime": - "2021-05-18T17:16:27.1627549Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:9f665ff36d82565140f0f619274b023a451bc38a2dc6a2a9fe2b28c62ea27fd5", - "imageSize": 528, "createdTime": "2021-05-18T17:16:28.7425504Z", "lastUpdateTime": - "2021-05-18T17:16:28.7425504Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' headers: access-control-expose-headers: @@ -570,7 +422,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:20 GMT + - Tue, 17 Aug 2021 18:10:29 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_registry_artifacts_by_page.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_registry_artifacts_by_page.yaml index 078c0d079432..3f2927686751 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_registry_artifacts_by_page.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_registry_artifacts_by_page.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?n=2 response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:20 GMT + - Tue, 17 Aug 2021 18:10:29 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:22 GMT + - Tue, 17 Aug 2021 18:10:30 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '166.55' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1147' + - '1157' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:22 GMT + - Tue, 17 Aug 2021 18:10:30 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.633333' + - '166.233333' status: code: 200 message: OK @@ -131,20 +131,20 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?n=2 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:02cf788367ec35bd85c4fa4aca9beccb02e128aa1e4bea6075204eb46d375b1f", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7864026Z", "lastUpdateTime": - "2021-05-18T17:16:25.7864026Z", "architecture": "mips64le", "os": "linux", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:002265f553555c92ddc51aa292e458a44615af64e22b8b35192ff4ca1801e8cd", + "imageSize": 528, "createdTime": "2021-08-17T18:06:35.7460007Z", "lastUpdateTime": + "2021-08-17T18:06:35.7460007Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.7232635Z", "lastUpdateTime": - "2021-05-05T14:12:53.7232635Z", "architecture": "386", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.076758Z", "lastUpdateTime": + "2021-08-17T18:06:35.076758Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -157,15 +157,15 @@ interactions: connection: - keep-alive content-length: - - '936' + - '937' content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:22 GMT + - Tue, 17 Aug 2021 18:10:30 GMT docker-distribution-api-version: - registry/2.0 link: - - ; + - ; rel="next" server: - openresty @@ -187,9 +187,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -208,7 +208,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:22 GMT + - Tue, 17 Aug 2021 18:10:30 GMT docker-distribution-api-version: - registry/2.0 server: @@ -224,7 +224,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fbusybox%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED headers: Accept: - application/json @@ -233,23 +233,23 @@ interactions: Connection: - keep-alive Content-Length: - - '1147' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST - uri: https://fake_url.azurecr.io/oauth2/token + uri: https://fake_url.azurecr.io/oauth2/exchange response: body: - string: '{"access_token": "REDACTED"}' + string: '{"refresh_token": "REDACTED"}' headers: connection: - keep-alive content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:23 GMT + - Tue, 17 Aug 2021 18:10:30 GMT server: - openresty strict-transport-security: @@ -257,112 +257,10 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.616667' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:1ccc0a0ca577e5fb5a0bdf2150a1a9f842f47c8865e861fa0062c5d343eb8cac", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.6976923Z", "lastUpdateTime": - "2021-04-13T15:11:15.6976923Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.9757197Z", "lastUpdateTime": - "2021-05-05T14:12:53.9757197Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '935' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:23 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; - rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff + - '166.216667' status: code: 200 message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '218' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:23 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized - request: body: service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fbusybox%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -373,11 +271,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1147' + - '1157' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -389,7 +287,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:23 GMT + - Tue, 17 Aug 2021 18:10:30 GMT server: - openresty strict-transport-security: @@ -397,7 +295,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.6' + - '166.2' status: code: 200 message: OK @@ -411,23 +309,22 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322&n=2&orderby= response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:1e389843d4f03f45b1c21ba70fa10a4e182780eb42c2f6f9b868e6b1804f2d99", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.5813533Z", "lastUpdateTime": - "2021-05-05T14:12:53.5813533Z", "architecture": "mips64le", "os": "linux", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:0dc4e9a14237cae2d8e96e9e310116091c5ed4934448d7cfd22b122778964f11", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.8204333Z", "lastUpdateTime": + "2021-08-17T18:06:35.8204333Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.4654417Z", "lastUpdateTime": - "2021-05-18T17:16:26.4654417Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}]}' + true, "quarantineState": "Passed"}}, {"digest": "sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60", + "imageSize": 5272, "createdTime": "2021-08-17T18:06:34.0662553Z", "lastUpdateTime": + "2021-08-17T18:06:34.0662553Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -437,15 +334,15 @@ interactions: connection: - keep-alive content-length: - - '936' + - '903' content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:23 GMT + - Tue, 17 Aug 2021 18:10:30 GMT docker-distribution-api-version: - registry/2.0 link: - - ; + - ; rel="next" server: - openresty @@ -467,9 +364,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -488,7 +385,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:23 GMT + - Tue, 17 Aug 2021 18:10:30 GMT docker-distribution-api-version: - registry/2.0 server: @@ -503,6 +400,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:10:30 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.183333' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fbusybox%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -513,11 +448,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1147' + - '1157' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -529,7 +464,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:24 GMT + - Tue, 17 Aug 2021 18:10:30 GMT server: - openresty strict-transport-security: @@ -537,7 +472,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.583333' + - '166.166667' status: code: 200 message: OK @@ -551,20 +486,20 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60&n=2&orderby= response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:37b77d92a7ca131dd379ab9a637b814dd99dc0cb560ccf59b566bd6448564b7c", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.3563152Z", "lastUpdateTime": - "2021-04-13T15:11:16.3563152Z", "architecture": "s390x", "os": "linux", "mediaType": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:121373e88baca4c1ef533014de2759e002961de035607dd35d00886b052e37cf", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.5112709Z", "lastUpdateTime": + "2021-08-17T18:06:35.5112709Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.3522872Z", "lastUpdateTime": - "2021-05-05T14:12:53.3522872Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.2838903Z", "lastUpdateTime": + "2021-08-17T18:06:35.2838903Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -577,15 +512,15 @@ interactions: connection: - keep-alive content-length: - - '931' + - '937' content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:24 GMT + - Tue, 17 Aug 2021 18:10:30 GMT docker-distribution-api-version: - registry/2.0 link: - - ; + - ; rel="next" server: - openresty @@ -607,9 +542,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -628,7 +563,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:24 GMT + - Tue, 17 Aug 2021 18:10:30 GMT docker-distribution-api-version: - registry/2.0 server: @@ -643,6 +578,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:10:31 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.15' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fbusybox%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -653,11 +626,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1147' + - '1157' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -669,7 +642,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:24 GMT + - Tue, 17 Aug 2021 18:10:31 GMT server: - openresty strict-transport-security: @@ -677,7 +650,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.566667' + - '166.133333' status: code: 200 message: OK @@ -691,20 +664,20 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812&n=2&orderby= response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:554be197dddd3aeedd35536496106b331efe97458be0cf6cdabdd166b34f6ace", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.7224016Z", "lastUpdateTime": - "2021-05-18T17:16:26.7224016Z", "architecture": "arm", "os": "linux", "mediaType": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:4600ef29aff996daeadbc9b9f5c6e3ef83027704f9d75e07fc927911dd000a87", + "imageSize": 528, "createdTime": "2021-08-17T18:06:36.1029644Z", "lastUpdateTime": + "2021-08-17T18:06:36.1029644Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9220954Z", "lastUpdateTime": - "2021-04-13T15:11:15.9220954Z", "architecture": "386", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.4218355Z", "lastUpdateTime": + "2021-08-17T18:06:35.4218355Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -717,15 +690,15 @@ interactions: connection: - keep-alive content-length: - - '929' + - '937' content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:24 GMT + - Tue, 17 Aug 2021 18:10:31 GMT docker-distribution-api-version: - registry/2.0 link: - - ; + - ; rel="next" server: - openresty @@ -747,9 +720,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -768,7 +741,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:24 GMT + - Tue, 17 Aug 2021 18:10:31 GMT docker-distribution-api-version: - registry/2.0 server: @@ -783,6 +756,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:10:31 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.116667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fbusybox%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -793,11 +804,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1147' + - '1157' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -809,7 +820,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:25 GMT + - Tue, 17 Aug 2021 18:10:31 GMT server: - openresty strict-transport-security: @@ -817,7 +828,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.55' + - '166.1' status: code: 200 message: OK @@ -831,20 +842,20 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499&n=2&orderby= response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:82b4c9f36a6fa022454e78ad5c72a74fd34ca4e20489b36a8a436ca3ce9c34ef", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9893517Z", "lastUpdateTime": - "2021-04-13T15:11:15.9893517Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:5a43a82d5e4a8f1a827c0bb63648460af4e6a9f3c95a039c446614045a695b84", + "imageSize": 527, "createdTime": "2021-08-17T18:06:36.0392471Z", "lastUpdateTime": + "2021-08-17T18:06:36.0392471Z", "architecture": "riscv64", "os": "linux", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.8711031Z", "lastUpdateTime": - "2021-05-05T14:12:53.8711031Z", "architecture": "s390x", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:ccff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.9081554Z", "lastUpdateTime": + "2021-08-17T18:06:35.9081554Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -857,15 +868,15 @@ interactions: connection: - keep-alive content-length: - - '931' + - '939' content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:25 GMT + - Tue, 17 Aug 2021 18:10:31 GMT docker-distribution-api-version: - registry/2.0 link: - - ; + - ; rel="next" server: - openresty @@ -887,9 +898,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3Accff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -908,7 +919,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:25 GMT + - Tue, 17 Aug 2021 18:10:31 GMT docker-distribution-api-version: - registry/2.0 server: @@ -924,7 +935,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fbusybox%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED headers: Accept: - application/json @@ -933,23 +944,23 @@ interactions: Connection: - keep-alive Content-Length: - - '1147' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST - uri: https://fake_url.azurecr.io/oauth2/token + uri: https://fake_url.azurecr.io/oauth2/exchange response: body: - string: '{"access_token": "REDACTED"}' + string: '{"refresh_token": "REDACTED"}' headers: connection: - keep-alive content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:25 GMT + - Tue, 17 Aug 2021 18:10:31 GMT server: - openresty strict-transport-security: @@ -957,12 +968,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.533333' + - '166.083333' status: code: 200 message: OK - request: - body: null + body: service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fbusybox%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: Accept: - application/json @@ -970,50 +981,32 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '1157' + Content-Type: + - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535&n=2&orderby= + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/token response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:9708dc541771170e42aadc4c3c4477ec15e91e595673493bbbb78b7c8b75b0b5", - "imageSize": 527, "createdTime": "2021-05-18T17:16:27.1627549Z", "lastUpdateTime": - "2021-05-18T17:16:27.1627549Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.7730283Z", "lastUpdateTime": - "2021-04-13T15:11:15.7730283Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}]}' + string: '{"access_token": "REDACTED"}' headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id connection: - keep-alive - content-length: - - '929' content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:25 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; - rel="next" + - Tue, 17 Aug 2021 18:10:31 GMT server: - openresty strict-transport-security: - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.066667' status: code: 200 message: OK @@ -1027,1081 +1020,15 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3Accff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091&n=2&orderby= response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '218' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:26 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fbusybox%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1147' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:26 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.516667' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3A975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:9f665ff36d82565140f0f619274b023a451bc38a2dc6a2a9fe2b28c62ea27fd5", - "imageSize": 528, "createdTime": "2021-05-18T17:16:28.7425504Z", "lastUpdateTime": - "2021-05-18T17:16:28.7425504Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.1951619Z", "lastUpdateTime": - "2021-04-13T15:11:15.1951619Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '877' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:26 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; - rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3Aae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '218' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:26 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fbusybox%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1147' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:26 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.5' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3Aae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:b4ad127c506802ba4e9702c335e6d78241668ee12840ce89957e9b945a680920", - "imageSize": 528, "createdTime": "2021-05-18T17:16:27.0293218Z", "lastUpdateTime": - "2021-05-18T17:16:27.0293218Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.779775Z", "lastUpdateTime": - "2021-05-05T14:12:53.779775Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '933' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:27 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; - rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3Ab5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '218' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:27 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fbusybox%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1147' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:27 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.483333' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3Ab5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:b5fc1d7b2e4ea86a06b0cf88de915a2c43a99a00b6b3c0af731e5f4c07ae8eff", - "imageSize": 4745, "createdTime": "2021-05-18T17:16:25.9591474Z", "lastUpdateTime": - "2021-05-18T17:16:25.9591474Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:be4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb", - "imageSize": 4745, "createdTime": "2021-05-05T14:12:52.3468286Z", "lastUpdateTime": - "2021-05-05T14:12:52.3468286Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '839' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:27 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; - rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3Abe4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '218' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:27 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fbusybox%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1147' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:27 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.466667' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3Abe4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:beded925d853f36a55cf1d0d4e92c81e945e0be5ade32df173c2827df2c9b12f", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.8778338Z", "lastUpdateTime": - "2021-04-13T15:11:16.8778338Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:c8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.4609714Z", "lastUpdateTime": - "2021-05-05T14:12:53.4609714Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '933' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:28 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; - rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3Ac8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '218' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:28 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fbusybox%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1147' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:28 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.45' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3Ac8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:d1eb04b3e60d4b8b90ee62f9a5a76bcc70bdeb9d43ffc4ae47c873828917f89e", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.0315661Z", "lastUpdateTime": - "2021-05-05T14:12:53.0315661Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7329164Z", "lastUpdateTime": - "2021-05-18T17:16:25.7329164Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '931' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:28 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; - rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3Ad3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '218' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:28 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fbusybox%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1147' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:28 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.433333' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3Ad3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:e132653a6bb3ea3e3b0c63b608122ee72e03cd1e9849a05818965b695afad399", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.1965873Z", "lastUpdateTime": - "2021-04-13T15:11:16.1965873Z", "architecture": "mips64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.0655061Z", "lastUpdateTime": - "2021-04-13T15:11:16.0655061Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '934' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:29 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; - rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3Aed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '218' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:29 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fbusybox%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1147' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:29 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.416667' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3Aed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:f1e9b10f3e11f03cc1881415598044364124c838dbc616621403bb88099ba8af", - "imageSize": 527, "createdTime": "2021-05-05T14:12:52.9174164Z", "lastUpdateTime": - "2021-05-05T14:12:52.9174164Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.0727331Z", "lastUpdateTime": - "2021-05-18T17:16:26.0727331Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '935' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:29 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; - rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3Af2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '218' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:29 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fbusybox%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1147' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 26 May 2021 20:30:29 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.4' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256%3Af2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:f3cfc9d0dbf931d3db4685ec659b7ac68e2a578219da4aae65427886e649b06b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.802626Z", "lastUpdateTime": - "2021-05-18T17:16:26.802626Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:fd659a6f4786d18666586ab4935f8e846d7cf1ff1b2709671f3ff0fcd15519b9", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.6907072Z", "lastUpdateTime": - "2021-04-13T15:11:16.6907072Z", "architecture": "arm", "os": "linux", "mediaType": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:dca71257cd2e72840a21f0323234bb2e33fea6d949fa0f21c5102146f583486b", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.1560816Z", "lastUpdateTime": + "2021-08-17T18:06:35.1560816Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -2114,11 +1041,11 @@ interactions: connection: - keep-alive content-length: - - '929' + - '511' content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:30 GMT + - Tue, 17 Aug 2021 18:10:31 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_registry_artifacts_descending.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_registry_artifacts_descending.yaml index e036754c8949..f0772b4a5bc9 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_registry_artifacts_descending.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_registry_artifacts_descending.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timedesc response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:31 GMT + - Tue, 17 Aug 2021 18:10:31 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:32 GMT + - Tue, 17 Aug 2021 18:10:32 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '166.05' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1147' + - '1157' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:32 GMT + - Tue, 17 Aug 2021 18:10:32 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.633333' + - '166.033333' status: code: 200 message: OK @@ -131,160 +131,67 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timedesc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:9f665ff36d82565140f0f619274b023a451bc38a2dc6a2a9fe2b28c62ea27fd5", - "imageSize": 528, "createdTime": "2021-05-18T17:16:28.7425504Z", "lastUpdateTime": - "2021-05-18T17:16:28.7425504Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:9708dc541771170e42aadc4c3c4477ec15e91e595673493bbbb78b7c8b75b0b5", - "imageSize": 527, "createdTime": "2021-05-18T17:16:27.1627549Z", "lastUpdateTime": - "2021-05-18T17:16:27.1627549Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b4ad127c506802ba4e9702c335e6d78241668ee12840ce89957e9b945a680920", - "imageSize": 528, "createdTime": "2021-05-18T17:16:27.0293218Z", "lastUpdateTime": - "2021-05-18T17:16:27.0293218Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f3cfc9d0dbf931d3db4685ec659b7ac68e2a578219da4aae65427886e649b06b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.802626Z", "lastUpdateTime": - "2021-05-18T17:16:26.802626Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:554be197dddd3aeedd35536496106b331efe97458be0cf6cdabdd166b34f6ace", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.7224016Z", "lastUpdateTime": - "2021-05-18T17:16:26.7224016Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.4654417Z", "lastUpdateTime": - "2021-05-18T17:16:26.4654417Z", "architecture": "arm", "os": "linux", "mediaType": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:4600ef29aff996daeadbc9b9f5c6e3ef83027704f9d75e07fc927911dd000a87", + "imageSize": 528, "createdTime": "2021-08-17T18:06:36.1029644Z", "lastUpdateTime": + "2021-08-17T18:06:36.1029644Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.0727331Z", "lastUpdateTime": - "2021-05-18T17:16:26.0727331Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5fc1d7b2e4ea86a06b0cf88de915a2c43a99a00b6b3c0af731e5f4c07ae8eff", - "imageSize": 4745, "createdTime": "2021-05-18T17:16:25.9591474Z", "lastUpdateTime": - "2021-05-18T17:16:25.9591474Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:02cf788367ec35bd85c4fa4aca9beccb02e128aa1e4bea6075204eb46d375b1f", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7864026Z", "lastUpdateTime": - "2021-05-18T17:16:25.7864026Z", "architecture": "mips64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:5a43a82d5e4a8f1a827c0bb63648460af4e6a9f3c95a039c446614045a695b84", + "imageSize": 527, "createdTime": "2021-08-17T18:06:36.0392471Z", "lastUpdateTime": + "2021-08-17T18:06:36.0392471Z", "architecture": "riscv64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7329164Z", "lastUpdateTime": - "2021-05-18T17:16:25.7329164Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:ccff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.9081554Z", "lastUpdateTime": + "2021-08-17T18:06:35.9081554Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.9757197Z", "lastUpdateTime": - "2021-05-05T14:12:53.9757197Z", "architecture": "ppc64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:0dc4e9a14237cae2d8e96e9e310116091c5ed4934448d7cfd22b122778964f11", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.8204333Z", "lastUpdateTime": + "2021-08-17T18:06:35.8204333Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.8711031Z", "lastUpdateTime": - "2021-05-05T14:12:53.8711031Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.779775Z", "lastUpdateTime": - "2021-05-05T14:12:53.779775Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.7232635Z", "lastUpdateTime": - "2021-05-05T14:12:53.7232635Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e389843d4f03f45b1c21ba70fa10a4e182780eb42c2f6f9b868e6b1804f2d99", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.5813533Z", "lastUpdateTime": - "2021-05-05T14:12:53.5813533Z", "architecture": "mips64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:002265f553555c92ddc51aa292e458a44615af64e22b8b35192ff4ca1801e8cd", + "imageSize": 528, "createdTime": "2021-08-17T18:06:35.7460007Z", "lastUpdateTime": + "2021-08-17T18:06:35.7460007Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:c8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.4609714Z", "lastUpdateTime": - "2021-05-05T14:12:53.4609714Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:121373e88baca4c1ef533014de2759e002961de035607dd35d00886b052e37cf", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.5112709Z", "lastUpdateTime": + "2021-08-17T18:06:35.5112709Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.3522872Z", "lastUpdateTime": - "2021-05-05T14:12:53.3522872Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.4218355Z", "lastUpdateTime": + "2021-08-17T18:06:35.4218355Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d1eb04b3e60d4b8b90ee62f9a5a76bcc70bdeb9d43ffc4ae47c873828917f89e", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.0315661Z", "lastUpdateTime": - "2021-05-05T14:12:53.0315661Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.2838903Z", "lastUpdateTime": + "2021-08-17T18:06:35.2838903Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f1e9b10f3e11f03cc1881415598044364124c838dbc616621403bb88099ba8af", - "imageSize": 527, "createdTime": "2021-05-05T14:12:52.9174164Z", "lastUpdateTime": - "2021-05-05T14:12:52.9174164Z", "architecture": "amd64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:dca71257cd2e72840a21f0323234bb2e33fea6d949fa0f21c5102146f583486b", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.1560816Z", "lastUpdateTime": + "2021-08-17T18:06:35.1560816Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:be4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb", - "imageSize": 4745, "createdTime": "2021-05-05T14:12:52.3468286Z", "lastUpdateTime": - "2021-05-05T14:12:52.3468286Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}, {"digest": "sha256:beded925d853f36a55cf1d0d4e92c81e945e0be5ade32df173c2827df2c9b12f", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.8778338Z", "lastUpdateTime": - "2021-04-13T15:11:16.8778338Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:fd659a6f4786d18666586ab4935f8e846d7cf1ff1b2709671f3ff0fcd15519b9", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.6907072Z", "lastUpdateTime": - "2021-04-13T15:11:16.6907072Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:37b77d92a7ca131dd379ab9a637b814dd99dc0cb560ccf59b566bd6448564b7c", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.3563152Z", "lastUpdateTime": - "2021-04-13T15:11:16.3563152Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:e132653a6bb3ea3e3b0c63b608122ee72e03cd1e9849a05818965b695afad399", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.1965873Z", "lastUpdateTime": - "2021-04-13T15:11:16.1965873Z", "architecture": "mips64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.0655061Z", "lastUpdateTime": - "2021-04-13T15:11:16.0655061Z", "architecture": "arm64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.076758Z", "lastUpdateTime": + "2021-08-17T18:06:35.076758Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:82b4c9f36a6fa022454e78ad5c72a74fd34ca4e20489b36a8a436ca3ce9c34ef", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9893517Z", "lastUpdateTime": - "2021-04-13T15:11:15.9893517Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9220954Z", "lastUpdateTime": - "2021-04-13T15:11:15.9220954Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.7730283Z", "lastUpdateTime": - "2021-04-13T15:11:15.7730283Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1ccc0a0ca577e5fb5a0bdf2150a1a9f842f47c8865e861fa0062c5d343eb8cac", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.6976923Z", "lastUpdateTime": - "2021-04-13T15:11:15.6976923Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.1951619Z", "lastUpdateTime": - "2021-04-13T15:11:15.1951619Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}]}' + true, "quarantineState": "Passed"}}, {"digest": "sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60", + "imageSize": 5272, "createdTime": "2021-08-17T18:06:34.0662553Z", "lastUpdateTime": + "2021-08-17T18:06:34.0662553Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -296,7 +203,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:33 GMT + - Tue, 17 Aug 2021 18:10:33 GMT docker-distribution-api-version: - registry/2.0 server: @@ -321,7 +228,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timedesc response: @@ -342,7 +249,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:33 GMT + - Tue, 17 Aug 2021 18:10:33 GMT docker-distribution-api-version: - registry/2.0 server: @@ -357,6 +264,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:10:33 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.016667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fbusybox%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -367,11 +312,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1147' + - '1157' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -383,7 +328,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:34 GMT + - Tue, 17 Aug 2021 18:10:33 GMT server: - openresty strict-transport-security: @@ -391,7 +336,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.616667' + - '166' status: code: 200 message: OK @@ -405,160 +350,67 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timedesc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:9f665ff36d82565140f0f619274b023a451bc38a2dc6a2a9fe2b28c62ea27fd5", - "imageSize": 528, "createdTime": "2021-05-18T17:16:28.7425504Z", "lastUpdateTime": - "2021-05-18T17:16:28.7425504Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:9708dc541771170e42aadc4c3c4477ec15e91e595673493bbbb78b7c8b75b0b5", - "imageSize": 527, "createdTime": "2021-05-18T17:16:27.1627549Z", "lastUpdateTime": - "2021-05-18T17:16:27.1627549Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b4ad127c506802ba4e9702c335e6d78241668ee12840ce89957e9b945a680920", - "imageSize": 528, "createdTime": "2021-05-18T17:16:27.0293218Z", "lastUpdateTime": - "2021-05-18T17:16:27.0293218Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f3cfc9d0dbf931d3db4685ec659b7ac68e2a578219da4aae65427886e649b06b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.802626Z", "lastUpdateTime": - "2021-05-18T17:16:26.802626Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:554be197dddd3aeedd35536496106b331efe97458be0cf6cdabdd166b34f6ace", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.7224016Z", "lastUpdateTime": - "2021-05-18T17:16:26.7224016Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.4654417Z", "lastUpdateTime": - "2021-05-18T17:16:26.4654417Z", "architecture": "arm", "os": "linux", "mediaType": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:4600ef29aff996daeadbc9b9f5c6e3ef83027704f9d75e07fc927911dd000a87", + "imageSize": 528, "createdTime": "2021-08-17T18:06:36.1029644Z", "lastUpdateTime": + "2021-08-17T18:06:36.1029644Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.0727331Z", "lastUpdateTime": - "2021-05-18T17:16:26.0727331Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5fc1d7b2e4ea86a06b0cf88de915a2c43a99a00b6b3c0af731e5f4c07ae8eff", - "imageSize": 4745, "createdTime": "2021-05-18T17:16:25.9591474Z", "lastUpdateTime": - "2021-05-18T17:16:25.9591474Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:02cf788367ec35bd85c4fa4aca9beccb02e128aa1e4bea6075204eb46d375b1f", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7864026Z", "lastUpdateTime": - "2021-05-18T17:16:25.7864026Z", "architecture": "mips64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7329164Z", "lastUpdateTime": - "2021-05-18T17:16:25.7329164Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.9757197Z", "lastUpdateTime": - "2021-05-05T14:12:53.9757197Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.8711031Z", "lastUpdateTime": - "2021-05-05T14:12:53.8711031Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.779775Z", "lastUpdateTime": - "2021-05-05T14:12:53.779775Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.7232635Z", "lastUpdateTime": - "2021-05-05T14:12:53.7232635Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e389843d4f03f45b1c21ba70fa10a4e182780eb42c2f6f9b868e6b1804f2d99", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.5813533Z", "lastUpdateTime": - "2021-05-05T14:12:53.5813533Z", "architecture": "mips64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:5a43a82d5e4a8f1a827c0bb63648460af4e6a9f3c95a039c446614045a695b84", + "imageSize": 527, "createdTime": "2021-08-17T18:06:36.0392471Z", "lastUpdateTime": + "2021-08-17T18:06:36.0392471Z", "architecture": "riscv64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:c8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.4609714Z", "lastUpdateTime": - "2021-05-05T14:12:53.4609714Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.3522872Z", "lastUpdateTime": - "2021-05-05T14:12:53.3522872Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:ccff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.9081554Z", "lastUpdateTime": + "2021-08-17T18:06:35.9081554Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d1eb04b3e60d4b8b90ee62f9a5a76bcc70bdeb9d43ffc4ae47c873828917f89e", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.0315661Z", "lastUpdateTime": - "2021-05-05T14:12:53.0315661Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f1e9b10f3e11f03cc1881415598044364124c838dbc616621403bb88099ba8af", - "imageSize": 527, "createdTime": "2021-05-05T14:12:52.9174164Z", "lastUpdateTime": - "2021-05-05T14:12:52.9174164Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:be4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb", - "imageSize": 4745, "createdTime": "2021-05-05T14:12:52.3468286Z", "lastUpdateTime": - "2021-05-05T14:12:52.3468286Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}, {"digest": "sha256:beded925d853f36a55cf1d0d4e92c81e945e0be5ade32df173c2827df2c9b12f", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.8778338Z", "lastUpdateTime": - "2021-04-13T15:11:16.8778338Z", "architecture": "ppc64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:0dc4e9a14237cae2d8e96e9e310116091c5ed4934448d7cfd22b122778964f11", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.8204333Z", "lastUpdateTime": + "2021-08-17T18:06:35.8204333Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:fd659a6f4786d18666586ab4935f8e846d7cf1ff1b2709671f3ff0fcd15519b9", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.6907072Z", "lastUpdateTime": - "2021-04-13T15:11:16.6907072Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:37b77d92a7ca131dd379ab9a637b814dd99dc0cb560ccf59b566bd6448564b7c", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.3563152Z", "lastUpdateTime": - "2021-04-13T15:11:16.3563152Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:e132653a6bb3ea3e3b0c63b608122ee72e03cd1e9849a05818965b695afad399", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.1965873Z", "lastUpdateTime": - "2021-04-13T15:11:16.1965873Z", "architecture": "mips64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:002265f553555c92ddc51aa292e458a44615af64e22b8b35192ff4ca1801e8cd", + "imageSize": 528, "createdTime": "2021-08-17T18:06:35.7460007Z", "lastUpdateTime": + "2021-08-17T18:06:35.7460007Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.0655061Z", "lastUpdateTime": - "2021-04-13T15:11:16.0655061Z", "architecture": "arm64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:121373e88baca4c1ef533014de2759e002961de035607dd35d00886b052e37cf", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.5112709Z", "lastUpdateTime": + "2021-08-17T18:06:35.5112709Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:82b4c9f36a6fa022454e78ad5c72a74fd34ca4e20489b36a8a436ca3ce9c34ef", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9893517Z", "lastUpdateTime": - "2021-04-13T15:11:15.9893517Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.4218355Z", "lastUpdateTime": + "2021-08-17T18:06:35.4218355Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9220954Z", "lastUpdateTime": - "2021-04-13T15:11:15.9220954Z", "architecture": "386", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.2838903Z", "lastUpdateTime": + "2021-08-17T18:06:35.2838903Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.7730283Z", "lastUpdateTime": - "2021-04-13T15:11:15.7730283Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:dca71257cd2e72840a21f0323234bb2e33fea6d949fa0f21c5102146f583486b", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.1560816Z", "lastUpdateTime": + "2021-08-17T18:06:35.1560816Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1ccc0a0ca577e5fb5a0bdf2150a1a9f842f47c8865e861fa0062c5d343eb8cac", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.6976923Z", "lastUpdateTime": - "2021-04-13T15:11:15.6976923Z", "architecture": "amd64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.076758Z", "lastUpdateTime": + "2021-08-17T18:06:35.076758Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.1951619Z", "lastUpdateTime": - "2021-04-13T15:11:15.1951619Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}]}' + true, "quarantineState": "Passed"}}, {"digest": "sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60", + "imageSize": 5272, "createdTime": "2021-08-17T18:06:34.0662553Z", "lastUpdateTime": + "2021-08-17T18:06:34.0662553Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -570,7 +422,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 26 May 2021 20:30:35 GMT + - Tue, 17 Aug 2021 18:10:34 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_repository_names.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_repository_names.yaml index b8732d8712e1..f2913393f31d 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_repository_names.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_repository_names.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:14 GMT + - Tue, 17 Aug 2021 18:10:34 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:15 GMT + - Tue, 17 Aug 2021 18:10:35 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '166.316667' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1125' + - '1135' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:16 GMT + - Tue, 17 Aug 2021 18:10:35 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.633333' + - '166.3' status: code: 200 message: OK @@ -131,21 +131,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["library/alpine", "library/busybox", "repo13cf14de", - "repo25ce0f5d", "repo26ab150f", "repo27331535", "repo28471541", "repo2915152d", - "repo2c591564", "repo2e8319c5", "repo308e19dd", "repo34ab0fa1", "repo3db51597", - "repo3dc21571", "repo3e8d15a3", "repo41a21dd2", "repo6969166d", "repo6a411679", - "repo7bda1b05", "repo7cee1b11", "repo80c61ece", "repo84e316ff", "repo8b5a11da", - "repo93d41b55", "repo99be175b", "repo9b321760", "repo9cb4121e", "repoaf17178c", - "repoaf8812b0", "repoaf9517b2", "repob0a917be", "repob22512e7", "repoc1b5131a", - "repoc1b812f4", "repoc28d1326", "repod2be1c42", "repodf771888", "repoe08b1894", - "repoeb7113db", "repof94c18ea", "repofa2418f6", "repos6ce51658", "reposetb7cc1bf8", - "reposetmani160e197b"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo26ab150f", "repo6969166d", "repo80c61ece", "repo93d41b55", "repoc1b812f4", + "repodf771888"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -155,11 +148,11 @@ interactions: connection: - keep-alive content-length: - - '695' + - '166' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:16 GMT + - Tue, 17 Aug 2021 18:10:35 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_repository_names_by_page.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_repository_names_by_page.yaml index 0ed07c082f16..601b4742ee6d 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_repository_names_by_page.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_repository_names_by_page.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog?n=2 response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:17 GMT + - Tue, 17 Aug 2021 18:10:35 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:18 GMT + - Tue, 17 Aug 2021 18:10:36 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.483333' + - '166.516667' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1125' + - '1135' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:18 GMT + - Tue, 17 Aug 2021 18:10:36 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.466667' + - '166.133333' status: code: 200 message: OK @@ -131,7 +131,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog?n=2 response: @@ -150,7 +150,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:19 GMT + - Tue, 17 Aug 2021 18:10:36 GMT docker-distribution-api-version: - registry/2.0 link: @@ -175,7 +175,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=library%2Fbusybox&n=2&orderby= response: @@ -196,7 +196,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:19 GMT + - Tue, 17 Aug 2021 18:10:36 GMT docker-distribution-api-version: - registry/2.0 server: @@ -212,7 +212,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED headers: Accept: - application/json @@ -221,23 +221,23 @@ interactions: Connection: - keep-alive Content-Length: - - '1125' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST - uri: https://fake_url.azurecr.io/oauth2/token + uri: https://fake_url.azurecr.io/oauth2/exchange response: body: - string: '{"access_token": "REDACTED"}' + string: '{"refresh_token": "REDACTED"}' headers: connection: - keep-alive content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:19 GMT + - Tue, 17 Aug 2021 18:10:36 GMT server: - openresty strict-transport-security: @@ -245,12 +245,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.45' + - '166.116667' status: code: 200 message: OK - request: - body: null + body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token headers: Accept: - application/json @@ -258,38 +258,32 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '1135' + Content-Type: + - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=library%2Fbusybox&n=2&orderby= + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/token response: body: - string: '{"repositories": ["repo13cf14de", "repo25ce0f5d"]}' + string: '{"access_token": "REDACTED"}' headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id connection: - keep-alive - content-length: - - '49' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:19 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" + - Tue, 17 Aug 2021 18:10:36 GMT server: - openresty strict-transport-security: - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.1' status: code: 200 message: OK @@ -303,14 +297,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo25ce0f5d&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=library%2Fbusybox&n=2&orderby= response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' + string: '{"repositories": ["library/hello-world", "repo26ab150f"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -320,60 +312,22 @@ interactions: connection: - keep-alive content-length: - - '196' + - '56' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:19 GMT + - Tue, 17 Aug 2021 18:10:36 GMT docker-distribution-api-version: - registry/2.0 + link: + - ; rel="next" server: - openresty strict-transport-security: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" x-content-type-options: - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1125' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:20 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.433333' status: code: 200 message: OK @@ -387,12 +341,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo25ce0f5d&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo26ab150f&n=2&orderby= response: body: - string: '{"repositories": ["repo26ab150f", "repo27331535"]}' + string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, + visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": + "registry", "Name": "catalog", "Action": "*"}]}]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -402,27 +358,27 @@ interactions: connection: - keep-alive content-length: - - '49' + - '196' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:20 GMT + - Tue, 17 Aug 2021 18:10:36 GMT docker-distribution-api-version: - registry/2.0 - link: - - ; rel="next" server: - openresty strict-transport-security: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains + www-authenticate: + - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" x-content-type-options: - nosniff status: - code: 200 - message: OK + code: 401 + message: Unauthorized - request: - body: null + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED headers: Accept: - application/json @@ -430,43 +386,35 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo27331535&n=2&orderby= + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' + string: '{"refresh_token": "REDACTED"}' headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id connection: - keep-alive - content-length: - - '196' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:20 GMT - docker-distribution-api-version: - - registry/2.0 + - Tue, 17 Aug 2021 18:10:36 GMT server: - openresty strict-transport-security: - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.083333' status: - code: 401 - message: Unauthorized + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -477,11 +425,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1125' + - '1135' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -493,7 +441,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:20 GMT + - Tue, 17 Aug 2021 18:10:36 GMT server: - openresty strict-transport-security: @@ -501,7 +449,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.416667' + - '166.066667' status: code: 200 message: OK @@ -515,12 +463,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo27331535&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo26ab150f&n=2&orderby= response: body: - string: '{"repositories": ["repo28471541", "repo2915152d"]}' + string: '{"repositories": ["repo6969166d", "repo80c61ece"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -534,11 +482,11 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:20 GMT + - Tue, 17 Aug 2021 18:10:36 GMT docker-distribution-api-version: - registry/2.0 link: - - ; rel="next" + - ; rel="next" server: - openresty strict-transport-security: @@ -559,9 +507,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2915152d&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo80c61ece&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -580,7 +528,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:21 GMT + - Tue, 17 Aug 2021 18:10:36 GMT docker-distribution-api-version: - registry/2.0 server: @@ -596,7 +544,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED headers: Accept: - application/json @@ -605,23 +553,23 @@ interactions: Connection: - keep-alive Content-Length: - - '1125' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST - uri: https://fake_url.azurecr.io/oauth2/token + uri: https://fake_url.azurecr.io/oauth2/exchange response: body: - string: '{"access_token": "REDACTED"}' + string: '{"refresh_token": "REDACTED"}' headers: connection: - keep-alive content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:21 GMT + - Tue, 17 Aug 2021 18:10:36 GMT server: - openresty strict-transport-security: @@ -629,100 +577,10 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.4' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2915152d&n=2&orderby= - response: - body: - string: '{"repositories": ["repo2c591564", "repo2e8319c5"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:21 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff + - '166.05' status: code: 200 message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2e8319c5&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:21 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized - request: body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -733,11 +591,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1125' + - '1135' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -749,7 +607,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:21 GMT + - Tue, 17 Aug 2021 18:10:36 GMT server: - openresty strict-transport-security: @@ -757,7 +615,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.383333' + - '166.033333' status: code: 200 message: OK @@ -771,12 +629,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2e8319c5&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo80c61ece&n=2&orderby= response: body: - string: '{"repositories": ["repo308e19dd", "repo34ab0fa1"]}' + string: '{"repositories": ["repo93d41b55", "repoc1b812f4"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -790,11 +648,11 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:22 GMT + - Tue, 17 Aug 2021 18:10:37 GMT docker-distribution-api-version: - registry/2.0 link: - - ; rel="next" + - ; rel="next" server: - openresty strict-transport-security: @@ -815,9 +673,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo34ab0fa1&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoc1b812f4&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -836,7 +694,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:22 GMT + - Tue, 17 Aug 2021 18:10:37 GMT docker-distribution-api-version: - registry/2.0 server: @@ -852,7 +710,7 @@ interactions: code: 401 message: Unauthorized - request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED headers: Accept: - application/json @@ -861,23 +719,23 @@ interactions: Connection: - keep-alive Content-Length: - - '1125' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST - uri: https://fake_url.azurecr.io/oauth2/token + uri: https://fake_url.azurecr.io/oauth2/exchange response: body: - string: '{"access_token": "REDACTED"}' + string: '{"refresh_token": "REDACTED"}' headers: connection: - keep-alive content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:22 GMT + - Tue, 17 Aug 2021 18:10:37 GMT server: - openresty strict-transport-security: @@ -885,12 +743,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.366667' + - '166.016667' status: code: 200 message: OK - request: - body: null + body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token headers: Accept: - application/json @@ -898,38 +756,32 @@ interactions: - gzip, deflate Connection: - keep-alive + Content-Length: + - '1135' + Content-Type: + - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo34ab0fa1&n=2&orderby= + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/token response: body: - string: '{"repositories": ["repo3db51597", "repo3dc21571"]}' + string: '{"access_token": "REDACTED"}' headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id connection: - keep-alive - content-length: - - '49' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:22 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" + - Tue, 17 Aug 2021 18:10:37 GMT server: - openresty strict-transport-security: - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166' status: code: 200 message: OK @@ -943,1888 +795,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo3dc21571&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:22 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1125' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:22 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.35' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo3dc21571&n=2&orderby= - response: - body: - string: '{"repositories": ["repo3e8d15a3", "repo41a21dd2"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:23 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo41a21dd2&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:23 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1125' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:23 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.333333' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo41a21dd2&n=2&orderby= - response: - body: - string: '{"repositories": ["repo6969166d", "repo6a411679"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:23 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo6a411679&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:23 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1125' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:23 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.316667' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo6a411679&n=2&orderby= - response: - body: - string: '{"repositories": ["repo7bda1b05", "repo7cee1b11"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:24 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo7cee1b11&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:24 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1125' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:24 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.3' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo7cee1b11&n=2&orderby= - response: - body: - string: '{"repositories": ["repo80c61ece", "repo84e316ff"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:24 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo84e316ff&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:24 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1125' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:25 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.283333' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo84e316ff&n=2&orderby= - response: - body: - string: '{"repositories": ["repo8b5a11da", "repo93d41b55"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:25 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo93d41b55&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:25 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1125' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:26 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.266667' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo93d41b55&n=2&orderby= - response: - body: - string: '{"repositories": ["repo99be175b", "repo9b321760"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:26 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo9b321760&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:26 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1125' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:26 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.25' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo9b321760&n=2&orderby= - response: - body: - string: '{"repositories": ["repo9cb4121e", "repoaf17178c"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:27 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf17178c&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:27 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1125' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:27 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.233333' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf17178c&n=2&orderby= - response: - body: - string: '{"repositories": ["repoaf8812b0", "repoaf9517b2"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:27 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf9517b2&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:27 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1125' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:27 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.216667' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf9517b2&n=2&orderby= - response: - body: - string: '{"repositories": ["repob0a917be", "repob22512e7"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:28 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repob22512e7&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:28 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1125' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:28 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.2' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repob22512e7&n=2&orderby= - response: - body: - string: '{"repositories": ["repoc1b5131a", "repoc1b812f4"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:28 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoc1b812f4&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:28 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1125' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:28 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.183333' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoc1b812f4&n=2&orderby= - response: - body: - string: '{"repositories": ["repoc28d1326", "repod2be1c42"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:29 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repod2be1c42&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:29 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1125' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:29 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.166667' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repod2be1c42&n=2&orderby= - response: - body: - string: '{"repositories": ["repodf771888", "repoe08b1894"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:29 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoe08b1894&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:29 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1125' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:29 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.15' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoe08b1894&n=2&orderby= - response: - body: - string: '{"repositories": ["repoeb7113db", "repof94c18ea"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:30 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repof94c18ea&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:30 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1125' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:30 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.133333' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repof94c18ea&n=2&orderby= - response: - body: - string: '{"repositories": ["repofa2418f6", "repos6ce51658"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '50' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:30 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repos6ce51658&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:30 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED&grant_type=refresh_token - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1125' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Wed, 19 May 2021 21:04:30 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '166.116667' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repos6ce51658&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoc1b812f4&n=2&orderby= response: body: - string: '{"repositories": ["reposetb7cc1bf8", "reposetmani160e197b"]}' + string: '{"repositories": ["repodf771888"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -2834,11 +810,11 @@ interactions: connection: - keep-alive content-length: - - '59' + - '34' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:04:31 GMT + - Tue, 17 Aug 2021 18:10:37 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_tag_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_tag_properties.yaml index ef7d3165b14f..7a05710da9b3 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_tag_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_tag_properties.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo816516e9/_tags response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:21:00 GMT + - Tue, 17 Aug 2021 18:11:01 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:21:02 GMT + - Tue, 17 Aug 2021 18:11:02 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.616667' + - '166.65' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:21:02 GMT + - Tue, 17 Aug 2021 18:11:02 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.383333' + - '166.633333' status: code: 200 message: OK @@ -131,26 +131,26 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo816516e9/_tags response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo816516e9", "tags": - [{"name": "tag816516e90", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:20:35.8397277Z", "lastUpdateTime": "2021-05-28T15:20:35.8397277Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo816516e9", + "tags": [{"name": "tag816516e90", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:10:41.5503948Z", "lastUpdateTime": "2021-08-17T18:10:41.5503948Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag816516e91", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:20:36.3952528Z", "lastUpdateTime": "2021-05-28T15:20:36.3952528Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:10:42.5360697Z", "lastUpdateTime": "2021-08-17T18:10:42.5360697Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag816516e92", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:20:36.6167211Z", "lastUpdateTime": "2021-05-28T15:20:36.6167211Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:10:49.6628054Z", "lastUpdateTime": "2021-08-17T18:10:49.6628054Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag816516e93", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:20:36.2770295Z", "lastUpdateTime": "2021-05-28T15:20:36.2770295Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:10:42.6446526Z", "lastUpdateTime": "2021-08-17T18:10:42.6446526Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: @@ -162,11 +162,11 @@ interactions: connection: - keep-alive content-length: - - '1347' + - '1351' content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:21:02 GMT + - Tue, 17 Aug 2021 18:11:02 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_tag_properties_order_ascending.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_tag_properties_order_ascending.yaml index 8159ba52a898..eafedaf6f093 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_tag_properties_order_ascending.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_tag_properties_order_ascending.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo27741d6f/_tags?orderby=timeasc response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:21:38 GMT + - Tue, 17 Aug 2021 18:11:27 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:21:39 GMT + - Tue, 17 Aug 2021 18:11:28 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '166.383333' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:21:40 GMT + - Tue, 17 Aug 2021 18:11:28 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.633333' + - '165.75' status: code: 200 message: OK @@ -131,26 +131,26 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo27741d6f/_tags?orderby=timeasc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo27741d6f", "tags": - [{"name": "tag27741d6f0", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:21:15.3713648Z", "lastUpdateTime": "2021-05-28T15:21:15.3713648Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo27741d6f", + "tags": [{"name": "tag27741d6f0", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:07.650425Z", "lastUpdateTime": "2021-08-17T18:11:07.650425Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"name": "tag27741d6f1", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:21:15.8100372Z", "lastUpdateTime": "2021-05-28T15:21:15.8100372Z", + true, "readEnabled": true, "listEnabled": true}}, {"name": "tag27741d6f3", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:09.1074408Z", "lastUpdateTime": "2021-08-17T18:11:09.1074408Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag27741d6f2", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:21:16.0746791Z", "lastUpdateTime": "2021-05-28T15:21:16.0746791Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:09.6175155Z", "lastUpdateTime": "2021-08-17T18:11:09.6175155Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"name": "tag27741d6f3", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:21:16.352787Z", "lastUpdateTime": "2021-05-28T15:21:16.352787Z", + true, "readEnabled": true, "listEnabled": true}}, {"name": "tag27741d6f1", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:10.9870733Z", "lastUpdateTime": "2021-08-17T18:11:10.9870733Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: @@ -162,11 +162,11 @@ interactions: connection: - keep-alive content-length: - - '1345' + - '1349' content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:21:40 GMT + - Tue, 17 Aug 2021 18:11:28 GMT docker-distribution-api-version: - registry/2.0 server: @@ -189,7 +189,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo27741d6f/_tags?orderby=timeasc response: @@ -210,7 +210,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:21:40 GMT + - Tue, 17 Aug 2021 18:11:28 GMT docker-distribution-api-version: - registry/2.0 server: @@ -225,6 +225,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:11:28 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '165.733333' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo27741d6f%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -235,11 +273,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -251,7 +289,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:21:41 GMT + - Tue, 17 Aug 2021 18:11:28 GMT server: - openresty strict-transport-security: @@ -259,7 +297,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.616667' + - '165.716667' status: code: 200 message: OK @@ -273,26 +311,26 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo27741d6f/_tags?orderby=timeasc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo27741d6f", "tags": - [{"name": "tag27741d6f0", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:21:15.3713648Z", "lastUpdateTime": "2021-05-28T15:21:15.3713648Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo27741d6f", + "tags": [{"name": "tag27741d6f0", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:07.650425Z", "lastUpdateTime": "2021-08-17T18:11:07.650425Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"name": "tag27741d6f1", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:21:15.8100372Z", "lastUpdateTime": "2021-05-28T15:21:15.8100372Z", + true, "readEnabled": true, "listEnabled": true}}, {"name": "tag27741d6f3", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:09.1074408Z", "lastUpdateTime": "2021-08-17T18:11:09.1074408Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag27741d6f2", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:21:16.0746791Z", "lastUpdateTime": "2021-05-28T15:21:16.0746791Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:09.6175155Z", "lastUpdateTime": "2021-08-17T18:11:09.6175155Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"name": "tag27741d6f3", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:21:16.352787Z", "lastUpdateTime": "2021-05-28T15:21:16.352787Z", + true, "readEnabled": true, "listEnabled": true}}, {"name": "tag27741d6f1", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:10.9870733Z", "lastUpdateTime": "2021-08-17T18:11:10.9870733Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: @@ -304,11 +342,11 @@ interactions: connection: - keep-alive content-length: - - '1345' + - '1349' content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:21:41 GMT + - Tue, 17 Aug 2021 18:11:28 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_tag_properties_order_descending.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_tag_properties_order_descending.yaml index bebc6986de4c..5185299353f2 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_tag_properties_order_descending.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_tag_properties_order_descending.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo45431dd7/_tags?orderby=timedesc response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:22:17 GMT + - Tue, 17 Aug 2021 18:11:52 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:22:18 GMT + - Tue, 17 Aug 2021 18:11:54 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.65' + - '166.583333' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:22:19 GMT + - Tue, 17 Aug 2021 18:11:54 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.633333' + - '166.566667' status: code: 200 message: OK @@ -131,26 +131,26 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo45431dd7/_tags?orderby=timedesc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo45431dd7", "tags": - [{"name": "tag45431dd73", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:21:53.2150415Z", "lastUpdateTime": "2021-05-28T15:21:53.2150415Z", - "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"name": "tag45431dd72", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:21:52.3896085Z", "lastUpdateTime": "2021-05-28T15:21:52.3896085Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo45431dd7", + "tags": [{"name": "tag45431dd73", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:34.6676299Z", "lastUpdateTime": "2021-08-17T18:11:34.6676299Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag45431dd71", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:21:52.1020166Z", "lastUpdateTime": "2021-05-28T15:21:52.1020166Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:34.2609761Z", "lastUpdateTime": "2021-08-17T18:11:34.2609761Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "tag45431dd72", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:34.113109Z", "lastUpdateTime": "2021-08-17T18:11:34.113109Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag45431dd70", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:21:51.2809888Z", "lastUpdateTime": "2021-05-28T15:21:51.2809888Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:32.769452Z", "lastUpdateTime": "2021-08-17T18:11:32.769452Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: @@ -166,7 +166,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:22:19 GMT + - Tue, 17 Aug 2021 18:11:54 GMT docker-distribution-api-version: - registry/2.0 server: @@ -189,7 +189,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo45431dd7/_tags?orderby=timedesc response: @@ -210,7 +210,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:22:19 GMT + - Tue, 17 Aug 2021 18:11:54 GMT docker-distribution-api-version: - registry/2.0 server: @@ -225,6 +225,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:11:54 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.55' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo45431dd7%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -235,11 +273,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -251,7 +289,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:22:19 GMT + - Tue, 17 Aug 2021 18:11:55 GMT server: - openresty strict-transport-security: @@ -259,7 +297,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.616667' + - '166.533333' status: code: 200 message: OK @@ -273,26 +311,26 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo45431dd7/_tags?orderby=timedesc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo45431dd7", "tags": - [{"name": "tag45431dd73", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:21:53.2150415Z", "lastUpdateTime": "2021-05-28T15:21:53.2150415Z", - "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"name": "tag45431dd72", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:21:52.3896085Z", "lastUpdateTime": "2021-05-28T15:21:52.3896085Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo45431dd7", + "tags": [{"name": "tag45431dd73", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:34.6676299Z", "lastUpdateTime": "2021-08-17T18:11:34.6676299Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag45431dd71", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:21:52.1020166Z", "lastUpdateTime": "2021-05-28T15:21:52.1020166Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:34.2609761Z", "lastUpdateTime": "2021-08-17T18:11:34.2609761Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "tag45431dd72", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:34.113109Z", "lastUpdateTime": "2021-08-17T18:11:34.113109Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag45431dd70", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:21:51.2809888Z", "lastUpdateTime": "2021-05-28T15:21:51.2809888Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:32.769452Z", "lastUpdateTime": "2021-08-17T18:11:32.769452Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: @@ -308,7 +346,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 28 May 2021 15:22:19 GMT + - Tue, 17 Aug 2021 18:11:55 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_manifest_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_manifest_properties.yaml index 1e9f075c4a7c..97e256a23408 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_manifest_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_manifest_properties.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_tags/tag2bef19cb response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:49 GMT + - Tue, 17 Aug 2021 18:12:19 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:51 GMT + - Tue, 17 Aug 2021 18:12:20 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.516667' + - '166.216667' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:51 GMT + - Tue, 17 Aug 2021 18:12:20 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.5' + - '166.2' status: code: 200 message: OK @@ -131,14 +131,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_tags/tag2bef19cb response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo2bef19cb", "tag": - {"name": "tag2bef19cb", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T21:55:23.2812885Z", "lastUpdateTime": "2021-05-19T21:55:23.2812885Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo2bef19cb", + "tag": {"name": "tag2bef19cb", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:58.9310956Z", "lastUpdateTime": "2021-08-17T18:11:58.9310956Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -150,11 +150,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '390' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:51 GMT + - Tue, 17 Aug 2021 18:12:20 GMT docker-distribution-api-version: - registry/2.0 server: @@ -177,9 +177,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -198,7 +198,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:52 GMT + - Tue, 17 Aug 2021 18:12:20 GMT docker-distribution-api-version: - registry/2.0 server: @@ -213,6 +213,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:12:20 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.183333' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo2bef19cb%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -223,11 +261,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -239,7 +277,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:52 GMT + - Tue, 17 Aug 2021 18:12:20 GMT server: - openresty strict-transport-security: @@ -247,7 +285,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.483333' + - '166.166667' status: code: 200 message: OK @@ -261,26 +299,27 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo2bef19cb", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-19T21:55:23.3984834Z", "lastUpdateTime": - "2021-05-19T21:55:23.3984834Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo2bef19cb", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:11:59.0258963Z", "lastUpdateTime": + "2021-08-17T18:11:59.0258963Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tag2bef19cb"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: @@ -291,11 +330,11 @@ interactions: connection: - keep-alive content-length: - - '1572' + - '1699' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:54 GMT + - Tue, 17 Aug 2021 18:12:20 GMT docker-distribution-api-version: - registry/2.0 server: @@ -318,7 +357,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_tags/tag2bef19cb response: @@ -339,7 +378,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:54 GMT + - Tue, 17 Aug 2021 18:12:20 GMT docker-distribution-api-version: - registry/2.0 server: @@ -354,6 +393,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:12:20 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.15' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo2bef19cb%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -364,11 +441,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -380,7 +457,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:54 GMT + - Tue, 17 Aug 2021 18:12:20 GMT server: - openresty strict-transport-security: @@ -388,7 +465,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.466667' + - '166.133333' status: code: 200 message: OK @@ -402,14 +479,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_tags/tag2bef19cb response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo2bef19cb", "tag": - {"name": "tag2bef19cb", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T21:55:23.2812885Z", "lastUpdateTime": "2021-05-19T21:55:23.2812885Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo2bef19cb", + "tag": {"name": "tag2bef19cb", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:58.9310956Z", "lastUpdateTime": "2021-08-17T18:11:58.9310956Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -421,11 +498,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '390' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:54 GMT + - Tue, 17 Aug 2021 18:12:20 GMT docker-distribution-api-version: - registry/2.0 server: @@ -453,9 +530,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -474,7 +551,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:54 GMT + - Tue, 17 Aug 2021 18:12:20 GMT docker-distribution-api-version: - registry/2.0 server: @@ -489,6 +566,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:12:20 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.116667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo2bef19cb%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -499,11 +614,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -515,7 +630,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:55 GMT + - Tue, 17 Aug 2021 18:12:20 GMT server: - openresty strict-transport-security: @@ -523,7 +638,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.45' + - '166.1' status: code: 200 message: OK @@ -542,26 +657,27 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo2bef19cb", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-19T21:55:23.3984834Z", "lastUpdateTime": - "2021-05-19T21:55:23.3984834Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo2bef19cb", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:11:59.0258963Z", "lastUpdateTime": + "2021-08-17T18:11:59.0258963Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tag2bef19cb"], "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": false}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: @@ -572,11 +688,11 @@ interactions: connection: - keep-alive content-length: - - '1576' + - '1703' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:55 GMT + - Tue, 17 Aug 2021 18:12:21 GMT docker-distribution-api-version: - registry/2.0 server: @@ -599,7 +715,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_tags/tag2bef19cb response: @@ -620,7 +736,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:55 GMT + - Tue, 17 Aug 2021 18:12:21 GMT docker-distribution-api-version: - registry/2.0 server: @@ -635,6 +751,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:12:21 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.083333' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo2bef19cb%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -645,11 +799,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -661,7 +815,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:55 GMT + - Tue, 17 Aug 2021 18:12:21 GMT server: - openresty strict-transport-security: @@ -669,7 +823,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.433333' + - '166.066667' status: code: 200 message: OK @@ -683,14 +837,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_tags/tag2bef19cb response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo2bef19cb", "tag": - {"name": "tag2bef19cb", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T21:55:23.2812885Z", "lastUpdateTime": "2021-05-19T21:55:23.2812885Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo2bef19cb", + "tag": {"name": "tag2bef19cb", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:11:58.9310956Z", "lastUpdateTime": "2021-08-17T18:11:58.9310956Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -702,11 +856,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '390' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:56 GMT + - Tue, 17 Aug 2021 18:12:21 GMT docker-distribution-api-version: - registry/2.0 server: @@ -734,9 +888,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -755,7 +909,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:56 GMT + - Tue, 17 Aug 2021 18:12:21 GMT docker-distribution-api-version: - registry/2.0 server: @@ -770,6 +924,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:12:21 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.05' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo2bef19cb%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -780,11 +972,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -796,7 +988,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:56 GMT + - Tue, 17 Aug 2021 18:12:21 GMT server: - openresty strict-transport-security: @@ -804,7 +996,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.416667' + - '166.033333' status: code: 200 message: OK @@ -823,26 +1015,27 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repo2bef19cb/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo2bef19cb", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-19T21:55:23.3984834Z", "lastUpdateTime": - "2021-05-19T21:55:23.3984834Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo2bef19cb", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:11:59.0258963Z", "lastUpdateTime": + "2021-08-17T18:11:59.0258963Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tag2bef19cb"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: @@ -853,11 +1046,11 @@ interactions: connection: - keep-alive content-length: - - '1572' + - '1699' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:55:56 GMT + - Tue, 17 Aug 2021 18:12:21 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_manifest_properties_kwargs.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_manifest_properties_kwargs.yaml index 4ca2670082b2..c9b88f932614 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_manifest_properties_kwargs.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_manifest_properties_kwargs.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_tags/tagec051cb9 response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:05 GMT + - Tue, 17 Aug 2021 18:12:57 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:06 GMT + - Tue, 17 Aug 2021 18:12:58 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.383333' + - '166.616667' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:06 GMT + - Tue, 17 Aug 2021 18:12:58 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.333333' + - '165.966667' status: code: 200 message: OK @@ -131,14 +131,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_tags/tagec051cb9 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoec051cb9", "tag": - {"name": "tagec051cb9", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T16:43:53.8026739Z", "lastUpdateTime": "2021-05-20T16:43:53.8026739Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoec051cb9", + "tag": {"name": "tagec051cb9", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:12:26.1999056Z", "lastUpdateTime": "2021-08-17T18:12:26.1999056Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -150,11 +150,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '390' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:06 GMT + - Tue, 17 Aug 2021 18:12:58 GMT docker-distribution-api-version: - registry/2.0 server: @@ -177,9 +177,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -198,7 +198,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:07 GMT + - Tue, 17 Aug 2021 18:12:58 GMT docker-distribution-api-version: - registry/2.0 server: @@ -213,6 +213,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:12:58 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '165.95' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepoec051cb9%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -223,11 +261,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -239,7 +277,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:07 GMT + - Tue, 17 Aug 2021 18:12:58 GMT server: - openresty strict-transport-security: @@ -247,7 +285,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.316667' + - '165.933333' status: code: 200 message: OK @@ -261,26 +299,27 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoec051cb9", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-20T16:43:54.9612985Z", "lastUpdateTime": - "2021-05-20T16:43:54.9612985Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoec051cb9", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:12:26.324448Z", "lastUpdateTime": + "2021-08-17T18:12:26.324448Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tagec051cb9"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: @@ -291,11 +330,11 @@ interactions: connection: - keep-alive content-length: - - '1572' + - '1697' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:07 GMT + - Tue, 17 Aug 2021 18:12:58 GMT docker-distribution-api-version: - registry/2.0 server: @@ -318,7 +357,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_tags/tagec051cb9 response: @@ -339,7 +378,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:07 GMT + - Tue, 17 Aug 2021 18:12:58 GMT docker-distribution-api-version: - registry/2.0 server: @@ -354,6 +393,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:12:59 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '165.916667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepoec051cb9%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -364,11 +441,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -380,7 +457,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:07 GMT + - Tue, 17 Aug 2021 18:12:59 GMT server: - openresty strict-transport-security: @@ -388,7 +465,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.3' + - '165.9' status: code: 200 message: OK @@ -402,14 +479,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_tags/tagec051cb9 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoec051cb9", "tag": - {"name": "tagec051cb9", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T16:43:53.8026739Z", "lastUpdateTime": "2021-05-20T16:43:53.8026739Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoec051cb9", + "tag": {"name": "tagec051cb9", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:12:26.1999056Z", "lastUpdateTime": "2021-08-17T18:12:26.1999056Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -421,11 +498,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '390' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:07 GMT + - Tue, 17 Aug 2021 18:12:59 GMT docker-distribution-api-version: - registry/2.0 server: @@ -452,9 +529,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -473,7 +550,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:07 GMT + - Tue, 17 Aug 2021 18:12:59 GMT docker-distribution-api-version: - registry/2.0 server: @@ -488,6 +565,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:12:59 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '165.883333' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepoec051cb9%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -498,11 +613,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -514,7 +629,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:08 GMT + - Tue, 17 Aug 2021 18:12:59 GMT server: - openresty strict-transport-security: @@ -522,7 +637,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.283333' + - '165.866667' status: code: 200 message: OK @@ -540,26 +655,27 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoec051cb9", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-20T16:43:54.9612985Z", "lastUpdateTime": - "2021-05-20T16:43:54.9612985Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoec051cb9", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:12:26.324448Z", "lastUpdateTime": + "2021-08-17T18:12:26.324448Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tagec051cb9"], "changeableAttributes": {"deleteEnabled": false, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: @@ -570,11 +686,11 @@ interactions: connection: - keep-alive content-length: - - '1573' + - '1698' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:08 GMT + - Tue, 17 Aug 2021 18:12:59 GMT docker-distribution-api-version: - registry/2.0 server: @@ -597,7 +713,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_tags/tagec051cb9 response: @@ -618,7 +734,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:08 GMT + - Tue, 17 Aug 2021 18:12:59 GMT docker-distribution-api-version: - registry/2.0 server: @@ -633,6 +749,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:12:59 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '165.85' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepoec051cb9%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -643,11 +797,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -659,7 +813,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:08 GMT + - Tue, 17 Aug 2021 18:12:59 GMT server: - openresty strict-transport-security: @@ -667,7 +821,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.266667' + - '165.833333' status: code: 200 message: OK @@ -681,14 +835,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_tags/tagec051cb9 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoec051cb9", "tag": - {"name": "tagec051cb9", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T16:43:53.8026739Z", "lastUpdateTime": "2021-05-20T16:43:53.8026739Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoec051cb9", + "tag": {"name": "tagec051cb9", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:12:26.1999056Z", "lastUpdateTime": "2021-08-17T18:12:26.1999056Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -700,11 +854,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '390' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:08 GMT + - Tue, 17 Aug 2021 18:12:59 GMT docker-distribution-api-version: - registry/2.0 server: @@ -731,9 +885,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -752,7 +906,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:08 GMT + - Tue, 17 Aug 2021 18:12:59 GMT docker-distribution-api-version: - registry/2.0 server: @@ -767,6 +921,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:13:00 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '165.816667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepoec051cb9%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -777,11 +969,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -793,7 +985,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:09 GMT + - Tue, 17 Aug 2021 18:13:00 GMT server: - openresty strict-transport-security: @@ -801,7 +993,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.25' + - '166.466667' status: code: 200 message: OK @@ -819,26 +1011,27 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoec051cb9", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-20T16:43:54.9612985Z", "lastUpdateTime": - "2021-05-20T16:43:54.9612985Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoec051cb9", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:12:26.324448Z", "lastUpdateTime": + "2021-08-17T18:12:26.324448Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tagec051cb9"], "changeableAttributes": {"deleteEnabled": false, "writeEnabled": true, "readEnabled": false, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: @@ -849,11 +1042,11 @@ interactions: connection: - keep-alive content-length: - - '1574' + - '1699' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:09 GMT + - Tue, 17 Aug 2021 18:13:00 GMT docker-distribution-api-version: - registry/2.0 server: @@ -876,7 +1069,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_tags/tagec051cb9 response: @@ -897,7 +1090,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:09 GMT + - Tue, 17 Aug 2021 18:13:00 GMT docker-distribution-api-version: - registry/2.0 server: @@ -912,6 +1105,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:13:00 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.45' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepoec051cb9%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -922,11 +1153,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -938,7 +1169,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:09 GMT + - Tue, 17 Aug 2021 18:13:00 GMT server: - openresty strict-transport-security: @@ -946,7 +1177,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.233333' + - '166.433333' status: code: 200 message: OK @@ -960,14 +1191,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_tags/tagec051cb9 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoec051cb9", "tag": - {"name": "tagec051cb9", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T16:43:53.8026739Z", "lastUpdateTime": "2021-05-20T16:43:53.8026739Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoec051cb9", + "tag": {"name": "tagec051cb9", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:12:26.1999056Z", "lastUpdateTime": "2021-08-17T18:12:26.1999056Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -979,11 +1210,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '390' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:09 GMT + - Tue, 17 Aug 2021 18:13:00 GMT docker-distribution-api-version: - registry/2.0 server: @@ -1010,9 +1241,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -1031,7 +1262,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:10 GMT + - Tue, 17 Aug 2021 18:13:00 GMT docker-distribution-api-version: - registry/2.0 server: @@ -1046,6 +1277,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:13:00 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.416667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepoec051cb9%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -1056,11 +1325,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -1072,7 +1341,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:10 GMT + - Tue, 17 Aug 2021 18:13:00 GMT server: - openresty strict-transport-security: @@ -1080,7 +1349,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.216667' + - '166.4' status: code: 200 message: OK @@ -1098,26 +1367,27 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoec051cb9", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-20T16:43:54.9612985Z", "lastUpdateTime": - "2021-05-20T16:43:54.9612985Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoec051cb9", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:12:26.324448Z", "lastUpdateTime": + "2021-08-17T18:12:26.324448Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tagec051cb9"], "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: @@ -1128,11 +1398,11 @@ interactions: connection: - keep-alive content-length: - - '1575' + - '1700' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:10 GMT + - Tue, 17 Aug 2021 18:13:00 GMT docker-distribution-api-version: - registry/2.0 server: @@ -1155,7 +1425,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_tags/tagec051cb9 response: @@ -1176,7 +1446,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:10 GMT + - Tue, 17 Aug 2021 18:13:00 GMT docker-distribution-api-version: - registry/2.0 server: @@ -1191,6 +1461,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:13:01 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.383333' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepoec051cb9%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -1201,11 +1509,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -1217,7 +1525,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:10 GMT + - Tue, 17 Aug 2021 18:13:01 GMT server: - openresty strict-transport-security: @@ -1225,7 +1533,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.2' + - '166.366667' status: code: 200 message: OK @@ -1239,14 +1547,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_tags/tagec051cb9 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoec051cb9", "tag": - {"name": "tagec051cb9", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T16:43:53.8026739Z", "lastUpdateTime": "2021-05-20T16:43:53.8026739Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoec051cb9", + "tag": {"name": "tagec051cb9", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:12:26.1999056Z", "lastUpdateTime": "2021-08-17T18:12:26.1999056Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -1258,11 +1566,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '390' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:10 GMT + - Tue, 17 Aug 2021 18:13:01 GMT docker-distribution-api-version: - registry/2.0 server: @@ -1289,9 +1597,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -1310,7 +1618,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:11 GMT + - Tue, 17 Aug 2021 18:13:01 GMT docker-distribution-api-version: - registry/2.0 server: @@ -1325,6 +1633,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:13:01 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.35' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepoec051cb9%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -1335,11 +1681,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -1351,7 +1697,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:11 GMT + - Tue, 17 Aug 2021 18:13:01 GMT server: - openresty strict-transport-security: @@ -1359,7 +1705,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.183333' + - '166.333333' status: code: 200 message: OK @@ -1377,26 +1723,27 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoec051cb9", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-20T16:43:54.9612985Z", "lastUpdateTime": - "2021-05-20T16:43:54.9612985Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoec051cb9", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:12:26.324448Z", "lastUpdateTime": + "2021-08-17T18:12:26.324448Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tagec051cb9"], "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": false}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: @@ -1407,11 +1754,11 @@ interactions: connection: - keep-alive content-length: - - '1576' + - '1701' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:11 GMT + - Tue, 17 Aug 2021 18:13:01 GMT docker-distribution-api-version: - registry/2.0 server: @@ -1434,7 +1781,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_tags/tagec051cb9 response: @@ -1455,7 +1802,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:11 GMT + - Tue, 17 Aug 2021 18:13:01 GMT docker-distribution-api-version: - registry/2.0 server: @@ -1470,6 +1817,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:13:01 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.316667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepoec051cb9%3Ametadata_read&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -1480,11 +1865,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -1496,7 +1881,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:11 GMT + - Tue, 17 Aug 2021 18:13:01 GMT server: - openresty strict-transport-security: @@ -1504,7 +1889,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.166667' + - '166.3' status: code: 200 message: OK @@ -1518,14 +1903,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_tags/tagec051cb9 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoec051cb9", "tag": - {"name": "tagec051cb9", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T16:43:53.8026739Z", "lastUpdateTime": "2021-05-20T16:43:53.8026739Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoec051cb9", + "tag": {"name": "tagec051cb9", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:12:26.1999056Z", "lastUpdateTime": "2021-08-17T18:12:26.1999056Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -1537,11 +1922,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '390' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:12 GMT + - Tue, 17 Aug 2021 18:13:01 GMT docker-distribution-api-version: - registry/2.0 server: @@ -1569,9 +1954,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -1590,7 +1975,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:12 GMT + - Tue, 17 Aug 2021 18:13:01 GMT docker-distribution-api-version: - registry/2.0 server: @@ -1605,6 +1990,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:13:01 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.283333' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepoec051cb9%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -1615,11 +2038,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -1631,7 +2054,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:12 GMT + - Tue, 17 Aug 2021 18:13:01 GMT server: - openresty strict-transport-security: @@ -1639,7 +2062,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.15' + - '166.266667' status: code: 200 message: OK @@ -1658,26 +2081,27 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoec051cb9/_manifests/sha256%3A0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoec051cb9", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-20T16:43:54.9612985Z", "lastUpdateTime": - "2021-05-20T16:43:54.9612985Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoec051cb9", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:12:26.324448Z", "lastUpdateTime": + "2021-08-17T18:12:26.324448Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tagec051cb9"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: @@ -1688,11 +2112,11 @@ interactions: connection: - keep-alive content-length: - - '1572' + - '1697' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 16:46:12 GMT + - Tue, 17 Aug 2021 18:13:02 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_repository_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_repository_properties.yaml index 40e17f3ef349..04655bd8026b 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_repository_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_repository_properties.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo63d41ad4 response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:27:38 GMT + - Tue, 17 Aug 2021 18:13:26 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:27:40 GMT + - Tue, 17 Aug 2021 18:13:27 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.45' + - '166.416667' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:27:40 GMT + - Tue, 17 Aug 2021 18:13:27 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.433333' + - '166.366667' status: code: 200 message: OK @@ -131,14 +131,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo63d41ad4 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo63d41ad4", "createdTime": - "2021-05-20T17:20:15.7887056Z", "lastUpdateTime": "2021-05-20T17:20:13.9261224Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo63d41ad4", + "createdTime": "2021-08-17T18:13:06.3062049Z", "lastUpdateTime": "2021-08-17T18:13:04.3397751Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": false}}' headers: @@ -150,11 +150,11 @@ interactions: connection: - keep-alive content-length: - - '315' + - '319' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:27:40 GMT + - Tue, 17 Aug 2021 18:13:27 GMT docker-distribution-api-version: - registry/2.0 server: @@ -169,7 +169,7 @@ interactions: message: OK - request: body: '{"deleteEnabled": false, "writeEnabled": false, "listEnabled": false, "readEnabled": - false, "teleportEnabled": false}' + false}' headers: Accept: - application/json @@ -178,11 +178,11 @@ interactions: Connection: - keep-alive Content-Length: - - '117' + - '91' Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo63d41ad4 response: @@ -203,7 +203,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:27:41 GMT + - Tue, 17 Aug 2021 18:13:27 GMT docker-distribution-api-version: - registry/2.0 server: @@ -218,6 +218,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:13:27 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.35' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo63d41ad4%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -228,11 +266,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -244,7 +282,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:27:41 GMT + - Tue, 17 Aug 2021 18:13:27 GMT server: - openresty strict-transport-security: @@ -252,13 +290,13 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.416667' + - '166.333333' status: code: 200 message: OK - request: body: '{"deleteEnabled": false, "writeEnabled": false, "listEnabled": false, "readEnabled": - false, "teleportEnabled": false}' + false}' headers: Accept: - application/json @@ -267,18 +305,18 @@ interactions: Connection: - keep-alive Content-Length: - - '117' + - '91' Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo63d41ad4 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo63d41ad4", "createdTime": - "2021-05-20T17:20:15.7887056Z", "lastUpdateTime": "2021-05-20T17:20:13.9261224Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo63d41ad4", + "createdTime": "2021-08-17T18:13:06.3062049Z", "lastUpdateTime": "2021-08-17T18:13:04.3397751Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": false, "teleportEnabled": false}}' headers: @@ -290,11 +328,11 @@ interactions: connection: - keep-alive content-length: - - '319' + - '323' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:27:41 GMT + - Tue, 17 Aug 2021 18:13:28 GMT docker-distribution-api-version: - registry/2.0 server: @@ -309,7 +347,7 @@ interactions: message: OK - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": - true, "teleportEnabled": false}' + true}' headers: Accept: - application/json @@ -318,11 +356,11 @@ interactions: Connection: - keep-alive Content-Length: - - '113' + - '87' Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo63d41ad4 response: @@ -343,7 +381,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:27:41 GMT + - Tue, 17 Aug 2021 18:13:28 GMT docker-distribution-api-version: - registry/2.0 server: @@ -358,6 +396,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:13:28 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.316667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo63d41ad4%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -368,11 +444,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -384,7 +460,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:27:41 GMT + - Tue, 17 Aug 2021 18:13:28 GMT server: - openresty strict-transport-security: @@ -392,13 +468,13 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.4' + - '166.3' status: code: 200 message: OK - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": - true, "teleportEnabled": false}' + true}' headers: Accept: - application/json @@ -407,18 +483,18 @@ interactions: Connection: - keep-alive Content-Length: - - '113' + - '87' Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo63d41ad4 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo63d41ad4", "createdTime": - "2021-05-20T17:20:15.7887056Z", "lastUpdateTime": "2021-05-20T17:20:13.9261224Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo63d41ad4", + "createdTime": "2021-08-17T18:13:06.3062049Z", "lastUpdateTime": "2021-08-17T18:13:04.3397751Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": false}}' headers: @@ -430,11 +506,11 @@ interactions: connection: - keep-alive content-length: - - '315' + - '319' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:27:42 GMT + - Tue, 17 Aug 2021 18:13:28 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_repository_properties_kwargs.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_repository_properties_kwargs.yaml index f1420dec6640..c4a040b86663 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_repository_properties_kwargs.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_repository_properties_kwargs.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo2b381dc2 response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:04 GMT + - Tue, 17 Aug 2021 18:13:53 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:06 GMT + - Tue, 17 Aug 2021 18:13:54 GMT server: - openresty strict-transport-security: @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:06 GMT + - Tue, 17 Aug 2021 18:13:54 GMT server: - openresty strict-transport-security: @@ -131,16 +131,16 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo2b381dc2 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo2b381dc2", "createdTime": - "2021-05-20T16:56:49.7200786Z", "lastUpdateTime": "2021-05-20T16:56:47.5153861Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": - false, "writeEnabled": false, "readEnabled": false, "listEnabled": false, - "teleportEnabled": false}}' + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo2b381dc2", + "createdTime": "2021-08-17T18:13:33.4252762Z", "lastUpdateTime": "2021-08-17T18:13:31.2265625Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": + false}}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -154,7 +154,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:06 GMT + - Tue, 17 Aug 2021 18:13:54 GMT docker-distribution-api-version: - registry/2.0 server: @@ -169,7 +169,7 @@ interactions: message: OK - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": - true, "teleportEnabled": false}' + true}' headers: Accept: - application/json @@ -178,11 +178,11 @@ interactions: Connection: - keep-alive Content-Length: - - '113' + - '87' Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo2b381dc2 response: @@ -203,7 +203,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:06 GMT + - Tue, 17 Aug 2021 18:13:54 GMT docker-distribution-api-version: - registry/2.0 server: @@ -218,6 +218,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:13:54 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.616667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo2b381dc2%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -228,11 +266,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -244,7 +282,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:06 GMT + - Tue, 17 Aug 2021 18:13:54 GMT server: - openresty strict-transport-security: @@ -252,13 +290,13 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.616667' + - '166.6' status: code: 200 message: OK - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": - true, "teleportEnabled": false}' + true}' headers: Accept: - application/json @@ -267,18 +305,18 @@ interactions: Connection: - keep-alive Content-Length: - - '113' + - '87' Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo2b381dc2 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo2b381dc2", "createdTime": - "2021-05-20T16:56:49.7200786Z", "lastUpdateTime": "2021-05-20T16:56:47.5153861Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo2b381dc2", + "createdTime": "2021-08-17T18:13:33.4252762Z", "lastUpdateTime": "2021-08-17T18:13:31.2265625Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": false}}' headers: @@ -290,11 +328,11 @@ interactions: connection: - keep-alive content-length: - - '315' + - '319' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:07 GMT + - Tue, 17 Aug 2021 18:13:54 GMT docker-distribution-api-version: - registry/2.0 server: @@ -321,7 +359,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo2b381dc2 response: @@ -342,7 +380,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:07 GMT + - Tue, 17 Aug 2021 18:13:54 GMT docker-distribution-api-version: - registry/2.0 server: @@ -357,6 +395,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:13:54 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.583333' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo2b381dc2%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -367,11 +443,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -383,7 +459,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:07 GMT + - Tue, 17 Aug 2021 18:13:54 GMT server: - openresty strict-transport-security: @@ -391,7 +467,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.6' + - '166.566667' status: code: 200 message: OK @@ -409,14 +485,14 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo2b381dc2 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo2b381dc2", "createdTime": - "2021-05-20T16:56:49.7200786Z", "lastUpdateTime": "2021-05-20T16:56:47.5153861Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo2b381dc2", + "createdTime": "2021-08-17T18:13:33.4252762Z", "lastUpdateTime": "2021-08-17T18:13:31.2265625Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": false}}' headers: @@ -428,11 +504,11 @@ interactions: connection: - keep-alive content-length: - - '316' + - '320' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:07 GMT + - Tue, 17 Aug 2021 18:13:54 GMT docker-distribution-api-version: - registry/2.0 server: @@ -459,7 +535,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo2b381dc2 response: @@ -480,7 +556,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:07 GMT + - Tue, 17 Aug 2021 18:13:54 GMT docker-distribution-api-version: - registry/2.0 server: @@ -495,6 +571,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:13:54 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.55' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo2b381dc2%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -505,11 +619,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -521,7 +635,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:08 GMT + - Tue, 17 Aug 2021 18:13:54 GMT server: - openresty strict-transport-security: @@ -529,7 +643,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.583333' + - '166.533333' status: code: 200 message: OK @@ -547,14 +661,14 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo2b381dc2 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo2b381dc2", "createdTime": - "2021-05-20T16:56:49.7200786Z", "lastUpdateTime": "2021-05-20T16:56:47.5153861Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo2b381dc2", + "createdTime": "2021-08-17T18:13:33.4252762Z", "lastUpdateTime": "2021-08-17T18:13:31.2265625Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": true, "readEnabled": false, "listEnabled": true, "teleportEnabled": false}}' headers: @@ -566,11 +680,11 @@ interactions: connection: - keep-alive content-length: - - '317' + - '321' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:08 GMT + - Tue, 17 Aug 2021 18:13:54 GMT docker-distribution-api-version: - registry/2.0 server: @@ -597,7 +711,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo2b381dc2 response: @@ -618,7 +732,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:08 GMT + - Tue, 17 Aug 2021 18:13:54 GMT docker-distribution-api-version: - registry/2.0 server: @@ -633,6 +747,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:13:55 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.516667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo2b381dc2%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -643,11 +795,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -659,7 +811,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:08 GMT + - Tue, 17 Aug 2021 18:13:55 GMT server: - openresty strict-transport-security: @@ -667,7 +819,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.566667' + - '166.5' status: code: 200 message: OK @@ -685,14 +837,14 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo2b381dc2 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo2b381dc2", "createdTime": - "2021-05-20T16:56:49.7200786Z", "lastUpdateTime": "2021-05-20T16:56:47.5153861Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo2b381dc2", + "createdTime": "2021-08-17T18:13:33.4252762Z", "lastUpdateTime": "2021-08-17T18:13:31.2265625Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": true, "teleportEnabled": false}}' headers: @@ -704,11 +856,11 @@ interactions: connection: - keep-alive content-length: - - '318' + - '322' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:09 GMT + - Tue, 17 Aug 2021 18:13:55 GMT docker-distribution-api-version: - registry/2.0 server: @@ -735,7 +887,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo2b381dc2 response: @@ -756,7 +908,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:09 GMT + - Tue, 17 Aug 2021 18:13:55 GMT docker-distribution-api-version: - registry/2.0 server: @@ -771,6 +923,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:13:55 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.483333' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo2b381dc2%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -781,11 +971,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -797,7 +987,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:09 GMT + - Tue, 17 Aug 2021 18:13:55 GMT server: - openresty strict-transport-security: @@ -805,7 +995,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.55' + - '166.466667' status: code: 200 message: OK @@ -823,14 +1013,14 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo2b381dc2 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo2b381dc2", "createdTime": - "2021-05-20T16:56:49.7200786Z", "lastUpdateTime": "2021-05-20T16:56:47.5153861Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo2b381dc2", + "createdTime": "2021-08-17T18:13:33.4252762Z", "lastUpdateTime": "2021-08-17T18:13:31.2265625Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": false, "teleportEnabled": false}}' headers: @@ -842,11 +1032,11 @@ interactions: connection: - keep-alive content-length: - - '319' + - '323' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:09 GMT + - Tue, 17 Aug 2021 18:13:55 GMT docker-distribution-api-version: - registry/2.0 server: @@ -874,7 +1064,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo2b381dc2 response: @@ -895,7 +1085,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:09 GMT + - Tue, 17 Aug 2021 18:13:55 GMT docker-distribution-api-version: - registry/2.0 server: @@ -910,6 +1100,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:13:55 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.45' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo2b381dc2%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -920,11 +1148,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -936,7 +1164,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:09 GMT + - Tue, 17 Aug 2021 18:13:55 GMT server: - openresty strict-transport-security: @@ -944,7 +1172,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.533333' + - '166.433333' status: code: 200 message: OK @@ -963,14 +1191,14 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo2b381dc2 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo2b381dc2", "createdTime": - "2021-05-20T16:56:49.7200786Z", "lastUpdateTime": "2021-05-20T16:56:47.5153861Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo2b381dc2", + "createdTime": "2021-08-17T18:13:33.4252762Z", "lastUpdateTime": "2021-08-17T18:13:31.2265625Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": false}}' headers: @@ -982,11 +1210,11 @@ interactions: connection: - keep-alive content-length: - - '315' + - '319' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 19:24:10 GMT + - Tue, 17 Aug 2021 18:13:55 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_tag_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_tag_properties.yaml index e39444d08e63..7bf00a6e1546 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_tag_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_tag_properties.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoaf8317b0/_tags/tagaf8317b0 response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:57:12 GMT + - Tue, 17 Aug 2021 18:14:20 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:57:14 GMT + - Tue, 17 Aug 2021 18:14:21 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.45' + - '165.95' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:57:14 GMT + - Tue, 17 Aug 2021 18:14:21 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.433333' + - '165.933333' status: code: 200 message: OK @@ -131,14 +131,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoaf8317b0/_tags/tagaf8317b0 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoaf8317b0", "tag": - {"name": "tagaf8317b0", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T21:56:45.7492028Z", "lastUpdateTime": "2021-05-19T21:56:45.7492028Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoaf8317b0", + "tag": {"name": "tagaf8317b0", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:14:00.732549Z", "lastUpdateTime": "2021-08-17T18:14:00.732549Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -150,11 +150,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '388' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:57:14 GMT + - Tue, 17 Aug 2021 18:14:21 GMT docker-distribution-api-version: - registry/2.0 server: @@ -182,7 +182,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoaf8317b0/_tags/tagaf8317b0 response: @@ -203,7 +203,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:57:14 GMT + - Tue, 17 Aug 2021 18:14:21 GMT docker-distribution-api-version: - registry/2.0 server: @@ -218,6 +218,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:14:21 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '165.916667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepoaf8317b0%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -228,11 +266,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -244,7 +282,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:57:14 GMT + - Tue, 17 Aug 2021 18:14:21 GMT server: - openresty strict-transport-security: @@ -252,7 +290,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.416667' + - '165.9' status: code: 200 message: OK @@ -271,14 +309,14 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoaf8317b0/_tags/tagaf8317b0 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoaf8317b0", "tag": - {"name": "tagaf8317b0", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T21:56:45.7492028Z", "lastUpdateTime": "2021-05-19T21:56:45.7492028Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoaf8317b0", + "tag": {"name": "tagaf8317b0", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:14:00.732549Z", "lastUpdateTime": "2021-08-17T18:14:00.732549Z", "signed": false, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": false}}}' headers: @@ -290,11 +328,11 @@ interactions: connection: - keep-alive content-length: - - '390' + - '392' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:57:15 GMT + - Tue, 17 Aug 2021 18:14:21 GMT docker-distribution-api-version: - registry/2.0 server: @@ -322,7 +360,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoaf8317b0/_tags/tagaf8317b0 response: @@ -343,7 +381,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:57:15 GMT + - Tue, 17 Aug 2021 18:14:21 GMT docker-distribution-api-version: - registry/2.0 server: @@ -358,6 +396,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:14:21 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '165.883333' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepoaf8317b0%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -368,11 +444,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -384,7 +460,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:57:15 GMT + - Tue, 17 Aug 2021 18:14:21 GMT server: - openresty strict-transport-security: @@ -392,7 +468,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.4' + - '165.866667' status: code: 200 message: OK @@ -411,14 +487,14 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoaf8317b0/_tags/tagaf8317b0 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoaf8317b0", "tag": - {"name": "tagaf8317b0", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T21:56:45.7492028Z", "lastUpdateTime": "2021-05-19T21:56:45.7492028Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoaf8317b0", + "tag": {"name": "tagaf8317b0", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:14:00.732549Z", "lastUpdateTime": "2021-08-17T18:14:00.732549Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -430,11 +506,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '388' content-type: - application/json; charset=utf-8 date: - - Wed, 19 May 2021 21:57:15 GMT + - Tue, 17 Aug 2021 18:14:21 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_tag_properties_kwargs.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_tag_properties_kwargs.yaml index b75f03a694ad..09ba05057853 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_tag_properties_kwargs.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_update_tag_properties_kwargs.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo60eb1a9e/_tags/tag60eb1a9e response: @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:00:54 GMT + - Tue, 17 Aug 2021 18:14:45 GMT docker-distribution-api-version: - registry/2.0 server: @@ -55,11 +55,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1343' + - '1347' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -71,7 +71,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:00:56 GMT + - Tue, 17 Aug 2021 18:14:46 GMT server: - openresty strict-transport-security: @@ -79,7 +79,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.466667' + - '166.65' status: code: 200 message: OK @@ -93,11 +93,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1142' + - '1152' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -109,7 +109,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:00:57 GMT + - Tue, 17 Aug 2021 18:14:46 GMT server: - openresty strict-transport-security: @@ -117,7 +117,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.45' + - '166.633333' status: code: 200 message: OK @@ -131,14 +131,14 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo60eb1a9e/_tags/tag60eb1a9e response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo60eb1a9e", "tag": - {"name": "tag60eb1a9e", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T16:57:27.0875436Z", "lastUpdateTime": "2021-05-20T16:57:27.0875436Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo60eb1a9e", + "tag": {"name": "tag60eb1a9e", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:14:25.8063944Z", "lastUpdateTime": "2021-08-17T18:14:25.8063944Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -150,11 +150,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '390' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:00:57 GMT + - Tue, 17 Aug 2021 18:14:46 GMT docker-distribution-api-version: - registry/2.0 server: @@ -181,7 +181,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo60eb1a9e/_tags/tag60eb1a9e response: @@ -202,7 +202,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:00:57 GMT + - Tue, 17 Aug 2021 18:14:46 GMT docker-distribution-api-version: - registry/2.0 server: @@ -217,6 +217,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:14:46 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.616667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo60eb1a9e%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -227,11 +265,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -243,7 +281,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:00:57 GMT + - Tue, 17 Aug 2021 18:14:46 GMT server: - openresty strict-transport-security: @@ -251,7 +289,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.433333' + - '166.6' status: code: 200 message: OK @@ -269,14 +307,14 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo60eb1a9e/_tags/tag60eb1a9e response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo60eb1a9e", "tag": - {"name": "tag60eb1a9e", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T16:57:27.0875436Z", "lastUpdateTime": "2021-05-20T16:57:27.0875436Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo60eb1a9e", + "tag": {"name": "tag60eb1a9e", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:14:25.8063944Z", "lastUpdateTime": "2021-08-17T18:14:25.8063944Z", "signed": false, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -288,11 +326,11 @@ interactions: connection: - keep-alive content-length: - - '387' + - '391' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:00:58 GMT + - Tue, 17 Aug 2021 18:14:47 GMT docker-distribution-api-version: - registry/2.0 server: @@ -319,7 +357,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo60eb1a9e/_tags/tag60eb1a9e response: @@ -340,7 +378,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:00:58 GMT + - Tue, 17 Aug 2021 18:14:47 GMT docker-distribution-api-version: - registry/2.0 server: @@ -355,6 +393,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:14:47 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.583333' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo60eb1a9e%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -365,11 +441,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -381,7 +457,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:00:58 GMT + - Tue, 17 Aug 2021 18:14:47 GMT server: - openresty strict-transport-security: @@ -389,7 +465,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.416667' + - '166.566667' status: code: 200 message: OK @@ -407,14 +483,14 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo60eb1a9e/_tags/tag60eb1a9e response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo60eb1a9e", "tag": - {"name": "tag60eb1a9e", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T16:57:27.0875436Z", "lastUpdateTime": "2021-05-20T16:57:27.0875436Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo60eb1a9e", + "tag": {"name": "tag60eb1a9e", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:14:25.8063944Z", "lastUpdateTime": "2021-08-17T18:14:25.8063944Z", "signed": false, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": true, "readEnabled": false, "listEnabled": true}}}' headers: @@ -426,11 +502,11 @@ interactions: connection: - keep-alive content-length: - - '388' + - '392' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:00:58 GMT + - Tue, 17 Aug 2021 18:14:47 GMT docker-distribution-api-version: - registry/2.0 server: @@ -457,7 +533,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo60eb1a9e/_tags/tag60eb1a9e response: @@ -478,7 +554,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:00:59 GMT + - Tue, 17 Aug 2021 18:14:47 GMT docker-distribution-api-version: - registry/2.0 server: @@ -493,6 +569,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:14:47 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.55' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo60eb1a9e%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -503,11 +617,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -519,7 +633,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:00:59 GMT + - Tue, 17 Aug 2021 18:14:47 GMT server: - openresty strict-transport-security: @@ -527,7 +641,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.4' + - '166.533333' status: code: 200 message: OK @@ -545,14 +659,14 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo60eb1a9e/_tags/tag60eb1a9e response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo60eb1a9e", "tag": - {"name": "tag60eb1a9e", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T16:57:27.0875436Z", "lastUpdateTime": "2021-05-20T16:57:27.0875436Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo60eb1a9e", + "tag": {"name": "tag60eb1a9e", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:14:25.8063944Z", "lastUpdateTime": "2021-08-17T18:14:25.8063944Z", "signed": false, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": true}}}' headers: @@ -564,11 +678,11 @@ interactions: connection: - keep-alive content-length: - - '389' + - '393' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:00:59 GMT + - Tue, 17 Aug 2021 18:14:47 GMT docker-distribution-api-version: - registry/2.0 server: @@ -595,7 +709,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo60eb1a9e/_tags/tag60eb1a9e response: @@ -616,7 +730,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:00:59 GMT + - Tue, 17 Aug 2021 18:14:48 GMT docker-distribution-api-version: - registry/2.0 server: @@ -631,6 +745,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:14:48 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.516667' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo60eb1a9e%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -641,11 +793,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -657,7 +809,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:00:59 GMT + - Tue, 17 Aug 2021 18:14:48 GMT server: - openresty strict-transport-security: @@ -665,7 +817,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '166.383333' + - '166.5' status: code: 200 message: OK @@ -683,14 +835,14 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo60eb1a9e/_tags/tag60eb1a9e response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo60eb1a9e", "tag": - {"name": "tag60eb1a9e", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T16:57:27.0875436Z", "lastUpdateTime": "2021-05-20T16:57:27.0875436Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo60eb1a9e", + "tag": {"name": "tag60eb1a9e", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:14:25.8063944Z", "lastUpdateTime": "2021-08-17T18:14:25.8063944Z", "signed": false, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": false}}}' headers: @@ -702,11 +854,11 @@ interactions: connection: - keep-alive content-length: - - '390' + - '394' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:01:00 GMT + - Tue, 17 Aug 2021 18:14:48 GMT docker-distribution-api-version: - registry/2.0 server: @@ -734,7 +886,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo60eb1a9e/_tags/tag60eb1a9e response: @@ -755,7 +907,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:01:00 GMT + - Tue, 17 Aug 2021 18:14:48 GMT docker-distribution-api-version: - registry/2.0 server: @@ -770,6 +922,44 @@ interactions: status: code: 401 message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1347' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 17 Aug 2021 18:14:48 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.483333' + status: + code: 200 + message: OK - request: body: service=fake_url.azurecr.io&scope=repository%3Arepo60eb1a9e%3Ametadata_write&refresh_token=REDACTED&grant_type=refresh_token headers: @@ -780,11 +970,11 @@ interactions: Connection: - keep-alive Content-Length: - - '1143' + - '1153' Content-Type: - application/x-www-form-urlencoded User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -796,7 +986,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:01:00 GMT + - Tue, 17 Aug 2021 18:14:48 GMT server: - openresty strict-transport-security: @@ -823,14 +1013,14 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo60eb1a9e/_tags/tag60eb1a9e response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo60eb1a9e", "tag": - {"name": "tag60eb1a9e", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T16:57:27.0875436Z", "lastUpdateTime": "2021-05-20T16:57:27.0875436Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo60eb1a9e", + "tag": {"name": "tag60eb1a9e", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:14:25.8063944Z", "lastUpdateTime": "2021-08-17T18:14:25.8063944Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -842,11 +1032,11 @@ interactions: connection: - keep-alive content-length: - - '386' + - '390' content-type: - application/json; charset=utf-8 date: - - Thu, 20 May 2021 17:01:00 GMT + - Tue, 17 Aug 2021 18:14:48 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_manifest.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_manifest.yaml index 21bf683f3bc2..95fdeca76fb3 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_manifest.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_manifest.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoaf17178c/_tags/tagaf17178c response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:07:28 GMT + date: Tue, 17 Aug 2021 18:15:13 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/repoaf17178c/_tags/tagaf17178c + url: https://yalinlitests.azurecr.io/acr/v1/repoaf17178c/_tags/tagaf17178c - request: body: access_token: REDACTED grant_type: access_token - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:07:30 GMT + date: Tue, 17 Aug 2021 18:15:13 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.55' + x-ms-ratelimit-remaining-calls-per-second: '166.583333' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoaf17178c:metadata_read - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,37 +74,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:07:30 GMT + date: Tue, 17 Aug 2021 18:15:13 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.533333' + x-ms-ratelimit-remaining-calls-per-second: '166.566667' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoaf17178c/_tags/tagaf17178c response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoaf17178c", "tag": - {"name": "tagaf17178c", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T21:07:00.8237749Z", "lastUpdateTime": "2021-05-19T21:07:00.8237749Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoaf17178c", + "tag": {"name": "tagaf17178c", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:14:52.9502045Z", "lastUpdateTime": "2021-08-17T18:14:52.9502045Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '386' + content-length: '390' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:07:30 GMT + date: Tue, 17 Aug 2021 18:15:13 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -112,16 +112,16 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/repoaf17178c/_tags/tagaf17178c + url: https://yalinlitests.azurecr.io/acr/v1/repoaf17178c/_tags/tagaf17178c - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/v2/repoaf17178c/manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/v2/repoaf17178c/manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -132,7 +132,7 @@ interactions: connection: keep-alive content-length: '208' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:07:30 GMT + date: Tue, 17 Aug 2021 18:15:13 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -141,18 +141,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/v2/repoaf17178c/manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/v2/repoaf17178c/manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:15:13 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.55' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoaf17178c:delete - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -161,24 +188,24 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:07:30 GMT + date: Tue, 17 Aug 2021 18:15:13 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.516667' + x-ms-ratelimit-remaining-calls-per-second: '166.533333' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/v2/repoaf17178c/manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/v2/repoaf17178c/manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '' @@ -186,7 +213,7 @@ interactions: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '0' - date: Wed, 19 May 2021 21:07:31 GMT + date: Tue, 17 Aug 2021 18:15:13 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -195,14 +222,14 @@ interactions: status: code: 202 message: Accepted - url: https://fake_url.azurecr.io/v2/repoaf17178c/manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/v2/repoaf17178c/manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoaf17178c/_tags/tagaf17178c response: @@ -215,7 +242,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:07:41 GMT + date: Tue, 17 Aug 2021 18:15:23 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -224,18 +251,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/repoaf17178c/_tags/tagaf17178c + url: https://yalinlitests.azurecr.io/acr/v1/repoaf17178c/_tags/tagaf17178c +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:15:24 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.516667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoaf17178c:metadata_read - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -244,7 +298,7 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:07:41 GMT + date: Tue, 17 Aug 2021 18:15:24 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked @@ -252,14 +306,14 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoaf17178c/_tags/tagaf17178c response: @@ -271,7 +325,7 @@ interactions: connection: keep-alive content-length: '81' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:07:41 GMT + date: Tue, 17 Aug 2021 18:15:24 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -279,5 +333,5 @@ interactions: status: code: 404 message: Not Found - url: https://fake_url.azurecr.io/acr/v1/repoaf17178c/_tags/tagaf17178c + url: https://yalinlitests.azurecr.io/acr/v1/repoaf17178c/_tags/tagaf17178c version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_manifest_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_manifest_does_not_exist.yaml index ab254e664bd8..36b2aa23a4f6 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_manifest_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_manifest_does_not_exist.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo41a21dd2/_tags/tag41a21dd2 response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:12 GMT + date: Tue, 17 Aug 2021 18:15:48 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/repo41a21dd2/_tags/tag41a21dd2 + url: https://yalinlitests.azurecr.io/acr/v1/repo41a21dd2/_tags/tag41a21dd2 - request: body: access_token: REDACTED grant_type: access_token - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,7 +46,7 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:13 GMT + date: Tue, 17 Aug 2021 18:15:48 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked @@ -54,18 +54,18 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo41a21dd2:metadata_read - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,37 +74,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:13 GMT + date: Tue, 17 Aug 2021 18:15:48 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.533333' + x-ms-ratelimit-remaining-calls-per-second: '166.6' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo41a21dd2/_tags/tag41a21dd2 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo41a21dd2", "tag": - {"name": "tag41a21dd2", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T20:08:12.8696608Z", "lastUpdateTime": "2021-05-19T20:08:12.8696608Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo41a21dd2", + "tag": {"name": "tag41a21dd2", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:15:28.6556983Z", "lastUpdateTime": "2021-08-17T18:15:28.6556983Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '386' + content-length: '390' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:13 GMT + date: Tue, 17 Aug 2021 18:15:48 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -112,16 +112,16 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/repo41a21dd2/_tags/tag41a21dd2 + url: https://yalinlitests.azurecr.io/acr/v1/repo41a21dd2/_tags/tag41a21dd2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repo41a21dd2/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repo41a21dd2/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -132,7 +132,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:13 GMT + date: Tue, 17 Aug 2021 18:15:48 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -141,18 +141,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/repo41a21dd2/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repo41a21dd2/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:15:48 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.583333' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo41a21dd2:metadata_read - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -161,48 +188,49 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:14 GMT + date: Tue, 17 Aug 2021 18:15:48 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.516667' + x-ms-ratelimit-remaining-calls-per-second: '166.566667' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repo41a21dd2/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repo41a21dd2/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo41a21dd2", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-19T20:08:12.8047147Z", "lastUpdateTime": - "2021-05-19T20:08:12.8047147Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo41a21dd2", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:15:28.1031625Z", "lastUpdateTime": + "2021-08-17T18:15:28.1031625Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tag41a21dd2"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1572' + content-length: '1699' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:14 GMT + date: Tue, 17 Aug 2021 18:15:48 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -210,16 +238,16 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/repo41a21dd2/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repo41a21dd2/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/v2/repo41a21dd2/manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835daaaaaaaaaa + uri: https://fake_url.azurecr.io/v2/repo41a21dd2/manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250aaaaaaaaaa response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -230,7 +258,7 @@ interactions: connection: keep-alive content-length: '208' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:14 GMT + date: Tue, 17 Aug 2021 18:15:48 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -239,18 +267,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/v2/repo41a21dd2/manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835daaaaaaaaaa + url: https://yalinlitests.azurecr.io/v2/repo41a21dd2/manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250aaaaaaaaaa +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:15:48 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.55' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo41a21dd2:delete - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -259,34 +314,34 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:14 GMT + date: Tue, 17 Aug 2021 18:15:48 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.5' + x-ms-ratelimit-remaining-calls-per-second: '166.533333' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/v2/repo41a21dd2/manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835daaaaaaaaaa + uri: https://fake_url.azurecr.io/v2/repo41a21dd2/manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250aaaaaaaaaa response: body: - string: '{"errors": [{"code": "MANIFEST_UNKNOWN", "message": "manifest sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835daaaaaaaaaa + string: '{"errors": [{"code": "MANIFEST_UNKNOWN", "message": "manifest sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250aaaaaaaaaa is not found"}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '147' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:14 GMT + date: Tue, 17 Aug 2021 18:15:48 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -295,5 +350,5 @@ interactions: status: code: 404 message: Not Found - url: https://fake_url.azurecr.io/v2/repo41a21dd2/manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835daaaaaaaaaa + url: https://yalinlitests.azurecr.io/v2/repo41a21dd2/manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250aaaaaaaaaa version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_repository.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_repository.yaml index 24421c188ca8..599e67ad55e5 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_repository.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_repository.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/to_be_deleted response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '209' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:45 GMT + date: Tue, 17 Aug 2021 18:16:13 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/to_be_deleted + url: https://yalinlitests.azurecr.io/acr/v1/to_be_deleted - request: body: access_token: REDACTED grant_type: access_token - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:46 GMT + date: Tue, 17 Aug 2021 18:16:13 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.583333' + x-ms-ratelimit-remaining-calls-per-second: '166.2' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:to_be_deleted:delete - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,43 +74,44 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:46 GMT + date: Tue, 17 Aug 2021 18:16:13 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.566667' + x-ms-ratelimit-remaining-calls-per-second: '166.05' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/to_be_deleted response: body: - string: '{"manifestsDeleted": ["sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + string: '{"manifestsDeleted": ["sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", + "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", - "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", + "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", + "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", - "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9"], + "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8"], "tagsDeleted": ["latest"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '788' + content-length: '862' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:48 GMT + date: Tue, 17 Aug 2021 18:16:15 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -119,14 +120,14 @@ interactions: status: code: 202 message: Accepted - url: https://fake_url.azurecr.io/acr/v1/to_be_deleted + url: https://yalinlitests.azurecr.io/acr/v1/to_be_deleted - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: @@ -139,7 +140,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:48 GMT + date: Tue, 17 Aug 2021 18:16:15 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -148,18 +149,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog + url: https://yalinlitests.azurecr.io/acr/v1/_catalog +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:16:15 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.033333' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: registry:catalog:* - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -168,42 +196,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:48 GMT + date: Tue, 17 Aug 2021 18:16:15 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.55' + x-ms-ratelimit-remaining-calls-per-second: '166.016667' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["library/alpine", "library/busybox", "repo13cf14de", - "repo25ce0f5d", "repo26ab150f", "repo27331535", "repo28471541", "repo2915152d", - "repo2c591564", "repo2e8319c5", "repo308e19dd", "repo34ab0fa1", "repo3db51597", - "repo3dc21571", "repo3e8d15a3", "repo41a21dd2", "repo6969166d", "repo6a411679", - "repo7bda1b05", "repo7cee1b11", "repo80c61ece", "repo84e316ff", "repo8b5a11da", - "repo93d41b55", "repo99be175b", "repo9b321760", "repo9cb4121e", "repoaf17178c", - "repoaf8812b0", "repoaf9517b2", "repob0a917be", "repob22512e7", "repoc1b5131a", - "repoc1b812f4", "repoc28d1326", "repod2be1c42", "repodf771888", "repoe08b1894", - "repoeb7113db", "repof94c18ea", "repofa2418f6", "repos6ce51658", "reposetb7cc1bf8", - "reposetmani160e197b"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo26ab150f", "repo27741d6f", "repo2b381dc2", "repo2bef19cb", "repo41a21dd2", + "repo45431dd7", "repo60eb1a9e", "repo63d41ad4", "repo6969166d", "repo80c61ece", + "repo816516e9", "repo93d41b55", "repoaf17178c", "repoaf8317b0", "repoc1b812f4", + "repodf771888", "repoec051cb9"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '695' + content-length: '331' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:49 GMT + date: Tue, 17 Aug 2021 18:16:15 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -211,5 +234,5 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog + url: https://yalinlitests.azurecr.io/acr/v1/_catalog version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_repository_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_repository_does_not_exist.yaml index 5374b1c6dda1..3d3f8e89d722 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_repository_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_repository_does_not_exist.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/not_real_repo response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '209' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:50 GMT + date: Tue, 17 Aug 2021 18:16:15 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/not_real_repo + url: https://yalinlitests.azurecr.io/acr/v1/not_real_repo - request: body: access_token: REDACTED grant_type: access_token - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,7 +46,7 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:51 GMT + date: Tue, 17 Aug 2021 18:16:16 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked @@ -54,18 +54,18 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:not_real_repo:delete - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,7 +74,7 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:52 GMT + date: Tue, 17 Aug 2021 18:16:16 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked @@ -82,14 +82,14 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/not_real_repo response: @@ -101,7 +101,7 @@ interactions: connection: keep-alive content-length: '121' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:08:52 GMT + date: Tue, 17 Aug 2021 18:16:16 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -110,5 +110,5 @@ interactions: status: code: 404 message: Not Found - url: https://fake_url.azurecr.io/acr/v1/not_real_repo + url: https://yalinlitests.azurecr.io/acr/v1/not_real_repo version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_tag.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_tag.yaml index 3edeec78fc5f..5927913f01d5 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_tag.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_tag.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/repo3dc21571/_tags/tag3dc215710 response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '208' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:09:22 GMT + date: Tue, 17 Aug 2021 18:16:40 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/repo3dc21571/_tags/tag3dc215710 + url: https://yalinlitests.azurecr.io/acr/v1/repo3dc21571/_tags/tag3dc215710 - request: body: access_token: REDACTED grant_type: access_token - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:09:24 GMT + date: Tue, 17 Aug 2021 18:16:40 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.616667' + x-ms-ratelimit-remaining-calls-per-second: '166.65' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo3dc21571:delete - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,22 +74,22 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:09:24 GMT + date: Tue, 17 Aug 2021 18:16:40 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.466667' + x-ms-ratelimit-remaining-calls-per-second: '166.633333' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/repo3dc21571/_tags/tag3dc215710 response: @@ -99,24 +99,24 @@ interactions: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '0' - date: Wed, 19 May 2021 21:09:24 GMT + date: Tue, 17 Aug 2021 18:16:40 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff - x-ms-int-docker-content-digest: sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + x-ms-int-docker-content-digest: sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 x-ms-ratelimit-remaining-calls-per-second: '8.000000' status: code: 202 message: Accepted - url: https://fake_url.azurecr.io/acr/v1/repo3dc21571/_tags/tag3dc215710 + url: https://yalinlitests.azurecr.io/acr/v1/repo3dc21571/_tags/tag3dc215710 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo3dc21571/_tags response: @@ -129,7 +129,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:09:24 GMT + date: Tue, 17 Aug 2021 18:16:40 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -138,18 +138,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/repo3dc21571/_tags + url: https://yalinlitests.azurecr.io/acr/v1/repo3dc21571/_tags +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:16:41 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.616667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo3dc21571:metadata_read - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -158,45 +185,45 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:09:24 GMT + date: Tue, 17 Aug 2021 18:16:41 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.45' + x-ms-ratelimit-remaining-calls-per-second: '166.6' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo3dc21571/_tags response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo3dc21571", "tags": - [{"name": "tag3dc215711", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T19:16:21.8747245Z", "lastUpdateTime": "2021-05-19T19:16:21.8747245Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo3dc21571", + "tags": [{"name": "tag3dc215711", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:16:21.6019655Z", "lastUpdateTime": "2021-08-17T18:16:21.6019655Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag3dc215712", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T19:16:21.7437446Z", "lastUpdateTime": "2021-05-19T19:16:21.7437446Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:16:21.4014921Z", "lastUpdateTime": "2021-08-17T18:16:21.4014921Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag3dc215713", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T19:16:21.2735934Z", "lastUpdateTime": "2021-05-19T19:16:21.2735934Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:16:22.4410132Z", "lastUpdateTime": "2021-08-17T18:16:22.4410132Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1028' + content-length: '1032' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:09:24 GMT + date: Tue, 17 Aug 2021 18:16:41 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -204,5 +231,5 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/repo3dc21571/_tags + url: https://yalinlitests.azurecr.io/acr/v1/repo3dc21571/_tags version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_tag_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_tag_does_not_exist.yaml index 387ef86ec28e..75df802fbfb2 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_tag_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_tag_does_not_exist.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/does_not_exist/_tags/does_not_exist response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '210' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:09:25 GMT + date: Tue, 17 Aug 2021 18:16:41 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/does_not_exist/_tags/does_not_exist + url: https://yalinlitests.azurecr.io/acr/v1/does_not_exist/_tags/does_not_exist - request: body: access_token: REDACTED grant_type: access_token - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:09:26 GMT + date: Tue, 17 Aug 2021 18:16:41 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.616667' + x-ms-ratelimit-remaining-calls-per-second: '166.583333' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:does_not_exist:delete - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,22 +74,22 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:09:26 GMT + date: Tue, 17 Aug 2021 18:16:41 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.6' + x-ms-ratelimit-remaining-calls-per-second: '166' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://fake_url.azurecr.io/acr/v1/does_not_exist/_tags/does_not_exist response: @@ -101,14 +101,14 @@ interactions: connection: keep-alive content-length: '81' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:09:26 GMT + date: Tue, 17 Aug 2021 18:16:41 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff - x-ms-ratelimit-remaining-calls-per-second: '8.000000' + x-ms-ratelimit-remaining-calls-per-second: '7.000000' status: code: 404 message: Not Found - url: https://fake_url.azurecr.io/acr/v1/does_not_exist/_tags/does_not_exist + url: https://yalinlitests.azurecr.io/acr/v1/does_not_exist/_tags/does_not_exist version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_expiration_time_parsing.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_expiration_time_parsing.yaml index 32c59ed7dee5..f9ac2df00bf0 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_expiration_time_parsing.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_expiration_time_parsing.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Fri, 04 Jun 2021 14:51:55 GMT + date: Tue, 17 Aug 2021 18:16:41 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/_catalog + url: https://yalinlitests.azurecr.io/acr/v1/_catalog - request: body: access_token: REDACTED grant_type: access_token - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 04 Jun 2021 14:51:55 GMT + date: Tue, 17 Aug 2021 18:16:42 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.65' + x-ms-ratelimit-remaining-calls-per-second: '166.316667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: registry:catalog:* - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,46 +74,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 04 Jun 2021 14:51:55 GMT + date: Tue, 17 Aug 2021 18:16:42 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.633333' + x-ms-ratelimit-remaining-calls-per-second: '166.066667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["library/alpine", "library/busybox", "repo12071936", - "repo13cf14de", "repo13d41966", "repo1ff2054", "repo25ce0f5d", "repo26ab150f", - "repo27331535", "repo27741d6f", "repo28471541", "repo2915152d", "repo2b381dc2", - "repo2b9d199e", "repo2bef19cb", "repo2c591564", "repo2e8319c5", "repo308e19dd", - "repo34ab0fa1", "repo3db51597", "repo3dc21571", "repo3e8d15a3", "repo41a21dd2", - "repo45431dd7", "repo46ec1a2d", "repo60eb1a9e", "repo63d41ad4", "repo6969166d", - "repo6a411679", "repo7bda1b05", "repo7cee1b11", "repo80c61ece", "repo816516e9", - "repo84e316ff", "repo8a3011c1", "repo8b5a11da", "repo93d41b55", "repo99be175b", - "repo9b321760", "repo9bf1d1b", "repo9cb4121e", "repoa14a1f36", "repoaf17178c", - "repoaf8317b0", "repoaf8812b0", "repoaf9517b2", "repob0a917be", "repob22512e7", - "repob3551bb3", "repoc1b5131a", "repoc1b812f4", "repoc28d1326", "repocf681c1b", - "repocfba1c48", "repod2be1c42", "repodf771888", "repoe08b1894", "repoe19b1892", - "repoe1a41fec", "repoe568203f", "repoeb7113db", "repoec051cb9", "repof94c18ea", - "repofa2418f6", "repofeb4143e", "repos6ce51658", "reposetb7cc1bf8", "reposetmani160e197b"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo26ab150f", "repo27741d6f", "repo2b381dc2", "repo2bef19cb", "repo3dc21571", + "repo41a21dd2", "repo45431dd7", "repo60eb1a9e", "repo63d41ad4", "repo6969166d", + "repo80c61ece", "repo816516e9", "repo93d41b55", "repoaf17178c", "repoaf8317b0", + "repoc1b812f4", "repodf771888", "repoec051cb9"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1053' + content-length: '346' content-type: application/json; charset=utf-8 - date: Fri, 04 Jun 2021 14:51:56 GMT + date: Tue, 17 Aug 2021 18:16:42 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -121,14 +112,14 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/_catalog + url: https://yalinlitests.azurecr.io/acr/v1/_catalog - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: @@ -141,7 +132,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Fri, 04 Jun 2021 14:51:56 GMT + date: Tue, 17 Aug 2021 18:16:42 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -150,18 +141,18 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/_catalog + url: https://yalinlitests.azurecr.io/acr/v1/_catalog - request: body: grant_type: refresh_token refresh_token: REDACTED scope: registry:catalog:* - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -170,46 +161,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 04 Jun 2021 14:51:56 GMT + date: Tue, 17 Aug 2021 18:16:42 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.616667' + x-ms-ratelimit-remaining-calls-per-second: '166.05' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["library/alpine", "library/busybox", "repo12071936", - "repo13cf14de", "repo13d41966", "repo1ff2054", "repo25ce0f5d", "repo26ab150f", - "repo27331535", "repo27741d6f", "repo28471541", "repo2915152d", "repo2b381dc2", - "repo2b9d199e", "repo2bef19cb", "repo2c591564", "repo2e8319c5", "repo308e19dd", - "repo34ab0fa1", "repo3db51597", "repo3dc21571", "repo3e8d15a3", "repo41a21dd2", - "repo45431dd7", "repo46ec1a2d", "repo60eb1a9e", "repo63d41ad4", "repo6969166d", - "repo6a411679", "repo7bda1b05", "repo7cee1b11", "repo80c61ece", "repo816516e9", - "repo84e316ff", "repo8a3011c1", "repo8b5a11da", "repo93d41b55", "repo99be175b", - "repo9b321760", "repo9bf1d1b", "repo9cb4121e", "repoa14a1f36", "repoaf17178c", - "repoaf8317b0", "repoaf8812b0", "repoaf9517b2", "repob0a917be", "repob22512e7", - "repob3551bb3", "repoc1b5131a", "repoc1b812f4", "repoc28d1326", "repocf681c1b", - "repocfba1c48", "repod2be1c42", "repodf771888", "repoe08b1894", "repoe19b1892", - "repoe1a41fec", "repoe568203f", "repoeb7113db", "repoec051cb9", "repof94c18ea", - "repofa2418f6", "repofeb4143e", "repos6ce51658", "reposetb7cc1bf8", "reposetmani160e197b"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo26ab150f", "repo27741d6f", "repo2b381dc2", "repo2bef19cb", "repo3dc21571", + "repo41a21dd2", "repo45431dd7", "repo60eb1a9e", "repo63d41ad4", "repo6969166d", + "repo80c61ece", "repo816516e9", "repo93d41b55", "repoaf17178c", "repoaf8317b0", + "repoc1b812f4", "repodf771888", "repoec051cb9"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1053' + content-length: '346' content-type: application/json; charset=utf-8 - date: Fri, 04 Jun 2021 14:51:56 GMT + date: Tue, 17 Aug 2021 18:16:42 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -217,5 +199,5 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/_catalog + url: https://yalinlitests.azurecr.io/acr/v1/_catalog version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_manifest_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_manifest_properties.yaml index 705eaa36d156..b9f8a8a3c3c8 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_manifest_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_manifest_properties.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo7bda1b05/_tags/tag7bda1b05 response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:09:57 GMT + date: Tue, 17 Aug 2021 18:17:06 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/repo7bda1b05/_tags/tag7bda1b05 + url: https://yalinlitests.azurecr.io/acr/v1/repo7bda1b05/_tags/tag7bda1b05 - request: body: access_token: REDACTED grant_type: access_token - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:09:58 GMT + date: Tue, 17 Aug 2021 18:17:07 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.583333' + x-ms-ratelimit-remaining-calls-per-second: '166.05' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo7bda1b05:metadata_read - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,37 +74,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:09:58 GMT + date: Tue, 17 Aug 2021 18:17:07 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.116667' + x-ms-ratelimit-remaining-calls-per-second: '166.033333' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo7bda1b05/_tags/tag7bda1b05 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo7bda1b05", "tag": - {"name": "tag7bda1b05", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T19:12:49.3903848Z", "lastUpdateTime": "2021-05-19T19:12:49.3903848Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo7bda1b05", + "tag": {"name": "tag7bda1b05", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:16:46.0244793Z", "lastUpdateTime": "2021-08-17T18:16:46.0244793Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '386' + content-length: '390' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:09:59 GMT + date: Tue, 17 Aug 2021 18:17:07 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -112,16 +112,16 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/repo7bda1b05/_tags/tag7bda1b05 + url: https://yalinlitests.azurecr.io/acr/v1/repo7bda1b05/_tags/tag7bda1b05 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repo7bda1b05/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repo7bda1b05/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -132,7 +132,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:09:59 GMT + date: Tue, 17 Aug 2021 18:17:07 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -141,18 +141,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/repo7bda1b05/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repo7bda1b05/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:17:07 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.016667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo7bda1b05:metadata_read - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -161,48 +188,49 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:09:59 GMT + date: Tue, 17 Aug 2021 18:17:07 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.1' + x-ms-ratelimit-remaining-calls-per-second: '166' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repo7bda1b05/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repo7bda1b05/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo7bda1b05", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-19T19:12:49.3154017Z", "lastUpdateTime": - "2021-05-19T19:12:49.3154017Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo7bda1b05", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:16:45.9437339Z", "lastUpdateTime": + "2021-08-17T18:16:45.9437339Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tag7bda1b05"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1572' + content-length: '1699' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:09:59 GMT + date: Tue, 17 Aug 2021 18:17:07 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -210,5 +238,5 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/repo7bda1b05/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repo7bda1b05/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_manifest_properties_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_manifest_properties_does_not_exist.yaml index 84013855bd09..2505d523309a 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_manifest_properties_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_manifest_properties_does_not_exist.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/DOESNOTEXIST/_tags/DOESNOTEXIST response: @@ -17,7 +17,7 @@ interactions: connection: keep-alive content-length: '19' content-type: text/plain; charset=utf-8 - date: Wed, 19 May 2021 21:10:00 GMT + date: Tue, 17 Aug 2021 18:17:07 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -25,5 +25,5 @@ interactions: status: code: 404 message: Not Found - url: https://fake_url.azurecr.io/acr/v1/DOESNOTEXIST/_tags/DOESNOTEXIST + url: https://yalinlitests.azurecr.io/acr/v1/DOESNOTEXIST/_tags/DOESNOTEXIST version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_repository_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_repository_properties.yaml index 9bad55125a91..d83026544a14 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_repository_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_repository_properties.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Falpine response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '217' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:10:01 GMT + date: Tue, 17 Aug 2021 18:17:07 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/library%2Falpine + url: https://yalinlitests.azurecr.io/acr/v1/library%2Falpine - request: body: access_token: REDACTED grant_type: access_token - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:10:02 GMT + date: Tue, 17 Aug 2021 18:17:07 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.583333' + x-ms-ratelimit-remaining-calls-per-second: '166.616667' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:library/alpine:metadata_read - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,37 +74,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:10:02 GMT + date: Tue, 17 Aug 2021 18:17:07 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.566667' + x-ms-ratelimit-remaining-calls-per-second: '166.433333' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Falpine response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/alpine", - "createdTime": "2021-04-13T15:11:45.5428414Z", "lastUpdateTime": "2021-04-15T18:49:49.3963093Z", - "manifestCount": 16, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/alpine", + "createdTime": "2021-08-17T18:06:11.9091692Z", "lastUpdateTime": "2021-08-17T18:06:10.2845013Z", + "manifestCount": 8, "tagCount": 1, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": false}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '317' + content-length: '320' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:10:02 GMT + date: Tue, 17 Aug 2021 18:17:07 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -112,5 +112,5 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/library%2Falpine + url: https://yalinlitests.azurecr.io/acr/v1/library%2Falpine version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_tag_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_tag_properties.yaml index 8d3353624f9a..08093202a0cc 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_tag_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_tag_properties.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repof94c18ea/_tags/tagf94c18ea response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:10:34 GMT + date: Tue, 17 Aug 2021 18:17:32 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/repof94c18ea/_tags/tagf94c18ea + url: https://yalinlitests.azurecr.io/acr/v1/repof94c18ea/_tags/tagf94c18ea - request: body: access_token: REDACTED grant_type: access_token - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:10:35 GMT + date: Tue, 17 Aug 2021 18:17:32 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.616667' + x-ms-ratelimit-remaining-calls-per-second: '165.983333' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repof94c18ea:metadata_read - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,37 +74,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:10:35 GMT + date: Tue, 17 Aug 2021 18:17:32 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.366667' + x-ms-ratelimit-remaining-calls-per-second: '165.966667' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repof94c18ea/_tags/tagf94c18ea response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repof94c18ea", "tag": - {"name": "tagf94c18ea", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T19:17:28.8775406Z", "lastUpdateTime": "2021-05-19T19:17:28.8775406Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repof94c18ea", + "tag": {"name": "tagf94c18ea", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:17:11.7338655Z", "lastUpdateTime": "2021-08-17T18:17:11.7338655Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '386' + content-length: '390' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:10:36 GMT + date: Tue, 17 Aug 2021 18:17:32 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -112,5 +112,5 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/repof94c18ea/_tags/tagf94c18ea + url: https://yalinlitests.azurecr.io/acr/v1/repof94c18ea/_tags/tagf94c18ea version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_tag_properties_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_tag_properties_does_not_exist.yaml index 55247a090325..633dda9530a9 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_tag_properties_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_get_tag_properties_does_not_exist.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/Nonexistent/_tags/Nonexistent response: @@ -17,7 +17,7 @@ interactions: connection: keep-alive content-length: '19' content-type: text/plain; charset=utf-8 - date: Wed, 19 May 2021 21:10:36 GMT + date: Tue, 17 Aug 2021 18:17:32 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -25,5 +25,5 @@ interactions: status: code: 404 message: Not Found - url: https://fake_url.azurecr.io/acr/v1/Nonexistent/_tags/Nonexistent + url: https://yalinlitests.azurecr.io/acr/v1/Nonexistent/_tags/Nonexistent version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_incorrect_credential_scopes.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_incorrect_credential_scopes.yaml new file mode 100644 index 000000000000..f1bfab438c5b --- /dev/null +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_incorrect_credential_scopes.yaml @@ -0,0 +1,31 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world + response: + body: + string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, + visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": + "repository", "Name": "library/hello-world", "Action": "metadata_read"}]}]}' + headers: + access-control-expose-headers: X-Ms-Correlation-Request-Id + connection: keep-alive + content-length: '222' + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:17:32 GMT + docker-distribution-api-version: registry/2.0 + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + x-content-type-options: nosniff + status: + code: 401 + message: Unauthorized + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fhello-world +version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_registry_artifacts.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_registry_artifacts.yaml index 4ac97647abc3..fb0fc9595e8f 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_registry_artifacts.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_registry_artifacts.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '218' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:35 GMT + date: Tue, 17 Aug 2021 18:17:33 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests - request: body: access_token: REDACTED grant_type: access_token - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:36 GMT + date: Tue, 17 Aug 2021 18:17:33 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.65' + x-ms-ratelimit-remaining-calls-per-second: '166.116667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,172 +74,79 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:37 GMT + date: Tue, 17 Aug 2021 18:17:33 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.633333' + x-ms-ratelimit-remaining-calls-per-second: '166.05' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:02cf788367ec35bd85c4fa4aca9beccb02e128aa1e4bea6075204eb46d375b1f", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7864026Z", "lastUpdateTime": - "2021-05-18T17:16:25.7864026Z", "architecture": "mips64le", "os": "linux", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:002265f553555c92ddc51aa292e458a44615af64e22b8b35192ff4ca1801e8cd", + "imageSize": 528, "createdTime": "2021-08-17T18:06:35.7460007Z", "lastUpdateTime": + "2021-08-17T18:06:35.7460007Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.7232635Z", "lastUpdateTime": - "2021-05-05T14:12:53.7232635Z", "architecture": "386", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.076758Z", "lastUpdateTime": + "2021-08-17T18:06:35.076758Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1ccc0a0ca577e5fb5a0bdf2150a1a9f842f47c8865e861fa0062c5d343eb8cac", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.6976923Z", "lastUpdateTime": - "2021-04-13T15:11:15.6976923Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.9757197Z", "lastUpdateTime": - "2021-05-05T14:12:53.9757197Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e389843d4f03f45b1c21ba70fa10a4e182780eb42c2f6f9b868e6b1804f2d99", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.5813533Z", "lastUpdateTime": - "2021-05-05T14:12:53.5813533Z", "architecture": "mips64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.4654417Z", "lastUpdateTime": - "2021-05-18T17:16:26.4654417Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:37b77d92a7ca131dd379ab9a637b814dd99dc0cb560ccf59b566bd6448564b7c", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.3563152Z", "lastUpdateTime": - "2021-04-13T15:11:16.3563152Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.3522872Z", "lastUpdateTime": - "2021-05-05T14:12:53.3522872Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:554be197dddd3aeedd35536496106b331efe97458be0cf6cdabdd166b34f6ace", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.7224016Z", "lastUpdateTime": - "2021-05-18T17:16:26.7224016Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9220954Z", "lastUpdateTime": - "2021-04-13T15:11:15.9220954Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:82b4c9f36a6fa022454e78ad5c72a74fd34ca4e20489b36a8a436ca3ce9c34ef", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9893517Z", "lastUpdateTime": - "2021-04-13T15:11:15.9893517Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.8711031Z", "lastUpdateTime": - "2021-05-05T14:12:53.8711031Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:9708dc541771170e42aadc4c3c4477ec15e91e595673493bbbb78b7c8b75b0b5", - "imageSize": 527, "createdTime": "2021-05-18T17:16:27.1627549Z", "lastUpdateTime": - "2021-05-18T17:16:27.1627549Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.7730283Z", "lastUpdateTime": - "2021-04-13T15:11:15.7730283Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:9f665ff36d82565140f0f619274b023a451bc38a2dc6a2a9fe2b28c62ea27fd5", - "imageSize": 528, "createdTime": "2021-05-18T17:16:28.7425504Z", "lastUpdateTime": - "2021-05-18T17:16:28.7425504Z", "architecture": "ppc64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:0dc4e9a14237cae2d8e96e9e310116091c5ed4934448d7cfd22b122778964f11", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.8204333Z", "lastUpdateTime": + "2021-08-17T18:06:35.8204333Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.1951619Z", "lastUpdateTime": - "2021-04-13T15:11:15.1951619Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}, {"digest": "sha256:b4ad127c506802ba4e9702c335e6d78241668ee12840ce89957e9b945a680920", - "imageSize": 528, "createdTime": "2021-05-18T17:16:27.0293218Z", "lastUpdateTime": - "2021-05-18T17:16:27.0293218Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.779775Z", "lastUpdateTime": - "2021-05-05T14:12:53.779775Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5fc1d7b2e4ea86a06b0cf88de915a2c43a99a00b6b3c0af731e5f4c07ae8eff", - "imageSize": 4745, "createdTime": "2021-05-18T17:16:25.9591474Z", "lastUpdateTime": - "2021-05-18T17:16:25.9591474Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + true, "quarantineState": "Passed"}}, {"digest": "sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60", + "imageSize": 5272, "createdTime": "2021-08-17T18:06:34.0662553Z", "lastUpdateTime": + "2021-08-17T18:06:34.0662553Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:be4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb", - "imageSize": 4745, "createdTime": "2021-05-05T14:12:52.3468286Z", "lastUpdateTime": - "2021-05-05T14:12:52.3468286Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}, {"digest": "sha256:beded925d853f36a55cf1d0d4e92c81e945e0be5ade32df173c2827df2c9b12f", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.8778338Z", "lastUpdateTime": - "2021-04-13T15:11:16.8778338Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:c8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.4609714Z", "lastUpdateTime": - "2021-05-05T14:12:53.4609714Z", "architecture": "arm", "os": "linux", "mediaType": + true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:121373e88baca4c1ef533014de2759e002961de035607dd35d00886b052e37cf", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.5112709Z", "lastUpdateTime": + "2021-08-17T18:06:35.5112709Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d1eb04b3e60d4b8b90ee62f9a5a76bcc70bdeb9d43ffc4ae47c873828917f89e", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.0315661Z", "lastUpdateTime": - "2021-05-05T14:12:53.0315661Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.2838903Z", "lastUpdateTime": + "2021-08-17T18:06:35.2838903Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7329164Z", "lastUpdateTime": - "2021-05-18T17:16:25.7329164Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:4600ef29aff996daeadbc9b9f5c6e3ef83027704f9d75e07fc927911dd000a87", + "imageSize": 528, "createdTime": "2021-08-17T18:06:36.1029644Z", "lastUpdateTime": + "2021-08-17T18:06:36.1029644Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:e132653a6bb3ea3e3b0c63b608122ee72e03cd1e9849a05818965b695afad399", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.1965873Z", "lastUpdateTime": - "2021-04-13T15:11:16.1965873Z", "architecture": "mips64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.0655061Z", "lastUpdateTime": - "2021-04-13T15:11:16.0655061Z", "architecture": "arm64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.4218355Z", "lastUpdateTime": + "2021-08-17T18:06:35.4218355Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f1e9b10f3e11f03cc1881415598044364124c838dbc616621403bb88099ba8af", - "imageSize": 527, "createdTime": "2021-05-05T14:12:52.9174164Z", "lastUpdateTime": - "2021-05-05T14:12:52.9174164Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.0727331Z", "lastUpdateTime": - "2021-05-18T17:16:26.0727331Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + true, "quarantineState": "Passed"}}, {"digest": "sha256:5a43a82d5e4a8f1a827c0bb63648460af4e6a9f3c95a039c446614045a695b84", + "imageSize": 527, "createdTime": "2021-08-17T18:06:36.0392471Z", "lastUpdateTime": + "2021-08-17T18:06:36.0392471Z", "architecture": "riscv64", "os": "linux", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f3cfc9d0dbf931d3db4685ec659b7ac68e2a578219da4aae65427886e649b06b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.802626Z", "lastUpdateTime": - "2021-05-18T17:16:26.802626Z", "architecture": "amd64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:ccff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.9081554Z", "lastUpdateTime": + "2021-08-17T18:06:35.9081554Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:fd659a6f4786d18666586ab4935f8e846d7cf1ff1b2709671f3ff0fcd15519b9", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.6907072Z", "lastUpdateTime": - "2021-04-13T15:11:16.6907072Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:dca71257cd2e72840a21f0323234bb2e33fea6d949fa0f21c5102146f583486b", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.1560816Z", "lastUpdateTime": + "2021-08-17T18:06:35.1560816Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -247,7 +154,7 @@ interactions: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:38 GMT + date: Tue, 17 Aug 2021 18:17:34 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -256,5 +163,5 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_registry_artifacts_ascending.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_registry_artifacts_ascending.yaml index 7b9680ebc58e..aa47ebd810d9 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_registry_artifacts_ascending.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_registry_artifacts_ascending.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timeasc response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '218' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:38 GMT + date: Tue, 17 Aug 2021 18:17:34 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timeasc + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timeasc - request: body: access_token: REDACTED grant_type: access_token - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:39 GMT + date: Tue, 17 Aug 2021 18:17:34 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.65' + x-ms-ratelimit-remaining-calls-per-second: '166.216667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,180 +74,87 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:39 GMT + date: Tue, 17 Aug 2021 18:17:34 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.633333' + x-ms-ratelimit-remaining-calls-per-second: '166.083333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timeasc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:ae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.1951619Z", "lastUpdateTime": - "2021-04-13T15:11:15.1951619Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}, {"digest": "sha256:1ccc0a0ca577e5fb5a0bdf2150a1a9f842f47c8865e861fa0062c5d343eb8cac", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.6976923Z", "lastUpdateTime": - "2021-04-13T15:11:15.6976923Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.7730283Z", "lastUpdateTime": - "2021-04-13T15:11:15.7730283Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9220954Z", "lastUpdateTime": - "2021-04-13T15:11:15.9220954Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:82b4c9f36a6fa022454e78ad5c72a74fd34ca4e20489b36a8a436ca3ce9c34ef", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9893517Z", "lastUpdateTime": - "2021-04-13T15:11:15.9893517Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.0655061Z", "lastUpdateTime": - "2021-04-13T15:11:16.0655061Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:e132653a6bb3ea3e3b0c63b608122ee72e03cd1e9849a05818965b695afad399", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.1965873Z", "lastUpdateTime": - "2021-04-13T15:11:16.1965873Z", "architecture": "mips64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:37b77d92a7ca131dd379ab9a637b814dd99dc0cb560ccf59b566bd6448564b7c", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.3563152Z", "lastUpdateTime": - "2021-04-13T15:11:16.3563152Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:fd659a6f4786d18666586ab4935f8e846d7cf1ff1b2709671f3ff0fcd15519b9", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.6907072Z", "lastUpdateTime": - "2021-04-13T15:11:16.6907072Z", "architecture": "arm", "os": "linux", "mediaType": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60", + "imageSize": 5272, "createdTime": "2021-08-17T18:06:34.0662553Z", "lastUpdateTime": + "2021-08-17T18:06:34.0662553Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.076758Z", "lastUpdateTime": + "2021-08-17T18:06:35.076758Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:beded925d853f36a55cf1d0d4e92c81e945e0be5ade32df173c2827df2c9b12f", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.8778338Z", "lastUpdateTime": - "2021-04-13T15:11:16.8778338Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:be4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb", - "imageSize": 4745, "createdTime": "2021-05-05T14:12:52.3468286Z", "lastUpdateTime": - "2021-05-05T14:12:52.3468286Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}, {"digest": "sha256:f1e9b10f3e11f03cc1881415598044364124c838dbc616621403bb88099ba8af", - "imageSize": 527, "createdTime": "2021-05-05T14:12:52.9174164Z", "lastUpdateTime": - "2021-05-05T14:12:52.9174164Z", "architecture": "amd64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:dca71257cd2e72840a21f0323234bb2e33fea6d949fa0f21c5102146f583486b", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.1560816Z", "lastUpdateTime": + "2021-08-17T18:06:35.1560816Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d1eb04b3e60d4b8b90ee62f9a5a76bcc70bdeb9d43ffc4ae47c873828917f89e", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.0315661Z", "lastUpdateTime": - "2021-05-05T14:12:53.0315661Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.2838903Z", "lastUpdateTime": + "2021-08-17T18:06:35.2838903Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.3522872Z", "lastUpdateTime": - "2021-05-05T14:12:53.3522872Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.4218355Z", "lastUpdateTime": + "2021-08-17T18:06:35.4218355Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:c8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.4609714Z", "lastUpdateTime": - "2021-05-05T14:12:53.4609714Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:121373e88baca4c1ef533014de2759e002961de035607dd35d00886b052e37cf", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.5112709Z", "lastUpdateTime": + "2021-08-17T18:06:35.5112709Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e389843d4f03f45b1c21ba70fa10a4e182780eb42c2f6f9b868e6b1804f2d99", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.5813533Z", "lastUpdateTime": - "2021-05-05T14:12:53.5813533Z", "architecture": "mips64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:002265f553555c92ddc51aa292e458a44615af64e22b8b35192ff4ca1801e8cd", + "imageSize": 528, "createdTime": "2021-08-17T18:06:35.7460007Z", "lastUpdateTime": + "2021-08-17T18:06:35.7460007Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.7232635Z", "lastUpdateTime": - "2021-05-05T14:12:53.7232635Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.779775Z", "lastUpdateTime": - "2021-05-05T14:12:53.779775Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.8711031Z", "lastUpdateTime": - "2021-05-05T14:12:53.8711031Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.9757197Z", "lastUpdateTime": - "2021-05-05T14:12:53.9757197Z", "architecture": "ppc64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:0dc4e9a14237cae2d8e96e9e310116091c5ed4934448d7cfd22b122778964f11", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.8204333Z", "lastUpdateTime": + "2021-08-17T18:06:35.8204333Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7329164Z", "lastUpdateTime": - "2021-05-18T17:16:25.7329164Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:ccff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.9081554Z", "lastUpdateTime": + "2021-08-17T18:06:35.9081554Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:02cf788367ec35bd85c4fa4aca9beccb02e128aa1e4bea6075204eb46d375b1f", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7864026Z", "lastUpdateTime": - "2021-05-18T17:16:25.7864026Z", "architecture": "mips64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:5a43a82d5e4a8f1a827c0bb63648460af4e6a9f3c95a039c446614045a695b84", + "imageSize": 527, "createdTime": "2021-08-17T18:06:36.0392471Z", "lastUpdateTime": + "2021-08-17T18:06:36.0392471Z", "architecture": "riscv64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5fc1d7b2e4ea86a06b0cf88de915a2c43a99a00b6b3c0af731e5f4c07ae8eff", - "imageSize": 4745, "createdTime": "2021-05-18T17:16:25.9591474Z", "lastUpdateTime": - "2021-05-18T17:16:25.9591474Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:f2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.0727331Z", "lastUpdateTime": - "2021-05-18T17:16:26.0727331Z", "architecture": "arm64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:4600ef29aff996daeadbc9b9f5c6e3ef83027704f9d75e07fc927911dd000a87", + "imageSize": 528, "createdTime": "2021-08-17T18:06:36.1029644Z", "lastUpdateTime": + "2021-08-17T18:06:36.1029644Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.4654417Z", "lastUpdateTime": - "2021-05-18T17:16:26.4654417Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:554be197dddd3aeedd35536496106b331efe97458be0cf6cdabdd166b34f6ace", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.7224016Z", "lastUpdateTime": - "2021-05-18T17:16:26.7224016Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f3cfc9d0dbf931d3db4685ec659b7ac68e2a578219da4aae65427886e649b06b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.802626Z", "lastUpdateTime": - "2021-05-18T17:16:26.802626Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b4ad127c506802ba4e9702c335e6d78241668ee12840ce89957e9b945a680920", - "imageSize": 528, "createdTime": "2021-05-18T17:16:27.0293218Z", "lastUpdateTime": - "2021-05-18T17:16:27.0293218Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:9708dc541771170e42aadc4c3c4477ec15e91e595673493bbbb78b7c8b75b0b5", - "imageSize": 527, "createdTime": "2021-05-18T17:16:27.1627549Z", "lastUpdateTime": - "2021-05-18T17:16:27.1627549Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:9f665ff36d82565140f0f619274b023a451bc38a2dc6a2a9fe2b28c62ea27fd5", - "imageSize": 528, "createdTime": "2021-05-18T17:16:28.7425504Z", "lastUpdateTime": - "2021-05-18T17:16:28.7425504Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:40 GMT + date: Tue, 17 Aug 2021 18:17:35 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -256,14 +163,14 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timeasc + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timeasc - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timeasc response: @@ -276,7 +183,7 @@ interactions: connection: keep-alive content-length: '218' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:40 GMT + date: Tue, 17 Aug 2021 18:17:35 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -285,18 +192,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timeasc + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timeasc +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:17:35 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.066667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -305,180 +239,87 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:40 GMT + date: Tue, 17 Aug 2021 18:17:35 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.616667' + x-ms-ratelimit-remaining-calls-per-second: '166.05' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timeasc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:ae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.1951619Z", "lastUpdateTime": - "2021-04-13T15:11:15.1951619Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}, {"digest": "sha256:1ccc0a0ca577e5fb5a0bdf2150a1a9f842f47c8865e861fa0062c5d343eb8cac", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.6976923Z", "lastUpdateTime": - "2021-04-13T15:11:15.6976923Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.7730283Z", "lastUpdateTime": - "2021-04-13T15:11:15.7730283Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9220954Z", "lastUpdateTime": - "2021-04-13T15:11:15.9220954Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:82b4c9f36a6fa022454e78ad5c72a74fd34ca4e20489b36a8a436ca3ce9c34ef", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9893517Z", "lastUpdateTime": - "2021-04-13T15:11:15.9893517Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.0655061Z", "lastUpdateTime": - "2021-04-13T15:11:16.0655061Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:e132653a6bb3ea3e3b0c63b608122ee72e03cd1e9849a05818965b695afad399", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.1965873Z", "lastUpdateTime": - "2021-04-13T15:11:16.1965873Z", "architecture": "mips64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:37b77d92a7ca131dd379ab9a637b814dd99dc0cb560ccf59b566bd6448564b7c", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.3563152Z", "lastUpdateTime": - "2021-04-13T15:11:16.3563152Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:fd659a6f4786d18666586ab4935f8e846d7cf1ff1b2709671f3ff0fcd15519b9", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.6907072Z", "lastUpdateTime": - "2021-04-13T15:11:16.6907072Z", "architecture": "arm", "os": "linux", "mediaType": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60", + "imageSize": 5272, "createdTime": "2021-08-17T18:06:34.0662553Z", "lastUpdateTime": + "2021-08-17T18:06:34.0662553Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.076758Z", "lastUpdateTime": + "2021-08-17T18:06:35.076758Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:beded925d853f36a55cf1d0d4e92c81e945e0be5ade32df173c2827df2c9b12f", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.8778338Z", "lastUpdateTime": - "2021-04-13T15:11:16.8778338Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:be4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb", - "imageSize": 4745, "createdTime": "2021-05-05T14:12:52.3468286Z", "lastUpdateTime": - "2021-05-05T14:12:52.3468286Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}, {"digest": "sha256:f1e9b10f3e11f03cc1881415598044364124c838dbc616621403bb88099ba8af", - "imageSize": 527, "createdTime": "2021-05-05T14:12:52.9174164Z", "lastUpdateTime": - "2021-05-05T14:12:52.9174164Z", "architecture": "amd64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:dca71257cd2e72840a21f0323234bb2e33fea6d949fa0f21c5102146f583486b", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.1560816Z", "lastUpdateTime": + "2021-08-17T18:06:35.1560816Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d1eb04b3e60d4b8b90ee62f9a5a76bcc70bdeb9d43ffc4ae47c873828917f89e", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.0315661Z", "lastUpdateTime": - "2021-05-05T14:12:53.0315661Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.2838903Z", "lastUpdateTime": + "2021-08-17T18:06:35.2838903Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.3522872Z", "lastUpdateTime": - "2021-05-05T14:12:53.3522872Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.4218355Z", "lastUpdateTime": + "2021-08-17T18:06:35.4218355Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:c8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.4609714Z", "lastUpdateTime": - "2021-05-05T14:12:53.4609714Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:121373e88baca4c1ef533014de2759e002961de035607dd35d00886b052e37cf", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.5112709Z", "lastUpdateTime": + "2021-08-17T18:06:35.5112709Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e389843d4f03f45b1c21ba70fa10a4e182780eb42c2f6f9b868e6b1804f2d99", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.5813533Z", "lastUpdateTime": - "2021-05-05T14:12:53.5813533Z", "architecture": "mips64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:002265f553555c92ddc51aa292e458a44615af64e22b8b35192ff4ca1801e8cd", + "imageSize": 528, "createdTime": "2021-08-17T18:06:35.7460007Z", "lastUpdateTime": + "2021-08-17T18:06:35.7460007Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.7232635Z", "lastUpdateTime": - "2021-05-05T14:12:53.7232635Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.779775Z", "lastUpdateTime": - "2021-05-05T14:12:53.779775Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.8711031Z", "lastUpdateTime": - "2021-05-05T14:12:53.8711031Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.9757197Z", "lastUpdateTime": - "2021-05-05T14:12:53.9757197Z", "architecture": "ppc64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:0dc4e9a14237cae2d8e96e9e310116091c5ed4934448d7cfd22b122778964f11", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.8204333Z", "lastUpdateTime": + "2021-08-17T18:06:35.8204333Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7329164Z", "lastUpdateTime": - "2021-05-18T17:16:25.7329164Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:ccff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.9081554Z", "lastUpdateTime": + "2021-08-17T18:06:35.9081554Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:02cf788367ec35bd85c4fa4aca9beccb02e128aa1e4bea6075204eb46d375b1f", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7864026Z", "lastUpdateTime": - "2021-05-18T17:16:25.7864026Z", "architecture": "mips64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:5a43a82d5e4a8f1a827c0bb63648460af4e6a9f3c95a039c446614045a695b84", + "imageSize": 527, "createdTime": "2021-08-17T18:06:36.0392471Z", "lastUpdateTime": + "2021-08-17T18:06:36.0392471Z", "architecture": "riscv64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5fc1d7b2e4ea86a06b0cf88de915a2c43a99a00b6b3c0af731e5f4c07ae8eff", - "imageSize": 4745, "createdTime": "2021-05-18T17:16:25.9591474Z", "lastUpdateTime": - "2021-05-18T17:16:25.9591474Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:f2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.0727331Z", "lastUpdateTime": - "2021-05-18T17:16:26.0727331Z", "architecture": "arm64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:4600ef29aff996daeadbc9b9f5c6e3ef83027704f9d75e07fc927911dd000a87", + "imageSize": 528, "createdTime": "2021-08-17T18:06:36.1029644Z", "lastUpdateTime": + "2021-08-17T18:06:36.1029644Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.4654417Z", "lastUpdateTime": - "2021-05-18T17:16:26.4654417Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:554be197dddd3aeedd35536496106b331efe97458be0cf6cdabdd166b34f6ace", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.7224016Z", "lastUpdateTime": - "2021-05-18T17:16:26.7224016Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f3cfc9d0dbf931d3db4685ec659b7ac68e2a578219da4aae65427886e649b06b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.802626Z", "lastUpdateTime": - "2021-05-18T17:16:26.802626Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b4ad127c506802ba4e9702c335e6d78241668ee12840ce89957e9b945a680920", - "imageSize": 528, "createdTime": "2021-05-18T17:16:27.0293218Z", "lastUpdateTime": - "2021-05-18T17:16:27.0293218Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:9708dc541771170e42aadc4c3c4477ec15e91e595673493bbbb78b7c8b75b0b5", - "imageSize": 527, "createdTime": "2021-05-18T17:16:27.1627549Z", "lastUpdateTime": - "2021-05-18T17:16:27.1627549Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:9f665ff36d82565140f0f619274b023a451bc38a2dc6a2a9fe2b28c62ea27fd5", - "imageSize": 528, "createdTime": "2021-05-18T17:16:28.7425504Z", "lastUpdateTime": - "2021-05-18T17:16:28.7425504Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:41 GMT + date: Tue, 17 Aug 2021 18:17:35 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -487,5 +328,5 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timeasc + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timeasc version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_registry_artifacts_by_page.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_registry_artifacts_by_page.yaml index 33cf3ae20f9b..aa9f0e860f2f 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_registry_artifacts_by_page.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_registry_artifacts_by_page.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?n=2 response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '218' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:42 GMT + date: Tue, 17 Aug 2021 18:17:35 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?n=2 + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?n=2 - request: body: access_token: REDACTED grant_type: access_token - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:43 GMT + date: Tue, 17 Aug 2021 18:17:35 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.383333' + x-ms-ratelimit-remaining-calls-per-second: '165.683333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,46 +74,46 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:44 GMT + date: Tue, 17 Aug 2021 18:17:35 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.366667' + x-ms-ratelimit-remaining-calls-per-second: '165.483333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?n=2 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:02cf788367ec35bd85c4fa4aca9beccb02e128aa1e4bea6075204eb46d375b1f", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7864026Z", "lastUpdateTime": - "2021-05-18T17:16:25.7864026Z", "architecture": "mips64le", "os": "linux", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:002265f553555c92ddc51aa292e458a44615af64e22b8b35192ff4ca1801e8cd", + "imageSize": 528, "createdTime": "2021-08-17T18:06:35.7460007Z", "lastUpdateTime": + "2021-08-17T18:06:35.7460007Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.7232635Z", "lastUpdateTime": - "2021-05-05T14:12:53.7232635Z", "architecture": "386", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.076758Z", "lastUpdateTime": + "2021-08-17T18:06:35.076758Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '936' + content-length: '937' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:44 GMT + date: Tue, 17 Aug 2021 18:17:36 GMT docker-distribution-api-version: registry/2.0 - link: ; + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -121,16 +121,16 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?n=2 + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?n=2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -141,7 +141,7 @@ interactions: connection: keep-alive content-length: '218' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:44 GMT + date: Tue, 17 Aug 2021 18:17:36 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -150,498 +150,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322&n=2&orderby= - request: body: - grant_type: refresh_token - refresh_token: REDACTED - scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:44 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.35' - status: - code: 200 - message: OK - url: https://seankane.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:1ccc0a0ca577e5fb5a0bdf2150a1a9f842f47c8865e861fa0062c5d343eb8cac", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.6976923Z", "lastUpdateTime": - "2021-04-13T15:11:15.6976923Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.9757197Z", "lastUpdateTime": - "2021-05-05T14:12:53.9757197Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '935' - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:44 GMT - docker-distribution-api-version: registry/2.0 - link: ; - rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '218' - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:44 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184&n=2&orderby= -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:44 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.333333' - status: - code: 200 - message: OK - url: https://seankane.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:1e389843d4f03f45b1c21ba70fa10a4e182780eb42c2f6f9b868e6b1804f2d99", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.5813533Z", "lastUpdateTime": - "2021-05-05T14:12:53.5813533Z", "architecture": "mips64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.4654417Z", "lastUpdateTime": - "2021-05-18T17:16:26.4654417Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '936' - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:45 GMT - docker-distribution-api-version: registry/2.0 - link: ; - rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '218' - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:45 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3&n=2&orderby= -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:45 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.316667' - status: - code: 200 - message: OK - url: https://seankane.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:37b77d92a7ca131dd379ab9a637b814dd99dc0cb560ccf59b566bd6448564b7c", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.3563152Z", "lastUpdateTime": - "2021-04-13T15:11:16.3563152Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.3522872Z", "lastUpdateTime": - "2021-05-05T14:12:53.3522872Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '931' - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:45 GMT - docker-distribution-api-version: registry/2.0 - link: ; - rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '218' - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:45 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085&n=2&orderby= -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:45 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.3' - status: - code: 200 - message: OK - url: https://seankane.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:554be197dddd3aeedd35536496106b331efe97458be0cf6cdabdd166b34f6ace", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.7224016Z", "lastUpdateTime": - "2021-05-18T17:16:26.7224016Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9220954Z", "lastUpdateTime": - "2021-04-13T15:11:15.9220954Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '929' - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:45 GMT - docker-distribution-api-version: registry/2.0 - link: ; - rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '218' - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:46 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70&n=2&orderby= -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:46 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.283333' - status: - code: 200 - message: OK - url: https://seankane.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:82b4c9f36a6fa022454e78ad5c72a74fd34ca4e20489b36a8a436ca3ce9c34ef", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9893517Z", "lastUpdateTime": - "2021-04-13T15:11:15.9893517Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.8711031Z", "lastUpdateTime": - "2021-05-05T14:12:53.8711031Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '931' - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:46 GMT - docker-distribution-api-version: registry/2.0 - link: ; - rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '218' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:46 GMT - docker-distribution-api-version: registry/2.0 + date: Tue, 17 Aug 2021 18:17:36 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.466667' status: - code: 401 - message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535&n=2&orderby= + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -650,46 +197,45 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:46 GMT + date: Tue, 17 Aug 2021 18:17:36 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.266667' + x-ms-ratelimit-remaining-calls-per-second: '165.45' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322&n=2&orderby= response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:9708dc541771170e42aadc4c3c4477ec15e91e595673493bbbb78b7c8b75b0b5", - "imageSize": 527, "createdTime": "2021-05-18T17:16:27.1627549Z", "lastUpdateTime": - "2021-05-18T17:16:27.1627549Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.7730283Z", "lastUpdateTime": - "2021-04-13T15:11:15.7730283Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:0dc4e9a14237cae2d8e96e9e310116091c5ed4934448d7cfd22b122778964f11", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.8204333Z", "lastUpdateTime": + "2021-08-17T18:06:35.8204333Z", "architecture": "mips64le", "os": "linux", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}]}' + true, "quarantineState": "Passed"}}, {"digest": "sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60", + "imageSize": 5272, "createdTime": "2021-08-17T18:06:34.0662553Z", "lastUpdateTime": + "2021-08-17T18:06:34.0662553Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '929' + content-length: '903' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:46 GMT + date: Tue, 17 Aug 2021 18:17:36 GMT docker-distribution-api-version: registry/2.0 - link: ; + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -697,16 +243,16 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322&n=2&orderby= - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -717,7 +263,7 @@ interactions: connection: keep-alive content-length: '218' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:46 GMT + date: Tue, 17 Aug 2021 18:17:36 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -726,113 +272,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60&n=2&orderby= - request: body: - grant_type: refresh_token - refresh_token: REDACTED - scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST - uri: https://fake_url.azurecr.io/oauth2/token + uri: https://fake_url.azurecr.io/oauth2/exchange response: body: - string: '{"access_token": "REDACTED"}' + string: '{"refresh_token": "REDACTED"}' headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:47 GMT + date: Tue, 17 Aug 2021 18:17:36 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.25' - status: - code: 200 - message: OK - url: https://seankane.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:9f665ff36d82565140f0f619274b023a451bc38a2dc6a2a9fe2b28c62ea27fd5", - "imageSize": 528, "createdTime": "2021-05-18T17:16:28.7425504Z", "lastUpdateTime": - "2021-05-18T17:16:28.7425504Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.1951619Z", "lastUpdateTime": - "2021-04-13T15:11:15.1951619Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '877' - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:47 GMT - docker-distribution-api-version: registry/2.0 - link: ; - rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff + x-ms-ratelimit-remaining-calls-per-second: '165.433333' status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:ae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '218' - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:47 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:ae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7&n=2&orderby= + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -841,46 +319,46 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:47 GMT + date: Tue, 17 Aug 2021 18:17:36 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.233333' + x-ms-ratelimit-remaining-calls-per-second: '165.416667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:ae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60&n=2&orderby= response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:b4ad127c506802ba4e9702c335e6d78241668ee12840ce89957e9b945a680920", - "imageSize": 528, "createdTime": "2021-05-18T17:16:27.0293218Z", "lastUpdateTime": - "2021-05-18T17:16:27.0293218Z", "architecture": "s390x", "os": "linux", "mediaType": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:121373e88baca4c1ef533014de2759e002961de035607dd35d00886b052e37cf", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.5112709Z", "lastUpdateTime": + "2021-08-17T18:06:35.5112709Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.779775Z", "lastUpdateTime": - "2021-05-05T14:12:53.779775Z", "architecture": "arm64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.2838903Z", "lastUpdateTime": + "2021-08-17T18:06:35.2838903Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '933' + content-length: '937' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:47 GMT + date: Tue, 17 Aug 2021 18:17:36 GMT docker-distribution-api-version: registry/2.0 - link: ; + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -888,16 +366,16 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:ae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60&n=2&orderby= - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:b5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -908,7 +386,7 @@ interactions: connection: keep-alive content-length: '218' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:47 GMT + date: Tue, 17 Aug 2021 18:17:36 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -917,112 +395,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:b5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812&n=2&orderby= - request: body: - grant_type: refresh_token - refresh_token: REDACTED - scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST - uri: https://fake_url.azurecr.io/oauth2/token + uri: https://fake_url.azurecr.io/oauth2/exchange response: body: - string: '{"access_token": "REDACTED"}' + string: '{"refresh_token": "REDACTED"}' headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:47 GMT + date: Tue, 17 Aug 2021 18:17:36 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.216667' - status: - code: 200 - message: OK - url: https://seankane.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:b5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:b5fc1d7b2e4ea86a06b0cf88de915a2c43a99a00b6b3c0af731e5f4c07ae8eff", - "imageSize": 4745, "createdTime": "2021-05-18T17:16:25.9591474Z", "lastUpdateTime": - "2021-05-18T17:16:25.9591474Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:be4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb", - "imageSize": 4745, "createdTime": "2021-05-05T14:12:52.3468286Z", "lastUpdateTime": - "2021-05-05T14:12:52.3468286Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '839' - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:48 GMT - docker-distribution-api-version: registry/2.0 - link: ; - rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff + x-ms-ratelimit-remaining-calls-per-second: '165.4' status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:b5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:be4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '218' - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:48 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:be4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb&n=2&orderby= + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -1031,46 +442,46 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:48 GMT + date: Tue, 17 Aug 2021 18:17:36 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.2' + x-ms-ratelimit-remaining-calls-per-second: '165.383333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:be4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812&n=2&orderby= response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:beded925d853f36a55cf1d0d4e92c81e945e0be5ade32df173c2827df2c9b12f", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.8778338Z", "lastUpdateTime": - "2021-04-13T15:11:16.8778338Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:4600ef29aff996daeadbc9b9f5c6e3ef83027704f9d75e07fc927911dd000a87", + "imageSize": 528, "createdTime": "2021-08-17T18:06:36.1029644Z", "lastUpdateTime": + "2021-08-17T18:06:36.1029644Z", "architecture": "s390x", "os": "linux", "mediaType": + "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:c8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.4609714Z", "lastUpdateTime": - "2021-05-05T14:12:53.4609714Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.4218355Z", "lastUpdateTime": + "2021-08-17T18:06:35.4218355Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '933' + content-length: '937' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:48 GMT + date: Tue, 17 Aug 2021 18:17:36 GMT docker-distribution-api-version: registry/2.0 - link: ; + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -1078,16 +489,16 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:be4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812&n=2&orderby= - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:c8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -1098,7 +509,7 @@ interactions: connection: keep-alive content-length: '218' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:48 GMT + date: Tue, 17 Aug 2021 18:17:36 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -1107,114 +518,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:c8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499&n=2&orderby= - request: body: - grant_type: refresh_token - refresh_token: REDACTED - scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST - uri: https://fake_url.azurecr.io/oauth2/token + uri: https://fake_url.azurecr.io/oauth2/exchange response: body: - string: '{"access_token": "REDACTED"}' + string: '{"refresh_token": "REDACTED"}' headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:48 GMT + date: Tue, 17 Aug 2021 18:17:36 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.183333' - status: - code: 200 - message: OK - url: https://seankane.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:c8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:d1eb04b3e60d4b8b90ee62f9a5a76bcc70bdeb9d43ffc4ae47c873828917f89e", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.0315661Z", "lastUpdateTime": - "2021-05-05T14:12:53.0315661Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7329164Z", "lastUpdateTime": - "2021-05-18T17:16:25.7329164Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '931' - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:48 GMT - docker-distribution-api-version: registry/2.0 - link: ; - rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff + x-ms-ratelimit-remaining-calls-per-second: '165.366667' status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:c8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:d3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '218' - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:49 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:d3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c&n=2&orderby= + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -1223,46 +565,46 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:49 GMT + date: Tue, 17 Aug 2021 18:17:36 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.166667' + x-ms-ratelimit-remaining-calls-per-second: '165.35' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:d3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499&n=2&orderby= response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:e132653a6bb3ea3e3b0c63b608122ee72e03cd1e9849a05818965b695afad399", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.1965873Z", "lastUpdateTime": - "2021-04-13T15:11:16.1965873Z", "architecture": "mips64le", "os": "linux", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:5a43a82d5e4a8f1a827c0bb63648460af4e6a9f3c95a039c446614045a695b84", + "imageSize": 527, "createdTime": "2021-08-17T18:06:36.0392471Z", "lastUpdateTime": + "2021-08-17T18:06:36.0392471Z", "architecture": "riscv64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.0655061Z", "lastUpdateTime": - "2021-04-13T15:11:16.0655061Z", "architecture": "arm64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:ccff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.9081554Z", "lastUpdateTime": + "2021-08-17T18:06:35.9081554Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '934' + content-length: '939' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:49 GMT + date: Tue, 17 Aug 2021 18:17:37 GMT docker-distribution-api-version: registry/2.0 - link: ; + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -1270,16 +612,16 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:d3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499&n=2&orderby= - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:ed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:ccff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -1290,7 +632,7 @@ interactions: connection: keep-alive content-length: '218' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:49 GMT + date: Tue, 17 Aug 2021 18:17:37 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -1299,114 +641,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:ed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:ccff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091&n=2&orderby= - request: body: - grant_type: refresh_token - refresh_token: REDACTED - scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST - uri: https://fake_url.azurecr.io/oauth2/token + uri: https://fake_url.azurecr.io/oauth2/exchange response: body: - string: '{"access_token": "REDACTED"}' + string: '{"refresh_token": "REDACTED"}' headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:49 GMT + date: Tue, 17 Aug 2021 18:17:37 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.15' - status: - code: 200 - message: OK - url: https://seankane.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:ed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e&n=2&orderby= - response: - body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:f1e9b10f3e11f03cc1881415598044364124c838dbc616621403bb88099ba8af", - "imageSize": 527, "createdTime": "2021-05-05T14:12:52.9174164Z", "lastUpdateTime": - "2021-05-05T14:12:52.9174164Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.0727331Z", "lastUpdateTime": - "2021-05-18T17:16:26.0727331Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '935' - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:49 GMT - docker-distribution-api-version: registry/2.0 - link: ; - rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff + x-ms-ratelimit-remaining-calls-per-second: '165.333333' status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:ed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:f2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "library/busybox", "Action": "metadata_read"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '218' - content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:49 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:f2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b&n=2&orderby= + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -1415,44 +688,39 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:50 GMT + date: Tue, 17 Aug 2021 18:17:37 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.133333' + x-ms-ratelimit-remaining-calls-per-second: '165.316667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:f2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:ccff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091&n=2&orderby= response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:f3cfc9d0dbf931d3db4685ec659b7ac68e2a578219da4aae65427886e649b06b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.802626Z", "lastUpdateTime": - "2021-05-18T17:16:26.802626Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:fd659a6f4786d18666586ab4935f8e846d7cf1ff1b2709671f3ff0fcd15519b9", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.6907072Z", "lastUpdateTime": - "2021-04-13T15:11:16.6907072Z", "architecture": "arm", "os": "linux", "mediaType": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:dca71257cd2e72840a21f0323234bb2e33fea6d949fa0f21c5102146f583486b", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.1560816Z", "lastUpdateTime": + "2021-08-17T18:06:35.1560816Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '929' + content-length: '511' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:50 GMT + date: Tue, 17 Aug 2021 18:17:37 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -1460,5 +728,5 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:f2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?last=sha256:ccff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091&n=2&orderby= version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_registry_artifacts_descending.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_registry_artifacts_descending.yaml index efca1e1c17c4..747b536e3e64 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_registry_artifacts_descending.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_registry_artifacts_descending.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timedesc response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '218' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:50 GMT + date: Tue, 17 Aug 2021 18:17:37 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timedesc + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timedesc - request: body: access_token: REDACTED grant_type: access_token - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:51 GMT + date: Tue, 17 Aug 2021 18:17:37 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.6' + x-ms-ratelimit-remaining-calls-per-second: '166.65' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,180 +74,87 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:52 GMT + date: Tue, 17 Aug 2021 18:17:38 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.316667' + x-ms-ratelimit-remaining-calls-per-second: '166.633333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timedesc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:9f665ff36d82565140f0f619274b023a451bc38a2dc6a2a9fe2b28c62ea27fd5", - "imageSize": 528, "createdTime": "2021-05-18T17:16:28.7425504Z", "lastUpdateTime": - "2021-05-18T17:16:28.7425504Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:9708dc541771170e42aadc4c3c4477ec15e91e595673493bbbb78b7c8b75b0b5", - "imageSize": 527, "createdTime": "2021-05-18T17:16:27.1627549Z", "lastUpdateTime": - "2021-05-18T17:16:27.1627549Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b4ad127c506802ba4e9702c335e6d78241668ee12840ce89957e9b945a680920", - "imageSize": 528, "createdTime": "2021-05-18T17:16:27.0293218Z", "lastUpdateTime": - "2021-05-18T17:16:27.0293218Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f3cfc9d0dbf931d3db4685ec659b7ac68e2a578219da4aae65427886e649b06b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.802626Z", "lastUpdateTime": - "2021-05-18T17:16:26.802626Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:554be197dddd3aeedd35536496106b331efe97458be0cf6cdabdd166b34f6ace", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.7224016Z", "lastUpdateTime": - "2021-05-18T17:16:26.7224016Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.4654417Z", "lastUpdateTime": - "2021-05-18T17:16:26.4654417Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.0727331Z", "lastUpdateTime": - "2021-05-18T17:16:26.0727331Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5fc1d7b2e4ea86a06b0cf88de915a2c43a99a00b6b3c0af731e5f4c07ae8eff", - "imageSize": 4745, "createdTime": "2021-05-18T17:16:25.9591474Z", "lastUpdateTime": - "2021-05-18T17:16:25.9591474Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:02cf788367ec35bd85c4fa4aca9beccb02e128aa1e4bea6075204eb46d375b1f", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7864026Z", "lastUpdateTime": - "2021-05-18T17:16:25.7864026Z", "architecture": "mips64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7329164Z", "lastUpdateTime": - "2021-05-18T17:16:25.7329164Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.9757197Z", "lastUpdateTime": - "2021-05-05T14:12:53.9757197Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.8711031Z", "lastUpdateTime": - "2021-05-05T14:12:53.8711031Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.779775Z", "lastUpdateTime": - "2021-05-05T14:12:53.779775Z", "architecture": "arm64", "os": "linux", "mediaType": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:4600ef29aff996daeadbc9b9f5c6e3ef83027704f9d75e07fc927911dd000a87", + "imageSize": 528, "createdTime": "2021-08-17T18:06:36.1029644Z", "lastUpdateTime": + "2021-08-17T18:06:36.1029644Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.7232635Z", "lastUpdateTime": - "2021-05-05T14:12:53.7232635Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e389843d4f03f45b1c21ba70fa10a4e182780eb42c2f6f9b868e6b1804f2d99", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.5813533Z", "lastUpdateTime": - "2021-05-05T14:12:53.5813533Z", "architecture": "mips64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:5a43a82d5e4a8f1a827c0bb63648460af4e6a9f3c95a039c446614045a695b84", + "imageSize": 527, "createdTime": "2021-08-17T18:06:36.0392471Z", "lastUpdateTime": + "2021-08-17T18:06:36.0392471Z", "architecture": "riscv64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:c8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.4609714Z", "lastUpdateTime": - "2021-05-05T14:12:53.4609714Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.3522872Z", "lastUpdateTime": - "2021-05-05T14:12:53.3522872Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d1eb04b3e60d4b8b90ee62f9a5a76bcc70bdeb9d43ffc4ae47c873828917f89e", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.0315661Z", "lastUpdateTime": - "2021-05-05T14:12:53.0315661Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:ccff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.9081554Z", "lastUpdateTime": + "2021-08-17T18:06:35.9081554Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f1e9b10f3e11f03cc1881415598044364124c838dbc616621403bb88099ba8af", - "imageSize": 527, "createdTime": "2021-05-05T14:12:52.9174164Z", "lastUpdateTime": - "2021-05-05T14:12:52.9174164Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:be4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb", - "imageSize": 4745, "createdTime": "2021-05-05T14:12:52.3468286Z", "lastUpdateTime": - "2021-05-05T14:12:52.3468286Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}, {"digest": "sha256:beded925d853f36a55cf1d0d4e92c81e945e0be5ade32df173c2827df2c9b12f", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.8778338Z", "lastUpdateTime": - "2021-04-13T15:11:16.8778338Z", "architecture": "ppc64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:0dc4e9a14237cae2d8e96e9e310116091c5ed4934448d7cfd22b122778964f11", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.8204333Z", "lastUpdateTime": + "2021-08-17T18:06:35.8204333Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:fd659a6f4786d18666586ab4935f8e846d7cf1ff1b2709671f3ff0fcd15519b9", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.6907072Z", "lastUpdateTime": - "2021-04-13T15:11:16.6907072Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:37b77d92a7ca131dd379ab9a637b814dd99dc0cb560ccf59b566bd6448564b7c", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.3563152Z", "lastUpdateTime": - "2021-04-13T15:11:16.3563152Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:e132653a6bb3ea3e3b0c63b608122ee72e03cd1e9849a05818965b695afad399", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.1965873Z", "lastUpdateTime": - "2021-04-13T15:11:16.1965873Z", "architecture": "mips64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:002265f553555c92ddc51aa292e458a44615af64e22b8b35192ff4ca1801e8cd", + "imageSize": 528, "createdTime": "2021-08-17T18:06:35.7460007Z", "lastUpdateTime": + "2021-08-17T18:06:35.7460007Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.0655061Z", "lastUpdateTime": - "2021-04-13T15:11:16.0655061Z", "architecture": "arm64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:121373e88baca4c1ef533014de2759e002961de035607dd35d00886b052e37cf", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.5112709Z", "lastUpdateTime": + "2021-08-17T18:06:35.5112709Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:82b4c9f36a6fa022454e78ad5c72a74fd34ca4e20489b36a8a436ca3ce9c34ef", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9893517Z", "lastUpdateTime": - "2021-04-13T15:11:15.9893517Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.4218355Z", "lastUpdateTime": + "2021-08-17T18:06:35.4218355Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9220954Z", "lastUpdateTime": - "2021-04-13T15:11:15.9220954Z", "architecture": "386", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.2838903Z", "lastUpdateTime": + "2021-08-17T18:06:35.2838903Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.7730283Z", "lastUpdateTime": - "2021-04-13T15:11:15.7730283Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:dca71257cd2e72840a21f0323234bb2e33fea6d949fa0f21c5102146f583486b", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.1560816Z", "lastUpdateTime": + "2021-08-17T18:06:35.1560816Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1ccc0a0ca577e5fb5a0bdf2150a1a9f842f47c8865e861fa0062c5d343eb8cac", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.6976923Z", "lastUpdateTime": - "2021-04-13T15:11:15.6976923Z", "architecture": "amd64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.076758Z", "lastUpdateTime": + "2021-08-17T18:06:35.076758Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.1951619Z", "lastUpdateTime": - "2021-04-13T15:11:15.1951619Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}]}' + true, "quarantineState": "Passed"}}, {"digest": "sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60", + "imageSize": 5272, "createdTime": "2021-08-17T18:06:34.0662553Z", "lastUpdateTime": + "2021-08-17T18:06:34.0662553Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:53 GMT + date: Tue, 17 Aug 2021 18:17:38 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -256,14 +163,14 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timedesc + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timedesc - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timedesc response: @@ -276,7 +183,7 @@ interactions: connection: keep-alive content-length: '218' content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:53 GMT + date: Tue, 17 Aug 2021 18:17:38 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -285,18 +192,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timedesc + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timedesc +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:17:39 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.616667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:library/busybox:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -305,180 +239,87 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:53 GMT + date: Tue, 17 Aug 2021 18:17:39 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.3' + x-ms-ratelimit-remaining-calls-per-second: '166.6' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timedesc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "library/busybox", - "manifests": [{"digest": "sha256:9f665ff36d82565140f0f619274b023a451bc38a2dc6a2a9fe2b28c62ea27fd5", - "imageSize": 528, "createdTime": "2021-05-18T17:16:28.7425504Z", "lastUpdateTime": - "2021-05-18T17:16:28.7425504Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:9708dc541771170e42aadc4c3c4477ec15e91e595673493bbbb78b7c8b75b0b5", - "imageSize": 527, "createdTime": "2021-05-18T17:16:27.1627549Z", "lastUpdateTime": - "2021-05-18T17:16:27.1627549Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b4ad127c506802ba4e9702c335e6d78241668ee12840ce89957e9b945a680920", - "imageSize": 528, "createdTime": "2021-05-18T17:16:27.0293218Z", "lastUpdateTime": - "2021-05-18T17:16:27.0293218Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f3cfc9d0dbf931d3db4685ec659b7ac68e2a578219da4aae65427886e649b06b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.802626Z", "lastUpdateTime": - "2021-05-18T17:16:26.802626Z", "architecture": "amd64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:554be197dddd3aeedd35536496106b331efe97458be0cf6cdabdd166b34f6ace", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.7224016Z", "lastUpdateTime": - "2021-05-18T17:16:26.7224016Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:2a76a8a74f8d0712a5d3413368d673b660b7d948705dbce5e6e980bf700efad3", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.4654417Z", "lastUpdateTime": - "2021-05-18T17:16:26.4654417Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f2686aeee8a057e351a70e58d19ad530e4a4cd16e66eab6932d028153b74c96b", - "imageSize": 527, "createdTime": "2021-05-18T17:16:26.0727331Z", "lastUpdateTime": - "2021-05-18T17:16:26.0727331Z", "architecture": "arm64", "os": "linux", "mediaType": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "library/busybox", + "manifests": [{"digest": "sha256:4600ef29aff996daeadbc9b9f5c6e3ef83027704f9d75e07fc927911dd000a87", + "imageSize": 528, "createdTime": "2021-08-17T18:06:36.1029644Z", "lastUpdateTime": + "2021-08-17T18:06:36.1029644Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5fc1d7b2e4ea86a06b0cf88de915a2c43a99a00b6b3c0af731e5f4c07ae8eff", - "imageSize": 4745, "createdTime": "2021-05-18T17:16:25.9591474Z", "lastUpdateTime": - "2021-05-18T17:16:25.9591474Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:02cf788367ec35bd85c4fa4aca9beccb02e128aa1e4bea6075204eb46d375b1f", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7864026Z", "lastUpdateTime": - "2021-05-18T17:16:25.7864026Z", "architecture": "mips64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d3a011ab308631cbde99c2eaccfb9e521964974d09ffb1a620bc01355989748c", - "imageSize": 527, "createdTime": "2021-05-18T17:16:25.7329164Z", "lastUpdateTime": - "2021-05-18T17:16:25.7329164Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e1f3623b6bd9bd9ff23af6ee8224c217acd8eb8e739cf02d447346977375184", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.9757197Z", "lastUpdateTime": - "2021-05-05T14:12:53.9757197Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:90c9b8eea625a4c3c995aacb0d33e50c69a31027e057940ba99f77069f132535", - "imageSize": 528, "createdTime": "2021-05-05T14:12:53.8711031Z", "lastUpdateTime": - "2021-05-05T14:12:53.8711031Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b5e14f3f5a2c7eb2201fd1d8470dbc7b19ae9df0b72c38ece5dd3f2233aca440", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.779775Z", "lastUpdateTime": - "2021-05-05T14:12:53.779775Z", "architecture": "arm64", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:18f9ff16e116d0467a7091dd5145f7be3231328198eadd26d9d683bcb84ca095", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.7232635Z", "lastUpdateTime": - "2021-05-05T14:12:53.7232635Z", "architecture": "386", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1e389843d4f03f45b1c21ba70fa10a4e182780eb42c2f6f9b868e6b1804f2d99", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.5813533Z", "lastUpdateTime": - "2021-05-05T14:12:53.5813533Z", "architecture": "mips64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:5a43a82d5e4a8f1a827c0bb63648460af4e6a9f3c95a039c446614045a695b84", + "imageSize": 527, "createdTime": "2021-08-17T18:06:36.0392471Z", "lastUpdateTime": + "2021-08-17T18:06:36.0392471Z", "architecture": "riscv64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:c8d32e85dcb4dfc47f6d2af372dada6bd3a72d28d61e182199411367c6bd865d", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.4609714Z", "lastUpdateTime": - "2021-05-05T14:12:53.4609714Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:447655bf5812d64e4d2133b5bf323bee06c89ece80159e76a05c577f70f89085", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.3522872Z", "lastUpdateTime": - "2021-05-05T14:12:53.3522872Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:d1eb04b3e60d4b8b90ee62f9a5a76bcc70bdeb9d43ffc4ae47c873828917f89e", - "imageSize": 527, "createdTime": "2021-05-05T14:12:53.0315661Z", "lastUpdateTime": - "2021-05-05T14:12:53.0315661Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:f1e9b10f3e11f03cc1881415598044364124c838dbc616621403bb88099ba8af", - "imageSize": 527, "createdTime": "2021-05-05T14:12:52.9174164Z", "lastUpdateTime": - "2021-05-05T14:12:52.9174164Z", "architecture": "amd64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:ccff0c7e8498c0bd8d4705e663084c25810fd064a184671a050e1a43b86fb091", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.9081554Z", "lastUpdateTime": + "2021-08-17T18:06:35.9081554Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:be4684e4004560b2cd1f12148b7120b0ea69c385bcc9b12a637537a2c60f97fb", - "imageSize": 4745, "createdTime": "2021-05-05T14:12:52.3468286Z", "lastUpdateTime": - "2021-05-05T14:12:52.3468286Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}, {"digest": "sha256:beded925d853f36a55cf1d0d4e92c81e945e0be5ade32df173c2827df2c9b12f", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.8778338Z", "lastUpdateTime": - "2021-04-13T15:11:16.8778338Z", "architecture": "ppc64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:0dc4e9a14237cae2d8e96e9e310116091c5ed4934448d7cfd22b122778964f11", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.8204333Z", "lastUpdateTime": + "2021-08-17T18:06:35.8204333Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:fd659a6f4786d18666586ab4935f8e846d7cf1ff1b2709671f3ff0fcd15519b9", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.6907072Z", "lastUpdateTime": - "2021-04-13T15:11:16.6907072Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:37b77d92a7ca131dd379ab9a637b814dd99dc0cb560ccf59b566bd6448564b7c", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.3563152Z", "lastUpdateTime": - "2021-04-13T15:11:16.3563152Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:e132653a6bb3ea3e3b0c63b608122ee72e03cd1e9849a05818965b695afad399", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.1965873Z", "lastUpdateTime": - "2021-04-13T15:11:16.1965873Z", "architecture": "mips64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:002265f553555c92ddc51aa292e458a44615af64e22b8b35192ff4ca1801e8cd", + "imageSize": 528, "createdTime": "2021-08-17T18:06:35.7460007Z", "lastUpdateTime": + "2021-08-17T18:06:35.7460007Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ed9c347e6a72d81a3dec189527b720bd0da021239fe779c9549be501ad083b4e", - "imageSize": 0, "createdTime": "2021-04-13T15:11:16.0655061Z", "lastUpdateTime": - "2021-04-13T15:11:16.0655061Z", "architecture": "arm64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:121373e88baca4c1ef533014de2759e002961de035607dd35d00886b052e37cf", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.5112709Z", "lastUpdateTime": + "2021-08-17T18:06:35.5112709Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:82b4c9f36a6fa022454e78ad5c72a74fd34ca4e20489b36a8a436ca3ce9c34ef", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9893517Z", "lastUpdateTime": - "2021-04-13T15:11:15.9893517Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:49fe19ce9b78d2f7b8dbcbca928c73652dba2fe797fb078453f5601a4f49e499", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.4218355Z", "lastUpdateTime": + "2021-08-17T18:06:35.4218355Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:6223225a29b199db7ac08bfc70717c0b4fe28b791abbe25a3208025fa86a4b70", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.9220954Z", "lastUpdateTime": - "2021-04-13T15:11:15.9220954Z", "architecture": "386", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:44a1490f5da02cd6d8b2efdb9e0851b2c360349bdc4640b600c90311c0c9d812", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.2838903Z", "lastUpdateTime": + "2021-08-17T18:06:35.2838903Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:975eefa55fc130df8943cf2f72a8852ed2591db75871e0dcc427b76a0d8c26f8", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.7730283Z", "lastUpdateTime": - "2021-04-13T15:11:15.7730283Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:dca71257cd2e72840a21f0323234bb2e33fea6d949fa0f21c5102146f583486b", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.1560816Z", "lastUpdateTime": + "2021-08-17T18:06:35.1560816Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1ccc0a0ca577e5fb5a0bdf2150a1a9f842f47c8865e861fa0062c5d343eb8cac", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.6976923Z", "lastUpdateTime": - "2021-04-13T15:11:15.6976923Z", "architecture": "amd64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:09242dfdcdd10df740a93ebc9662507b4f23777c6ddc81f8ceacfc9a48a31322", + "imageSize": 527, "createdTime": "2021-08-17T18:06:35.076758Z", "lastUpdateTime": + "2021-08-17T18:06:35.076758Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:ae39a6f5c07297d7ab64dbd4f82c77c874cc6a94cea29fdec309d0992574b4f7", - "imageSize": 0, "createdTime": "2021-04-13T15:11:15.1951619Z", "lastUpdateTime": - "2021-04-13T15:11:15.1951619Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": - true, "listEnabled": true}}]}' + true, "quarantineState": "Passed"}}, {"digest": "sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60", + "imageSize": 5272, "createdTime": "2021-08-17T18:06:34.0662553Z", "lastUpdateTime": + "2021-08-17T18:06:34.0662553Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 26 May 2021 20:30:54 GMT + date: Tue, 17 Aug 2021 18:17:39 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -487,5 +328,5 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timedesc + url: https://yalinlitests.azurecr.io/acr/v1/library%2Fbusybox/_manifests?orderby=timedesc version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_repository_names.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_repository_names.yaml index c61890182688..2355f16b085f 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_repository_names.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_repository_names.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:10:56 GMT + date: Tue, 17 Aug 2021 18:17:39 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog + url: https://yalinlitests.azurecr.io/acr/v1/_catalog - request: body: access_token: REDACTED grant_type: access_token - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:10:57 GMT + date: Tue, 17 Aug 2021 18:17:40 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.616667' + x-ms-ratelimit-remaining-calls-per-second: '165.95' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: registry:catalog:* - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,42 +74,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:10:57 GMT + date: Tue, 17 Aug 2021 18:17:40 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.233333' + x-ms-ratelimit-remaining-calls-per-second: '165.933333' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["library/alpine", "library/busybox", "repo13cf14de", - "repo25ce0f5d", "repo26ab150f", "repo27331535", "repo28471541", "repo2915152d", - "repo2c591564", "repo2e8319c5", "repo308e19dd", "repo34ab0fa1", "repo3db51597", - "repo3dc21571", "repo3e8d15a3", "repo41a21dd2", "repo6969166d", "repo6a411679", - "repo7bda1b05", "repo7cee1b11", "repo80c61ece", "repo84e316ff", "repo8b5a11da", - "repo93d41b55", "repo99be175b", "repo9b321760", "repo9cb4121e", "repoaf17178c", - "repoaf8812b0", "repoaf9517b2", "repob0a917be", "repob22512e7", "repoc1b5131a", - "repoc1b812f4", "repoc28d1326", "repod2be1c42", "repodf771888", "repoe08b1894", - "repoeb7113db", "repof94c18ea", "repofa2418f6", "repos6ce51658", "reposetb7cc1bf8", - "reposetmani160e197b"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo26ab150f", "repo27741d6f", "repo2b381dc2", "repo2bef19cb", "repo3dc21571", + "repo41a21dd2", "repo45431dd7", "repo60eb1a9e", "repo63d41ad4", "repo6969166d", + "repo7bda1b05", "repo80c61ece", "repo816516e9", "repo93d41b55", "repoaf17178c", + "repoaf8317b0", "repoc1b812f4", "repodf771888", "repoec051cb9", "repof94c18ea"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '695' + content-length: '376' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:10:58 GMT + date: Tue, 17 Aug 2021 18:17:40 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -117,5 +112,5 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog + url: https://yalinlitests.azurecr.io/acr/v1/_catalog version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_repository_names_by_page.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_repository_names_by_page.yaml index 04fe2d944b19..4ea8bec4cf70 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_repository_names_by_page.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_repository_names_by_page.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog?n=2 response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:10:58 GMT + date: Tue, 17 Aug 2021 18:17:40 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?n=2 + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?n=2 - request: body: access_token: REDACTED grant_type: access_token - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:00 GMT + date: Tue, 17 Aug 2021 18:17:40 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.25' + x-ms-ratelimit-remaining-calls-per-second: '166.583333' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: registry:catalog:* - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,22 +74,22 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:00 GMT + date: Tue, 17 Aug 2021 18:17:40 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.6' + x-ms-ratelimit-remaining-calls-per-second: '166.566667' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog?n=2 response: @@ -100,7 +100,7 @@ interactions: connection: keep-alive content-length: '54' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:00 GMT + date: Tue, 17 Aug 2021 18:17:40 GMT docker-distribution-api-version: registry/2.0 link: ; rel="next" server: openresty @@ -109,14 +109,14 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?n=2 + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?n=2 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=library/busybox&n=2&orderby= response: @@ -129,7 +129,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:00 GMT + date: Tue, 17 Aug 2021 18:17:40 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -138,18 +138,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=library/busybox&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=library/busybox&n=2&orderby= +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:17:40 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.55' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: registry:catalog:* - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -158,51 +185,51 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:00 GMT + date: Tue, 17 Aug 2021 18:17:40 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.583333' + x-ms-ratelimit-remaining-calls-per-second: '166.533333' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=library/busybox&n=2&orderby= response: body: - string: '{"repositories": ["repo13cf14de", "repo25ce0f5d"]}' + string: '{"repositories": ["library/hello-world", "repo26ab150f"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '49' + content-length: '56' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:00 GMT + date: Tue, 17 Aug 2021 18:17:40 GMT docker-distribution-api-version: registry/2.0 - link: ; rel="next" + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=library/busybox&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=library/busybox&n=2&orderby= - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo25ce0f5d&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo26ab150f&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -213,7 +240,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:00 GMT + date: Tue, 17 Aug 2021 18:17:40 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -222,18 +249,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo25ce0f5d&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repo26ab150f&n=2&orderby= +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:17:41 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.516667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: registry:catalog:* - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -242,51 +296,51 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:01 GMT + date: Tue, 17 Aug 2021 18:17:41 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.566667' + x-ms-ratelimit-remaining-calls-per-second: '166.5' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo25ce0f5d&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo26ab150f&n=2&orderby= response: body: - string: '{"repositories": ["repo26ab150f", "repo27331535"]}' + string: '{"repositories": ["repo27741d6f", "repo2b381dc2"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '49' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:01 GMT + date: Tue, 17 Aug 2021 18:17:41 GMT docker-distribution-api-version: registry/2.0 - link: ; rel="next" + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo25ce0f5d&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repo26ab150f&n=2&orderby= - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo27331535&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2b381dc2&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -297,7 +351,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:01 GMT + date: Tue, 17 Aug 2021 18:17:41 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -306,18 +360,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo27331535&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repo2b381dc2&n=2&orderby= +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:17:41 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.483333' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: registry:catalog:* - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -326,51 +407,51 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:01 GMT + date: Tue, 17 Aug 2021 18:17:41 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.55' + x-ms-ratelimit-remaining-calls-per-second: '166.466667' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo27331535&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2b381dc2&n=2&orderby= response: body: - string: '{"repositories": ["repo28471541", "repo2915152d"]}' + string: '{"repositories": ["repo2bef19cb", "repo3dc21571"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '49' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:01 GMT + date: Tue, 17 Aug 2021 18:17:41 GMT docker-distribution-api-version: registry/2.0 - link: ; rel="next" + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo27331535&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repo2b381dc2&n=2&orderby= - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2915152d&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo3dc21571&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -381,7 +462,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:01 GMT + date: Tue, 17 Aug 2021 18:17:41 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -390,18 +471,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2915152d&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repo3dc21571&n=2&orderby= +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:17:41 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.45' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: registry:catalog:* - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -410,51 +518,51 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:02 GMT + date: Tue, 17 Aug 2021 18:17:41 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.533333' + x-ms-ratelimit-remaining-calls-per-second: '166.433333' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2915152d&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo3dc21571&n=2&orderby= response: body: - string: '{"repositories": ["repo2c591564", "repo2e8319c5"]}' + string: '{"repositories": ["repo41a21dd2", "repo45431dd7"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '49' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:02 GMT + date: Tue, 17 Aug 2021 18:17:41 GMT docker-distribution-api-version: registry/2.0 - link: ; rel="next" + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2915152d&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repo3dc21571&n=2&orderby= - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2e8319c5&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo45431dd7&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -465,7 +573,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:02 GMT + date: Tue, 17 Aug 2021 18:17:41 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -474,18 +582,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2e8319c5&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repo45431dd7&n=2&orderby= +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:17:41 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.416667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: registry:catalog:* - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -494,51 +629,51 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:02 GMT + date: Tue, 17 Aug 2021 18:17:41 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.516667' + x-ms-ratelimit-remaining-calls-per-second: '166.4' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2e8319c5&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo45431dd7&n=2&orderby= response: body: - string: '{"repositories": ["repo308e19dd", "repo34ab0fa1"]}' + string: '{"repositories": ["repo60eb1a9e", "repo63d41ad4"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '49' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:02 GMT + date: Tue, 17 Aug 2021 18:17:42 GMT docker-distribution-api-version: registry/2.0 - link: ; rel="next" + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2e8319c5&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repo45431dd7&n=2&orderby= - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo34ab0fa1&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo63d41ad4&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -549,7 +684,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:02 GMT + date: Tue, 17 Aug 2021 18:17:42 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -558,18 +693,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo34ab0fa1&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repo63d41ad4&n=2&orderby= +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:17:42 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.383333' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: registry:catalog:* - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -578,51 +740,51 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:02 GMT + date: Tue, 17 Aug 2021 18:17:42 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.5' + x-ms-ratelimit-remaining-calls-per-second: '166.366667' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo34ab0fa1&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo63d41ad4&n=2&orderby= response: body: - string: '{"repositories": ["repo3db51597", "repo3dc21571"]}' + string: '{"repositories": ["repo6969166d", "repo7bda1b05"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '49' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:03 GMT + date: Tue, 17 Aug 2021 18:17:42 GMT docker-distribution-api-version: registry/2.0 - link: ; rel="next" + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo34ab0fa1&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repo63d41ad4&n=2&orderby= - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo3dc21571&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo7bda1b05&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -633,7 +795,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:03 GMT + date: Tue, 17 Aug 2021 18:17:42 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -642,18 +804,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo3dc21571&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repo7bda1b05&n=2&orderby= +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:17:42 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.35' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: registry:catalog:* - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -662,51 +851,51 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:03 GMT + date: Tue, 17 Aug 2021 18:17:42 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.483333' + x-ms-ratelimit-remaining-calls-per-second: '166.333333' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo3dc21571&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo7bda1b05&n=2&orderby= response: body: - string: '{"repositories": ["repo3e8d15a3", "repo41a21dd2"]}' + string: '{"repositories": ["repo80c61ece", "repo816516e9"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '49' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:03 GMT + date: Tue, 17 Aug 2021 18:17:42 GMT docker-distribution-api-version: registry/2.0 - link: ; rel="next" + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo3dc21571&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repo7bda1b05&n=2&orderby= - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo41a21dd2&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo816516e9&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -717,7 +906,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:03 GMT + date: Tue, 17 Aug 2021 18:17:42 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -726,18 +915,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo41a21dd2&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repo816516e9&n=2&orderby= +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:17:42 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.316667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: registry:catalog:* - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -746,51 +962,51 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:03 GMT + date: Tue, 17 Aug 2021 18:17:42 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.466667' + x-ms-ratelimit-remaining-calls-per-second: '166.3' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo41a21dd2&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo816516e9&n=2&orderby= response: body: - string: '{"repositories": ["repo6969166d", "repo6a411679"]}' + string: '{"repositories": ["repo93d41b55", "repoaf17178c"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '49' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:03 GMT + date: Tue, 17 Aug 2021 18:17:42 GMT docker-distribution-api-version: registry/2.0 - link: ; rel="next" + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo41a21dd2&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repo816516e9&n=2&orderby= - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo6a411679&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf17178c&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -801,7 +1017,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:03 GMT + date: Tue, 17 Aug 2021 18:17:42 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -810,18 +1026,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo6a411679&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repoaf17178c&n=2&orderby= +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:17:43 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.283333' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: registry:catalog:* - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -830,51 +1073,51 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:04 GMT + date: Tue, 17 Aug 2021 18:17:43 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.45' + x-ms-ratelimit-remaining-calls-per-second: '166.266667' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo6a411679&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf17178c&n=2&orderby= response: body: - string: '{"repositories": ["repo7bda1b05", "repo7cee1b11"]}' + string: '{"repositories": ["repoaf8317b0", "repoc1b812f4"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '49' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:04 GMT + date: Tue, 17 Aug 2021 18:17:43 GMT docker-distribution-api-version: registry/2.0 - link: ; rel="next" + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo6a411679&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repoaf17178c&n=2&orderby= - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo7cee1b11&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoc1b812f4&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -885,7 +1128,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:04 GMT + date: Tue, 17 Aug 2021 18:17:43 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -894,606 +1137,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo7cee1b11&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repoc1b812f4&n=2&orderby= - request: body: - grant_type: refresh_token - refresh_token: REDACTED - scope: registry:catalog:* - service: fake_url.azurecr.io + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST - uri: https://fake_url.azurecr.io/oauth2/token + uri: https://fake_url.azurecr.io/oauth2/exchange response: body: - string: '{"access_token": "REDACTED"}' + string: '{"refresh_token": "REDACTED"}' headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:04 GMT + date: Tue, 17 Aug 2021 18:17:43 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.433333' + x-ms-ratelimit-remaining-calls-per-second: '166.25' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: - body: null + body: + grant_type: refresh_token + refresh_token: REDACTED + scope: registry:catalog:* + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo7cee1b11&n=2&orderby= - response: - body: - string: '{"repositories": ["repo80c61ece", "repo84e316ff"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:04 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo7cee1b11&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo84e316ff&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:04 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo84e316ff&n=2&orderby= -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: registry:catalog:* - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:05 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.416667' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo84e316ff&n=2&orderby= - response: - body: - string: '{"repositories": ["repo8b5a11da", "repo93d41b55"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:05 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo84e316ff&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo93d41b55&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:05 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo93d41b55&n=2&orderby= -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: registry:catalog:* - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:05 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.4' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo93d41b55&n=2&orderby= - response: - body: - string: '{"repositories": ["repo99be175b", "repo9b321760"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:06 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo93d41b55&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo9b321760&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:06 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo9b321760&n=2&orderby= -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: registry:catalog:* - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:06 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.383333' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo9b321760&n=2&orderby= - response: - body: - string: '{"repositories": ["repo9cb4121e", "repoaf17178c"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:06 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo9b321760&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf17178c&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:06 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf17178c&n=2&orderby= -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: registry:catalog:* - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:06 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.366667' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf17178c&n=2&orderby= - response: - body: - string: '{"repositories": ["repoaf8812b0", "repoaf9517b2"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:07 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf17178c&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf9517b2&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:07 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf9517b2&n=2&orderby= -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: registry:catalog:* - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:07 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.35' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf9517b2&n=2&orderby= - response: - body: - string: '{"repositories": ["repob0a917be", "repob22512e7"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:07 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoaf9517b2&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repob22512e7&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:07 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repob22512e7&n=2&orderby= -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: registry:catalog:* - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:07 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.333333' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repob22512e7&n=2&orderby= - response: - body: - string: '{"repositories": ["repoc1b5131a", "repoc1b812f4"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:07 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repob22512e7&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoc1b812f4&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:08 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoc1b812f4&n=2&orderby= -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: registry:catalog:* - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -1502,219 +1184,51 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:08 GMT + date: Tue, 17 Aug 2021 18:17:43 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.316667' + x-ms-ratelimit-remaining-calls-per-second: '166.233333' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoc1b812f4&n=2&orderby= response: body: - string: '{"repositories": ["repoc28d1326", "repod2be1c42"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:08 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoc1b812f4&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repod2be1c42&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:08 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repod2be1c42&n=2&orderby= -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: registry:catalog:* - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:08 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.3' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repod2be1c42&n=2&orderby= - response: - body: - string: '{"repositories": ["repodf771888", "repoe08b1894"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:08 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repod2be1c42&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoe08b1894&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:09 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoe08b1894&n=2&orderby= -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: registry:catalog:* - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:09 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.283333' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoe08b1894&n=2&orderby= - response: - body: - string: '{"repositories": ["repoeb7113db", "repof94c18ea"]}' + string: '{"repositories": ["repodf771888", "repoec051cb9"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '49' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:09 GMT + date: Tue, 17 Aug 2021 18:17:43 GMT docker-distribution-api-version: registry/2.0 - link: ; rel="next" + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoe08b1894&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repoc1b812f4&n=2&orderby= - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repof94c18ea&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoec051cb9&n=2&orderby= response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -1725,7 +1239,7 @@ interactions: connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:09 GMT + date: Tue, 17 Aug 2021 18:17:43 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -1734,102 +1248,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repof94c18ea&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repoec051cb9&n=2&orderby= - request: body: - grant_type: refresh_token - refresh_token: REDACTED - scope: registry:catalog:* - service: fake_url.azurecr.io + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST - uri: https://fake_url.azurecr.io/oauth2/token + uri: https://fake_url.azurecr.io/oauth2/exchange response: body: - string: '{"access_token": "REDACTED"}' + string: '{"refresh_token": "REDACTED"}' headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:09 GMT + date: Tue, 17 Aug 2021 18:17:43 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.266667' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repof94c18ea&n=2&orderby= - response: - body: - string: '{"repositories": ["repofa2418f6", "repos6ce51658"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '50' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:09 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff + x-ms-ratelimit-remaining-calls-per-second: '166.216667' status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repof94c18ea&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repos6ce51658&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:09 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repos6ce51658&n=2&orderby= + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: registry:catalog:* - service: fake_url.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -1838,33 +1295,33 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:10 GMT + date: Tue, 17 Aug 2021 18:17:43 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.25' + x-ms-ratelimit-remaining-calls-per-second: '166.2' status: code: 200 message: OK - url: https://fake_url.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b2 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repos6ce51658&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoec051cb9&n=2&orderby= response: body: - string: '{"repositories": ["reposetb7cc1bf8", "reposetmani160e197b"]}' + string: '{"repositories": ["repof94c18ea"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '59' + content-length: '34' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:11:10 GMT + date: Tue, 17 Aug 2021 18:17:43 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -1872,5 +1329,5 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repos6ce51658&n=2&orderby= + url: https://yalinlitests.azurecr.io/acr/v1/_catalog?last=repoec051cb9&n=2&orderby= version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_tag_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_tag_properties.yaml index 9fa16fa12d78..b0169e7e2b98 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_tag_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_tag_properties.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo13d41966/_tags response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:22:54 GMT + date: Tue, 17 Aug 2021 18:18:08 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repo13d41966/_tags + url: https://yalinlitests.azurecr.io/acr/v1/repo13d41966/_tags - request: body: access_token: REDACTED grant_type: access_token - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:22:55 GMT + date: Tue, 17 Aug 2021 18:18:08 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.6' + x-ms-ratelimit-remaining-calls-per-second: '166.366667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo13d41966:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,49 +74,49 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:22:55 GMT + date: Tue, 17 Aug 2021 18:18:08 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.583333' + x-ms-ratelimit-remaining-calls-per-second: '165.883333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo13d41966/_tags response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo13d41966", "tags": - [{"name": "tag13d419660", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:22:30.4105902Z", "lastUpdateTime": "2021-05-28T15:22:30.4105902Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo13d41966", + "tags": [{"name": "tag13d419660", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:17:48.0880894Z", "lastUpdateTime": "2021-08-17T18:17:48.0880894Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag13d419661", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:22:29.9910523Z", "lastUpdateTime": "2021-05-28T15:22:29.9910523Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:17:48.3246693Z", "lastUpdateTime": "2021-08-17T18:17:48.3246693Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag13d419662", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:22:30.183776Z", "lastUpdateTime": "2021-05-28T15:22:30.183776Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:17:49.5979132Z", "lastUpdateTime": "2021-08-17T18:17:49.5979132Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag13d419663", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:22:30.0498235Z", "lastUpdateTime": "2021-05-28T15:22:30.0498235Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:17:48.9649633Z", "lastUpdateTime": "2021-08-17T18:17:48.9649633Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1345' + content-length: '1351' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:22:56 GMT + date: Tue, 17 Aug 2021 18:18:08 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -124,5 +124,5 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repo13d41966/_tags + url: https://yalinlitests.azurecr.io/acr/v1/repo13d41966/_tags version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_tag_properties_order_ascending.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_tag_properties_order_ascending.yaml index 168f20bba2d2..37f4c786f34c 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_tag_properties_order_ascending.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_tag_properties_order_ascending.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoe1a41fec/_tags?orderby=timeasc response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:23:31 GMT + date: Tue, 17 Aug 2021 18:18:33 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoe1a41fec/_tags?orderby=timeasc + url: https://yalinlitests.azurecr.io/acr/v1/repoe1a41fec/_tags?orderby=timeasc - request: body: access_token: REDACTED grant_type: access_token - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:23:33 GMT + date: Tue, 17 Aug 2021 18:18:33 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.583333' + x-ms-ratelimit-remaining-calls-per-second: '165.866667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoe1a41fec:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,41 +74,41 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:23:33 GMT + date: Tue, 17 Aug 2021 18:18:33 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.566667' + x-ms-ratelimit-remaining-calls-per-second: '165.85' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoe1a41fec/_tags?orderby=timeasc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoe1a41fec", "tags": - [{"name": "tage1a41fec0", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:23:08.0377213Z", "lastUpdateTime": "2021-05-28T15:23:08.0377213Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoe1a41fec", + "tags": [{"name": "tage1a41fec3", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:18:13.1460623Z", "lastUpdateTime": "2021-08-17T18:18:13.1460623Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"name": "tage1a41fec3", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:23:09.2257705Z", "lastUpdateTime": "2021-05-28T15:23:09.2257705Z", + true, "readEnabled": true, "listEnabled": true}}, {"name": "tage1a41fec2", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:18:14.69913Z", "lastUpdateTime": "2021-08-17T18:18:14.69913Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tage1a41fec1", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:23:09.2959961Z", "lastUpdateTime": "2021-05-28T15:23:09.2959961Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:18:14.7617981Z", "lastUpdateTime": "2021-08-17T18:18:14.7617981Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"name": "tage1a41fec2", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:23:09.6689527Z", "lastUpdateTime": "2021-05-28T15:23:09.6689527Z", + true, "readEnabled": true, "listEnabled": true}}, {"name": "tage1a41fec0", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:18:15.2783334Z", "lastUpdateTime": "2021-08-17T18:18:15.2783334Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: @@ -116,7 +116,7 @@ interactions: connection: keep-alive content-length: '1347' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:23:33 GMT + date: Tue, 17 Aug 2021 18:18:33 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -124,14 +124,14 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoe1a41fec/_tags?orderby=timeasc + url: https://yalinlitests.azurecr.io/acr/v1/repoe1a41fec/_tags?orderby=timeasc - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoe1a41fec/_tags?orderby=timeasc response: @@ -144,7 +144,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:23:33 GMT + date: Tue, 17 Aug 2021 18:18:34 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -153,18 +153,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoe1a41fec/_tags?orderby=timeasc + url: https://yalinlitests.azurecr.io/acr/v1/repoe1a41fec/_tags?orderby=timeasc +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:18:34 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.833333' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoe1a41fec:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -173,41 +200,41 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:23:33 GMT + date: Tue, 17 Aug 2021 18:18:34 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.55' + x-ms-ratelimit-remaining-calls-per-second: '165.816667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoe1a41fec/_tags?orderby=timeasc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoe1a41fec", "tags": - [{"name": "tage1a41fec0", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:23:08.0377213Z", "lastUpdateTime": "2021-05-28T15:23:08.0377213Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoe1a41fec", + "tags": [{"name": "tage1a41fec3", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:18:13.1460623Z", "lastUpdateTime": "2021-08-17T18:18:13.1460623Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"name": "tage1a41fec3", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:23:09.2257705Z", "lastUpdateTime": "2021-05-28T15:23:09.2257705Z", + true, "readEnabled": true, "listEnabled": true}}, {"name": "tage1a41fec2", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:18:14.69913Z", "lastUpdateTime": "2021-08-17T18:18:14.69913Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tage1a41fec1", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:23:09.2959961Z", "lastUpdateTime": "2021-05-28T15:23:09.2959961Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:18:14.7617981Z", "lastUpdateTime": "2021-08-17T18:18:14.7617981Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"name": "tage1a41fec2", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T15:23:09.6689527Z", "lastUpdateTime": "2021-05-28T15:23:09.6689527Z", + true, "readEnabled": true, "listEnabled": true}}, {"name": "tage1a41fec0", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:18:15.2783334Z", "lastUpdateTime": "2021-08-17T18:18:15.2783334Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: @@ -215,7 +242,7 @@ interactions: connection: keep-alive content-length: '1347' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:23:34 GMT + date: Tue, 17 Aug 2021 18:18:34 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -223,5 +250,5 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoe1a41fec/_tags?orderby=timeasc + url: https://yalinlitests.azurecr.io/acr/v1/repoe1a41fec/_tags?orderby=timeasc version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_tag_properties_order_descending.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_tag_properties_order_descending.yaml index bcabd6a25ec1..c58c3f520338 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_tag_properties_order_descending.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_tag_properties_order_descending.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo1ff2054/_tags?orderby=timedesc response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '214' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:16:36 GMT + date: Tue, 17 Aug 2021 18:18:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repo1ff2054/_tags?orderby=timedesc + url: https://yalinlitests.azurecr.io/acr/v1/repo1ff2054/_tags?orderby=timedesc - request: body: access_token: REDACTED grant_type: access_token - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:16:37 GMT + date: Tue, 17 Aug 2021 18:18:58 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.316667' + x-ms-ratelimit-remaining-calls-per-second: '166.15' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo1ff2054:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,49 +74,49 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:16:37 GMT + date: Tue, 17 Aug 2021 18:18:58 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.233333' + x-ms-ratelimit-remaining-calls-per-second: '166' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo1ff2054/_tags?orderby=timedesc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo1ff2054", "tags": - [{"name": "tag1ff20541", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T14:52:15.4057208Z", "lastUpdateTime": "2021-05-28T14:52:15.4057208Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo1ff2054", + "tags": [{"name": "tag1ff20543", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:18:39.2355315Z", "lastUpdateTime": "2021-08-17T18:18:39.2355315Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"name": "tag1ff20543", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T14:52:13.7768696Z", "lastUpdateTime": "2021-05-28T14:52:13.7768696Z", + true, "readEnabled": true, "listEnabled": true}}, {"name": "tag1ff20541", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:18:38.6487239Z", "lastUpdateTime": "2021-08-17T18:18:38.6487239Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag1ff20542", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T14:52:13.5601096Z", "lastUpdateTime": "2021-05-28T14:52:13.5601096Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:18:38.4331879Z", "lastUpdateTime": "2021-08-17T18:18:38.4331879Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag1ff20540", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T14:52:12.619986Z", "lastUpdateTime": "2021-05-28T14:52:12.619986Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:18:38.2658005Z", "lastUpdateTime": "2021-08-17T18:18:38.2658005Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1340' + content-length: '1346' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:16:37 GMT + date: Tue, 17 Aug 2021 18:18:59 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -124,14 +124,14 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repo1ff2054/_tags?orderby=timedesc + url: https://yalinlitests.azurecr.io/acr/v1/repo1ff2054/_tags?orderby=timedesc - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo1ff2054/_tags?orderby=timedesc response: @@ -144,7 +144,7 @@ interactions: connection: keep-alive content-length: '214' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:16:38 GMT + date: Tue, 17 Aug 2021 18:18:59 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -153,18 +153,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repo1ff2054/_tags?orderby=timedesc + url: https://yalinlitests.azurecr.io/acr/v1/repo1ff2054/_tags?orderby=timedesc +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:18:59 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.983333' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo1ff2054:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -173,49 +200,49 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:16:38 GMT + date: Tue, 17 Aug 2021 18:18:59 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.216667' + x-ms-ratelimit-remaining-calls-per-second: '165.966667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo1ff2054/_tags?orderby=timedesc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo1ff2054", "tags": - [{"name": "tag1ff20541", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T14:52:15.4057208Z", "lastUpdateTime": "2021-05-28T14:52:15.4057208Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo1ff2054", + "tags": [{"name": "tag1ff20543", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:18:39.2355315Z", "lastUpdateTime": "2021-08-17T18:18:39.2355315Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - true, "readEnabled": true, "listEnabled": true}}, {"name": "tag1ff20543", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T14:52:13.7768696Z", "lastUpdateTime": "2021-05-28T14:52:13.7768696Z", + true, "readEnabled": true, "listEnabled": true}}, {"name": "tag1ff20541", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:18:38.6487239Z", "lastUpdateTime": "2021-08-17T18:18:38.6487239Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag1ff20542", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T14:52:13.5601096Z", "lastUpdateTime": "2021-05-28T14:52:13.5601096Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:18:38.4331879Z", "lastUpdateTime": "2021-08-17T18:18:38.4331879Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"name": "tag1ff20540", - "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-28T14:52:12.619986Z", "lastUpdateTime": "2021-05-28T14:52:12.619986Z", + "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:18:38.2658005Z", "lastUpdateTime": "2021-08-17T18:18:38.2658005Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1340' + content-length: '1346' content-type: application/json; charset=utf-8 - date: Fri, 28 May 2021 15:16:38 GMT + date: Tue, 17 Aug 2021 18:18:59 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -223,5 +250,5 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repo1ff2054/_tags?orderby=timedesc + url: https://yalinlitests.azurecr.io/acr/v1/repo1ff2054/_tags?orderby=timedesc version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_manifest_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_manifest_properties.yaml index 3344eb85b463..1c004f8f28a9 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_manifest_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_manifest_properties.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:27 GMT + date: Tue, 17 Aug 2021 18:19:23 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 + url: https://yalinlitests.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 - request: body: access_token: REDACTED grant_type: access_token - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:28 GMT + date: Tue, 17 Aug 2021 18:19:23 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.483333' + x-ms-ratelimit-remaining-calls-per-second: '166.283333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repocfba1c48:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,37 +74,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:29 GMT + date: Tue, 17 Aug 2021 18:19:23 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.3' + x-ms-ratelimit-remaining-calls-per-second: '166.266667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repocfba1c48", "tag": - {"name": "tagcfba1c48", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T21:56:02.6565798Z", "lastUpdateTime": "2021-05-19T21:56:02.6565798Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repocfba1c48", + "tag": {"name": "tagcfba1c48", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:19:02.6410671Z", "lastUpdateTime": "2021-08-17T18:19:02.6410671Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '386' + content-length: '390' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:29 GMT + date: Tue, 17 Aug 2021 18:19:23 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -112,16 +112,16 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 + url: https://yalinlitests.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -132,7 +132,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:29 GMT + date: Tue, 17 Aug 2021 18:19:23 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -141,18 +141,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:19:24 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.25' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repocfba1c48:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -161,48 +188,49 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:29 GMT + date: Tue, 17 Aug 2021 18:19:24 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.283333' + x-ms-ratelimit-remaining-calls-per-second: '166.233333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repocfba1c48", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-19T21:56:02.4786001Z", "lastUpdateTime": - "2021-05-19T21:56:02.4786001Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repocfba1c48", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:19:02.5253292Z", "lastUpdateTime": + "2021-08-17T18:19:02.5253292Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tagcfba1c48"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1572' + content-length: '1699' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:29 GMT + date: Tue, 17 Aug 2021 18:19:24 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -210,14 +238,14 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 response: @@ -230,7 +258,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:29 GMT + date: Tue, 17 Aug 2021 18:19:24 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -239,18 +267,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 + url: https://yalinlitests.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:19:24 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.216667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repocfba1c48:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -259,37 +314,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:30 GMT + date: Tue, 17 Aug 2021 18:19:24 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.266667' + x-ms-ratelimit-remaining-calls-per-second: '166.2' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repocfba1c48", "tag": - {"name": "tagcfba1c48", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T21:56:02.6565798Z", "lastUpdateTime": "2021-05-19T21:56:02.6565798Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repocfba1c48", + "tag": {"name": "tagcfba1c48", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:19:02.6410671Z", "lastUpdateTime": "2021-08-17T18:19:02.6410671Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '386' + content-length: '390' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:30 GMT + date: Tue, 17 Aug 2021 18:19:24 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -297,7 +352,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 + url: https://yalinlitests.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 - request: body: '{"deleteEnabled": false, "writeEnabled": false, "listEnabled": false, "readEnabled": false}' @@ -309,9 +364,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -322,7 +377,7 @@ interactions: connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:30 GMT + date: Tue, 17 Aug 2021 18:19:24 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -331,18 +386,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:19:24 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.183333' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repocfba1c48:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -351,15 +433,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:30 GMT + date: Tue, 17 Aug 2021 18:19:24 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.25' + x-ms-ratelimit-remaining-calls-per-second: '166.166667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"deleteEnabled": false, "writeEnabled": false, "listEnabled": false, "readEnabled": false}' @@ -371,33 +453,34 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repocfba1c48", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-19T21:56:02.4786001Z", "lastUpdateTime": - "2021-05-19T21:56:02.4786001Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repocfba1c48", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:19:02.5253292Z", "lastUpdateTime": + "2021-08-17T18:19:02.5253292Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tagcfba1c48"], "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": false}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1576' + content-length: '1703' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:30 GMT + date: Tue, 17 Aug 2021 18:19:24 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -405,14 +488,14 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 response: @@ -425,7 +508,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:31 GMT + date: Tue, 17 Aug 2021 18:19:24 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -434,18 +517,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 + url: https://yalinlitests.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:19:24 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.15' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repocfba1c48:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -454,37 +564,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:31 GMT + date: Tue, 17 Aug 2021 18:19:24 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.233333' + x-ms-ratelimit-remaining-calls-per-second: '166.133333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repocfba1c48", "tag": - {"name": "tagcfba1c48", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T21:56:02.6565798Z", "lastUpdateTime": "2021-05-19T21:56:02.6565798Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repocfba1c48", + "tag": {"name": "tagcfba1c48", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:19:02.6410671Z", "lastUpdateTime": "2021-08-17T18:19:02.6410671Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '386' + content-length: '390' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:31 GMT + date: Tue, 17 Aug 2021 18:19:25 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -492,7 +602,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 + url: https://yalinlitests.azurecr.io/acr/v1/repocfba1c48/_tags/tagcfba1c48 - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": true}' @@ -504,9 +614,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -517,7 +627,7 @@ interactions: connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:31 GMT + date: Tue, 17 Aug 2021 18:19:25 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -526,18 +636,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:19:25 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.116667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repocfba1c48:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -546,15 +683,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:31 GMT + date: Tue, 17 Aug 2021 18:19:25 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.216667' + x-ms-ratelimit-remaining-calls-per-second: '166.1' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": true}' @@ -566,33 +703,34 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repocfba1c48", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-19T21:56:02.4786001Z", "lastUpdateTime": - "2021-05-19T21:56:02.4786001Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repocfba1c48", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:19:02.5253292Z", "lastUpdateTime": + "2021-08-17T18:19:02.5253292Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tagcfba1c48"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1572' + content-length: '1699' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:56:32 GMT + date: Tue, 17 Aug 2021 18:19:25 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -600,5 +738,5 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repocfba1c48/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_manifest_properties_kwargs.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_manifest_properties_kwargs.yaml index 3273368d6045..173b9faf5bc8 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_manifest_properties_kwargs.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_manifest_properties_kwargs.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:22 GMT + date: Tue, 17 Aug 2021 18:19:49 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 - request: body: access_token: REDACTED grant_type: access_token - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:24 GMT + date: Tue, 17 Aug 2021 18:19:49 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.65' + x-ms-ratelimit-remaining-calls-per-second: '165.916667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoa14a1f36:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,37 +74,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:24 GMT + date: Tue, 17 Aug 2021 18:19:49 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.633333' + x-ms-ratelimit-remaining-calls-per-second: '165.9' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoa14a1f36", "tag": - {"name": "taga14a1f36", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T18:00:56.9292148Z", "lastUpdateTime": "2021-05-20T18:00:56.9292148Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoa14a1f36", + "tag": {"name": "taga14a1f36", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:19:29.769511Z", "lastUpdateTime": "2021-08-17T18:19:29.769511Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '386' + content-length: '388' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:24 GMT + date: Tue, 17 Aug 2021 18:19:49 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -112,16 +112,16 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -132,7 +132,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:24 GMT + date: Tue, 17 Aug 2021 18:19:49 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -141,18 +141,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:19:49 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.883333' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoa14a1f36:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -161,48 +188,49 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:24 GMT + date: Tue, 17 Aug 2021 18:19:49 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.616667' + x-ms-ratelimit-remaining-calls-per-second: '165.866667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoa14a1f36", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-20T18:00:57.3707292Z", "lastUpdateTime": - "2021-05-20T18:00:57.3707292Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoa14a1f36", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:19:29.819869Z", "lastUpdateTime": + "2021-08-17T18:19:29.819869Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["taga14a1f36"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1572' + content-length: '1697' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:24 GMT + date: Tue, 17 Aug 2021 18:19:49 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -210,14 +238,14 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 response: @@ -230,7 +258,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:24 GMT + date: Tue, 17 Aug 2021 18:19:49 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -239,18 +267,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:19:50 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.85' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoa14a1f36:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -259,37 +314,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:25 GMT + date: Tue, 17 Aug 2021 18:19:50 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.6' + x-ms-ratelimit-remaining-calls-per-second: '165.833333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoa14a1f36", "tag": - {"name": "taga14a1f36", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T18:00:56.9292148Z", "lastUpdateTime": "2021-05-20T18:00:56.9292148Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoa14a1f36", + "tag": {"name": "taga14a1f36", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:19:29.769511Z", "lastUpdateTime": "2021-08-17T18:19:29.769511Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '386' + content-length: '388' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:25 GMT + date: Tue, 17 Aug 2021 18:19:50 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -297,7 +352,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 - request: body: '{"deleteEnabled": false}' headers: @@ -308,9 +363,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -321,7 +376,7 @@ interactions: connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:25 GMT + date: Tue, 17 Aug 2021 18:19:50 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -330,18 +385,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:19:50 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.816667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoa14a1f36:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -350,15 +432,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:25 GMT + date: Tue, 17 Aug 2021 18:19:50 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.583333' + x-ms-ratelimit-remaining-calls-per-second: '165.8' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"deleteEnabled": false}' headers: @@ -369,33 +451,34 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoa14a1f36", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-20T18:00:57.3707292Z", "lastUpdateTime": - "2021-05-20T18:00:57.3707292Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoa14a1f36", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:19:29.819869Z", "lastUpdateTime": + "2021-08-17T18:19:29.819869Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["taga14a1f36"], "changeableAttributes": {"deleteEnabled": false, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1573' + content-length: '1698' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:25 GMT + date: Tue, 17 Aug 2021 18:19:50 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -403,14 +486,14 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 response: @@ -423,7 +506,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:25 GMT + date: Tue, 17 Aug 2021 18:19:50 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -432,18 +515,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:19:50 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.783333' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoa14a1f36:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -452,37 +562,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:25 GMT + date: Tue, 17 Aug 2021 18:19:50 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.566667' + x-ms-ratelimit-remaining-calls-per-second: '165.766667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoa14a1f36", "tag": - {"name": "taga14a1f36", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T18:00:56.9292148Z", "lastUpdateTime": "2021-05-20T18:00:56.9292148Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoa14a1f36", + "tag": {"name": "taga14a1f36", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:19:29.769511Z", "lastUpdateTime": "2021-08-17T18:19:29.769511Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '386' + content-length: '388' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:26 GMT + date: Tue, 17 Aug 2021 18:19:50 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -490,7 +600,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 - request: body: '{"readEnabled": false}' headers: @@ -501,9 +611,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -514,7 +624,7 @@ interactions: connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:26 GMT + date: Tue, 17 Aug 2021 18:19:50 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -523,18 +633,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:19:50 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.75' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoa14a1f36:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -543,15 +680,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:26 GMT + date: Tue, 17 Aug 2021 18:19:50 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.55' + x-ms-ratelimit-remaining-calls-per-second: '165.733333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"readEnabled": false}' headers: @@ -562,33 +699,34 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoa14a1f36", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-20T18:00:57.3707292Z", "lastUpdateTime": - "2021-05-20T18:00:57.3707292Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoa14a1f36", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:19:29.819869Z", "lastUpdateTime": + "2021-08-17T18:19:29.819869Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["taga14a1f36"], "changeableAttributes": {"deleteEnabled": false, "writeEnabled": true, "readEnabled": false, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1574' + content-length: '1699' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:26 GMT + date: Tue, 17 Aug 2021 18:19:50 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -596,14 +734,14 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 response: @@ -616,7 +754,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:26 GMT + date: Tue, 17 Aug 2021 18:19:51 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -625,18 +763,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:19:51 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.716667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoa14a1f36:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -645,37 +810,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:26 GMT + date: Tue, 17 Aug 2021 18:19:51 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.533333' + x-ms-ratelimit-remaining-calls-per-second: '165.7' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoa14a1f36", "tag": - {"name": "taga14a1f36", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T18:00:56.9292148Z", "lastUpdateTime": "2021-05-20T18:00:56.9292148Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoa14a1f36", + "tag": {"name": "taga14a1f36", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:19:29.769511Z", "lastUpdateTime": "2021-08-17T18:19:29.769511Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '386' + content-length: '388' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:27 GMT + date: Tue, 17 Aug 2021 18:19:51 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -683,7 +848,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 - request: body: '{"writeEnabled": false}' headers: @@ -694,9 +859,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -707,7 +872,7 @@ interactions: connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:27 GMT + date: Tue, 17 Aug 2021 18:19:51 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -716,18 +881,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:19:51 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.683333' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoa14a1f36:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -736,15 +928,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:27 GMT + date: Tue, 17 Aug 2021 18:19:51 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.516667' + x-ms-ratelimit-remaining-calls-per-second: '165.666667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"writeEnabled": false}' headers: @@ -755,33 +947,34 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoa14a1f36", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-20T18:00:57.3707292Z", "lastUpdateTime": - "2021-05-20T18:00:57.3707292Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoa14a1f36", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:19:29.819869Z", "lastUpdateTime": + "2021-08-17T18:19:29.819869Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["taga14a1f36"], "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1575' + content-length: '1700' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:27 GMT + date: Tue, 17 Aug 2021 18:19:51 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -789,14 +982,14 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 response: @@ -809,7 +1002,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:27 GMT + date: Tue, 17 Aug 2021 18:19:51 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -818,18 +1011,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:19:51 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.65' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoa14a1f36:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -838,37 +1058,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:28 GMT + date: Tue, 17 Aug 2021 18:19:51 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.5' + x-ms-ratelimit-remaining-calls-per-second: '165.633333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoa14a1f36", "tag": - {"name": "taga14a1f36", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T18:00:56.9292148Z", "lastUpdateTime": "2021-05-20T18:00:56.9292148Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoa14a1f36", + "tag": {"name": "taga14a1f36", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:19:29.769511Z", "lastUpdateTime": "2021-08-17T18:19:29.769511Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '386' + content-length: '388' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:28 GMT + date: Tue, 17 Aug 2021 18:19:51 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -876,7 +1096,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 - request: body: '{"listEnabled": false}' headers: @@ -887,9 +1107,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -900,7 +1120,7 @@ interactions: connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:28 GMT + date: Tue, 17 Aug 2021 18:19:51 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -909,18 +1129,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:19:51 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.616667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoa14a1f36:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -929,15 +1176,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:28 GMT + date: Tue, 17 Aug 2021 18:19:51 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.483333' + x-ms-ratelimit-remaining-calls-per-second: '165.6' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"listEnabled": false}' headers: @@ -948,33 +1195,34 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoa14a1f36", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-20T18:00:57.3707292Z", "lastUpdateTime": - "2021-05-20T18:00:57.3707292Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoa14a1f36", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:19:29.819869Z", "lastUpdateTime": + "2021-08-17T18:19:29.819869Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["taga14a1f36"], "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": false}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1576' + content-length: '1701' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:28 GMT + date: Tue, 17 Aug 2021 18:19:51 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -982,14 +1230,14 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 response: @@ -1002,7 +1250,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:28 GMT + date: Tue, 17 Aug 2021 18:19:51 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -1011,18 +1259,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:19:52 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.583333' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoa14a1f36:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -1031,37 +1306,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:29 GMT + date: Tue, 17 Aug 2021 18:19:52 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.466667' + x-ms-ratelimit-remaining-calls-per-second: '165.566667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoa14a1f36", "tag": - {"name": "taga14a1f36", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T18:00:56.9292148Z", "lastUpdateTime": "2021-05-20T18:00:56.9292148Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoa14a1f36", + "tag": {"name": "taga14a1f36", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:19:29.769511Z", "lastUpdateTime": "2021-08-17T18:19:29.769511Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '386' + content-length: '388' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:29 GMT + date: Tue, 17 Aug 2021 18:19:52 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -1069,7 +1344,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_tags/taga14a1f36 - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": true}' @@ -1081,9 +1356,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, @@ -1094,7 +1369,7 @@ interactions: connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:29 GMT + date: Tue, 17 Aug 2021 18:19:52 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -1103,18 +1378,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:19:52 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.55' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoa14a1f36:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -1123,15 +1425,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:29 GMT + date: Tue, 17 Aug 2021 18:19:52 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.45' + x-ms-ratelimit-remaining-calls-per-second: '165.533333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": true}' @@ -1143,33 +1445,34 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + uri: https://fake_url.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoa14a1f36", "manifest": - {"digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "imageSize": 5325, "createdTime": "2021-05-20T18:00:57.3707292Z", "lastUpdateTime": - "2021-05-20T18:00:57.3707292Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoa14a1f36", + "manifest": {"digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "imageSize": 5850, "createdTime": "2021-08-17T18:19:29.819869Z", "lastUpdateTime": + "2021-08-17T18:19:29.819869Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["taga14a1f36"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "architecture": "amd64", "os": "linux"}, {"digest": "sha256:58d91e6625a0ea837222f24da4ca00be9da3db45cee5b172135eaf271610f9eb", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:94b700b6ae5759e539e06fa6d483f5f0174067945f180cc1362cfda71c5fd722", + "architecture": "arm", "os": "linux"}, {"digest": "sha256:a10c347f4cc2924af832d319635d6d027ca8820ff683b6bcc728d825a37a7f69", "architecture": "arm64", "os": "linux"}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", "architecture": "386", "os": "linux"}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "architecture": "s390x", "os": "linux"}, {"digest": "sha256:7fed95756fe4ebeb6eb1d82c2176e0800a02807cc66fe48beb179e57c54ddcf1", + "architecture": "mips64le", "os": "linux"}, {"digest": "sha256:3e7d74d1c66c8f7dd5384f49bf0f8ab3e18e81e8d2a79218ed777c534b446552", + "architecture": "ppc64le", "os": "linux"}, {"digest": "sha256:b89e28f1d57f44064e96c4525e514f6f0498a433b83413538f79f82566d72114", + "architecture": "riscv64", "os": "linux"}, {"digest": "sha256:6d9fcdca25452c9a255f02c7d67eb28e8afbba2671f1e8f60b3b3585b7bdf172", + "architecture": "s390x", "os": "linux"}, {"digest": "sha256:e70692d3144e0ddb23e2ecf72d4b78f1e9ffcb32a9c863b98a35d43adfb42ad8", "architecture": "amd64", "os": "windows"}]}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '1572' + content-length: '1697' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:01:29 GMT + date: Tue, 17 Aug 2021 18:19:52 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -1177,5 +1480,5 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c + url: https://yalinlitests.azurecr.io/acr/v1/repoa14a1f36/_manifests/sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_properties.yaml index 5c8c325d55b5..9a5c6dc194a6 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_properties.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoe19b1892 response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 19:25:32 GMT + date: Tue, 17 Aug 2021 18:20:16 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoe19b1892 + url: https://yalinlitests.azurecr.io/acr/v1/repoe19b1892 - request: body: access_token: REDACTED grant_type: access_token - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 19:25:33 GMT + date: Tue, 17 Aug 2021 18:20:16 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.55' + x-ms-ratelimit-remaining-calls-per-second: '165.666667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoe19b1892:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,37 +74,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 19:25:33 GMT + date: Tue, 17 Aug 2021 18:20:16 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.4' + x-ms-ratelimit-remaining-calls-per-second: '165.65' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoe19b1892 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoe19b1892", "createdTime": - "2021-05-20T19:25:06.3749913Z", "lastUpdateTime": "2021-05-20T19:25:05.806487Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoe19b1892", + "createdTime": "2021-08-17T18:19:55.9502131Z", "lastUpdateTime": "2021-08-17T18:19:54.2472558Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": false}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '314' + content-length: '319' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 19:25:33 GMT + date: Tue, 17 Aug 2021 18:20:16 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -112,19 +112,19 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoe19b1892 + url: https://yalinlitests.azurecr.io/acr/v1/repoe19b1892 - request: body: '{"deleteEnabled": false, "writeEnabled": false, "listEnabled": false, "readEnabled": - false, "teleportEnabled": false}' + false}' headers: Accept: - application/json Content-Length: - - '117' + - '91' Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoe19b1892 response: @@ -137,7 +137,7 @@ interactions: connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 19:25:33 GMT + date: Tue, 17 Aug 2021 18:20:16 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -146,18 +146,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoe19b1892 + url: https://yalinlitests.azurecr.io/acr/v1/repoe19b1892 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:20:17 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.633333' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoe19b1892:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -166,42 +193,42 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 19:25:33 GMT + date: Tue, 17 Aug 2021 18:20:17 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.383333' + x-ms-ratelimit-remaining-calls-per-second: '165.616667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"deleteEnabled": false, "writeEnabled": false, "listEnabled": false, "readEnabled": - false, "teleportEnabled": false}' + false}' headers: Accept: - application/json Content-Length: - - '117' + - '91' Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoe19b1892 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoe19b1892", "createdTime": - "2021-05-20T19:25:06.3749913Z", "lastUpdateTime": "2021-05-20T19:25:05.806487Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoe19b1892", + "createdTime": "2021-08-17T18:19:55.9502131Z", "lastUpdateTime": "2021-08-17T18:19:54.2472558Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": false, "teleportEnabled": false}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '318' + content-length: '323' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 19:25:34 GMT + date: Tue, 17 Aug 2021 18:20:17 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -209,19 +236,19 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoe19b1892 + url: https://yalinlitests.azurecr.io/acr/v1/repoe19b1892 - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": - true, "teleportEnabled": false}' + true}' headers: Accept: - application/json Content-Length: - - '113' + - '87' Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoe19b1892 response: @@ -234,7 +261,7 @@ interactions: connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 19:25:34 GMT + date: Tue, 17 Aug 2021 18:20:17 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -243,18 +270,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoe19b1892 + url: https://yalinlitests.azurecr.io/acr/v1/repoe19b1892 +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:20:17 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.6' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoe19b1892:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -263,42 +317,42 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 19:25:35 GMT + date: Tue, 17 Aug 2021 18:20:17 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.366667' + x-ms-ratelimit-remaining-calls-per-second: '165.583333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": - true, "teleportEnabled": false}' + true}' headers: Accept: - application/json Content-Length: - - '113' + - '87' Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoe19b1892 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoe19b1892", "createdTime": - "2021-05-20T19:25:06.3749913Z", "lastUpdateTime": "2021-05-20T19:25:05.806487Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoe19b1892", + "createdTime": "2021-08-17T18:19:55.9502131Z", "lastUpdateTime": "2021-08-17T18:19:54.2472558Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": false}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '314' + content-length: '319' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 19:25:35 GMT + date: Tue, 17 Aug 2021 18:20:17 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -306,5 +360,5 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoe19b1892 + url: https://yalinlitests.azurecr.io/acr/v1/repoe19b1892 version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_repository_properties_kwargs.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_repository_properties_kwargs.yaml index 6964f51cc383..4f64cbdd74ef 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_repository_properties_kwargs.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_repository_properties_kwargs.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoe568203f response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:02 GMT + date: Tue, 17 Aug 2021 18:20:41 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoe568203f + url: https://yalinlitests.azurecr.io/acr/v1/repoe568203f - request: body: access_token: REDACTED grant_type: access_token - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:03 GMT + date: Tue, 17 Aug 2021 18:20:42 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.55' + x-ms-ratelimit-remaining-calls-per-second: '165.366667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoe568203f:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,37 +74,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:03 GMT + date: Tue, 17 Aug 2021 18:20:42 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.3' + x-ms-ratelimit-remaining-calls-per-second: '165.35' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repoe568203f response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoe568203f", "createdTime": - "2021-05-20T17:59:22.367668Z", "lastUpdateTime": "2021-05-20T17:59:19.9950394Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": - false, "writeEnabled": false, "readEnabled": false, "listEnabled": false, - "teleportEnabled": false}}' + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoe568203f", + "createdTime": "2021-08-17T18:20:22.1156818Z", "lastUpdateTime": "2021-08-17T18:20:19.8147874Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": + false}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '318' + content-length: '319' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:03 GMT + date: Tue, 17 Aug 2021 18:20:42 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -112,19 +112,19 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoe568203f + url: https://yalinlitests.azurecr.io/acr/v1/repoe568203f - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": - true, "teleportEnabled": false}' + true}' headers: Accept: - application/json Content-Length: - - '113' + - '87' Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoe568203f response: @@ -137,7 +137,7 @@ interactions: connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:03 GMT + date: Tue, 17 Aug 2021 18:20:42 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -146,18 +146,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoe568203f + url: https://yalinlitests.azurecr.io/acr/v1/repoe568203f +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:20:42 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.333333' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoe568203f:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -166,42 +193,42 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:04 GMT + date: Tue, 17 Aug 2021 18:20:42 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.283333' + x-ms-ratelimit-remaining-calls-per-second: '165.316667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": - true, "teleportEnabled": false}' + true}' headers: Accept: - application/json Content-Length: - - '113' + - '87' Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoe568203f response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoe568203f", "createdTime": - "2021-05-20T17:59:22.367668Z", "lastUpdateTime": "2021-05-20T17:59:19.9950394Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoe568203f", + "createdTime": "2021-08-17T18:20:22.1156818Z", "lastUpdateTime": "2021-08-17T18:20:19.8147874Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": false}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '314' + content-length: '319' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:04 GMT + date: Tue, 17 Aug 2021 18:20:42 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -209,7 +236,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoe568203f + url: https://yalinlitests.azurecr.io/acr/v1/repoe568203f - request: body: '{"deleteEnabled": false}' headers: @@ -220,7 +247,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoe568203f response: @@ -233,7 +260,7 @@ interactions: connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:04 GMT + date: Tue, 17 Aug 2021 18:20:42 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -242,18 +269,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoe568203f + url: https://yalinlitests.azurecr.io/acr/v1/repoe568203f +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:20:42 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.3' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoe568203f:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -262,15 +316,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:05 GMT + date: Tue, 17 Aug 2021 18:20:42 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.266667' + x-ms-ratelimit-remaining-calls-per-second: '165.283333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"deleteEnabled": false}' headers: @@ -281,22 +335,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoe568203f response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoe568203f", "createdTime": - "2021-05-20T17:59:22.367668Z", "lastUpdateTime": "2021-05-20T17:59:19.9950394Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoe568203f", + "createdTime": "2021-08-17T18:20:22.1156818Z", "lastUpdateTime": "2021-08-17T18:20:19.8147874Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": false}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '315' + content-length: '320' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:05 GMT + date: Tue, 17 Aug 2021 18:20:42 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -304,7 +358,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoe568203f + url: https://yalinlitests.azurecr.io/acr/v1/repoe568203f - request: body: '{"readEnabled": false}' headers: @@ -315,7 +369,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoe568203f response: @@ -328,7 +382,7 @@ interactions: connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:05 GMT + date: Tue, 17 Aug 2021 18:20:42 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -337,18 +391,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoe568203f + url: https://yalinlitests.azurecr.io/acr/v1/repoe568203f +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:20:42 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.266667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoe568203f:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -357,15 +438,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:05 GMT + date: Tue, 17 Aug 2021 18:20:42 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.25' + x-ms-ratelimit-remaining-calls-per-second: '165.25' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"readEnabled": false}' headers: @@ -376,22 +457,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoe568203f response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoe568203f", "createdTime": - "2021-05-20T17:59:22.367668Z", "lastUpdateTime": "2021-05-20T17:59:19.9950394Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoe568203f", + "createdTime": "2021-08-17T18:20:22.1156818Z", "lastUpdateTime": "2021-08-17T18:20:19.8147874Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": true, "readEnabled": false, "listEnabled": true, "teleportEnabled": false}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '316' + content-length: '321' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:05 GMT + date: Tue, 17 Aug 2021 18:20:42 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -399,7 +480,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoe568203f + url: https://yalinlitests.azurecr.io/acr/v1/repoe568203f - request: body: '{"writeEnabled": false}' headers: @@ -410,7 +491,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoe568203f response: @@ -423,7 +504,7 @@ interactions: connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:05 GMT + date: Tue, 17 Aug 2021 18:20:42 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -432,18 +513,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoe568203f + url: https://yalinlitests.azurecr.io/acr/v1/repoe568203f +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:20:43 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.233333' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoe568203f:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -452,15 +560,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:06 GMT + date: Tue, 17 Aug 2021 18:20:43 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.233333' + x-ms-ratelimit-remaining-calls-per-second: '165.216667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"writeEnabled": false}' headers: @@ -471,22 +579,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoe568203f response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoe568203f", "createdTime": - "2021-05-20T17:59:22.367668Z", "lastUpdateTime": "2021-05-20T17:59:19.9950394Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoe568203f", + "createdTime": "2021-08-17T18:20:22.1156818Z", "lastUpdateTime": "2021-08-17T18:20:19.8147874Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": true, "teleportEnabled": false}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '317' + content-length: '322' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:06 GMT + date: Tue, 17 Aug 2021 18:20:43 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -494,7 +602,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoe568203f + url: https://yalinlitests.azurecr.io/acr/v1/repoe568203f - request: body: '{"listEnabled": false}' headers: @@ -505,7 +613,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoe568203f response: @@ -518,7 +626,7 @@ interactions: connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:06 GMT + date: Tue, 17 Aug 2021 18:20:43 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -527,18 +635,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoe568203f + url: https://yalinlitests.azurecr.io/acr/v1/repoe568203f +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:20:43 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.2' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoe568203f:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -547,15 +682,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:06 GMT + date: Tue, 17 Aug 2021 18:20:43 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.216667' + x-ms-ratelimit-remaining-calls-per-second: '165.183333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"listEnabled": false}' headers: @@ -566,22 +701,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoe568203f response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoe568203f", "createdTime": - "2021-05-20T17:59:22.367668Z", "lastUpdateTime": "2021-05-20T17:59:19.9950394Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoe568203f", + "createdTime": "2021-08-17T18:20:22.1156818Z", "lastUpdateTime": "2021-08-17T18:20:19.8147874Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": false, "teleportEnabled": false}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '318' + content-length: '323' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:06 GMT + date: Tue, 17 Aug 2021 18:20:43 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -589,7 +724,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoe568203f + url: https://yalinlitests.azurecr.io/acr/v1/repoe568203f - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": true}' @@ -601,7 +736,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoe568203f response: @@ -614,7 +749,7 @@ interactions: connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:07 GMT + date: Tue, 17 Aug 2021 18:20:43 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -623,18 +758,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repoe568203f + url: https://yalinlitests.azurecr.io/acr/v1/repoe568203f +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:20:43 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.166667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repoe568203f:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -643,15 +805,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:07 GMT + date: Tue, 17 Aug 2021 18:20:43 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.2' + x-ms-ratelimit-remaining-calls-per-second: '165.15' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": true}' @@ -663,22 +825,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repoe568203f response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repoe568203f", "createdTime": - "2021-05-20T17:59:22.367668Z", "lastUpdateTime": "2021-05-20T17:59:19.9950394Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repoe568203f", + "createdTime": "2021-08-17T18:20:22.1156818Z", "lastUpdateTime": "2021-08-17T18:20:19.8147874Z", + "manifestCount": 11, "tagCount": 1, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "teleportEnabled": false}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '314' + content-length: '319' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:07 GMT + date: Tue, 17 Aug 2021 18:20:43 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -686,5 +848,5 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repoe568203f + url: https://yalinlitests.azurecr.io/acr/v1/repoe568203f version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_tag_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_tag_properties.yaml index 870671bcc311..21a6c2d8e6b4 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_tag_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_tag_properties.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:57:46 GMT + date: Tue, 17 Aug 2021 18:21:07 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d + url: https://yalinlitests.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d - request: body: access_token: REDACTED grant_type: access_token - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,26 +46,26 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:57:47 GMT + date: Tue, 17 Aug 2021 18:21:08 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.583333' + x-ms-ratelimit-remaining-calls-per-second: '166.616667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo46ec1a2d:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,37 +74,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:57:48 GMT + date: Tue, 17 Aug 2021 18:21:08 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.466667' + x-ms-ratelimit-remaining-calls-per-second: '165.933333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo46ec1a2d", "tag": - {"name": "tag46ec1a2d", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T21:57:21.0725401Z", "lastUpdateTime": "2021-05-19T21:57:21.0725401Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo46ec1a2d", + "tag": {"name": "tag46ec1a2d", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:20:48.3652616Z", "lastUpdateTime": "2021-08-17T18:20:48.3652616Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '386' + content-length: '390' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:57:48 GMT + date: Tue, 17 Aug 2021 18:21:08 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -112,7 +112,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d + url: https://yalinlitests.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d - request: body: '{"deleteEnabled": false, "writeEnabled": false, "listEnabled": false, "readEnabled": false}' @@ -124,7 +124,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d response: @@ -137,7 +137,7 @@ interactions: connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:57:48 GMT + date: Tue, 17 Aug 2021 18:21:08 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -146,18 +146,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d + url: https://yalinlitests.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:21:08 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.916667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo46ec1a2d:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -166,15 +193,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:57:48 GMT + date: Tue, 17 Aug 2021 18:21:08 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.45' + x-ms-ratelimit-remaining-calls-per-second: '165.9' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"deleteEnabled": false, "writeEnabled": false, "listEnabled": false, "readEnabled": false}' @@ -186,22 +213,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo46ec1a2d", "tag": - {"name": "tag46ec1a2d", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T21:57:21.0725401Z", "lastUpdateTime": "2021-05-19T21:57:21.0725401Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo46ec1a2d", + "tag": {"name": "tag46ec1a2d", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:20:48.3652616Z", "lastUpdateTime": "2021-08-17T18:20:48.3652616Z", "signed": false, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": false}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '390' + content-length: '394' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:57:49 GMT + date: Tue, 17 Aug 2021 18:21:08 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -209,7 +236,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d + url: https://yalinlitests.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": true}' @@ -221,7 +248,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d response: @@ -234,7 +261,7 @@ interactions: connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:57:49 GMT + date: Tue, 17 Aug 2021 18:21:08 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -243,18 +270,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d + url: https://yalinlitests.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:21:08 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.883333' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo46ec1a2d:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -263,15 +317,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:57:49 GMT + date: Tue, 17 Aug 2021 18:21:08 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.433333' + x-ms-ratelimit-remaining-calls-per-second: '165.866667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": true}' @@ -283,22 +337,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo46ec1a2d", "tag": - {"name": "tag46ec1a2d", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-19T21:57:21.0725401Z", "lastUpdateTime": "2021-05-19T21:57:21.0725401Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo46ec1a2d", + "tag": {"name": "tag46ec1a2d", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:20:48.3652616Z", "lastUpdateTime": "2021-08-17T18:20:48.3652616Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '386' + content-length: '390' content-type: application/json; charset=utf-8 - date: Wed, 19 May 2021 21:57:49 GMT + date: Tue, 17 Aug 2021 18:21:08 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -306,5 +360,5 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d + url: https://yalinlitests.azurecr.io/acr/v1/repo46ec1a2d/_tags/tag46ec1a2d version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_tag_properties_kwargs.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_tag_properties_kwargs.yaml index 80c451a33022..cd8ba875bdbf 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_tag_properties_kwargs.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_update_tag_properties_kwargs.yaml @@ -5,7 +5,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b response: @@ -18,7 +18,7 @@ interactions: connection: keep-alive content-length: '214' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:38 GMT + date: Tue, 17 Aug 2021 18:21:33 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -27,17 +27,17 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b + url: https://yalinlitests.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b - request: body: access_token: REDACTED grant_type: access_token - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/exchange response: @@ -46,7 +46,7 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:39 GMT + date: Tue, 17 Aug 2021 18:21:33 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked @@ -54,18 +54,18 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/exchange + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo9bf1d1b:metadata_read - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -74,37 +74,37 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:40 GMT + date: Tue, 17 Aug 2021 18:21:33 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.566667' + x-ms-ratelimit-remaining-calls-per-second: '165.966667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: GET uri: https://fake_url.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo9bf1d1b", "tag": - {"name": "tag9bf1d1b", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T18:02:13.3032163Z", "lastUpdateTime": "2021-05-20T18:02:13.3032163Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo9bf1d1b", + "tag": {"name": "tag9bf1d1b", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:21:14.0410051Z", "lastUpdateTime": "2021-08-17T18:21:14.0410051Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '384' + content-length: '388' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:40 GMT + date: Tue, 17 Aug 2021 18:21:33 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -112,7 +112,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b + url: https://yalinlitests.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b - request: body: '{"deleteEnabled": false}' headers: @@ -123,7 +123,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b response: @@ -136,7 +136,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:40 GMT + date: Tue, 17 Aug 2021 18:21:33 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -145,18 +145,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b + url: https://yalinlitests.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:21:33 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.95' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo9bf1d1b:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -165,15 +192,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:40 GMT + date: Tue, 17 Aug 2021 18:21:33 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.55' + x-ms-ratelimit-remaining-calls-per-second: '165.933333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"deleteEnabled": false}' headers: @@ -184,22 +211,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo9bf1d1b", "tag": - {"name": "tag9bf1d1b", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T18:02:13.3032163Z", "lastUpdateTime": "2021-05-20T18:02:13.3032163Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo9bf1d1b", + "tag": {"name": "tag9bf1d1b", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:21:14.0410051Z", "lastUpdateTime": "2021-08-17T18:21:14.0410051Z", "signed": false, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '385' + content-length: '389' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:40 GMT + date: Tue, 17 Aug 2021 18:21:33 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -207,7 +234,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b + url: https://yalinlitests.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b - request: body: '{"readEnabled": false}' headers: @@ -218,7 +245,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b response: @@ -231,7 +258,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:41 GMT + date: Tue, 17 Aug 2021 18:21:34 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -240,18 +267,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b + url: https://yalinlitests.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:21:34 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.916667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo9bf1d1b:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -260,15 +314,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:41 GMT + date: Tue, 17 Aug 2021 18:21:34 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.533333' + x-ms-ratelimit-remaining-calls-per-second: '165.9' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"readEnabled": false}' headers: @@ -279,22 +333,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo9bf1d1b", "tag": - {"name": "tag9bf1d1b", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T18:02:13.3032163Z", "lastUpdateTime": "2021-05-20T18:02:13.3032163Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo9bf1d1b", + "tag": {"name": "tag9bf1d1b", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:21:14.0410051Z", "lastUpdateTime": "2021-08-17T18:21:14.0410051Z", "signed": false, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": true, "readEnabled": false, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '386' + content-length: '390' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:41 GMT + date: Tue, 17 Aug 2021 18:21:34 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -302,7 +356,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b + url: https://yalinlitests.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b - request: body: '{"writeEnabled": false}' headers: @@ -313,7 +367,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b response: @@ -326,7 +380,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:41 GMT + date: Tue, 17 Aug 2021 18:21:34 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -335,18 +389,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b + url: https://yalinlitests.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:21:34 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.883333' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo9bf1d1b:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -355,15 +436,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:41 GMT + date: Tue, 17 Aug 2021 18:21:34 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.516667' + x-ms-ratelimit-remaining-calls-per-second: '165.866667' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"writeEnabled": false}' headers: @@ -374,22 +455,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo9bf1d1b", "tag": - {"name": "tag9bf1d1b", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T18:02:13.3032163Z", "lastUpdateTime": "2021-05-20T18:02:13.3032163Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo9bf1d1b", + "tag": {"name": "tag9bf1d1b", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:21:14.0410051Z", "lastUpdateTime": "2021-08-17T18:21:14.0410051Z", "signed": false, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '387' + content-length: '391' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:41 GMT + date: Tue, 17 Aug 2021 18:21:34 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -397,7 +478,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b + url: https://yalinlitests.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b - request: body: '{"listEnabled": false}' headers: @@ -408,7 +489,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b response: @@ -421,7 +502,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:42 GMT + date: Tue, 17 Aug 2021 18:21:34 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -430,18 +511,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b + url: https://yalinlitests.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:21:34 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.85' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo9bf1d1b:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -450,15 +558,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:42 GMT + date: Tue, 17 Aug 2021 18:21:34 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.5' + x-ms-ratelimit-remaining-calls-per-second: '165.833333' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"listEnabled": false}' headers: @@ -469,22 +577,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo9bf1d1b", "tag": - {"name": "tag9bf1d1b", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T18:02:13.3032163Z", "lastUpdateTime": "2021-05-20T18:02:13.3032163Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo9bf1d1b", + "tag": {"name": "tag9bf1d1b", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:21:14.0410051Z", "lastUpdateTime": "2021-08-17T18:21:14.0410051Z", "signed": false, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": false}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '388' + content-length: '392' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:42 GMT + date: Tue, 17 Aug 2021 18:21:34 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -492,7 +600,7 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b + url: https://yalinlitests.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": true}' @@ -504,7 +612,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b response: @@ -517,7 +625,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:42 GMT + date: Tue, 17 Aug 2021 18:21:34 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -526,18 +634,45 @@ interactions: status: code: 401 message: Unauthorized - url: https://seankane.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b + url: https://yalinlitests.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b +- request: + body: + access_token: REDACTED + grant_type: access_token + service: yalinlitests.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 17 Aug 2021 18:21:35 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.816667' + status: + code: 200 + message: OK + url: https://yalinlitests.azurecr.io/oauth2/exchange - request: body: grant_type: refresh_token refresh_token: REDACTED scope: repository:repo9bf1d1b:metadata_write - service: seankane.azurecr.io + service: yalinlitests.azurecr.io headers: Accept: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: POST uri: https://fake_url.azurecr.io/oauth2/token response: @@ -546,15 +681,15 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:42 GMT + date: Tue, 17 Aug 2021 18:21:35 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '166.483333' + x-ms-ratelimit-remaining-calls-per-second: '165.8' status: code: 200 message: OK - url: https://seankane.azurecr.io/oauth2/token + url: https://yalinlitests.azurecr.io/oauth2/token - request: body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": true}' @@ -566,22 +701,22 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b3 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azure-containerregistry/1.0.0b5 Python/3.9.2 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://fake_url.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo9bf1d1b", "tag": - {"name": "tag9bf1d1b", "digest": "sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c", - "createdTime": "2021-05-20T18:02:13.3032163Z", "lastUpdateTime": "2021-05-20T18:02:13.3032163Z", + string: '{"registry": "yalinlitests.azurecr.io", "imageName": "repo9bf1d1b", + "tag": {"name": "tag9bf1d1b", "digest": "sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38", + "createdTime": "2021-08-17T18:21:14.0410051Z", "lastUpdateTime": "2021-08-17T18:21:14.0410051Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '384' + content-length: '388' content-type: application/json; charset=utf-8 - date: Thu, 20 May 2021 18:02:43 GMT + date: Tue, 17 Aug 2021 18:21:35 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -589,5 +724,5 @@ interactions: status: code: 200 message: OK - url: https://seankane.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b + url: https://yalinlitests.azurecr.io/acr/v1/repo9bf1d1b/_tags/tag9bf1d1b version: 1 From eefe01a8ea10823893d831b8afdda1e07bf9124b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= <39780829+mccoyp@users.noreply.github.com> Date: Tue, 17 Aug 2021 14:40:22 -0700 Subject: [PATCH 085/104] [Test Proxy] Add RecordedByProxy decorator and AzureRecordedTestCase (#20138) --- .gitignore | 3 + .../tests/test_table_service_stats.py | 2 +- .../tests/test_table_service_stats_async.py | 2 +- .../scenario_tests/preparers.py | 10 +- .../devtools_testutils/__init__.py | 6 + .../devtools_testutils/aio/__init__.py | 3 + .../aio/proxy_testcase_async.py | 50 ++++ .../azure_recorded_testcase.py | 265 ++++++++++++++++++ .../devtools_testutils/config.py | 8 + .../devtools_testutils/enums.py | 11 + .../devtools_testutils/powershell_preparer.py | 15 +- .../devtools_testutils/proxy_testcase.py | 136 +++++++++ 12 files changed, 504 insertions(+), 7 deletions(-) create mode 100644 tools/azure-sdk-tools/devtools_testutils/aio/__init__.py create mode 100644 tools/azure-sdk-tools/devtools_testutils/aio/proxy_testcase_async.py create mode 100644 tools/azure-sdk-tools/devtools_testutils/azure_recorded_testcase.py create mode 100644 tools/azure-sdk-tools/devtools_testutils/enums.py create mode 100644 tools/azure-sdk-tools/devtools_testutils/proxy_testcase.py diff --git a/.gitignore b/.gitignore index 87b0050a20cc..fa4e4fc71035 100644 --- a/.gitignore +++ b/.gitignore @@ -114,3 +114,6 @@ sdk/cosmos/azure-cosmos/test/test_config.py # env vars .env + +# local SSL certificate folder +.certificate diff --git a/sdk/tables/azure-data-tables/tests/test_table_service_stats.py b/sdk/tables/azure-data-tables/tests/test_table_service_stats.py index 6658e702d677..3f623f1b6551 100644 --- a/sdk/tables/azure-data-tables/tests/test_table_service_stats.py +++ b/sdk/tables/azure-data-tables/tests/test_table_service_stats.py @@ -10,7 +10,7 @@ from preparers import tables_decorator # --Test Class ----------------------------------------------------------------- -class TableServiceStatsTest(AzureTestCase, TableTestCase): +class TestTableServiceStats(AzureTestCase, TableTestCase): # --Test cases per service --------------------------------------- @tables_decorator diff --git a/sdk/tables/azure-data-tables/tests/test_table_service_stats_async.py b/sdk/tables/azure-data-tables/tests/test_table_service_stats_async.py index 2aeffef1e965..e22d406ef8e4 100644 --- a/sdk/tables/azure-data-tables/tests/test_table_service_stats_async.py +++ b/sdk/tables/azure-data-tables/tests/test_table_service_stats_async.py @@ -19,7 +19,7 @@ '> ' -class TableServiceStatsTest(AzureTestCase, AsyncTableTestCase): +class TestTableServiceStats(AzureTestCase, AsyncTableTestCase): @staticmethod def override_response_body_with_unavailable_status(response): diff --git a/tools/azure-devtools/src/azure_devtools/scenario_tests/preparers.py b/tools/azure-devtools/src/azure_devtools/scenario_tests/preparers.py index 1bc992962882..733ad04a689a 100644 --- a/tools/azure-devtools/src/azure_devtools/scenario_tests/preparers.py +++ b/tools/azure-devtools/src/azure_devtools/scenario_tests/preparers.py @@ -6,7 +6,6 @@ import contextlib import functools import logging -import sys from collections import namedtuple from threading import Lock @@ -135,7 +134,14 @@ def _preparer_wrapper(test_class_instance, **kwargs): ) if test_class_instance.is_live: - test_class_instance.scrubber.register_name_pair(resource_name, self.moniker) + # Adding this for new proxy testcase + if hasattr(test_class_instance, "scrubber"): + test_class_instance.scrubber.register_name_pair(resource_name, self.moniker) + else: + _logger.info( + "This test class instance has no scrubber, so the AbstractPreparer will not scrub any values " + "in recordings." + ) # We shouldn't trim the same kwargs that we use for deletion, # we may remove some of the variables we needed to do the delete. diff --git a/tools/azure-sdk-tools/devtools_testutils/__init__.py b/tools/azure-sdk-tools/devtools_testutils/__init__.py index 640da9b62531..69db6f41dfb3 100644 --- a/tools/azure-sdk-tools/devtools_testutils/__init__.py +++ b/tools/azure-sdk-tools/devtools_testutils/__init__.py @@ -1,4 +1,5 @@ from .mgmt_testcase import AzureMgmtTestCase, AzureMgmtPreparer +from .azure_recorded_testcase import AzureRecordedTestCase from .azure_testcase import AzureTestCase, is_live, get_region_override from .resource_testcase import ( FakeResource, @@ -14,12 +15,15 @@ ) from .keyvault_preparer import KeyVaultPreparer from .powershell_preparer import PowerShellPreparer +from .proxy_testcase import RecordedByProxy +from .enums import ProxyRecordingSanitizer from .helpers import ResponseCallback, RetryCounter from .fake_credential import FakeTokenCredential __all__ = [ "AzureMgmtTestCase", "AzureMgmtPreparer", + "AzureRecordedTestCase", "FakeResource", "ResourceGroupPreparer", "StorageAccountPreparer", @@ -33,6 +37,8 @@ "RandomNameResourceGroupPreparer", "CachedResourceGroupPreparer", "PowerShellPreparer", + "ProxyRecordingSanitizer", + "RecordedByProxy", "ResponseCallback", "RetryCounter", "FakeTokenCredential", diff --git a/tools/azure-sdk-tools/devtools_testutils/aio/__init__.py b/tools/azure-sdk-tools/devtools_testutils/aio/__init__.py new file mode 100644 index 000000000000..5265d80fe58e --- /dev/null +++ b/tools/azure-sdk-tools/devtools_testutils/aio/__init__.py @@ -0,0 +1,3 @@ +from .proxy_testcase_async import RecordedByProxyAsync + +__all__ = ["RecordedByProxyAsync"] diff --git a/tools/azure-sdk-tools/devtools_testutils/aio/proxy_testcase_async.py b/tools/azure-sdk-tools/devtools_testutils/aio/proxy_testcase_async.py new file mode 100644 index 000000000000..11c8f9e44395 --- /dev/null +++ b/tools/azure-sdk-tools/devtools_testutils/aio/proxy_testcase_async.py @@ -0,0 +1,50 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +from azure.core.pipeline.transport import AioHttpTransport + +from azure_devtools.scenario_tests.utilities import trim_kwargs_from_test_function +from ..proxy_testcase import ( + get_test_id, + start_record_or_playback, + transform_request, + stop_record_or_playback, +) + + +def RecordedByProxyAsync(func): + async def record_wrap(*args, **kwargs): + test_id = get_test_id() + recording_id = start_record_or_playback(test_id) + + def transform_args(*args, **kwargs): + copied_positional_args = list(args) + request = copied_positional_args[1] + + transform_request(request, recording_id) + + return tuple(copied_positional_args), kwargs + + trimmed_kwargs = {k: v for k, v in kwargs.items()} + trim_kwargs_from_test_function(func, trimmed_kwargs) + + original_func = AioHttpTransport.send + + async def combined_call(*args, **kwargs): + adjusted_args, adjusted_kwargs = transform_args(*args, **kwargs) + return await original_func(*adjusted_args, **adjusted_kwargs) + + AioHttpTransport.send = combined_call + + # call the modified function. + try: + value = await func(*args, **trimmed_kwargs) + finally: + AioHttpTransport.send = original_func + stop_record_or_playback(test_id, recording_id) + + return value + + return record_wrap diff --git a/tools/azure-sdk-tools/devtools_testutils/azure_recorded_testcase.py b/tools/azure-sdk-tools/devtools_testutils/azure_recorded_testcase.py new file mode 100644 index 000000000000..d39cfe79960c --- /dev/null +++ b/tools/azure-sdk-tools/devtools_testutils/azure_recorded_testcase.py @@ -0,0 +1,265 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +import functools +import logging +import os +import os.path +import requests +import six +import sys +import time +from typing import TYPE_CHECKING + +from dotenv import load_dotenv, find_dotenv + +from azure_devtools.scenario_tests import AzureTestError +from azure_devtools.scenario_tests.config import TestConfig +from azure_devtools.scenario_tests.utilities import trim_kwargs_from_test_function + +from . import mgmt_settings_fake as fake_settings +from .azure_testcase import _is_autorest_v3, get_resource_name, get_qualified_method_name +from .config import PROXY_URL +from .enums import ProxyRecordingSanitizer + +try: + # Try to import the AsyncFakeCredential, if we cannot assume it is Python 2 + from .fake_async_credential import AsyncFakeCredential +except SyntaxError: + pass + +if TYPE_CHECKING: + from typing import Optional + + +load_dotenv(find_dotenv()) + + +def is_live(): + """A module version of is_live, that could be used in pytest marker.""" + if not hasattr(is_live, "_cache"): + is_live._cache = TestConfig().record_mode + return is_live._cache + + +class AzureRecordedTestCase(object): + @property + def settings(self): + if self.is_live: + if self._real_settings: + return self._real_settings + else: + raise AzureTestError("Need a mgmt_settings_real.py file to run tests live.") + else: + return self._fake_settings + + def _load_settings(self): + try: + from . import mgmt_settings_real as real_settings + + return fake_settings, real_settings + except ImportError: + return fake_settings, None + + @property + def is_live(self): + return is_live() + + @property + def qualified_test_name(self): + return get_qualified_method_name(self, "method_name") + + @property + def in_recording(self): + return self.is_live + + # TODO: This needs to be removed, recording processors are handled on the proxy side, but + # this is needed for the preparers + @property + def recording_processors(self): + return [] + + def add_sanitizer(self, sanitizer, regex=None, value=None): + # type: (ProxyRecordingSanitizer, Optional[str], Optional[str]) -> None + if sanitizer == ProxyRecordingSanitizer.URI: + requests.post( + "{}/Admin/AddSanitizer".format(PROXY_URL), + headers={"x-abstraction-identifier": ProxyRecordingSanitizer.URI.value}, + json={ + "regex": regex or "[a-z]+(?=(?:-secondary)\\.(?:table|blob|queue)\\.core\\.windows\\.net)", + "value": value or "fakevalue" + }, + ) + + def is_playback(self): + return not self.is_live + + def get_settings_value(self, key): + key_value = os.environ.get("AZURE_" + key, None) + + if key_value and self._real_settings and getattr(self._real_settings, key) != key_value: + raise ValueError( + "You have both AZURE_{key} env variable and mgmt_settings_real.py for {key} to different values".format( + key=key + ) + ) + + if not key_value: + try: + key_value = getattr(self.settings, key) + except Exception as ex: + six.raise_from(ValueError("Could not get {}".format(key)), ex) + return key_value + + def get_credential(self, client_class, **kwargs): + tenant_id = os.environ.get("AZURE_TENANT_ID", getattr(self._real_settings, "TENANT_ID", None)) + client_id = os.environ.get("AZURE_CLIENT_ID", getattr(self._real_settings, "CLIENT_ID", None)) + secret = os.environ.get("AZURE_CLIENT_SECRET", getattr(self._real_settings, "CLIENT_SECRET", None)) + is_async = kwargs.pop("is_async", False) + + if tenant_id and client_id and secret and self.is_live: + if _is_autorest_v3(client_class): + # Create azure-identity class + from azure.identity import ClientSecretCredential + + if is_async: + from azure.identity.aio import ClientSecretCredential + return ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=secret) + else: + # Create msrestazure class + from msrestazure.azure_active_directory import ( + ServicePrincipalCredentials, + ) + + return ServicePrincipalCredentials(tenant=tenant_id, client_id=client_id, secret=secret) + else: + if _is_autorest_v3(client_class): + if is_async: + if self.is_live: + raise ValueError( + "Async live doesn't support mgmt_setting_real, please set AZURE_TENANT_ID, " + "AZURE_CLIENT_ID, AZURE_CLIENT_SECRET" + ) + return AsyncFakeCredential() + else: + return self.settings.get_azure_core_credentials() + else: + return self.settings.get_credentials() + + def create_client_from_credential(self, client_class, credential, **kwargs): + + # Real client creation + # TODO decide what is the final argument for that + # if self.is_playback(): + # kwargs.setdefault("polling_interval", 0) + if _is_autorest_v3(client_class): + kwargs.setdefault("logging_enable", True) + client = client_class(credential=credential, **kwargs) + else: + client = client_class(credentials=credential, **kwargs) + + if self.is_playback(): + try: + client._config.polling_interval = 0 # FIXME in azure-mgmt-core, make this a kwargs + except AttributeError: + pass + + if hasattr(client, "config"): # Autorest v2 + if self.is_playback(): + client.config.long_running_operation_timeout = 0 + client.config.enable_http_logger = True + return client + + def create_basic_client(self, client_class, **kwargs): + """ DO NOT USE ME ANYMORE.""" + logger = logging.getLogger() + logger.warning( + "'create_basic_client' will be deprecated in the future. It is recommended that you use \ + 'get_credential' and 'create_client_from_credential' to create your client." + ) + + credentials = self.get_credential(client_class) + return self.create_client_from_credential(client_class, credentials, **kwargs) + + def create_random_name(self, name): + unique_test_name = os.getenv("PYTEST_CURRENT_TEST").encode("utf-8") + return get_resource_name(name, unique_test_name) + + def get_resource_name(self, name): + """Alias to create_random_name for back compatibility.""" + return self.create_random_name(name) + + def get_replayable_random_resource_name(self, name): + """In a replay scenario (not live), gives the static moniker. In the random scenario, gives generated name.""" + if self.is_live: + created_name = self.create_random_name(name) + self.scrubber.register_name_pair(created_name, name) + return name + + def get_preparer_resource_name(self, prefix): + """Random name generation for use by preparers. + + If prefix is a blank string, use the fully qualified test name instead. + This is what legacy tests do for resource groups.""" + return self.get_resource_name(prefix) + + @staticmethod + def await_prepared_test(test_fn): + """Synchronous wrapper for async test methods. Used to avoid making changes + upstream to AbstractPreparer, which only awaits async tests that use preparers. + (Add @AzureTestCase.await_prepared_test decorator to async tests without preparers) + + # Note: this will only be needed so long as we maintain unittest.TestCase in our + test-class inheritance chain. + """ + + if sys.version_info < (3, 5): + raise ImportError("Async wrapper is not needed for Python 2.7 code.") + + import asyncio + + @functools.wraps(test_fn) + def run(test_class_instance, *args, **kwargs): + trim_kwargs_from_test_function(test_fn, kwargs) + loop = asyncio.get_event_loop() + return loop.run_until_complete(test_fn(test_class_instance, **kwargs)) + + return run + + def sleep(self, seconds): + if self.is_live: + time.sleep(seconds) + + def generate_sas(self, *args, **kwargs): + sas_func = args[0] + sas_func_pos_args = args[1:] + + fake_value = kwargs.pop("fake_value", "fake_token_value") + token = sas_func(*sas_func_pos_args, **kwargs) + + fake_token = self._create_fake_token(token, fake_value) + + if self.is_live: + return token + return fake_token + + def _create_fake_token(self, token, fake_value): + parts = token.split("&") + + for idx, part in enumerate(parts): + if part.startswith("sig"): + key = part.split("=") + key[1] = fake_value + parts[idx] = "=".join(key) + elif part.startswith("st"): + key = part.split("=") + key[1] = "start" + parts[idx] = "=".join(key) + elif part.startswith("se"): + key = part.split("=") + key[1] = "end" + parts[idx] = "=".join(key) + + return "&".join(parts) diff --git a/tools/azure-sdk-tools/devtools_testutils/config.py b/tools/azure-sdk-tools/devtools_testutils/config.py index 117c3b38ca08..7b9bcfbb06aa 100644 --- a/tools/azure-sdk-tools/devtools_testutils/config.py +++ b/tools/azure-sdk-tools/devtools_testutils/config.py @@ -1 +1,9 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + + +PROXY_URL = "https://localhost:5001" TEST_SETTING_FILENAME = "testsettings_local.cfg" diff --git a/tools/azure-sdk-tools/devtools_testutils/enums.py b/tools/azure-sdk-tools/devtools_testutils/enums.py new file mode 100644 index 000000000000..f1456dbc8a1f --- /dev/null +++ b/tools/azure-sdk-tools/devtools_testutils/enums.py @@ -0,0 +1,11 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +from enum import Enum + +class ProxyRecordingSanitizer(str, Enum): + """General-purpose sanitizers for sanitizing test proxy recordings""" + + URI = "UriRegexSanitizer" diff --git a/tools/azure-sdk-tools/devtools_testutils/powershell_preparer.py b/tools/azure-sdk-tools/devtools_testutils/powershell_preparer.py index 562bb825bec6..0ce216f416c1 100644 --- a/tools/azure-sdk-tools/devtools_testutils/powershell_preparer.py +++ b/tools/azure-sdk-tools/devtools_testutils/powershell_preparer.py @@ -3,6 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +import logging import os from . import AzureMgmtPreparer @@ -65,9 +66,17 @@ def create_resource(self, name, **kwargs): scrubbed_value = self.fake_values[key] if scrubbed_value: self.real_values[key.lower()] = os.environ[key.upper()] - self.test_class_instance.scrubber.register_name_pair( - self.real_values[key.lower()], scrubbed_value - ) + # Adding this for new proxy testcase + if hasattr(self.test_class_instance, "scrubber"): + self.test_class_instance.scrubber.register_name_pair( + self.real_values[key.lower()], scrubbed_value + ) + else: + logger = logging.getLogger() + logger.info( + "This test class instance has no scrubber, so the PowerShellPreparer will not scrub " + "the value of {} in recordings.".format(key) + ) else: template = 'To pass a live ID you must provide the scrubbed value for recordings to \ prevent secrets from being written to files. {} was not given. For example: \ diff --git a/tools/azure-sdk-tools/devtools_testutils/proxy_testcase.py b/tools/azure-sdk-tools/devtools_testutils/proxy_testcase.py new file mode 100644 index 000000000000..53cc41bf9064 --- /dev/null +++ b/tools/azure-sdk-tools/devtools_testutils/proxy_testcase.py @@ -0,0 +1,136 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +import os +import requests + +try: + # py3 + import urllib.parse as url_parse +except: + # py2 + import urlparse as url_parse + +import subprocess + +# the functions we patch +from azure.core.pipeline.transport import RequestsTransport + +# the trimming function to clean up incoming arguments to the test function we are wrapping +from azure_devtools.scenario_tests.utilities import trim_kwargs_from_test_function +from .azure_recorded_testcase import is_live +from .config import PROXY_URL + + +# defaults +RECORDING_START_URL = "{}/record/start".format(PROXY_URL) +RECORDING_STOP_URL = "{}/record/stop".format(PROXY_URL) +PLAYBACK_START_URL = "{}/playback/start".format(PROXY_URL) +PLAYBACK_STOP_URL = "{}/playback/stop".format(PROXY_URL) + +# TODO, create a pytest scope="session" implementation that can be added to a fixture such that unit tests can +# startup/shutdown the local test proxy +# this should also fire the admin mapping updates, and start/end the session for commiting recording updates + + +def get_test_id(): + # pytest sets the current running test in an environment variable + setting_value = os.getenv("PYTEST_CURRENT_TEST") + + path_to_test = os.path.normpath(setting_value.split(" ")[0]) + path_components = path_to_test.split(os.sep) + + for idx, val in enumerate(path_components): + if val.startswith("test"): + path_components.insert(idx + 1, "recordings") + break + + return os.sep.join(path_components).replace("::", "").replace("\\", "/") + + +def start_record_or_playback(test_id): + result = subprocess.check_output(["git", "rev-parse", "HEAD"]) + current_sha = result.decode("utf-8").strip() + + if is_live(): + result = requests.post( + RECORDING_START_URL, + headers={"x-recording-file": test_id, "x-recording-sha": current_sha}, + ) + recording_id = result.headers["x-recording-id"] + else: + result = requests.post( + PLAYBACK_START_URL, + headers={"x-recording-file": test_id, "x-recording-sha": current_sha}, + ) + recording_id = result.headers["x-recording-id"] + return recording_id + + +def stop_record_or_playback(test_id, recording_id): + if is_live(): + requests.post( + RECORDING_STOP_URL, + headers={"x-recording-file": test_id, "x-recording-id": recording_id, "x-recording-save": "true"}, + ) + else: + requests.post( + PLAYBACK_STOP_URL, + headers={"x-recording-file": test_id, "x-recording-id": recording_id}, + ) + + +def get_proxy_netloc(): + parsed_result = url_parse.urlparse(PROXY_URL) + return {"scheme": parsed_result.scheme, "netloc": parsed_result.netloc} + + +def transform_request(request, recording_id): + """Redirect the request to the test proxy, and store the original request URI in a header""" + headers = request.headers + + parsed_result = url_parse.urlparse(request.url) + updated_target = parsed_result._replace(**get_proxy_netloc()).geturl() + if headers.get("x-recording-upstream-base-uri", None) is None: + headers["x-recording-upstream-base-uri"] = "{}://{}".format(parsed_result.scheme, parsed_result.netloc) + headers["x-recording-id"] = recording_id + headers["x-recording-mode"] = "record" if is_live() else "playback" + request.url = updated_target + + +def RecordedByProxy(func): + def record_wrap(*args, **kwargs): + test_id = get_test_id() + recording_id = start_record_or_playback(test_id) + + def transform_args(*args, **kwargs): + copied_positional_args = list(args) + request = copied_positional_args[1] + + transform_request(request, recording_id) + + return tuple(copied_positional_args), kwargs + + trimmed_kwargs = {k: v for k, v in kwargs.items()} + trim_kwargs_from_test_function(func, trimmed_kwargs) + + original_transport_func = RequestsTransport.send + + def combined_call(*args, **kwargs): + adjusted_args, adjusted_kwargs = transform_args(*args, **kwargs) + return original_transport_func(*adjusted_args, **adjusted_kwargs) + + RequestsTransport.send = combined_call + + # call the modified function. + try: + value = func(*args, **trimmed_kwargs) + finally: + RequestsTransport.send = original_transport_func + stop_record_or_playback(test_id, recording_id) + + return value + + return record_wrap From 19537f1589b9b127644f869948a914ee9d2dfb38 Mon Sep 17 00:00:00 2001 From: swathipil <76007337+swathipil@users.noreply.github.com> Date: Tue, 17 Aug 2021 15:16:36 -0700 Subject: [PATCH 086/104] [SchemaRegistry] update samples readme (#20323) --- sdk/schemaregistry/azure-schemaregistry/samples/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/schemaregistry/azure-schemaregistry/samples/README.md b/sdk/schemaregistry/azure-schemaregistry/samples/README.md index c3223b6e4c8f..0b7d11707b5d 100644 --- a/sdk/schemaregistry/azure-schemaregistry/samples/README.md +++ b/sdk/schemaregistry/azure-schemaregistry/samples/README.md @@ -12,7 +12,7 @@ urlFragment: schemaregistry-samples These are code samples that show common scenario operations with the Schema Registry client library. The async versions of the samples (the python sample files appended with `_async`) show asynchronous operations, -and require Python 3.5 or later. +and require Python 3.6 or later. Several Schema Registry Python SDK samples are available to you in the SDK's GitHub repository. These samples provide example code for additional scenarios commonly encountered while working with Schema Registry: @@ -22,7 +22,7 @@ Several Schema Registry Python SDK samples are available to you in the SDK's Git * Get schema id ## Prerequisites -- Python 2.7, 3.5 or later. +- Python 2.7, 3.6 or later. - **Microsoft Azure Subscription:** To use Azure services, including Azure Schema Registry, you'll need a subscription. If you do not have an existing Azure account, you may sign up for a free trial or use your MSDN subscriber benefits when you [create an account](https://account.windowsazure.com/Home/Index). From 035fce2def2227e88eb42365b43d63ed2a8d5a2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= <39780829+mccoyp@users.noreply.github.com> Date: Tue, 17 Aug 2021 15:48:21 -0700 Subject: [PATCH 087/104] Suppress CredScan warning for test proxy devcert (#20324) --- eng/CredScanSuppression.json | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/CredScanSuppression.json b/eng/CredScanSuppression.json index a7494311e04b..32dee32e694d 100644 --- a/eng/CredScanSuppression.json +++ b/eng/CredScanSuppression.json @@ -36,6 +36,7 @@ }, { "file":[ + "eng/common/testproxy/dotnet-devcert.pfx", "sdk/keyvault/azure-keyvault-certificates/tests/ca.key", "sdk/identity/azure-identity/tests/ec-certificate.pem", "sdk/core/azure-servicemanagement-legacy/tests/legacy_mgmt_settings_fake.py", From d808a13159eed1e6f63fe385370fb89a17d9c714 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Tue, 17 Aug 2021 16:44:50 -0700 Subject: [PATCH 088/104] Removing C:\Git\azure-sdk-tools\eng\common\scripts\FilterPoliCheckResults.ps1 as it was no longer used (#20325) Co-authored-by: Chidozie Ononiwu --- eng/common/scripts/FilterPoliCheckResults.ps1 | 103 ------------------ 1 file changed, 103 deletions(-) delete mode 100644 eng/common/scripts/FilterPoliCheckResults.ps1 diff --git a/eng/common/scripts/FilterPoliCheckResults.ps1 b/eng/common/scripts/FilterPoliCheckResults.ps1 deleted file mode 100644 index f74f72971021..000000000000 --- a/eng/common/scripts/FilterPoliCheckResults.ps1 +++ /dev/null @@ -1,103 +0,0 @@ -<# -.SYNOPSIS -Filters PoliCheck Result. -.DESCRIPTION -This script will read data speciefied in one or more PoliCheckAllowList.yml files, -It then reamoves all allwed entries from the PoliCheckResult -.PARAMETER PoliCheckResultFilePath -The Path to the PoliCheck Result. Usually named PoliCheck.sarif -.PARAMETER ServiceDirtectory -If the PoliCheck scan is scoped to a particular service provide the ServiceDirectory -.EXAMPLE -PS> ./FilterPoliCheckResults.ps1 -PoliCheckResultFilePath .\PoliCheck.sarif -#> -[CmdletBinding()] -param( - [Parameter(Mandatory=$true)] - [String] $PoliCheckResultFilePath, - [String] $ServiceDirtectory -) - -. "${PSScriptRoot}\logging.ps1" - -$RepoRoot = Resolve-Path -Path "${PSScriptRoot}\..\..\..\" -$PathToAllowListFiles = Join-Path $RepoRoot $ServiceDirtectory -$PolicCheckAllowListFiles = Get-ChildItem -Path $PathToAllowListFiles -Recurse -File -Include "PoliCheckAllowList.yml" -$allowListData = @{} - -# Combine all AllowLists Found -foreach ($file in $PolicCheckAllowListFiles) -{ - $allowListDataInFile = ConvertFrom-Yaml (Get-Content $file.FullName -Raw) - $allowListData["PC1001"] += $allowListDataInFile["PC1001"] - $allowListData["PC1002"] += $allowListDataInFile["PC1002"] - $allowListData["PC1003"] += $allowListDataInFile["PC1003"] - $allowListData["PC1004"] += $allowListDataInFile["PC1004"] - $allowListData["PC1005"] += $allowListDataInFile["PC1005"] - $allowListData["PC1006"] += $allowListDataInFile["PC1006"] -} - -$poliCheckData = Get-Content $PoliCheckResultFilePath | ConvertFrom-Json -$poliCheckResultsCount = $poliCheckData.runs[0].results.Count -$newCount - -$updatedRuns = @() - -foreach ($run in $poliCheckData.runs) -{ - $updatedResults = @() - foreach ($result in $run.results) - { - $ruleId = $result.ruleId - $allowedEntries = $allowListData[$ruleId] - if ($allowedEntries) - { - $updatedLocations = @() - - foreach ($location in $result.locations) - { - $filePath = $location.physicalLocation.artifactLocation.uri - $text = $location.physicalLocation.region.snippet.text - $contextRegion = $location.physicalLocation.contextRegion.snippet.text - - $allowedEntry = $allowedEntries[0] | Where-Object { $_.FilePath -eq $filePath } - - if ($allowedEntry.Count -gt 0) - { - $foundAllowedInstance = $false - foreach ($instance in $allowedEntry.instances) - { - if (($instance.Text.Trim() -eq $text.Trim()) -and ($instance.ContextRegion.Trim() -eq $contextRegion.Trim())) - { - Write-Host "Found instance" -ForegroundColor Green - $foundAllowedInstance = $true - } - } - if ($foundAllowedInstance -eq $true) - { - continue - } - } - - $updatedLocations += $location - } - - $result.locations = $updatedLocations - } - - if ($result.locations.Count -gt 0) - { - $updatedResults += $result - } - } - $run.results = $updatedResults - $newCount = $run.results.Count - $updatedRuns += $run -} - -$poliCheckData.runs = $updatedRuns - -Set-Content -Path $PoliCheckResultFilePath -Value ($poliCheckData | ConvertTo-Json -Depth 100) - -LogDebug "Original Result Count: ${poliCheckResultsCount}" -LogDebug "New Result Count: ${newCount}" From cba11349edcd12af4046843c897e067619edb388 Mon Sep 17 00:00:00 2001 From: Zed Lei <59104634+RAY-316@users.noreply.github.com> Date: Wed, 18 Aug 2021 10:01:58 +0800 Subject: [PATCH 089/104] Update main.py (#20332) --- scripts/release_issue_status/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/release_issue_status/main.py b/scripts/release_issue_status/main.py index 2f26cfeb4025..9f9e5a35145d 100644 --- a/scripts/release_issue_status/main.py +++ b/scripts/release_issue_status/main.py @@ -147,12 +147,12 @@ def main(): elif item.delay_from_latest_update >= 7: item.bot_advice = 'delay for a long time and better to handle now.' - if item.delay_from_create_date >= 30 and item.language == 'Python' and '30days attention' not in item.labels: + if item.days_from_latest_commit >= 30 and item.language == 'Python' and '30days attention' not in item.labels: item.labels.append('30days attention') item.issue_object.set_labels(*item.labels) item.issue_object.create_comment(f'hi @{item.author}, the issue is closed since there is no reply for a long time. Please reopen it if necessary or create new one.') item.issue_object.edit(state='close') - elif item.delay_from_create_date >= 15 and item.language == 'Python' and '15days attention' not in item.labels: + elif item.days_from_latest_commit >= 15 and item.language == 'Python' and '15days attention' not in item.labels: item.issue_object.create_comment(f'hi @{item.author}, this release-request has been delayed more than 15 days,' ' please deal with it ASAP. We will close the issue if there is still no response after 15 days!') item.labels.append('15days attention') From 728b28b5489f46548eb8db200a49927881c282c1 Mon Sep 17 00:00:00 2001 From: Zed Lei <59104634+RAY-316@users.noreply.github.com> Date: Wed, 18 Aug 2021 10:18:40 +0800 Subject: [PATCH 090/104] Update CHANGELOG.md (#20334) --- sdk/iothub/azure-mgmt-iothubprovisioningservices/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/iothub/azure-mgmt-iothubprovisioningservices/CHANGELOG.md b/sdk/iothub/azure-mgmt-iothubprovisioningservices/CHANGELOG.md index 88bcaa9942a0..e296ced163ee 100644 --- a/sdk/iothub/azure-mgmt-iothubprovisioningservices/CHANGELOG.md +++ b/sdk/iothub/azure-mgmt-iothubprovisioningservices/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 1.0.0 (2021-07-15) +## 1.0.0 (2021-08-18) **Features** From 7ffec7eb93d50606068e507c20dd3c62232b8f45 Mon Sep 17 00:00:00 2001 From: swathipil <76007337+swathipil@users.noreply.github.com> Date: Wed, 18 Aug 2021 09:21:08 -0700 Subject: [PATCH 091/104] [SchemaRegistry] prepare avro for release (#20321) * prepare for release * update date * samples readme * update * udpate shared reqs * recordings * fix recordings * changelog * change * recording * update release date --- .../CHANGELOG.md | 12 ++-- .../samples/README.md | 2 +- .../setup.py | 2 +- ...ializer.test_basic_sr_avro_serializer.yaml | 65 ++----------------- .../tests/test_avro_serializer.py | 2 +- shared_requirements.txt | 2 +- 6 files changed, 15 insertions(+), 70 deletions(-) diff --git a/sdk/schemaregistry/azure-schemaregistry-avroserializer/CHANGELOG.md b/sdk/schemaregistry/azure-schemaregistry-avroserializer/CHANGELOG.md index 46498c8bfd59..6c0e72155333 100644 --- a/sdk/schemaregistry/azure-schemaregistry-avroserializer/CHANGELOG.md +++ b/sdk/schemaregistry/azure-schemaregistry-avroserializer/CHANGELOG.md @@ -1,16 +1,12 @@ # Release History -## 1.0.0b2 (Unreleased) +## 1.0.0b2 (2021-08-18) -### Features Added - -### Breaking Changes - -### Bugs Fixed +This version and all future versions will require Python 2.7 or Python 3.6+, Python 3.5 is no longer supported. -### Other Changes +### Features Added -This version and all future versions will require Python 2.7 or Python 3.6+, Python 3.5 is no longer supported. +- Depends on `azure-schemaregistry==1.0.0b2` which supports client-level caching. ## 1.0.0b1 (2020-09-09) diff --git a/sdk/schemaregistry/azure-schemaregistry-avroserializer/samples/README.md b/sdk/schemaregistry/azure-schemaregistry-avroserializer/samples/README.md index 7324035bc577..efb9eca6a478 100644 --- a/sdk/schemaregistry/azure-schemaregistry-avroserializer/samples/README.md +++ b/sdk/schemaregistry/azure-schemaregistry-avroserializer/samples/README.md @@ -23,7 +23,7 @@ Several Schema Registry Avro Serializer Python SDK samples are available to you * Receive `EventData` from Event Hubs and deserialize the received bytes. ## Prerequisites -- Python 2.7, 3.5 or later. +- Python 2.7, 3.6 or later. - **Microsoft Azure Subscription:** To use Azure services, including Azure Schema Registry, you'll need a subscription. If you do not have an existing Azure account, you may sign up for a free trial or use your MSDN subscriber benefits when you [create an account](https://account.windowsazure.com/Home/Index). diff --git a/sdk/schemaregistry/azure-schemaregistry-avroserializer/setup.py b/sdk/schemaregistry/azure-schemaregistry-avroserializer/setup.py index 488ad631c775..a31cbd1fc226 100644 --- a/sdk/schemaregistry/azure-schemaregistry-avroserializer/setup.py +++ b/sdk/schemaregistry/azure-schemaregistry-avroserializer/setup.py @@ -65,7 +65,7 @@ zip_safe=False, packages=find_packages(exclude=exclude_packages), install_requires=[ - 'azure-schemaregistry==1.0.0b1', + 'azure-schemaregistry==1.0.0b2', 'avro<2.0.0,>=1.10.0' ] ) diff --git a/sdk/schemaregistry/azure-schemaregistry-avroserializer/tests/recordings/test_avro_serializer.test_basic_sr_avro_serializer.yaml b/sdk/schemaregistry/azure-schemaregistry-avroserializer/tests/recordings/test_avro_serializer.test_basic_sr_avro_serializer.yaml index 7e6d438ee557..7180cd33beea 100644 --- a/sdk/schemaregistry/azure-schemaregistry-avroserializer/tests/recordings/test_avro_serializer.test_basic_sr_avro_serializer.yaml +++ b/sdk/schemaregistry/azure-schemaregistry-avroserializer/tests/recordings/test_avro_serializer.test_basic_sr_avro_serializer.yaml @@ -16,21 +16,21 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) X-Schema-Type: - Avro method: PUT uri: https://fake_resource.servicebus.windows.net/$schemagroups/fakegroup/schemas/example.avro.User?api-version=2017-04 response: body: - string: '{"id":"c61bb1044cac49c2913a62d54af3cc3f"}' + string: '{"id":"576838e0558c43f8b85cdaadbd4561f5"}' headers: content-type: - application/json date: - - Thu, 12 Nov 2020 22:12:51 GMT + - Wed, 18 Aug 2021 15:11:19 GMT location: - - https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/example.avro.User/versions/1?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/example.avro.User/versions/1?api-version=2017-04 server: - Microsoft-HTTPAPI/2.0 strict-transport-security: @@ -38,66 +38,15 @@ interactions: transfer-encoding: - chunked x-schema-id: - - c61bb1044cac49c2913a62d54af3cc3f + - 576838e0558c43f8b85cdaadbd4561f5 x-schema-id-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/c61bb1044cac49c2913a62d54af3cc3f?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/getschemabyid/576838e0558c43f8b85cdaadbd4561f5?api-version=2017-04 x-schema-type: - Avro x-schema-version: - '1' x-schema-versions-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/example.avro.User/versions?api-version=2017-04 - status: - code: 200 - message: OK -- request: - body: '"{\"type\": \"record\", \"name\": \"User\", \"namespace\": \"example.avro\", - \"fields\": [{\"type\": \"string\", \"name\": \"name\"}, {\"type\": [\"int\", - \"null\"], \"name\": \"favorite_number\"}, {\"type\": [\"string\", \"null\"], - \"name\": \"favorite_color\"}]}"' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '265' - Content-Type: - - application/json - User-Agent: - - azsdk-python-azureschemaregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - X-Schema-Type: - - Avro - method: POST - uri: https://fake_resource.servicebus.windows.net/$schemagroups/fakegroup/schemas/example.avro.User?api-version=2017-04 - response: - body: - string: '{"id":"c61bb1044cac49c2913a62d54af3cc3f"}' - headers: - content-type: - - application/json - date: - - Thu, 12 Nov 2020 22:12:51 GMT - location: - - https://fake_resource.servicebus.windows.net:443/$schemagroups/fakegroup/schemas/example.avro.User/versions/1?api-version=2017-04 - server: - - Microsoft-HTTPAPI/2.0 - strict-transport-security: - - max-age=31536000 - transfer-encoding: - - chunked - x-schema-id: - - c61bb1044cac49c2913a62d54af3cc3f - x-schema-id-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/getschemabyid/c61bb1044cac49c2913a62d54af3cc3f?api-version=2017-04 - x-schema-type: - - Avro - x-schema-version: - - '1' - x-schema-versions-location: - - https://seankane.servicebus.windows.net:443/$schemagroups/azsdk_net_test_group/schemas/example.avro.User/versions?api-version=2017-04 + - https://swathip-test-eventhubs.servicebus.windows.net:443/$schemagroups/swathip-test-schema/schemas/example.avro.User/versions?api-version=2017-04 status: code: 200 message: OK diff --git a/sdk/schemaregistry/azure-schemaregistry-avroserializer/tests/test_avro_serializer.py b/sdk/schemaregistry/azure-schemaregistry-avroserializer/tests/test_avro_serializer.py index 473d493d5c26..6ee7473b821f 100644 --- a/sdk/schemaregistry/azure-schemaregistry-avroserializer/tests/test_avro_serializer.py +++ b/sdk/schemaregistry/azure-schemaregistry-avroserializer/tests/test_avro_serializer.py @@ -32,7 +32,7 @@ from devtools_testutils import AzureTestCase, PowerShellPreparer -SchemaRegistryPowerShellPreparer = functools.partial(PowerShellPreparer, "schemaregistry", schemaregistry_endpoint="fake_resource.servicebus.windows.net", schemaregistry_group="fakegroup") +SchemaRegistryPowerShellPreparer = functools.partial(PowerShellPreparer, "schemaregistry", schemaregistry_endpoint="fake_resource.servicebus.windows.net/", schemaregistry_group="fakegroup") class SchemaRegistryAvroSerializerTests(AzureTestCase): diff --git a/shared_requirements.txt b/shared_requirements.txt index 11da8a8a9fa8..68fc209b1837 100644 --- a/shared_requirements.txt +++ b/shared_requirements.txt @@ -95,7 +95,7 @@ azure-keyvault-nspkg azure-media-nspkg azure-agrifood-nspkg azure-purview-nspkg -azure-schemaregistry==1.0.0b1 +azure-schemaregistry==1.0.0b2 azure-search-nspkg azure-security-nspkg azure-synapse-nspkg From bb1f601b1043d3c93879823fa2ae228bf9af6e6a Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Wed, 18 Aug 2021 11:30:53 -0700 Subject: [PATCH 092/104] Increment version for schemaregistry releases (#20326) Increment package version after release of azure-schemaregistry --- sdk/schemaregistry/azure-schemaregistry/CHANGELOG.md | 10 ++++++++++ .../azure/schemaregistry/_version.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/sdk/schemaregistry/azure-schemaregistry/CHANGELOG.md b/sdk/schemaregistry/azure-schemaregistry/CHANGELOG.md index 6cb3bc3bc3c5..998ba56d0dc7 100644 --- a/sdk/schemaregistry/azure-schemaregistry/CHANGELOG.md +++ b/sdk/schemaregistry/azure-schemaregistry/CHANGELOG.md @@ -1,5 +1,15 @@ # Release History +## 1.0.0b3 (Unreleased) + +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes + ## 1.0.0b2 (2021-08-17) This version and all future versions will require Python 2.7 or Python 3.6+, Python 3.5 is no longer supported. diff --git a/sdk/schemaregistry/azure-schemaregistry/azure/schemaregistry/_version.py b/sdk/schemaregistry/azure-schemaregistry/azure/schemaregistry/_version.py index 501378b2daf6..3b8ff2016920 100644 --- a/sdk/schemaregistry/azure-schemaregistry/azure/schemaregistry/_version.py +++ b/sdk/schemaregistry/azure-schemaregistry/azure/schemaregistry/_version.py @@ -24,4 +24,4 @@ # # -------------------------------------------------------------------------- -VERSION = "1.0.0b2" +VERSION = "1.0.0b3" From 13908cfd615aab6b01e980695229df3c2d34569e Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Wed, 18 Aug 2021 13:23:36 -0700 Subject: [PATCH 093/104] Sync eng/common directory with azure-sdk-tools for PR 1912 (#20340) * Attempt to purge all vaults, managed HSMs Reverts #1910. Vaults and managed HSMs are automatically purged on their purge date. The point was to purge them daily to preserve capacity. The default purge date is +90 days. * Add timeout and more logging * Pass required -Resource * Fix log message * Ensure the $Resource is correctly captured Added comment to new code explaining why, since ScriptBlock.GetNewClosure() is not working as expected. * Add -ErrorAction to Receive-Job Worked without terminating when run locally, but failed on the first error in the AzDO agent. * Use $using:r instead of creating ScriptBlock More idiomatic for passing ScriptBlocks to jobs. * Resolve PR feedback * Change default DeleteAfterHours to 120 Resolves #1917 * Use the Az cmdlets built-in -AsJob Co-authored-by: Heath Stewart --- .../TestResources/New-TestResources.ps1 | 2 +- .../TestResources/New-TestResources.ps1.md | 2 +- .../scripts/Helpers/Resource-Helpers.ps1 | 141 +++++++++++++----- 3 files changed, 102 insertions(+), 43 deletions(-) diff --git a/eng/common/TestResources/New-TestResources.ps1 b/eng/common/TestResources/New-TestResources.ps1 index 60f9f2bf2c06..7d5353202fea 100644 --- a/eng/common/TestResources/New-TestResources.ps1 +++ b/eng/common/TestResources/New-TestResources.ps1 @@ -50,7 +50,7 @@ param ( [Parameter()] [ValidateRange(1, [int]::MaxValue)] - [int] $DeleteAfterHours = 48, + [int] $DeleteAfterHours = 120, [Parameter()] [string] $Location = '', diff --git a/eng/common/TestResources/New-TestResources.ps1.md b/eng/common/TestResources/New-TestResources.ps1.md index 75c4676102e7..b27dfba8c81a 100644 --- a/eng/common/TestResources/New-TestResources.ps1.md +++ b/eng/common/TestResources/New-TestResources.ps1.md @@ -307,7 +307,7 @@ Aliases: Required: False Position: Named -Default value: 48 +Default value: 120 Accept pipeline input: False Accept wildcard characters: False ``` diff --git a/eng/common/scripts/Helpers/Resource-Helpers.ps1 b/eng/common/scripts/Helpers/Resource-Helpers.ps1 index 188639d46d4a..a73cff2f6fb3 100644 --- a/eng/common/scripts/Helpers/Resource-Helpers.ps1 +++ b/eng/common/scripts/Helpers/Resource-Helpers.ps1 @@ -7,48 +7,42 @@ function Get-PurgeableGroupResources { ) $purgeableResources = @() + # Discover Managed HSMs first since they are a premium resource. + Write-Verbose "Retrieving deleted Managed HSMs from resource group $ResourceGroupName" + + # Get any Managed HSMs in the resource group, for which soft delete cannot be disabled. + $deletedHsms = Get-AzKeyVaultManagedHsm -ResourceGroupName $ResourceGroupName -ErrorAction Ignore ` + | Add-Member -MemberType NoteProperty -Name AzsdkResourceType -Value 'Managed HSM' -PassThru ` + | Add-Member -MemberType AliasProperty -Name AzsdkName -Value VaultName -PassThru + + if ($deletedHsms) { + Write-Verbose "Found $($deletedHsms.Count) deleted Managed HSMs to potentially purge." + $purgeableResources += $deletedHsms + } + Write-Verbose "Retrieving deleted Key Vaults from resource group $ResourceGroupName" # Get any Key Vaults that will be deleted so they can be purged later if soft delete is enabled. $deletedKeyVaults = Get-AzKeyVault -ResourceGroupName $ResourceGroupName -ErrorAction Ignore | ForEach-Object { # Enumerating vaults from a resource group does not return all properties we required. Get-AzKeyVault -VaultName $_.VaultName -ErrorAction Ignore | Where-Object { $_.EnableSoftDelete } ` - | Add-Member -MemberType NoteProperty -Name AzsdkResourceType -Value 'Key Vault' -PassThru - } + | Add-Member -MemberType NoteProperty -Name AzsdkResourceType -Value 'Key Vault' -PassThru ` + | Add-Member -MemberType AliasProperty -Name AzsdkName -Value VaultName -PassThru + } if ($deletedKeyVaults) { Write-Verbose "Found $($deletedKeyVaults.Count) deleted Key Vaults to potentially purge." $purgeableResources += $deletedKeyVaults } - Write-Verbose "Retrieving deleted Managed HSMs from resource group $ResourceGroupName" - - # Get any Managed HSMs in the resource group, for which soft delete cannot be disabled. - $deletedHsms = Get-AzKeyVaultManagedHsm -ResourceGroupName $ResourceGroupName -ErrorAction Ignore ` - | Add-Member -MemberType NoteProperty -Name AzsdkResourceType -Value 'Managed HSM' -PassThru - - if ($deletedHsms) { - Write-Verbose "Found $($deletedHsms.Count) deleted Managed HSMs to potentially purge." - $purgeableResources += $deletedHsms - } - return $purgeableResources } + function Get-PurgeableResources { $purgeableResources = @() $subscriptionId = (Get-AzContext).Subscription.Id - Write-Verbose "Retrieving deleted Key Vaults from subscription $subscriptionId" - - # Get deleted Key Vaults for the current subscription. - $deletedKeyVaults = Get-AzKeyVault -InRemovedState ` - | Add-Member -MemberType NoteProperty -Name AzsdkResourceType -Value 'Key Vault' -PassThru - - if ($deletedKeyVaults) { - Write-Verbose "Found $($deletedKeyVaults.Count) deleted Key Vaults to potentially purge." - $purgeableResources += $deletedKeyVaults - } - + # Discover Managed HSMs first since they are a premium resource. Write-Verbose "Retrieving deleted Managed HSMs from subscription $subscriptionId" # Get deleted Managed HSMs for the current subscription. @@ -60,6 +54,7 @@ function Get-PurgeableResources { foreach ($r in $content.value) { $deletedHsms += [pscustomobject] @{ AzsdkResourceType = 'Managed HSM' + AzsdkName = $r.name Id = $r.id Name = $r.name Location = $r.properties.location @@ -75,6 +70,18 @@ function Get-PurgeableResources { } } + Write-Verbose "Retrieving deleted Key Vaults from subscription $subscriptionId" + + # Get deleted Key Vaults for the current subscription. + $deletedKeyVaults = Get-AzKeyVault -InRemovedState ` + | Add-Member -MemberType NoteProperty -Name AzsdkResourceType -Value 'Key Vault' -PassThru ` + | Add-Member -MemberType AliasProperty -Name AzsdkName -Value VaultName -PassThru + + if ($deletedKeyVaults) { + Write-Verbose "Found $($deletedKeyVaults.Count) deleted Key Vaults to potentially purge." + $purgeableResources += $deletedKeyVaults + } + return $purgeableResources } @@ -83,7 +90,14 @@ function Get-PurgeableResources { filter Remove-PurgeableResources { param ( [Parameter(Position=0, ValueFromPipeline=$true)] - [object[]] $Resource + [object[]] $Resource, + + [Parameter()] + [ValidateRange(1, [int]::MaxValue)] + [int] $Timeout = 30, + + [Parameter()] + [switch] $PassThru ) if (!$Resource) { @@ -93,38 +107,43 @@ filter Remove-PurgeableResources { $subscriptionId = (Get-AzContext).Subscription.Id foreach ($r in $Resource) { + Log "Attempting to purge $($r.AzsdkResourceType) '$($r.AzsdkName)'" switch ($r.AzsdkResourceType) { 'Key Vault' { - Log "Attempting to purge $($r.AzsdkResourceType) '$($r.VaultName)'" if ($r.EnablePurgeProtection) { - # We will try anyway but will ignore errors + # We will try anyway but will ignore errors. Write-Warning "Key Vault '$($r.VaultName)' has purge protection enabled and may not be purged for $($r.SoftDeleteRetentionInDays) days" } - Remove-AzKeyVault -VaultName $r.VaultName -Location $r.Location -InRemovedState -Force -ErrorAction Continue + # Use `-AsJob` to start a lightweight, cancellable job and pass to `Wait-PurgeableResoruceJob` for consistent behavior. + Remove-AzKeyVault -VaultName $r.VaultName -Location $r.Location -InRemovedState -Force -ErrorAction Continue -AsJob ` + | Wait-PurgeableResourceJob -Resource $r -Timeout $Timeout -PassThru:$PassThru } 'Managed HSM' { - Log "Attempting to purge $($r.AzsdkResourceType) '$($r.Name)'" if ($r.EnablePurgeProtection) { - # We will try anyway but will ignore errors + # We will try anyway but will ignore errors. Write-Warning "Managed HSM '$($r.Name)' has purge protection enabled and may not be purged for $($r.SoftDeleteRetentionInDays) days" } - $response = Invoke-AzRestMethod -Method POST -Path "/subscriptions/$subscriptionId/providers/Microsoft.KeyVault/locations/$($r.Location)/deletedManagedHSMs/$($r.Name)/purge?api-version=2021-04-01-preview" -ErrorAction Ignore - if ($response.StatusCode -ge 200 -and $response.StatusCode -lt 300) { - Write-Warning "Successfully requested that Managed HSM '$($r.Name)' be purged, but may take a few minutes before it is actually purged." - } elseif ($response.Content) { - $content = $response.Content | ConvertFrom-Json - if ($content.error) { - $err = $content.error - Write-Warning "Failed to deleted Managed HSM '$($r.Name)': ($($err.code)) $($err.message)" - } - } + # Use `GetNewClosure()` on the `-Action` ScriptBlock to make sure variables are captured. + Invoke-AzRestMethod -Method POST -Path "/subscriptions/$subscriptionId/providers/Microsoft.KeyVault/locations/$($r.Location)/deletedManagedHSMs/$($r.Name)/purge?api-version=2021-04-01-preview" -ErrorAction Ignore -AsJob ` + | Wait-PurgeableResourceJob -Resource $r -Timeout $Timeout -PassThru:$PassThru -Action { + param ( $response ) + if ($response.StatusCode -ge 200 -and $response.StatusCode -lt 300) { + Write-Warning "Successfully requested that Managed HSM '$($r.Name)' be purged, but may take a few minutes before it is actually purged." + } elseif ($response.Content) { + $content = $response.Content | ConvertFrom-Json + if ($content.error) { + $err = $content.error + Write-Warning "Failed to deleted Managed HSM '$($r.Name)': ($($err.code)) $($err.message)" + } + } + }.GetNewClosure() } default { - Write-Warning "Cannot purge resource type $($r.AzsdkResourceType). Add support to https://github.com/Azure/azure-sdk-tools/blob/main/eng/common/scripts/Helpers/Resource-Helpers.ps1." + Write-Warning "Cannot purge $($r.AzsdkResourceType) '$($r.AzsdkName)'. Add support to https://github.com/Azure/azure-sdk-tools/blob/main/eng/common/scripts/Helpers/Resource-Helpers.ps1." } } } @@ -134,3 +153,43 @@ filter Remove-PurgeableResources { function Log($Message) { Write-Host ('{0} - {1}' -f [DateTime]::Now.ToLongTimeString(), $Message) } + +function Wait-PurgeableResourceJob { + param ( + [Parameter(Mandatory=$true, ValueFromPipeline=$true)] + $Job, + + # The resource is used for logging and to return if `-PassThru` is specified + # so we can easily see all resources that may be in a bad state when the script has completed. + [Parameter(Mandatory=$true)] + $Resource, + + # Optional ScriptBlock should define params corresponding to the associated job's `Output` property. + [Parameter()] + [scriptblock] $Action, + + [Parameter()] + [ValidateRange(1, [int]::MaxValue)] + [int] $Timeout = 30, + + [Parameter()] + [switch] $PassThru + ) + + $null = Wait-Job -Job $Job -Timeout $Timeout + + if ($Job.State -eq 'Completed' -or $Job.State -eq 'Failed') { + $result = Receive-Job -Job $Job -ErrorAction Continue + + if ($Action) { + $null = $Action.Invoke($result) + } + } else { + Write-Warning "Timed out waiting to purge $($Resource.AzsdkResourceType) '$($Resource.AzsdkName)'. Cancelling job." + $Job.Cancel() + + if ($PassThru) { + $Resource + } + } +} From 849c91758db69fefaba3c51d2656a5828eb58543 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Wed, 18 Aug 2021 14:22:24 -0700 Subject: [PATCH 094/104] Fix query batch processing (#20345) Co-authored-by: Wes Haggard --- eng/common/scripts/Helpers/DevOps-WorkItem-Helpers.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/common/scripts/Helpers/DevOps-WorkItem-Helpers.ps1 b/eng/common/scripts/Helpers/DevOps-WorkItem-Helpers.ps1 index 24420cef2b66..81c2595fdc5d 100644 --- a/eng/common/scripts/Helpers/DevOps-WorkItem-Helpers.ps1 +++ b/eng/common/scripts/Helpers/DevOps-WorkItem-Helpers.ps1 @@ -62,7 +62,7 @@ function Invoke-Query($fields, $wiql, $output = $true) -Uri "https://dev.azure.com/azure-sdk/Release/_apis/wit/wiql/?`$top=10000&api-version=6.0" ` -Headers (Get-DevOpsRestHeaders) -Body $body -ContentType "application/json" | ConvertTo-Json -Depth 10 | ConvertFrom-Json -AsHashTable - if ($response -isnot [HashTable] -or !$response.ContainsKey("workItems")) { + if ($response -isnot [HashTable] -or !$response.ContainsKey("workItems") -or $response.workItems.Count -eq 0) { Write-Verbose "Query returned no items. $wiql" return ,@() } @@ -83,11 +83,11 @@ function Invoke-Query($fields, $wiql, $output = $true) Write-Verbose "Pulling work items $uri " $batchResponse = Invoke-RestMethod -Method GET -Uri $uri ` - -Headers $headers -ContentType "application/json" -MaximumRetryCount 3 | ConvertTo-Json -Depth 10 | ConvertFrom-Json -AsHashTable + -Headers (Get-DevOpsRestHeaders) -ContentType "application/json" -MaximumRetryCount 3 | ConvertTo-Json -Depth 10 | ConvertFrom-Json -AsHashTable if ($batchResponse.value) { - $batchResponse.value | % { $workItems += $_ } + $batchResponse.value | ForEach-Object { $workItems += $_ } } else { From 599ef478da0e7bdbf95bec203043c50437046feb Mon Sep 17 00:00:00 2001 From: Azure CLI Bot Date: Thu, 19 Aug 2021 10:01:21 +0800 Subject: [PATCH 095/104] [AutoRelease] t2-web-2021-08-03-73015 (#20053) * CodeGen from PR 15488 in Azure/azure-rest-api-specs Update web readme and readme.python (#15488) * Update web readme and readme.python * Update readme * version,CHANGELOG Co-authored-by: SDKAuto Co-authored-by: PythonSdkPipelines --- sdk/appservice/azure-mgmt-web/CHANGELOG.md | 16 + sdk/appservice/azure-mgmt-web/_meta.json | 10 +- .../azure/mgmt/web/_operations_mixin.py | 82 +- .../azure-mgmt-web/azure/mgmt/web/_version.py | 2 +- .../mgmt/web/_web_site_management_client.py | 60 +- .../azure/mgmt/web/aio/_operations_mixin.py | 82 +- .../web/aio/_web_site_management_client.py | 60 +- .../azure-mgmt-web/azure/mgmt/web/models.py | 2 +- .../azure/mgmt/web/v2015_04_01/_version.py | 2 +- .../azure/mgmt/web/v2015_08_01/_version.py | 2 +- .../azure/mgmt/web/v2016_03_01/_version.py | 2 +- .../azure/mgmt/web/v2016_08_01/_version.py | 2 +- .../azure/mgmt/web/v2016_09_01/_version.py | 2 +- .../azure/mgmt/web/v2018_02_01/_version.py | 2 +- .../azure/mgmt/web/v2018_11_01/_version.py | 2 +- .../azure/mgmt/web/v2019_08_01/_version.py | 2 +- .../mgmt/web/v2019_08_01/models/_models.py | 39 +- .../web/v2019_08_01/models/_models_py3.py | 43 +- .../azure/mgmt/web/v2020_06_01/_version.py | 2 +- .../mgmt/web/v2020_06_01/models/_models.py | 9 +- .../web/v2020_06_01/models/_models_py3.py | 10 +- .../azure/mgmt/web/v2020_09_01/_version.py | 2 +- .../mgmt/web/v2020_09_01/models/_models.py | 9 +- .../web/v2020_09_01/models/_models_py3.py | 10 +- .../azure/mgmt/web/v2020_12_01/_version.py | 2 +- .../mgmt/web/v2020_12_01/models/_models.py | 19 +- .../web/v2020_12_01/models/_models_py3.py | 21 +- .../azure/mgmt/web/v2021_01_01/_version.py | 2 +- .../mgmt/web/v2021_01_01/models/_models.py | 19 +- .../web/v2021_01_01/models/_models_py3.py | 21 +- .../azure/mgmt/web/v2021_01_15/__init__.py | 19 + .../mgmt/web/v2021_01_15/_configuration.py | 71 + .../azure/mgmt/web/v2021_01_15/_metadata.json | 330 + .../azure/mgmt/web/v2021_01_15/_version.py | 9 + .../_web_site_management_client.py | 175 + .../mgmt/web/v2021_01_15/aio/__init__.py | 10 + .../web/v2021_01_15/aio/_configuration.py | 67 + .../aio/_web_site_management_client.py | 168 + .../v2021_01_15/aio/operations/__init__.py | 49 + ...p_service_certificate_orders_operations.py | 1491 + .../_app_service_environments_operations.py | 3848 ++ .../_app_service_plans_operations.py | 1997 + ...rtificate_orders_diagnostics_operations.py | 201 + ...ficate_registration_provider_operations.py | 108 + .../operations/_certificates_operations.py | 447 + .../_deleted_web_apps_operations.py | 245 + .../aio/operations/_diagnostics_operations.py | 1774 + ...domain_registration_provider_operations.py | 108 + .../aio/operations/_domains_operations.py | 1119 + .../operations/_global_model_operations.py | 213 + .../_kube_environments_operations.py | 562 + .../aio/operations/_provider_operations.py | 546 + .../operations/_recommendations_operations.py | 1109 + .../_resource_health_metadata_operations.py | 471 + .../operations/_static_sites_operations.py | 4156 +++ .../_top_level_domains_operations.py | 252 + .../aio/operations/_web_apps_operations.py | 29762 +++++++++++++++ .../_web_site_management_client_operations.py | 1121 + .../mgmt/web/v2021_01_15/models/__init__.py | 1391 + .../mgmt/web/v2021_01_15/models/_models.py | 19458 ++++++++++ .../web/v2021_01_15/models/_models_py3.py | 21513 +++++++++++ .../_web_site_management_client_enums.py | 890 + .../web/v2021_01_15/operations/__init__.py | 49 + ...p_service_certificate_orders_operations.py | 1517 + .../_app_service_environments_operations.py | 3904 ++ .../_app_service_plans_operations.py | 2029 ++ ...rtificate_orders_diagnostics_operations.py | 207 + ...ficate_registration_provider_operations.py | 113 + .../operations/_certificates_operations.py | 457 + .../_deleted_web_apps_operations.py | 252 + .../operations/_diagnostics_operations.py | 1800 + ...domain_registration_provider_operations.py | 113 + .../operations/_domains_operations.py | 1139 + .../operations/_global_model_operations.py | 220 + .../_kube_environments_operations.py | 574 + .../operations/_provider_operations.py | 557 + .../operations/_recommendations_operations.py | 1128 + .../_resource_health_metadata_operations.py | 481 + .../operations/_static_sites_operations.py | 4221 +++ .../_top_level_domains_operations.py | 259 + .../operations/_web_apps_operations.py | 30191 ++++++++++++++++ .../_web_site_management_client_operations.py | 1142 + .../azure/mgmt/web/v2021_01_15/py.typed | 1 + 83 files changed, 144393 insertions(+), 179 deletions(-) create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/__init__.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/_configuration.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/_metadata.json create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/_version.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/_web_site_management_client.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/__init__.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/_configuration.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/_web_site_management_client.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/__init__.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_app_service_certificate_orders_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_app_service_environments_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_app_service_plans_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_certificate_orders_diagnostics_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_certificate_registration_provider_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_certificates_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_deleted_web_apps_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_diagnostics_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_domain_registration_provider_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_domains_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_global_model_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_kube_environments_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_provider_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_recommendations_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_resource_health_metadata_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_static_sites_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_top_level_domains_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_web_apps_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_web_site_management_client_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/models/__init__.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/models/_models.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/models/_models_py3.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/models/_web_site_management_client_enums.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/__init__.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_app_service_certificate_orders_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_app_service_environments_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_app_service_plans_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_certificate_orders_diagnostics_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_certificate_registration_provider_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_certificates_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_deleted_web_apps_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_diagnostics_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_domain_registration_provider_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_domains_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_global_model_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_kube_environments_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_provider_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_recommendations_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_resource_health_metadata_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_static_sites_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_top_level_domains_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_web_apps_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_web_site_management_client_operations.py create mode 100644 sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/py.typed diff --git a/sdk/appservice/azure-mgmt-web/CHANGELOG.md b/sdk/appservice/azure-mgmt-web/CHANGELOG.md index 435238629fd5..fd89d9fa32b8 100644 --- a/sdk/appservice/azure-mgmt-web/CHANGELOG.md +++ b/sdk/appservice/azure-mgmt-web/CHANGELOG.md @@ -1,5 +1,21 @@ # Release History +## 4.0.0 (2021-08-03) + +**Features** + + - Model AppServicePlan has a new parameter elastic_scale_enabled + - Added operation WebAppsOperations.update_swift_virtual_network_connection_with_check_slot + - Added operation WebAppsOperations.create_or_update_swift_virtual_network_connection_with_check_slot + - Added operation WebAppsOperations.update_swift_virtual_network_connection_with_check + - Added operation WebAppsOperations.list_basic_publishing_credentials_policies + - Added operation WebAppsOperations.list_basic_publishing_credentials_policies_slot + +**Breaking changes** + + - Removed operation WebAppsOperations.get_basic_publishing_credentials_policies_slot + - Removed operation WebAppsOperations.get_basic_publishing_credentials_policies + ## 3.0.0 (2021-05-25) **Features** diff --git a/sdk/appservice/azure-mgmt-web/_meta.json b/sdk/appservice/azure-mgmt-web/_meta.json index b048c8461f24..4b6cd04c9305 100644 --- a/sdk/appservice/azure-mgmt-web/_meta.json +++ b/sdk/appservice/azure-mgmt-web/_meta.json @@ -1,11 +1,11 @@ { - "autorest": "3.4.2", + "autorest": "3.4.5", "use": [ - "@autorest/python@5.8.0", - "@autorest/modelerfour@4.19.1" + "@autorest/python@5.8.4", + "@autorest/modelerfour@4.19.2" ], - "commit": "6f3b0ae9e4a5367c910eb573049bf1a75de6e62e", + "commit": "bc4218cfb4178d8af43046080c0c86402d182c3f", "repository_url": "https://github.com/Azure/azure-rest-api-specs", - "autorest_command": "autorest specification/web/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.8.0 --use=@autorest/modelerfour@4.19.1 --version=3.4.2", + "autorest_command": "autorest specification/web/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.8.4 --use=@autorest/modelerfour@4.19.2 --version=3.4.5", "readme": "specification/web/resource-manager/readme.md" } \ No newline at end of file diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/_operations_mixin.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/_operations_mixin.py index 365e62b11e1f..8bd8f32daadc 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/_operations_mixin.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/_operations_mixin.py @@ -39,12 +39,12 @@ def check_name_availability( :param name: Resource name to verify. :type name: str :param type: Resource type used for verification. - :type type: str or ~azure.mgmt.web.v2021_01_01.models.CheckNameResourceTypes + :type type: str or ~azure.mgmt.web.v2021_01_15.models.CheckNameResourceTypes :param is_fqdn: Is fully qualified domain name. :type is_fqdn: bool :keyword callable cls: A custom type or function that will be passed the direct response :return: ResourceNameAvailability, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.ResourceNameAvailability + :rtype: ~azure.mgmt.web.v2021_01_15.models.ResourceNameAvailability :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('check_name_availability') @@ -62,6 +62,8 @@ def check_name_availability( from .v2020_12_01.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'check_name_availability'".format(api_version)) mixin_instance = OperationClass() @@ -88,7 +90,7 @@ def generate_github_access_token_for_appservice_cli_async( :type state: str :keyword callable cls: A custom type or function that will be passed the direct response :return: AppserviceGithubToken, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.AppserviceGithubToken + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppserviceGithubToken :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('generate_github_access_token_for_appservice_cli_async') @@ -98,6 +100,8 @@ def generate_github_access_token_for_appservice_cli_async( from .v2020_12_01.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'generate_github_access_token_for_appservice_cli_async'".format(api_version)) mixin_instance = OperationClass() @@ -118,7 +122,7 @@ def get_publishing_user( :keyword callable cls: A custom type or function that will be passed the direct response :return: User, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.User + :rtype: ~azure.mgmt.web.v2021_01_15.models.User :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('get_publishing_user') @@ -136,6 +140,8 @@ def get_publishing_user( from .v2020_12_01.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'get_publishing_user'".format(api_version)) mixin_instance = OperationClass() @@ -159,7 +165,7 @@ def get_source_control( :type source_control_type: str :keyword callable cls: A custom type or function that will be passed the direct response :return: SourceControl, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.SourceControl + :rtype: ~azure.mgmt.web.v2021_01_15.models.SourceControl :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('get_source_control') @@ -177,6 +183,8 @@ def get_source_control( from .v2020_12_01.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'get_source_control'".format(api_version)) mixin_instance = OperationClass() @@ -197,7 +205,7 @@ def get_subscription_deployment_locations( :keyword callable cls: A custom type or function that will be passed the direct response :return: DeploymentLocations, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.DeploymentLocations + :rtype: ~azure.mgmt.web.v2021_01_15.models.DeploymentLocations :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('get_subscription_deployment_locations') @@ -215,6 +223,8 @@ def get_subscription_deployment_locations( from .v2020_12_01.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'get_subscription_deployment_locations'".format(api_version)) mixin_instance = OperationClass() @@ -241,7 +251,7 @@ def list_billing_meters( :type os_type: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either BillingMeterCollection or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_01.models.BillingMeterCollection] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.BillingMeterCollection] :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('list_billing_meters') @@ -257,6 +267,8 @@ def list_billing_meters( from .v2020_12_01.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'list_billing_meters'".format(api_version)) mixin_instance = OperationClass() @@ -280,7 +292,7 @@ def list_geo_regions( Description for Get a list of available geographical regions. :param sku: Name of SKU used to filter the regions. - :type sku: str or ~azure.mgmt.web.v2021_01_01.models.SkuName + :type sku: str or ~azure.mgmt.web.v2021_01_15.models.SkuName :param linux_workers_enabled: Specify :code:`true` if you want to filter to only regions that support Linux workers. :type linux_workers_enabled: bool @@ -292,7 +304,7 @@ def list_geo_regions( :type linux_dynamic_workers_enabled: bool :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either GeoRegionCollection or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_01.models.GeoRegionCollection] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.GeoRegionCollection] :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('list_geo_regions') @@ -310,6 +322,8 @@ def list_geo_regions( from .v2020_12_01.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'list_geo_regions'".format(api_version)) mixin_instance = OperationClass() @@ -330,7 +344,7 @@ def list_premier_add_on_offers( :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PremierAddOnOfferCollection or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_01.models.PremierAddOnOfferCollection] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.PremierAddOnOfferCollection] :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('list_premier_add_on_offers') @@ -348,6 +362,8 @@ def list_premier_add_on_offers( from .v2020_12_01.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'list_premier_add_on_offers'".format(api_version)) mixin_instance = OperationClass() @@ -368,10 +384,10 @@ def list_site_identifiers_assigned_to_host_name( Description for List all apps that are assigned to a hostname. :param name_identifier: Hostname information. - :type name_identifier: ~azure.mgmt.web.v2021_01_01.models.NameIdentifier + :type name_identifier: ~azure.mgmt.web.v2021_01_15.models.NameIdentifier :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either IdentifierCollection or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_01.models.IdentifierCollection] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.IdentifierCollection] :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('list_site_identifiers_assigned_to_host_name') @@ -389,6 +405,8 @@ def list_site_identifiers_assigned_to_host_name( from .v2020_12_01.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'list_site_identifiers_assigned_to_host_name'".format(api_version)) mixin_instance = OperationClass() @@ -409,7 +427,7 @@ def list_skus( :keyword callable cls: A custom type or function that will be passed the direct response :return: SkuInfos, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.SkuInfos + :rtype: ~azure.mgmt.web.v2021_01_15.models.SkuInfos :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('list_skus') @@ -427,6 +445,8 @@ def list_skus( from .v2020_12_01.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'list_skus'".format(api_version)) mixin_instance = OperationClass() @@ -447,7 +467,7 @@ def list_source_controls( :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either SourceControlCollection or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_01.models.SourceControlCollection] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.SourceControlCollection] :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('list_source_controls') @@ -465,6 +485,8 @@ def list_source_controls( from .v2020_12_01.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'list_source_controls'".format(api_version)) mixin_instance = OperationClass() @@ -488,7 +510,7 @@ def move( :param resource_group_name: Name of the resource group to which the resource belongs. :type resource_group_name: str :param move_resource_envelope: Object that represents the resource to move. - :type move_resource_envelope: ~azure.mgmt.web.v2021_01_01.models.CsmMoveResourceEnvelope + :type move_resource_envelope: ~azure.mgmt.web.v2021_01_15.models.CsmMoveResourceEnvelope :keyword callable cls: A custom type or function that will be passed the direct response :return: None, or the result of cls(response) :rtype: None @@ -509,6 +531,8 @@ def move( from .v2020_12_01.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'move'".format(api_version)) mixin_instance = OperationClass() @@ -529,10 +553,10 @@ def update_publishing_user( Description for Updates publishing user. :param user_details: Details of publishing user. - :type user_details: ~azure.mgmt.web.v2021_01_01.models.User + :type user_details: ~azure.mgmt.web.v2021_01_15.models.User :keyword callable cls: A custom type or function that will be passed the direct response :return: User, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.User + :rtype: ~azure.mgmt.web.v2021_01_15.models.User :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('update_publishing_user') @@ -550,6 +574,8 @@ def update_publishing_user( from .v2020_12_01.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'update_publishing_user'".format(api_version)) mixin_instance = OperationClass() @@ -573,10 +599,10 @@ def update_source_control( :param source_control_type: Type of source control. :type source_control_type: str :param request_message: Source control token information. - :type request_message: ~azure.mgmt.web.v2021_01_01.models.SourceControl + :type request_message: ~azure.mgmt.web.v2021_01_15.models.SourceControl :keyword callable cls: A custom type or function that will be passed the direct response :return: SourceControl, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.SourceControl + :rtype: ~azure.mgmt.web.v2021_01_15.models.SourceControl :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('update_source_control') @@ -594,6 +620,8 @@ def update_source_control( from .v2020_12_01.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'update_source_control'".format(api_version)) mixin_instance = OperationClass() @@ -617,10 +645,10 @@ def validate( :param resource_group_name: Name of the resource group to which the resource belongs. :type resource_group_name: str :param validate_request: Request with the resources to validate. - :type validate_request: ~azure.mgmt.web.v2021_01_01.models.ValidateRequest + :type validate_request: ~azure.mgmt.web.v2021_01_15.models.ValidateRequest :keyword callable cls: A custom type or function that will be passed the direct response :return: ValidateResponse, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.ValidateResponse + :rtype: ~azure.mgmt.web.v2021_01_15.models.ValidateResponse :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('validate') @@ -638,6 +666,8 @@ def validate( from .v2020_12_01.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'validate'".format(api_version)) mixin_instance = OperationClass() @@ -693,7 +723,7 @@ def validate_move( :param resource_group_name: Name of the resource group to which the resource belongs. :type resource_group_name: str :param move_resource_envelope: Object that represents the resource to move. - :type move_resource_envelope: ~azure.mgmt.web.v2021_01_01.models.CsmMoveResourceEnvelope + :type move_resource_envelope: ~azure.mgmt.web.v2021_01_15.models.CsmMoveResourceEnvelope :keyword callable cls: A custom type or function that will be passed the direct response :return: None, or the result of cls(response) :rtype: None @@ -714,6 +744,8 @@ def validate_move( from .v2020_12_01.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'validate_move'".format(api_version)) mixin_instance = OperationClass() @@ -735,10 +767,10 @@ def verify_hosting_environment_vnet( analyzing the Network Security Group rules. :param parameters: VNET information. - :type parameters: ~azure.mgmt.web.v2021_01_01.models.VnetParameters + :type parameters: ~azure.mgmt.web.v2021_01_15.models.VnetParameters :keyword callable cls: A custom type or function that will be passed the direct response :return: VnetValidationFailureDetails, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.VnetValidationFailureDetails + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetValidationFailureDetails :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('verify_hosting_environment_vnet') @@ -756,6 +788,8 @@ def verify_hosting_environment_vnet( from .v2020_12_01.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'verify_hosting_environment_vnet'".format(api_version)) mixin_instance = OperationClass() diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/_version.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/_version.py index cac9f5d10f8b..77f53a3589c6 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/_version.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "3.0.0" +VERSION = "4.0.0" diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/_web_site_management_client.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/_web_site_management_client.py index 651654a89b04..bca25adf2b53 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/_web_site_management_client.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/_web_site_management_client.py @@ -57,7 +57,7 @@ class WebSiteManagementClient(WebSiteManagementClientOperationsMixin, MultiApiCl :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. """ - DEFAULT_API_VERSION = '2021-01-01' + DEFAULT_API_VERSION = '2021-01-15' _PROFILE_TAG = "azure.mgmt.web.WebSiteManagementClient" LATEST_PROFILE = ProfileDefinition({ _PROFILE_TAG: { @@ -106,6 +106,7 @@ def models(cls, api_version=DEFAULT_API_VERSION): * 2020-09-01: :mod:`v2020_09_01.models` * 2020-12-01: :mod:`v2020_12_01.models` * 2021-01-01: :mod:`v2021_01_01.models` + * 2021-01-15: :mod:`v2021_01_15.models` """ if api_version == '2015-04-01': from .v2015_04_01 import models @@ -143,6 +144,9 @@ def models(cls, api_version=DEFAULT_API_VERSION): elif api_version == '2021-01-01': from .v2021_01_01 import models return models + elif api_version == '2021-01-15': + from .v2021_01_15 import models + return models raise ValueError("API version {} is not available".format(api_version)) @property @@ -156,6 +160,7 @@ def app_service_certificate_orders(self): * 2020-09-01: :class:`AppServiceCertificateOrdersOperations` * 2020-12-01: :class:`AppServiceCertificateOrdersOperations` * 2021-01-01: :class:`AppServiceCertificateOrdersOperations` + * 2021-01-15: :class:`AppServiceCertificateOrdersOperations` """ api_version = self._get_api_version('app_service_certificate_orders') if api_version == '2015-08-01': @@ -172,6 +177,8 @@ def app_service_certificate_orders(self): from .v2020_12_01.operations import AppServiceCertificateOrdersOperations as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import AppServiceCertificateOrdersOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import AppServiceCertificateOrdersOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'app_service_certificate_orders'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -187,6 +194,7 @@ def app_service_environments(self): * 2020-09-01: :class:`AppServiceEnvironmentsOperations` * 2020-12-01: :class:`AppServiceEnvironmentsOperations` * 2021-01-01: :class:`AppServiceEnvironmentsOperations` + * 2021-01-15: :class:`AppServiceEnvironmentsOperations` """ api_version = self._get_api_version('app_service_environments') if api_version == '2016-09-01': @@ -203,6 +211,8 @@ def app_service_environments(self): from .v2020_12_01.operations import AppServiceEnvironmentsOperations as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import AppServiceEnvironmentsOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import AppServiceEnvironmentsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'app_service_environments'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -218,6 +228,7 @@ def app_service_plans(self): * 2020-09-01: :class:`AppServicePlansOperations` * 2020-12-01: :class:`AppServicePlansOperations` * 2021-01-01: :class:`AppServicePlansOperations` + * 2021-01-15: :class:`AppServicePlansOperations` """ api_version = self._get_api_version('app_service_plans') if api_version == '2016-09-01': @@ -234,6 +245,8 @@ def app_service_plans(self): from .v2020_12_01.operations import AppServicePlansOperations as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import AppServicePlansOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import AppServicePlansOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'app_service_plans'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -257,12 +270,15 @@ def certificate_orders_diagnostics(self): * 2020-12-01: :class:`CertificateOrdersDiagnosticsOperations` * 2021-01-01: :class:`CertificateOrdersDiagnosticsOperations` + * 2021-01-15: :class:`CertificateOrdersDiagnosticsOperations` """ api_version = self._get_api_version('certificate_orders_diagnostics') if api_version == '2020-12-01': from .v2020_12_01.operations import CertificateOrdersDiagnosticsOperations as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import CertificateOrdersDiagnosticsOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import CertificateOrdersDiagnosticsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'certificate_orders_diagnostics'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -278,6 +294,7 @@ def certificate_registration_provider(self): * 2020-09-01: :class:`CertificateRegistrationProviderOperations` * 2020-12-01: :class:`CertificateRegistrationProviderOperations` * 2021-01-01: :class:`CertificateRegistrationProviderOperations` + * 2021-01-15: :class:`CertificateRegistrationProviderOperations` """ api_version = self._get_api_version('certificate_registration_provider') if api_version == '2015-08-01': @@ -294,6 +311,8 @@ def certificate_registration_provider(self): from .v2020_12_01.operations import CertificateRegistrationProviderOperations as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import CertificateRegistrationProviderOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import CertificateRegistrationProviderOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'certificate_registration_provider'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -310,6 +329,7 @@ def certificates(self): * 2020-09-01: :class:`CertificatesOperations` * 2020-12-01: :class:`CertificatesOperations` * 2021-01-01: :class:`CertificatesOperations` + * 2021-01-15: :class:`CertificatesOperations` """ api_version = self._get_api_version('certificates') if api_version == '2016-03-01': @@ -328,6 +348,8 @@ def certificates(self): from .v2020_12_01.operations import CertificatesOperations as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import CertificatesOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import CertificatesOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'certificates'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -343,6 +365,7 @@ def deleted_web_apps(self): * 2020-09-01: :class:`DeletedWebAppsOperations` * 2020-12-01: :class:`DeletedWebAppsOperations` * 2021-01-01: :class:`DeletedWebAppsOperations` + * 2021-01-15: :class:`DeletedWebAppsOperations` """ api_version = self._get_api_version('deleted_web_apps') if api_version == '2016-03-01': @@ -359,6 +382,8 @@ def deleted_web_apps(self): from .v2020_12_01.operations import DeletedWebAppsOperations as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import DeletedWebAppsOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import DeletedWebAppsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'deleted_web_apps'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -374,6 +399,7 @@ def diagnostics(self): * 2020-09-01: :class:`DiagnosticsOperations` * 2020-12-01: :class:`DiagnosticsOperations` * 2021-01-01: :class:`DiagnosticsOperations` + * 2021-01-15: :class:`DiagnosticsOperations` """ api_version = self._get_api_version('diagnostics') if api_version == '2016-03-01': @@ -390,6 +416,8 @@ def diagnostics(self): from .v2020_12_01.operations import DiagnosticsOperations as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import DiagnosticsOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import DiagnosticsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'diagnostics'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -405,6 +433,7 @@ def domain_registration_provider(self): * 2020-09-01: :class:`DomainRegistrationProviderOperations` * 2020-12-01: :class:`DomainRegistrationProviderOperations` * 2021-01-01: :class:`DomainRegistrationProviderOperations` + * 2021-01-15: :class:`DomainRegistrationProviderOperations` """ api_version = self._get_api_version('domain_registration_provider') if api_version == '2015-04-01': @@ -421,6 +450,8 @@ def domain_registration_provider(self): from .v2020_12_01.operations import DomainRegistrationProviderOperations as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import DomainRegistrationProviderOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import DomainRegistrationProviderOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'domain_registration_provider'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -436,6 +467,7 @@ def domains(self): * 2020-09-01: :class:`DomainsOperations` * 2020-12-01: :class:`DomainsOperations` * 2021-01-01: :class:`DomainsOperations` + * 2021-01-15: :class:`DomainsOperations` """ api_version = self._get_api_version('domains') if api_version == '2015-04-01': @@ -452,6 +484,8 @@ def domains(self): from .v2020_12_01.operations import DomainsOperations as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import DomainsOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import DomainsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'domains'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -462,12 +496,15 @@ def global_model(self): * 2020-12-01: :class:`GlobalOperations` * 2021-01-01: :class:`GlobalOperations` + * 2021-01-15: :class:`GlobalOperations` """ api_version = self._get_api_version('global_model') if api_version == '2020-12-01': from .v2020_12_01.operations import GlobalOperations as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import GlobalOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import GlobalOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'global_model'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -477,10 +514,13 @@ def kube_environments(self): """Instance depends on the API version: * 2021-01-01: :class:`KubeEnvironmentsOperations` + * 2021-01-15: :class:`KubeEnvironmentsOperations` """ api_version = self._get_api_version('kube_environments') if api_version == '2021-01-01': from .v2021_01_01.operations import KubeEnvironmentsOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import KubeEnvironmentsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'kube_environments'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -496,6 +536,7 @@ def provider(self): * 2020-09-01: :class:`ProviderOperations` * 2020-12-01: :class:`ProviderOperations` * 2021-01-01: :class:`ProviderOperations` + * 2021-01-15: :class:`ProviderOperations` """ api_version = self._get_api_version('provider') if api_version == '2016-03-01': @@ -512,6 +553,8 @@ def provider(self): from .v2020_12_01.operations import ProviderOperations as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import ProviderOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import ProviderOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'provider'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -527,6 +570,7 @@ def recommendations(self): * 2020-09-01: :class:`RecommendationsOperations` * 2020-12-01: :class:`RecommendationsOperations` * 2021-01-01: :class:`RecommendationsOperations` + * 2021-01-15: :class:`RecommendationsOperations` """ api_version = self._get_api_version('recommendations') if api_version == '2016-03-01': @@ -543,6 +587,8 @@ def recommendations(self): from .v2020_12_01.operations import RecommendationsOperations as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import RecommendationsOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import RecommendationsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'recommendations'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -558,6 +604,7 @@ def resource_health_metadata(self): * 2020-09-01: :class:`ResourceHealthMetadataOperations` * 2020-12-01: :class:`ResourceHealthMetadataOperations` * 2021-01-01: :class:`ResourceHealthMetadataOperations` + * 2021-01-15: :class:`ResourceHealthMetadataOperations` """ api_version = self._get_api_version('resource_health_metadata') if api_version == '2016-03-01': @@ -574,6 +621,8 @@ def resource_health_metadata(self): from .v2020_12_01.operations import ResourceHealthMetadataOperations as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import ResourceHealthMetadataOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import ResourceHealthMetadataOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'resource_health_metadata'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -587,6 +636,7 @@ def static_sites(self): * 2020-09-01: :class:`StaticSitesOperations` * 2020-12-01: :class:`StaticSitesOperations` * 2021-01-01: :class:`StaticSitesOperations` + * 2021-01-15: :class:`StaticSitesOperations` """ api_version = self._get_api_version('static_sites') if api_version == '2019-08-01': @@ -599,6 +649,8 @@ def static_sites(self): from .v2020_12_01.operations import StaticSitesOperations as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import StaticSitesOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import StaticSitesOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'static_sites'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -614,6 +666,7 @@ def top_level_domains(self): * 2020-09-01: :class:`TopLevelDomainsOperations` * 2020-12-01: :class:`TopLevelDomainsOperations` * 2021-01-01: :class:`TopLevelDomainsOperations` + * 2021-01-15: :class:`TopLevelDomainsOperations` """ api_version = self._get_api_version('top_level_domains') if api_version == '2015-04-01': @@ -630,6 +683,8 @@ def top_level_domains(self): from .v2020_12_01.operations import TopLevelDomainsOperations as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import TopLevelDomainsOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import TopLevelDomainsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'top_level_domains'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -645,6 +700,7 @@ def web_apps(self): * 2020-09-01: :class:`WebAppsOperations` * 2020-12-01: :class:`WebAppsOperations` * 2021-01-01: :class:`WebAppsOperations` + * 2021-01-15: :class:`WebAppsOperations` """ api_version = self._get_api_version('web_apps') if api_version == '2016-08-01': @@ -661,6 +717,8 @@ def web_apps(self): from .v2020_12_01.operations import WebAppsOperations as OperationClass elif api_version == '2021-01-01': from .v2021_01_01.operations import WebAppsOperations as OperationClass + elif api_version == '2021-01-15': + from .v2021_01_15.operations import WebAppsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'web_apps'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/aio/_operations_mixin.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/aio/_operations_mixin.py index 412be0fed368..b6881759265a 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/aio/_operations_mixin.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/aio/_operations_mixin.py @@ -35,12 +35,12 @@ async def check_name_availability( :param name: Resource name to verify. :type name: str :param type: Resource type used for verification. - :type type: str or ~azure.mgmt.web.v2021_01_01.models.CheckNameResourceTypes + :type type: str or ~azure.mgmt.web.v2021_01_15.models.CheckNameResourceTypes :param is_fqdn: Is fully qualified domain name. :type is_fqdn: bool :keyword callable cls: A custom type or function that will be passed the direct response :return: ResourceNameAvailability, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.ResourceNameAvailability + :rtype: ~azure.mgmt.web.v2021_01_15.models.ResourceNameAvailability :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('check_name_availability') @@ -58,6 +58,8 @@ async def check_name_availability( from ..v2020_12_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'check_name_availability'".format(api_version)) mixin_instance = OperationClass() @@ -84,7 +86,7 @@ async def generate_github_access_token_for_appservice_cli_async( :type state: str :keyword callable cls: A custom type or function that will be passed the direct response :return: AppserviceGithubToken, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.AppserviceGithubToken + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppserviceGithubToken :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('generate_github_access_token_for_appservice_cli_async') @@ -94,6 +96,8 @@ async def generate_github_access_token_for_appservice_cli_async( from ..v2020_12_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'generate_github_access_token_for_appservice_cli_async'".format(api_version)) mixin_instance = OperationClass() @@ -114,7 +118,7 @@ async def get_publishing_user( :keyword callable cls: A custom type or function that will be passed the direct response :return: User, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.User + :rtype: ~azure.mgmt.web.v2021_01_15.models.User :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('get_publishing_user') @@ -132,6 +136,8 @@ async def get_publishing_user( from ..v2020_12_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'get_publishing_user'".format(api_version)) mixin_instance = OperationClass() @@ -155,7 +161,7 @@ async def get_source_control( :type source_control_type: str :keyword callable cls: A custom type or function that will be passed the direct response :return: SourceControl, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.SourceControl + :rtype: ~azure.mgmt.web.v2021_01_15.models.SourceControl :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('get_source_control') @@ -173,6 +179,8 @@ async def get_source_control( from ..v2020_12_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'get_source_control'".format(api_version)) mixin_instance = OperationClass() @@ -193,7 +201,7 @@ async def get_subscription_deployment_locations( :keyword callable cls: A custom type or function that will be passed the direct response :return: DeploymentLocations, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.DeploymentLocations + :rtype: ~azure.mgmt.web.v2021_01_15.models.DeploymentLocations :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('get_subscription_deployment_locations') @@ -211,6 +219,8 @@ async def get_subscription_deployment_locations( from ..v2020_12_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'get_subscription_deployment_locations'".format(api_version)) mixin_instance = OperationClass() @@ -237,7 +247,7 @@ def list_billing_meters( :type os_type: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either BillingMeterCollection or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_01.models.BillingMeterCollection] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.BillingMeterCollection] :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('list_billing_meters') @@ -253,6 +263,8 @@ def list_billing_meters( from ..v2020_12_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'list_billing_meters'".format(api_version)) mixin_instance = OperationClass() @@ -276,7 +288,7 @@ def list_geo_regions( Description for Get a list of available geographical regions. :param sku: Name of SKU used to filter the regions. - :type sku: str or ~azure.mgmt.web.v2021_01_01.models.SkuName + :type sku: str or ~azure.mgmt.web.v2021_01_15.models.SkuName :param linux_workers_enabled: Specify :code:`true` if you want to filter to only regions that support Linux workers. :type linux_workers_enabled: bool @@ -288,7 +300,7 @@ def list_geo_regions( :type linux_dynamic_workers_enabled: bool :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either GeoRegionCollection or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_01.models.GeoRegionCollection] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.GeoRegionCollection] :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('list_geo_regions') @@ -306,6 +318,8 @@ def list_geo_regions( from ..v2020_12_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'list_geo_regions'".format(api_version)) mixin_instance = OperationClass() @@ -326,7 +340,7 @@ def list_premier_add_on_offers( :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either PremierAddOnOfferCollection or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_01.models.PremierAddOnOfferCollection] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.PremierAddOnOfferCollection] :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('list_premier_add_on_offers') @@ -344,6 +358,8 @@ def list_premier_add_on_offers( from ..v2020_12_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'list_premier_add_on_offers'".format(api_version)) mixin_instance = OperationClass() @@ -364,10 +380,10 @@ def list_site_identifiers_assigned_to_host_name( Description for List all apps that are assigned to a hostname. :param name_identifier: Hostname information. - :type name_identifier: ~azure.mgmt.web.v2021_01_01.models.NameIdentifier + :type name_identifier: ~azure.mgmt.web.v2021_01_15.models.NameIdentifier :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either IdentifierCollection or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_01.models.IdentifierCollection] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.IdentifierCollection] :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('list_site_identifiers_assigned_to_host_name') @@ -385,6 +401,8 @@ def list_site_identifiers_assigned_to_host_name( from ..v2020_12_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'list_site_identifiers_assigned_to_host_name'".format(api_version)) mixin_instance = OperationClass() @@ -405,7 +423,7 @@ async def list_skus( :keyword callable cls: A custom type or function that will be passed the direct response :return: SkuInfos, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.SkuInfos + :rtype: ~azure.mgmt.web.v2021_01_15.models.SkuInfos :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('list_skus') @@ -423,6 +441,8 @@ async def list_skus( from ..v2020_12_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'list_skus'".format(api_version)) mixin_instance = OperationClass() @@ -443,7 +463,7 @@ def list_source_controls( :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either SourceControlCollection or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_01.models.SourceControlCollection] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.SourceControlCollection] :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('list_source_controls') @@ -461,6 +481,8 @@ def list_source_controls( from ..v2020_12_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'list_source_controls'".format(api_version)) mixin_instance = OperationClass() @@ -484,7 +506,7 @@ async def move( :param resource_group_name: Name of the resource group to which the resource belongs. :type resource_group_name: str :param move_resource_envelope: Object that represents the resource to move. - :type move_resource_envelope: ~azure.mgmt.web.v2021_01_01.models.CsmMoveResourceEnvelope + :type move_resource_envelope: ~azure.mgmt.web.v2021_01_15.models.CsmMoveResourceEnvelope :keyword callable cls: A custom type or function that will be passed the direct response :return: None, or the result of cls(response) :rtype: None @@ -505,6 +527,8 @@ async def move( from ..v2020_12_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'move'".format(api_version)) mixin_instance = OperationClass() @@ -525,10 +549,10 @@ async def update_publishing_user( Description for Updates publishing user. :param user_details: Details of publishing user. - :type user_details: ~azure.mgmt.web.v2021_01_01.models.User + :type user_details: ~azure.mgmt.web.v2021_01_15.models.User :keyword callable cls: A custom type or function that will be passed the direct response :return: User, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.User + :rtype: ~azure.mgmt.web.v2021_01_15.models.User :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('update_publishing_user') @@ -546,6 +570,8 @@ async def update_publishing_user( from ..v2020_12_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'update_publishing_user'".format(api_version)) mixin_instance = OperationClass() @@ -569,10 +595,10 @@ async def update_source_control( :param source_control_type: Type of source control. :type source_control_type: str :param request_message: Source control token information. - :type request_message: ~azure.mgmt.web.v2021_01_01.models.SourceControl + :type request_message: ~azure.mgmt.web.v2021_01_15.models.SourceControl :keyword callable cls: A custom type or function that will be passed the direct response :return: SourceControl, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.SourceControl + :rtype: ~azure.mgmt.web.v2021_01_15.models.SourceControl :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('update_source_control') @@ -590,6 +616,8 @@ async def update_source_control( from ..v2020_12_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'update_source_control'".format(api_version)) mixin_instance = OperationClass() @@ -613,10 +641,10 @@ async def validate( :param resource_group_name: Name of the resource group to which the resource belongs. :type resource_group_name: str :param validate_request: Request with the resources to validate. - :type validate_request: ~azure.mgmt.web.v2021_01_01.models.ValidateRequest + :type validate_request: ~azure.mgmt.web.v2021_01_15.models.ValidateRequest :keyword callable cls: A custom type or function that will be passed the direct response :return: ValidateResponse, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.ValidateResponse + :rtype: ~azure.mgmt.web.v2021_01_15.models.ValidateResponse :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('validate') @@ -634,6 +662,8 @@ async def validate( from ..v2020_12_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'validate'".format(api_version)) mixin_instance = OperationClass() @@ -689,7 +719,7 @@ async def validate_move( :param resource_group_name: Name of the resource group to which the resource belongs. :type resource_group_name: str :param move_resource_envelope: Object that represents the resource to move. - :type move_resource_envelope: ~azure.mgmt.web.v2021_01_01.models.CsmMoveResourceEnvelope + :type move_resource_envelope: ~azure.mgmt.web.v2021_01_15.models.CsmMoveResourceEnvelope :keyword callable cls: A custom type or function that will be passed the direct response :return: None, or the result of cls(response) :rtype: None @@ -710,6 +740,8 @@ async def validate_move( from ..v2020_12_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'validate_move'".format(api_version)) mixin_instance = OperationClass() @@ -731,10 +763,10 @@ async def verify_hosting_environment_vnet( analyzing the Network Security Group rules. :param parameters: VNET information. - :type parameters: ~azure.mgmt.web.v2021_01_01.models.VnetParameters + :type parameters: ~azure.mgmt.web.v2021_01_15.models.VnetParameters :keyword callable cls: A custom type or function that will be passed the direct response :return: VnetValidationFailureDetails, or the result of cls(response) - :rtype: ~azure.mgmt.web.v2021_01_01.models.VnetValidationFailureDetails + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetValidationFailureDetails :raises: ~azure.core.exceptions.HttpResponseError """ api_version = self._get_api_version('verify_hosting_environment_vnet') @@ -752,6 +784,8 @@ async def verify_hosting_environment_vnet( from ..v2020_12_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebSiteManagementClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'verify_hosting_environment_vnet'".format(api_version)) mixin_instance = OperationClass() diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/aio/_web_site_management_client.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/aio/_web_site_management_client.py index a2ad85b19107..f220cc70f4cb 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/aio/_web_site_management_client.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/aio/_web_site_management_client.py @@ -55,7 +55,7 @@ class WebSiteManagementClient(WebSiteManagementClientOperationsMixin, MultiApiCl :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. """ - DEFAULT_API_VERSION = '2021-01-01' + DEFAULT_API_VERSION = '2021-01-15' _PROFILE_TAG = "azure.mgmt.web.WebSiteManagementClient" LATEST_PROFILE = ProfileDefinition({ _PROFILE_TAG: { @@ -104,6 +104,7 @@ def models(cls, api_version=DEFAULT_API_VERSION): * 2020-09-01: :mod:`v2020_09_01.models` * 2020-12-01: :mod:`v2020_12_01.models` * 2021-01-01: :mod:`v2021_01_01.models` + * 2021-01-15: :mod:`v2021_01_15.models` """ if api_version == '2015-04-01': from ..v2015_04_01 import models @@ -141,6 +142,9 @@ def models(cls, api_version=DEFAULT_API_VERSION): elif api_version == '2021-01-01': from ..v2021_01_01 import models return models + elif api_version == '2021-01-15': + from ..v2021_01_15 import models + return models raise ValueError("API version {} is not available".format(api_version)) @property @@ -154,6 +158,7 @@ def app_service_certificate_orders(self): * 2020-09-01: :class:`AppServiceCertificateOrdersOperations` * 2020-12-01: :class:`AppServiceCertificateOrdersOperations` * 2021-01-01: :class:`AppServiceCertificateOrdersOperations` + * 2021-01-15: :class:`AppServiceCertificateOrdersOperations` """ api_version = self._get_api_version('app_service_certificate_orders') if api_version == '2015-08-01': @@ -170,6 +175,8 @@ def app_service_certificate_orders(self): from ..v2020_12_01.aio.operations import AppServiceCertificateOrdersOperations as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import AppServiceCertificateOrdersOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import AppServiceCertificateOrdersOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'app_service_certificate_orders'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -185,6 +192,7 @@ def app_service_environments(self): * 2020-09-01: :class:`AppServiceEnvironmentsOperations` * 2020-12-01: :class:`AppServiceEnvironmentsOperations` * 2021-01-01: :class:`AppServiceEnvironmentsOperations` + * 2021-01-15: :class:`AppServiceEnvironmentsOperations` """ api_version = self._get_api_version('app_service_environments') if api_version == '2016-09-01': @@ -201,6 +209,8 @@ def app_service_environments(self): from ..v2020_12_01.aio.operations import AppServiceEnvironmentsOperations as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import AppServiceEnvironmentsOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import AppServiceEnvironmentsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'app_service_environments'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -216,6 +226,7 @@ def app_service_plans(self): * 2020-09-01: :class:`AppServicePlansOperations` * 2020-12-01: :class:`AppServicePlansOperations` * 2021-01-01: :class:`AppServicePlansOperations` + * 2021-01-15: :class:`AppServicePlansOperations` """ api_version = self._get_api_version('app_service_plans') if api_version == '2016-09-01': @@ -232,6 +243,8 @@ def app_service_plans(self): from ..v2020_12_01.aio.operations import AppServicePlansOperations as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import AppServicePlansOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import AppServicePlansOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'app_service_plans'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -255,12 +268,15 @@ def certificate_orders_diagnostics(self): * 2020-12-01: :class:`CertificateOrdersDiagnosticsOperations` * 2021-01-01: :class:`CertificateOrdersDiagnosticsOperations` + * 2021-01-15: :class:`CertificateOrdersDiagnosticsOperations` """ api_version = self._get_api_version('certificate_orders_diagnostics') if api_version == '2020-12-01': from ..v2020_12_01.aio.operations import CertificateOrdersDiagnosticsOperations as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import CertificateOrdersDiagnosticsOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import CertificateOrdersDiagnosticsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'certificate_orders_diagnostics'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -276,6 +292,7 @@ def certificate_registration_provider(self): * 2020-09-01: :class:`CertificateRegistrationProviderOperations` * 2020-12-01: :class:`CertificateRegistrationProviderOperations` * 2021-01-01: :class:`CertificateRegistrationProviderOperations` + * 2021-01-15: :class:`CertificateRegistrationProviderOperations` """ api_version = self._get_api_version('certificate_registration_provider') if api_version == '2015-08-01': @@ -292,6 +309,8 @@ def certificate_registration_provider(self): from ..v2020_12_01.aio.operations import CertificateRegistrationProviderOperations as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import CertificateRegistrationProviderOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import CertificateRegistrationProviderOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'certificate_registration_provider'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -308,6 +327,7 @@ def certificates(self): * 2020-09-01: :class:`CertificatesOperations` * 2020-12-01: :class:`CertificatesOperations` * 2021-01-01: :class:`CertificatesOperations` + * 2021-01-15: :class:`CertificatesOperations` """ api_version = self._get_api_version('certificates') if api_version == '2016-03-01': @@ -326,6 +346,8 @@ def certificates(self): from ..v2020_12_01.aio.operations import CertificatesOperations as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import CertificatesOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import CertificatesOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'certificates'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -341,6 +363,7 @@ def deleted_web_apps(self): * 2020-09-01: :class:`DeletedWebAppsOperations` * 2020-12-01: :class:`DeletedWebAppsOperations` * 2021-01-01: :class:`DeletedWebAppsOperations` + * 2021-01-15: :class:`DeletedWebAppsOperations` """ api_version = self._get_api_version('deleted_web_apps') if api_version == '2016-03-01': @@ -357,6 +380,8 @@ def deleted_web_apps(self): from ..v2020_12_01.aio.operations import DeletedWebAppsOperations as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import DeletedWebAppsOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import DeletedWebAppsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'deleted_web_apps'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -372,6 +397,7 @@ def diagnostics(self): * 2020-09-01: :class:`DiagnosticsOperations` * 2020-12-01: :class:`DiagnosticsOperations` * 2021-01-01: :class:`DiagnosticsOperations` + * 2021-01-15: :class:`DiagnosticsOperations` """ api_version = self._get_api_version('diagnostics') if api_version == '2016-03-01': @@ -388,6 +414,8 @@ def diagnostics(self): from ..v2020_12_01.aio.operations import DiagnosticsOperations as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import DiagnosticsOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import DiagnosticsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'diagnostics'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -403,6 +431,7 @@ def domain_registration_provider(self): * 2020-09-01: :class:`DomainRegistrationProviderOperations` * 2020-12-01: :class:`DomainRegistrationProviderOperations` * 2021-01-01: :class:`DomainRegistrationProviderOperations` + * 2021-01-15: :class:`DomainRegistrationProviderOperations` """ api_version = self._get_api_version('domain_registration_provider') if api_version == '2015-04-01': @@ -419,6 +448,8 @@ def domain_registration_provider(self): from ..v2020_12_01.aio.operations import DomainRegistrationProviderOperations as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import DomainRegistrationProviderOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import DomainRegistrationProviderOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'domain_registration_provider'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -434,6 +465,7 @@ def domains(self): * 2020-09-01: :class:`DomainsOperations` * 2020-12-01: :class:`DomainsOperations` * 2021-01-01: :class:`DomainsOperations` + * 2021-01-15: :class:`DomainsOperations` """ api_version = self._get_api_version('domains') if api_version == '2015-04-01': @@ -450,6 +482,8 @@ def domains(self): from ..v2020_12_01.aio.operations import DomainsOperations as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import DomainsOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import DomainsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'domains'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -460,12 +494,15 @@ def global_model(self): * 2020-12-01: :class:`GlobalOperations` * 2021-01-01: :class:`GlobalOperations` + * 2021-01-15: :class:`GlobalOperations` """ api_version = self._get_api_version('global_model') if api_version == '2020-12-01': from ..v2020_12_01.aio.operations import GlobalOperations as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import GlobalOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import GlobalOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'global_model'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -475,10 +512,13 @@ def kube_environments(self): """Instance depends on the API version: * 2021-01-01: :class:`KubeEnvironmentsOperations` + * 2021-01-15: :class:`KubeEnvironmentsOperations` """ api_version = self._get_api_version('kube_environments') if api_version == '2021-01-01': from ..v2021_01_01.aio.operations import KubeEnvironmentsOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import KubeEnvironmentsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'kube_environments'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -494,6 +534,7 @@ def provider(self): * 2020-09-01: :class:`ProviderOperations` * 2020-12-01: :class:`ProviderOperations` * 2021-01-01: :class:`ProviderOperations` + * 2021-01-15: :class:`ProviderOperations` """ api_version = self._get_api_version('provider') if api_version == '2016-03-01': @@ -510,6 +551,8 @@ def provider(self): from ..v2020_12_01.aio.operations import ProviderOperations as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import ProviderOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import ProviderOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'provider'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -525,6 +568,7 @@ def recommendations(self): * 2020-09-01: :class:`RecommendationsOperations` * 2020-12-01: :class:`RecommendationsOperations` * 2021-01-01: :class:`RecommendationsOperations` + * 2021-01-15: :class:`RecommendationsOperations` """ api_version = self._get_api_version('recommendations') if api_version == '2016-03-01': @@ -541,6 +585,8 @@ def recommendations(self): from ..v2020_12_01.aio.operations import RecommendationsOperations as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import RecommendationsOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import RecommendationsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'recommendations'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -556,6 +602,7 @@ def resource_health_metadata(self): * 2020-09-01: :class:`ResourceHealthMetadataOperations` * 2020-12-01: :class:`ResourceHealthMetadataOperations` * 2021-01-01: :class:`ResourceHealthMetadataOperations` + * 2021-01-15: :class:`ResourceHealthMetadataOperations` """ api_version = self._get_api_version('resource_health_metadata') if api_version == '2016-03-01': @@ -572,6 +619,8 @@ def resource_health_metadata(self): from ..v2020_12_01.aio.operations import ResourceHealthMetadataOperations as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import ResourceHealthMetadataOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import ResourceHealthMetadataOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'resource_health_metadata'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -585,6 +634,7 @@ def static_sites(self): * 2020-09-01: :class:`StaticSitesOperations` * 2020-12-01: :class:`StaticSitesOperations` * 2021-01-01: :class:`StaticSitesOperations` + * 2021-01-15: :class:`StaticSitesOperations` """ api_version = self._get_api_version('static_sites') if api_version == '2019-08-01': @@ -597,6 +647,8 @@ def static_sites(self): from ..v2020_12_01.aio.operations import StaticSitesOperations as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import StaticSitesOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import StaticSitesOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'static_sites'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -612,6 +664,7 @@ def top_level_domains(self): * 2020-09-01: :class:`TopLevelDomainsOperations` * 2020-12-01: :class:`TopLevelDomainsOperations` * 2021-01-01: :class:`TopLevelDomainsOperations` + * 2021-01-15: :class:`TopLevelDomainsOperations` """ api_version = self._get_api_version('top_level_domains') if api_version == '2015-04-01': @@ -628,6 +681,8 @@ def top_level_domains(self): from ..v2020_12_01.aio.operations import TopLevelDomainsOperations as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import TopLevelDomainsOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import TopLevelDomainsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'top_level_domains'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -643,6 +698,7 @@ def web_apps(self): * 2020-09-01: :class:`WebAppsOperations` * 2020-12-01: :class:`WebAppsOperations` * 2021-01-01: :class:`WebAppsOperations` + * 2021-01-15: :class:`WebAppsOperations` """ api_version = self._get_api_version('web_apps') if api_version == '2016-08-01': @@ -659,6 +715,8 @@ def web_apps(self): from ..v2020_12_01.aio.operations import WebAppsOperations as OperationClass elif api_version == '2021-01-01': from ..v2021_01_01.aio.operations import WebAppsOperations as OperationClass + elif api_version == '2021-01-15': + from ..v2021_01_15.aio.operations import WebAppsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'web_apps'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/models.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/models.py index ee82660221cb..bca11c7b6d90 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/models.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/models.py @@ -6,4 +6,4 @@ # -------------------------------------------------------------------------- from .v2016_03_01.models import * from .v2018_02_01.models import * -from .v2021_01_01.models import * +from .v2021_01_15.models import * diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2015_04_01/_version.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2015_04_01/_version.py index cac9f5d10f8b..77f53a3589c6 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2015_04_01/_version.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2015_04_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "3.0.0" +VERSION = "4.0.0" diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2015_08_01/_version.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2015_08_01/_version.py index cac9f5d10f8b..77f53a3589c6 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2015_08_01/_version.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2015_08_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "3.0.0" +VERSION = "4.0.0" diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2016_03_01/_version.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2016_03_01/_version.py index cac9f5d10f8b..77f53a3589c6 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2016_03_01/_version.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2016_03_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "3.0.0" +VERSION = "4.0.0" diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2016_08_01/_version.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2016_08_01/_version.py index cac9f5d10f8b..77f53a3589c6 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2016_08_01/_version.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2016_08_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "3.0.0" +VERSION = "4.0.0" diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2016_09_01/_version.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2016_09_01/_version.py index cac9f5d10f8b..77f53a3589c6 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2016_09_01/_version.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2016_09_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "3.0.0" +VERSION = "4.0.0" diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2018_02_01/_version.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2018_02_01/_version.py index cac9f5d10f8b..77f53a3589c6 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2018_02_01/_version.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2018_02_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "3.0.0" +VERSION = "4.0.0" diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2018_11_01/_version.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2018_11_01/_version.py index cac9f5d10f8b..77f53a3589c6 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2018_11_01/_version.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2018_11_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "3.0.0" +VERSION = "4.0.0" diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2019_08_01/_version.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2019_08_01/_version.py index cac9f5d10f8b..77f53a3589c6 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2019_08_01/_version.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2019_08_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "3.0.0" +VERSION = "4.0.0" diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2019_08_01/models/_models.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2019_08_01/models/_models.py index fbea109c29d2..f0b031966cea 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2019_08_01/models/_models.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2019_08_01/models/_models.py @@ -278,8 +278,6 @@ def __init__( class ApiKVReference(msrest.serialization.Model): """Description of site key vault references. - Variables are only populated by the server, and will be ignored when sending a request. - :param reference: :type reference: str :param status: Possible values include: "Initialized", "Resolved", "InvalidSyntax", @@ -297,17 +295,14 @@ class ApiKVReference(msrest.serialization.Model): :type identity_type: str or ~azure.mgmt.web.v2019_08_01.models.ManagedServiceIdentityType :param details: :type details: str - :ivar source: Default value: "KeyVault". - :vartype source: str - :ivar location: Default value: "ApplicationSetting". - :vartype location: str + :param source: The only acceptable values to pass in are None and "KeyVault". The default + value is None. + :type source: str + :param location: The only acceptable values to pass in are None and "ApplicationSetting". The + default value is None. + :type location: str """ - _validation = { - 'source': {'constant': True}, - 'location': {'constant': True}, - } - _attribute_map = { 'reference': {'key': 'reference', 'type': 'str'}, 'status': {'key': 'status', 'type': 'str'}, @@ -320,9 +315,6 @@ class ApiKVReference(msrest.serialization.Model): 'location': {'key': 'location', 'type': 'str'}, } - source = "KeyVault" - location = "ApplicationSetting" - def __init__( self, **kwargs @@ -335,6 +327,8 @@ def __init__( self.secret_version = kwargs.get('secret_version', None) self.identity_type = kwargs.get('identity_type', None) self.details = kwargs.get('details', None) + self.source = kwargs.get('source', None) + self.location = kwargs.get('location', None) class ApiManagementConfig(msrest.serialization.Model): @@ -7262,18 +7256,18 @@ class KeyVaultReferenceResource(ProxyOnlyResource): :type identity_type: str or ~azure.mgmt.web.v2019_08_01.models.ManagedServiceIdentityType :param details: :type details: str - :ivar source: Default value: "KeyVault". - :vartype source: str - :ivar location: Default value: "ApplicationSetting". - :vartype location: str + :param source: The only acceptable values to pass in are None and "KeyVault". The default + value is None. + :type source: str + :param location: The only acceptable values to pass in are None and "ApplicationSetting". The + default value is None. + :type location: str """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'source': {'constant': True}, - 'location': {'constant': True}, } _attribute_map = { @@ -7292,9 +7286,6 @@ class KeyVaultReferenceResource(ProxyOnlyResource): 'location': {'key': 'properties.location', 'type': 'str'}, } - source = "KeyVault" - location = "ApplicationSetting" - def __init__( self, **kwargs @@ -7307,6 +7298,8 @@ def __init__( self.secret_version = kwargs.get('secret_version', None) self.identity_type = kwargs.get('identity_type', None) self.details = kwargs.get('details', None) + self.source = kwargs.get('source', None) + self.location = kwargs.get('location', None) class LocalizableString(msrest.serialization.Model): diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2019_08_01/models/_models_py3.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2019_08_01/models/_models_py3.py index 806acb3d6063..2ce966c83db1 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2019_08_01/models/_models_py3.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2019_08_01/models/_models_py3.py @@ -313,8 +313,6 @@ def __init__( class ApiKVReference(msrest.serialization.Model): """Description of site key vault references. - Variables are only populated by the server, and will be ignored when sending a request. - :param reference: :type reference: str :param status: Possible values include: "Initialized", "Resolved", "InvalidSyntax", @@ -332,17 +330,14 @@ class ApiKVReference(msrest.serialization.Model): :type identity_type: str or ~azure.mgmt.web.v2019_08_01.models.ManagedServiceIdentityType :param details: :type details: str - :ivar source: Default value: "KeyVault". - :vartype source: str - :ivar location: Default value: "ApplicationSetting". - :vartype location: str + :param source: The only acceptable values to pass in are None and "KeyVault". The default + value is None. + :type source: str + :param location: The only acceptable values to pass in are None and "ApplicationSetting". The + default value is None. + :type location: str """ - _validation = { - 'source': {'constant': True}, - 'location': {'constant': True}, - } - _attribute_map = { 'reference': {'key': 'reference', 'type': 'str'}, 'status': {'key': 'status', 'type': 'str'}, @@ -355,9 +350,6 @@ class ApiKVReference(msrest.serialization.Model): 'location': {'key': 'location', 'type': 'str'}, } - source = "KeyVault" - location = "ApplicationSetting" - def __init__( self, *, @@ -368,6 +360,8 @@ def __init__( secret_version: Optional[str] = None, identity_type: Optional[Union[str, "ManagedServiceIdentityType"]] = None, details: Optional[str] = None, + source: Optional[str] = None, + location: Optional[str] = None, **kwargs ): super(ApiKVReference, self).__init__(**kwargs) @@ -378,6 +372,8 @@ def __init__( self.secret_version = secret_version self.identity_type = identity_type self.details = details + self.source = source + self.location = location class ApiManagementConfig(msrest.serialization.Model): @@ -8004,18 +8000,18 @@ class KeyVaultReferenceResource(ProxyOnlyResource): :type identity_type: str or ~azure.mgmt.web.v2019_08_01.models.ManagedServiceIdentityType :param details: :type details: str - :ivar source: Default value: "KeyVault". - :vartype source: str - :ivar location: Default value: "ApplicationSetting". - :vartype location: str + :param source: The only acceptable values to pass in are None and "KeyVault". The default + value is None. + :type source: str + :param location: The only acceptable values to pass in are None and "ApplicationSetting". The + default value is None. + :type location: str """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'source': {'constant': True}, - 'location': {'constant': True}, } _attribute_map = { @@ -8034,9 +8030,6 @@ class KeyVaultReferenceResource(ProxyOnlyResource): 'location': {'key': 'properties.location', 'type': 'str'}, } - source = "KeyVault" - location = "ApplicationSetting" - def __init__( self, *, @@ -8048,6 +8041,8 @@ def __init__( secret_version: Optional[str] = None, identity_type: Optional[Union[str, "ManagedServiceIdentityType"]] = None, details: Optional[str] = None, + source: Optional[str] = None, + location: Optional[str] = None, **kwargs ): super(KeyVaultReferenceResource, self).__init__(kind=kind, **kwargs) @@ -8058,6 +8053,8 @@ def __init__( self.secret_version = secret_version self.identity_type = identity_type self.details = details + self.source = source + self.location = location class LocalizableString(msrest.serialization.Model): diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_06_01/_version.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_06_01/_version.py index cac9f5d10f8b..77f53a3589c6 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_06_01/_version.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_06_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "3.0.0" +VERSION = "4.0.0" diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_06_01/models/_models.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_06_01/models/_models.py index 555f480224de..76cc2afdc378 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_06_01/models/_models.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_06_01/models/_models.py @@ -8991,8 +8991,9 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): :type kind: str :ivar type: Resource type. :vartype type: str - :ivar method: Default value: "ClientSecretPost". - :vartype method: str + :param method: The only acceptable values to pass in are None and "ClientSecretPost". The + default value is None. + :type method: str :param client_secret_setting_name: :type client_secret_setting_name: str """ @@ -9001,7 +9002,6 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'method': {'constant': True}, } _attribute_map = { @@ -9013,13 +9013,12 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, } - method = "ClientSecretPost" - def __init__( self, **kwargs ): super(OpenIdConnectClientCredential, self).__init__(**kwargs) + self.method = kwargs.get('method', None) self.client_secret_setting_name = kwargs.get('client_secret_setting_name', None) diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_06_01/models/_models_py3.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_06_01/models/_models_py3.py index 6a8c229f9832..1f479b98b4eb 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_06_01/models/_models_py3.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_06_01/models/_models_py3.py @@ -9909,8 +9909,9 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): :type kind: str :ivar type: Resource type. :vartype type: str - :ivar method: Default value: "ClientSecretPost". - :vartype method: str + :param method: The only acceptable values to pass in are None and "ClientSecretPost". The + default value is None. + :type method: str :param client_secret_setting_name: :type client_secret_setting_name: str """ @@ -9919,7 +9920,6 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'method': {'constant': True}, } _attribute_map = { @@ -9931,16 +9931,16 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, } - method = "ClientSecretPost" - def __init__( self, *, kind: Optional[str] = None, + method: Optional[str] = None, client_secret_setting_name: Optional[str] = None, **kwargs ): super(OpenIdConnectClientCredential, self).__init__(kind=kind, **kwargs) + self.method = method self.client_secret_setting_name = client_secret_setting_name diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_09_01/_version.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_09_01/_version.py index cac9f5d10f8b..77f53a3589c6 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_09_01/_version.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_09_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "3.0.0" +VERSION = "4.0.0" diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_09_01/models/_models.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_09_01/models/_models.py index eace9dd21636..bbe19901d635 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_09_01/models/_models.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_09_01/models/_models.py @@ -9360,8 +9360,9 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): :vartype type: str :ivar system_data: The system metadata relating to this resource. :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData - :ivar method: Default value: "ClientSecretPost". - :vartype method: str + :param method: The only acceptable values to pass in are None and "ClientSecretPost". The + default value is None. + :type method: str :param client_secret_setting_name: :type client_secret_setting_name: str """ @@ -9371,7 +9372,6 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): 'name': {'readonly': True}, 'type': {'readonly': True}, 'system_data': {'readonly': True}, - 'method': {'constant': True}, } _attribute_map = { @@ -9384,13 +9384,12 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, } - method = "ClientSecretPost" - def __init__( self, **kwargs ): super(OpenIdConnectClientCredential, self).__init__(**kwargs) + self.method = kwargs.get('method', None) self.client_secret_setting_name = kwargs.get('client_secret_setting_name', None) diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_09_01/models/_models_py3.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_09_01/models/_models_py3.py index 26734765f690..dde4be72d5b9 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_09_01/models/_models_py3.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_09_01/models/_models_py3.py @@ -10287,8 +10287,9 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): :vartype type: str :ivar system_data: The system metadata relating to this resource. :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData - :ivar method: Default value: "ClientSecretPost". - :vartype method: str + :param method: The only acceptable values to pass in are None and "ClientSecretPost". The + default value is None. + :type method: str :param client_secret_setting_name: :type client_secret_setting_name: str """ @@ -10298,7 +10299,6 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): 'name': {'readonly': True}, 'type': {'readonly': True}, 'system_data': {'readonly': True}, - 'method': {'constant': True}, } _attribute_map = { @@ -10311,16 +10311,16 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, } - method = "ClientSecretPost" - def __init__( self, *, kind: Optional[str] = None, + method: Optional[str] = None, client_secret_setting_name: Optional[str] = None, **kwargs ): super(OpenIdConnectClientCredential, self).__init__(kind=kind, **kwargs) + self.method = method self.client_secret_setting_name = client_secret_setting_name diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_12_01/_version.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_12_01/_version.py index cac9f5d10f8b..77f53a3589c6 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_12_01/_version.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_12_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "3.0.0" +VERSION = "4.0.0" diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_12_01/models/_models.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_12_01/models/_models.py index b5ec0fd0c1c0..d4c1e71f5add 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_12_01/models/_models.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_12_01/models/_models.py @@ -343,8 +343,9 @@ class ApiKVReference(ProxyOnlyResource): :type identity_type: ~azure.mgmt.web.v2020_12_01.models.ManagedServiceIdentity :param details: :type details: str - :ivar source: Default value: "KeyVault". - :vartype source: str + :param source: The only acceptable values to pass in are None and "KeyVault". The default + value is None. + :type source: str :param active_version: :type active_version: str """ @@ -353,7 +354,6 @@ class ApiKVReference(ProxyOnlyResource): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'source': {'constant': True}, } _attribute_map = { @@ -372,8 +372,6 @@ class ApiKVReference(ProxyOnlyResource): 'active_version': {'key': 'properties.activeVersion', 'type': 'str'}, } - source = "KeyVault" - def __init__( self, **kwargs @@ -386,6 +384,7 @@ def __init__( self.secret_version = kwargs.get('secret_version', None) self.identity_type = kwargs.get('identity_type', None) self.details = kwargs.get('details', None) + self.source = kwargs.get('source', None) self.active_version = kwargs.get('active_version', None) @@ -9841,9 +9840,9 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): :type kind: str :ivar type: Resource type. :vartype type: str - :ivar method: The method that should be used to authenticate the user. Default value: - "ClientSecretPost". - :vartype method: str + :param method: The method that should be used to authenticate the user. The only acceptable + values to pass in are None and "ClientSecretPost". The default value is None. + :type method: str :param client_secret_setting_name: The app setting that contains the client secret for the custom Open ID Connect provider. :type client_secret_setting_name: str @@ -9853,7 +9852,6 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'method': {'constant': True}, } _attribute_map = { @@ -9865,13 +9863,12 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, } - method = "ClientSecretPost" - def __init__( self, **kwargs ): super(OpenIdConnectClientCredential, self).__init__(**kwargs) + self.method = kwargs.get('method', None) self.client_secret_setting_name = kwargs.get('client_secret_setting_name', None) diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_12_01/models/_models_py3.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_12_01/models/_models_py3.py index 4732ccbb0c25..b817ad585630 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_12_01/models/_models_py3.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2020_12_01/models/_models_py3.py @@ -381,8 +381,9 @@ class ApiKVReference(ProxyOnlyResource): :type identity_type: ~azure.mgmt.web.v2020_12_01.models.ManagedServiceIdentity :param details: :type details: str - :ivar source: Default value: "KeyVault". - :vartype source: str + :param source: The only acceptable values to pass in are None and "KeyVault". The default + value is None. + :type source: str :param active_version: :type active_version: str """ @@ -391,7 +392,6 @@ class ApiKVReference(ProxyOnlyResource): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'source': {'constant': True}, } _attribute_map = { @@ -410,8 +410,6 @@ class ApiKVReference(ProxyOnlyResource): 'active_version': {'key': 'properties.activeVersion', 'type': 'str'}, } - source = "KeyVault" - def __init__( self, *, @@ -423,6 +421,7 @@ def __init__( secret_version: Optional[str] = None, identity_type: Optional["ManagedServiceIdentity"] = None, details: Optional[str] = None, + source: Optional[str] = None, active_version: Optional[str] = None, **kwargs ): @@ -434,6 +433,7 @@ def __init__( self.secret_version = secret_version self.identity_type = identity_type self.details = details + self.source = source self.active_version = active_version @@ -10802,9 +10802,9 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): :type kind: str :ivar type: Resource type. :vartype type: str - :ivar method: The method that should be used to authenticate the user. Default value: - "ClientSecretPost". - :vartype method: str + :param method: The method that should be used to authenticate the user. The only acceptable + values to pass in are None and "ClientSecretPost". The default value is None. + :type method: str :param client_secret_setting_name: The app setting that contains the client secret for the custom Open ID Connect provider. :type client_secret_setting_name: str @@ -10814,7 +10814,6 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'method': {'constant': True}, } _attribute_map = { @@ -10826,16 +10825,16 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, } - method = "ClientSecretPost" - def __init__( self, *, kind: Optional[str] = None, + method: Optional[str] = None, client_secret_setting_name: Optional[str] = None, **kwargs ): super(OpenIdConnectClientCredential, self).__init__(kind=kind, **kwargs) + self.method = method self.client_secret_setting_name = client_secret_setting_name diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_01/_version.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_01/_version.py index cac9f5d10f8b..77f53a3589c6 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_01/_version.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "3.0.0" +VERSION = "4.0.0" diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_01/models/_models.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_01/models/_models.py index 2b65332fadf3..d4683631b0f3 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_01/models/_models.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_01/models/_models.py @@ -343,8 +343,9 @@ class ApiKVReference(ProxyOnlyResource): :type identity_type: ~azure.mgmt.web.v2021_01_01.models.ManagedServiceIdentity :param details: :type details: str - :ivar source: Default value: "KeyVault". - :vartype source: str + :param source: The only acceptable values to pass in are None and "KeyVault". The default + value is None. + :type source: str :param active_version: :type active_version: str """ @@ -353,7 +354,6 @@ class ApiKVReference(ProxyOnlyResource): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'source': {'constant': True}, } _attribute_map = { @@ -372,8 +372,6 @@ class ApiKVReference(ProxyOnlyResource): 'active_version': {'key': 'properties.activeVersion', 'type': 'str'}, } - source = "KeyVault" - def __init__( self, **kwargs @@ -386,6 +384,7 @@ def __init__( self.secret_version = kwargs.get('secret_version', None) self.identity_type = kwargs.get('identity_type', None) self.details = kwargs.get('details', None) + self.source = kwargs.get('source', None) self.active_version = kwargs.get('active_version', None) @@ -10192,9 +10191,9 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): :type kind: str :ivar type: Resource type. :vartype type: str - :ivar method: The method that should be used to authenticate the user. Default value: - "ClientSecretPost". - :vartype method: str + :param method: The method that should be used to authenticate the user. The only acceptable + values to pass in are None and "ClientSecretPost". The default value is None. + :type method: str :param client_secret_setting_name: The app setting that contains the client secret for the custom Open ID Connect provider. :type client_secret_setting_name: str @@ -10204,7 +10203,6 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'method': {'constant': True}, } _attribute_map = { @@ -10216,13 +10214,12 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, } - method = "ClientSecretPost" - def __init__( self, **kwargs ): super(OpenIdConnectClientCredential, self).__init__(**kwargs) + self.method = kwargs.get('method', None) self.client_secret_setting_name = kwargs.get('client_secret_setting_name', None) diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_01/models/_models_py3.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_01/models/_models_py3.py index 89ccfc4fb0da..67bda0739556 100644 --- a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_01/models/_models_py3.py +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_01/models/_models_py3.py @@ -381,8 +381,9 @@ class ApiKVReference(ProxyOnlyResource): :type identity_type: ~azure.mgmt.web.v2021_01_01.models.ManagedServiceIdentity :param details: :type details: str - :ivar source: Default value: "KeyVault". - :vartype source: str + :param source: The only acceptable values to pass in are None and "KeyVault". The default + value is None. + :type source: str :param active_version: :type active_version: str """ @@ -391,7 +392,6 @@ class ApiKVReference(ProxyOnlyResource): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'source': {'constant': True}, } _attribute_map = { @@ -410,8 +410,6 @@ class ApiKVReference(ProxyOnlyResource): 'active_version': {'key': 'properties.activeVersion', 'type': 'str'}, } - source = "KeyVault" - def __init__( self, *, @@ -423,6 +421,7 @@ def __init__( secret_version: Optional[str] = None, identity_type: Optional["ManagedServiceIdentity"] = None, details: Optional[str] = None, + source: Optional[str] = None, active_version: Optional[str] = None, **kwargs ): @@ -434,6 +433,7 @@ def __init__( self.secret_version = secret_version self.identity_type = identity_type self.details = details + self.source = source self.active_version = active_version @@ -11193,9 +11193,9 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): :type kind: str :ivar type: Resource type. :vartype type: str - :ivar method: The method that should be used to authenticate the user. Default value: - "ClientSecretPost". - :vartype method: str + :param method: The method that should be used to authenticate the user. The only acceptable + values to pass in are None and "ClientSecretPost". The default value is None. + :type method: str :param client_secret_setting_name: The app setting that contains the client secret for the custom Open ID Connect provider. :type client_secret_setting_name: str @@ -11205,7 +11205,6 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'method': {'constant': True}, } _attribute_map = { @@ -11217,16 +11216,16 @@ class OpenIdConnectClientCredential(ProxyOnlyResource): 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, } - method = "ClientSecretPost" - def __init__( self, *, kind: Optional[str] = None, + method: Optional[str] = None, client_secret_setting_name: Optional[str] = None, **kwargs ): super(OpenIdConnectClientCredential, self).__init__(kind=kind, **kwargs) + self.method = method self.client_secret_setting_name = client_secret_setting_name diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/__init__.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/__init__.py new file mode 100644 index 000000000000..45c59c58316a --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/__init__.py @@ -0,0 +1,19 @@ +# 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 ._web_site_management_client import WebSiteManagementClient +from ._version import VERSION + +__version__ = VERSION +__all__ = ['WebSiteManagementClient'] + +try: + from ._patch import patch_sdk # type: ignore + patch_sdk() +except ImportError: + pass diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/_configuration.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/_configuration.py new file mode 100644 index 000000000000..bd14cc23210a --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/_configuration.py @@ -0,0 +1,71 @@ +# 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 + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies +from azure.mgmt.core.policies import ARMHttpLoggingPolicy + +from ._version import VERSION + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any + + from azure.core.credentials import TokenCredential + + +class WebSiteManagementClientConfiguration(Configuration): + """Configuration for WebSiteManagementClient. + + Note that all parameters used to create this instance are saved as instance + attributes. + + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials.TokenCredential + :param subscription_id: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). + :type subscription_id: str + """ + + def __init__( + self, + credential, # type: "TokenCredential" + subscription_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + if credential is None: + raise ValueError("Parameter 'credential' must not be None.") + if subscription_id is None: + raise ValueError("Parameter 'subscription_id' must not be None.") + super(WebSiteManagementClientConfiguration, self).__init__(**kwargs) + + self.credential = credential + self.subscription_id = subscription_id + self.api_version = "2021-01-15" + self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) + kwargs.setdefault('sdk_moniker', 'mgmt-web/{}'.format(VERSION)) + self._configure(**kwargs) + + def _configure( + self, + **kwargs # type: Any + ): + # type: (...) -> None + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') + if self.credential and not self.authentication_policy: + self.authentication_policy = policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/_metadata.json b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/_metadata.json new file mode 100644 index 000000000000..fbe3ac2913ef --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/_metadata.json @@ -0,0 +1,330 @@ +{ + "chosen_version": "2021-01-15", + "total_api_version_list": ["2021-01-15"], + "client": { + "name": "WebSiteManagementClient", + "filename": "_web_site_management_client", + "description": "WebSite Management Client.", + "base_url": "\u0027https://management.azure.com\u0027", + "custom_base_url": null, + "azure_arm": true, + "has_lro_operations": true, + "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\": [\"WebSiteManagementClientConfiguration\"], \"._operations_mixin\": [\"WebSiteManagementClientOperationsMixin\"]}}, \"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\": [\"WebSiteManagementClientConfiguration\"], \"._operations_mixin\": [\"WebSiteManagementClientOperationsMixin\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Optional\"]}, \"azurecore\": {\"azure.core.pipeline.transport\": [\"AsyncHttpResponse\", \"HttpRequest\"]}}}" + }, + "global_parameters": { + "sync": { + "credential": { + "signature": "credential, # type: \"TokenCredential\"", + "description": "Credential needed for the client to connect to Azure.", + "docstring_type": "~azure.core.credentials.TokenCredential", + "required": true + }, + "subscription_id": { + "signature": "subscription_id, # type: str", + "description": "Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000).", + "docstring_type": "str", + "required": true + } + }, + "async": { + "credential": { + "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: str,", + "description": "Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000).", + "docstring_type": "str", + "required": true + } + }, + "constant": { + }, + "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, + "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": { + "app_service_certificate_orders": "AppServiceCertificateOrdersOperations", + "certificate_orders_diagnostics": "CertificateOrdersDiagnosticsOperations", + "certificate_registration_provider": "CertificateRegistrationProviderOperations", + "domains": "DomainsOperations", + "top_level_domains": "TopLevelDomainsOperations", + "domain_registration_provider": "DomainRegistrationProviderOperations", + "app_service_environments": "AppServiceEnvironmentsOperations", + "app_service_plans": "AppServicePlansOperations", + "certificates": "CertificatesOperations", + "deleted_web_apps": "DeletedWebAppsOperations", + "diagnostics": "DiagnosticsOperations", + "global_model": "GlobalOperations", + "kube_environments": "KubeEnvironmentsOperations", + "provider": "ProviderOperations", + "recommendations": "RecommendationsOperations", + "resource_health_metadata": "ResourceHealthMetadataOperations", + "static_sites": "StaticSitesOperations", + "web_apps": "WebAppsOperations" + }, + "operation_mixins": { + "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\", \"Union\"]}}}", + "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\", \"Union\"]}}}", + "operations": { + "generate_github_access_token_for_appservice_cli_async" : { + "sync": { + "signature": "def generate_github_access_token_for_appservice_cli_async(\n self,\n code, # type: str\n state, # type: str\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Exchange code for GitHub access token for AppService CLI.\n\nDescription for Exchange code for GitHub access token for AppService CLI.\n\n:param code: Code string to exchange for Github Access token.\n:type code: str\n:param state: State string used for verification.\n:type state: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: AppserviceGithubToken, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.AppserviceGithubToken\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def generate_github_access_token_for_appservice_cli_async(\n self,\n code: str,\n state: str,\n **kwargs: Any\n) -\u003e \"_models.AppserviceGithubToken\":\n", + "doc": "\"\"\"Exchange code for GitHub access token for AppService CLI.\n\nDescription for Exchange code for GitHub access token for AppService CLI.\n\n:param code: Code string to exchange for Github Access token.\n:type code: str\n:param state: State string used for verification.\n:type state: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: AppserviceGithubToken, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.AppserviceGithubToken\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "code, state" + }, + "get_publishing_user" : { + "sync": { + "signature": "def get_publishing_user(\n self,\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Gets publishing user.\n\nDescription for Gets publishing user.\n\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: User, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.User\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def get_publishing_user(\n self,\n **kwargs: Any\n) -\u003e \"_models.User\":\n", + "doc": "\"\"\"Gets publishing user.\n\nDescription for Gets publishing user.\n\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: User, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.User\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "" + }, + "update_publishing_user" : { + "sync": { + "signature": "def update_publishing_user(\n self,\n user_details, # type: \"_models.User\"\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Updates publishing user.\n\nDescription for Updates publishing user.\n\n:param user_details: Details of publishing user.\n:type user_details: ~azure.mgmt.web.v2021_01_15.models.User\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: User, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.User\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def update_publishing_user(\n self,\n user_details: \"_models.User\",\n **kwargs: Any\n) -\u003e \"_models.User\":\n", + "doc": "\"\"\"Updates publishing user.\n\nDescription for Updates publishing user.\n\n:param user_details: Details of publishing user.\n:type user_details: ~azure.mgmt.web.v2021_01_15.models.User\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: User, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.User\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "user_details" + }, + "list_source_controls" : { + "sync": { + "signature": "def list_source_controls(\n self,\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Gets the source controls available for Azure websites.\n\nDescription for Gets the source controls available for Azure websites.\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 SourceControlCollection or the result of cls(response)\n:rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.SourceControlCollection]\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": false, + "signature": "def list_source_controls(\n self,\n **kwargs: Any\n) -\u003e AsyncItemPaged[\"_models.SourceControlCollection\"]:\n", + "doc": "\"\"\"Gets the source controls available for Azure websites.\n\nDescription for Gets the source controls available for Azure websites.\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 SourceControlCollection or the result of cls(response)\n:rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.SourceControlCollection]\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "" + }, + "get_source_control" : { + "sync": { + "signature": "def get_source_control(\n self,\n source_control_type, # type: str\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Gets source control token.\n\nDescription for Gets source control token.\n\n:param source_control_type: Type of source control.\n:type source_control_type: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: SourceControl, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.SourceControl\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def get_source_control(\n self,\n source_control_type: str,\n **kwargs: Any\n) -\u003e \"_models.SourceControl\":\n", + "doc": "\"\"\"Gets source control token.\n\nDescription for Gets source control token.\n\n:param source_control_type: Type of source control.\n:type source_control_type: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: SourceControl, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.SourceControl\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "source_control_type" + }, + "update_source_control" : { + "sync": { + "signature": "def update_source_control(\n self,\n source_control_type, # type: str\n request_message, # type: \"_models.SourceControl\"\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Updates source control token.\n\nDescription for Updates source control token.\n\n:param source_control_type: Type of source control.\n:type source_control_type: str\n:param request_message: Source control token information.\n:type request_message: ~azure.mgmt.web.v2021_01_15.models.SourceControl\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: SourceControl, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.SourceControl\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def update_source_control(\n self,\n source_control_type: str,\n request_message: \"_models.SourceControl\",\n **kwargs: Any\n) -\u003e \"_models.SourceControl\":\n", + "doc": "\"\"\"Updates source control token.\n\nDescription for Updates source control token.\n\n:param source_control_type: Type of source control.\n:type source_control_type: str\n:param request_message: Source control token information.\n:type request_message: ~azure.mgmt.web.v2021_01_15.models.SourceControl\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: SourceControl, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.SourceControl\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "source_control_type, request_message" + }, + "list_billing_meters" : { + "sync": { + "signature": "def list_billing_meters(\n self,\n billing_location=None, # type: Optional[str]\n os_type=None, # type: Optional[str]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Gets a list of meters for a given location.\n\nDescription for Gets a list of meters for a given location.\n\n:param billing_location: Azure Location of billable resource.\n:type billing_location: str\n:param os_type: App Service OS type meters used for.\n:type os_type: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: An iterator like instance of either BillingMeterCollection or the result of cls(response)\n:rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.BillingMeterCollection]\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": false, + "signature": "def list_billing_meters(\n self,\n billing_location: Optional[str] = None,\n os_type: Optional[str] = None,\n **kwargs: Any\n) -\u003e AsyncItemPaged[\"_models.BillingMeterCollection\"]:\n", + "doc": "\"\"\"Gets a list of meters for a given location.\n\nDescription for Gets a list of meters for a given location.\n\n:param billing_location: Azure Location of billable resource.\n:type billing_location: str\n:param os_type: App Service OS type meters used for.\n:type os_type: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: An iterator like instance of either BillingMeterCollection or the result of cls(response)\n:rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.BillingMeterCollection]\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "billing_location, os_type" + }, + "check_name_availability" : { + "sync": { + "signature": "def check_name_availability(\n self,\n name, # type: str\n type, # type: Union[str, \"_models.CheckNameResourceTypes\"]\n is_fqdn=None, # type: Optional[bool]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Check if a resource name is available.\n\nDescription for Check if a resource name is available.\n\n:param name: Resource name to verify.\n:type name: str\n:param type: Resource type used for verification.\n:type type: str or ~azure.mgmt.web.v2021_01_15.models.CheckNameResourceTypes\n:param is_fqdn: Is fully qualified domain name.\n:type is_fqdn: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: ResourceNameAvailability, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.ResourceNameAvailability\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def check_name_availability(\n self,\n name: str,\n type: Union[str, \"_models.CheckNameResourceTypes\"],\n is_fqdn: Optional[bool] = None,\n **kwargs: Any\n) -\u003e \"_models.ResourceNameAvailability\":\n", + "doc": "\"\"\"Check if a resource name is available.\n\nDescription for Check if a resource name is available.\n\n:param name: Resource name to verify.\n:type name: str\n:param type: Resource type used for verification.\n:type type: str or ~azure.mgmt.web.v2021_01_15.models.CheckNameResourceTypes\n:param is_fqdn: Is fully qualified domain name.\n:type is_fqdn: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: ResourceNameAvailability, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.ResourceNameAvailability\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "name, type, is_fqdn" + }, + "get_subscription_deployment_locations" : { + "sync": { + "signature": "def get_subscription_deployment_locations(\n self,\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Gets list of available geo regions plus ministamps.\n\nDescription for Gets list of available geo regions plus ministamps.\n\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: DeploymentLocations, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.DeploymentLocations\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def get_subscription_deployment_locations(\n self,\n **kwargs: Any\n) -\u003e \"_models.DeploymentLocations\":\n", + "doc": "\"\"\"Gets list of available geo regions plus ministamps.\n\nDescription for Gets list of available geo regions plus ministamps.\n\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: DeploymentLocations, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.DeploymentLocations\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "" + }, + "list_geo_regions" : { + "sync": { + "signature": "def list_geo_regions(\n self,\n sku=None, # type: Optional[Union[str, \"_models.SkuName\"]]\n linux_workers_enabled=None, # type: Optional[bool]\n xenon_workers_enabled=None, # type: Optional[bool]\n linux_dynamic_workers_enabled=None, # type: Optional[bool]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Get a list of available geographical regions.\n\nDescription for Get a list of available geographical regions.\n\n:param sku: Name of SKU used to filter the regions.\n:type sku: str or ~azure.mgmt.web.v2021_01_15.models.SkuName\n:param linux_workers_enabled: Specify :code:`\u003ccode\u003etrue\u003c/code\u003e` if you want to filter to only\n regions that support Linux workers.\n:type linux_workers_enabled: bool\n:param xenon_workers_enabled: Specify :code:`\u003ccode\u003etrue\u003c/code\u003e` if you want to filter to only\n regions that support Xenon workers.\n:type xenon_workers_enabled: bool\n:param linux_dynamic_workers_enabled: Specify :code:`\u003ccode\u003etrue\u003c/code\u003e` if you want to filter\n to only regions that support Linux Consumption Workers.\n:type linux_dynamic_workers_enabled: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: An iterator like instance of either GeoRegionCollection or the result of cls(response)\n:rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.GeoRegionCollection]\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": false, + "signature": "def list_geo_regions(\n self,\n sku: Optional[Union[str, \"_models.SkuName\"]] = None,\n linux_workers_enabled: Optional[bool] = None,\n xenon_workers_enabled: Optional[bool] = None,\n linux_dynamic_workers_enabled: Optional[bool] = None,\n **kwargs: Any\n) -\u003e AsyncItemPaged[\"_models.GeoRegionCollection\"]:\n", + "doc": "\"\"\"Get a list of available geographical regions.\n\nDescription for Get a list of available geographical regions.\n\n:param sku: Name of SKU used to filter the regions.\n:type sku: str or ~azure.mgmt.web.v2021_01_15.models.SkuName\n:param linux_workers_enabled: Specify :code:`\u003ccode\u003etrue\u003c/code\u003e` if you want to filter to only\n regions that support Linux workers.\n:type linux_workers_enabled: bool\n:param xenon_workers_enabled: Specify :code:`\u003ccode\u003etrue\u003c/code\u003e` if you want to filter to only\n regions that support Xenon workers.\n:type xenon_workers_enabled: bool\n:param linux_dynamic_workers_enabled: Specify :code:`\u003ccode\u003etrue\u003c/code\u003e` if you want to filter\n to only regions that support Linux Consumption Workers.\n:type linux_dynamic_workers_enabled: bool\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: An iterator like instance of either GeoRegionCollection or the result of cls(response)\n:rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.GeoRegionCollection]\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "sku, linux_workers_enabled, xenon_workers_enabled, linux_dynamic_workers_enabled" + }, + "list_site_identifiers_assigned_to_host_name" : { + "sync": { + "signature": "def list_site_identifiers_assigned_to_host_name(\n self,\n name_identifier, # type: \"_models.NameIdentifier\"\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"List all apps that are assigned to a hostname.\n\nDescription for List all apps that are assigned to a hostname.\n\n:param name_identifier: Hostname information.\n:type name_identifier: ~azure.mgmt.web.v2021_01_15.models.NameIdentifier\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: An iterator like instance of either IdentifierCollection or the result of cls(response)\n:rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.IdentifierCollection]\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": false, + "signature": "def list_site_identifiers_assigned_to_host_name(\n self,\n name_identifier: \"_models.NameIdentifier\",\n **kwargs: Any\n) -\u003e AsyncItemPaged[\"_models.IdentifierCollection\"]:\n", + "doc": "\"\"\"List all apps that are assigned to a hostname.\n\nDescription for List all apps that are assigned to a hostname.\n\n:param name_identifier: Hostname information.\n:type name_identifier: ~azure.mgmt.web.v2021_01_15.models.NameIdentifier\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: An iterator like instance of either IdentifierCollection or the result of cls(response)\n:rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.IdentifierCollection]\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "name_identifier" + }, + "list_premier_add_on_offers" : { + "sync": { + "signature": "def list_premier_add_on_offers(\n self,\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"List all premier add-on offers.\n\nDescription for List all premier add-on offers.\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 PremierAddOnOfferCollection or the result of cls(response)\n:rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.PremierAddOnOfferCollection]\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": false, + "signature": "def list_premier_add_on_offers(\n self,\n **kwargs: Any\n) -\u003e AsyncItemPaged[\"_models.PremierAddOnOfferCollection\"]:\n", + "doc": "\"\"\"List all premier add-on offers.\n\nDescription for List all premier add-on offers.\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 PremierAddOnOfferCollection or the result of cls(response)\n:rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.PremierAddOnOfferCollection]\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "" + }, + "list_skus" : { + "sync": { + "signature": "def list_skus(\n self,\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"List all SKUs.\n\nDescription for List all SKUs.\n\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: SkuInfos, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.SkuInfos\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def list_skus(\n self,\n **kwargs: Any\n) -\u003e \"_models.SkuInfos\":\n", + "doc": "\"\"\"List all SKUs.\n\nDescription for List all SKUs.\n\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: SkuInfos, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.SkuInfos\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "" + }, + "verify_hosting_environment_vnet" : { + "sync": { + "signature": "def verify_hosting_environment_vnet(\n self,\n parameters, # type: \"_models.VnetParameters\"\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Verifies if this VNET is compatible with an App Service Environment by analyzing the Network Security Group rules.\n\nDescription for Verifies if this VNET is compatible with an App Service Environment by\nanalyzing the Network Security Group rules.\n\n:param parameters: VNET information.\n:type parameters: ~azure.mgmt.web.v2021_01_15.models.VnetParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: VnetValidationFailureDetails, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.VnetValidationFailureDetails\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def verify_hosting_environment_vnet(\n self,\n parameters: \"_models.VnetParameters\",\n **kwargs: Any\n) -\u003e \"_models.VnetValidationFailureDetails\":\n", + "doc": "\"\"\"Verifies if this VNET is compatible with an App Service Environment by analyzing the Network Security Group rules.\n\nDescription for Verifies if this VNET is compatible with an App Service Environment by\nanalyzing the Network Security Group rules.\n\n:param parameters: VNET information.\n:type parameters: ~azure.mgmt.web.v2021_01_15.models.VnetParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: VnetValidationFailureDetails, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.VnetValidationFailureDetails\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "parameters" + }, + "move" : { + "sync": { + "signature": "def move(\n self,\n resource_group_name, # type: str\n move_resource_envelope, # type: \"_models.CsmMoveResourceEnvelope\"\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Move resources between resource groups.\n\nDescription for Move resources between resource groups.\n\n:param resource_group_name: Name of the resource group to which the resource belongs.\n:type resource_group_name: str\n:param move_resource_envelope: Object that represents the resource to move.\n:type move_resource_envelope: ~azure.mgmt.web.v2021_01_15.models.CsmMoveResourceEnvelope\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: None, or the result of cls(response)\n:rtype: None\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def move(\n self,\n resource_group_name: str,\n move_resource_envelope: \"_models.CsmMoveResourceEnvelope\",\n **kwargs: Any\n) -\u003e None:\n", + "doc": "\"\"\"Move resources between resource groups.\n\nDescription for Move resources between resource groups.\n\n:param resource_group_name: Name of the resource group to which the resource belongs.\n:type resource_group_name: str\n:param move_resource_envelope: Object that represents the resource to move.\n:type move_resource_envelope: ~azure.mgmt.web.v2021_01_15.models.CsmMoveResourceEnvelope\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: None, or the result of cls(response)\n:rtype: None\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "resource_group_name, move_resource_envelope" + }, + "validate" : { + "sync": { + "signature": "def validate(\n self,\n resource_group_name, # type: str\n validate_request, # type: \"_models.ValidateRequest\"\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Validate if a resource can be created.\n\nDescription for Validate if a resource can be created.\n\n:param resource_group_name: Name of the resource group to which the resource belongs.\n:type resource_group_name: str\n:param validate_request: Request with the resources to validate.\n:type validate_request: ~azure.mgmt.web.v2021_01_15.models.ValidateRequest\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: ValidateResponse, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.ValidateResponse\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def validate(\n self,\n resource_group_name: str,\n validate_request: \"_models.ValidateRequest\",\n **kwargs: Any\n) -\u003e \"_models.ValidateResponse\":\n", + "doc": "\"\"\"Validate if a resource can be created.\n\nDescription for Validate if a resource can be created.\n\n:param resource_group_name: Name of the resource group to which the resource belongs.\n:type resource_group_name: str\n:param validate_request: Request with the resources to validate.\n:type validate_request: ~azure.mgmt.web.v2021_01_15.models.ValidateRequest\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: ValidateResponse, or the result of cls(response)\n:rtype: ~azure.mgmt.web.v2021_01_15.models.ValidateResponse\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "resource_group_name, validate_request" + }, + "validate_move" : { + "sync": { + "signature": "def validate_move(\n self,\n resource_group_name, # type: str\n move_resource_envelope, # type: \"_models.CsmMoveResourceEnvelope\"\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Validate whether a resource can be moved.\n\nDescription for Validate whether a resource can be moved.\n\n:param resource_group_name: Name of the resource group to which the resource belongs.\n:type resource_group_name: str\n:param move_resource_envelope: Object that represents the resource to move.\n:type move_resource_envelope: ~azure.mgmt.web.v2021_01_15.models.CsmMoveResourceEnvelope\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: None, or the result of cls(response)\n:rtype: None\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def validate_move(\n self,\n resource_group_name: str,\n move_resource_envelope: \"_models.CsmMoveResourceEnvelope\",\n **kwargs: Any\n) -\u003e None:\n", + "doc": "\"\"\"Validate whether a resource can be moved.\n\nDescription for Validate whether a resource can be moved.\n\n:param resource_group_name: Name of the resource group to which the resource belongs.\n:type resource_group_name: str\n:param move_resource_envelope: Object that represents the resource to move.\n:type move_resource_envelope: ~azure.mgmt.web.v2021_01_15.models.CsmMoveResourceEnvelope\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: None, or the result of cls(response)\n:rtype: None\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "resource_group_name, move_resource_envelope" + } + } + } +} \ No newline at end of file diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/_version.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/_version.py new file mode 100644 index 000000000000..77f53a3589c6 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/_version.py @@ -0,0 +1,9 @@ +# 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. +# -------------------------------------------------------------------------- + +VERSION = "4.0.0" diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/_web_site_management_client.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/_web_site_management_client.py new file mode 100644 index 000000000000..228061c359af --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/_web_site_management_client.py @@ -0,0 +1,175 @@ +# 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 + +from azure.mgmt.core import ARMPipelineClient +from msrest import Deserializer, Serializer + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Optional + + from azure.core.credentials import TokenCredential + from azure.core.pipeline.transport import HttpRequest, HttpResponse + +from ._configuration import WebSiteManagementClientConfiguration +from .operations import AppServiceCertificateOrdersOperations +from .operations import CertificateOrdersDiagnosticsOperations +from .operations import CertificateRegistrationProviderOperations +from .operations import DomainsOperations +from .operations import TopLevelDomainsOperations +from .operations import DomainRegistrationProviderOperations +from .operations import AppServiceEnvironmentsOperations +from .operations import AppServicePlansOperations +from .operations import CertificatesOperations +from .operations import DeletedWebAppsOperations +from .operations import DiagnosticsOperations +from .operations import GlobalOperations +from .operations import KubeEnvironmentsOperations +from .operations import ProviderOperations +from .operations import RecommendationsOperations +from .operations import ResourceHealthMetadataOperations +from .operations import WebSiteManagementClientOperationsMixin +from .operations import StaticSitesOperations +from .operations import WebAppsOperations +from . import models + + +class WebSiteManagementClient(WebSiteManagementClientOperationsMixin): + """WebSite Management Client. + + :ivar app_service_certificate_orders: AppServiceCertificateOrdersOperations operations + :vartype app_service_certificate_orders: azure.mgmt.web.v2021_01_15.operations.AppServiceCertificateOrdersOperations + :ivar certificate_orders_diagnostics: CertificateOrdersDiagnosticsOperations operations + :vartype certificate_orders_diagnostics: azure.mgmt.web.v2021_01_15.operations.CertificateOrdersDiagnosticsOperations + :ivar certificate_registration_provider: CertificateRegistrationProviderOperations operations + :vartype certificate_registration_provider: azure.mgmt.web.v2021_01_15.operations.CertificateRegistrationProviderOperations + :ivar domains: DomainsOperations operations + :vartype domains: azure.mgmt.web.v2021_01_15.operations.DomainsOperations + :ivar top_level_domains: TopLevelDomainsOperations operations + :vartype top_level_domains: azure.mgmt.web.v2021_01_15.operations.TopLevelDomainsOperations + :ivar domain_registration_provider: DomainRegistrationProviderOperations operations + :vartype domain_registration_provider: azure.mgmt.web.v2021_01_15.operations.DomainRegistrationProviderOperations + :ivar app_service_environments: AppServiceEnvironmentsOperations operations + :vartype app_service_environments: azure.mgmt.web.v2021_01_15.operations.AppServiceEnvironmentsOperations + :ivar app_service_plans: AppServicePlansOperations operations + :vartype app_service_plans: azure.mgmt.web.v2021_01_15.operations.AppServicePlansOperations + :ivar certificates: CertificatesOperations operations + :vartype certificates: azure.mgmt.web.v2021_01_15.operations.CertificatesOperations + :ivar deleted_web_apps: DeletedWebAppsOperations operations + :vartype deleted_web_apps: azure.mgmt.web.v2021_01_15.operations.DeletedWebAppsOperations + :ivar diagnostics: DiagnosticsOperations operations + :vartype diagnostics: azure.mgmt.web.v2021_01_15.operations.DiagnosticsOperations + :ivar global_model: GlobalOperations operations + :vartype global_model: azure.mgmt.web.v2021_01_15.operations.GlobalOperations + :ivar kube_environments: KubeEnvironmentsOperations operations + :vartype kube_environments: azure.mgmt.web.v2021_01_15.operations.KubeEnvironmentsOperations + :ivar provider: ProviderOperations operations + :vartype provider: azure.mgmt.web.v2021_01_15.operations.ProviderOperations + :ivar recommendations: RecommendationsOperations operations + :vartype recommendations: azure.mgmt.web.v2021_01_15.operations.RecommendationsOperations + :ivar resource_health_metadata: ResourceHealthMetadataOperations operations + :vartype resource_health_metadata: azure.mgmt.web.v2021_01_15.operations.ResourceHealthMetadataOperations + :ivar static_sites: StaticSitesOperations operations + :vartype static_sites: azure.mgmt.web.v2021_01_15.operations.StaticSitesOperations + :ivar web_apps: WebAppsOperations operations + :vartype web_apps: azure.mgmt.web.v2021_01_15.operations.WebAppsOperations + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials.TokenCredential + :param subscription_id: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). + :type subscription_id: str + :param str base_url: Service URL + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + """ + + def __init__( + self, + credential, # type: "TokenCredential" + subscription_id, # type: str + base_url=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> None + if not base_url: + base_url = 'https://management.azure.com' + self._config = WebSiteManagementClientConfiguration(credential, subscription_id, **kwargs) + self._client = ARMPipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False + self._deserialize = Deserializer(client_models) + + self.app_service_certificate_orders = AppServiceCertificateOrdersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.certificate_orders_diagnostics = CertificateOrdersDiagnosticsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.certificate_registration_provider = CertificateRegistrationProviderOperations( + self._client, self._config, self._serialize, self._deserialize) + self.domains = DomainsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.top_level_domains = TopLevelDomainsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.domain_registration_provider = DomainRegistrationProviderOperations( + self._client, self._config, self._serialize, self._deserialize) + self.app_service_environments = AppServiceEnvironmentsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.app_service_plans = AppServicePlansOperations( + self._client, self._config, self._serialize, self._deserialize) + self.certificates = CertificatesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.deleted_web_apps = DeletedWebAppsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.diagnostics = DiagnosticsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.global_model = GlobalOperations( + self._client, self._config, self._serialize, self._deserialize) + self.kube_environments = KubeEnvironmentsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.provider = ProviderOperations( + self._client, self._config, self._serialize, self._deserialize) + self.recommendations = RecommendationsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.resource_health_metadata = ResourceHealthMetadataOperations( + self._client, self._config, self._serialize, self._deserialize) + self.static_sites = StaticSitesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.web_apps = WebAppsOperations( + 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'), + } + 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 + self._client.close() + + def __enter__(self): + # type: () -> WebSiteManagementClient + self._client.__enter__() + return self + + def __exit__(self, *exc_details): + # type: (Any) -> None + self._client.__exit__(*exc_details) diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/__init__.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/__init__.py new file mode 100644 index 000000000000..fc106a4f3d78 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/__init__.py @@ -0,0 +1,10 @@ +# 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 ._web_site_management_client import WebSiteManagementClient +__all__ = ['WebSiteManagementClient'] diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/_configuration.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/_configuration.py new file mode 100644 index 000000000000..b7dd3ffd78df --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/_configuration.py @@ -0,0 +1,67 @@ +# 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, TYPE_CHECKING + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies +from azure.mgmt.core.policies import ARMHttpLoggingPolicy + +from .._version import VERSION + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials_async import AsyncTokenCredential + + +class WebSiteManagementClientConfiguration(Configuration): + """Configuration for WebSiteManagementClient. + + Note that all parameters used to create this instance are saved as instance + attributes. + + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :param subscription_id: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). + :type subscription_id: str + """ + + def __init__( + self, + credential: "AsyncTokenCredential", + subscription_id: str, + **kwargs: Any + ) -> None: + if credential is None: + raise ValueError("Parameter 'credential' must not be None.") + if subscription_id is None: + raise ValueError("Parameter 'subscription_id' must not be None.") + super(WebSiteManagementClientConfiguration, self).__init__(**kwargs) + + self.credential = credential + self.subscription_id = subscription_id + self.api_version = "2021-01-15" + self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) + kwargs.setdefault('sdk_moniker', 'mgmt-web/{}'.format(VERSION)) + self._configure(**kwargs) + + def _configure( + self, + **kwargs: Any + ) -> None: + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') + if self.credential and not self.authentication_policy: + self.authentication_policy = policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/_web_site_management_client.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/_web_site_management_client.py new file mode 100644 index 000000000000..542ed7fdef31 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/_web_site_management_client.py @@ -0,0 +1,168 @@ +# 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, Optional, TYPE_CHECKING + +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core import AsyncARMPipelineClient +from msrest import Deserializer, Serializer + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials_async import AsyncTokenCredential + +from ._configuration import WebSiteManagementClientConfiguration +from .operations import AppServiceCertificateOrdersOperations +from .operations import CertificateOrdersDiagnosticsOperations +from .operations import CertificateRegistrationProviderOperations +from .operations import DomainsOperations +from .operations import TopLevelDomainsOperations +from .operations import DomainRegistrationProviderOperations +from .operations import AppServiceEnvironmentsOperations +from .operations import AppServicePlansOperations +from .operations import CertificatesOperations +from .operations import DeletedWebAppsOperations +from .operations import DiagnosticsOperations +from .operations import GlobalOperations +from .operations import KubeEnvironmentsOperations +from .operations import ProviderOperations +from .operations import RecommendationsOperations +from .operations import ResourceHealthMetadataOperations +from .operations import WebSiteManagementClientOperationsMixin +from .operations import StaticSitesOperations +from .operations import WebAppsOperations +from .. import models + + +class WebSiteManagementClient(WebSiteManagementClientOperationsMixin): + """WebSite Management Client. + + :ivar app_service_certificate_orders: AppServiceCertificateOrdersOperations operations + :vartype app_service_certificate_orders: azure.mgmt.web.v2021_01_15.aio.operations.AppServiceCertificateOrdersOperations + :ivar certificate_orders_diagnostics: CertificateOrdersDiagnosticsOperations operations + :vartype certificate_orders_diagnostics: azure.mgmt.web.v2021_01_15.aio.operations.CertificateOrdersDiagnosticsOperations + :ivar certificate_registration_provider: CertificateRegistrationProviderOperations operations + :vartype certificate_registration_provider: azure.mgmt.web.v2021_01_15.aio.operations.CertificateRegistrationProviderOperations + :ivar domains: DomainsOperations operations + :vartype domains: azure.mgmt.web.v2021_01_15.aio.operations.DomainsOperations + :ivar top_level_domains: TopLevelDomainsOperations operations + :vartype top_level_domains: azure.mgmt.web.v2021_01_15.aio.operations.TopLevelDomainsOperations + :ivar domain_registration_provider: DomainRegistrationProviderOperations operations + :vartype domain_registration_provider: azure.mgmt.web.v2021_01_15.aio.operations.DomainRegistrationProviderOperations + :ivar app_service_environments: AppServiceEnvironmentsOperations operations + :vartype app_service_environments: azure.mgmt.web.v2021_01_15.aio.operations.AppServiceEnvironmentsOperations + :ivar app_service_plans: AppServicePlansOperations operations + :vartype app_service_plans: azure.mgmt.web.v2021_01_15.aio.operations.AppServicePlansOperations + :ivar certificates: CertificatesOperations operations + :vartype certificates: azure.mgmt.web.v2021_01_15.aio.operations.CertificatesOperations + :ivar deleted_web_apps: DeletedWebAppsOperations operations + :vartype deleted_web_apps: azure.mgmt.web.v2021_01_15.aio.operations.DeletedWebAppsOperations + :ivar diagnostics: DiagnosticsOperations operations + :vartype diagnostics: azure.mgmt.web.v2021_01_15.aio.operations.DiagnosticsOperations + :ivar global_model: GlobalOperations operations + :vartype global_model: azure.mgmt.web.v2021_01_15.aio.operations.GlobalOperations + :ivar kube_environments: KubeEnvironmentsOperations operations + :vartype kube_environments: azure.mgmt.web.v2021_01_15.aio.operations.KubeEnvironmentsOperations + :ivar provider: ProviderOperations operations + :vartype provider: azure.mgmt.web.v2021_01_15.aio.operations.ProviderOperations + :ivar recommendations: RecommendationsOperations operations + :vartype recommendations: azure.mgmt.web.v2021_01_15.aio.operations.RecommendationsOperations + :ivar resource_health_metadata: ResourceHealthMetadataOperations operations + :vartype resource_health_metadata: azure.mgmt.web.v2021_01_15.aio.operations.ResourceHealthMetadataOperations + :ivar static_sites: StaticSitesOperations operations + :vartype static_sites: azure.mgmt.web.v2021_01_15.aio.operations.StaticSitesOperations + :ivar web_apps: WebAppsOperations operations + :vartype web_apps: azure.mgmt.web.v2021_01_15.aio.operations.WebAppsOperations + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :param subscription_id: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). + :type subscription_id: str + :param str base_url: Service URL + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + """ + + def __init__( + self, + credential: "AsyncTokenCredential", + subscription_id: str, + base_url: Optional[str] = None, + **kwargs: Any + ) -> None: + if not base_url: + base_url = 'https://management.azure.com' + self._config = WebSiteManagementClientConfiguration(credential, subscription_id, **kwargs) + self._client = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False + self._deserialize = Deserializer(client_models) + + self.app_service_certificate_orders = AppServiceCertificateOrdersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.certificate_orders_diagnostics = CertificateOrdersDiagnosticsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.certificate_registration_provider = CertificateRegistrationProviderOperations( + self._client, self._config, self._serialize, self._deserialize) + self.domains = DomainsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.top_level_domains = TopLevelDomainsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.domain_registration_provider = DomainRegistrationProviderOperations( + self._client, self._config, self._serialize, self._deserialize) + self.app_service_environments = AppServiceEnvironmentsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.app_service_plans = AppServicePlansOperations( + self._client, self._config, self._serialize, self._deserialize) + self.certificates = CertificatesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.deleted_web_apps = DeletedWebAppsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.diagnostics = DiagnosticsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.global_model = GlobalOperations( + self._client, self._config, self._serialize, self._deserialize) + self.kube_environments = KubeEnvironmentsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.provider = ProviderOperations( + self._client, self._config, self._serialize, self._deserialize) + self.recommendations = RecommendationsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.resource_health_metadata = ResourceHealthMetadataOperations( + self._client, self._config, self._serialize, self._deserialize) + self.static_sites = StaticSitesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.web_apps = WebAppsOperations( + 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'), + } + 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() + + async def __aenter__(self) -> "WebSiteManagementClient": + await self._client.__aenter__() + return self + + async def __aexit__(self, *exc_details) -> None: + await self._client.__aexit__(*exc_details) diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/__init__.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/__init__.py new file mode 100644 index 000000000000..5c7f8e46e95e --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/__init__.py @@ -0,0 +1,49 @@ +# 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 ._app_service_certificate_orders_operations import AppServiceCertificateOrdersOperations +from ._certificate_orders_diagnostics_operations import CertificateOrdersDiagnosticsOperations +from ._certificate_registration_provider_operations import CertificateRegistrationProviderOperations +from ._domains_operations import DomainsOperations +from ._top_level_domains_operations import TopLevelDomainsOperations +from ._domain_registration_provider_operations import DomainRegistrationProviderOperations +from ._app_service_environments_operations import AppServiceEnvironmentsOperations +from ._app_service_plans_operations import AppServicePlansOperations +from ._certificates_operations import CertificatesOperations +from ._deleted_web_apps_operations import DeletedWebAppsOperations +from ._diagnostics_operations import DiagnosticsOperations +from ._global_model_operations import GlobalOperations +from ._kube_environments_operations import KubeEnvironmentsOperations +from ._provider_operations import ProviderOperations +from ._recommendations_operations import RecommendationsOperations +from ._resource_health_metadata_operations import ResourceHealthMetadataOperations +from ._web_site_management_client_operations import WebSiteManagementClientOperationsMixin +from ._static_sites_operations import StaticSitesOperations +from ._web_apps_operations import WebAppsOperations + +__all__ = [ + 'AppServiceCertificateOrdersOperations', + 'CertificateOrdersDiagnosticsOperations', + 'CertificateRegistrationProviderOperations', + 'DomainsOperations', + 'TopLevelDomainsOperations', + 'DomainRegistrationProviderOperations', + 'AppServiceEnvironmentsOperations', + 'AppServicePlansOperations', + 'CertificatesOperations', + 'DeletedWebAppsOperations', + 'DiagnosticsOperations', + 'GlobalOperations', + 'KubeEnvironmentsOperations', + 'ProviderOperations', + 'RecommendationsOperations', + 'ResourceHealthMetadataOperations', + 'WebSiteManagementClientOperationsMixin', + 'StaticSitesOperations', + 'WebAppsOperations', +] diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_app_service_certificate_orders_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_app_service_certificate_orders_operations.py new file mode 100644 index 000000000000..787021c8b679 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_app_service_certificate_orders_operations.py @@ -0,0 +1,1491 @@ +# 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, List, 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 AppServiceCertificateOrdersOperations: + """AppServiceCertificateOrdersOperations 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.web.v2021_01_15.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, + **kwargs: Any + ) -> AsyncIterable["_models.AppServiceCertificateOrderCollection"]: + """List all certificate orders in a subscription. + + Description for List all certificate orders in a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either AppServiceCertificateOrderCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrderCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateOrderCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('AppServiceCertificateOrderCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.CertificateRegistration/certificateOrders'} # type: ignore + + async def validate_purchase_information( + self, + app_service_certificate_order: "_models.AppServiceCertificateOrder", + **kwargs: Any + ) -> None: + """Validate information for a certificate order. + + Description for Validate information for a certificate order. + + :param app_service_certificate_order: Information for a certificate order. + :type app_service_certificate_order: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrder + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.validate_purchase_information.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_service_certificate_order, 'AppServiceCertificateOrder') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + validate_purchase_information.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.CertificateRegistration/validateCertificateRegistrationInformation'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.AppServiceCertificateOrderCollection"]: + """Get certificate orders in a resource group. + + Description for Get certificate orders in a resource group. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :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 AppServiceCertificateOrderCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrderCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateOrderCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('AppServiceCertificateOrderCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders'} # type: ignore + + async def get( + self, + resource_group_name: str, + certificate_order_name: str, + **kwargs: Any + ) -> "_models.AppServiceCertificateOrder": + """Get a certificate order. + + Description for Get a certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order.. + :type certificate_order_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppServiceCertificateOrder, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrder + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateOrder"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AppServiceCertificateOrder', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}'} # type: ignore + + async def _create_or_update_initial( + self, + resource_group_name: str, + certificate_order_name: str, + certificate_distinguished_name: "_models.AppServiceCertificateOrder", + **kwargs: Any + ) -> "_models.AppServiceCertificateOrder": + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateOrder"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(certificate_distinguished_name, 'AppServiceCertificateOrder') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('AppServiceCertificateOrder', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('AppServiceCertificateOrder', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}'} # type: ignore + + async def begin_create_or_update( + self, + resource_group_name: str, + certificate_order_name: str, + certificate_distinguished_name: "_models.AppServiceCertificateOrder", + **kwargs: Any + ) -> AsyncLROPoller["_models.AppServiceCertificateOrder"]: + """Create or update a certificate purchase order. + + Description for Create or update a certificate purchase order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param certificate_distinguished_name: Distinguished name to use for the certificate order. + :type certificate_distinguished_name: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrder + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 AppServiceCertificateOrder or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrder] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateOrder"] + 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_or_update_initial( + resource_group_name=resource_group_name, + certificate_order_name=certificate_order_name, + certificate_distinguished_name=certificate_distinguished_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('AppServiceCertificateOrder', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}'} # type: ignore + + async def delete( + self, + resource_group_name: str, + certificate_order_name: str, + **kwargs: Any + ) -> None: + """Delete an existing certificate order. + + Description for Delete an existing certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}'} # type: ignore + + async def update( + self, + resource_group_name: str, + certificate_order_name: str, + certificate_distinguished_name: "_models.AppServiceCertificateOrderPatchResource", + **kwargs: Any + ) -> "_models.AppServiceCertificateOrder": + """Create or update a certificate purchase order. + + Description for Create or update a certificate purchase order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param certificate_distinguished_name: Distinguished name to use for the certificate order. + :type certificate_distinguished_name: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrderPatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppServiceCertificateOrder, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrder + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateOrder"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(certificate_distinguished_name, 'AppServiceCertificateOrderPatchResource') + 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, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('AppServiceCertificateOrder', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('AppServiceCertificateOrder', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}'} # type: ignore + + def list_certificates( + self, + resource_group_name: str, + certificate_order_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.AppServiceCertificateCollection"]: + """List all certificates associated with a certificate order. + + Description for List all certificates associated with a certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either AppServiceCertificateCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_certificates.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('AppServiceCertificateCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_certificates.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/certificates'} # type: ignore + + async def get_certificate( + self, + resource_group_name: str, + certificate_order_name: str, + name: str, + **kwargs: Any + ) -> "_models.AppServiceCertificateResource": + """Get the certificate associated with a certificate order. + + Description for Get the certificate associated with a certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param name: Name of the certificate. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppServiceCertificateResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_certificate.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AppServiceCertificateResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_certificate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/certificates/{name}'} # type: ignore + + async def _create_or_update_certificate_initial( + self, + resource_group_name: str, + certificate_order_name: str, + name: str, + key_vault_certificate: "_models.AppServiceCertificateResource", + **kwargs: Any + ) -> "_models.AppServiceCertificateResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_certificate_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(key_vault_certificate, 'AppServiceCertificateResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('AppServiceCertificateResource', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('AppServiceCertificateResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_certificate_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/certificates/{name}'} # type: ignore + + async def begin_create_or_update_certificate( + self, + resource_group_name: str, + certificate_order_name: str, + name: str, + key_vault_certificate: "_models.AppServiceCertificateResource", + **kwargs: Any + ) -> AsyncLROPoller["_models.AppServiceCertificateResource"]: + """Creates or updates a certificate and associates with key vault secret. + + Description for Creates or updates a certificate and associates with key vault secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param name: Name of the certificate. + :type name: str + :param key_vault_certificate: Key vault certificate resource Id. + :type key_vault_certificate: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateResource + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 AppServiceCertificateResource or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateResource"] + 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_or_update_certificate_initial( + resource_group_name=resource_group_name, + certificate_order_name=certificate_order_name, + name=name, + key_vault_certificate=key_vault_certificate, + 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('AppServiceCertificateResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update_certificate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/certificates/{name}'} # type: ignore + + async def delete_certificate( + self, + resource_group_name: str, + certificate_order_name: str, + name: str, + **kwargs: Any + ) -> None: + """Delete the certificate associated with a certificate order. + + Description for Delete the certificate associated with a certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param name: Name of the certificate. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_certificate.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_certificate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/certificates/{name}'} # type: ignore + + async def update_certificate( + self, + resource_group_name: str, + certificate_order_name: str, + name: str, + key_vault_certificate: "_models.AppServiceCertificatePatchResource", + **kwargs: Any + ) -> "_models.AppServiceCertificateResource": + """Creates or updates a certificate and associates with key vault secret. + + Description for Creates or updates a certificate and associates with key vault secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param name: Name of the certificate. + :type name: str + :param key_vault_certificate: Key vault certificate resource Id. + :type key_vault_certificate: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificatePatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppServiceCertificateResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_certificate.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(key_vault_certificate, 'AppServiceCertificatePatchResource') + 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, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('AppServiceCertificateResource', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('AppServiceCertificateResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_certificate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/certificates/{name}'} # type: ignore + + async def reissue( + self, + resource_group_name: str, + certificate_order_name: str, + reissue_certificate_order_request: "_models.ReissueCertificateOrderRequest", + **kwargs: Any + ) -> None: + """Reissue an existing certificate order. + + Description for Reissue an existing certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param reissue_certificate_order_request: Parameters for the reissue. + :type reissue_certificate_order_request: ~azure.mgmt.web.v2021_01_15.models.ReissueCertificateOrderRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.reissue.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(reissue_certificate_order_request, 'ReissueCertificateOrderRequest') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reissue.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/reissue'} # type: ignore + + async def renew( + self, + resource_group_name: str, + certificate_order_name: str, + renew_certificate_order_request: "_models.RenewCertificateOrderRequest", + **kwargs: Any + ) -> None: + """Renew an existing certificate order. + + Description for Renew an existing certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param renew_certificate_order_request: Renew parameters. + :type renew_certificate_order_request: ~azure.mgmt.web.v2021_01_15.models.RenewCertificateOrderRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.renew.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(renew_certificate_order_request, 'RenewCertificateOrderRequest') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + renew.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/renew'} # type: ignore + + async def resend_email( + self, + resource_group_name: str, + certificate_order_name: str, + **kwargs: Any + ) -> None: + """Resend certificate email. + + Description for Resend certificate email. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.resend_email.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + resend_email.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/resendEmail'} # type: ignore + + async def resend_request_emails( + self, + resource_group_name: str, + certificate_order_name: str, + name_identifier: "_models.NameIdentifier", + **kwargs: Any + ) -> None: + """Verify domain ownership for this certificate order. + + Description for Verify domain ownership for this certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param name_identifier: Email address. + :type name_identifier: ~azure.mgmt.web.v2021_01_15.models.NameIdentifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.resend_request_emails.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(name_identifier, 'NameIdentifier') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + resend_request_emails.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/resendRequestEmails'} # type: ignore + + async def retrieve_site_seal( + self, + resource_group_name: str, + certificate_order_name: str, + site_seal_request: "_models.SiteSealRequest", + **kwargs: Any + ) -> "_models.SiteSeal": + """Verify domain ownership for this certificate order. + + Description for Verify domain ownership for this certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param site_seal_request: Site seal request. + :type site_seal_request: ~azure.mgmt.web.v2021_01_15.models.SiteSealRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteSeal, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteSeal + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSeal"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.retrieve_site_seal.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_seal_request, 'SiteSealRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteSeal', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + retrieve_site_seal.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/retrieveSiteSeal'} # type: ignore + + async def verify_domain_ownership( + self, + resource_group_name: str, + certificate_order_name: str, + **kwargs: Any + ) -> None: + """Verify domain ownership for this certificate order. + + Description for Verify domain ownership for this certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.verify_domain_ownership.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + verify_domain_ownership.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/verifyDomainOwnership'} # type: ignore + + async def retrieve_certificate_actions( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> List["_models.CertificateOrderAction"]: + """Retrieve the list of certificate actions. + + Description for Retrieve the list of certificate actions. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the certificate order. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of CertificateOrderAction, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.CertificateOrderAction] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.CertificateOrderAction"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.retrieve_certificate_actions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[CertificateOrderAction]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + retrieve_certificate_actions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{name}/retrieveCertificateActions'} # type: ignore + + async def retrieve_certificate_email_history( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> List["_models.CertificateEmail"]: + """Retrieve email history. + + Description for Retrieve email history. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the certificate order. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of CertificateEmail, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.CertificateEmail] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.CertificateEmail"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.retrieve_certificate_email_history.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[CertificateEmail]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + retrieve_certificate_email_history.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{name}/retrieveEmailHistory'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_app_service_environments_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_app_service_environments_operations.py new file mode 100644 index 000000000000..d1f7343ad41c --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_app_service_environments_operations.py @@ -0,0 +1,3848 @@ +# 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, List, 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 AppServiceEnvironmentsOperations: + """AppServiceEnvironmentsOperations 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.web.v2021_01_15.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, + **kwargs: Any + ) -> AsyncIterable["_models.AppServiceEnvironmentCollection"]: + """Get all App Service Environments for a subscription. + + Description for Get all App Service Environments for a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either AppServiceEnvironmentCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironmentCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceEnvironmentCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('AppServiceEnvironmentCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/hostingEnvironments'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.AppServiceEnvironmentCollection"]: + """Get all App Service Environments in a resource group. + + Description for Get all App Service Environments in a resource group. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :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 AppServiceEnvironmentCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironmentCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceEnvironmentCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('AppServiceEnvironmentCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments'} # type: ignore + + async def get( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.AppServiceEnvironmentResource": + """Get the properties of an App Service Environment. + + Description for Get the properties of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppServiceEnvironmentResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironmentResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceEnvironmentResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AppServiceEnvironmentResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}'} # type: ignore + + async def _create_or_update_initial( + self, + resource_group_name: str, + name: str, + hosting_environment_envelope: "_models.AppServiceEnvironmentResource", + **kwargs: Any + ) -> "_models.AppServiceEnvironmentResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceEnvironmentResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(hosting_environment_envelope, 'AppServiceEnvironmentResource') + 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, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('AppServiceEnvironmentResource', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('AppServiceEnvironmentResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('AppServiceEnvironmentResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}'} # type: ignore + + async def begin_create_or_update( + self, + resource_group_name: str, + name: str, + hosting_environment_envelope: "_models.AppServiceEnvironmentResource", + **kwargs: Any + ) -> AsyncLROPoller["_models.AppServiceEnvironmentResource"]: + """Create or update an App Service Environment. + + Description for Create or update an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param hosting_environment_envelope: Configuration details of the App Service Environment. + :type hosting_environment_envelope: ~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironmentResource + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 AppServiceEnvironmentResource or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironmentResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceEnvironmentResource"] + 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_or_update_initial( + resource_group_name=resource_group_name, + name=name, + hosting_environment_envelope=hosting_environment_envelope, + 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('AppServiceEnvironmentResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}'} # type: ignore + + async def _delete_initial( + self, + resource_group_name: str, + name: str, + force_delete: Optional[bool] = None, + **kwargs: Any + ) -> 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-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if force_delete is not None: + query_parameters['forceDelete'] = self._serialize.query("force_delete", force_delete, 'bool') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}'} # type: ignore + + async def begin_delete( + self, + resource_group_name: str, + name: str, + force_delete: Optional[bool] = None, + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Delete an App Service Environment. + + Description for Delete an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param force_delete: Specify :code:`true` to force the deletion even if the App + Service Environment contains resources. The default is :code:`false`. + :type force_delete: bool + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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, + name=name, + force_delete=force_delete, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}'} # type: ignore + + async def update( + self, + resource_group_name: str, + name: str, + hosting_environment_envelope: "_models.AppServiceEnvironmentPatchResource", + **kwargs: Any + ) -> "_models.AppServiceEnvironmentResource": + """Create or update an App Service Environment. + + Description for Create or update an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param hosting_environment_envelope: Configuration details of the App Service Environment. + :type hosting_environment_envelope: ~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironmentPatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppServiceEnvironmentResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironmentResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceEnvironmentResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(hosting_environment_envelope, 'AppServiceEnvironmentPatchResource') + 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, 201, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('AppServiceEnvironmentResource', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('AppServiceEnvironmentResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('AppServiceEnvironmentResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}'} # type: ignore + + def list_capacities( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.StampCapacityCollection"]: + """Get the used, available, and total worker capacity an App Service Environment. + + Description for Get the used, available, and total worker capacity an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StampCapacityCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.StampCapacityCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StampCapacityCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_capacities.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('StampCapacityCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_capacities.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/capacities/compute'} # type: ignore + + async def get_vip_info( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.AddressResponse": + """Get IP addresses assigned to an App Service Environment. + + Description for Get IP addresses assigned to an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AddressResponse, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AddressResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AddressResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_vip_info.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AddressResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_vip_info.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/capacities/virtualip'} # type: ignore + + async def _change_vnet_initial( + self, + resource_group_name: str, + name: str, + vnet_info: "_models.VirtualNetworkProfile", + **kwargs: Any + ) -> "_models.WebAppCollection": + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._change_vnet_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(vnet_info, 'VirtualNetworkProfile') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('WebAppCollection', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('WebAppCollection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _change_vnet_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/changeVirtualNetwork'} # type: ignore + + async def begin_change_vnet( + self, + resource_group_name: str, + name: str, + vnet_info: "_models.VirtualNetworkProfile", + **kwargs: Any + ) -> AsyncLROPoller[AsyncItemPaged["_models.WebAppCollection"]]: + """Move an App Service Environment to a different VNET. + + Description for Move an App Service Environment to a different VNET. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param vnet_info: Details for the new virtual network. + :type vnet_info: ~azure.mgmt.web.v2021_01_15.models.VirtualNetworkProfile + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 an iterator like instance of either WebAppCollection or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppCollection]] + :raises ~azure.core.exceptions.HttpResponseError: + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = "application/json" + accept = "application/json" + + def prepare_request(next_link=None): + # 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') + + if not next_link: + # Construct URL + url = self.change_vnet.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(vnet_info, 'VirtualNetworkProfile') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(vnet_info, 'VirtualNetworkProfile') + body_content_kwargs['content'] = body_content + request = self._client.get(url, query_parameters, header_parameters, **body_content_kwargs) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('WebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + 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._change_vnet_initial( + resource_group_name=resource_group_name, + name=name, + vnet_info=vnet_info, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + def get_long_running_output(pipeline_response): + async def internal_get_next(next_link=None): + if next_link is None: + return pipeline_response + else: + return await get_next(next_link) + + return AsyncItemPaged( + internal_get_next, extract_data + ) + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_change_vnet.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/changeVirtualNetwork'} # type: ignore + + async def get_ase_v3_networking_configuration( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.AseV3NetworkingConfiguration": + """Get networking configuration of an App Service Environment. + + Description for Get networking configuration of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AseV3NetworkingConfiguration, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AseV3NetworkingConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AseV3NetworkingConfiguration"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_ase_v3_networking_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AseV3NetworkingConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_ase_v3_networking_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/configurations/networking'} # type: ignore + + async def update_ase_networking_configuration( + self, + resource_group_name: str, + name: str, + ase_networking_configuration: "_models.AseV3NetworkingConfiguration", + **kwargs: Any + ) -> "_models.AseV3NetworkingConfiguration": + """Update networking configuration of an App Service Environment. + + Description for Update networking configuration of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param ase_networking_configuration: + :type ase_networking_configuration: ~azure.mgmt.web.v2021_01_15.models.AseV3NetworkingConfiguration + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AseV3NetworkingConfiguration, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AseV3NetworkingConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AseV3NetworkingConfiguration"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_ase_networking_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(ase_networking_configuration, 'AseV3NetworkingConfiguration') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AseV3NetworkingConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_ase_networking_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/configurations/networking'} # type: ignore + + async def list_diagnostics( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> List["_models.HostingEnvironmentDiagnostics"]: + """Get diagnostic information for an App Service Environment. + + Description for Get diagnostic information for an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of HostingEnvironmentDiagnostics, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentDiagnostics] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.HostingEnvironmentDiagnostics"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_diagnostics.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[HostingEnvironmentDiagnostics]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_diagnostics.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/diagnostics'} # type: ignore + + async def get_diagnostics_item( + self, + resource_group_name: str, + name: str, + diagnostics_name: str, + **kwargs: Any + ) -> "_models.HostingEnvironmentDiagnostics": + """Get a diagnostics item for an App Service Environment. + + Description for Get a diagnostics item for an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param diagnostics_name: Name of the diagnostics item. + :type diagnostics_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HostingEnvironmentDiagnostics, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentDiagnostics + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostingEnvironmentDiagnostics"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_diagnostics_item.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'diagnosticsName': self._serialize.url("diagnostics_name", diagnostics_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HostingEnvironmentDiagnostics', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_diagnostics_item.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/diagnostics/{diagnosticsName}'} # type: ignore + + def get_inbound_network_dependencies_endpoints( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.InboundEnvironmentEndpointCollection"]: + """Get the network endpoints of all inbound dependencies of an App Service Environment. + + Description for Get the network endpoints of all inbound dependencies of an App Service + Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either InboundEnvironmentEndpointCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.InboundEnvironmentEndpointCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.InboundEnvironmentEndpointCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_inbound_network_dependencies_endpoints.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('InboundEnvironmentEndpointCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_inbound_network_dependencies_endpoints.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/inboundNetworkDependenciesEndpoints'} # type: ignore + + def list_multi_role_pools( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.WorkerPoolCollection"]: + """Get all multi-role pools. + + Description for Get all multi-role pools. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WorkerPoolCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.WorkerPoolCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_multi_role_pools.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('WorkerPoolCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_multi_role_pools.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools'} # type: ignore + + async def get_multi_role_pool( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.WorkerPoolResource": + """Get properties of a multi-role pool. + + Description for Get properties of a multi-role pool. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: WorkerPoolResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_multi_role_pool.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_multi_role_pool.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default'} # type: ignore + + async def _create_or_update_multi_role_pool_initial( + self, + resource_group_name: str, + name: str, + multi_role_pool_envelope: "_models.WorkerPoolResource", + **kwargs: Any + ) -> "_models.WorkerPoolResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_multi_role_pool_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(multi_role_pool_envelope, 'WorkerPoolResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_multi_role_pool_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default'} # type: ignore + + async def begin_create_or_update_multi_role_pool( + self, + resource_group_name: str, + name: str, + multi_role_pool_envelope: "_models.WorkerPoolResource", + **kwargs: Any + ) -> AsyncLROPoller["_models.WorkerPoolResource"]: + """Create or update a multi-role pool. + + Description for Create or update a multi-role pool. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param multi_role_pool_envelope: Properties of the multi-role pool. + :type multi_role_pool_envelope: ~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 WorkerPoolResource or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolResource"] + 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_or_update_multi_role_pool_initial( + resource_group_name=resource_group_name, + name=name, + multi_role_pool_envelope=multi_role_pool_envelope, + 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('WorkerPoolResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update_multi_role_pool.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default'} # type: ignore + + async def update_multi_role_pool( + self, + resource_group_name: str, + name: str, + multi_role_pool_envelope: "_models.WorkerPoolResource", + **kwargs: Any + ) -> "_models.WorkerPoolResource": + """Create or update a multi-role pool. + + Description for Create or update a multi-role pool. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param multi_role_pool_envelope: Properties of the multi-role pool. + :type multi_role_pool_envelope: ~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: WorkerPoolResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_multi_role_pool.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(multi_role_pool_envelope, 'WorkerPoolResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_multi_role_pool.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default'} # type: ignore + + def list_multi_role_pool_instance_metric_definitions( + self, + resource_group_name: str, + name: str, + instance: str, + **kwargs: Any + ) -> AsyncIterable["_models.ResourceMetricDefinitionCollection"]: + """Get metric definitions for a specific instance of a multi-role pool of an App Service Environment. + + Description for Get metric definitions for a specific instance of a multi-role pool of an App + Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param instance: Name of the instance in the multi-role pool. + :type instance: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ResourceMetricDefinitionCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceMetricDefinitionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceMetricDefinitionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_multi_role_pool_instance_metric_definitions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'instance': self._serialize.url("instance", instance, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ResourceMetricDefinitionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_multi_role_pool_instance_metric_definitions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default/instances/{instance}/metricdefinitions'} # type: ignore + + def list_multi_role_metric_definitions( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.ResourceMetricDefinitionCollection"]: + """Get metric definitions for a multi-role pool of an App Service Environment. + + Description for Get metric definitions for a multi-role pool of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ResourceMetricDefinitionCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceMetricDefinitionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceMetricDefinitionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_multi_role_metric_definitions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ResourceMetricDefinitionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_multi_role_metric_definitions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default/metricdefinitions'} # type: ignore + + def list_multi_role_pool_skus( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.SkuInfoCollection"]: + """Get available SKUs for scaling a multi-role pool. + + Description for Get available SKUs for scaling a multi-role pool. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SkuInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.SkuInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SkuInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_multi_role_pool_skus.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SkuInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_multi_role_pool_skus.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default/skus'} # type: ignore + + def list_multi_role_usages( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.UsageCollection"]: + """Get usage metrics for a multi-role pool of an App Service Environment. + + Description for Get usage metrics for a multi-role pool of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either UsageCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.UsageCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.UsageCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_multi_role_usages.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('UsageCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_multi_role_usages.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default/usages'} # type: ignore + + async def list_operations( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> List["_models.Operation"]: + """List all currently running operations on the App Service Environment. + + Description for List all currently running operations on the App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of Operation, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.Operation] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.Operation"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_operations.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[Operation]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_operations.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/operations'} # type: ignore + + def get_outbound_network_dependencies_endpoints( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.OutboundEnvironmentEndpointCollection"]: + """Get the network endpoints of all outbound dependencies of an App Service Environment. + + Description for Get the network endpoints of all outbound dependencies of an App Service + Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either OutboundEnvironmentEndpointCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.OutboundEnvironmentEndpointCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.OutboundEnvironmentEndpointCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_outbound_network_dependencies_endpoints.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('OutboundEnvironmentEndpointCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_outbound_network_dependencies_endpoints.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/outboundNetworkDependenciesEndpoints'} # type: ignore + + def get_private_endpoint_connection_list( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.PrivateEndpointConnectionCollection"]: + """Gets the list of private endpoints associated with a hosting environment. + + Description for Gets the list of private endpoints associated with a hosting environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PrivateEndpointConnectionCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.PrivateEndpointConnectionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_private_endpoint_connection_list.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PrivateEndpointConnectionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_private_endpoint_connection_list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/privateEndpointConnections'} # type: ignore + + async def get_private_endpoint_connection( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + **kwargs: Any + ) -> "_models.RemotePrivateEndpointConnectionARMResource": + """Gets a private endpoint connection. + + Description for Gets a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param private_endpoint_connection_name: Name of the private endpoint connection. + :type private_endpoint_connection_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RemotePrivateEndpointConnectionARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_endpoint_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def _approve_or_reject_private_endpoint_connection_initial( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + private_endpoint_wrapper: "_models.PrivateLinkConnectionApprovalRequestResource", + **kwargs: Any + ) -> "_models.RemotePrivateEndpointConnectionARMResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._approve_or_reject_private_endpoint_connection_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(private_endpoint_wrapper, 'PrivateLinkConnectionApprovalRequestResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _approve_or_reject_private_endpoint_connection_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def begin_approve_or_reject_private_endpoint_connection( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + private_endpoint_wrapper: "_models.PrivateLinkConnectionApprovalRequestResource", + **kwargs: Any + ) -> AsyncLROPoller["_models.RemotePrivateEndpointConnectionARMResource"]: + """Approves or rejects a private endpoint connection. + + Description for Approves or rejects a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param private_endpoint_connection_name: + :type private_endpoint_connection_name: str + :param private_endpoint_wrapper: + :type private_endpoint_wrapper: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkConnectionApprovalRequestResource + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 RemotePrivateEndpointConnectionARMResource or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + 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._approve_or_reject_private_endpoint_connection_initial( + resource_group_name=resource_group_name, + name=name, + private_endpoint_connection_name=private_endpoint_connection_name, + private_endpoint_wrapper=private_endpoint_wrapper, + 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('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_approve_or_reject_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def _delete_private_endpoint_connection_initial( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + **kwargs: Any + ) -> Any: + cls = kwargs.pop('cls', None) # type: ClsType[Any] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_private_endpoint_connection_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('object', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('object', pipeline_response) + + if response.status_code == 204: + deserialized = self._deserialize('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _delete_private_endpoint_connection_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def begin_delete_private_endpoint_connection( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + **kwargs: Any + ) -> AsyncLROPoller[Any]: + """Deletes a private endpoint connection. + + Description for Deletes a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param private_endpoint_connection_name: + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 any or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[any] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[Any] + 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_private_endpoint_connection_initial( + resource_group_name=resource_group_name, + name=name, + private_endpoint_connection_name=private_endpoint_connection_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('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def get_private_link_resources( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.PrivateLinkResourcesWrapper": + """Gets the private link resources. + + Description for Gets the private link resources. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateLinkResourcesWrapper, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkResourcesWrapper + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourcesWrapper"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_link_resources.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateLinkResourcesWrapper', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_link_resources.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/privateLinkResources'} # type: ignore + + async def reboot( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> None: + """Reboot all machines in an App Service Environment. + + Description for Reboot all machines in an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.reboot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reboot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/reboot'} # type: ignore + + async def _resume_initial( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.WebAppCollection": + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._resume_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('WebAppCollection', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('WebAppCollection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _resume_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/resume'} # type: ignore + + async def begin_resume( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncLROPoller[AsyncItemPaged["_models.WebAppCollection"]]: + """Resume an App Service Environment. + + Description for Resume an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type 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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 an iterator like instance of either WebAppCollection or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppCollection]] + :raises ~azure.core.exceptions.HttpResponseError: + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.resume.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(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('WebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + 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._resume_initial( + resource_group_name=resource_group_name, + name=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): + async def internal_get_next(next_link=None): + if next_link is None: + return pipeline_response + else: + return await get_next(next_link) + + return AsyncItemPaged( + internal_get_next, extract_data + ) + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_resume.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/resume'} # type: ignore + + def list_app_service_plans( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.AppServicePlanCollection"]: + """Get all App Service plans in an App Service Environment. + + Description for Get all App Service plans in an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either AppServicePlanCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.AppServicePlanCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServicePlanCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_app_service_plans.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('AppServicePlanCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_app_service_plans.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/serverfarms'} # type: ignore + + def list_web_apps( + self, + resource_group_name: str, + name: str, + properties_to_include: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.WebAppCollection"]: + """Get all apps in an App Service Environment. + + Description for Get all apps in an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param properties_to_include: Comma separated list of app properties to include. + :type properties_to_include: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_web_apps.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if properties_to_include is not None: + query_parameters['propertiesToInclude'] = self._serialize.query("properties_to_include", properties_to_include, 'str') + 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('WebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_web_apps.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/sites'} # type: ignore + + async def _suspend_initial( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.WebAppCollection": + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._suspend_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('WebAppCollection', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('WebAppCollection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _suspend_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/suspend'} # type: ignore + + async def begin_suspend( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncLROPoller[AsyncItemPaged["_models.WebAppCollection"]]: + """Suspend an App Service Environment. + + Description for Suspend an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type 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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 an iterator like instance of either WebAppCollection or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppCollection]] + :raises ~azure.core.exceptions.HttpResponseError: + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.suspend.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(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('WebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + 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._suspend_initial( + resource_group_name=resource_group_name, + name=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): + async def internal_get_next(next_link=None): + if next_link is None: + return pipeline_response + else: + return await get_next(next_link) + + return AsyncItemPaged( + internal_get_next, extract_data + ) + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_suspend.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/suspend'} # type: ignore + + def list_usages( + self, + resource_group_name: str, + name: str, + filter: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.CsmUsageQuotaCollection"]: + """Get global usage metrics of an App Service Environment. + + Description for Get global usage metrics of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param filter: Return only usages/metrics specified in the filter. Filter conforms to odata + syntax. Example: $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq + 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq + duration'[Hour|Minute|Day]'. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either CsmUsageQuotaCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.CsmUsageQuotaCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmUsageQuotaCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_usages.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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 filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('CsmUsageQuotaCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_usages.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/usages'} # type: ignore + + def list_worker_pools( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.WorkerPoolCollection"]: + """Get all worker pools of an App Service Environment. + + Description for Get all worker pools of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WorkerPoolCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.WorkerPoolCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_worker_pools.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('WorkerPoolCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_worker_pools.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools'} # type: ignore + + async def get_worker_pool( + self, + resource_group_name: str, + name: str, + worker_pool_name: str, + **kwargs: Any + ) -> "_models.WorkerPoolResource": + """Get properties of a worker pool. + + Description for Get properties of a worker pool. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param worker_pool_name: Name of the worker pool. + :type worker_pool_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: WorkerPoolResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_worker_pool.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerPoolName': self._serialize.url("worker_pool_name", worker_pool_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_worker_pool.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}'} # type: ignore + + async def _create_or_update_worker_pool_initial( + self, + resource_group_name: str, + name: str, + worker_pool_name: str, + worker_pool_envelope: "_models.WorkerPoolResource", + **kwargs: Any + ) -> "_models.WorkerPoolResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_worker_pool_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerPoolName': self._serialize.url("worker_pool_name", worker_pool_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(worker_pool_envelope, 'WorkerPoolResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_worker_pool_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}'} # type: ignore + + async def begin_create_or_update_worker_pool( + self, + resource_group_name: str, + name: str, + worker_pool_name: str, + worker_pool_envelope: "_models.WorkerPoolResource", + **kwargs: Any + ) -> AsyncLROPoller["_models.WorkerPoolResource"]: + """Create or update a worker pool. + + Description for Create or update a worker pool. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param worker_pool_name: Name of the worker pool. + :type worker_pool_name: str + :param worker_pool_envelope: Properties of the worker pool. + :type worker_pool_envelope: ~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 WorkerPoolResource or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolResource"] + 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_or_update_worker_pool_initial( + resource_group_name=resource_group_name, + name=name, + worker_pool_name=worker_pool_name, + worker_pool_envelope=worker_pool_envelope, + 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('WorkerPoolResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerPoolName': self._serialize.url("worker_pool_name", worker_pool_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update_worker_pool.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}'} # type: ignore + + async def update_worker_pool( + self, + resource_group_name: str, + name: str, + worker_pool_name: str, + worker_pool_envelope: "_models.WorkerPoolResource", + **kwargs: Any + ) -> "_models.WorkerPoolResource": + """Create or update a worker pool. + + Description for Create or update a worker pool. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param worker_pool_name: Name of the worker pool. + :type worker_pool_name: str + :param worker_pool_envelope: Properties of the worker pool. + :type worker_pool_envelope: ~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: WorkerPoolResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_worker_pool.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerPoolName': self._serialize.url("worker_pool_name", worker_pool_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(worker_pool_envelope, 'WorkerPoolResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_worker_pool.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}'} # type: ignore + + def list_worker_pool_instance_metric_definitions( + self, + resource_group_name: str, + name: str, + worker_pool_name: str, + instance: str, + **kwargs: Any + ) -> AsyncIterable["_models.ResourceMetricDefinitionCollection"]: + """Get metric definitions for a specific instance of a worker pool of an App Service Environment. + + Description for Get metric definitions for a specific instance of a worker pool of an App + Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param worker_pool_name: Name of the worker pool. + :type worker_pool_name: str + :param instance: Name of the instance in the worker pool. + :type instance: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ResourceMetricDefinitionCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceMetricDefinitionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceMetricDefinitionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_worker_pool_instance_metric_definitions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerPoolName': self._serialize.url("worker_pool_name", worker_pool_name, 'str'), + 'instance': self._serialize.url("instance", instance, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ResourceMetricDefinitionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_worker_pool_instance_metric_definitions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}/instances/{instance}/metricdefinitions'} # type: ignore + + def list_web_worker_metric_definitions( + self, + resource_group_name: str, + name: str, + worker_pool_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.ResourceMetricDefinitionCollection"]: + """Get metric definitions for a worker pool of an App Service Environment. + + Description for Get metric definitions for a worker pool of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param worker_pool_name: Name of the worker pool. + :type worker_pool_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ResourceMetricDefinitionCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceMetricDefinitionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceMetricDefinitionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_web_worker_metric_definitions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerPoolName': self._serialize.url("worker_pool_name", worker_pool_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ResourceMetricDefinitionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_web_worker_metric_definitions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}/metricdefinitions'} # type: ignore + + def list_worker_pool_skus( + self, + resource_group_name: str, + name: str, + worker_pool_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.SkuInfoCollection"]: + """Get available SKUs for scaling a worker pool. + + Description for Get available SKUs for scaling a worker pool. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param worker_pool_name: Name of the worker pool. + :type worker_pool_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SkuInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.SkuInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SkuInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_worker_pool_skus.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerPoolName': self._serialize.url("worker_pool_name", worker_pool_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SkuInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_worker_pool_skus.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}/skus'} # type: ignore + + def list_web_worker_usages( + self, + resource_group_name: str, + name: str, + worker_pool_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.UsageCollection"]: + """Get usage metrics for a worker pool of an App Service Environment. + + Description for Get usage metrics for a worker pool of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param worker_pool_name: Name of the worker pool. + :type worker_pool_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either UsageCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.UsageCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.UsageCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_web_worker_usages.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerPoolName': self._serialize.url("worker_pool_name", worker_pool_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('UsageCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_web_worker_usages.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}/usages'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_app_service_plans_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_app_service_plans_operations.py new file mode 100644 index 000000000000..173f8e0b8fa1 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_app_service_plans_operations.py @@ -0,0 +1,1997 @@ +# 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, List, 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 AppServicePlansOperations: + """AppServicePlansOperations 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.web.v2021_01_15.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, + detailed: Optional[bool] = None, + **kwargs: Any + ) -> AsyncIterable["_models.AppServicePlanCollection"]: + """Get all App Service plans for a subscription. + + Description for Get all App Service plans for a subscription. + + :param detailed: Specify :code:`true` to return all App Service plan properties. + The default is :code:`false`, which returns a subset of the properties. + Retrieval of all properties may increase the API latency. + :type detailed: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either AppServicePlanCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.AppServicePlanCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServicePlanCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if detailed is not None: + query_parameters['detailed'] = self._serialize.query("detailed", detailed, 'bool') + 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('AppServicePlanCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/serverfarms'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.AppServicePlanCollection"]: + """Get all App Service plans in a resource group. + + Description for Get all App Service plans in a resource group. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :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 AppServicePlanCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.AppServicePlanCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServicePlanCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('AppServicePlanCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms'} # type: ignore + + async def get( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.AppServicePlan": + """Get an App Service plan. + + Description for Get an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppServicePlan, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppServicePlan + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServicePlan"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AppServicePlan', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}'} # type: ignore + + async def _create_or_update_initial( + self, + resource_group_name: str, + name: str, + app_service_plan: "_models.AppServicePlan", + **kwargs: Any + ) -> "_models.AppServicePlan": + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServicePlan"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_service_plan, 'AppServicePlan') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('AppServicePlan', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('AppServicePlan', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}'} # type: ignore + + async def begin_create_or_update( + self, + resource_group_name: str, + name: str, + app_service_plan: "_models.AppServicePlan", + **kwargs: Any + ) -> AsyncLROPoller["_models.AppServicePlan"]: + """Creates or updates an App Service Plan. + + Description for Creates or updates an App Service Plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param app_service_plan: Details of the App Service plan. + :type app_service_plan: ~azure.mgmt.web.v2021_01_15.models.AppServicePlan + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 AppServicePlan or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.AppServicePlan] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServicePlan"] + 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_or_update_initial( + resource_group_name=resource_group_name, + name=name, + app_service_plan=app_service_plan, + 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('AppServicePlan', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}'} # type: ignore + + async def delete( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> None: + """Delete an App Service plan. + + Description for Delete an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}'} # type: ignore + + async def update( + self, + resource_group_name: str, + name: str, + app_service_plan: "_models.AppServicePlanPatchResource", + **kwargs: Any + ) -> "_models.AppServicePlan": + """Creates or updates an App Service Plan. + + Description for Creates or updates an App Service Plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param app_service_plan: Details of the App Service plan. + :type app_service_plan: ~azure.mgmt.web.v2021_01_15.models.AppServicePlanPatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppServicePlan, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppServicePlan + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServicePlan"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_service_plan, 'AppServicePlanPatchResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('AppServicePlan', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('AppServicePlan', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}'} # type: ignore + + async def list_capabilities( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> List["_models.Capability"]: + """List all capabilities of an App Service plan. + + Description for List all capabilities of an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of Capability, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.Capability] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.Capability"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_capabilities.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[Capability]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_capabilities.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/capabilities'} # type: ignore + + async def get_hybrid_connection( + self, + resource_group_name: str, + name: str, + namespace_name: str, + relay_name: str, + **kwargs: Any + ) -> "_models.HybridConnection": + """Retrieve a Hybrid Connection in use in an App Service plan. + + Description for Retrieve a Hybrid Connection in use in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param namespace_name: Name of the Service Bus namespace. + :type namespace_name: str + :param relay_name: Name of the Service Bus relay. + :type relay_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_hybrid_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_hybrid_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + async def delete_hybrid_connection( + self, + resource_group_name: str, + name: str, + namespace_name: str, + relay_name: str, + **kwargs: Any + ) -> None: + """Delete a Hybrid Connection in use in an App Service plan. + + Description for Delete a Hybrid Connection in use in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param namespace_name: Name of the Service Bus namespace. + :type namespace_name: str + :param relay_name: Name of the Service Bus relay. + :type relay_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_hybrid_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_hybrid_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + async def list_hybrid_connection_keys( + self, + resource_group_name: str, + name: str, + namespace_name: str, + relay_name: str, + **kwargs: Any + ) -> "_models.HybridConnectionKey": + """Get the send key name and value of a Hybrid Connection. + + Description for Get the send key name and value of a Hybrid Connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param namespace_name: The name of the Service Bus namespace. + :type namespace_name: str + :param relay_name: The name of the Service Bus relay. + :type relay_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnectionKey, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnectionKey + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnectionKey"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_hybrid_connection_keys.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnectionKey', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_hybrid_connection_keys.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}/listKeys'} # type: ignore + + def list_web_apps_by_hybrid_connection( + self, + resource_group_name: str, + name: str, + namespace_name: str, + relay_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.ResourceCollection"]: + """Get all apps that use a Hybrid Connection in an App Service Plan. + + Description for Get all apps that use a Hybrid Connection in an App Service Plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param namespace_name: Name of the Hybrid Connection namespace. + :type namespace_name: str + :param relay_name: Name of the Hybrid Connection relay. + :type relay_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ResourceCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_web_apps_by_hybrid_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ResourceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_web_apps_by_hybrid_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}/sites'} # type: ignore + + async def get_hybrid_connection_plan_limit( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.HybridConnectionLimits": + """Get the maximum number of Hybrid Connections allowed in an App Service plan. + + Description for Get the maximum number of Hybrid Connections allowed in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnectionLimits, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnectionLimits + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnectionLimits"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_hybrid_connection_plan_limit.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnectionLimits', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_hybrid_connection_plan_limit.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/hybridConnectionPlanLimits/limit'} # type: ignore + + def list_hybrid_connections( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.HybridConnectionCollection"]: + """Retrieve all Hybrid Connections in use in an App Service plan. + + Description for Retrieve all Hybrid Connections in use in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either HybridConnectionCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.HybridConnectionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnectionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_hybrid_connections.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('HybridConnectionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_hybrid_connections.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/hybridConnectionRelays'} # type: ignore + + async def restart_web_apps( + self, + resource_group_name: str, + name: str, + soft_restart: Optional[bool] = None, + **kwargs: Any + ) -> None: + """Restart all apps in an App Service plan. + + Description for Restart all apps in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param soft_restart: Specify :code:`true` to perform a soft restart, applies the + configuration settings and restarts the apps if necessary. The default is + :code:`false`, which always restarts and reprovisions the apps. + :type soft_restart: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.restart_web_apps.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if soft_restart is not None: + query_parameters['softRestart'] = self._serialize.query("soft_restart", soft_restart, 'bool') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + restart_web_apps.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/restartSites'} # type: ignore + + def list_web_apps( + self, + resource_group_name: str, + name: str, + skip_token: Optional[str] = None, + filter: Optional[str] = None, + top: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.WebAppCollection"]: + """Get all apps associated with an App Service plan. + + Description for Get all apps associated with an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param skip_token: Skip to a web app in the list of webapps associated with app service plan. + If specified, the resulting list will contain web apps starting from (including) the skipToken. + Otherwise, the resulting list contains web apps from the start of the list. + :type skip_token: str + :param filter: Supported filter: $filter=state eq running. Returns only web apps that are + currently running. + :type filter: str + :param top: List page size. If specified, results are paged. + :type top: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_web_apps.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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 skip_token is not None: + query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, 'str') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + if top is not None: + query_parameters['$top'] = self._serialize.query("top", top, '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('WebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_web_apps.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/sites'} # type: ignore + + async def get_server_farm_skus( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> Any: + """Gets all selectable SKUs for a given App Service Plan. + + Description for Gets all selectable SKUs for a given App Service Plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of App Service Plan. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: any, or the result of cls(response) + :rtype: any + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Any] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_server_farm_skus.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_server_farm_skus.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/skus'} # type: ignore + + def list_usages( + self, + resource_group_name: str, + name: str, + filter: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.CsmUsageQuotaCollection"]: + """Gets server farm usage information. + + Description for Gets server farm usage information. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of App Service Plan. + :type name: str + :param filter: Return only usages/metrics specified in the filter. Filter conforms to odata + syntax. Example: $filter=(name.value eq 'Metric1' or name.value eq 'Metric2'). + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either CsmUsageQuotaCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.CsmUsageQuotaCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmUsageQuotaCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_usages.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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 filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('CsmUsageQuotaCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_usages.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/usages'} # type: ignore + + async def list_vnets( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> List["_models.VnetInfo"]: + """Get all Virtual Networks associated with an App Service plan. + + Description for Get all Virtual Networks associated with an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of VnetInfo, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.VnetInfo] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.VnetInfo"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_vnets.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[VnetInfo]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_vnets.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections'} # type: ignore + + async def get_vnet_from_server_farm( + self, + resource_group_name: str, + name: str, + vnet_name: str, + **kwargs: Any + ) -> "_models.VnetInfo": + """Get a Virtual Network associated with an App Service plan. + + Description for Get a Virtual Network associated with an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_vnet_from_server_farm.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_vnet_from_server_farm.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections/{vnetName}'} # type: ignore + + async def get_vnet_gateway( + self, + resource_group_name: str, + name: str, + vnet_name: str, + gateway_name: str, + **kwargs: Any + ) -> "_models.VnetGateway": + """Get a Virtual Network gateway. + + Description for Get a Virtual Network gateway. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param gateway_name: Name of the gateway. Only the 'primary' gateway is supported. + :type gateway_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetGateway, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetGateway"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_vnet_gateway.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'gatewayName': self._serialize.url("gateway_name", gateway_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetGateway', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_vnet_gateway.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections/{vnetName}/gateways/{gatewayName}'} # type: ignore + + async def update_vnet_gateway( + self, + resource_group_name: str, + name: str, + vnet_name: str, + gateway_name: str, + connection_envelope: "_models.VnetGateway", + **kwargs: Any + ) -> "_models.VnetGateway": + """Update a Virtual Network gateway. + + Description for Update a Virtual Network gateway. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param gateway_name: Name of the gateway. Only the 'primary' gateway is supported. + :type gateway_name: str + :param connection_envelope: Definition of the gateway. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetGateway, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetGateway"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_vnet_gateway.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'gatewayName': self._serialize.url("gateway_name", gateway_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetGateway') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetGateway', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_vnet_gateway.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections/{vnetName}/gateways/{gatewayName}'} # type: ignore + + async def list_routes_for_vnet( + self, + resource_group_name: str, + name: str, + vnet_name: str, + **kwargs: Any + ) -> List["_models.VnetRoute"]: + """Get all routes that are associated with a Virtual Network in an App Service plan. + + Description for Get all routes that are associated with a Virtual Network in an App Service + plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of VnetRoute, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.VnetRoute] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.VnetRoute"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_routes_for_vnet.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[VnetRoute]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_routes_for_vnet.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections/{vnetName}/routes'} # type: ignore + + async def get_route_for_vnet( + self, + resource_group_name: str, + name: str, + vnet_name: str, + route_name: str, + **kwargs: Any + ) -> List["_models.VnetRoute"]: + """Get a Virtual Network route in an App Service plan. + + Description for Get a Virtual Network route in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param route_name: Name of the Virtual Network route. + :type route_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of VnetRoute, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.VnetRoute] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.VnetRoute"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_route_for_vnet.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'routeName': self._serialize.url("route_name", route_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[VnetRoute]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_route_for_vnet.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections/{vnetName}/routes/{routeName}'} # type: ignore + + async def create_or_update_vnet_route( + self, + resource_group_name: str, + name: str, + vnet_name: str, + route_name: str, + route: "_models.VnetRoute", + **kwargs: Any + ) -> "_models.VnetRoute": + """Create or update a Virtual Network route in an App Service plan. + + Description for Create or update a Virtual Network route in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param route_name: Name of the Virtual Network route. + :type route_name: str + :param route: Definition of the Virtual Network route. + :type route: ~azure.mgmt.web.v2021_01_15.models.VnetRoute + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetRoute, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetRoute + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetRoute"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_vnet_route.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'routeName': self._serialize.url("route_name", route_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(route, 'VnetRoute') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetRoute', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_vnet_route.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections/{vnetName}/routes/{routeName}'} # type: ignore + + async def delete_vnet_route( + self, + resource_group_name: str, + name: str, + vnet_name: str, + route_name: str, + **kwargs: Any + ) -> None: + """Delete a Virtual Network route in an App Service plan. + + Description for Delete a Virtual Network route in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param route_name: Name of the Virtual Network route. + :type route_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_vnet_route.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'routeName': self._serialize.url("route_name", route_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_vnet_route.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections/{vnetName}/routes/{routeName}'} # type: ignore + + async def update_vnet_route( + self, + resource_group_name: str, + name: str, + vnet_name: str, + route_name: str, + route: "_models.VnetRoute", + **kwargs: Any + ) -> "_models.VnetRoute": + """Create or update a Virtual Network route in an App Service plan. + + Description for Create or update a Virtual Network route in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param route_name: Name of the Virtual Network route. + :type route_name: str + :param route: Definition of the Virtual Network route. + :type route: ~azure.mgmt.web.v2021_01_15.models.VnetRoute + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetRoute, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetRoute + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetRoute"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_vnet_route.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'routeName': self._serialize.url("route_name", route_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(route, 'VnetRoute') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetRoute', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_vnet_route.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections/{vnetName}/routes/{routeName}'} # type: ignore + + async def reboot_worker( + self, + resource_group_name: str, + name: str, + worker_name: str, + **kwargs: Any + ) -> None: + """Reboot a worker machine in an App Service plan. + + Description for Reboot a worker machine in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param worker_name: Name of worker machine, which typically starts with RD. + :type worker_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.reboot_worker.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerName': self._serialize.url("worker_name", worker_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reboot_worker.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/workers/{workerName}/reboot'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_certificate_orders_diagnostics_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_certificate_orders_diagnostics_operations.py new file mode 100644 index 000000000000..234876d35fb2 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_certificate_orders_diagnostics_operations.py @@ -0,0 +1,201 @@ +# 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. +# -------------------------------------------------------------------------- +import datetime +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 CertificateOrdersDiagnosticsOperations: + """CertificateOrdersDiagnosticsOperations 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.web.v2021_01_15.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_app_service_certificate_order_detector_response( + self, + resource_group_name: str, + certificate_order_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.DetectorResponseCollection"]: + """Microsoft.CertificateRegistration to get the list of detectors for this RP. + + Description for Microsoft.CertificateRegistration to get the list of detectors for this RP. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: The certificate order name for which the response is needed. + :type certificate_order_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DetectorResponseCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.DetectorResponseCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorResponseCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_app_service_certificate_order_detector_response.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DetectorResponseCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_app_service_certificate_order_detector_response.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/detectors'} # type: ignore + + async def get_app_service_certificate_order_detector_response( + self, + resource_group_name: str, + certificate_order_name: str, + detector_name: str, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + time_grain: Optional[str] = None, + **kwargs: Any + ) -> "_models.DetectorResponse": + """Microsoft.CertificateRegistration call to get a detector response from App Lens. + + Description for Microsoft.CertificateRegistration call to get a detector response from App + Lens. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: The certificate order name for which the response is needed. + :type certificate_order_name: str + :param detector_name: The detector name which needs to be run. + :type detector_name: str + :param start_time: The start time for detector response. + :type start_time: ~datetime.datetime + :param end_time: The end time for the detector response. + :type end_time: ~datetime.datetime + :param time_grain: The time grain for the detector response. + :type time_grain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DetectorResponse, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DetectorResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_app_service_certificate_order_detector_response.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'detectorName': self._serialize.url("detector_name", detector_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'iso-8601') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'iso-8601') + if time_grain is not None: + query_parameters['timeGrain'] = self._serialize.query("time_grain", time_grain, 'str', pattern=r'PT[1-9][0-9]+[SMH]') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DetectorResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_app_service_certificate_order_detector_response.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/detectors/{detectorName}'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_certificate_registration_provider_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_certificate_registration_provider_operations.py new file mode 100644 index 000000000000..23268afca663 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_certificate_registration_provider_operations.py @@ -0,0 +1,108 @@ +# 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 CertificateRegistrationProviderOperations: + """CertificateRegistrationProviderOperations 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.web.v2021_01_15.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_operations( + self, + **kwargs: Any + ) -> AsyncIterable["_models.CsmOperationCollection"]: + """Implements Csm operations Api to exposes the list of available Csm Apis under the resource provider. + + Description for Implements Csm operations Api to exposes the list of available Csm Apis under + the resource provider. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either CsmOperationCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.CsmOperationCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmOperationCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_operations.metadata['url'] # type: ignore + # 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('CsmOperationCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_operations.metadata = {'url': '/providers/Microsoft.CertificateRegistration/operations'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_certificates_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_certificates_operations.py new file mode 100644 index 000000000000..756e80c42467 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_certificates_operations.py @@ -0,0 +1,447 @@ +# 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 CertificatesOperations: + """CertificatesOperations 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.web.v2021_01_15.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, + filter: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.CertificateCollection"]: + """Get all certificates for a subscription. + + Description for Get all certificates for a subscription. + + :param filter: Return only information specified in the filter (using OData syntax). For + example: $filter=KeyVaultId eq 'KeyVaultId'. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either CertificateCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.CertificateCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CertificateCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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 filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('CertificateCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/certificates'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.CertificateCollection"]: + """Get all certificates in a resource group. + + Description for Get all certificates in a resource group. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :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 CertificateCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.CertificateCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CertificateCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('CertificateCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/certificates'} # type: ignore + + async def get( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.Certificate": + """Get a certificate. + + Description for Get a certificate. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the certificate. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Certificate, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Certificate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Certificate"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Certificate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/certificates/{name}'} # type: ignore + + async def create_or_update( + self, + resource_group_name: str, + name: str, + certificate_envelope: "_models.Certificate", + **kwargs: Any + ) -> "_models.Certificate": + """Create or update a certificate. + + Description for Create or update a certificate. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the certificate. + :type name: str + :param certificate_envelope: Details of certificate, if it exists already. + :type certificate_envelope: ~azure.mgmt.web.v2021_01_15.models.Certificate + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Certificate, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Certificate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Certificate"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(certificate_envelope, 'Certificate') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Certificate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/certificates/{name}'} # type: ignore + + async def delete( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> None: + """Delete a certificate. + + Description for Delete a certificate. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the certificate. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/certificates/{name}'} # type: ignore + + async def update( + self, + resource_group_name: str, + name: str, + certificate_envelope: "_models.CertificatePatchResource", + **kwargs: Any + ) -> "_models.Certificate": + """Create or update a certificate. + + Description for Create or update a certificate. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the certificate. + :type name: str + :param certificate_envelope: Details of certificate, if it exists already. + :type certificate_envelope: ~azure.mgmt.web.v2021_01_15.models.CertificatePatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Certificate, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Certificate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Certificate"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(certificate_envelope, 'CertificatePatchResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Certificate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/certificates/{name}'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_deleted_web_apps_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_deleted_web_apps_operations.py new file mode 100644 index 000000000000..55e5948cce83 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_deleted_web_apps_operations.py @@ -0,0 +1,245 @@ +# 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 DeletedWebAppsOperations: + """DeletedWebAppsOperations 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.web.v2021_01_15.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, + **kwargs: Any + ) -> AsyncIterable["_models.DeletedWebAppCollection"]: + """Get all deleted apps for a subscription. + + Description for Get all deleted apps for a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DeletedWebAppCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.DeletedWebAppCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DeletedWebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('DeletedWebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/deletedSites'} # type: ignore + + def list_by_location( + self, + location: str, + **kwargs: Any + ) -> AsyncIterable["_models.DeletedWebAppCollection"]: + """Get all deleted apps for a subscription at location. + + Description for Get all deleted apps for a subscription at location. + + :param location: + :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 DeletedWebAppCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.DeletedWebAppCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DeletedWebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'location': self._serialize.url("location", location, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DeletedWebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_location.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/locations/{location}/deletedSites'} # type: ignore + + async def get_deleted_web_app_by_location( + self, + location: str, + deleted_site_id: str, + **kwargs: Any + ) -> "_models.DeletedSite": + """Get deleted app for a subscription at location. + + Description for Get deleted app for a subscription at location. + + :param location: + :type location: str + :param deleted_site_id: The numeric ID of the deleted app, e.g. 12345. + :type deleted_site_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DeletedSite, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DeletedSite + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DeletedSite"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_deleted_web_app_by_location.metadata['url'] # type: ignore + path_format_arguments = { + 'location': self._serialize.url("location", location, 'str'), + 'deletedSiteId': self._serialize.url("deleted_site_id", deleted_site_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DeletedSite', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_deleted_web_app_by_location.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/locations/{location}/deletedSites/{deletedSiteId}'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_diagnostics_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_diagnostics_operations.py new file mode 100644 index 000000000000..085b222ddfb8 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_diagnostics_operations.py @@ -0,0 +1,1774 @@ +# 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. +# -------------------------------------------------------------------------- +import datetime +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 DiagnosticsOperations: + """DiagnosticsOperations 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.web.v2021_01_15.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_hosting_environment_detector_responses( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.DetectorResponseCollection"]: + """List Hosting Environment Detector Responses. + + Description for List Hosting Environment Detector Responses. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site Name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DetectorResponseCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.DetectorResponseCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorResponseCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_hosting_environment_detector_responses.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DetectorResponseCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_hosting_environment_detector_responses.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/detectors'} # type: ignore + + async def get_hosting_environment_detector_response( + self, + resource_group_name: str, + name: str, + detector_name: str, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + time_grain: Optional[str] = None, + **kwargs: Any + ) -> "_models.DetectorResponse": + """Get Hosting Environment Detector Response. + + Description for Get Hosting Environment Detector Response. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: App Service Environment Name. + :type name: str + :param detector_name: Detector Resource Name. + :type detector_name: str + :param start_time: Start Time. + :type start_time: ~datetime.datetime + :param end_time: End Time. + :type end_time: ~datetime.datetime + :param time_grain: Time Grain. + :type time_grain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DetectorResponse, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DetectorResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_hosting_environment_detector_response.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'detectorName': self._serialize.url("detector_name", detector_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'iso-8601') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'iso-8601') + if time_grain is not None: + query_parameters['timeGrain'] = self._serialize.query("time_grain", time_grain, 'str', pattern=r'PT[1-9][0-9]+[SMH]') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DetectorResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_hosting_environment_detector_response.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/detectors/{detectorName}'} # type: ignore + + def list_site_detector_responses( + self, + resource_group_name: str, + site_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.DetectorResponseCollection"]: + """List Site Detector Responses. + + Description for List Site Detector Responses. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DetectorResponseCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.DetectorResponseCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorResponseCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_detector_responses.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DetectorResponseCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_site_detector_responses.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/detectors'} # type: ignore + + async def get_site_detector_response( + self, + resource_group_name: str, + site_name: str, + detector_name: str, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + time_grain: Optional[str] = None, + **kwargs: Any + ) -> "_models.DetectorResponse": + """Get site detector response. + + Description for Get site detector response. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param detector_name: Detector Resource Name. + :type detector_name: str + :param start_time: Start Time. + :type start_time: ~datetime.datetime + :param end_time: End Time. + :type end_time: ~datetime.datetime + :param time_grain: Time Grain. + :type time_grain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DetectorResponse, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DetectorResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_detector_response.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'detectorName': self._serialize.url("detector_name", detector_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'iso-8601') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'iso-8601') + if time_grain is not None: + query_parameters['timeGrain'] = self._serialize.query("time_grain", time_grain, 'str', pattern=r'PT[1-9][0-9]+[SMH]') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DetectorResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_detector_response.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/detectors/{detectorName}'} # type: ignore + + def list_site_diagnostic_categories( + self, + resource_group_name: str, + site_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.DiagnosticCategoryCollection"]: + """Get Diagnostics Categories. + + Description for Get Diagnostics Categories. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DiagnosticCategoryCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.DiagnosticCategoryCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticCategoryCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_diagnostic_categories.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DiagnosticCategoryCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_site_diagnostic_categories.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/diagnostics'} # type: ignore + + async def get_site_diagnostic_category( + self, + resource_group_name: str, + site_name: str, + diagnostic_category: str, + **kwargs: Any + ) -> "_models.DiagnosticCategory": + """Get Diagnostics Category. + + Description for Get Diagnostics Category. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DiagnosticCategory, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DiagnosticCategory + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticCategory"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_diagnostic_category.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DiagnosticCategory', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_diagnostic_category.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/diagnostics/{diagnosticCategory}'} # type: ignore + + def list_site_analyses( + self, + resource_group_name: str, + site_name: str, + diagnostic_category: str, + **kwargs: Any + ) -> AsyncIterable["_models.DiagnosticAnalysisCollection"]: + """Get Site Analyses. + + Description for Get Site Analyses. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DiagnosticAnalysisCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.DiagnosticAnalysisCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticAnalysisCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_analyses.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DiagnosticAnalysisCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_site_analyses.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/diagnostics/{diagnosticCategory}/analyses'} # type: ignore + + async def get_site_analysis( + self, + resource_group_name: str, + site_name: str, + diagnostic_category: str, + analysis_name: str, + **kwargs: Any + ) -> "_models.AnalysisDefinition": + """Get Site Analysis. + + Description for Get Site Analysis. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :param analysis_name: Analysis Name. + :type analysis_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AnalysisDefinition, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AnalysisDefinition + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AnalysisDefinition"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_analysis.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'analysisName': self._serialize.url("analysis_name", analysis_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AnalysisDefinition', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_analysis.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/diagnostics/{diagnosticCategory}/analyses/{analysisName}'} # type: ignore + + async def execute_site_analysis( + self, + resource_group_name: str, + site_name: str, + diagnostic_category: str, + analysis_name: str, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + time_grain: Optional[str] = None, + **kwargs: Any + ) -> "_models.DiagnosticAnalysis": + """Execute Analysis. + + Description for Execute Analysis. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Category Name. + :type diagnostic_category: str + :param analysis_name: Analysis Resource Name. + :type analysis_name: str + :param start_time: Start Time. + :type start_time: ~datetime.datetime + :param end_time: End Time. + :type end_time: ~datetime.datetime + :param time_grain: Time Grain. + :type time_grain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DiagnosticAnalysis, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DiagnosticAnalysis + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticAnalysis"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.execute_site_analysis.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'analysisName': self._serialize.url("analysis_name", analysis_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'iso-8601') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'iso-8601') + if time_grain is not None: + query_parameters['timeGrain'] = self._serialize.query("time_grain", time_grain, 'str', pattern=r'PT[1-9][0-9]+[SMH]') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DiagnosticAnalysis', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + execute_site_analysis.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/diagnostics/{diagnosticCategory}/analyses/{analysisName}/execute'} # type: ignore + + def list_site_detectors( + self, + resource_group_name: str, + site_name: str, + diagnostic_category: str, + **kwargs: Any + ) -> AsyncIterable["_models.DiagnosticDetectorCollection"]: + """Get Detectors. + + Description for Get Detectors. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DiagnosticDetectorCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.DiagnosticDetectorCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticDetectorCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_detectors.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DiagnosticDetectorCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_site_detectors.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/diagnostics/{diagnosticCategory}/detectors'} # type: ignore + + async def get_site_detector( + self, + resource_group_name: str, + site_name: str, + diagnostic_category: str, + detector_name: str, + **kwargs: Any + ) -> "_models.DetectorDefinition": + """Get Detector. + + Description for Get Detector. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :param detector_name: Detector Name. + :type detector_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DetectorDefinition, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DetectorDefinition + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorDefinition"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_detector.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'detectorName': self._serialize.url("detector_name", detector_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DetectorDefinition', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_detector.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/diagnostics/{diagnosticCategory}/detectors/{detectorName}'} # type: ignore + + async def execute_site_detector( + self, + resource_group_name: str, + site_name: str, + detector_name: str, + diagnostic_category: str, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + time_grain: Optional[str] = None, + **kwargs: Any + ) -> "_models.DiagnosticDetectorResponse": + """Execute Detector. + + Description for Execute Detector. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param detector_name: Detector Resource Name. + :type detector_name: str + :param diagnostic_category: Category Name. + :type diagnostic_category: str + :param start_time: Start Time. + :type start_time: ~datetime.datetime + :param end_time: End Time. + :type end_time: ~datetime.datetime + :param time_grain: Time Grain. + :type time_grain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DiagnosticDetectorResponse, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DiagnosticDetectorResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticDetectorResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.execute_site_detector.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'detectorName': self._serialize.url("detector_name", detector_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'iso-8601') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'iso-8601') + if time_grain is not None: + query_parameters['timeGrain'] = self._serialize.query("time_grain", time_grain, 'str', pattern=r'PT[1-9][0-9]+[SMH]') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DiagnosticDetectorResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + execute_site_detector.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/diagnostics/{diagnosticCategory}/detectors/{detectorName}/execute'} # type: ignore + + def list_site_detector_responses_slot( + self, + resource_group_name: str, + site_name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.DetectorResponseCollection"]: + """List Site Detector Responses. + + Description for List Site Detector Responses. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param slot: Slot Name. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DetectorResponseCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.DetectorResponseCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorResponseCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_detector_responses_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DetectorResponseCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_site_detector_responses_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/detectors'} # type: ignore + + async def get_site_detector_response_slot( + self, + resource_group_name: str, + site_name: str, + detector_name: str, + slot: str, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + time_grain: Optional[str] = None, + **kwargs: Any + ) -> "_models.DetectorResponse": + """Get site detector response. + + Description for Get site detector response. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param detector_name: Detector Resource Name. + :type detector_name: str + :param slot: Slot Name. + :type slot: str + :param start_time: Start Time. + :type start_time: ~datetime.datetime + :param end_time: End Time. + :type end_time: ~datetime.datetime + :param time_grain: Time Grain. + :type time_grain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DetectorResponse, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DetectorResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_detector_response_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'detectorName': self._serialize.url("detector_name", detector_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'iso-8601') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'iso-8601') + if time_grain is not None: + query_parameters['timeGrain'] = self._serialize.query("time_grain", time_grain, 'str', pattern=r'PT[1-9][0-9]+[SMH]') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DetectorResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_detector_response_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/detectors/{detectorName}'} # type: ignore + + def list_site_diagnostic_categories_slot( + self, + resource_group_name: str, + site_name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.DiagnosticCategoryCollection"]: + """Get Diagnostics Categories. + + Description for Get Diagnostics Categories. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param slot: Slot Name. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DiagnosticCategoryCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.DiagnosticCategoryCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticCategoryCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_diagnostic_categories_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DiagnosticCategoryCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_site_diagnostic_categories_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/diagnostics'} # type: ignore + + async def get_site_diagnostic_category_slot( + self, + resource_group_name: str, + site_name: str, + diagnostic_category: str, + slot: str, + **kwargs: Any + ) -> "_models.DiagnosticCategory": + """Get Diagnostics Category. + + Description for Get Diagnostics Category. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :param slot: Slot Name. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DiagnosticCategory, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DiagnosticCategory + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticCategory"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_diagnostic_category_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DiagnosticCategory', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_diagnostic_category_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/diagnostics/{diagnosticCategory}'} # type: ignore + + def list_site_analyses_slot( + self, + resource_group_name: str, + site_name: str, + diagnostic_category: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.DiagnosticAnalysisCollection"]: + """Get Site Analyses. + + Description for Get Site Analyses. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :param slot: Slot Name. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DiagnosticAnalysisCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.DiagnosticAnalysisCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticAnalysisCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_analyses_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DiagnosticAnalysisCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_site_analyses_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/diagnostics/{diagnosticCategory}/analyses'} # type: ignore + + async def get_site_analysis_slot( + self, + resource_group_name: str, + site_name: str, + diagnostic_category: str, + analysis_name: str, + slot: str, + **kwargs: Any + ) -> "_models.AnalysisDefinition": + """Get Site Analysis. + + Description for Get Site Analysis. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :param analysis_name: Analysis Name. + :type analysis_name: str + :param slot: Slot - optional. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AnalysisDefinition, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AnalysisDefinition + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AnalysisDefinition"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_analysis_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'analysisName': self._serialize.url("analysis_name", analysis_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AnalysisDefinition', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_analysis_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/diagnostics/{diagnosticCategory}/analyses/{analysisName}'} # type: ignore + + async def execute_site_analysis_slot( + self, + resource_group_name: str, + site_name: str, + diagnostic_category: str, + analysis_name: str, + slot: str, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + time_grain: Optional[str] = None, + **kwargs: Any + ) -> "_models.DiagnosticAnalysis": + """Execute Analysis. + + Description for Execute Analysis. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Category Name. + :type diagnostic_category: str + :param analysis_name: Analysis Resource Name. + :type analysis_name: str + :param slot: Slot Name. + :type slot: str + :param start_time: Start Time. + :type start_time: ~datetime.datetime + :param end_time: End Time. + :type end_time: ~datetime.datetime + :param time_grain: Time Grain. + :type time_grain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DiagnosticAnalysis, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DiagnosticAnalysis + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticAnalysis"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.execute_site_analysis_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'analysisName': self._serialize.url("analysis_name", analysis_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'iso-8601') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'iso-8601') + if time_grain is not None: + query_parameters['timeGrain'] = self._serialize.query("time_grain", time_grain, 'str', pattern=r'PT[1-9][0-9]+[SMH]') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DiagnosticAnalysis', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + execute_site_analysis_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/diagnostics/{diagnosticCategory}/analyses/{analysisName}/execute'} # type: ignore + + def list_site_detectors_slot( + self, + resource_group_name: str, + site_name: str, + diagnostic_category: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.DiagnosticDetectorCollection"]: + """Get Detectors. + + Description for Get Detectors. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :param slot: Slot Name. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DiagnosticDetectorCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.DiagnosticDetectorCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticDetectorCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_detectors_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DiagnosticDetectorCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_site_detectors_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/diagnostics/{diagnosticCategory}/detectors'} # type: ignore + + async def get_site_detector_slot( + self, + resource_group_name: str, + site_name: str, + diagnostic_category: str, + detector_name: str, + slot: str, + **kwargs: Any + ) -> "_models.DetectorDefinition": + """Get Detector. + + Description for Get Detector. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :param detector_name: Detector Name. + :type detector_name: str + :param slot: Slot Name. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DetectorDefinition, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DetectorDefinition + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorDefinition"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_detector_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'detectorName': self._serialize.url("detector_name", detector_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DetectorDefinition', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_detector_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/diagnostics/{diagnosticCategory}/detectors/{detectorName}'} # type: ignore + + async def execute_site_detector_slot( + self, + resource_group_name: str, + site_name: str, + detector_name: str, + diagnostic_category: str, + slot: str, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + time_grain: Optional[str] = None, + **kwargs: Any + ) -> "_models.DiagnosticDetectorResponse": + """Execute Detector. + + Description for Execute Detector. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param detector_name: Detector Resource Name. + :type detector_name: str + :param diagnostic_category: Category Name. + :type diagnostic_category: str + :param slot: Slot Name. + :type slot: str + :param start_time: Start Time. + :type start_time: ~datetime.datetime + :param end_time: End Time. + :type end_time: ~datetime.datetime + :param time_grain: Time Grain. + :type time_grain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DiagnosticDetectorResponse, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DiagnosticDetectorResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticDetectorResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.execute_site_detector_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'detectorName': self._serialize.url("detector_name", detector_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'iso-8601') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'iso-8601') + if time_grain is not None: + query_parameters['timeGrain'] = self._serialize.query("time_grain", time_grain, 'str', pattern=r'PT[1-9][0-9]+[SMH]') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DiagnosticDetectorResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + execute_site_detector_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/diagnostics/{diagnosticCategory}/detectors/{detectorName}/execute'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_domain_registration_provider_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_domain_registration_provider_operations.py new file mode 100644 index 000000000000..f5806d0e5039 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_domain_registration_provider_operations.py @@ -0,0 +1,108 @@ +# 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 DomainRegistrationProviderOperations: + """DomainRegistrationProviderOperations 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.web.v2021_01_15.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_operations( + self, + **kwargs: Any + ) -> AsyncIterable["_models.CsmOperationCollection"]: + """Implements Csm operations Api to exposes the list of available Csm Apis under the resource provider. + + Description for Implements Csm operations Api to exposes the list of available Csm Apis under + the resource provider. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either CsmOperationCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.CsmOperationCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmOperationCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_operations.metadata['url'] # type: ignore + # 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('CsmOperationCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_operations.metadata = {'url': '/providers/Microsoft.DomainRegistration/operations'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_domains_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_domains_operations.py new file mode 100644 index 000000000000..05b2aedcdffa --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_domains_operations.py @@ -0,0 +1,1119 @@ +# 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 DomainsOperations: + """DomainsOperations 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.web.v2021_01_15.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 + + async def check_availability( + self, + identifier: "_models.NameIdentifier", + **kwargs: Any + ) -> "_models.DomainAvailabilityCheckResult": + """Check if a domain is available for registration. + + Description for Check if a domain is available for registration. + + :param identifier: Name of the domain. + :type identifier: ~azure.mgmt.web.v2021_01_15.models.NameIdentifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DomainAvailabilityCheckResult, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DomainAvailabilityCheckResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DomainAvailabilityCheckResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.check_availability.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(identifier, 'NameIdentifier') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DomainAvailabilityCheckResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + check_availability.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/checkDomainAvailability'} # type: ignore + + def list( + self, + **kwargs: Any + ) -> AsyncIterable["_models.DomainCollection"]: + """Get all domains in a subscription. + + Description for Get all domains in a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DomainCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.DomainCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DomainCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('DomainCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/domains'} # type: ignore + + async def get_control_center_sso_request( + self, + **kwargs: Any + ) -> "_models.DomainControlCenterSsoRequest": + """Generate a single sign-on request for the domain management portal. + + Description for Generate a single sign-on request for the domain management portal. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DomainControlCenterSsoRequest, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DomainControlCenterSsoRequest + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DomainControlCenterSsoRequest"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_control_center_sso_request.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DomainControlCenterSsoRequest', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_control_center_sso_request.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/generateSsoRequest'} # type: ignore + + def list_recommendations( + self, + parameters: "_models.DomainRecommendationSearchParameters", + **kwargs: Any + ) -> AsyncIterable["_models.NameIdentifierCollection"]: + """Get domain name recommendations based on keywords. + + Description for Get domain name recommendations based on keywords. + + :param parameters: Search parameters for domain name recommendations. + :type parameters: ~azure.mgmt.web.v2021_01_15.models.DomainRecommendationSearchParameters + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either NameIdentifierCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.NameIdentifierCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.NameIdentifierCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = "application/json" + accept = "application/json" + + def prepare_request(next_link=None): + # 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') + + if not next_link: + # Construct URL + url = self.list_recommendations.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(parameters, 'DomainRecommendationSearchParameters') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(parameters, 'DomainRecommendationSearchParameters') + body_content_kwargs['content'] = body_content + request = self._client.get(url, query_parameters, header_parameters, **body_content_kwargs) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('NameIdentifierCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_recommendations.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/listDomainRecommendations'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.DomainCollection"]: + """Get all domains in a resource group. + + Description for Get all domains in a resource group. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :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 DomainCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.DomainCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DomainCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DomainCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains'} # type: ignore + + async def get( + self, + resource_group_name: str, + domain_name: str, + **kwargs: Any + ) -> "_models.Domain": + """Get a domain. + + Description for Get a domain. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of the domain. + :type domain_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Domain, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Domain + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Domain"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Domain', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}'} # type: ignore + + async def _create_or_update_initial( + self, + resource_group_name: str, + domain_name: str, + domain: "_models.Domain", + **kwargs: Any + ) -> "_models.Domain": + cls = kwargs.pop('cls', None) # type: ClsType["_models.Domain"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str', pattern=r'[a-zA-Z0-9][a-zA-Z0-9\.-]+'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(domain, 'Domain') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('Domain', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('Domain', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}'} # type: ignore + + async def begin_create_or_update( + self, + resource_group_name: str, + domain_name: str, + domain: "_models.Domain", + **kwargs: Any + ) -> AsyncLROPoller["_models.Domain"]: + """Creates or updates a domain. + + Description for Creates or updates a domain. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of the domain. + :type domain_name: str + :param domain: Domain registration information. + :type domain: ~azure.mgmt.web.v2021_01_15.models.Domain + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 Domain or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.Domain] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Domain"] + 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_or_update_initial( + resource_group_name=resource_group_name, + domain_name=domain_name, + domain=domain, + 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('Domain', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str', pattern=r'[a-zA-Z0-9][a-zA-Z0-9\.-]+'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}'} # type: ignore + + async def delete( + self, + resource_group_name: str, + domain_name: str, + force_hard_delete_domain: Optional[bool] = None, + **kwargs: Any + ) -> None: + """Delete a domain. + + Description for Delete a domain. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of the domain. + :type domain_name: str + :param force_hard_delete_domain: Specify :code:`true` to delete the domain + immediately. The default is :code:`false` which deletes the domain after 24 hours. + :type force_hard_delete_domain: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if force_hard_delete_domain is not None: + query_parameters['forceHardDeleteDomain'] = self._serialize.query("force_hard_delete_domain", force_hard_delete_domain, 'bool') + 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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}'} # type: ignore + + async def update( + self, + resource_group_name: str, + domain_name: str, + domain: "_models.DomainPatchResource", + **kwargs: Any + ) -> "_models.Domain": + """Creates or updates a domain. + + Description for Creates or updates a domain. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of the domain. + :type domain_name: str + :param domain: Domain registration information. + :type domain: ~azure.mgmt.web.v2021_01_15.models.DomainPatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Domain, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Domain + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Domain"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str', pattern=r'[a-zA-Z0-9][a-zA-Z0-9\.-]+'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(domain, 'DomainPatchResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('Domain', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('Domain', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}'} # type: ignore + + def list_ownership_identifiers( + self, + resource_group_name: str, + domain_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.DomainOwnershipIdentifierCollection"]: + """Lists domain ownership identifiers. + + Description for Lists domain ownership identifiers. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of domain. + :type domain_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DomainOwnershipIdentifierCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.DomainOwnershipIdentifierCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DomainOwnershipIdentifierCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_ownership_identifiers.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DomainOwnershipIdentifierCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_ownership_identifiers.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}/domainOwnershipIdentifiers'} # type: ignore + + async def get_ownership_identifier( + self, + resource_group_name: str, + domain_name: str, + name: str, + **kwargs: Any + ) -> "_models.DomainOwnershipIdentifier": + """Get ownership identifier for domain. + + Description for Get ownership identifier for domain. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of domain. + :type domain_name: str + :param name: Name of identifier. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DomainOwnershipIdentifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DomainOwnershipIdentifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DomainOwnershipIdentifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_ownership_identifier.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DomainOwnershipIdentifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_ownership_identifier.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}/domainOwnershipIdentifiers/{name}'} # type: ignore + + async def create_or_update_ownership_identifier( + self, + resource_group_name: str, + domain_name: str, + name: str, + domain_ownership_identifier: "_models.DomainOwnershipIdentifier", + **kwargs: Any + ) -> "_models.DomainOwnershipIdentifier": + """Creates an ownership identifier for a domain or updates identifier details for an existing identifier. + + Description for Creates an ownership identifier for a domain or updates identifier details for + an existing identifier. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of domain. + :type domain_name: str + :param name: Name of identifier. + :type name: str + :param domain_ownership_identifier: A JSON representation of the domain ownership properties. + :type domain_ownership_identifier: ~azure.mgmt.web.v2021_01_15.models.DomainOwnershipIdentifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DomainOwnershipIdentifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DomainOwnershipIdentifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DomainOwnershipIdentifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_ownership_identifier.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(domain_ownership_identifier, 'DomainOwnershipIdentifier') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DomainOwnershipIdentifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_ownership_identifier.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}/domainOwnershipIdentifiers/{name}'} # type: ignore + + async def delete_ownership_identifier( + self, + resource_group_name: str, + domain_name: str, + name: str, + **kwargs: Any + ) -> None: + """Delete ownership identifier for domain. + + Description for Delete ownership identifier for domain. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of domain. + :type domain_name: str + :param name: Name of identifier. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_ownership_identifier.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_ownership_identifier.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}/domainOwnershipIdentifiers/{name}'} # type: ignore + + async def update_ownership_identifier( + self, + resource_group_name: str, + domain_name: str, + name: str, + domain_ownership_identifier: "_models.DomainOwnershipIdentifier", + **kwargs: Any + ) -> "_models.DomainOwnershipIdentifier": + """Creates an ownership identifier for a domain or updates identifier details for an existing identifier. + + Description for Creates an ownership identifier for a domain or updates identifier details for + an existing identifier. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of domain. + :type domain_name: str + :param name: Name of identifier. + :type name: str + :param domain_ownership_identifier: A JSON representation of the domain ownership properties. + :type domain_ownership_identifier: ~azure.mgmt.web.v2021_01_15.models.DomainOwnershipIdentifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DomainOwnershipIdentifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DomainOwnershipIdentifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DomainOwnershipIdentifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_ownership_identifier.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(domain_ownership_identifier, 'DomainOwnershipIdentifier') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DomainOwnershipIdentifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_ownership_identifier.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}/domainOwnershipIdentifiers/{name}'} # type: ignore + + async def renew( + self, + resource_group_name: str, + domain_name: str, + **kwargs: Any + ) -> None: + """Renew a domain. + + Description for Renew a domain. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of the domain. + :type domain_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.renew.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + renew.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}/renew'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_global_model_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_global_model_operations.py new file mode 100644 index 000000000000..e1147f8afc09 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_global_model_operations.py @@ -0,0 +1,213 @@ +# 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, Callable, Dict, Generic, List, Optional, TypeVar +import warnings + +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 GlobalOperations: + """GlobalOperations 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.web.v2021_01_15.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 + + async def get_deleted_web_app( + self, + deleted_site_id: str, + **kwargs: Any + ) -> "_models.DeletedSite": + """Get deleted app for a subscription. + + Description for Get deleted app for a subscription. + + :param deleted_site_id: The numeric ID of the deleted app, e.g. 12345. + :type deleted_site_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DeletedSite, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DeletedSite + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DeletedSite"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_deleted_web_app.metadata['url'] # type: ignore + path_format_arguments = { + 'deletedSiteId': self._serialize.url("deleted_site_id", deleted_site_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DeletedSite', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_deleted_web_app.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/deletedSites/{deletedSiteId}'} # type: ignore + + async def get_deleted_web_app_snapshots( + self, + deleted_site_id: str, + **kwargs: Any + ) -> List["_models.Snapshot"]: + """Get all deleted apps for a subscription. + + Description for Get all deleted apps for a subscription. + + :param deleted_site_id: The numeric ID of the deleted app, e.g. 12345. + :type deleted_site_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of Snapshot, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.Snapshot] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.Snapshot"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_deleted_web_app_snapshots.metadata['url'] # type: ignore + path_format_arguments = { + 'deletedSiteId': self._serialize.url("deleted_site_id", deleted_site_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[Snapshot]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_deleted_web_app_snapshots.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/deletedSites/{deletedSiteId}/snapshots'} # type: ignore + + async def get_subscription_operation_with_async_response( + self, + location: str, + operation_id: str, + **kwargs: Any + ) -> None: + """Gets an operation in a subscription and given region. + + Description for Gets an operation in a subscription and given region. + + :param location: Location name. + :type location: str + :param operation_id: Operation Id. + :type operation_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.get_subscription_operation_with_async_response.metadata['url'] # type: ignore + path_format_arguments = { + 'location': self._serialize.url("location", location, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + get_subscription_operation_with_async_response.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/locations/{location}/operations/{operationId}'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_kube_environments_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_kube_environments_operations.py new file mode 100644 index 000000000000..97b3b14acb29 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_kube_environments_operations.py @@ -0,0 +1,562 @@ +# 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 KubeEnvironmentsOperations: + """KubeEnvironmentsOperations 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.web.v2021_01_15.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: Any + ) -> AsyncIterable["_models.KubeEnvironmentCollection"]: + """Get all Kubernetes Environments for a subscription. + + Description for Get all Kubernetes Environments for a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either KubeEnvironmentCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.KubeEnvironmentCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.KubeEnvironmentCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('KubeEnvironmentCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/kubeEnvironments'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.KubeEnvironmentCollection"]: + """Get all the Kubernetes Environments in a resource group. + + Description for Get all the Kubernetes Environments in a resource group. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :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 KubeEnvironmentCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.KubeEnvironmentCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.KubeEnvironmentCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('KubeEnvironmentCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments'} # type: ignore + + async def get( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.KubeEnvironment": + """Get the properties of a Kubernetes Environment. + + Description for Get the properties of a Kubernetes Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the Kubernetes Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: KubeEnvironment, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.KubeEnvironment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.KubeEnvironment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('KubeEnvironment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments/{name}'} # type: ignore + + async def _create_or_update_initial( + self, + resource_group_name: str, + name: str, + kube_environment_envelope: "_models.KubeEnvironment", + **kwargs: Any + ) -> "_models.KubeEnvironment": + cls = kwargs.pop('cls', None) # type: ClsType["_models.KubeEnvironment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(kube_environment_envelope, 'KubeEnvironment') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('KubeEnvironment', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('KubeEnvironment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments/{name}'} # type: ignore + + async def begin_create_or_update( + self, + resource_group_name: str, + name: str, + kube_environment_envelope: "_models.KubeEnvironment", + **kwargs: Any + ) -> AsyncLROPoller["_models.KubeEnvironment"]: + """Creates or updates a Kubernetes Environment. + + Description for Creates or updates a Kubernetes Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the Kubernetes Environment. + :type name: str + :param kube_environment_envelope: Configuration details of the Kubernetes Environment. + :type kube_environment_envelope: ~azure.mgmt.web.v2021_01_15.models.KubeEnvironment + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 KubeEnvironment or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.KubeEnvironment] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.KubeEnvironment"] + 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_or_update_initial( + resource_group_name=resource_group_name, + name=name, + kube_environment_envelope=kube_environment_envelope, + 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('KubeEnvironment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments/{name}'} # type: ignore + + async def _delete_initial( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> 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-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments/{name}'} # type: ignore + + async def begin_delete( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Delete a Kubernetes Environment. + + Description for Delete a Kubernetes Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the Kubernetes Environment. + :type 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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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, + name=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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments/{name}'} # type: ignore + + async def update( + self, + resource_group_name: str, + name: str, + kube_environment_envelope: "_models.KubeEnvironmentPatchResource", + **kwargs: Any + ) -> "_models.KubeEnvironment": + """Creates or updates a Kubernetes Environment. + + Description for Creates or updates a Kubernetes Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the Kubernetes Environment. + :type name: str + :param kube_environment_envelope: Configuration details of the Kubernetes Environment. + :type kube_environment_envelope: ~azure.mgmt.web.v2021_01_15.models.KubeEnvironmentPatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: KubeEnvironment, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.KubeEnvironment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.KubeEnvironment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(kube_environment_envelope, 'KubeEnvironmentPatchResource') + 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, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('KubeEnvironment', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('KubeEnvironment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments/{name}'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_provider_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_provider_operations.py new file mode 100644 index 000000000000..07cdb5f41078 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_provider_operations.py @@ -0,0 +1,546 @@ +# 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.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 ProviderOperations: + """ProviderOperations 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.web.v2021_01_15.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 get_available_stacks( + self, + os_type_selected: Optional[Union[str, "_models.Enum10"]] = None, + **kwargs: Any + ) -> AsyncIterable["_models.ApplicationStackCollection"]: + """Get available application frameworks and their versions. + + Description for Get available application frameworks and their versions. + + :param os_type_selected: + :type os_type_selected: str or ~azure.mgmt.web.v2021_01_15.models.Enum10 + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ApplicationStackCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ApplicationStackCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApplicationStackCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_available_stacks.metadata['url'] # type: ignore + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if os_type_selected is not None: + query_parameters['osTypeSelected'] = self._serialize.query("os_type_selected", os_type_selected, 'str') + 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('ApplicationStackCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_available_stacks.metadata = {'url': '/providers/Microsoft.Web/availableStacks'} # type: ignore + + def get_function_app_stacks( + self, + stack_os_type: Optional[Union[str, "_models.Enum11"]] = None, + **kwargs: Any + ) -> AsyncIterable["_models.FunctionAppStackCollection"]: + """Get available Function app frameworks and their versions. + + Description for Get available Function app frameworks and their versions. + + :param stack_os_type: Stack OS Type. + :type stack_os_type: str or ~azure.mgmt.web.v2021_01_15.models.Enum11 + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either FunctionAppStackCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.FunctionAppStackCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionAppStackCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_function_app_stacks.metadata['url'] # type: ignore + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if stack_os_type is not None: + query_parameters['stackOsType'] = self._serialize.query("stack_os_type", stack_os_type, 'str') + 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('FunctionAppStackCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_function_app_stacks.metadata = {'url': '/providers/Microsoft.Web/functionAppStacks'} # type: ignore + + def get_function_app_stacks_for_location( + self, + location: str, + stack_os_type: Optional[Union[str, "_models.Enum12"]] = None, + **kwargs: Any + ) -> AsyncIterable["_models.FunctionAppStackCollection"]: + """Get available Function app frameworks and their versions for location. + + Description for Get available Function app frameworks and their versions for location. + + :param location: Function App stack location. + :type location: str + :param stack_os_type: Stack OS Type. + :type stack_os_type: str or ~azure.mgmt.web.v2021_01_15.models.Enum12 + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either FunctionAppStackCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.FunctionAppStackCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionAppStackCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_function_app_stacks_for_location.metadata['url'] # type: ignore + path_format_arguments = { + 'location': self._serialize.url("location", location, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if stack_os_type is not None: + query_parameters['stackOsType'] = self._serialize.query("stack_os_type", stack_os_type, 'str') + 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('FunctionAppStackCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_function_app_stacks_for_location.metadata = {'url': '/providers/Microsoft.Web/locations/{location}/functionAppStacks'} # type: ignore + + def get_web_app_stacks_for_location( + self, + location: str, + stack_os_type: Optional[Union[str, "_models.Enum13"]] = None, + **kwargs: Any + ) -> AsyncIterable["_models.WebAppStackCollection"]: + """Get available Web app frameworks and their versions for location. + + Description for Get available Web app frameworks and their versions for location. + + :param location: Web App stack location. + :type location: str + :param stack_os_type: Stack OS Type. + :type stack_os_type: str or ~azure.mgmt.web.v2021_01_15.models.Enum13 + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppStackCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppStackCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppStackCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_web_app_stacks_for_location.metadata['url'] # type: ignore + path_format_arguments = { + 'location': self._serialize.url("location", location, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if stack_os_type is not None: + query_parameters['stackOsType'] = self._serialize.query("stack_os_type", stack_os_type, 'str') + 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('WebAppStackCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_web_app_stacks_for_location.metadata = {'url': '/providers/Microsoft.Web/locations/{location}/webAppStacks'} # type: ignore + + def list_operations( + self, + **kwargs: Any + ) -> AsyncIterable["_models.CsmOperationCollection"]: + """Gets all available operations for the Microsoft.Web resource provider. Also exposes resource metric definitions. + + Description for Gets all available operations for the Microsoft.Web resource provider. Also + exposes resource metric definitions. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either CsmOperationCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.CsmOperationCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmOperationCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_operations.metadata['url'] # type: ignore + # 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('CsmOperationCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_operations.metadata = {'url': '/providers/Microsoft.Web/operations'} # type: ignore + + def get_web_app_stacks( + self, + stack_os_type: Optional[Union[str, "_models.Enum14"]] = None, + **kwargs: Any + ) -> AsyncIterable["_models.WebAppStackCollection"]: + """Get available Web app frameworks and their versions. + + Description for Get available Web app frameworks and their versions. + + :param stack_os_type: Stack OS Type. + :type stack_os_type: str or ~azure.mgmt.web.v2021_01_15.models.Enum14 + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppStackCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppStackCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppStackCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_web_app_stacks.metadata['url'] # type: ignore + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if stack_os_type is not None: + query_parameters['stackOsType'] = self._serialize.query("stack_os_type", stack_os_type, 'str') + 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('WebAppStackCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_web_app_stacks.metadata = {'url': '/providers/Microsoft.Web/webAppStacks'} # type: ignore + + def get_available_stacks_on_prem( + self, + os_type_selected: Optional[Union[str, "_models.Enum15"]] = None, + **kwargs: Any + ) -> AsyncIterable["_models.ApplicationStackCollection"]: + """Get available application frameworks and their versions. + + Description for Get available application frameworks and their versions. + + :param os_type_selected: + :type os_type_selected: str or ~azure.mgmt.web.v2021_01_15.models.Enum15 + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ApplicationStackCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ApplicationStackCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApplicationStackCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_available_stacks_on_prem.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if os_type_selected is not None: + query_parameters['osTypeSelected'] = self._serialize.query("os_type_selected", os_type_selected, 'str') + 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('ApplicationStackCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_available_stacks_on_prem.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/availableStacks'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_recommendations_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_recommendations_operations.py new file mode 100644 index 000000000000..8de74110eab9 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_recommendations_operations.py @@ -0,0 +1,1109 @@ +# 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 RecommendationsOperations: + """RecommendationsOperations 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.web.v2021_01_15.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, + featured: Optional[bool] = None, + filter: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.RecommendationCollection"]: + """List all recommendations for a subscription. + + Description for List all recommendations for a subscription. + + :param featured: Specify :code:`true` to return only the most critical + recommendations. The default is :code:`false`, which returns all recommendations. + :type featured: bool + :param filter: Filter is specified by using OData syntax. Example: $filter=channel eq 'Api' or + channel eq 'Notification' and startTime eq 2014-01-01T00:00:00Z and endTime eq + 2014-12-31T23:59:59Z and timeGrain eq duration'[PT1H|PT1M|P1D]. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RecommendationCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.RecommendationCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if featured is not None: + query_parameters['featured'] = self._serialize.query("featured", featured, 'bool') + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('RecommendationCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/recommendations'} # type: ignore + + async def reset_all_filters( + self, + **kwargs: Any + ) -> None: + """Reset all recommendation opt-out settings for a subscription. + + Description for Reset all recommendation opt-out settings for a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.reset_all_filters.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reset_all_filters.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/recommendations/reset'} # type: ignore + + async def disable_recommendation_for_subscription( + self, + name: str, + **kwargs: Any + ) -> None: + """Disables the specified rule so it will not apply to a subscription in the future. + + Description for Disables the specified rule so it will not apply to a subscription in the + future. + + :param name: Rule name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.disable_recommendation_for_subscription.metadata['url'] # type: ignore + path_format_arguments = { + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + disable_recommendation_for_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/recommendations/{name}/disable'} # type: ignore + + def list_history_for_hosting_environment( + self, + resource_group_name: str, + hosting_environment_name: str, + expired_only: Optional[bool] = None, + filter: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.RecommendationCollection"]: + """Get past recommendations for an app, optionally specified by the time range. + + Description for Get past recommendations for an app, optionally specified by the time range. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param hosting_environment_name: Name of the hosting environment. + :type hosting_environment_name: str + :param expired_only: Specify :code:`false` to return all recommendations. The + default is :code:`true`, which returns only expired recommendations. + :type expired_only: bool + :param filter: Filter is specified by using OData syntax. Example: $filter=channel eq 'Api' or + channel eq 'Notification' and startTime eq 2014-01-01T00:00:00Z and endTime eq + 2014-12-31T23:59:59Z and timeGrain eq duration'[PT1H|PT1M|P1D]. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RecommendationCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.RecommendationCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_history_for_hosting_environment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'hostingEnvironmentName': self._serialize.url("hosting_environment_name", hosting_environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if expired_only is not None: + query_parameters['expiredOnly'] = self._serialize.query("expired_only", expired_only, 'bool') + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('RecommendationCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_history_for_hosting_environment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendationHistory'} # type: ignore + + def list_recommended_rules_for_hosting_environment( + self, + resource_group_name: str, + hosting_environment_name: str, + featured: Optional[bool] = None, + filter: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.RecommendationCollection"]: + """Get all recommendations for a hosting environment. + + Description for Get all recommendations for a hosting environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param hosting_environment_name: Name of the app. + :type hosting_environment_name: str + :param featured: Specify :code:`true` to return only the most critical + recommendations. The default is :code:`false`, which returns all recommendations. + :type featured: bool + :param filter: Return only channels specified in the filter. Filter is specified by using OData + syntax. Example: $filter=channel eq 'Api' or channel eq 'Notification'. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RecommendationCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.RecommendationCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_recommended_rules_for_hosting_environment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'hostingEnvironmentName': self._serialize.url("hosting_environment_name", hosting_environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if featured is not None: + query_parameters['featured'] = self._serialize.query("featured", featured, 'bool') + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('RecommendationCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_recommended_rules_for_hosting_environment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendations'} # type: ignore + + async def disable_all_for_hosting_environment( + self, + resource_group_name: str, + environment_name: str, + hosting_environment_name: str, + **kwargs: Any + ) -> None: + """Disable all recommendations for an app. + + Description for Disable all recommendations for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param environment_name: Name of the app. + :type environment_name: str + :param hosting_environment_name: + :type hosting_environment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.disable_all_for_hosting_environment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'hostingEnvironmentName': self._serialize.url("hosting_environment_name", hosting_environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['environmentName'] = self._serialize.query("environment_name", environment_name, 'str') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + disable_all_for_hosting_environment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendations/disable'} # type: ignore + + async def reset_all_filters_for_hosting_environment( + self, + resource_group_name: str, + environment_name: str, + hosting_environment_name: str, + **kwargs: Any + ) -> None: + """Reset all recommendation opt-out settings for an app. + + Description for Reset all recommendation opt-out settings for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param environment_name: Name of the app. + :type environment_name: str + :param hosting_environment_name: + :type hosting_environment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.reset_all_filters_for_hosting_environment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'hostingEnvironmentName': self._serialize.url("hosting_environment_name", hosting_environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['environmentName'] = self._serialize.query("environment_name", environment_name, 'str') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reset_all_filters_for_hosting_environment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendations/reset'} # type: ignore + + async def get_rule_details_by_hosting_environment( + self, + resource_group_name: str, + hosting_environment_name: str, + name: str, + update_seen: Optional[bool] = None, + recommendation_id: Optional[str] = None, + **kwargs: Any + ) -> "_models.RecommendationRule": + """Get a recommendation rule for an app. + + Description for Get a recommendation rule for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param hosting_environment_name: Name of the hosting environment. + :type hosting_environment_name: str + :param name: Name of the recommendation. + :type name: str + :param update_seen: Specify :code:`true` to update the last-seen timestamp of the + recommendation object. + :type update_seen: bool + :param recommendation_id: The GUID of the recommendation object if you query an expired one. + You don't need to specify it to query an active entry. + :type recommendation_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RecommendationRule, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RecommendationRule + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationRule"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_rule_details_by_hosting_environment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'hostingEnvironmentName': self._serialize.url("hosting_environment_name", hosting_environment_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if update_seen is not None: + query_parameters['updateSeen'] = self._serialize.query("update_seen", update_seen, 'bool') + if recommendation_id is not None: + query_parameters['recommendationId'] = self._serialize.query("recommendation_id", recommendation_id, 'str') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RecommendationRule', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_rule_details_by_hosting_environment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendations/{name}'} # type: ignore + + async def disable_recommendation_for_hosting_environment( + self, + resource_group_name: str, + environment_name: str, + name: str, + hosting_environment_name: str, + **kwargs: Any + ) -> None: + """Disables the specific rule for a web site permanently. + + Description for Disables the specific rule for a web site permanently. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param environment_name: Site name. + :type environment_name: str + :param name: Rule name. + :type name: str + :param hosting_environment_name: + :type hosting_environment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.disable_recommendation_for_hosting_environment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'hostingEnvironmentName': self._serialize.url("hosting_environment_name", hosting_environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['environmentName'] = self._serialize.query("environment_name", environment_name, 'str') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + disable_recommendation_for_hosting_environment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendations/{name}/disable'} # type: ignore + + def list_history_for_web_app( + self, + resource_group_name: str, + site_name: str, + expired_only: Optional[bool] = None, + filter: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.RecommendationCollection"]: + """Get past recommendations for an app, optionally specified by the time range. + + Description for Get past recommendations for an app, optionally specified by the time range. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Name of the app. + :type site_name: str + :param expired_only: Specify :code:`false` to return all recommendations. The + default is :code:`true`, which returns only expired recommendations. + :type expired_only: bool + :param filter: Filter is specified by using OData syntax. Example: $filter=channel eq 'Api' or + channel eq 'Notification' and startTime eq 2014-01-01T00:00:00Z and endTime eq + 2014-12-31T23:59:59Z and timeGrain eq duration'[PT1H|PT1M|P1D]. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RecommendationCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.RecommendationCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_history_for_web_app.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if expired_only is not None: + query_parameters['expiredOnly'] = self._serialize.query("expired_only", expired_only, 'bool') + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('RecommendationCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_history_for_web_app.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendationHistory'} # type: ignore + + def list_recommended_rules_for_web_app( + self, + resource_group_name: str, + site_name: str, + featured: Optional[bool] = None, + filter: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.RecommendationCollection"]: + """Get all recommendations for an app. + + Description for Get all recommendations for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Name of the app. + :type site_name: str + :param featured: Specify :code:`true` to return only the most critical + recommendations. The default is :code:`false`, which returns all recommendations. + :type featured: bool + :param filter: Return only channels specified in the filter. Filter is specified by using OData + syntax. Example: $filter=channel eq 'Api' or channel eq 'Notification'. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RecommendationCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.RecommendationCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_recommended_rules_for_web_app.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if featured is not None: + query_parameters['featured'] = self._serialize.query("featured", featured, 'bool') + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('RecommendationCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_recommended_rules_for_web_app.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations'} # type: ignore + + async def disable_all_for_web_app( + self, + resource_group_name: str, + site_name: str, + **kwargs: Any + ) -> None: + """Disable all recommendations for an app. + + Description for Disable all recommendations for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Name of the app. + :type site_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.disable_all_for_web_app.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + disable_all_for_web_app.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations/disable'} # type: ignore + + async def reset_all_filters_for_web_app( + self, + resource_group_name: str, + site_name: str, + **kwargs: Any + ) -> None: + """Reset all recommendation opt-out settings for an app. + + Description for Reset all recommendation opt-out settings for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Name of the app. + :type site_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.reset_all_filters_for_web_app.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reset_all_filters_for_web_app.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations/reset'} # type: ignore + + async def get_rule_details_by_web_app( + self, + resource_group_name: str, + site_name: str, + name: str, + update_seen: Optional[bool] = None, + recommendation_id: Optional[str] = None, + **kwargs: Any + ) -> "_models.RecommendationRule": + """Get a recommendation rule for an app. + + Description for Get a recommendation rule for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Name of the app. + :type site_name: str + :param name: Name of the recommendation. + :type name: str + :param update_seen: Specify :code:`true` to update the last-seen timestamp of the + recommendation object. + :type update_seen: bool + :param recommendation_id: The GUID of the recommendation object if you query an expired one. + You don't need to specify it to query an active entry. + :type recommendation_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RecommendationRule, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RecommendationRule + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationRule"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_rule_details_by_web_app.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if update_seen is not None: + query_parameters['updateSeen'] = self._serialize.query("update_seen", update_seen, 'bool') + if recommendation_id is not None: + query_parameters['recommendationId'] = self._serialize.query("recommendation_id", recommendation_id, 'str') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RecommendationRule', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_rule_details_by_web_app.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations/{name}'} # type: ignore + + async def disable_recommendation_for_site( + self, + resource_group_name: str, + site_name: str, + name: str, + **kwargs: Any + ) -> None: + """Disables the specific rule for a web site permanently. + + Description for Disables the specific rule for a web site permanently. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site name. + :type site_name: str + :param name: Rule name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.disable_recommendation_for_site.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + disable_recommendation_for_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations/{name}/disable'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_resource_health_metadata_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_resource_health_metadata_operations.py new file mode 100644 index 000000000000..26b4a9ad3554 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_resource_health_metadata_operations.py @@ -0,0 +1,471 @@ +# 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 ResourceHealthMetadataOperations: + """ResourceHealthMetadataOperations 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.web.v2021_01_15.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, + **kwargs: Any + ) -> AsyncIterable["_models.ResourceHealthMetadataCollection"]: + """List all ResourceHealthMetadata for all sites in the subscription. + + Description for List all ResourceHealthMetadata for all sites in the subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ResourceHealthMetadataCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceHealthMetadataCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceHealthMetadataCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('ResourceHealthMetadataCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/resourceHealthMetadata'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.ResourceHealthMetadataCollection"]: + """List all ResourceHealthMetadata for all sites in the resource group in the subscription. + + Description for List all ResourceHealthMetadata for all sites in the resource group in the + subscription. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :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 ResourceHealthMetadataCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceHealthMetadataCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceHealthMetadataCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ResourceHealthMetadataCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/resourceHealthMetadata'} # type: ignore + + def list_by_site( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.ResourceHealthMetadataCollection"]: + """Gets the category of ResourceHealthMetadata to use for the given site as a collection. + + Description for Gets the category of ResourceHealthMetadata to use for the given site as a + collection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ResourceHealthMetadataCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceHealthMetadataCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceHealthMetadataCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ResourceHealthMetadataCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/resourceHealthMetadata'} # type: ignore + + async def get_by_site( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.ResourceHealthMetadata": + """Gets the category of ResourceHealthMetadata to use for the given site. + + Description for Gets the category of ResourceHealthMetadata to use for the given site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ResourceHealthMetadata, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ResourceHealthMetadata + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceHealthMetadata"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_by_site.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ResourceHealthMetadata', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_by_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/resourceHealthMetadata/default'} # type: ignore + + def list_by_site_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.ResourceHealthMetadataCollection"]: + """Gets the category of ResourceHealthMetadata to use for the given site as a collection. + + Description for Gets the category of ResourceHealthMetadata to use for the given site as a + collection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ResourceHealthMetadataCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceHealthMetadataCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceHealthMetadataCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ResourceHealthMetadataCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_site_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/resourceHealthMetadata'} # type: ignore + + async def get_by_site_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.ResourceHealthMetadata": + """Gets the category of ResourceHealthMetadata to use for the given site. + + Description for Gets the category of ResourceHealthMetadata to use for the given site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ResourceHealthMetadata, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ResourceHealthMetadata + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceHealthMetadata"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_by_site_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ResourceHealthMetadata', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_by_site_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/resourceHealthMetadata/default'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_static_sites_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_static_sites_operations.py new file mode 100644 index 000000000000..3953b4cc03e7 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_static_sites_operations.py @@ -0,0 +1,4156 @@ +# 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 StaticSitesOperations: + """StaticSitesOperations 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.web.v2021_01_15.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 + + async def preview_workflow( + self, + location: str, + static_sites_workflow_preview_request: "_models.StaticSitesWorkflowPreviewRequest", + **kwargs: Any + ) -> "_models.StaticSitesWorkflowPreview": + """Generates a preview workflow file for the static site. + + Description for Generates a preview workflow file for the static site. + + :param location: Location where you plan to create the static site. + :type location: str + :param static_sites_workflow_preview_request: A JSON representation of the + StaticSitesWorkflowPreviewRequest properties. See example. + :type static_sites_workflow_preview_request: ~azure.mgmt.web.v2021_01_15.models.StaticSitesWorkflowPreviewRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSitesWorkflowPreview, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSitesWorkflowPreview + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSitesWorkflowPreview"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.preview_workflow.metadata['url'] # type: ignore + path_format_arguments = { + 'location': self._serialize.url("location", location, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_sites_workflow_preview_request, 'StaticSitesWorkflowPreviewRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StaticSitesWorkflowPreview', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + preview_workflow.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/locations/{location}/previewStaticSiteWorkflowFile'} # type: ignore + + def list( + self, + **kwargs: Any + ) -> AsyncIterable["_models.StaticSiteCollection"]: + """Get all Static Sites for a subscription. + + Description for Get all Static Sites for a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StaticSiteCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('StaticSiteCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/staticSites'} # type: ignore + + def get_static_sites_by_resource_group( + self, + resource_group_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.StaticSiteCollection"]: + """Gets all static sites in the specified resource group. + + Description for Gets all static sites in the specified resource group. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :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 StaticSiteCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_static_sites_by_resource_group.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('StaticSiteCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_static_sites_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites'} # type: ignore + + async def get_static_site( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.StaticSiteARMResource": + """Gets the details of a static site. + + Description for Gets the details of a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSiteARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSiteARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_static_site.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StaticSiteARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}'} # type: ignore + + async def _create_or_update_static_site_initial( + self, + resource_group_name: str, + name: str, + static_site_envelope: "_models.StaticSiteARMResource", + **kwargs: Any + ) -> "_models.StaticSiteARMResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_static_site_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_site_envelope, 'StaticSiteARMResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('StaticSiteARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('StaticSiteARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_static_site_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}'} # type: ignore + + async def begin_create_or_update_static_site( + self, + resource_group_name: str, + name: str, + static_site_envelope: "_models.StaticSiteARMResource", + **kwargs: Any + ) -> AsyncLROPoller["_models.StaticSiteARMResource"]: + """Creates a new static site in an existing resource group, or updates an existing static site. + + Description for Creates a new static site in an existing resource group, or updates an existing + static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site to create or update. + :type name: str + :param static_site_envelope: A JSON representation of the staticsite properties. See example. + :type static_site_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteARMResource + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 StaticSiteARMResource or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.StaticSiteARMResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteARMResource"] + 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_or_update_static_site_initial( + resource_group_name=resource_group_name, + name=name, + static_site_envelope=static_site_envelope, + 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('StaticSiteARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}'} # type: ignore + + async def _delete_static_site_initial( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> 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-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_static_site_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_static_site_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}'} # type: ignore + + async def begin_delete_static_site( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Deletes a static site. + + Description for Deletes a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site to delete. + :type 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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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_static_site_initial( + resource_group_name=resource_group_name, + name=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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}'} # type: ignore + + async def update_static_site( + self, + resource_group_name: str, + name: str, + static_site_envelope: "_models.StaticSitePatchResource", + **kwargs: Any + ) -> "_models.StaticSiteARMResource": + """Creates a new static site in an existing resource group, or updates an existing static site. + + Description for Creates a new static site in an existing resource group, or updates an existing + static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site to create or update. + :type name: str + :param static_site_envelope: A JSON representation of the staticsite properties. See example. + :type static_site_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSitePatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSiteARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSiteARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_static_site.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_site_envelope, 'StaticSitePatchResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('StaticSiteARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('StaticSiteARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}'} # type: ignore + + def list_static_site_users( + self, + resource_group_name: str, + name: str, + authprovider: str, + **kwargs: Any + ) -> AsyncIterable["_models.StaticSiteUserCollection"]: + """Gets the list of users of a static site. + + Description for Gets the list of users of a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param authprovider: The auth provider for the users. + :type authprovider: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StaticSiteUserCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_static_site_users.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'authprovider': self._serialize.url("authprovider", authprovider, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(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('StaticSiteUserCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_static_site_users.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/authproviders/{authprovider}/listUsers'} # type: ignore + + async def delete_static_site_user( + self, + resource_group_name: str, + name: str, + authprovider: str, + userid: str, + **kwargs: Any + ) -> None: + """Deletes the user entry from the static site. + + Description for Deletes the user entry from the static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the staticsite. + :type name: str + :param authprovider: The auth provider for this user. + :type authprovider: str + :param userid: The user id of the user. + :type userid: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_static_site_user.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'authprovider': self._serialize.url("authprovider", authprovider, 'str'), + 'userid': self._serialize.url("userid", userid, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_static_site_user.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/authproviders/{authprovider}/users/{userid}'} # type: ignore + + async def update_static_site_user( + self, + resource_group_name: str, + name: str, + authprovider: str, + userid: str, + static_site_user_envelope: "_models.StaticSiteUserARMResource", + **kwargs: Any + ) -> "_models.StaticSiteUserARMResource": + """Updates a user entry with the listed roles. + + Description for Updates a user entry with the listed roles. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param authprovider: The auth provider for this user. + :type authprovider: str + :param userid: The user id of the user. + :type userid: str + :param static_site_user_envelope: A JSON representation of the StaticSiteUser properties. See + example. + :type static_site_user_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteUserARMResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSiteUserARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSiteUserARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_static_site_user.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'authprovider': self._serialize.url("authprovider", authprovider, 'str'), + 'userid': self._serialize.url("userid", userid, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_site_user_envelope, 'StaticSiteUserARMResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StaticSiteUserARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_static_site_user.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/authproviders/{authprovider}/users/{userid}'} # type: ignore + + def get_static_site_builds( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.StaticSiteBuildCollection"]: + """Gets all static site builds for a particular static site. + + Description for Gets all static site builds for a particular static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StaticSiteBuildCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteBuildCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteBuildCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_static_site_builds.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('StaticSiteBuildCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_static_site_builds.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds'} # type: ignore + + async def get_static_site_build( + self, + resource_group_name: str, + name: str, + environment_name: str, + **kwargs: Any + ) -> "_models.StaticSiteBuildARMResource": + """Gets the details of a static site build. + + Description for Gets the details of a static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSiteBuildARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSiteBuildARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteBuildARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_static_site_build.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StaticSiteBuildARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_static_site_build.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}'} # type: ignore + + async def _delete_static_site_build_initial( + self, + resource_group_name: str, + name: str, + environment_name: str, + **kwargs: Any + ) -> 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-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_static_site_build_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_static_site_build_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}'} # type: ignore + + async def begin_delete_static_site_build( + self, + resource_group_name: str, + name: str, + environment_name: str, + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Deletes a static site build. + + Description for Deletes a static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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_static_site_build_initial( + resource_group_name=resource_group_name, + name=name, + environment_name=environment_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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete_static_site_build.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}'} # type: ignore + + async def create_or_update_static_site_build_app_settings( + self, + resource_group_name: str, + name: str, + environment_name: str, + app_settings: "_models.StringDictionary", + **kwargs: Any + ) -> "_models.StringDictionary": + """Creates or updates the app settings of a static site build. + + Description for Creates or updates the app settings of a static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :param app_settings: The dictionary containing the static site app settings to update. + :type app_settings: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_static_site_build_app_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_settings, 'StringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_static_site_build_app_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/config/appsettings'} # type: ignore + + async def create_or_update_static_site_build_function_app_settings( + self, + resource_group_name: str, + name: str, + environment_name: str, + app_settings: "_models.StringDictionary", + **kwargs: Any + ) -> "_models.StringDictionary": + """Creates or updates the function app settings of a static site build. + + Description for Creates or updates the function app settings of a static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :param app_settings: The dictionary containing the static site function app settings to update. + :type app_settings: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_static_site_build_function_app_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_settings, 'StringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_static_site_build_function_app_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/config/functionappsettings'} # type: ignore + + def list_static_site_build_functions( + self, + resource_group_name: str, + name: str, + environment_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.StaticSiteFunctionOverviewCollection"]: + """Gets the functions of a particular static site build. + + Description for Gets the functions of a particular static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StaticSiteFunctionOverviewCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteFunctionOverviewCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteFunctionOverviewCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_static_site_build_functions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('StaticSiteFunctionOverviewCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_static_site_build_functions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/functions'} # type: ignore + + async def list_static_site_build_app_settings( + self, + resource_group_name: str, + name: str, + environment_name: str, + **kwargs: Any + ) -> "_models.StringDictionary": + """Gets the application settings of a static site build. + + Description for Gets the application settings of a static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_static_site_build_app_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_static_site_build_app_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/listAppSettings'} # type: ignore + + async def list_static_site_build_function_app_settings( + self, + resource_group_name: str, + name: str, + environment_name: str, + **kwargs: Any + ) -> "_models.StringDictionary": + """Gets the application settings of a static site build. + + Description for Gets the application settings of a static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_static_site_build_function_app_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_static_site_build_function_app_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/listFunctionAppSettings'} # type: ignore + + def get_user_provided_function_apps_for_static_site_build( + self, + resource_group_name: str, + name: str, + environment_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.StaticSiteUserProvidedFunctionAppsCollection"]: + """Gets the details of the user provided function apps registered with a static site build. + + Description for Gets the details of the user provided function apps registered with a static + site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StaticSiteUserProvidedFunctionAppsCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppsCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserProvidedFunctionAppsCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_user_provided_function_apps_for_static_site_build.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('StaticSiteUserProvidedFunctionAppsCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_user_provided_function_apps_for_static_site_build.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/userProvidedFunctionApps'} # type: ignore + + async def get_user_provided_function_app_for_static_site_build( + self, + resource_group_name: str, + name: str, + environment_name: str, + function_app_name: str, + **kwargs: Any + ) -> "_models.StaticSiteUserProvidedFunctionAppARMResource": + """Gets the details of the user provided function app registered with a static site build. + + Description for Gets the details of the user provided function app registered with a static + site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :param function_app_name: Name of the function app registered with the static site build. + :type function_app_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSiteUserProvidedFunctionAppARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserProvidedFunctionAppARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_user_provided_function_app_for_static_site_build.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'functionAppName': self._serialize.url("function_app_name", function_app_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StaticSiteUserProvidedFunctionAppARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_user_provided_function_app_for_static_site_build.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/userProvidedFunctionApps/{functionAppName}'} # type: ignore + + async def _register_user_provided_function_app_with_static_site_build_initial( + self, + resource_group_name: str, + name: str, + environment_name: str, + function_app_name: str, + static_site_user_provided_function_envelope: "_models.StaticSiteUserProvidedFunctionAppARMResource", + is_forced: Optional[bool] = None, + **kwargs: Any + ) -> "_models.StaticSiteUserProvidedFunctionAppARMResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserProvidedFunctionAppARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._register_user_provided_function_app_with_static_site_build_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'functionAppName': self._serialize.url("function_app_name", function_app_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if is_forced is not None: + query_parameters['isForced'] = self._serialize.query("is_forced", is_forced, 'bool') + 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(static_site_user_provided_function_envelope, 'StaticSiteUserProvidedFunctionAppARMResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('StaticSiteUserProvidedFunctionAppARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('StaticSiteUserProvidedFunctionAppARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _register_user_provided_function_app_with_static_site_build_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/userProvidedFunctionApps/{functionAppName}'} # type: ignore + + async def begin_register_user_provided_function_app_with_static_site_build( + self, + resource_group_name: str, + name: str, + environment_name: str, + function_app_name: str, + static_site_user_provided_function_envelope: "_models.StaticSiteUserProvidedFunctionAppARMResource", + is_forced: Optional[bool] = None, + **kwargs: Any + ) -> AsyncLROPoller["_models.StaticSiteUserProvidedFunctionAppARMResource"]: + """Register a user provided function app with a static site build. + + Description for Register a user provided function app with a static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :param function_app_name: Name of the function app to register with the static site build. + :type function_app_name: str + :param static_site_user_provided_function_envelope: A JSON representation of the user provided + function app properties. See example. + :type static_site_user_provided_function_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppARMResource + :param is_forced: Specify :code:`true` to force the update of the auth + configuration on the function app even if an AzureStaticWebApps provider is already configured + on the function app. The default is :code:`false`. + :type is_forced: bool + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 StaticSiteUserProvidedFunctionAppARMResource or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppARMResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserProvidedFunctionAppARMResource"] + 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._register_user_provided_function_app_with_static_site_build_initial( + resource_group_name=resource_group_name, + name=name, + environment_name=environment_name, + function_app_name=function_app_name, + static_site_user_provided_function_envelope=static_site_user_provided_function_envelope, + is_forced=is_forced, + 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('StaticSiteUserProvidedFunctionAppARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'functionAppName': self._serialize.url("function_app_name", function_app_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_register_user_provided_function_app_with_static_site_build.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/userProvidedFunctionApps/{functionAppName}'} # type: ignore + + async def detach_user_provided_function_app_from_static_site_build( + self, + resource_group_name: str, + name: str, + environment_name: str, + function_app_name: str, + **kwargs: Any + ) -> None: + """Detach the user provided function app from the static site build. + + Description for Detach the user provided function app from the static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :param function_app_name: Name of the function app registered with the static site build. + :type function_app_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.detach_user_provided_function_app_from_static_site_build.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'functionAppName': self._serialize.url("function_app_name", function_app_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + detach_user_provided_function_app_from_static_site_build.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/userProvidedFunctionApps/{functionAppName}'} # type: ignore + + async def _create_zip_deployment_for_static_site_build_initial( + self, + resource_group_name: str, + name: str, + environment_name: str, + static_site_zip_deployment_envelope: "_models.StaticSiteZipDeploymentARMResource", + **kwargs: Any + ) -> 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_zip_deployment_for_static_site_build_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_site_zip_deployment_envelope, 'StaticSiteZipDeploymentARMResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _create_zip_deployment_for_static_site_build_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/zipdeploy'} # type: ignore + + async def begin_create_zip_deployment_for_static_site_build( + self, + resource_group_name: str, + name: str, + environment_name: str, + static_site_zip_deployment_envelope: "_models.StaticSiteZipDeploymentARMResource", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Deploys zipped content to a specific environment of a static site. + + Description for Deploys zipped content to a specific environment of a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: Name of the environment. + :type environment_name: str + :param static_site_zip_deployment_envelope: A JSON representation of the + StaticSiteZipDeployment properties. See example. + :type static_site_zip_deployment_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteZipDeploymentARMResource + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._create_zip_deployment_for_static_site_build_initial( + resource_group_name=resource_group_name, + name=name, + environment_name=environment_name, + static_site_zip_deployment_envelope=static_site_zip_deployment_envelope, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_zip_deployment_for_static_site_build.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/zipdeploy'} # type: ignore + + async def create_or_update_static_site_app_settings( + self, + resource_group_name: str, + name: str, + app_settings: "_models.StringDictionary", + **kwargs: Any + ) -> "_models.StringDictionary": + """Creates or updates the app settings of a static site. + + Description for Creates or updates the app settings of a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param app_settings: The dictionary containing the static site app settings to update. + :type app_settings: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_static_site_app_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_settings, 'StringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_static_site_app_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/config/appsettings'} # type: ignore + + async def create_or_update_static_site_function_app_settings( + self, + resource_group_name: str, + name: str, + app_settings: "_models.StringDictionary", + **kwargs: Any + ) -> "_models.StringDictionary": + """Creates or updates the function app settings of a static site. + + Description for Creates or updates the function app settings of a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param app_settings: The dictionary containing the static site function app settings to update. + :type app_settings: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_static_site_function_app_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_settings, 'StringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_static_site_function_app_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/config/functionappsettings'} # type: ignore + + async def create_user_roles_invitation_link( + self, + resource_group_name: str, + name: str, + static_site_user_roles_invitation_envelope: "_models.StaticSiteUserInvitationRequestResource", + **kwargs: Any + ) -> "_models.StaticSiteUserInvitationResponseResource": + """Creates an invitation link for a user with the role. + + Description for Creates an invitation link for a user with the role. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param static_site_user_roles_invitation_envelope: + :type static_site_user_roles_invitation_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteUserInvitationRequestResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSiteUserInvitationResponseResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSiteUserInvitationResponseResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserInvitationResponseResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_user_roles_invitation_link.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_site_user_roles_invitation_envelope, 'StaticSiteUserInvitationRequestResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StaticSiteUserInvitationResponseResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_user_roles_invitation_link.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/createUserInvitation'} # type: ignore + + def list_static_site_custom_domains( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.StaticSiteCustomDomainOverviewCollection"]: + """Gets all static site custom domains for a particular static site. + + Description for Gets all static site custom domains for a particular static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site resource to search in. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StaticSiteCustomDomainOverviewCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteCustomDomainOverviewCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteCustomDomainOverviewCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_static_site_custom_domains.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('StaticSiteCustomDomainOverviewCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_static_site_custom_domains.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/customDomains'} # type: ignore + + async def get_static_site_custom_domain( + self, + resource_group_name: str, + name: str, + domain_name: str, + **kwargs: Any + ) -> "_models.StaticSiteCustomDomainOverviewARMResource": + """Gets an existing custom domain for a particular static site. + + Description for Gets an existing custom domain for a particular static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site resource to search in. + :type name: str + :param domain_name: The custom domain name. + :type domain_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSiteCustomDomainOverviewARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSiteCustomDomainOverviewARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteCustomDomainOverviewARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_static_site_custom_domain.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StaticSiteCustomDomainOverviewARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_static_site_custom_domain.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/customDomains/{domainName}'} # type: ignore + + async def _create_or_update_static_site_custom_domain_initial( + self, + resource_group_name: str, + name: str, + domain_name: str, + static_site_custom_domain_request_properties_envelope: "_models.StaticSiteCustomDomainRequestPropertiesARMResource", + **kwargs: Any + ) -> "_models.StaticSiteCustomDomainOverviewARMResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteCustomDomainOverviewARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_static_site_custom_domain_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_site_custom_domain_request_properties_envelope, 'StaticSiteCustomDomainRequestPropertiesARMResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('StaticSiteCustomDomainOverviewARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('StaticSiteCustomDomainOverviewARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_static_site_custom_domain_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/customDomains/{domainName}'} # type: ignore + + async def begin_create_or_update_static_site_custom_domain( + self, + resource_group_name: str, + name: str, + domain_name: str, + static_site_custom_domain_request_properties_envelope: "_models.StaticSiteCustomDomainRequestPropertiesARMResource", + **kwargs: Any + ) -> AsyncLROPoller["_models.StaticSiteCustomDomainOverviewARMResource"]: + """Creates a new static site custom domain in an existing resource group and static site. + + Description for Creates a new static site custom domain in an existing resource group and + static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param domain_name: The custom domain to create. + :type domain_name: str + :param static_site_custom_domain_request_properties_envelope: A JSON representation of the + static site custom domain request properties. See example. + :type static_site_custom_domain_request_properties_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteCustomDomainRequestPropertiesARMResource + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 StaticSiteCustomDomainOverviewARMResource or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.StaticSiteCustomDomainOverviewARMResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteCustomDomainOverviewARMResource"] + 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_or_update_static_site_custom_domain_initial( + resource_group_name=resource_group_name, + name=name, + domain_name=domain_name, + static_site_custom_domain_request_properties_envelope=static_site_custom_domain_request_properties_envelope, + 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('StaticSiteCustomDomainOverviewARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update_static_site_custom_domain.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/customDomains/{domainName}'} # type: ignore + + async def _delete_static_site_custom_domain_initial( + self, + resource_group_name: str, + name: str, + domain_name: str, + **kwargs: Any + ) -> 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-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_static_site_custom_domain_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_static_site_custom_domain_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/customDomains/{domainName}'} # type: ignore + + async def begin_delete_static_site_custom_domain( + self, + resource_group_name: str, + name: str, + domain_name: str, + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Deletes a custom domain. + + Description for Deletes a custom domain. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param domain_name: The custom domain to delete. + :type domain_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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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_static_site_custom_domain_initial( + resource_group_name=resource_group_name, + name=name, + domain_name=domain_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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete_static_site_custom_domain.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/customDomains/{domainName}'} # type: ignore + + async def _validate_custom_domain_can_be_added_to_static_site_initial( + self, + resource_group_name: str, + name: str, + domain_name: str, + static_site_custom_domain_request_properties_envelope: "_models.StaticSiteCustomDomainRequestPropertiesARMResource", + **kwargs: Any + ) -> 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._validate_custom_domain_can_be_added_to_static_site_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_site_custom_domain_request_properties_envelope, 'StaticSiteCustomDomainRequestPropertiesARMResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _validate_custom_domain_can_be_added_to_static_site_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/customDomains/{domainName}/validate'} # type: ignore + + async def begin_validate_custom_domain_can_be_added_to_static_site( + self, + resource_group_name: str, + name: str, + domain_name: str, + static_site_custom_domain_request_properties_envelope: "_models.StaticSiteCustomDomainRequestPropertiesARMResource", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Validates a particular custom domain can be added to a static site. + + Description for Validates a particular custom domain can be added to a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param domain_name: The custom domain to validate. + :type domain_name: str + :param static_site_custom_domain_request_properties_envelope: A JSON representation of the + static site custom domain request properties. See example. + :type static_site_custom_domain_request_properties_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteCustomDomainRequestPropertiesARMResource + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._validate_custom_domain_can_be_added_to_static_site_initial( + resource_group_name=resource_group_name, + name=name, + domain_name=domain_name, + static_site_custom_domain_request_properties_envelope=static_site_custom_domain_request_properties_envelope, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_validate_custom_domain_can_be_added_to_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/customDomains/{domainName}/validate'} # type: ignore + + async def _detach_static_site_initial( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> 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-01-15" + accept = "application/json" + + # Construct URL + url = self._detach_static_site_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _detach_static_site_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/detach'} # type: ignore + + async def begin_detach_static_site( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Detaches a static site. + + Description for Detaches a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site to detach. + :type 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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._detach_static_site_initial( + resource_group_name=resource_group_name, + name=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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_detach_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/detach'} # type: ignore + + def list_static_site_functions( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.StaticSiteFunctionOverviewCollection"]: + """Gets the functions of a static site. + + Description for Gets the functions of a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StaticSiteFunctionOverviewCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteFunctionOverviewCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteFunctionOverviewCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_static_site_functions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('StaticSiteFunctionOverviewCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_static_site_functions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/functions'} # type: ignore + + async def list_static_site_app_settings( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.StringDictionary": + """Gets the application settings of a static site. + + Description for Gets the application settings of a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_static_site_app_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_static_site_app_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/listAppSettings'} # type: ignore + + async def list_static_site_configured_roles( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.StringList": + """Lists the roles configured for the static site. + + Description for Lists the roles configured for the static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringList, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringList + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringList"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_static_site_configured_roles.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringList', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_static_site_configured_roles.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/listConfiguredRoles'} # type: ignore + + async def list_static_site_function_app_settings( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.StringDictionary": + """Gets the application settings of a static site. + + Description for Gets the application settings of a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_static_site_function_app_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_static_site_function_app_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/listFunctionAppSettings'} # type: ignore + + async def list_static_site_secrets( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.StringDictionary": + """Lists the secrets for an existing static site. + + Description for Lists the secrets for an existing static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_static_site_secrets.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_static_site_secrets.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/listSecrets'} # type: ignore + + def get_private_endpoint_connection_list( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.PrivateEndpointConnectionCollection"]: + """Gets the list of private endpoint connections associated with a static site. + + Description for Gets the list of private endpoint connections associated with a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PrivateEndpointConnectionCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.PrivateEndpointConnectionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_private_endpoint_connection_list.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PrivateEndpointConnectionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_private_endpoint_connection_list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/privateEndpointConnections'} # type: ignore + + async def get_private_endpoint_connection( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + **kwargs: Any + ) -> "_models.RemotePrivateEndpointConnectionARMResource": + """Gets a private endpoint connection. + + Description for Gets a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param private_endpoint_connection_name: Name of the private endpoint connection. + :type private_endpoint_connection_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RemotePrivateEndpointConnectionARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_endpoint_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def _approve_or_reject_private_endpoint_connection_initial( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + private_endpoint_wrapper: "_models.PrivateLinkConnectionApprovalRequestResource", + **kwargs: Any + ) -> "_models.RemotePrivateEndpointConnectionARMResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._approve_or_reject_private_endpoint_connection_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(private_endpoint_wrapper, 'PrivateLinkConnectionApprovalRequestResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _approve_or_reject_private_endpoint_connection_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def begin_approve_or_reject_private_endpoint_connection( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + private_endpoint_wrapper: "_models.PrivateLinkConnectionApprovalRequestResource", + **kwargs: Any + ) -> AsyncLROPoller["_models.RemotePrivateEndpointConnectionARMResource"]: + """Approves or rejects a private endpoint connection. + + Description for Approves or rejects a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param private_endpoint_connection_name: Name of the private endpoint connection. + :type private_endpoint_connection_name: str + :param private_endpoint_wrapper: Request body. + :type private_endpoint_wrapper: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkConnectionApprovalRequestResource + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 RemotePrivateEndpointConnectionARMResource or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + 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._approve_or_reject_private_endpoint_connection_initial( + resource_group_name=resource_group_name, + name=name, + private_endpoint_connection_name=private_endpoint_connection_name, + private_endpoint_wrapper=private_endpoint_wrapper, + 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('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_approve_or_reject_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def _delete_private_endpoint_connection_initial( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + **kwargs: Any + ) -> Any: + cls = kwargs.pop('cls', None) # type: ClsType[Any] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_private_endpoint_connection_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('object', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('object', pipeline_response) + + if response.status_code == 204: + deserialized = self._deserialize('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _delete_private_endpoint_connection_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def begin_delete_private_endpoint_connection( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + **kwargs: Any + ) -> AsyncLROPoller[Any]: + """Deletes a private endpoint connection. + + Description for Deletes a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param private_endpoint_connection_name: Name of the private endpoint connection. + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 any or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[any] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[Any] + 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_private_endpoint_connection_initial( + resource_group_name=resource_group_name, + name=name, + private_endpoint_connection_name=private_endpoint_connection_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('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def get_private_link_resources( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.PrivateLinkResourcesWrapper": + """Gets the private link resources. + + Description for Gets the private link resources. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateLinkResourcesWrapper, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkResourcesWrapper + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourcesWrapper"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_link_resources.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateLinkResourcesWrapper', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_link_resources.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/privateLinkResources'} # type: ignore + + async def reset_static_site_api_key( + self, + resource_group_name: str, + name: str, + reset_properties_envelope: "_models.StaticSiteResetPropertiesARMResource", + **kwargs: Any + ) -> None: + """Resets the api key for an existing static site. + + Description for Resets the api key for an existing static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param reset_properties_envelope: + :type reset_properties_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteResetPropertiesARMResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.reset_static_site_api_key.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(reset_properties_envelope, 'StaticSiteResetPropertiesARMResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reset_static_site_api_key.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/resetapikey'} # type: ignore + + def get_user_provided_function_apps_for_static_site( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.StaticSiteUserProvidedFunctionAppsCollection"]: + """Gets the details of the user provided function apps registered with a static site. + + Description for Gets the details of the user provided function apps registered with a static + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StaticSiteUserProvidedFunctionAppsCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppsCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserProvidedFunctionAppsCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_user_provided_function_apps_for_static_site.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('StaticSiteUserProvidedFunctionAppsCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_user_provided_function_apps_for_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/userProvidedFunctionApps'} # type: ignore + + async def get_user_provided_function_app_for_static_site( + self, + resource_group_name: str, + name: str, + function_app_name: str, + **kwargs: Any + ) -> "_models.StaticSiteUserProvidedFunctionAppARMResource": + """Gets the details of the user provided function app registered with a static site. + + Description for Gets the details of the user provided function app registered with a static + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param function_app_name: Name of the function app registered with the static site. + :type function_app_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSiteUserProvidedFunctionAppARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserProvidedFunctionAppARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_user_provided_function_app_for_static_site.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionAppName': self._serialize.url("function_app_name", function_app_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StaticSiteUserProvidedFunctionAppARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_user_provided_function_app_for_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/userProvidedFunctionApps/{functionAppName}'} # type: ignore + + async def _register_user_provided_function_app_with_static_site_initial( + self, + resource_group_name: str, + name: str, + function_app_name: str, + static_site_user_provided_function_envelope: "_models.StaticSiteUserProvidedFunctionAppARMResource", + is_forced: Optional[bool] = None, + **kwargs: Any + ) -> "_models.StaticSiteUserProvidedFunctionAppARMResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserProvidedFunctionAppARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._register_user_provided_function_app_with_static_site_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionAppName': self._serialize.url("function_app_name", function_app_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if is_forced is not None: + query_parameters['isForced'] = self._serialize.query("is_forced", is_forced, 'bool') + 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(static_site_user_provided_function_envelope, 'StaticSiteUserProvidedFunctionAppARMResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('StaticSiteUserProvidedFunctionAppARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('StaticSiteUserProvidedFunctionAppARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _register_user_provided_function_app_with_static_site_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/userProvidedFunctionApps/{functionAppName}'} # type: ignore + + async def begin_register_user_provided_function_app_with_static_site( + self, + resource_group_name: str, + name: str, + function_app_name: str, + static_site_user_provided_function_envelope: "_models.StaticSiteUserProvidedFunctionAppARMResource", + is_forced: Optional[bool] = None, + **kwargs: Any + ) -> AsyncLROPoller["_models.StaticSiteUserProvidedFunctionAppARMResource"]: + """Register a user provided function app with a static site. + + Description for Register a user provided function app with a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param function_app_name: Name of the function app to register with the static site. + :type function_app_name: str + :param static_site_user_provided_function_envelope: A JSON representation of the user provided + function app properties. See example. + :type static_site_user_provided_function_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppARMResource + :param is_forced: Specify :code:`true` to force the update of the auth + configuration on the function app even if an AzureStaticWebApps provider is already configured + on the function app. The default is :code:`false`. + :type is_forced: bool + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 StaticSiteUserProvidedFunctionAppARMResource or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppARMResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserProvidedFunctionAppARMResource"] + 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._register_user_provided_function_app_with_static_site_initial( + resource_group_name=resource_group_name, + name=name, + function_app_name=function_app_name, + static_site_user_provided_function_envelope=static_site_user_provided_function_envelope, + is_forced=is_forced, + 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('StaticSiteUserProvidedFunctionAppARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionAppName': self._serialize.url("function_app_name", function_app_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_register_user_provided_function_app_with_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/userProvidedFunctionApps/{functionAppName}'} # type: ignore + + async def detach_user_provided_function_app_from_static_site( + self, + resource_group_name: str, + name: str, + function_app_name: str, + **kwargs: Any + ) -> None: + """Detach the user provided function app from the static site. + + Description for Detach the user provided function app from the static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param function_app_name: Name of the function app registered with the static site. + :type function_app_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.detach_user_provided_function_app_from_static_site.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionAppName': self._serialize.url("function_app_name", function_app_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + detach_user_provided_function_app_from_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/userProvidedFunctionApps/{functionAppName}'} # type: ignore + + async def _create_zip_deployment_for_static_site_initial( + self, + resource_group_name: str, + name: str, + static_site_zip_deployment_envelope: "_models.StaticSiteZipDeploymentARMResource", + **kwargs: Any + ) -> 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_zip_deployment_for_static_site_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_site_zip_deployment_envelope, 'StaticSiteZipDeploymentARMResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _create_zip_deployment_for_static_site_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/zipdeploy'} # type: ignore + + async def begin_create_zip_deployment_for_static_site( + self, + resource_group_name: str, + name: str, + static_site_zip_deployment_envelope: "_models.StaticSiteZipDeploymentARMResource", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Deploys zipped content to a static site. + + Description for Deploys zipped content to a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param static_site_zip_deployment_envelope: A JSON representation of the + StaticSiteZipDeployment properties. See example. + :type static_site_zip_deployment_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteZipDeploymentARMResource + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._create_zip_deployment_for_static_site_initial( + resource_group_name=resource_group_name, + name=name, + static_site_zip_deployment_envelope=static_site_zip_deployment_envelope, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_zip_deployment_for_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/zipdeploy'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_top_level_domains_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_top_level_domains_operations.py new file mode 100644 index 000000000000..d0ef7770897d --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_top_level_domains_operations.py @@ -0,0 +1,252 @@ +# 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 TopLevelDomainsOperations: + """TopLevelDomainsOperations 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.web.v2021_01_15.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, + **kwargs: Any + ) -> AsyncIterable["_models.TopLevelDomainCollection"]: + """Get all top-level domains supported for registration. + + Description for Get all top-level domains supported for registration. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either TopLevelDomainCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.TopLevelDomainCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TopLevelDomainCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('TopLevelDomainCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/topLevelDomains'} # type: ignore + + async def get( + self, + name: str, + **kwargs: Any + ) -> "_models.TopLevelDomain": + """Get details of a top-level domain. + + Description for Get details of a top-level domain. + + :param name: Name of the top-level domain. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TopLevelDomain, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.TopLevelDomain + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TopLevelDomain"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('TopLevelDomain', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/topLevelDomains/{name}'} # type: ignore + + def list_agreements( + self, + name: str, + agreement_option: "_models.TopLevelDomainAgreementOption", + **kwargs: Any + ) -> AsyncIterable["_models.TldLegalAgreementCollection"]: + """Gets all legal agreements that user needs to accept before purchasing a domain. + + Description for Gets all legal agreements that user needs to accept before purchasing a domain. + + :param name: Name of the top-level domain. + :type name: str + :param agreement_option: Domain agreement options. + :type agreement_option: ~azure.mgmt.web.v2021_01_15.models.TopLevelDomainAgreementOption + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either TldLegalAgreementCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.TldLegalAgreementCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TldLegalAgreementCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = "application/json" + accept = "application/json" + + def prepare_request(next_link=None): + # 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') + + if not next_link: + # Construct URL + url = self.list_agreements.metadata['url'] # type: ignore + path_format_arguments = { + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(agreement_option, 'TopLevelDomainAgreementOption') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(agreement_option, 'TopLevelDomainAgreementOption') + body_content_kwargs['content'] = body_content + request = self._client.get(url, query_parameters, header_parameters, **body_content_kwargs) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('TldLegalAgreementCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_agreements.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/topLevelDomains/{name}/listAgreements'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_web_apps_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_web_apps_operations.py new file mode 100644 index 000000000000..0c076f00f3b1 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_web_apps_operations.py @@ -0,0 +1,29762 @@ +# 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, IO, List, 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 WebAppsOperations: + """WebAppsOperations 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.web.v2021_01_15.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, + **kwargs: Any + ) -> AsyncIterable["_models.WebAppCollection"]: + """Get all apps for a subscription. + + Description for Get all apps for a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('WebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/sites'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name: str, + include_slots: Optional[bool] = None, + **kwargs: Any + ) -> AsyncIterable["_models.WebAppCollection"]: + """Gets all web, mobile, and API apps in the specified resource group. + + Description for Gets all web, mobile, and API apps in the specified resource group. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param include_slots: Specify :code:`true` to include deployment slots in + results. The default is false, which only gives you the production slot of all apps. + :type include_slots: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if include_slots is not None: + query_parameters['includeSlots'] = self._serialize.query("include_slots", include_slots, 'bool') + 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('WebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites'} # type: ignore + + async def get( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.Site": + """Gets the details of a web, mobile, or API app. + + Description for Gets the details of a web, mobile, or API app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Site, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Site + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Site"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Site', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}'} # type: ignore + + async def _create_or_update_initial( + self, + resource_group_name: str, + name: str, + site_envelope: "_models.Site", + **kwargs: Any + ) -> "_models.Site": + cls = kwargs.pop('cls', None) # type: ClsType["_models.Site"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_envelope, 'Site') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('Site', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('Site', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}'} # type: ignore + + async def begin_create_or_update( + self, + resource_group_name: str, + name: str, + site_envelope: "_models.Site", + **kwargs: Any + ) -> AsyncLROPoller["_models.Site"]: + """Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. + + Description for Creates a new web, mobile, or API app in an existing resource group, or updates + an existing app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Unique name of the app to create or update. To create or update a deployment slot, + use the {slot} parameter. + :type name: str + :param site_envelope: A JSON representation of the app properties. See example. + :type site_envelope: ~azure.mgmt.web.v2021_01_15.models.Site + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 Site or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.Site] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Site"] + 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_or_update_initial( + resource_group_name=resource_group_name, + name=name, + site_envelope=site_envelope, + 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('Site', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}'} # type: ignore + + async def delete( + self, + resource_group_name: str, + name: str, + delete_metrics: Optional[bool] = None, + delete_empty_server_farm: Optional[bool] = None, + **kwargs: Any + ) -> None: + """Deletes a web, mobile, or API app, or one of the deployment slots. + + Description for Deletes a web, mobile, or API app, or one of the deployment slots. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app to delete. + :type name: str + :param delete_metrics: If true, web app metrics are also deleted. + :type delete_metrics: bool + :param delete_empty_server_farm: Specify false if you want to keep empty App Service plan. By + default, empty App Service plan is deleted. + :type delete_empty_server_farm: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if delete_metrics is not None: + query_parameters['deleteMetrics'] = self._serialize.query("delete_metrics", delete_metrics, 'bool') + if delete_empty_server_farm is not None: + query_parameters['deleteEmptyServerFarm'] = self._serialize.query("delete_empty_server_farm", delete_empty_server_farm, 'bool') + 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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}'} # type: ignore + + async def update( + self, + resource_group_name: str, + name: str, + site_envelope: "_models.SitePatchResource", + **kwargs: Any + ) -> "_models.Site": + """Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. + + Description for Creates a new web, mobile, or API app in an existing resource group, or updates + an existing app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Unique name of the app to create or update. To create or update a deployment slot, + use the {slot} parameter. + :type name: str + :param site_envelope: A JSON representation of the app properties. See example. + :type site_envelope: ~azure.mgmt.web.v2021_01_15.models.SitePatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Site, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Site + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Site"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_envelope, 'SitePatchResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('Site', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('Site', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}'} # type: ignore + + async def analyze_custom_hostname( + self, + resource_group_name: str, + name: str, + host_name: Optional[str] = None, + **kwargs: Any + ) -> "_models.CustomHostnameAnalysisResult": + """Analyze a custom hostname. + + Description for Analyze a custom hostname. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param host_name: Custom hostname. + :type host_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CustomHostnameAnalysisResult, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CustomHostnameAnalysisResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CustomHostnameAnalysisResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.analyze_custom_hostname.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if host_name is not None: + query_parameters['hostName'] = self._serialize.query("host_name", host_name, 'str') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CustomHostnameAnalysisResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + analyze_custom_hostname.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/analyzeCustomHostname'} # type: ignore + + async def apply_slot_config_to_production( + self, + resource_group_name: str, + name: str, + slot_swap_entity: "_models.CsmSlotEntity", + **kwargs: Any + ) -> None: + """Applies the configuration settings from the target slot onto the current slot. + + Description for Applies the configuration settings from the target slot onto the current slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot_swap_entity: JSON object that contains the target slot name. See example. + :type slot_swap_entity: ~azure.mgmt.web.v2021_01_15.models.CsmSlotEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.apply_slot_config_to_production.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(slot_swap_entity, 'CsmSlotEntity') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + apply_slot_config_to_production.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/applySlotConfig'} # type: ignore + + async def backup( + self, + resource_group_name: str, + name: str, + request: "_models.BackupRequest", + **kwargs: Any + ) -> "_models.BackupItem": + """Creates a backup of an app. + + Description for Creates a backup of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param request: Backup configuration. You can use the JSON response from the POST action as + input here. + :type request: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupItem, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupItem + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItem"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.backup.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'BackupRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupItem', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + backup.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/backup'} # type: ignore + + def list_backups( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.BackupItemCollection"]: + """Gets existing backups of an app. + + Description for Gets existing backups of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either BackupItemCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.BackupItemCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItemCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('BackupItemCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_backups.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/backups'} # type: ignore + + async def get_backup_status( + self, + resource_group_name: str, + name: str, + backup_id: str, + **kwargs: Any + ) -> "_models.BackupItem": + """Gets a backup of an app by its ID. + + Description for Gets a backup of an app by its ID. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param backup_id: ID of the backup. + :type backup_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupItem, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupItem + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItem"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_backup_status.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupItem', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_backup_status.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/backups/{backupId}'} # type: ignore + + async def delete_backup( + self, + resource_group_name: str, + name: str, + backup_id: str, + **kwargs: Any + ) -> None: + """Deletes a backup of an app by its ID. + + Description for Deletes a backup of an app by its ID. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param backup_id: ID of the backup. + :type backup_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_backup.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_backup.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/backups/{backupId}'} # type: ignore + + async def list_backup_status_secrets( + self, + resource_group_name: str, + name: str, + backup_id: str, + request: "_models.BackupRequest", + **kwargs: Any + ) -> "_models.BackupItem": + """Gets status of a web app backup that may be in progress, including secrets associated with the backup, such as the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is passed in the request body. + + Description for Gets status of a web app backup that may be in progress, including secrets + associated with the backup, such as the Azure Storage SAS URL. Also can be used to update the + SAS URL for the backup if a new URL is passed in the request body. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param backup_id: ID of backup. + :type backup_id: str + :param request: Information on backup request. + :type request: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupItem, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupItem + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItem"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.list_backup_status_secrets.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'BackupRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupItem', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_backup_status_secrets.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/backups/{backupId}/list'} # type: ignore + + async def _restore_initial( + self, + resource_group_name: str, + name: str, + backup_id: str, + request: "_models.RestoreRequest", + **kwargs: Any + ) -> 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._restore_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'RestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _restore_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/backups/{backupId}/restore'} # type: ignore + + async def begin_restore( + self, + resource_group_name: str, + name: str, + backup_id: str, + request: "_models.RestoreRequest", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Restores a specific backup to another app (or deployment slot, if specified). + + Description for Restores a specific backup to another app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param backup_id: ID of the backup. + :type backup_id: str + :param request: Information on restore request . + :type request: ~azure.mgmt.web.v2021_01_15.models.RestoreRequest + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._restore_initial( + resource_group_name=resource_group_name, + name=name, + backup_id=backup_id, + request=request, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_restore.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/backups/{backupId}/restore'} # type: ignore + + def list_basic_publishing_credentials_policies( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.PublishingCredentialsPoliciesCollection"]: + """Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site. + + Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a + given site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PublishingCredentialsPoliciesCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.PublishingCredentialsPoliciesCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PublishingCredentialsPoliciesCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_basic_publishing_credentials_policies.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PublishingCredentialsPoliciesCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_basic_publishing_credentials_policies.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/basicPublishingCredentialsPolicies'} # type: ignore + + async def get_ftp_allowed( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.CsmPublishingCredentialsPoliciesEntity": + """Returns whether FTP is allowed on the site or not. + + Description for Returns whether FTP is allowed on the site or not. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CsmPublishingCredentialsPoliciesEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmPublishingCredentialsPoliciesEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_ftp_allowed.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CsmPublishingCredentialsPoliciesEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_ftp_allowed.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/basicPublishingCredentialsPolicies/ftp'} # type: ignore + + async def update_ftp_allowed( + self, + resource_group_name: str, + name: str, + csm_publishing_access_policies_entity: "_models.CsmPublishingCredentialsPoliciesEntity", + **kwargs: Any + ) -> "_models.CsmPublishingCredentialsPoliciesEntity": + """Updates whether FTP is allowed on the site or not. + + Description for Updates whether FTP is allowed on the site or not. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param csm_publishing_access_policies_entity: + :type csm_publishing_access_policies_entity: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CsmPublishingCredentialsPoliciesEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmPublishingCredentialsPoliciesEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_ftp_allowed.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(csm_publishing_access_policies_entity, 'CsmPublishingCredentialsPoliciesEntity') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CsmPublishingCredentialsPoliciesEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_ftp_allowed.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/basicPublishingCredentialsPolicies/ftp'} # type: ignore + + async def get_scm_allowed( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.CsmPublishingCredentialsPoliciesEntity": + """Returns whether Scm basic auth is allowed on the site or not. + + Description for Returns whether Scm basic auth is allowed on the site or not. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CsmPublishingCredentialsPoliciesEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmPublishingCredentialsPoliciesEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_scm_allowed.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CsmPublishingCredentialsPoliciesEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_scm_allowed.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/basicPublishingCredentialsPolicies/scm'} # type: ignore + + async def update_scm_allowed( + self, + resource_group_name: str, + name: str, + csm_publishing_access_policies_entity: "_models.CsmPublishingCredentialsPoliciesEntity", + **kwargs: Any + ) -> "_models.CsmPublishingCredentialsPoliciesEntity": + """Updates whether user publishing credentials are allowed on the site or not. + + Description for Updates whether user publishing credentials are allowed on the site or not. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param csm_publishing_access_policies_entity: + :type csm_publishing_access_policies_entity: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CsmPublishingCredentialsPoliciesEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmPublishingCredentialsPoliciesEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_scm_allowed.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(csm_publishing_access_policies_entity, 'CsmPublishingCredentialsPoliciesEntity') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CsmPublishingCredentialsPoliciesEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_scm_allowed.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/basicPublishingCredentialsPolicies/scm'} # type: ignore + + def list_configurations( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.SiteConfigResourceCollection"]: + """List the configurations of an app. + + Description for List the configurations of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SiteConfigResourceCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.SiteConfigResourceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResourceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_configurations.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SiteConfigResourceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_configurations.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config'} # type: ignore + + async def update_application_settings( + self, + resource_group_name: str, + name: str, + app_settings: "_models.StringDictionary", + **kwargs: Any + ) -> "_models.StringDictionary": + """Replaces the application settings of an app. + + Description for Replaces the application settings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param app_settings: Application settings of the app. + :type app_settings: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_application_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_settings, 'StringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_application_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/appsettings'} # type: ignore + + async def list_application_settings( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.StringDictionary": + """Gets the application settings of an app. + + Description for Gets the application settings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_application_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_application_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/appsettings/list'} # type: ignore + + async def update_auth_settings( + self, + resource_group_name: str, + name: str, + site_auth_settings: "_models.SiteAuthSettings", + **kwargs: Any + ) -> "_models.SiteAuthSettings": + """Updates the Authentication / Authorization settings associated with web app. + + Description for Updates the Authentication / Authorization settings associated with web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param site_auth_settings: Auth settings associated with web app. + :type site_auth_settings: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettings + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteAuthSettings, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettings + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteAuthSettings"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_auth_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_auth_settings, 'SiteAuthSettings') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteAuthSettings', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_auth_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/authsettings'} # type: ignore + + async def get_auth_settings( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.SiteAuthSettings": + """Gets the Authentication/Authorization settings of an app. + + Description for Gets the Authentication/Authorization settings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteAuthSettings, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettings + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteAuthSettings"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_auth_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteAuthSettings', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_auth_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/authsettings/list'} # type: ignore + + async def update_auth_settings_v2( + self, + resource_group_name: str, + name: str, + site_auth_settings_v2: "_models.SiteAuthSettingsV2", + **kwargs: Any + ) -> "_models.SiteAuthSettingsV2": + """Updates site's Authentication / Authorization settings for apps via the V2 format. + + Description for Updates site's Authentication / Authorization settings for apps via the V2 + format. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param site_auth_settings_v2: Auth settings associated with web app. + :type site_auth_settings_v2: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettingsV2 + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteAuthSettingsV2, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettingsV2 + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteAuthSettingsV2"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_auth_settings_v2.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_auth_settings_v2, 'SiteAuthSettingsV2') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteAuthSettingsV2', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_auth_settings_v2.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/authsettingsV2'} # type: ignore + + async def get_auth_settings_v2( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.SiteAuthSettingsV2": + """Gets site's Authentication / Authorization settings for apps via the V2 format. + + Description for Gets site's Authentication / Authorization settings for apps via the V2 format. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteAuthSettingsV2, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettingsV2 + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteAuthSettingsV2"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_auth_settings_v2.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteAuthSettingsV2', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_auth_settings_v2.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/authsettingsV2/list'} # type: ignore + + async def update_azure_storage_accounts( + self, + resource_group_name: str, + name: str, + azure_storage_accounts: "_models.AzureStoragePropertyDictionaryResource", + **kwargs: Any + ) -> "_models.AzureStoragePropertyDictionaryResource": + """Updates the Azure storage account configurations of an app. + + Description for Updates the Azure storage account configurations of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param azure_storage_accounts: Azure storage accounts of the app. + :type azure_storage_accounts: ~azure.mgmt.web.v2021_01_15.models.AzureStoragePropertyDictionaryResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AzureStoragePropertyDictionaryResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AzureStoragePropertyDictionaryResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AzureStoragePropertyDictionaryResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_azure_storage_accounts.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(azure_storage_accounts, 'AzureStoragePropertyDictionaryResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AzureStoragePropertyDictionaryResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_azure_storage_accounts.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/azurestorageaccounts'} # type: ignore + + async def list_azure_storage_accounts( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.AzureStoragePropertyDictionaryResource": + """Gets the Azure storage account configurations of an app. + + Description for Gets the Azure storage account configurations of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AzureStoragePropertyDictionaryResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AzureStoragePropertyDictionaryResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AzureStoragePropertyDictionaryResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_azure_storage_accounts.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AzureStoragePropertyDictionaryResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_azure_storage_accounts.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/azurestorageaccounts/list'} # type: ignore + + async def update_backup_configuration( + self, + resource_group_name: str, + name: str, + request: "_models.BackupRequest", + **kwargs: Any + ) -> "_models.BackupRequest": + """Updates the backup configuration of an app. + + Description for Updates the backup configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param request: Edited backup configuration. + :type request: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupRequest, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupRequest"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_backup_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'BackupRequest') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupRequest', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_backup_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/backup'} # type: ignore + + async def delete_backup_configuration( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> None: + """Deletes the backup configuration of an app. + + Description for Deletes the backup configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_backup_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_backup_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/backup'} # type: ignore + + async def get_backup_configuration( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.BackupRequest": + """Gets the backup configuration of an app. + + Description for Gets the backup configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupRequest, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupRequest"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_backup_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupRequest', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_backup_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/backup/list'} # type: ignore + + def get_app_settings_key_vault_references( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.ApiKVReferenceCollection"]: + """Gets the config reference app settings and status of an app. + + Description for Gets the config reference app settings and status of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ApiKVReferenceCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ApiKVReferenceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApiKVReferenceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_app_settings_key_vault_references.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ApiKVReferenceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_app_settings_key_vault_references.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/configreferences/appsettings'} # type: ignore + + async def get_app_setting_key_vault_reference( + self, + resource_group_name: str, + name: str, + app_setting_key: str, + **kwargs: Any + ) -> "_models.ApiKVReference": + """Gets the config reference and status of an app. + + Description for Gets the config reference and status of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param app_setting_key: App Setting key name. + :type app_setting_key: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ApiKVReference, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ApiKVReference + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApiKVReference"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_app_setting_key_vault_reference.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'appSettingKey': self._serialize.url("app_setting_key", app_setting_key, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ApiKVReference', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_app_setting_key_vault_reference.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/configreferences/appsettings/{appSettingKey}'} # type: ignore + + def get_site_connection_string_key_vault_references( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.ApiKVReferenceCollection"]: + """Gets the config reference app settings and status of an app. + + Description for Gets the config reference app settings and status of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ApiKVReferenceCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ApiKVReferenceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApiKVReferenceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_site_connection_string_key_vault_references.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ApiKVReferenceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_site_connection_string_key_vault_references.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/configreferences/connectionstrings'} # type: ignore + + async def get_site_connection_string_key_vault_reference( + self, + resource_group_name: str, + name: str, + connection_string_key: str, + **kwargs: Any + ) -> "_models.ApiKVReference": + """Gets the config reference and status of an app. + + Description for Gets the config reference and status of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param connection_string_key: + :type connection_string_key: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ApiKVReference, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ApiKVReference + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApiKVReference"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_connection_string_key_vault_reference.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'connectionStringKey': self._serialize.url("connection_string_key", connection_string_key, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ApiKVReference', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_connection_string_key_vault_reference.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/configreferences/connectionstrings/{connectionStringKey}'} # type: ignore + + async def update_connection_strings( + self, + resource_group_name: str, + name: str, + connection_strings: "_models.ConnectionStringDictionary", + **kwargs: Any + ) -> "_models.ConnectionStringDictionary": + """Replaces the connection strings of an app. + + Description for Replaces the connection strings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param connection_strings: Connection strings of the app or deployment slot. See example. + :type connection_strings: ~azure.mgmt.web.v2021_01_15.models.ConnectionStringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ConnectionStringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ConnectionStringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConnectionStringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_connection_strings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_strings, 'ConnectionStringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ConnectionStringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_connection_strings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/connectionstrings'} # type: ignore + + async def list_connection_strings( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.ConnectionStringDictionary": + """Gets the connection strings of an app. + + Description for Gets the connection strings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ConnectionStringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ConnectionStringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConnectionStringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_connection_strings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ConnectionStringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_connection_strings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/connectionstrings/list'} # type: ignore + + async def get_diagnostic_logs_configuration( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.SiteLogsConfig": + """Gets the logging configuration of an app. + + Description for Gets the logging configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteLogsConfig, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteLogsConfig + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteLogsConfig"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_diagnostic_logs_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteLogsConfig', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_diagnostic_logs_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/logs'} # type: ignore + + async def update_diagnostic_logs_config( + self, + resource_group_name: str, + name: str, + site_logs_config: "_models.SiteLogsConfig", + **kwargs: Any + ) -> "_models.SiteLogsConfig": + """Updates the logging configuration of an app. + + Description for Updates the logging configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param site_logs_config: A SiteLogsConfig JSON object that contains the logging configuration + to change in the "properties" property. + :type site_logs_config: ~azure.mgmt.web.v2021_01_15.models.SiteLogsConfig + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteLogsConfig, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteLogsConfig + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteLogsConfig"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_diagnostic_logs_config.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_logs_config, 'SiteLogsConfig') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteLogsConfig', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_diagnostic_logs_config.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/logs'} # type: ignore + + async def update_metadata( + self, + resource_group_name: str, + name: str, + metadata: "_models.StringDictionary", + **kwargs: Any + ) -> "_models.StringDictionary": + """Replaces the metadata of an app. + + Description for Replaces the metadata of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param metadata: Edited metadata of the app or deployment slot. See example. + :type metadata: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_metadata.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(metadata, 'StringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_metadata.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/metadata'} # type: ignore + + async def list_metadata( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.StringDictionary": + """Gets the metadata of an app. + + Description for Gets the metadata of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_metadata.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_metadata.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/metadata/list'} # type: ignore + + async def _list_publishing_credentials_initial( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.User": + cls = kwargs.pop('cls', None) # type: ClsType["_models.User"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._list_publishing_credentials_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('User', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _list_publishing_credentials_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/publishingcredentials/list'} # type: ignore + + async def begin_list_publishing_credentials( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncLROPoller["_models.User"]: + """Gets the Git/FTP publishing credentials of an app. + + Description for Gets the Git/FTP publishing credentials of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type 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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 User or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.User] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.User"] + 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._list_publishing_credentials_initial( + resource_group_name=resource_group_name, + name=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('User', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_list_publishing_credentials.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/publishingcredentials/list'} # type: ignore + + async def update_site_push_settings( + self, + resource_group_name: str, + name: str, + push_settings: "_models.PushSettings", + **kwargs: Any + ) -> "_models.PushSettings": + """Updates the Push settings associated with web app. + + Description for Updates the Push settings associated with web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param push_settings: Push settings associated with web app. + :type push_settings: ~azure.mgmt.web.v2021_01_15.models.PushSettings + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PushSettings, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PushSettings + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PushSettings"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_site_push_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(push_settings, 'PushSettings') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PushSettings', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_site_push_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/pushsettings'} # type: ignore + + async def list_site_push_settings( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.PushSettings": + """Gets the Push settings associated with web app. + + Description for Gets the Push settings associated with web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PushSettings, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PushSettings + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PushSettings"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_site_push_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PushSettings', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_site_push_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/pushsettings/list'} # type: ignore + + async def list_slot_configuration_names( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.SlotConfigNamesResource": + """Gets the names of app settings and connection strings that stick to the slot (not swapped). + + Description for Gets the names of app settings and connection strings that stick to the slot + (not swapped). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SlotConfigNamesResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SlotConfigNamesResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SlotConfigNamesResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_slot_configuration_names.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SlotConfigNamesResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_slot_configuration_names.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/slotConfigNames'} # type: ignore + + async def update_slot_configuration_names( + self, + resource_group_name: str, + name: str, + slot_config_names: "_models.SlotConfigNamesResource", + **kwargs: Any + ) -> "_models.SlotConfigNamesResource": + """Updates the names of application settings and connection string that remain with the slot during swap operation. + + Description for Updates the names of application settings and connection string that remain + with the slot during swap operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot_config_names: Names of application settings and connection strings. See example. + :type slot_config_names: ~azure.mgmt.web.v2021_01_15.models.SlotConfigNamesResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SlotConfigNamesResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SlotConfigNamesResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SlotConfigNamesResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_slot_configuration_names.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(slot_config_names, 'SlotConfigNamesResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SlotConfigNamesResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_slot_configuration_names.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/slotConfigNames'} # type: ignore + + async def get_configuration( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.SiteConfigResource": + """Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications, Always On, etc. + + Description for Gets the configuration of an app, such as platform version and bitness, default + documents, virtual applications, Always On, etc. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteConfigResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteConfigResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web'} # type: ignore + + async def create_or_update_configuration( + self, + resource_group_name: str, + name: str, + site_config: "_models.SiteConfigResource", + **kwargs: Any + ) -> "_models.SiteConfigResource": + """Updates the configuration of an app. + + Description for Updates the configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param site_config: JSON representation of a SiteConfig object. See example. + :type site_config: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteConfigResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_config, 'SiteConfigResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteConfigResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web'} # type: ignore + + async def update_configuration( + self, + resource_group_name: str, + name: str, + site_config: "_models.SiteConfigResource", + **kwargs: Any + ) -> "_models.SiteConfigResource": + """Updates the configuration of an app. + + Description for Updates the configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param site_config: JSON representation of a SiteConfig object. See example. + :type site_config: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteConfigResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_config, 'SiteConfigResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteConfigResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web'} # type: ignore + + def list_configuration_snapshot_info( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.SiteConfigurationSnapshotInfoCollection"]: + """Gets a list of web app configuration snapshots identifiers. Each element of the list contains a timestamp and the ID of the snapshot. + + Description for Gets a list of web app configuration snapshots identifiers. Each element of the + list contains a timestamp and the ID of the snapshot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SiteConfigurationSnapshotInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.SiteConfigurationSnapshotInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigurationSnapshotInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_configuration_snapshot_info.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SiteConfigurationSnapshotInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_configuration_snapshot_info.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web/snapshots'} # type: ignore + + async def get_configuration_snapshot( + self, + resource_group_name: str, + name: str, + snapshot_id: str, + **kwargs: Any + ) -> "_models.SiteConfigResource": + """Gets a snapshot of the configuration of an app at a previous point in time. + + Description for Gets a snapshot of the configuration of an app at a previous point in time. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param snapshot_id: The ID of the snapshot to read. + :type snapshot_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteConfigResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_configuration_snapshot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'snapshotId': self._serialize.url("snapshot_id", snapshot_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteConfigResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_configuration_snapshot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web/snapshots/{snapshotId}'} # type: ignore + + async def recover_site_configuration_snapshot( + self, + resource_group_name: str, + name: str, + snapshot_id: str, + **kwargs: Any + ) -> None: + """Reverts the configuration of an app to a previous snapshot. + + Description for Reverts the configuration of an app to a previous snapshot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param snapshot_id: The ID of the snapshot to read. + :type snapshot_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.recover_site_configuration_snapshot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'snapshotId': self._serialize.url("snapshot_id", snapshot_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + recover_site_configuration_snapshot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web/snapshots/{snapshotId}/recover'} # type: ignore + + async def get_web_site_container_logs( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> Optional[IO]: + """Gets the last lines of docker logs for the given site. + + Description for Gets the last lines of docker logs for the given site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO or None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Optional[IO]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/octet-stream" + + # Construct URL + url = self.get_web_site_container_logs.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + 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 = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_web_site_container_logs.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/containerlogs'} # type: ignore + + async def get_container_logs_zip( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> Optional[IO]: + """Gets the ZIP archived docker log files for the given site. + + Description for Gets the ZIP archived docker log files for the given site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO or None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Optional[IO]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/zip" + + # Construct URL + url = self.get_container_logs_zip.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + 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 = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_container_logs_zip.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/containerlogs/zip/download'} # type: ignore + + def list_continuous_web_jobs( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.ContinuousWebJobCollection"]: + """List continuous web jobs for an app, or a deployment slot. + + Description for List continuous web jobs for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ContinuousWebJobCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ContinuousWebJobCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ContinuousWebJobCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_continuous_web_jobs.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ContinuousWebJobCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_continuous_web_jobs.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/continuouswebjobs'} # type: ignore + + async def get_continuous_web_job( + self, + resource_group_name: str, + name: str, + web_job_name: str, + **kwargs: Any + ) -> "_models.ContinuousWebJob": + """Gets a continuous web job by its ID for an app, or a deployment slot. + + Description for Gets a continuous web job by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ContinuousWebJob, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ContinuousWebJob + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ContinuousWebJob"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_continuous_web_job.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ContinuousWebJob', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_continuous_web_job.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/continuouswebjobs/{webJobName}'} # type: ignore + + async def delete_continuous_web_job( + self, + resource_group_name: str, + name: str, + web_job_name: str, + **kwargs: Any + ) -> None: + """Delete a continuous web job by its ID for an app, or a deployment slot. + + Description for Delete a continuous web job by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_continuous_web_job.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_continuous_web_job.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/continuouswebjobs/{webJobName}'} # type: ignore + + async def start_continuous_web_job( + self, + resource_group_name: str, + name: str, + web_job_name: str, + **kwargs: Any + ) -> None: + """Start a continuous web job for an app, or a deployment slot. + + Description for Start a continuous web job for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.start_continuous_web_job.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + start_continuous_web_job.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/continuouswebjobs/{webJobName}/start'} # type: ignore + + async def stop_continuous_web_job( + self, + resource_group_name: str, + name: str, + web_job_name: str, + **kwargs: Any + ) -> None: + """Stop a continuous web job for an app, or a deployment slot. + + Description for Stop a continuous web job for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.stop_continuous_web_job.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + stop_continuous_web_job.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/continuouswebjobs/{webJobName}/stop'} # type: ignore + + def list_deployments( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.DeploymentCollection"]: + """List deployments for an app, or a deployment slot. + + Description for List deployments for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DeploymentCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.DeploymentCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DeploymentCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_deployments.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DeploymentCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_deployments.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/deployments'} # type: ignore + + async def get_deployment( + self, + resource_group_name: str, + name: str, + id: str, + **kwargs: Any + ) -> "_models.Deployment": + """Get a deployment by its ID for an app, or a deployment slot. + + Description for Get a deployment by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param id: Deployment ID. + :type id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Deployment, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Deployment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Deployment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_deployment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Deployment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_deployment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/deployments/{id}'} # type: ignore + + async def create_deployment( + self, + resource_group_name: str, + name: str, + id: str, + deployment: "_models.Deployment", + **kwargs: Any + ) -> "_models.Deployment": + """Create a deployment for an app, or a deployment slot. + + Description for Create a deployment for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param id: ID of an existing deployment. + :type id: str + :param deployment: Deployment details. + :type deployment: ~azure.mgmt.web.v2021_01_15.models.Deployment + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Deployment, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Deployment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Deployment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_deployment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(deployment, 'Deployment') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Deployment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_deployment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/deployments/{id}'} # type: ignore + + async def delete_deployment( + self, + resource_group_name: str, + name: str, + id: str, + **kwargs: Any + ) -> None: + """Delete a deployment by its ID for an app, or a deployment slot. + + Description for Delete a deployment by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param id: Deployment ID. + :type id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_deployment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_deployment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/deployments/{id}'} # type: ignore + + async def list_deployment_log( + self, + resource_group_name: str, + name: str, + id: str, + **kwargs: Any + ) -> "_models.Deployment": + """List deployment log for specific deployment for an app, or a deployment slot. + + Description for List deployment log for specific deployment for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param id: The ID of a specific deployment. This is the value of the name property in the JSON + response from "GET /api/sites/{siteName}/deployments". + :type id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Deployment, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Deployment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Deployment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_deployment_log.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Deployment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_deployment_log.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/deployments/{id}/log'} # type: ignore + + async def discover_backup( + self, + resource_group_name: str, + name: str, + request: "_models.RestoreRequest", + **kwargs: Any + ) -> "_models.RestoreRequest": + """Discovers an existing app backup that can be restored from a blob in Azure storage. Use this to get information about the databases stored in a backup. + + Description for Discovers an existing app backup that can be restored from a blob in Azure + storage. Use this to get information about the databases stored in a backup. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param request: A RestoreRequest object that includes Azure storage URL and blog name for + discovery of backup. + :type request: ~azure.mgmt.web.v2021_01_15.models.RestoreRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RestoreRequest, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RestoreRequest + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestoreRequest"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.discover_backup.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'RestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RestoreRequest', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + discover_backup.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/discoverbackup'} # type: ignore + + def list_domain_ownership_identifiers( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.IdentifierCollection"]: + """Lists ownership identifiers for domain associated with web app. + + Description for Lists ownership identifiers for domain associated with web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either IdentifierCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.IdentifierCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.IdentifierCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_domain_ownership_identifiers.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('IdentifierCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_domain_ownership_identifiers.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/domainOwnershipIdentifiers'} # type: ignore + + async def get_domain_ownership_identifier( + self, + resource_group_name: str, + name: str, + domain_ownership_identifier_name: str, + **kwargs: Any + ) -> "_models.Identifier": + """Get domain ownership identifier for web app. + + Description for Get domain ownership identifier for web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param domain_ownership_identifier_name: Name of domain ownership identifier. + :type domain_ownership_identifier_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Identifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Identifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Identifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_domain_ownership_identifier.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainOwnershipIdentifierName': self._serialize.url("domain_ownership_identifier_name", domain_ownership_identifier_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Identifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_domain_ownership_identifier.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/domainOwnershipIdentifiers/{domainOwnershipIdentifierName}'} # type: ignore + + async def create_or_update_domain_ownership_identifier( + self, + resource_group_name: str, + name: str, + domain_ownership_identifier_name: str, + domain_ownership_identifier: "_models.Identifier", + **kwargs: Any + ) -> "_models.Identifier": + """Creates a domain ownership identifier for web app, or updates an existing ownership identifier. + + Description for Creates a domain ownership identifier for web app, or updates an existing + ownership identifier. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param domain_ownership_identifier_name: Name of domain ownership identifier. + :type domain_ownership_identifier_name: str + :param domain_ownership_identifier: A JSON representation of the domain ownership properties. + :type domain_ownership_identifier: ~azure.mgmt.web.v2021_01_15.models.Identifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Identifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Identifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Identifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_domain_ownership_identifier.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainOwnershipIdentifierName': self._serialize.url("domain_ownership_identifier_name", domain_ownership_identifier_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(domain_ownership_identifier, 'Identifier') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Identifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_domain_ownership_identifier.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/domainOwnershipIdentifiers/{domainOwnershipIdentifierName}'} # type: ignore + + async def delete_domain_ownership_identifier( + self, + resource_group_name: str, + name: str, + domain_ownership_identifier_name: str, + **kwargs: Any + ) -> None: + """Deletes a domain ownership identifier for a web app. + + Description for Deletes a domain ownership identifier for a web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param domain_ownership_identifier_name: Name of domain ownership identifier. + :type domain_ownership_identifier_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_domain_ownership_identifier.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainOwnershipIdentifierName': self._serialize.url("domain_ownership_identifier_name", domain_ownership_identifier_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_domain_ownership_identifier.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/domainOwnershipIdentifiers/{domainOwnershipIdentifierName}'} # type: ignore + + async def update_domain_ownership_identifier( + self, + resource_group_name: str, + name: str, + domain_ownership_identifier_name: str, + domain_ownership_identifier: "_models.Identifier", + **kwargs: Any + ) -> "_models.Identifier": + """Creates a domain ownership identifier for web app, or updates an existing ownership identifier. + + Description for Creates a domain ownership identifier for web app, or updates an existing + ownership identifier. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param domain_ownership_identifier_name: Name of domain ownership identifier. + :type domain_ownership_identifier_name: str + :param domain_ownership_identifier: A JSON representation of the domain ownership properties. + :type domain_ownership_identifier: ~azure.mgmt.web.v2021_01_15.models.Identifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Identifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Identifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Identifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_domain_ownership_identifier.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainOwnershipIdentifierName': self._serialize.url("domain_ownership_identifier_name", domain_ownership_identifier_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(domain_ownership_identifier, 'Identifier') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Identifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_domain_ownership_identifier.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/domainOwnershipIdentifiers/{domainOwnershipIdentifierName}'} # type: ignore + + async def get_ms_deploy_status( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.MSDeployStatus": + """Get the status of the last MSDeploy operation. + + Description for Get the status of the last MSDeploy operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MSDeployStatus, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MSDeployStatus + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_ms_deploy_status.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_ms_deploy_status.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/extensions/MSDeploy'} # type: ignore + + async def _create_ms_deploy_operation_initial( + self, + resource_group_name: str, + name: str, + ms_deploy: "_models.MSDeploy", + **kwargs: Any + ) -> "_models.MSDeployStatus": + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_ms_deploy_operation_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(ms_deploy, 'MSDeploy') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_ms_deploy_operation_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/extensions/MSDeploy'} # type: ignore + + async def begin_create_ms_deploy_operation( + self, + resource_group_name: str, + name: str, + ms_deploy: "_models.MSDeploy", + **kwargs: Any + ) -> AsyncLROPoller["_models.MSDeployStatus"]: + """Invoke the MSDeploy web app extension. + + Description for Invoke the MSDeploy web app extension. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param ms_deploy: Details of MSDeploy operation. + :type ms_deploy: ~azure.mgmt.web.v2021_01_15.models.MSDeploy + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 MSDeployStatus or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.MSDeployStatus] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + 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_ms_deploy_operation_initial( + resource_group_name=resource_group_name, + name=name, + ms_deploy=ms_deploy, + 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('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_ms_deploy_operation.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/extensions/MSDeploy'} # type: ignore + + async def get_ms_deploy_log( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.MSDeployLog": + """Get the MSDeploy Log for the last MSDeploy operation. + + Description for Get the MSDeploy Log for the last MSDeploy operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MSDeployLog, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MSDeployLog + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployLog"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_ms_deploy_log.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployLog', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_ms_deploy_log.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/extensions/MSDeploy/log'} # type: ignore + + def list_functions( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.FunctionEnvelopeCollection"]: + """List the functions for a web site, or a deployment slot. + + Description for List the functions for a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either FunctionEnvelopeCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.FunctionEnvelopeCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionEnvelopeCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_functions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('FunctionEnvelopeCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_functions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions'} # type: ignore + + async def get_functions_admin_token( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> str: + """Fetch a short lived token that can be exchanged for a master key. + + Description for Fetch a short lived token that can be exchanged for a master key. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: str, or the result of cls(response) + :rtype: str + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[str] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_functions_admin_token.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('str', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_functions_admin_token.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/admin/token'} # type: ignore + + async def get_function( + self, + resource_group_name: str, + name: str, + function_name: str, + **kwargs: Any + ) -> "_models.FunctionEnvelope": + """Get function information by its ID for web site, or a deployment slot. + + Description for Get function information by its ID for web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: FunctionEnvelope, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.FunctionEnvelope + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionEnvelope"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_function.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('FunctionEnvelope', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_function.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/{functionName}'} # type: ignore + + async def _create_function_initial( + self, + resource_group_name: str, + name: str, + function_name: str, + function_envelope: "_models.FunctionEnvelope", + **kwargs: Any + ) -> "_models.FunctionEnvelope": + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionEnvelope"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_function_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(function_envelope, 'FunctionEnvelope') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('FunctionEnvelope', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_function_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/{functionName}'} # type: ignore + + async def begin_create_function( + self, + resource_group_name: str, + name: str, + function_name: str, + function_envelope: "_models.FunctionEnvelope", + **kwargs: Any + ) -> AsyncLROPoller["_models.FunctionEnvelope"]: + """Create function for web site, or a deployment slot. + + Description for Create function for web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :param function_envelope: Function details. + :type function_envelope: ~azure.mgmt.web.v2021_01_15.models.FunctionEnvelope + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 FunctionEnvelope or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.FunctionEnvelope] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionEnvelope"] + 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_function_initial( + resource_group_name=resource_group_name, + name=name, + function_name=function_name, + function_envelope=function_envelope, + 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('FunctionEnvelope', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_function.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/{functionName}'} # type: ignore + + async def delete_function( + self, + resource_group_name: str, + name: str, + function_name: str, + **kwargs: Any + ) -> None: + """Delete a function for web site, or a deployment slot. + + Description for Delete a function for web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_function.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_function.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/{functionName}'} # type: ignore + + async def create_or_update_function_secret( + self, + resource_group_name: str, + name: str, + function_name: str, + key_name: str, + key: "_models.KeyInfo", + **kwargs: Any + ) -> "_models.KeyInfo": + """Add or update a function secret. + + Description for Add or update a function secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: The name of the function. + :type function_name: str + :param key_name: The name of the key. + :type key_name: str + :param key: The key to create or update. + :type key: ~azure.mgmt.web.v2021_01_15.models.KeyInfo + :keyword callable cls: A custom type or function that will be passed the direct response + :return: KeyInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.KeyInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.KeyInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_function_secret.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(key, 'KeyInfo') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('KeyInfo', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('KeyInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_function_secret.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/{functionName}/keys/{keyName}'} # type: ignore + + async def delete_function_secret( + self, + resource_group_name: str, + name: str, + function_name: str, + key_name: str, + **kwargs: Any + ) -> None: + """Delete a function secret. + + Description for Delete a function secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: The name of the function. + :type function_name: str + :param key_name: The name of the key. + :type key_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_function_secret.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_function_secret.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/{functionName}/keys/{keyName}'} # type: ignore + + async def list_function_keys( + self, + resource_group_name: str, + name: str, + function_name: str, + **kwargs: Any + ) -> "_models.StringDictionary": + """Get function keys for a function in a web site, or a deployment slot. + + Description for Get function keys for a function in a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_function_keys.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_function_keys.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/{functionName}/listkeys'} # type: ignore + + async def list_function_secrets( + self, + resource_group_name: str, + name: str, + function_name: str, + **kwargs: Any + ) -> "_models.FunctionSecrets": + """Get function secrets for a function in a web site, or a deployment slot. + + Description for Get function secrets for a function in a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: FunctionSecrets, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.FunctionSecrets + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionSecrets"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_function_secrets.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('FunctionSecrets', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_function_secrets.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/{functionName}/listsecrets'} # type: ignore + + async def list_host_keys( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.HostKeys": + """Get host secrets for a function app. + + Description for Get host secrets for a function app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HostKeys, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HostKeys + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostKeys"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_host_keys.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HostKeys', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_host_keys.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/host/default/listkeys'} # type: ignore + + async def list_sync_status( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> None: + """This is to allow calling via powershell and ARM template. + + Description for This is to allow calling via powershell and ARM template. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.list_sync_status.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + list_sync_status.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/host/default/listsyncstatus'} # type: ignore + + async def sync_functions( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> None: + """Syncs function trigger metadata to the management database. + + Description for Syncs function trigger metadata to the management database. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.sync_functions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + sync_functions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/host/default/sync'} # type: ignore + + async def create_or_update_host_secret( + self, + resource_group_name: str, + name: str, + key_type: str, + key_name: str, + key: "_models.KeyInfo", + **kwargs: Any + ) -> "_models.KeyInfo": + """Add or update a host level secret. + + Description for Add or update a host level secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param key_type: The type of host key. + :type key_type: str + :param key_name: The name of the key. + :type key_name: str + :param key: The key to create or update. + :type key: ~azure.mgmt.web.v2021_01_15.models.KeyInfo + :keyword callable cls: A custom type or function that will be passed the direct response + :return: KeyInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.KeyInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.KeyInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_host_secret.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'keyType': self._serialize.url("key_type", key_type, 'str'), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(key, 'KeyInfo') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('KeyInfo', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('KeyInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_host_secret.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/host/default/{keyType}/{keyName}'} # type: ignore + + async def delete_host_secret( + self, + resource_group_name: str, + name: str, + key_type: str, + key_name: str, + **kwargs: Any + ) -> None: + """Delete a host level secret. + + Description for Delete a host level secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param key_type: The type of host key. + :type key_type: str + :param key_name: The name of the key. + :type key_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_host_secret.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'keyType': self._serialize.url("key_type", key_type, 'str'), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_host_secret.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/host/default/{keyType}/{keyName}'} # type: ignore + + def list_host_name_bindings( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.HostNameBindingCollection"]: + """Get hostname bindings for an app or a deployment slot. + + Description for Get hostname bindings for an app or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either HostNameBindingCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.HostNameBindingCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostNameBindingCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_host_name_bindings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('HostNameBindingCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_host_name_bindings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hostNameBindings'} # type: ignore + + async def get_host_name_binding( + self, + resource_group_name: str, + name: str, + host_name: str, + **kwargs: Any + ) -> "_models.HostNameBinding": + """Get the named hostname binding for an app (or deployment slot, if specified). + + Description for Get the named hostname binding for an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param host_name: Hostname in the hostname binding. + :type host_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HostNameBinding, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HostNameBinding + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostNameBinding"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_host_name_binding.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'hostName': self._serialize.url("host_name", host_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HostNameBinding', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_host_name_binding.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hostNameBindings/{hostName}'} # type: ignore + + async def create_or_update_host_name_binding( + self, + resource_group_name: str, + name: str, + host_name: str, + host_name_binding: "_models.HostNameBinding", + **kwargs: Any + ) -> "_models.HostNameBinding": + """Creates a hostname binding for an app. + + Description for Creates a hostname binding for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param host_name: Hostname in the hostname binding. + :type host_name: str + :param host_name_binding: Binding details. This is the JSON representation of a HostNameBinding + object. + :type host_name_binding: ~azure.mgmt.web.v2021_01_15.models.HostNameBinding + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HostNameBinding, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HostNameBinding + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostNameBinding"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_host_name_binding.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'hostName': self._serialize.url("host_name", host_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(host_name_binding, 'HostNameBinding') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HostNameBinding', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_host_name_binding.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hostNameBindings/{hostName}'} # type: ignore + + async def delete_host_name_binding( + self, + resource_group_name: str, + name: str, + host_name: str, + **kwargs: Any + ) -> None: + """Deletes a hostname binding for an app. + + Description for Deletes a hostname binding for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param host_name: Hostname in the hostname binding. + :type host_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_host_name_binding.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'hostName': self._serialize.url("host_name", host_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_host_name_binding.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hostNameBindings/{hostName}'} # type: ignore + + async def get_hybrid_connection( + self, + resource_group_name: str, + name: str, + namespace_name: str, + relay_name: str, + **kwargs: Any + ) -> "_models.HybridConnection": + """Retrieves a specific Service Bus Hybrid Connection used by this Web App. + + Description for Retrieves a specific Service Bus Hybrid Connection used by this Web App. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param namespace_name: The namespace for this hybrid connection. + :type namespace_name: str + :param relay_name: The relay name for this hybrid connection. + :type relay_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_hybrid_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_hybrid_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + async def create_or_update_hybrid_connection( + self, + resource_group_name: str, + name: str, + namespace_name: str, + relay_name: str, + connection_envelope: "_models.HybridConnection", + **kwargs: Any + ) -> "_models.HybridConnection": + """Creates a new Hybrid Connection using a Service Bus relay. + + Description for Creates a new Hybrid Connection using a Service Bus relay. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param namespace_name: The namespace for this hybrid connection. + :type namespace_name: str + :param relay_name: The relay name for this hybrid connection. + :type relay_name: str + :param connection_envelope: The details of the hybrid connection. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_hybrid_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'HybridConnection') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_hybrid_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + async def delete_hybrid_connection( + self, + resource_group_name: str, + name: str, + namespace_name: str, + relay_name: str, + **kwargs: Any + ) -> None: + """Removes a Hybrid Connection from this site. + + Description for Removes a Hybrid Connection from this site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param namespace_name: The namespace for this hybrid connection. + :type namespace_name: str + :param relay_name: The relay name for this hybrid connection. + :type relay_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_hybrid_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_hybrid_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + async def update_hybrid_connection( + self, + resource_group_name: str, + name: str, + namespace_name: str, + relay_name: str, + connection_envelope: "_models.HybridConnection", + **kwargs: Any + ) -> "_models.HybridConnection": + """Creates a new Hybrid Connection using a Service Bus relay. + + Description for Creates a new Hybrid Connection using a Service Bus relay. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param namespace_name: The namespace for this hybrid connection. + :type namespace_name: str + :param relay_name: The relay name for this hybrid connection. + :type relay_name: str + :param connection_envelope: The details of the hybrid connection. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_hybrid_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'HybridConnection') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_hybrid_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + async def list_hybrid_connections( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.HybridConnection": + """Retrieves all Service Bus Hybrid Connections used by this Web App. + + Description for Retrieves all Service Bus Hybrid Connections used by this Web App. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_hybrid_connections.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_hybrid_connections.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridConnectionRelays'} # type: ignore + + async def list_relay_service_connections( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.RelayServiceConnectionEntity": + """Gets hybrid connections configured for an app (or deployment slot, if specified). + + Description for Gets hybrid connections configured for an app (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RelayServiceConnectionEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RelayServiceConnectionEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_relay_service_connections.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RelayServiceConnectionEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_relay_service_connections.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridconnection'} # type: ignore + + async def get_relay_service_connection( + self, + resource_group_name: str, + name: str, + entity_name: str, + **kwargs: Any + ) -> "_models.RelayServiceConnectionEntity": + """Gets a hybrid connection configuration by its name. + + Description for Gets a hybrid connection configuration by its name. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param entity_name: Name of the hybrid connection. + :type entity_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RelayServiceConnectionEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RelayServiceConnectionEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_relay_service_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'entityName': self._serialize.url("entity_name", entity_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RelayServiceConnectionEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_relay_service_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridconnection/{entityName}'} # type: ignore + + async def create_or_update_relay_service_connection( + self, + resource_group_name: str, + name: str, + entity_name: str, + connection_envelope: "_models.RelayServiceConnectionEntity", + **kwargs: Any + ) -> "_models.RelayServiceConnectionEntity": + """Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH). + + Description for Creates a new hybrid connection configuration (PUT), or updates an existing one + (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param entity_name: Name of the hybrid connection configuration. + :type entity_name: str + :param connection_envelope: Details of the hybrid connection configuration. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RelayServiceConnectionEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RelayServiceConnectionEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_relay_service_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'entityName': self._serialize.url("entity_name", entity_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'RelayServiceConnectionEntity') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RelayServiceConnectionEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_relay_service_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridconnection/{entityName}'} # type: ignore + + async def delete_relay_service_connection( + self, + resource_group_name: str, + name: str, + entity_name: str, + **kwargs: Any + ) -> None: + """Deletes a relay service connection by its name. + + Description for Deletes a relay service connection by its name. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param entity_name: Name of the hybrid connection configuration. + :type entity_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_relay_service_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'entityName': self._serialize.url("entity_name", entity_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_relay_service_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridconnection/{entityName}'} # type: ignore + + async def update_relay_service_connection( + self, + resource_group_name: str, + name: str, + entity_name: str, + connection_envelope: "_models.RelayServiceConnectionEntity", + **kwargs: Any + ) -> "_models.RelayServiceConnectionEntity": + """Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH). + + Description for Creates a new hybrid connection configuration (PUT), or updates an existing one + (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param entity_name: Name of the hybrid connection configuration. + :type entity_name: str + :param connection_envelope: Details of the hybrid connection configuration. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RelayServiceConnectionEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RelayServiceConnectionEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_relay_service_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'entityName': self._serialize.url("entity_name", entity_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'RelayServiceConnectionEntity') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RelayServiceConnectionEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_relay_service_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridconnection/{entityName}'} # type: ignore + + def list_instance_identifiers( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.WebAppInstanceStatusCollection"]: + """Gets all scale-out instances of an app. + + Description for Gets all scale-out instances of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppInstanceStatusCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppInstanceStatusCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppInstanceStatusCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_identifiers.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('WebAppInstanceStatusCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_instance_identifiers.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances'} # type: ignore + + async def get_instance_info( + self, + resource_group_name: str, + name: str, + instance_id: str, + **kwargs: Any + ) -> "_models.WebSiteInstanceStatus": + """Gets all scale-out instances of an app. + + Description for Gets all scale-out instances of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param instance_id: + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: WebSiteInstanceStatus, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.WebSiteInstanceStatus + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebSiteInstanceStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_info.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('WebSiteInstanceStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_info.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}'} # type: ignore + + async def get_instance_ms_deploy_status( + self, + resource_group_name: str, + name: str, + instance_id: str, + **kwargs: Any + ) -> "_models.MSDeployStatus": + """Get the status of the last MSDeploy operation. + + Description for Get the status of the last MSDeploy operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param instance_id: ID of web app instance. + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MSDeployStatus, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MSDeployStatus + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_ms_deploy_status.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_ms_deploy_status.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/extensions/MSDeploy'} # type: ignore + + async def _create_instance_ms_deploy_operation_initial( + self, + resource_group_name: str, + name: str, + instance_id: str, + ms_deploy: "_models.MSDeploy", + **kwargs: Any + ) -> "_models.MSDeployStatus": + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_instance_ms_deploy_operation_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(ms_deploy, 'MSDeploy') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_instance_ms_deploy_operation_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/extensions/MSDeploy'} # type: ignore + + async def begin_create_instance_ms_deploy_operation( + self, + resource_group_name: str, + name: str, + instance_id: str, + ms_deploy: "_models.MSDeploy", + **kwargs: Any + ) -> AsyncLROPoller["_models.MSDeployStatus"]: + """Invoke the MSDeploy web app extension. + + Description for Invoke the MSDeploy web app extension. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param instance_id: ID of web app instance. + :type instance_id: str + :param ms_deploy: Details of MSDeploy operation. + :type ms_deploy: ~azure.mgmt.web.v2021_01_15.models.MSDeploy + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 MSDeployStatus or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.MSDeployStatus] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + 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_instance_ms_deploy_operation_initial( + resource_group_name=resource_group_name, + name=name, + instance_id=instance_id, + ms_deploy=ms_deploy, + 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('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_instance_ms_deploy_operation.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/extensions/MSDeploy'} # type: ignore + + async def get_instance_ms_deploy_log( + self, + resource_group_name: str, + name: str, + instance_id: str, + **kwargs: Any + ) -> "_models.MSDeployLog": + """Get the MSDeploy Log for the last MSDeploy operation. + + Description for Get the MSDeploy Log for the last MSDeploy operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param instance_id: ID of web app instance. + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MSDeployLog, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MSDeployLog + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployLog"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_ms_deploy_log.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployLog', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_ms_deploy_log.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/extensions/MSDeploy/log'} # type: ignore + + def list_instance_processes( + self, + resource_group_name: str, + name: str, + instance_id: str, + **kwargs: Any + ) -> AsyncIterable["_models.ProcessInfoCollection"]: + """Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site. + + Description for Get list of processes for a web site, or a deployment slot, or for a specific + scaled-out instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :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 ProcessInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_processes.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_instance_processes.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/processes'} # type: ignore + + async def get_instance_process( + self, + resource_group_name: str, + name: str, + process_id: str, + instance_id: str, + **kwargs: Any + ) -> "_models.ProcessInfo": + """Get process information by its ID for a specific scaled-out instance in a web site. + + Description for Get process information by its ID for a specific scaled-out instance in a web + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ProcessInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ProcessInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_process.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ProcessInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_process.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/processes/{processId}'} # type: ignore + + async def delete_instance_process( + self, + resource_group_name: str, + name: str, + process_id: str, + instance_id: str, + **kwargs: Any + ) -> None: + """Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web site. + + Description for Terminate a process by its ID for a web site, or a deployment slot, or specific + scaled-out instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_instance_process.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_instance_process.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/processes/{processId}'} # type: ignore + + async def get_instance_process_dump( + self, + resource_group_name: str, + name: str, + process_id: str, + instance_id: str, + **kwargs: Any + ) -> IO: + """Get a memory dump of a process by its ID for a specific scaled-out instance in a web site. + + Description for Get a memory dump of a process by its ID for a specific scaled-out instance in + a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[IO] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_process_dump.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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=True, **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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_process_dump.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/processes/{processId}/dump'} # type: ignore + + def list_instance_process_modules( + self, + resource_group_name: str, + name: str, + process_id: str, + instance_id: str, + **kwargs: Any + ) -> AsyncIterable["_models.ProcessModuleInfoCollection"]: + """List module information for a process by its ID for a specific scaled-out instance in a web site. + + Description for List module information for a process by its ID for a specific scaled-out + instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :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 ProcessModuleInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessModuleInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_process_modules.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessModuleInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_instance_process_modules.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/processes/{processId}/modules'} # type: ignore + + async def get_instance_process_module( + self, + resource_group_name: str, + name: str, + process_id: str, + base_address: str, + instance_id: str, + **kwargs: Any + ) -> "_models.ProcessModuleInfo": + """Get process information by its ID for a specific scaled-out instance in a web site. + + Description for Get process information by its ID for a specific scaled-out instance in a web + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param base_address: Module base address. + :type base_address: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ProcessModuleInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessModuleInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_process_module.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'baseAddress': self._serialize.url("base_address", base_address, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ProcessModuleInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_process_module.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/processes/{processId}/modules/{baseAddress}'} # type: ignore + + def list_instance_process_threads( + self, + resource_group_name: str, + name: str, + process_id: str, + instance_id: str, + **kwargs: Any + ) -> AsyncIterable["_models.ProcessThreadInfoCollection"]: + """List the threads in a process by its ID for a specific scaled-out instance in a web site. + + Description for List the threads in a process by its ID for a specific scaled-out instance in a + web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :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 ProcessThreadInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessThreadInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessThreadInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_process_threads.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessThreadInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_instance_process_threads.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/processes/{processId}/threads'} # type: ignore + + async def is_cloneable( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.SiteCloneability": + """Shows whether an app can be cloned to another resource group or subscription. + + Description for Shows whether an app can be cloned to another resource group or subscription. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteCloneability, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteCloneability + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteCloneability"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.is_cloneable.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteCloneability', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + is_cloneable.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/iscloneable'} # type: ignore + + def list_site_backups( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.BackupItemCollection"]: + """Gets existing backups of an app. + + Description for Gets existing backups of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either BackupItemCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.BackupItemCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItemCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_backups.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(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('BackupItemCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_site_backups.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/listbackups'} # type: ignore + + async def list_sync_function_triggers( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.FunctionSecrets": + """This is to allow calling via powershell and ARM template. + + Description for This is to allow calling via powershell and ARM template. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: FunctionSecrets, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.FunctionSecrets + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionSecrets"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_sync_function_triggers.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('FunctionSecrets', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_sync_function_triggers.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/listsyncfunctiontriggerstatus'} # type: ignore + + async def _migrate_storage_initial( + self, + subscription_name: str, + resource_group_name: str, + name: str, + migration_options: "_models.StorageMigrationOptions", + **kwargs: Any + ) -> "_models.StorageMigrationResponse": + cls = kwargs.pop('cls', None) # type: ClsType["_models.StorageMigrationResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._migrate_storage_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['subscriptionName'] = self._serialize.query("subscription_name", subscription_name, 'str') + 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(migration_options, 'StorageMigrationOptions') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StorageMigrationResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _migrate_storage_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/migrate'} # type: ignore + + async def begin_migrate_storage( + self, + subscription_name: str, + resource_group_name: str, + name: str, + migration_options: "_models.StorageMigrationOptions", + **kwargs: Any + ) -> AsyncLROPoller["_models.StorageMigrationResponse"]: + """Restores a web app. + + Description for Restores a web app. + + :param subscription_name: Azure subscription. + :type subscription_name: str + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param migration_options: Migration migrationOptions. + :type migration_options: ~azure.mgmt.web.v2021_01_15.models.StorageMigrationOptions + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 StorageMigrationResponse or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.StorageMigrationResponse] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.StorageMigrationResponse"] + 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._migrate_storage_initial( + subscription_name=subscription_name, + resource_group_name=resource_group_name, + name=name, + migration_options=migration_options, + 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('StorageMigrationResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_migrate_storage.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/migrate'} # type: ignore + + async def _migrate_my_sql_initial( + self, + resource_group_name: str, + name: str, + migration_request_envelope: "_models.MigrateMySqlRequest", + **kwargs: Any + ) -> "_models.Operation": + cls = kwargs.pop('cls', None) # type: ClsType["_models.Operation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._migrate_my_sql_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(migration_request_envelope, 'MigrateMySqlRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Operation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _migrate_my_sql_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/migratemysql'} # type: ignore + + async def begin_migrate_my_sql( + self, + resource_group_name: str, + name: str, + migration_request_envelope: "_models.MigrateMySqlRequest", + **kwargs: Any + ) -> AsyncLROPoller["_models.Operation"]: + """Migrates a local (in-app) MySql database to a remote MySql database. + + Description for Migrates a local (in-app) MySql database to a remote MySql database. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param migration_request_envelope: MySql migration options. + :type migration_request_envelope: ~azure.mgmt.web.v2021_01_15.models.MigrateMySqlRequest + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 Operation or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.Operation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Operation"] + 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._migrate_my_sql_initial( + resource_group_name=resource_group_name, + name=name, + migration_request_envelope=migration_request_envelope, + 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('Operation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_migrate_my_sql.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/migratemysql'} # type: ignore + + async def get_migrate_my_sql_status( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.MigrateMySqlStatus": + """Returns the status of MySql in app migration, if one is active, and whether or not MySql in app is enabled. + + Description for Returns the status of MySql in app migration, if one is active, and whether or + not MySql in app is enabled. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MigrateMySqlStatus, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MigrateMySqlStatus + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MigrateMySqlStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_migrate_my_sql_status.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MigrateMySqlStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_migrate_my_sql_status.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/migratemysql/status'} # type: ignore + + async def get_swift_virtual_network_connection( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.SwiftVirtualNetwork": + """Gets a Swift Virtual Network connection. + + Description for Gets a Swift Virtual Network connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SwiftVirtualNetwork, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SwiftVirtualNetwork"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_swift_virtual_network_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SwiftVirtualNetwork', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_swift_virtual_network_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkConfig/virtualNetwork'} # type: ignore + + async def create_or_update_swift_virtual_network_connection_with_check( + self, + resource_group_name: str, + name: str, + connection_envelope: "_models.SwiftVirtualNetwork", + **kwargs: Any + ) -> "_models.SwiftVirtualNetwork": + """Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not + in use by another App Service Plan other than the one this App is in. + + Description for Integrates this Web App with a Virtual Network. This requires that 1) + "swiftSupported" is true when doing a GET against this resource, and 2) that the target Subnet + has already been delegated, and is not + in use by another App Service Plan other than the one this App is in. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param connection_envelope: Properties of the Virtual Network connection. See example. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SwiftVirtualNetwork, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SwiftVirtualNetwork"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_swift_virtual_network_connection_with_check.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'SwiftVirtualNetwork') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SwiftVirtualNetwork', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_swift_virtual_network_connection_with_check.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkConfig/virtualNetwork'} # type: ignore + + async def delete_swift_virtual_network( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> None: + """Deletes a Swift Virtual Network connection from an app (or deployment slot). + + Description for Deletes a Swift Virtual Network connection from an app (or deployment slot). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_swift_virtual_network.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_swift_virtual_network.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkConfig/virtualNetwork'} # type: ignore + + async def update_swift_virtual_network_connection_with_check( + self, + resource_group_name: str, + name: str, + connection_envelope: "_models.SwiftVirtualNetwork", + **kwargs: Any + ) -> "_models.SwiftVirtualNetwork": + """Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not + in use by another App Service Plan other than the one this App is in. + + Description for Integrates this Web App with a Virtual Network. This requires that 1) + "swiftSupported" is true when doing a GET against this resource, and 2) that the target Subnet + has already been delegated, and is not + in use by another App Service Plan other than the one this App is in. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param connection_envelope: Properties of the Virtual Network connection. See example. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SwiftVirtualNetwork, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SwiftVirtualNetwork"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_swift_virtual_network_connection_with_check.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'SwiftVirtualNetwork') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SwiftVirtualNetwork', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_swift_virtual_network_connection_with_check.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkConfig/virtualNetwork'} # type: ignore + + async def list_network_features( + self, + resource_group_name: str, + name: str, + view: str, + **kwargs: Any + ) -> "_models.NetworkFeatures": + """Gets all network features used by the app (or deployment slot, if specified). + + Description for Gets all network features used by the app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param view: The type of view. Only "summary" is supported at this time. + :type view: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkFeatures, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.NetworkFeatures + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.NetworkFeatures"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_network_features.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'view': self._serialize.url("view", view, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('NetworkFeatures', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_network_features.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkFeatures/{view}'} # type: ignore + + async def get_network_trace_operation( + self, + resource_group_name: str, + name: str, + operation_id: str, + **kwargs: Any + ) -> List["_models.NetworkTrace"]: + """Gets a named operation for a network trace capturing (or deployment slot, if specified). + + Description for Gets a named operation for a network trace capturing (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param operation_id: GUID of the operation. + :type operation_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of NetworkTrace, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_network_trace_operation.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_network_trace_operation.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkTrace/operationresults/{operationId}'} # type: ignore + + async def start_web_site_network_trace( + self, + resource_group_name: str, + name: str, + duration_in_seconds: Optional[int] = None, + max_frame_length: Optional[int] = None, + sas_url: Optional[str] = None, + **kwargs: Any + ) -> str: + """Start capturing network packets for the site (To be deprecated). + + Description for Start capturing network packets for the site (To be deprecated). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param duration_in_seconds: The duration to keep capturing in seconds. + :type duration_in_seconds: int + :param max_frame_length: The maximum frame length in bytes (Optional). + :type max_frame_length: int + :param sas_url: The Blob URL to store capture file. + :type sas_url: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: str, or the result of cls(response) + :rtype: str + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[str] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.start_web_site_network_trace.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if duration_in_seconds is not None: + query_parameters['durationInSeconds'] = self._serialize.query("duration_in_seconds", duration_in_seconds, 'int') + if max_frame_length is not None: + query_parameters['maxFrameLength'] = self._serialize.query("max_frame_length", max_frame_length, 'int') + if sas_url is not None: + query_parameters['sasUrl'] = self._serialize.query("sas_url", sas_url, 'str') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('str', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + start_web_site_network_trace.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkTrace/start'} # type: ignore + + async def _start_web_site_network_trace_operation_initial( + self, + resource_group_name: str, + name: str, + duration_in_seconds: Optional[int] = None, + max_frame_length: Optional[int] = None, + sas_url: Optional[str] = None, + **kwargs: Any + ) -> List["_models.NetworkTrace"]: + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._start_web_site_network_trace_operation_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if duration_in_seconds is not None: + query_parameters['durationInSeconds'] = self._serialize.query("duration_in_seconds", duration_in_seconds, 'int') + if max_frame_length is not None: + query_parameters['maxFrameLength'] = self._serialize.query("max_frame_length", max_frame_length, 'int') + if sas_url is not None: + query_parameters['sasUrl'] = self._serialize.query("sas_url", sas_url, 'str') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _start_web_site_network_trace_operation_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkTrace/startOperation'} # type: ignore + + async def begin_start_web_site_network_trace_operation( + self, + resource_group_name: str, + name: str, + duration_in_seconds: Optional[int] = None, + max_frame_length: Optional[int] = None, + sas_url: Optional[str] = None, + **kwargs: Any + ) -> AsyncLROPoller[List["_models.NetworkTrace"]]: + """Start capturing network packets for the site. + + Description for Start capturing network packets for the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param duration_in_seconds: The duration to keep capturing in seconds. + :type duration_in_seconds: int + :param max_frame_length: The maximum frame length in bytes (Optional). + :type max_frame_length: int + :param sas_url: The Blob URL to store capture file. + :type sas_url: 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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 list of NetworkTrace or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace]] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + 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._start_web_site_network_trace_operation_initial( + resource_group_name=resource_group_name, + name=name, + duration_in_seconds=duration_in_seconds, + max_frame_length=max_frame_length, + sas_url=sas_url, + 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('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_start_web_site_network_trace_operation.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkTrace/startOperation'} # type: ignore + + async def stop_web_site_network_trace( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> None: + """Stop ongoing capturing network packets for the site. + + Description for Stop ongoing capturing network packets for the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.stop_web_site_network_trace.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + stop_web_site_network_trace.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkTrace/stop'} # type: ignore + + async def get_network_traces( + self, + resource_group_name: str, + name: str, + operation_id: str, + **kwargs: Any + ) -> List["_models.NetworkTrace"]: + """Gets a named operation for a network trace capturing (or deployment slot, if specified). + + Description for Gets a named operation for a network trace capturing (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param operation_id: GUID of the operation. + :type operation_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of NetworkTrace, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_network_traces.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_network_traces.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkTrace/{operationId}'} # type: ignore + + async def get_network_trace_operation_v2( + self, + resource_group_name: str, + name: str, + operation_id: str, + **kwargs: Any + ) -> List["_models.NetworkTrace"]: + """Gets a named operation for a network trace capturing (or deployment slot, if specified). + + Description for Gets a named operation for a network trace capturing (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param operation_id: GUID of the operation. + :type operation_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of NetworkTrace, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_network_trace_operation_v2.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_network_trace_operation_v2.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkTraces/current/operationresults/{operationId}'} # type: ignore + + async def get_network_traces_v2( + self, + resource_group_name: str, + name: str, + operation_id: str, + **kwargs: Any + ) -> List["_models.NetworkTrace"]: + """Gets a named operation for a network trace capturing (or deployment slot, if specified). + + Description for Gets a named operation for a network trace capturing (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param operation_id: GUID of the operation. + :type operation_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of NetworkTrace, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_network_traces_v2.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_network_traces_v2.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkTraces/{operationId}'} # type: ignore + + async def generate_new_site_publishing_password( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> None: + """Generates a new publishing password for an app (or deployment slot, if specified). + + Description for Generates a new publishing password for an app (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.generate_new_site_publishing_password.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + generate_new_site_publishing_password.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/newpassword'} # type: ignore + + def list_perf_mon_counters( + self, + resource_group_name: str, + name: str, + filter: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.PerfMonCounterCollection"]: + """Gets perfmon counters for web app. + + Description for Gets perfmon counters for web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param filter: Return only usages/metrics specified in the filter. Filter conforms to odata + syntax. Example: $filter=(startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z + and timeGrain eq duration'[Hour|Minute|Day]'. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PerfMonCounterCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.PerfMonCounterCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PerfMonCounterCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_perf_mon_counters.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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 filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('PerfMonCounterCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_perf_mon_counters.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/perfcounters'} # type: ignore + + async def get_site_php_error_log_flag( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.SitePhpErrorLogFlag": + """Gets web app's event logs. + + Description for Gets web app's event logs. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SitePhpErrorLogFlag, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SitePhpErrorLogFlag + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SitePhpErrorLogFlag"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_php_error_log_flag.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SitePhpErrorLogFlag', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_php_error_log_flag.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/phplogging'} # type: ignore + + async def list_premier_add_ons( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.PremierAddOn": + """Gets the premier add-ons of an app. + + Description for Gets the premier add-ons of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PremierAddOn, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOn"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_premier_add_ons.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PremierAddOn', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_premier_add_ons.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/premieraddons'} # type: ignore + + async def get_premier_add_on( + self, + resource_group_name: str, + name: str, + premier_add_on_name: str, + **kwargs: Any + ) -> "_models.PremierAddOn": + """Gets a named add-on of an app. + + Description for Gets a named add-on of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param premier_add_on_name: Add-on name. + :type premier_add_on_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PremierAddOn, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOn"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_premier_add_on.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'premierAddOnName': self._serialize.url("premier_add_on_name", premier_add_on_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PremierAddOn', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_premier_add_on.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/premieraddons/{premierAddOnName}'} # type: ignore + + async def add_premier_add_on( + self, + resource_group_name: str, + name: str, + premier_add_on_name: str, + premier_add_on: "_models.PremierAddOn", + **kwargs: Any + ) -> "_models.PremierAddOn": + """Updates a named add-on of an app. + + Description for Updates a named add-on of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param premier_add_on_name: Add-on name. + :type premier_add_on_name: str + :param premier_add_on: A JSON representation of the edited premier add-on. + :type premier_add_on: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PremierAddOn, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOn"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.add_premier_add_on.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'premierAddOnName': self._serialize.url("premier_add_on_name", premier_add_on_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(premier_add_on, 'PremierAddOn') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PremierAddOn', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + add_premier_add_on.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/premieraddons/{premierAddOnName}'} # type: ignore + + async def delete_premier_add_on( + self, + resource_group_name: str, + name: str, + premier_add_on_name: str, + **kwargs: Any + ) -> None: + """Delete a premier add-on from an app. + + Description for Delete a premier add-on from an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param premier_add_on_name: Add-on name. + :type premier_add_on_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_premier_add_on.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'premierAddOnName': self._serialize.url("premier_add_on_name", premier_add_on_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_premier_add_on.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/premieraddons/{premierAddOnName}'} # type: ignore + + async def update_premier_add_on( + self, + resource_group_name: str, + name: str, + premier_add_on_name: str, + premier_add_on: "_models.PremierAddOnPatchResource", + **kwargs: Any + ) -> "_models.PremierAddOn": + """Updates a named add-on of an app. + + Description for Updates a named add-on of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param premier_add_on_name: Add-on name. + :type premier_add_on_name: str + :param premier_add_on: A JSON representation of the edited premier add-on. + :type premier_add_on: ~azure.mgmt.web.v2021_01_15.models.PremierAddOnPatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PremierAddOn, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOn"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_premier_add_on.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'premierAddOnName': self._serialize.url("premier_add_on_name", premier_add_on_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(premier_add_on, 'PremierAddOnPatchResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PremierAddOn', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_premier_add_on.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/premieraddons/{premierAddOnName}'} # type: ignore + + async def get_private_access( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.PrivateAccess": + """Gets data around private site access enablement and authorized Virtual Networks that can access the site. + + Description for Gets data around private site access enablement and authorized Virtual Networks + that can access the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateAccess, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PrivateAccess + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateAccess"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_access.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateAccess', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_access.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateAccess/virtualNetworks'} # type: ignore + + async def put_private_access_vnet( + self, + resource_group_name: str, + name: str, + access: "_models.PrivateAccess", + **kwargs: Any + ) -> "_models.PrivateAccess": + """Sets data around private site access enablement and authorized Virtual Networks that can access the site. + + Description for Sets data around private site access enablement and authorized Virtual Networks + that can access the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param access: The information for the private access. + :type access: ~azure.mgmt.web.v2021_01_15.models.PrivateAccess + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateAccess, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PrivateAccess + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateAccess"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.put_private_access_vnet.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(access, 'PrivateAccess') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateAccess', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + put_private_access_vnet.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateAccess/virtualNetworks'} # type: ignore + + def get_private_endpoint_connection_list( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.PrivateEndpointConnectionCollection"]: + """Gets the list of private endpoint connections associated with a site. + + Description for Gets the list of private endpoint connections associated with a site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PrivateEndpointConnectionCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.PrivateEndpointConnectionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_private_endpoint_connection_list.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PrivateEndpointConnectionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_private_endpoint_connection_list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateEndpointConnections'} # type: ignore + + async def get_private_endpoint_connection( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + **kwargs: Any + ) -> "_models.RemotePrivateEndpointConnectionARMResource": + """Gets a private endpoint connection. + + Description for Gets a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :param private_endpoint_connection_name: Name of the private endpoint connection. + :type private_endpoint_connection_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RemotePrivateEndpointConnectionARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_endpoint_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def _approve_or_reject_private_endpoint_connection_initial( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + private_endpoint_wrapper: "_models.PrivateLinkConnectionApprovalRequestResource", + **kwargs: Any + ) -> "_models.RemotePrivateEndpointConnectionARMResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._approve_or_reject_private_endpoint_connection_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(private_endpoint_wrapper, 'PrivateLinkConnectionApprovalRequestResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _approve_or_reject_private_endpoint_connection_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def begin_approve_or_reject_private_endpoint_connection( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + private_endpoint_wrapper: "_models.PrivateLinkConnectionApprovalRequestResource", + **kwargs: Any + ) -> AsyncLROPoller["_models.RemotePrivateEndpointConnectionARMResource"]: + """Approves or rejects a private endpoint connection. + + Description for Approves or rejects a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :param private_endpoint_connection_name: + :type private_endpoint_connection_name: str + :param private_endpoint_wrapper: + :type private_endpoint_wrapper: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkConnectionApprovalRequestResource + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 RemotePrivateEndpointConnectionARMResource or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + 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._approve_or_reject_private_endpoint_connection_initial( + resource_group_name=resource_group_name, + name=name, + private_endpoint_connection_name=private_endpoint_connection_name, + private_endpoint_wrapper=private_endpoint_wrapper, + 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('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_approve_or_reject_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def _delete_private_endpoint_connection_initial( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + **kwargs: Any + ) -> Any: + cls = kwargs.pop('cls', None) # type: ClsType[Any] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_private_endpoint_connection_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('object', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('object', pipeline_response) + + if response.status_code == 204: + deserialized = self._deserialize('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _delete_private_endpoint_connection_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def begin_delete_private_endpoint_connection( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + **kwargs: Any + ) -> AsyncLROPoller[Any]: + """Deletes a private endpoint connection. + + Description for Deletes a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :param private_endpoint_connection_name: + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 any or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[any] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[Any] + 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_private_endpoint_connection_initial( + resource_group_name=resource_group_name, + name=name, + private_endpoint_connection_name=private_endpoint_connection_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('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def get_private_link_resources( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.PrivateLinkResourcesWrapper": + """Gets the private link resources. + + Description for Gets the private link resources. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateLinkResourcesWrapper, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkResourcesWrapper + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourcesWrapper"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_link_resources.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateLinkResourcesWrapper', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_link_resources.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateLinkResources'} # type: ignore + + def list_processes( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.ProcessInfoCollection"]: + """Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site. + + Description for Get list of processes for a web site, or a deployment slot, or for a specific + scaled-out instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ProcessInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_processes.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_processes.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/processes'} # type: ignore + + async def get_process( + self, + resource_group_name: str, + name: str, + process_id: str, + **kwargs: Any + ) -> "_models.ProcessInfo": + """Get process information by its ID for a specific scaled-out instance in a web site. + + Description for Get process information by its ID for a specific scaled-out instance in a web + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ProcessInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ProcessInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_process.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ProcessInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_process.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/processes/{processId}'} # type: ignore + + async def delete_process( + self, + resource_group_name: str, + name: str, + process_id: str, + **kwargs: Any + ) -> None: + """Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web site. + + Description for Terminate a process by its ID for a web site, or a deployment slot, or specific + scaled-out instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_process.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_process.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/processes/{processId}'} # type: ignore + + async def get_process_dump( + self, + resource_group_name: str, + name: str, + process_id: str, + **kwargs: Any + ) -> IO: + """Get a memory dump of a process by its ID for a specific scaled-out instance in a web site. + + Description for Get a memory dump of a process by its ID for a specific scaled-out instance in + a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[IO] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_process_dump.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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=True, **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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_process_dump.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/processes/{processId}/dump'} # type: ignore + + def list_process_modules( + self, + resource_group_name: str, + name: str, + process_id: str, + **kwargs: Any + ) -> AsyncIterable["_models.ProcessModuleInfoCollection"]: + """List module information for a process by its ID for a specific scaled-out instance in a web site. + + Description for List module information for a process by its ID for a specific scaled-out + instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ProcessModuleInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessModuleInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_process_modules.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessModuleInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_process_modules.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/processes/{processId}/modules'} # type: ignore + + async def get_process_module( + self, + resource_group_name: str, + name: str, + process_id: str, + base_address: str, + **kwargs: Any + ) -> "_models.ProcessModuleInfo": + """Get process information by its ID for a specific scaled-out instance in a web site. + + Description for Get process information by its ID for a specific scaled-out instance in a web + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param base_address: Module base address. + :type base_address: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ProcessModuleInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessModuleInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_process_module.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'baseAddress': self._serialize.url("base_address", base_address, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ProcessModuleInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_process_module.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/processes/{processId}/modules/{baseAddress}'} # type: ignore + + def list_process_threads( + self, + resource_group_name: str, + name: str, + process_id: str, + **kwargs: Any + ) -> AsyncIterable["_models.ProcessThreadInfoCollection"]: + """List the threads in a process by its ID for a specific scaled-out instance in a web site. + + Description for List the threads in a process by its ID for a specific scaled-out instance in a + web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ProcessThreadInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessThreadInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessThreadInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_process_threads.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessThreadInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_process_threads.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/processes/{processId}/threads'} # type: ignore + + def list_public_certificates( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.PublicCertificateCollection"]: + """Get public certificates for an app or a deployment slot. + + Description for Get public certificates for an app or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PublicCertificateCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.PublicCertificateCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PublicCertificateCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_public_certificates.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PublicCertificateCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_public_certificates.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/publicCertificates'} # type: ignore + + async def get_public_certificate( + self, + resource_group_name: str, + name: str, + public_certificate_name: str, + **kwargs: Any + ) -> "_models.PublicCertificate": + """Get the named public certificate for an app (or deployment slot, if specified). + + Description for Get the named public certificate for an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param public_certificate_name: Public certificate name. + :type public_certificate_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PublicCertificate, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PublicCertificate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PublicCertificate"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_public_certificate.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'publicCertificateName': self._serialize.url("public_certificate_name", public_certificate_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PublicCertificate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_public_certificate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/publicCertificates/{publicCertificateName}'} # type: ignore + + async def create_or_update_public_certificate( + self, + resource_group_name: str, + name: str, + public_certificate_name: str, + public_certificate: "_models.PublicCertificate", + **kwargs: Any + ) -> "_models.PublicCertificate": + """Creates a hostname binding for an app. + + Description for Creates a hostname binding for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param public_certificate_name: Public certificate name. + :type public_certificate_name: str + :param public_certificate: Public certificate details. This is the JSON representation of a + PublicCertificate object. + :type public_certificate: ~azure.mgmt.web.v2021_01_15.models.PublicCertificate + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PublicCertificate, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PublicCertificate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PublicCertificate"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_public_certificate.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'publicCertificateName': self._serialize.url("public_certificate_name", public_certificate_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(public_certificate, 'PublicCertificate') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PublicCertificate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_public_certificate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/publicCertificates/{publicCertificateName}'} # type: ignore + + async def delete_public_certificate( + self, + resource_group_name: str, + name: str, + public_certificate_name: str, + **kwargs: Any + ) -> None: + """Deletes a hostname binding for an app. + + Description for Deletes a hostname binding for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param public_certificate_name: Public certificate name. + :type public_certificate_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_public_certificate.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'publicCertificateName': self._serialize.url("public_certificate_name", public_certificate_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_public_certificate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/publicCertificates/{publicCertificateName}'} # type: ignore + + async def list_publishing_profile_xml_with_secrets( + self, + resource_group_name: str, + name: str, + publishing_profile_options: "_models.CsmPublishingProfileOptions", + **kwargs: Any + ) -> IO: + """Gets the publishing profile for an app (or deployment slot, if specified). + + Description for Gets the publishing profile for an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param publishing_profile_options: Specifies publishingProfileOptions for publishing profile. + For example, use {"format": "FileZilla3"} to get a FileZilla publishing profile. + :type publishing_profile_options: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingProfileOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[IO] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/xml" + + # Construct URL + url = self.list_publishing_profile_xml_with_secrets.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(publishing_profile_options, 'CsmPublishingProfileOptions') + 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=True, **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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_publishing_profile_xml_with_secrets.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/publishxml'} # type: ignore + + async def reset_production_slot_config( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> None: + """Resets the configuration settings of the current slot if they were previously modified by calling the API with POST. + + Description for Resets the configuration settings of the current slot if they were previously + modified by calling the API with POST. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.reset_production_slot_config.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reset_production_slot_config.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/resetSlotConfig'} # type: ignore + + async def restart( + self, + resource_group_name: str, + name: str, + soft_restart: Optional[bool] = None, + synchronous: Optional[bool] = None, + **kwargs: Any + ) -> None: + """Restarts an app (or deployment slot, if specified). + + Description for Restarts an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param soft_restart: Specify true to apply the configuration settings and restarts the app only + if necessary. By default, the API always restarts and reprovisions the app. + :type soft_restart: bool + :param synchronous: Specify true to block until the app is restarted. By default, it is set to + false, and the API responds immediately (asynchronous). + :type synchronous: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.restart.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if soft_restart is not None: + query_parameters['softRestart'] = self._serialize.query("soft_restart", soft_restart, 'bool') + if synchronous is not None: + query_parameters['synchronous'] = self._serialize.query("synchronous", synchronous, 'bool') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + restart.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restart'} # type: ignore + + async def _restore_from_backup_blob_initial( + self, + resource_group_name: str, + name: str, + request: "_models.RestoreRequest", + **kwargs: Any + ) -> 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._restore_from_backup_blob_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'RestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _restore_from_backup_blob_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restoreFromBackupBlob'} # type: ignore + + async def begin_restore_from_backup_blob( + self, + resource_group_name: str, + name: str, + request: "_models.RestoreRequest", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Restores an app from a backup blob in Azure Storage. + + Description for Restores an app from a backup blob in Azure Storage. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param request: Information on restore request . + :type request: ~azure.mgmt.web.v2021_01_15.models.RestoreRequest + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._restore_from_backup_blob_initial( + resource_group_name=resource_group_name, + name=name, + request=request, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_restore_from_backup_blob.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restoreFromBackupBlob'} # type: ignore + + async def _restore_from_deleted_app_initial( + self, + resource_group_name: str, + name: str, + restore_request: "_models.DeletedAppRestoreRequest", + **kwargs: Any + ) -> 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._restore_from_deleted_app_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(restore_request, 'DeletedAppRestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _restore_from_deleted_app_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restoreFromDeletedApp'} # type: ignore + + async def begin_restore_from_deleted_app( + self, + resource_group_name: str, + name: str, + restore_request: "_models.DeletedAppRestoreRequest", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Restores a deleted web app to this web app. + + Description for Restores a deleted web app to this web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param restore_request: Deleted web app restore information. + :type restore_request: ~azure.mgmt.web.v2021_01_15.models.DeletedAppRestoreRequest + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._restore_from_deleted_app_initial( + resource_group_name=resource_group_name, + name=name, + restore_request=restore_request, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_restore_from_deleted_app.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restoreFromDeletedApp'} # type: ignore + + async def _restore_snapshot_initial( + self, + resource_group_name: str, + name: str, + restore_request: "_models.SnapshotRestoreRequest", + **kwargs: Any + ) -> 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._restore_snapshot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(restore_request, 'SnapshotRestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _restore_snapshot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restoreSnapshot'} # type: ignore + + async def begin_restore_snapshot( + self, + resource_group_name: str, + name: str, + restore_request: "_models.SnapshotRestoreRequest", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Restores a web app from a snapshot. + + Description for Restores a web app from a snapshot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param restore_request: Snapshot restore settings. Snapshot information can be obtained by + calling GetDeletedSites or GetSiteSnapshots API. + :type restore_request: ~azure.mgmt.web.v2021_01_15.models.SnapshotRestoreRequest + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._restore_snapshot_initial( + resource_group_name=resource_group_name, + name=name, + restore_request=restore_request, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_restore_snapshot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restoreSnapshot'} # type: ignore + + def list_site_extensions( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.SiteExtensionInfoCollection"]: + """Get list of siteextensions for a web site, or a deployment slot. + + Description for Get list of siteextensions for a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SiteExtensionInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.SiteExtensionInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteExtensionInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_extensions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SiteExtensionInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_site_extensions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/siteextensions'} # type: ignore + + async def get_site_extension( + self, + resource_group_name: str, + name: str, + site_extension_id: str, + **kwargs: Any + ) -> "_models.SiteExtensionInfo": + """Get site extension information by its ID for a web site, or a deployment slot. + + Description for Get site extension information by its ID for a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param site_extension_id: Site extension name. + :type site_extension_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteExtensionInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteExtensionInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteExtensionInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_extension.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'siteExtensionId': self._serialize.url("site_extension_id", site_extension_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteExtensionInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_extension.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/siteextensions/{siteExtensionId}'} # type: ignore + + async def _install_site_extension_initial( + self, + resource_group_name: str, + name: str, + site_extension_id: str, + **kwargs: Any + ) -> "_models.SiteExtensionInfo": + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteExtensionInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._install_site_extension_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'siteExtensionId': self._serialize.url("site_extension_id", site_extension_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.put(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, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('SiteExtensionInfo', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('SiteExtensionInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _install_site_extension_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/siteextensions/{siteExtensionId}'} # type: ignore + + async def begin_install_site_extension( + self, + resource_group_name: str, + name: str, + site_extension_id: str, + **kwargs: Any + ) -> AsyncLROPoller["_models.SiteExtensionInfo"]: + """Install site extension on a web site, or a deployment slot. + + Description for Install site extension on a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param site_extension_id: Site extension name. + :type site_extension_id: 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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 SiteExtensionInfo or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.SiteExtensionInfo] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteExtensionInfo"] + 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._install_site_extension_initial( + resource_group_name=resource_group_name, + name=name, + site_extension_id=site_extension_id, + 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('SiteExtensionInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'siteExtensionId': self._serialize.url("site_extension_id", site_extension_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_install_site_extension.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/siteextensions/{siteExtensionId}'} # type: ignore + + async def delete_site_extension( + self, + resource_group_name: str, + name: str, + site_extension_id: str, + **kwargs: Any + ) -> None: + """Remove a site extension from a web site, or a deployment slot. + + Description for Remove a site extension from a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param site_extension_id: Site extension name. + :type site_extension_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_site_extension.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'siteExtensionId': self._serialize.url("site_extension_id", site_extension_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_site_extension.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/siteextensions/{siteExtensionId}'} # type: ignore + + def list_slots( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.WebAppCollection"]: + """Gets an app's deployment slots. + + Description for Gets an app's deployment slots. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_slots.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('WebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_slots.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots'} # type: ignore + + async def get_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.Site": + """Gets the details of a web, mobile, or API app. + + Description for Gets the details of a web, mobile, or API app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. By default, this API returns the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Site, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Site + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Site"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Site', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}'} # type: ignore + + async def _create_or_update_slot_initial( + self, + resource_group_name: str, + name: str, + slot: str, + site_envelope: "_models.Site", + **kwargs: Any + ) -> "_models.Site": + cls = kwargs.pop('cls', None) # type: ClsType["_models.Site"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_envelope, 'Site') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('Site', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('Site', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}'} # type: ignore + + async def begin_create_or_update_slot( + self, + resource_group_name: str, + name: str, + slot: str, + site_envelope: "_models.Site", + **kwargs: Any + ) -> AsyncLROPoller["_models.Site"]: + """Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. + + Description for Creates a new web, mobile, or API app in an existing resource group, or updates + an existing app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Unique name of the app to create or update. To create or update a deployment slot, + use the {slot} parameter. + :type name: str + :param slot: Name of the deployment slot to create or update. By default, this API attempts to + create or modify the production slot. + :type slot: str + :param site_envelope: A JSON representation of the app properties. See example. + :type site_envelope: ~azure.mgmt.web.v2021_01_15.models.Site + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 Site or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.Site] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Site"] + 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_or_update_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + site_envelope=site_envelope, + 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('Site', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}'} # type: ignore + + async def delete_slot( + self, + resource_group_name: str, + name: str, + slot: str, + delete_metrics: Optional[bool] = None, + delete_empty_server_farm: Optional[bool] = None, + **kwargs: Any + ) -> None: + """Deletes a web, mobile, or API app, or one of the deployment slots. + + Description for Deletes a web, mobile, or API app, or one of the deployment slots. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app to delete. + :type name: str + :param slot: Name of the deployment slot to delete. By default, the API deletes the production + slot. + :type slot: str + :param delete_metrics: If true, web app metrics are also deleted. + :type delete_metrics: bool + :param delete_empty_server_farm: Specify false if you want to keep empty App Service plan. By + default, empty App Service plan is deleted. + :type delete_empty_server_farm: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if delete_metrics is not None: + query_parameters['deleteMetrics'] = self._serialize.query("delete_metrics", delete_metrics, 'bool') + if delete_empty_server_farm is not None: + query_parameters['deleteEmptyServerFarm'] = self._serialize.query("delete_empty_server_farm", delete_empty_server_farm, 'bool') + 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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}'} # type: ignore + + async def update_slot( + self, + resource_group_name: str, + name: str, + slot: str, + site_envelope: "_models.SitePatchResource", + **kwargs: Any + ) -> "_models.Site": + """Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. + + Description for Creates a new web, mobile, or API app in an existing resource group, or updates + an existing app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Unique name of the app to create or update. To create or update a deployment slot, + use the {slot} parameter. + :type name: str + :param slot: Name of the deployment slot to create or update. By default, this API attempts to + create or modify the production slot. + :type slot: str + :param site_envelope: A JSON representation of the app properties. See example. + :type site_envelope: ~azure.mgmt.web.v2021_01_15.models.SitePatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Site, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Site + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Site"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_envelope, 'SitePatchResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('Site', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('Site', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}'} # type: ignore + + async def analyze_custom_hostname_slot( + self, + resource_group_name: str, + name: str, + slot: str, + host_name: Optional[str] = None, + **kwargs: Any + ) -> "_models.CustomHostnameAnalysisResult": + """Analyze a custom hostname. + + Description for Analyze a custom hostname. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param host_name: Custom hostname. + :type host_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CustomHostnameAnalysisResult, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CustomHostnameAnalysisResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CustomHostnameAnalysisResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.analyze_custom_hostname_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if host_name is not None: + query_parameters['hostName'] = self._serialize.query("host_name", host_name, 'str') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CustomHostnameAnalysisResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + analyze_custom_hostname_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/analyzeCustomHostname'} # type: ignore + + async def apply_slot_configuration_slot( + self, + resource_group_name: str, + name: str, + slot: str, + slot_swap_entity: "_models.CsmSlotEntity", + **kwargs: Any + ) -> None: + """Applies the configuration settings from the target slot onto the current slot. + + Description for Applies the configuration settings from the target slot onto the current slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the source slot. If a slot is not specified, the production slot is used + as the source slot. + :type slot: str + :param slot_swap_entity: JSON object that contains the target slot name. See example. + :type slot_swap_entity: ~azure.mgmt.web.v2021_01_15.models.CsmSlotEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.apply_slot_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(slot_swap_entity, 'CsmSlotEntity') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + apply_slot_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/applySlotConfig'} # type: ignore + + async def backup_slot( + self, + resource_group_name: str, + name: str, + slot: str, + request: "_models.BackupRequest", + **kwargs: Any + ) -> "_models.BackupItem": + """Creates a backup of an app. + + Description for Creates a backup of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will create a + backup for the production slot. + :type slot: str + :param request: Backup configuration. You can use the JSON response from the POST action as + input here. + :type request: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupItem, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupItem + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItem"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.backup_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'BackupRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupItem', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + backup_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/backup'} # type: ignore + + def list_backups_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.BackupItemCollection"]: + """Gets existing backups of an app. + + Description for Gets existing backups of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get backups + of the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either BackupItemCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.BackupItemCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItemCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('BackupItemCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_backups_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/backups'} # type: ignore + + async def get_backup_status_slot( + self, + resource_group_name: str, + name: str, + backup_id: str, + slot: str, + **kwargs: Any + ) -> "_models.BackupItem": + """Gets a backup of an app by its ID. + + Description for Gets a backup of an app by its ID. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param backup_id: ID of the backup. + :type backup_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get a backup + of the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupItem, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupItem + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItem"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_backup_status_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupItem', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_backup_status_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/backups/{backupId}'} # type: ignore + + async def delete_backup_slot( + self, + resource_group_name: str, + name: str, + backup_id: str, + slot: str, + **kwargs: Any + ) -> None: + """Deletes a backup of an app by its ID. + + Description for Deletes a backup of an app by its ID. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param backup_id: ID of the backup. + :type backup_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete a + backup of the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_backup_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_backup_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/backups/{backupId}'} # type: ignore + + async def list_backup_status_secrets_slot( + self, + resource_group_name: str, + name: str, + backup_id: str, + slot: str, + request: "_models.BackupRequest", + **kwargs: Any + ) -> "_models.BackupItem": + """Gets status of a web app backup that may be in progress, including secrets associated with the backup, such as the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is passed in the request body. + + Description for Gets status of a web app backup that may be in progress, including secrets + associated with the backup, such as the Azure Storage SAS URL. Also can be used to update the + SAS URL for the backup if a new URL is passed in the request body. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param backup_id: ID of backup. + :type backup_id: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param request: Information on backup request. + :type request: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupItem, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupItem + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItem"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.list_backup_status_secrets_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'BackupRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupItem', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_backup_status_secrets_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/backups/{backupId}/list'} # type: ignore + + async def _restore_slot_initial( + self, + resource_group_name: str, + name: str, + backup_id: str, + slot: str, + request: "_models.RestoreRequest", + **kwargs: Any + ) -> 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._restore_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'RestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _restore_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/backups/{backupId}/restore'} # type: ignore + + async def begin_restore_slot( + self, + resource_group_name: str, + name: str, + backup_id: str, + slot: str, + request: "_models.RestoreRequest", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Restores a specific backup to another app (or deployment slot, if specified). + + Description for Restores a specific backup to another app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param backup_id: ID of the backup. + :type backup_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will restore a + backup of the production slot. + :type slot: str + :param request: Information on restore request . + :type request: ~azure.mgmt.web.v2021_01_15.models.RestoreRequest + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._restore_slot_initial( + resource_group_name=resource_group_name, + name=name, + backup_id=backup_id, + slot=slot, + request=request, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_restore_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/backups/{backupId}/restore'} # type: ignore + + def list_basic_publishing_credentials_policies_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.PublishingCredentialsPoliciesCollection"]: + """Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site. + + Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a + given site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PublishingCredentialsPoliciesCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.PublishingCredentialsPoliciesCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PublishingCredentialsPoliciesCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_basic_publishing_credentials_policies_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PublishingCredentialsPoliciesCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_basic_publishing_credentials_policies_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/basicPublishingCredentialsPolicies'} # type: ignore + + async def get_ftp_allowed_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.CsmPublishingCredentialsPoliciesEntity": + """Returns whether FTP is allowed on the site or not. + + Description for Returns whether FTP is allowed on the site or not. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CsmPublishingCredentialsPoliciesEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmPublishingCredentialsPoliciesEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_ftp_allowed_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CsmPublishingCredentialsPoliciesEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_ftp_allowed_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/basicPublishingCredentialsPolicies/ftp'} # type: ignore + + async def update_ftp_allowed_slot( + self, + resource_group_name: str, + name: str, + slot: str, + csm_publishing_access_policies_entity: "_models.CsmPublishingCredentialsPoliciesEntity", + **kwargs: Any + ) -> "_models.CsmPublishingCredentialsPoliciesEntity": + """Updates whether FTP is allowed on the site or not. + + Description for Updates whether FTP is allowed on the site or not. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: + :type slot: str + :param csm_publishing_access_policies_entity: + :type csm_publishing_access_policies_entity: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CsmPublishingCredentialsPoliciesEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmPublishingCredentialsPoliciesEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_ftp_allowed_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(csm_publishing_access_policies_entity, 'CsmPublishingCredentialsPoliciesEntity') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CsmPublishingCredentialsPoliciesEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_ftp_allowed_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/basicPublishingCredentialsPolicies/ftp'} # type: ignore + + async def get_scm_allowed_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.CsmPublishingCredentialsPoliciesEntity": + """Returns whether Scm basic auth is allowed on the site or not. + + Description for Returns whether Scm basic auth is allowed on the site or not. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CsmPublishingCredentialsPoliciesEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmPublishingCredentialsPoliciesEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_scm_allowed_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CsmPublishingCredentialsPoliciesEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_scm_allowed_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/basicPublishingCredentialsPolicies/scm'} # type: ignore + + async def update_scm_allowed_slot( + self, + resource_group_name: str, + name: str, + slot: str, + csm_publishing_access_policies_entity: "_models.CsmPublishingCredentialsPoliciesEntity", + **kwargs: Any + ) -> "_models.CsmPublishingCredentialsPoliciesEntity": + """Updates whether user publishing credentials are allowed on the site or not. + + Description for Updates whether user publishing credentials are allowed on the site or not. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: + :type slot: str + :param csm_publishing_access_policies_entity: + :type csm_publishing_access_policies_entity: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CsmPublishingCredentialsPoliciesEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmPublishingCredentialsPoliciesEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_scm_allowed_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(csm_publishing_access_policies_entity, 'CsmPublishingCredentialsPoliciesEntity') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CsmPublishingCredentialsPoliciesEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_scm_allowed_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/basicPublishingCredentialsPolicies/scm'} # type: ignore + + def list_configurations_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.SiteConfigResourceCollection"]: + """List the configurations of an app. + + Description for List the configurations of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will return + configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SiteConfigResourceCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.SiteConfigResourceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResourceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_configurations_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SiteConfigResourceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_configurations_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config'} # type: ignore + + async def update_application_settings_slot( + self, + resource_group_name: str, + name: str, + slot: str, + app_settings: "_models.StringDictionary", + **kwargs: Any + ) -> "_models.StringDictionary": + """Replaces the application settings of an app. + + Description for Replaces the application settings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + application settings for the production slot. + :type slot: str + :param app_settings: Application settings of the app. + :type app_settings: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_application_settings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_settings, 'StringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_application_settings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/appsettings'} # type: ignore + + async def list_application_settings_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.StringDictionary": + """Gets the application settings of an app. + + Description for Gets the application settings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + application settings for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_application_settings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_application_settings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/appsettings/list'} # type: ignore + + async def update_auth_settings_slot( + self, + resource_group_name: str, + name: str, + slot: str, + site_auth_settings: "_models.SiteAuthSettings", + **kwargs: Any + ) -> "_models.SiteAuthSettings": + """Updates the Authentication / Authorization settings associated with web app. + + Description for Updates the Authentication / Authorization settings associated with web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param site_auth_settings: Auth settings associated with web app. + :type site_auth_settings: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettings + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteAuthSettings, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettings + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteAuthSettings"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_auth_settings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_auth_settings, 'SiteAuthSettings') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteAuthSettings', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_auth_settings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/authsettings'} # type: ignore + + async def get_auth_settings_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.SiteAuthSettings": + """Gets the Authentication/Authorization settings of an app. + + Description for Gets the Authentication/Authorization settings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + settings for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteAuthSettings, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettings + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteAuthSettings"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_auth_settings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteAuthSettings', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_auth_settings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/authsettings/list'} # type: ignore + + async def update_auth_settings_v2_slot( + self, + resource_group_name: str, + name: str, + slot: str, + site_auth_settings_v2: "_models.SiteAuthSettingsV2", + **kwargs: Any + ) -> "_models.SiteAuthSettingsV2": + """Updates site's Authentication / Authorization settings for apps via the V2 format. + + Description for Updates site's Authentication / Authorization settings for apps via the V2 + format. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param site_auth_settings_v2: Auth settings associated with web app. + :type site_auth_settings_v2: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettingsV2 + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteAuthSettingsV2, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettingsV2 + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteAuthSettingsV2"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_auth_settings_v2_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_auth_settings_v2, 'SiteAuthSettingsV2') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteAuthSettingsV2', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_auth_settings_v2_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/authsettingsV2'} # type: ignore + + async def get_auth_settings_v2_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.SiteAuthSettingsV2": + """Gets site's Authentication / Authorization settings for apps via the V2 format. + + Description for Gets site's Authentication / Authorization settings for apps via the V2 format. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + settings for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteAuthSettingsV2, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettingsV2 + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteAuthSettingsV2"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_auth_settings_v2_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteAuthSettingsV2', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_auth_settings_v2_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/authsettingsV2/list'} # type: ignore + + async def update_azure_storage_accounts_slot( + self, + resource_group_name: str, + name: str, + slot: str, + azure_storage_accounts: "_models.AzureStoragePropertyDictionaryResource", + **kwargs: Any + ) -> "_models.AzureStoragePropertyDictionaryResource": + """Updates the Azure storage account configurations of an app. + + Description for Updates the Azure storage account configurations of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + Azure storage account configurations for the production slot. + :type slot: str + :param azure_storage_accounts: Azure storage accounts of the app. + :type azure_storage_accounts: ~azure.mgmt.web.v2021_01_15.models.AzureStoragePropertyDictionaryResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AzureStoragePropertyDictionaryResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AzureStoragePropertyDictionaryResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AzureStoragePropertyDictionaryResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_azure_storage_accounts_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(azure_storage_accounts, 'AzureStoragePropertyDictionaryResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AzureStoragePropertyDictionaryResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_azure_storage_accounts_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/azurestorageaccounts'} # type: ignore + + async def list_azure_storage_accounts_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.AzureStoragePropertyDictionaryResource": + """Gets the Azure storage account configurations of an app. + + Description for Gets the Azure storage account configurations of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + Azure storage account configurations for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AzureStoragePropertyDictionaryResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AzureStoragePropertyDictionaryResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AzureStoragePropertyDictionaryResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_azure_storage_accounts_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AzureStoragePropertyDictionaryResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_azure_storage_accounts_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/azurestorageaccounts/list'} # type: ignore + + async def update_backup_configuration_slot( + self, + resource_group_name: str, + name: str, + slot: str, + request: "_models.BackupRequest", + **kwargs: Any + ) -> "_models.BackupRequest": + """Updates the backup configuration of an app. + + Description for Updates the backup configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + backup configuration for the production slot. + :type slot: str + :param request: Edited backup configuration. + :type request: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupRequest, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupRequest"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_backup_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'BackupRequest') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupRequest', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_backup_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/backup'} # type: ignore + + async def delete_backup_configuration_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> None: + """Deletes the backup configuration of an app. + + Description for Deletes the backup configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + backup configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_backup_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_backup_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/backup'} # type: ignore + + async def get_backup_configuration_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.BackupRequest": + """Gets the backup configuration of an app. + + Description for Gets the backup configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + backup configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupRequest, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupRequest"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_backup_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupRequest', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_backup_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/backup/list'} # type: ignore + + def get_app_settings_key_vault_references_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.ApiKVReferenceCollection"]: + """Gets the config reference app settings and status of an app. + + Description for Gets the config reference app settings and status of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ApiKVReferenceCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ApiKVReferenceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApiKVReferenceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_app_settings_key_vault_references_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ApiKVReferenceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_app_settings_key_vault_references_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/configreferences/appsettings'} # type: ignore + + async def get_app_setting_key_vault_reference_slot( + self, + resource_group_name: str, + name: str, + app_setting_key: str, + slot: str, + **kwargs: Any + ) -> "_models.ApiKVReference": + """Gets the config reference and status of an app. + + Description for Gets the config reference and status of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param app_setting_key: App Setting key name. + :type app_setting_key: str + :param slot: + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ApiKVReference, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ApiKVReference + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApiKVReference"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_app_setting_key_vault_reference_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'appSettingKey': self._serialize.url("app_setting_key", app_setting_key, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ApiKVReference', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_app_setting_key_vault_reference_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/configreferences/appsettings/{appSettingKey}'} # type: ignore + + def get_site_connection_string_key_vault_references_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.ApiKVReferenceCollection"]: + """Gets the config reference app settings and status of an app. + + Description for Gets the config reference app settings and status of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ApiKVReferenceCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ApiKVReferenceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApiKVReferenceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_site_connection_string_key_vault_references_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ApiKVReferenceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_site_connection_string_key_vault_references_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/configreferences/connectionstrings'} # type: ignore + + async def get_site_connection_string_key_vault_reference_slot( + self, + resource_group_name: str, + name: str, + connection_string_key: str, + slot: str, + **kwargs: Any + ) -> "_models.ApiKVReference": + """Gets the config reference and status of an app. + + Description for Gets the config reference and status of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param connection_string_key: + :type connection_string_key: str + :param slot: + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ApiKVReference, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ApiKVReference + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApiKVReference"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_connection_string_key_vault_reference_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'connectionStringKey': self._serialize.url("connection_string_key", connection_string_key, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ApiKVReference', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_connection_string_key_vault_reference_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/configreferences/connectionstrings/{connectionStringKey}'} # type: ignore + + async def update_connection_strings_slot( + self, + resource_group_name: str, + name: str, + slot: str, + connection_strings: "_models.ConnectionStringDictionary", + **kwargs: Any + ) -> "_models.ConnectionStringDictionary": + """Replaces the connection strings of an app. + + Description for Replaces the connection strings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + connection settings for the production slot. + :type slot: str + :param connection_strings: Connection strings of the app or deployment slot. See example. + :type connection_strings: ~azure.mgmt.web.v2021_01_15.models.ConnectionStringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ConnectionStringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ConnectionStringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConnectionStringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_connection_strings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_strings, 'ConnectionStringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ConnectionStringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_connection_strings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/connectionstrings'} # type: ignore + + async def list_connection_strings_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.ConnectionStringDictionary": + """Gets the connection strings of an app. + + Description for Gets the connection strings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + connection settings for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ConnectionStringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ConnectionStringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConnectionStringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_connection_strings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ConnectionStringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_connection_strings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/connectionstrings/list'} # type: ignore + + async def get_diagnostic_logs_configuration_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.SiteLogsConfig": + """Gets the logging configuration of an app. + + Description for Gets the logging configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + logging configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteLogsConfig, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteLogsConfig + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteLogsConfig"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_diagnostic_logs_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteLogsConfig', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_diagnostic_logs_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/logs'} # type: ignore + + async def update_diagnostic_logs_config_slot( + self, + resource_group_name: str, + name: str, + slot: str, + site_logs_config: "_models.SiteLogsConfig", + **kwargs: Any + ) -> "_models.SiteLogsConfig": + """Updates the logging configuration of an app. + + Description for Updates the logging configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + logging configuration for the production slot. + :type slot: str + :param site_logs_config: A SiteLogsConfig JSON object that contains the logging configuration + to change in the "properties" property. + :type site_logs_config: ~azure.mgmt.web.v2021_01_15.models.SiteLogsConfig + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteLogsConfig, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteLogsConfig + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteLogsConfig"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_diagnostic_logs_config_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_logs_config, 'SiteLogsConfig') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteLogsConfig', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_diagnostic_logs_config_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/logs'} # type: ignore + + async def update_metadata_slot( + self, + resource_group_name: str, + name: str, + slot: str, + metadata: "_models.StringDictionary", + **kwargs: Any + ) -> "_models.StringDictionary": + """Replaces the metadata of an app. + + Description for Replaces the metadata of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + metadata for the production slot. + :type slot: str + :param metadata: Edited metadata of the app or deployment slot. See example. + :type metadata: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_metadata_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(metadata, 'StringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_metadata_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/metadata'} # type: ignore + + async def list_metadata_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.StringDictionary": + """Gets the metadata of an app. + + Description for Gets the metadata of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + metadata for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_metadata_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_metadata_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/metadata/list'} # type: ignore + + async def _list_publishing_credentials_slot_initial( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.User": + cls = kwargs.pop('cls', None) # type: ClsType["_models.User"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._list_publishing_credentials_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('User', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _list_publishing_credentials_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/publishingcredentials/list'} # type: ignore + + async def begin_list_publishing_credentials_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncLROPoller["_models.User"]: + """Gets the Git/FTP publishing credentials of an app. + + Description for Gets the Git/FTP publishing credentials of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + publishing credentials for the production slot. + :type slot: 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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 User or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.User] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.User"] + 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._list_publishing_credentials_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + 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('User', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_list_publishing_credentials_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/publishingcredentials/list'} # type: ignore + + async def update_site_push_settings_slot( + self, + resource_group_name: str, + name: str, + slot: str, + push_settings: "_models.PushSettings", + **kwargs: Any + ) -> "_models.PushSettings": + """Updates the Push settings associated with web app. + + Description for Updates the Push settings associated with web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param push_settings: Push settings associated with web app. + :type push_settings: ~azure.mgmt.web.v2021_01_15.models.PushSettings + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PushSettings, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PushSettings + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PushSettings"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_site_push_settings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(push_settings, 'PushSettings') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PushSettings', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_site_push_settings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/pushsettings'} # type: ignore + + async def list_site_push_settings_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.PushSettings": + """Gets the Push settings associated with web app. + + Description for Gets the Push settings associated with web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PushSettings, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PushSettings + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PushSettings"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_site_push_settings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PushSettings', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_site_push_settings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/pushsettings/list'} # type: ignore + + async def get_configuration_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.SiteConfigResource": + """Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications, Always On, etc. + + Description for Gets the configuration of an app, such as platform version and bitness, default + documents, virtual applications, Always On, etc. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will return + configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteConfigResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteConfigResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/web'} # type: ignore + + async def create_or_update_configuration_slot( + self, + resource_group_name: str, + name: str, + slot: str, + site_config: "_models.SiteConfigResource", + **kwargs: Any + ) -> "_models.SiteConfigResource": + """Updates the configuration of an app. + + Description for Updates the configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update + configuration for the production slot. + :type slot: str + :param site_config: JSON representation of a SiteConfig object. See example. + :type site_config: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteConfigResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_config, 'SiteConfigResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteConfigResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/web'} # type: ignore + + async def update_configuration_slot( + self, + resource_group_name: str, + name: str, + slot: str, + site_config: "_models.SiteConfigResource", + **kwargs: Any + ) -> "_models.SiteConfigResource": + """Updates the configuration of an app. + + Description for Updates the configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update + configuration for the production slot. + :type slot: str + :param site_config: JSON representation of a SiteConfig object. See example. + :type site_config: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteConfigResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_config, 'SiteConfigResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteConfigResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/web'} # type: ignore + + def list_configuration_snapshot_info_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.SiteConfigurationSnapshotInfoCollection"]: + """Gets a list of web app configuration snapshots identifiers. Each element of the list contains a timestamp and the ID of the snapshot. + + Description for Gets a list of web app configuration snapshots identifiers. Each element of the + list contains a timestamp and the ID of the snapshot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will return + configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SiteConfigurationSnapshotInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.SiteConfigurationSnapshotInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigurationSnapshotInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_configuration_snapshot_info_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SiteConfigurationSnapshotInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_configuration_snapshot_info_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/web/snapshots'} # type: ignore + + async def get_configuration_snapshot_slot( + self, + resource_group_name: str, + name: str, + snapshot_id: str, + slot: str, + **kwargs: Any + ) -> "_models.SiteConfigResource": + """Gets a snapshot of the configuration of an app at a previous point in time. + + Description for Gets a snapshot of the configuration of an app at a previous point in time. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param snapshot_id: The ID of the snapshot to read. + :type snapshot_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will return + configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteConfigResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_configuration_snapshot_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'snapshotId': self._serialize.url("snapshot_id", snapshot_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteConfigResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_configuration_snapshot_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/web/snapshots/{snapshotId}'} # type: ignore + + async def recover_site_configuration_snapshot_slot( + self, + resource_group_name: str, + name: str, + snapshot_id: str, + slot: str, + **kwargs: Any + ) -> None: + """Reverts the configuration of an app to a previous snapshot. + + Description for Reverts the configuration of an app to a previous snapshot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param snapshot_id: The ID of the snapshot to read. + :type snapshot_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will return + configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.recover_site_configuration_snapshot_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'snapshotId': self._serialize.url("snapshot_id", snapshot_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + recover_site_configuration_snapshot_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/web/snapshots/{snapshotId}/recover'} # type: ignore + + async def get_web_site_container_logs_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> Optional[IO]: + """Gets the last lines of docker logs for the given site. + + Description for Gets the last lines of docker logs for the given site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO or None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Optional[IO]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/octet-stream" + + # Construct URL + url = self.get_web_site_container_logs_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + 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 = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_web_site_container_logs_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/containerlogs'} # type: ignore + + async def get_container_logs_zip_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> Optional[IO]: + """Gets the ZIP archived docker log files for the given site. + + Description for Gets the ZIP archived docker log files for the given site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO or None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Optional[IO]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/zip" + + # Construct URL + url = self.get_container_logs_zip_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + 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 = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_container_logs_zip_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/containerlogs/zip/download'} # type: ignore + + def list_continuous_web_jobs_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.ContinuousWebJobCollection"]: + """List continuous web jobs for an app, or a deployment slot. + + Description for List continuous web jobs for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes a + deployment for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ContinuousWebJobCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ContinuousWebJobCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ContinuousWebJobCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_continuous_web_jobs_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ContinuousWebJobCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_continuous_web_jobs_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/continuouswebjobs'} # type: ignore + + async def get_continuous_web_job_slot( + self, + resource_group_name: str, + name: str, + web_job_name: str, + slot: str, + **kwargs: Any + ) -> "_models.ContinuousWebJob": + """Gets a continuous web job by its ID for an app, or a deployment slot. + + Description for Gets a continuous web job by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes a + deployment for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ContinuousWebJob, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ContinuousWebJob + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ContinuousWebJob"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_continuous_web_job_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ContinuousWebJob', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_continuous_web_job_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/continuouswebjobs/{webJobName}'} # type: ignore + + async def delete_continuous_web_job_slot( + self, + resource_group_name: str, + name: str, + web_job_name: str, + slot: str, + **kwargs: Any + ) -> None: + """Delete a continuous web job by its ID for an app, or a deployment slot. + + Description for Delete a continuous web job by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes a + deployment for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_continuous_web_job_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_continuous_web_job_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/continuouswebjobs/{webJobName}'} # type: ignore + + async def start_continuous_web_job_slot( + self, + resource_group_name: str, + name: str, + web_job_name: str, + slot: str, + **kwargs: Any + ) -> None: + """Start a continuous web job for an app, or a deployment slot. + + Description for Start a continuous web job for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes a + deployment for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.start_continuous_web_job_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + start_continuous_web_job_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/continuouswebjobs/{webJobName}/start'} # type: ignore + + async def stop_continuous_web_job_slot( + self, + resource_group_name: str, + name: str, + web_job_name: str, + slot: str, + **kwargs: Any + ) -> None: + """Stop a continuous web job for an app, or a deployment slot. + + Description for Stop a continuous web job for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes a + deployment for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.stop_continuous_web_job_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + stop_continuous_web_job_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/continuouswebjobs/{webJobName}/stop'} # type: ignore + + def list_deployments_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.DeploymentCollection"]: + """List deployments for an app, or a deployment slot. + + Description for List deployments for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DeploymentCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.DeploymentCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DeploymentCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_deployments_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DeploymentCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_deployments_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/deployments'} # type: ignore + + async def get_deployment_slot( + self, + resource_group_name: str, + name: str, + id: str, + slot: str, + **kwargs: Any + ) -> "_models.Deployment": + """Get a deployment by its ID for an app, or a deployment slot. + + Description for Get a deployment by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param id: Deployment ID. + :type id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API gets a deployment + for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Deployment, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Deployment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Deployment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_deployment_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Deployment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_deployment_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/deployments/{id}'} # type: ignore + + async def create_deployment_slot( + self, + resource_group_name: str, + name: str, + id: str, + slot: str, + deployment: "_models.Deployment", + **kwargs: Any + ) -> "_models.Deployment": + """Create a deployment for an app, or a deployment slot. + + Description for Create a deployment for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param id: ID of an existing deployment. + :type id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API creates a + deployment for the production slot. + :type slot: str + :param deployment: Deployment details. + :type deployment: ~azure.mgmt.web.v2021_01_15.models.Deployment + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Deployment, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Deployment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Deployment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_deployment_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(deployment, 'Deployment') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Deployment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_deployment_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/deployments/{id}'} # type: ignore + + async def delete_deployment_slot( + self, + resource_group_name: str, + name: str, + id: str, + slot: str, + **kwargs: Any + ) -> None: + """Delete a deployment by its ID for an app, or a deployment slot. + + Description for Delete a deployment by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param id: Deployment ID. + :type id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes a + deployment for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_deployment_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_deployment_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/deployments/{id}'} # type: ignore + + async def list_deployment_log_slot( + self, + resource_group_name: str, + name: str, + id: str, + slot: str, + **kwargs: Any + ) -> "_models.Deployment": + """List deployment log for specific deployment for an app, or a deployment slot. + + Description for List deployment log for specific deployment for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param id: The ID of a specific deployment. This is the value of the name property in the JSON + response from "GET /api/sites/{siteName}/deployments". + :type id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Deployment, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Deployment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Deployment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_deployment_log_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Deployment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_deployment_log_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/deployments/{id}/log'} # type: ignore + + async def discover_backup_slot( + self, + resource_group_name: str, + name: str, + slot: str, + request: "_models.RestoreRequest", + **kwargs: Any + ) -> "_models.RestoreRequest": + """Discovers an existing app backup that can be restored from a blob in Azure storage. Use this to get information about the databases stored in a backup. + + Description for Discovers an existing app backup that can be restored from a blob in Azure + storage. Use this to get information about the databases stored in a backup. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will perform + discovery for the production slot. + :type slot: str + :param request: A RestoreRequest object that includes Azure storage URL and blog name for + discovery of backup. + :type request: ~azure.mgmt.web.v2021_01_15.models.RestoreRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RestoreRequest, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RestoreRequest + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestoreRequest"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.discover_backup_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'RestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RestoreRequest', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + discover_backup_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/discoverbackup'} # type: ignore + + def list_domain_ownership_identifiers_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.IdentifierCollection"]: + """Lists ownership identifiers for domain associated with web app. + + Description for Lists ownership identifiers for domain associated with web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + binding for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either IdentifierCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.IdentifierCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.IdentifierCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_domain_ownership_identifiers_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('IdentifierCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_domain_ownership_identifiers_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/domainOwnershipIdentifiers'} # type: ignore + + async def get_domain_ownership_identifier_slot( + self, + resource_group_name: str, + name: str, + domain_ownership_identifier_name: str, + slot: str, + **kwargs: Any + ) -> "_models.Identifier": + """Get domain ownership identifier for web app. + + Description for Get domain ownership identifier for web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param domain_ownership_identifier_name: Name of domain ownership identifier. + :type domain_ownership_identifier_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + binding for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Identifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Identifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Identifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_domain_ownership_identifier_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainOwnershipIdentifierName': self._serialize.url("domain_ownership_identifier_name", domain_ownership_identifier_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Identifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_domain_ownership_identifier_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/domainOwnershipIdentifiers/{domainOwnershipIdentifierName}'} # type: ignore + + async def create_or_update_domain_ownership_identifier_slot( + self, + resource_group_name: str, + name: str, + domain_ownership_identifier_name: str, + slot: str, + domain_ownership_identifier: "_models.Identifier", + **kwargs: Any + ) -> "_models.Identifier": + """Creates a domain ownership identifier for web app, or updates an existing ownership identifier. + + Description for Creates a domain ownership identifier for web app, or updates an existing + ownership identifier. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param domain_ownership_identifier_name: Name of domain ownership identifier. + :type domain_ownership_identifier_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + binding for the production slot. + :type slot: str + :param domain_ownership_identifier: A JSON representation of the domain ownership properties. + :type domain_ownership_identifier: ~azure.mgmt.web.v2021_01_15.models.Identifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Identifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Identifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Identifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_domain_ownership_identifier_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainOwnershipIdentifierName': self._serialize.url("domain_ownership_identifier_name", domain_ownership_identifier_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(domain_ownership_identifier, 'Identifier') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Identifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_domain_ownership_identifier_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/domainOwnershipIdentifiers/{domainOwnershipIdentifierName}'} # type: ignore + + async def delete_domain_ownership_identifier_slot( + self, + resource_group_name: str, + name: str, + domain_ownership_identifier_name: str, + slot: str, + **kwargs: Any + ) -> None: + """Deletes a domain ownership identifier for a web app. + + Description for Deletes a domain ownership identifier for a web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param domain_ownership_identifier_name: Name of domain ownership identifier. + :type domain_ownership_identifier_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + binding for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_domain_ownership_identifier_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainOwnershipIdentifierName': self._serialize.url("domain_ownership_identifier_name", domain_ownership_identifier_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_domain_ownership_identifier_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/domainOwnershipIdentifiers/{domainOwnershipIdentifierName}'} # type: ignore + + async def update_domain_ownership_identifier_slot( + self, + resource_group_name: str, + name: str, + domain_ownership_identifier_name: str, + slot: str, + domain_ownership_identifier: "_models.Identifier", + **kwargs: Any + ) -> "_models.Identifier": + """Creates a domain ownership identifier for web app, or updates an existing ownership identifier. + + Description for Creates a domain ownership identifier for web app, or updates an existing + ownership identifier. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param domain_ownership_identifier_name: Name of domain ownership identifier. + :type domain_ownership_identifier_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + binding for the production slot. + :type slot: str + :param domain_ownership_identifier: A JSON representation of the domain ownership properties. + :type domain_ownership_identifier: ~azure.mgmt.web.v2021_01_15.models.Identifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Identifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Identifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Identifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_domain_ownership_identifier_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainOwnershipIdentifierName': self._serialize.url("domain_ownership_identifier_name", domain_ownership_identifier_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(domain_ownership_identifier, 'Identifier') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Identifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_domain_ownership_identifier_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/domainOwnershipIdentifiers/{domainOwnershipIdentifierName}'} # type: ignore + + async def get_ms_deploy_status_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.MSDeployStatus": + """Get the status of the last MSDeploy operation. + + Description for Get the status of the last MSDeploy operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MSDeployStatus, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MSDeployStatus + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_ms_deploy_status_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_ms_deploy_status_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/extensions/MSDeploy'} # type: ignore + + async def _create_ms_deploy_operation_slot_initial( + self, + resource_group_name: str, + name: str, + slot: str, + ms_deploy: "_models.MSDeploy", + **kwargs: Any + ) -> "_models.MSDeployStatus": + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_ms_deploy_operation_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(ms_deploy, 'MSDeploy') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_ms_deploy_operation_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/extensions/MSDeploy'} # type: ignore + + async def begin_create_ms_deploy_operation_slot( + self, + resource_group_name: str, + name: str, + slot: str, + ms_deploy: "_models.MSDeploy", + **kwargs: Any + ) -> AsyncLROPoller["_models.MSDeployStatus"]: + """Invoke the MSDeploy web app extension. + + Description for Invoke the MSDeploy web app extension. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param ms_deploy: Details of MSDeploy operation. + :type ms_deploy: ~azure.mgmt.web.v2021_01_15.models.MSDeploy + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 MSDeployStatus or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.MSDeployStatus] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + 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_ms_deploy_operation_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + ms_deploy=ms_deploy, + 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('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_ms_deploy_operation_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/extensions/MSDeploy'} # type: ignore + + async def get_ms_deploy_log_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.MSDeployLog": + """Get the MSDeploy Log for the last MSDeploy operation. + + Description for Get the MSDeploy Log for the last MSDeploy operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MSDeployLog, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MSDeployLog + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployLog"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_ms_deploy_log_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployLog', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_ms_deploy_log_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/extensions/MSDeploy/log'} # type: ignore + + def list_instance_functions_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.FunctionEnvelopeCollection"]: + """List the functions for a web site, or a deployment slot. + + Description for List the functions for a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either FunctionEnvelopeCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.FunctionEnvelopeCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionEnvelopeCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_functions_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('FunctionEnvelopeCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_instance_functions_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions'} # type: ignore + + async def get_functions_admin_token_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> str: + """Fetch a short lived token that can be exchanged for a master key. + + Description for Fetch a short lived token that can be exchanged for a master key. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: str, or the result of cls(response) + :rtype: str + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[str] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_functions_admin_token_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('str', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_functions_admin_token_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/admin/token'} # type: ignore + + async def get_instance_function_slot( + self, + resource_group_name: str, + name: str, + function_name: str, + slot: str, + **kwargs: Any + ) -> "_models.FunctionEnvelope": + """Get function information by its ID for web site, or a deployment slot. + + Description for Get function information by its ID for web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: FunctionEnvelope, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.FunctionEnvelope + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionEnvelope"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_function_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('FunctionEnvelope', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_function_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/{functionName}'} # type: ignore + + async def _create_instance_function_slot_initial( + self, + resource_group_name: str, + name: str, + function_name: str, + slot: str, + function_envelope: "_models.FunctionEnvelope", + **kwargs: Any + ) -> "_models.FunctionEnvelope": + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionEnvelope"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_instance_function_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(function_envelope, 'FunctionEnvelope') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('FunctionEnvelope', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_instance_function_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/{functionName}'} # type: ignore + + async def begin_create_instance_function_slot( + self, + resource_group_name: str, + name: str, + function_name: str, + slot: str, + function_envelope: "_models.FunctionEnvelope", + **kwargs: Any + ) -> AsyncLROPoller["_models.FunctionEnvelope"]: + """Create function for web site, or a deployment slot. + + Description for Create function for web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :param slot: Name of the deployment slot. + :type slot: str + :param function_envelope: Function details. + :type function_envelope: ~azure.mgmt.web.v2021_01_15.models.FunctionEnvelope + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 FunctionEnvelope or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.FunctionEnvelope] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionEnvelope"] + 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_instance_function_slot_initial( + resource_group_name=resource_group_name, + name=name, + function_name=function_name, + slot=slot, + function_envelope=function_envelope, + 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('FunctionEnvelope', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_instance_function_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/{functionName}'} # type: ignore + + async def delete_instance_function_slot( + self, + resource_group_name: str, + name: str, + function_name: str, + slot: str, + **kwargs: Any + ) -> None: + """Delete a function for web site, or a deployment slot. + + Description for Delete a function for web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_instance_function_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_instance_function_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/{functionName}'} # type: ignore + + async def create_or_update_function_secret_slot( + self, + resource_group_name: str, + name: str, + function_name: str, + key_name: str, + slot: str, + key: "_models.KeyInfo", + **kwargs: Any + ) -> "_models.KeyInfo": + """Add or update a function secret. + + Description for Add or update a function secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: The name of the function. + :type function_name: str + :param key_name: The name of the key. + :type key_name: str + :param slot: Name of the deployment slot. + :type slot: str + :param key: The key to create or update. + :type key: ~azure.mgmt.web.v2021_01_15.models.KeyInfo + :keyword callable cls: A custom type or function that will be passed the direct response + :return: KeyInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.KeyInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.KeyInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_function_secret_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(key, 'KeyInfo') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('KeyInfo', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('KeyInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_function_secret_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/{functionName}/keys/{keyName}'} # type: ignore + + async def delete_function_secret_slot( + self, + resource_group_name: str, + name: str, + function_name: str, + key_name: str, + slot: str, + **kwargs: Any + ) -> None: + """Delete a function secret. + + Description for Delete a function secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: The name of the function. + :type function_name: str + :param key_name: The name of the key. + :type key_name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_function_secret_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_function_secret_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/{functionName}/keys/{keyName}'} # type: ignore + + async def list_function_keys_slot( + self, + resource_group_name: str, + name: str, + function_name: str, + slot: str, + **kwargs: Any + ) -> "_models.StringDictionary": + """Get function keys for a function in a web site, or a deployment slot. + + Description for Get function keys for a function in a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_function_keys_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_function_keys_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/{functionName}/listkeys'} # type: ignore + + async def list_function_secrets_slot( + self, + resource_group_name: str, + name: str, + function_name: str, + slot: str, + **kwargs: Any + ) -> "_models.FunctionSecrets": + """Get function secrets for a function in a web site, or a deployment slot. + + Description for Get function secrets for a function in a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: FunctionSecrets, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.FunctionSecrets + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionSecrets"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_function_secrets_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('FunctionSecrets', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_function_secrets_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/{functionName}/listsecrets'} # type: ignore + + async def list_host_keys_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.HostKeys": + """Get host secrets for a function app. + + Description for Get host secrets for a function app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HostKeys, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HostKeys + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostKeys"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_host_keys_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HostKeys', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_host_keys_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/host/default/listkeys'} # type: ignore + + async def list_sync_status_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> None: + """This is to allow calling via powershell and ARM template. + + Description for This is to allow calling via powershell and ARM template. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.list_sync_status_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + list_sync_status_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/host/default/listsyncstatus'} # type: ignore + + async def sync_functions_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> None: + """Syncs function trigger metadata to the management database. + + Description for Syncs function trigger metadata to the management database. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.sync_functions_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + sync_functions_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/host/default/sync'} # type: ignore + + async def create_or_update_host_secret_slot( + self, + resource_group_name: str, + name: str, + key_type: str, + key_name: str, + slot: str, + key: "_models.KeyInfo", + **kwargs: Any + ) -> "_models.KeyInfo": + """Add or update a host level secret. + + Description for Add or update a host level secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param key_type: The type of host key. + :type key_type: str + :param key_name: The name of the key. + :type key_name: str + :param slot: Name of the deployment slot. + :type slot: str + :param key: The key to create or update. + :type key: ~azure.mgmt.web.v2021_01_15.models.KeyInfo + :keyword callable cls: A custom type or function that will be passed the direct response + :return: KeyInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.KeyInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.KeyInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_host_secret_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'keyType': self._serialize.url("key_type", key_type, 'str'), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(key, 'KeyInfo') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('KeyInfo', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('KeyInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_host_secret_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/host/default/{keyType}/{keyName}'} # type: ignore + + async def delete_host_secret_slot( + self, + resource_group_name: str, + name: str, + key_type: str, + key_name: str, + slot: str, + **kwargs: Any + ) -> None: + """Delete a host level secret. + + Description for Delete a host level secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param key_type: The type of host key. + :type key_type: str + :param key_name: The name of the key. + :type key_name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_host_secret_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'keyType': self._serialize.url("key_type", key_type, 'str'), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_host_secret_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/host/default/{keyType}/{keyName}'} # type: ignore + + def list_host_name_bindings_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.HostNameBindingCollection"]: + """Get hostname bindings for an app or a deployment slot. + + Description for Get hostname bindings for an app or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API gets hostname + bindings for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either HostNameBindingCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.HostNameBindingCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostNameBindingCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_host_name_bindings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('HostNameBindingCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_host_name_bindings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hostNameBindings'} # type: ignore + + async def get_host_name_binding_slot( + self, + resource_group_name: str, + name: str, + slot: str, + host_name: str, + **kwargs: Any + ) -> "_models.HostNameBinding": + """Get the named hostname binding for an app (or deployment slot, if specified). + + Description for Get the named hostname binding for an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API the named binding + for the production slot. + :type slot: str + :param host_name: Hostname in the hostname binding. + :type host_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HostNameBinding, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HostNameBinding + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostNameBinding"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_host_name_binding_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'hostName': self._serialize.url("host_name", host_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HostNameBinding', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_host_name_binding_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hostNameBindings/{hostName}'} # type: ignore + + async def create_or_update_host_name_binding_slot( + self, + resource_group_name: str, + name: str, + host_name: str, + slot: str, + host_name_binding: "_models.HostNameBinding", + **kwargs: Any + ) -> "_models.HostNameBinding": + """Creates a hostname binding for an app. + + Description for Creates a hostname binding for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param host_name: Hostname in the hostname binding. + :type host_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will create a + binding for the production slot. + :type slot: str + :param host_name_binding: Binding details. This is the JSON representation of a HostNameBinding + object. + :type host_name_binding: ~azure.mgmt.web.v2021_01_15.models.HostNameBinding + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HostNameBinding, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HostNameBinding + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostNameBinding"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_host_name_binding_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'hostName': self._serialize.url("host_name", host_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(host_name_binding, 'HostNameBinding') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HostNameBinding', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_host_name_binding_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hostNameBindings/{hostName}'} # type: ignore + + async def delete_host_name_binding_slot( + self, + resource_group_name: str, + name: str, + slot: str, + host_name: str, + **kwargs: Any + ) -> None: + """Deletes a hostname binding for an app. + + Description for Deletes a hostname binding for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + binding for the production slot. + :type slot: str + :param host_name: Hostname in the hostname binding. + :type host_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_host_name_binding_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'hostName': self._serialize.url("host_name", host_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_host_name_binding_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hostNameBindings/{hostName}'} # type: ignore + + async def get_hybrid_connection_slot( + self, + resource_group_name: str, + name: str, + namespace_name: str, + relay_name: str, + slot: str, + **kwargs: Any + ) -> "_models.HybridConnection": + """Retrieves a specific Service Bus Hybrid Connection used by this Web App. + + Description for Retrieves a specific Service Bus Hybrid Connection used by this Web App. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param namespace_name: The namespace for this hybrid connection. + :type namespace_name: str + :param relay_name: The relay name for this hybrid connection. + :type relay_name: str + :param slot: The name of the slot for the web app. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_hybrid_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_hybrid_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + async def create_or_update_hybrid_connection_slot( + self, + resource_group_name: str, + name: str, + namespace_name: str, + relay_name: str, + slot: str, + connection_envelope: "_models.HybridConnection", + **kwargs: Any + ) -> "_models.HybridConnection": + """Creates a new Hybrid Connection using a Service Bus relay. + + Description for Creates a new Hybrid Connection using a Service Bus relay. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param namespace_name: The namespace for this hybrid connection. + :type namespace_name: str + :param relay_name: The relay name for this hybrid connection. + :type relay_name: str + :param slot: The name of the slot for the web app. + :type slot: str + :param connection_envelope: The details of the hybrid connection. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_hybrid_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'HybridConnection') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_hybrid_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + async def delete_hybrid_connection_slot( + self, + resource_group_name: str, + name: str, + namespace_name: str, + relay_name: str, + slot: str, + **kwargs: Any + ) -> None: + """Removes a Hybrid Connection from this site. + + Description for Removes a Hybrid Connection from this site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param namespace_name: The namespace for this hybrid connection. + :type namespace_name: str + :param relay_name: The relay name for this hybrid connection. + :type relay_name: str + :param slot: The name of the slot for the web app. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_hybrid_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_hybrid_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + async def update_hybrid_connection_slot( + self, + resource_group_name: str, + name: str, + namespace_name: str, + relay_name: str, + slot: str, + connection_envelope: "_models.HybridConnection", + **kwargs: Any + ) -> "_models.HybridConnection": + """Creates a new Hybrid Connection using a Service Bus relay. + + Description for Creates a new Hybrid Connection using a Service Bus relay. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param namespace_name: The namespace for this hybrid connection. + :type namespace_name: str + :param relay_name: The relay name for this hybrid connection. + :type relay_name: str + :param slot: The name of the slot for the web app. + :type slot: str + :param connection_envelope: The details of the hybrid connection. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_hybrid_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'HybridConnection') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_hybrid_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + async def list_hybrid_connections_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.HybridConnection": + """Retrieves all Service Bus Hybrid Connections used by this Web App. + + Description for Retrieves all Service Bus Hybrid Connections used by this Web App. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param slot: The name of the slot for the web app. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_hybrid_connections_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_hybrid_connections_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridConnectionRelays'} # type: ignore + + async def list_relay_service_connections_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.RelayServiceConnectionEntity": + """Gets hybrid connections configured for an app (or deployment slot, if specified). + + Description for Gets hybrid connections configured for an app (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get hybrid + connections for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RelayServiceConnectionEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RelayServiceConnectionEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_relay_service_connections_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RelayServiceConnectionEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_relay_service_connections_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridconnection'} # type: ignore + + async def get_relay_service_connection_slot( + self, + resource_group_name: str, + name: str, + entity_name: str, + slot: str, + **kwargs: Any + ) -> "_models.RelayServiceConnectionEntity": + """Gets a hybrid connection configuration by its name. + + Description for Gets a hybrid connection configuration by its name. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param entity_name: Name of the hybrid connection. + :type entity_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get a hybrid + connection for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RelayServiceConnectionEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RelayServiceConnectionEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_relay_service_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'entityName': self._serialize.url("entity_name", entity_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RelayServiceConnectionEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_relay_service_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridconnection/{entityName}'} # type: ignore + + async def create_or_update_relay_service_connection_slot( + self, + resource_group_name: str, + name: str, + entity_name: str, + slot: str, + connection_envelope: "_models.RelayServiceConnectionEntity", + **kwargs: Any + ) -> "_models.RelayServiceConnectionEntity": + """Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH). + + Description for Creates a new hybrid connection configuration (PUT), or updates an existing one + (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param entity_name: Name of the hybrid connection configuration. + :type entity_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will create or + update a hybrid connection for the production slot. + :type slot: str + :param connection_envelope: Details of the hybrid connection configuration. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RelayServiceConnectionEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RelayServiceConnectionEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_relay_service_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'entityName': self._serialize.url("entity_name", entity_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'RelayServiceConnectionEntity') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RelayServiceConnectionEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_relay_service_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridconnection/{entityName}'} # type: ignore + + async def delete_relay_service_connection_slot( + self, + resource_group_name: str, + name: str, + entity_name: str, + slot: str, + **kwargs: Any + ) -> None: + """Deletes a relay service connection by its name. + + Description for Deletes a relay service connection by its name. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param entity_name: Name of the hybrid connection configuration. + :type entity_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete a + hybrid connection for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_relay_service_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'entityName': self._serialize.url("entity_name", entity_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_relay_service_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridconnection/{entityName}'} # type: ignore + + async def update_relay_service_connection_slot( + self, + resource_group_name: str, + name: str, + entity_name: str, + slot: str, + connection_envelope: "_models.RelayServiceConnectionEntity", + **kwargs: Any + ) -> "_models.RelayServiceConnectionEntity": + """Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH). + + Description for Creates a new hybrid connection configuration (PUT), or updates an existing one + (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param entity_name: Name of the hybrid connection configuration. + :type entity_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will create or + update a hybrid connection for the production slot. + :type slot: str + :param connection_envelope: Details of the hybrid connection configuration. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RelayServiceConnectionEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RelayServiceConnectionEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_relay_service_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'entityName': self._serialize.url("entity_name", entity_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'RelayServiceConnectionEntity') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RelayServiceConnectionEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_relay_service_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridconnection/{entityName}'} # type: ignore + + def list_instance_identifiers_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.WebAppInstanceStatusCollection"]: + """Gets all scale-out instances of an app. + + Description for Gets all scale-out instances of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API gets the + production slot instances. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppInstanceStatusCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppInstanceStatusCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppInstanceStatusCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_identifiers_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('WebAppInstanceStatusCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_instance_identifiers_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances'} # type: ignore + + async def get_instance_info_slot( + self, + resource_group_name: str, + name: str, + instance_id: str, + slot: str, + **kwargs: Any + ) -> "_models.WebSiteInstanceStatus": + """Gets all scale-out instances of an app. + + Description for Gets all scale-out instances of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param instance_id: + :type instance_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API gets the + production slot instances. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: WebSiteInstanceStatus, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.WebSiteInstanceStatus + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebSiteInstanceStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_info_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('WebSiteInstanceStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_info_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}'} # type: ignore + + async def get_instance_ms_deploy_status_slot( + self, + resource_group_name: str, + name: str, + slot: str, + instance_id: str, + **kwargs: Any + ) -> "_models.MSDeployStatus": + """Get the status of the last MSDeploy operation. + + Description for Get the status of the last MSDeploy operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param instance_id: ID of web app instance. + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MSDeployStatus, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MSDeployStatus + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_ms_deploy_status_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_ms_deploy_status_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/extensions/MSDeploy'} # type: ignore + + async def _create_instance_ms_deploy_operation_slot_initial( + self, + resource_group_name: str, + name: str, + slot: str, + instance_id: str, + ms_deploy: "_models.MSDeploy", + **kwargs: Any + ) -> "_models.MSDeployStatus": + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_instance_ms_deploy_operation_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(ms_deploy, 'MSDeploy') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_instance_ms_deploy_operation_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/extensions/MSDeploy'} # type: ignore + + async def begin_create_instance_ms_deploy_operation_slot( + self, + resource_group_name: str, + name: str, + slot: str, + instance_id: str, + ms_deploy: "_models.MSDeploy", + **kwargs: Any + ) -> AsyncLROPoller["_models.MSDeployStatus"]: + """Invoke the MSDeploy web app extension. + + Description for Invoke the MSDeploy web app extension. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param instance_id: ID of web app instance. + :type instance_id: str + :param ms_deploy: Details of MSDeploy operation. + :type ms_deploy: ~azure.mgmt.web.v2021_01_15.models.MSDeploy + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 MSDeployStatus or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.MSDeployStatus] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + 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_instance_ms_deploy_operation_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + instance_id=instance_id, + ms_deploy=ms_deploy, + 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('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_instance_ms_deploy_operation_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/extensions/MSDeploy'} # type: ignore + + async def get_instance_ms_deploy_log_slot( + self, + resource_group_name: str, + name: str, + slot: str, + instance_id: str, + **kwargs: Any + ) -> "_models.MSDeployLog": + """Get the MSDeploy Log for the last MSDeploy operation. + + Description for Get the MSDeploy Log for the last MSDeploy operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param instance_id: ID of web app instance. + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MSDeployLog, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MSDeployLog + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployLog"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_ms_deploy_log_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployLog', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_ms_deploy_log_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/extensions/MSDeploy/log'} # type: ignore + + def list_instance_processes_slot( + self, + resource_group_name: str, + name: str, + slot: str, + instance_id: str, + **kwargs: Any + ) -> AsyncIterable["_models.ProcessInfoCollection"]: + """Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site. + + Description for Get list of processes for a web site, or a deployment slot, or for a specific + scaled-out instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :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 ProcessInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_processes_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_instance_processes_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/processes'} # type: ignore + + async def get_instance_process_slot( + self, + resource_group_name: str, + name: str, + process_id: str, + slot: str, + instance_id: str, + **kwargs: Any + ) -> "_models.ProcessInfo": + """Get process information by its ID for a specific scaled-out instance in a web site. + + Description for Get process information by its ID for a specific scaled-out instance in a web + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ProcessInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ProcessInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_process_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ProcessInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_process_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/processes/{processId}'} # type: ignore + + async def delete_instance_process_slot( + self, + resource_group_name: str, + name: str, + process_id: str, + slot: str, + instance_id: str, + **kwargs: Any + ) -> None: + """Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web site. + + Description for Terminate a process by its ID for a web site, or a deployment slot, or specific + scaled-out instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_instance_process_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_instance_process_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/processes/{processId}'} # type: ignore + + async def get_instance_process_dump_slot( + self, + resource_group_name: str, + name: str, + process_id: str, + slot: str, + instance_id: str, + **kwargs: Any + ) -> IO: + """Get a memory dump of a process by its ID for a specific scaled-out instance in a web site. + + Description for Get a memory dump of a process by its ID for a specific scaled-out instance in + a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[IO] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_process_dump_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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=True, **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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_process_dump_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/processes/{processId}/dump'} # type: ignore + + def list_instance_process_modules_slot( + self, + resource_group_name: str, + name: str, + process_id: str, + slot: str, + instance_id: str, + **kwargs: Any + ) -> AsyncIterable["_models.ProcessModuleInfoCollection"]: + """List module information for a process by its ID for a specific scaled-out instance in a web site. + + Description for List module information for a process by its ID for a specific scaled-out + instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :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 ProcessModuleInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessModuleInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_process_modules_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessModuleInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_instance_process_modules_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/processes/{processId}/modules'} # type: ignore + + async def get_instance_process_module_slot( + self, + resource_group_name: str, + name: str, + process_id: str, + base_address: str, + slot: str, + instance_id: str, + **kwargs: Any + ) -> "_models.ProcessModuleInfo": + """Get process information by its ID for a specific scaled-out instance in a web site. + + Description for Get process information by its ID for a specific scaled-out instance in a web + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param base_address: Module base address. + :type base_address: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ProcessModuleInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessModuleInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_process_module_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'baseAddress': self._serialize.url("base_address", base_address, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ProcessModuleInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_process_module_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/processes/{processId}/modules/{baseAddress}'} # type: ignore + + def list_instance_process_threads_slot( + self, + resource_group_name: str, + name: str, + process_id: str, + slot: str, + instance_id: str, + **kwargs: Any + ) -> AsyncIterable["_models.ProcessThreadInfoCollection"]: + """List the threads in a process by its ID for a specific scaled-out instance in a web site. + + Description for List the threads in a process by its ID for a specific scaled-out instance in a + web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :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 ProcessThreadInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessThreadInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessThreadInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_process_threads_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessThreadInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_instance_process_threads_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/processes/{processId}/threads'} # type: ignore + + async def is_cloneable_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.SiteCloneability": + """Shows whether an app can be cloned to another resource group or subscription. + + Description for Shows whether an app can be cloned to another resource group or subscription. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. By default, this API returns information on the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteCloneability, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteCloneability + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteCloneability"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.is_cloneable_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteCloneability', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + is_cloneable_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/iscloneable'} # type: ignore + + def list_site_backups_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.BackupItemCollection"]: + """Gets existing backups of an app. + + Description for Gets existing backups of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get backups + of the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either BackupItemCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.BackupItemCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItemCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_backups_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(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('BackupItemCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_site_backups_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/listbackups'} # type: ignore + + async def list_sync_function_triggers_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.FunctionSecrets": + """This is to allow calling via powershell and ARM template. + + Description for This is to allow calling via powershell and ARM template. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: FunctionSecrets, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.FunctionSecrets + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionSecrets"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_sync_function_triggers_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('FunctionSecrets', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_sync_function_triggers_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/listsyncfunctiontriggerstatus'} # type: ignore + + async def get_migrate_my_sql_status_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.MigrateMySqlStatus": + """Returns the status of MySql in app migration, if one is active, and whether or not MySql in app is enabled. + + Description for Returns the status of MySql in app migration, if one is active, and whether or + not MySql in app is enabled. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MigrateMySqlStatus, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MigrateMySqlStatus + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MigrateMySqlStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_migrate_my_sql_status_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MigrateMySqlStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_migrate_my_sql_status_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/migratemysql/status'} # type: ignore + + async def get_swift_virtual_network_connection_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.SwiftVirtualNetwork": + """Gets a Swift Virtual Network connection. + + Description for Gets a Swift Virtual Network connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get a + gateway for the production slot's Virtual Network. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SwiftVirtualNetwork, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SwiftVirtualNetwork"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_swift_virtual_network_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SwiftVirtualNetwork', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_swift_virtual_network_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkConfig/virtualNetwork'} # type: ignore + + async def create_or_update_swift_virtual_network_connection_with_check_slot( + self, + resource_group_name: str, + name: str, + slot: str, + connection_envelope: "_models.SwiftVirtualNetwork", + **kwargs: Any + ) -> "_models.SwiftVirtualNetwork": + """Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not + in use by another App Service Plan other than the one this App is in. + + Description for Integrates this Web App with a Virtual Network. This requires that 1) + "swiftSupported" is true when doing a GET against this resource, and 2) that the target Subnet + has already been delegated, and is not + in use by another App Service Plan other than the one this App is in. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will add or + update connections for the production slot. + :type slot: str + :param connection_envelope: Properties of the Virtual Network connection. See example. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SwiftVirtualNetwork, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SwiftVirtualNetwork"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_swift_virtual_network_connection_with_check_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'SwiftVirtualNetwork') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SwiftVirtualNetwork', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_swift_virtual_network_connection_with_check_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkConfig/virtualNetwork'} # type: ignore + + async def delete_swift_virtual_network_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> None: + """Deletes a Swift Virtual Network connection from an app (or deployment slot). + + Description for Deletes a Swift Virtual Network connection from an app (or deployment slot). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + connection for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_swift_virtual_network_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_swift_virtual_network_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkConfig/virtualNetwork'} # type: ignore + + async def update_swift_virtual_network_connection_with_check_slot( + self, + resource_group_name: str, + name: str, + slot: str, + connection_envelope: "_models.SwiftVirtualNetwork", + **kwargs: Any + ) -> "_models.SwiftVirtualNetwork": + """Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not + in use by another App Service Plan other than the one this App is in. + + Description for Integrates this Web App with a Virtual Network. This requires that 1) + "swiftSupported" is true when doing a GET against this resource, and 2) that the target Subnet + has already been delegated, and is not + in use by another App Service Plan other than the one this App is in. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will add or + update connections for the production slot. + :type slot: str + :param connection_envelope: Properties of the Virtual Network connection. See example. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SwiftVirtualNetwork, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SwiftVirtualNetwork"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_swift_virtual_network_connection_with_check_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'SwiftVirtualNetwork') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SwiftVirtualNetwork', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_swift_virtual_network_connection_with_check_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkConfig/virtualNetwork'} # type: ignore + + async def list_network_features_slot( + self, + resource_group_name: str, + name: str, + view: str, + slot: str, + **kwargs: Any + ) -> "_models.NetworkFeatures": + """Gets all network features used by the app (or deployment slot, if specified). + + Description for Gets all network features used by the app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param view: The type of view. Only "summary" is supported at this time. + :type view: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get network + features for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkFeatures, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.NetworkFeatures + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.NetworkFeatures"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_network_features_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'view': self._serialize.url("view", view, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('NetworkFeatures', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_network_features_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkFeatures/{view}'} # type: ignore + + async def get_network_trace_operation_slot( + self, + resource_group_name: str, + name: str, + operation_id: str, + slot: str, + **kwargs: Any + ) -> List["_models.NetworkTrace"]: + """Gets a named operation for a network trace capturing (or deployment slot, if specified). + + Description for Gets a named operation for a network trace capturing (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param operation_id: GUID of the operation. + :type operation_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get an + operation for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of NetworkTrace, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_network_trace_operation_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_network_trace_operation_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkTrace/operationresults/{operationId}'} # type: ignore + + async def start_web_site_network_trace_slot( + self, + resource_group_name: str, + name: str, + slot: str, + duration_in_seconds: Optional[int] = None, + max_frame_length: Optional[int] = None, + sas_url: Optional[str] = None, + **kwargs: Any + ) -> str: + """Start capturing network packets for the site (To be deprecated). + + Description for Start capturing network packets for the site (To be deprecated). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param slot: The name of the slot for this web app. + :type slot: str + :param duration_in_seconds: The duration to keep capturing in seconds. + :type duration_in_seconds: int + :param max_frame_length: The maximum frame length in bytes (Optional). + :type max_frame_length: int + :param sas_url: The Blob URL to store capture file. + :type sas_url: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: str, or the result of cls(response) + :rtype: str + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[str] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.start_web_site_network_trace_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if duration_in_seconds is not None: + query_parameters['durationInSeconds'] = self._serialize.query("duration_in_seconds", duration_in_seconds, 'int') + if max_frame_length is not None: + query_parameters['maxFrameLength'] = self._serialize.query("max_frame_length", max_frame_length, 'int') + if sas_url is not None: + query_parameters['sasUrl'] = self._serialize.query("sas_url", sas_url, 'str') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('str', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + start_web_site_network_trace_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkTrace/start'} # type: ignore + + async def _start_web_site_network_trace_operation_slot_initial( + self, + resource_group_name: str, + name: str, + slot: str, + duration_in_seconds: Optional[int] = None, + max_frame_length: Optional[int] = None, + sas_url: Optional[str] = None, + **kwargs: Any + ) -> List["_models.NetworkTrace"]: + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._start_web_site_network_trace_operation_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if duration_in_seconds is not None: + query_parameters['durationInSeconds'] = self._serialize.query("duration_in_seconds", duration_in_seconds, 'int') + if max_frame_length is not None: + query_parameters['maxFrameLength'] = self._serialize.query("max_frame_length", max_frame_length, 'int') + if sas_url is not None: + query_parameters['sasUrl'] = self._serialize.query("sas_url", sas_url, 'str') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _start_web_site_network_trace_operation_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkTrace/startOperation'} # type: ignore + + async def begin_start_web_site_network_trace_operation_slot( + self, + resource_group_name: str, + name: str, + slot: str, + duration_in_seconds: Optional[int] = None, + max_frame_length: Optional[int] = None, + sas_url: Optional[str] = None, + **kwargs: Any + ) -> AsyncLROPoller[List["_models.NetworkTrace"]]: + """Start capturing network packets for the site. + + Description for Start capturing network packets for the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param slot: The name of the slot for this web app. + :type slot: str + :param duration_in_seconds: The duration to keep capturing in seconds. + :type duration_in_seconds: int + :param max_frame_length: The maximum frame length in bytes (Optional). + :type max_frame_length: int + :param sas_url: The Blob URL to store capture file. + :type sas_url: 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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 list of NetworkTrace or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace]] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + 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._start_web_site_network_trace_operation_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + duration_in_seconds=duration_in_seconds, + max_frame_length=max_frame_length, + sas_url=sas_url, + 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('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_start_web_site_network_trace_operation_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkTrace/startOperation'} # type: ignore + + async def stop_web_site_network_trace_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> None: + """Stop ongoing capturing network packets for the site. + + Description for Stop ongoing capturing network packets for the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param slot: The name of the slot for this web app. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.stop_web_site_network_trace_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + stop_web_site_network_trace_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkTrace/stop'} # type: ignore + + async def get_network_traces_slot( + self, + resource_group_name: str, + name: str, + operation_id: str, + slot: str, + **kwargs: Any + ) -> List["_models.NetworkTrace"]: + """Gets a named operation for a network trace capturing (or deployment slot, if specified). + + Description for Gets a named operation for a network trace capturing (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param operation_id: GUID of the operation. + :type operation_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get an + operation for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of NetworkTrace, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_network_traces_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_network_traces_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkTrace/{operationId}'} # type: ignore + + async def get_network_trace_operation_slot_v2( + self, + resource_group_name: str, + name: str, + operation_id: str, + slot: str, + **kwargs: Any + ) -> List["_models.NetworkTrace"]: + """Gets a named operation for a network trace capturing (or deployment slot, if specified). + + Description for Gets a named operation for a network trace capturing (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param operation_id: GUID of the operation. + :type operation_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get an + operation for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of NetworkTrace, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_network_trace_operation_slot_v2.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_network_trace_operation_slot_v2.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkTraces/current/operationresults/{operationId}'} # type: ignore + + async def get_network_traces_slot_v2( + self, + resource_group_name: str, + name: str, + operation_id: str, + slot: str, + **kwargs: Any + ) -> List["_models.NetworkTrace"]: + """Gets a named operation for a network trace capturing (or deployment slot, if specified). + + Description for Gets a named operation for a network trace capturing (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param operation_id: GUID of the operation. + :type operation_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get an + operation for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of NetworkTrace, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_network_traces_slot_v2.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_network_traces_slot_v2.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkTraces/{operationId}'} # type: ignore + + async def generate_new_site_publishing_password_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> None: + """Generates a new publishing password for an app (or deployment slot, if specified). + + Description for Generates a new publishing password for an app (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API generate a new + publishing password for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.generate_new_site_publishing_password_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + generate_new_site_publishing_password_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/newpassword'} # type: ignore + + def list_perf_mon_counters_slot( + self, + resource_group_name: str, + name: str, + slot: str, + filter: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.PerfMonCounterCollection"]: + """Gets perfmon counters for web app. + + Description for Gets perfmon counters for web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param filter: Return only usages/metrics specified in the filter. Filter conforms to odata + syntax. Example: $filter=(startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z + and timeGrain eq duration'[Hour|Minute|Day]'. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PerfMonCounterCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.PerfMonCounterCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PerfMonCounterCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_perf_mon_counters_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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 filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('PerfMonCounterCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_perf_mon_counters_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/perfcounters'} # type: ignore + + async def get_site_php_error_log_flag_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.SitePhpErrorLogFlag": + """Gets web app's event logs. + + Description for Gets web app's event logs. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SitePhpErrorLogFlag, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SitePhpErrorLogFlag + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SitePhpErrorLogFlag"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_php_error_log_flag_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SitePhpErrorLogFlag', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_php_error_log_flag_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/phplogging'} # type: ignore + + async def list_premier_add_ons_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.PremierAddOn": + """Gets the premier add-ons of an app. + + Description for Gets the premier add-ons of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + premier add-ons for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PremierAddOn, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOn"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_premier_add_ons_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PremierAddOn', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_premier_add_ons_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/premieraddons'} # type: ignore + + async def get_premier_add_on_slot( + self, + resource_group_name: str, + name: str, + premier_add_on_name: str, + slot: str, + **kwargs: Any + ) -> "_models.PremierAddOn": + """Gets a named add-on of an app. + + Description for Gets a named add-on of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param premier_add_on_name: Add-on name. + :type premier_add_on_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + named add-on for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PremierAddOn, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOn"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_premier_add_on_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'premierAddOnName': self._serialize.url("premier_add_on_name", premier_add_on_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PremierAddOn', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_premier_add_on_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/premieraddons/{premierAddOnName}'} # type: ignore + + async def add_premier_add_on_slot( + self, + resource_group_name: str, + name: str, + premier_add_on_name: str, + slot: str, + premier_add_on: "_models.PremierAddOn", + **kwargs: Any + ) -> "_models.PremierAddOn": + """Updates a named add-on of an app. + + Description for Updates a named add-on of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param premier_add_on_name: Add-on name. + :type premier_add_on_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + named add-on for the production slot. + :type slot: str + :param premier_add_on: A JSON representation of the edited premier add-on. + :type premier_add_on: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PremierAddOn, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOn"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.add_premier_add_on_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'premierAddOnName': self._serialize.url("premier_add_on_name", premier_add_on_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(premier_add_on, 'PremierAddOn') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PremierAddOn', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + add_premier_add_on_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/premieraddons/{premierAddOnName}'} # type: ignore + + async def delete_premier_add_on_slot( + self, + resource_group_name: str, + name: str, + premier_add_on_name: str, + slot: str, + **kwargs: Any + ) -> None: + """Delete a premier add-on from an app. + + Description for Delete a premier add-on from an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param premier_add_on_name: Add-on name. + :type premier_add_on_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + named add-on for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_premier_add_on_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'premierAddOnName': self._serialize.url("premier_add_on_name", premier_add_on_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_premier_add_on_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/premieraddons/{premierAddOnName}'} # type: ignore + + async def update_premier_add_on_slot( + self, + resource_group_name: str, + name: str, + premier_add_on_name: str, + slot: str, + premier_add_on: "_models.PremierAddOnPatchResource", + **kwargs: Any + ) -> "_models.PremierAddOn": + """Updates a named add-on of an app. + + Description for Updates a named add-on of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param premier_add_on_name: Add-on name. + :type premier_add_on_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + named add-on for the production slot. + :type slot: str + :param premier_add_on: A JSON representation of the edited premier add-on. + :type premier_add_on: ~azure.mgmt.web.v2021_01_15.models.PremierAddOnPatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PremierAddOn, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOn"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_premier_add_on_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'premierAddOnName': self._serialize.url("premier_add_on_name", premier_add_on_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(premier_add_on, 'PremierAddOnPatchResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PremierAddOn', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_premier_add_on_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/premieraddons/{premierAddOnName}'} # type: ignore + + async def get_private_access_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.PrivateAccess": + """Gets data around private site access enablement and authorized Virtual Networks that can access the site. + + Description for Gets data around private site access enablement and authorized Virtual Networks + that can access the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param slot: The name of the slot for the web app. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateAccess, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PrivateAccess + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateAccess"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_access_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateAccess', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_access_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateAccess/virtualNetworks'} # type: ignore + + async def put_private_access_vnet_slot( + self, + resource_group_name: str, + name: str, + slot: str, + access: "_models.PrivateAccess", + **kwargs: Any + ) -> "_models.PrivateAccess": + """Sets data around private site access enablement and authorized Virtual Networks that can access the site. + + Description for Sets data around private site access enablement and authorized Virtual Networks + that can access the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param slot: The name of the slot for the web app. + :type slot: str + :param access: The information for the private access. + :type access: ~azure.mgmt.web.v2021_01_15.models.PrivateAccess + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateAccess, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PrivateAccess + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateAccess"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.put_private_access_vnet_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(access, 'PrivateAccess') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateAccess', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + put_private_access_vnet_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateAccess/virtualNetworks'} # type: ignore + + def get_private_endpoint_connection_list_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.PrivateEndpointConnectionCollection"]: + """Gets the list of private endpoint connections associated with a site. + + Description for Gets the list of private endpoint connections associated with a site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :param slot: Name of the site deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PrivateEndpointConnectionCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.PrivateEndpointConnectionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_private_endpoint_connection_list_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PrivateEndpointConnectionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + get_private_endpoint_connection_list_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateEndpointConnections'} # type: ignore + + async def get_private_endpoint_connection_slot( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + slot: str, + **kwargs: Any + ) -> "_models.RemotePrivateEndpointConnectionARMResource": + """Gets a private endpoint connection. + + Description for Gets a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :param private_endpoint_connection_name: Name of the private endpoint connection. + :type private_endpoint_connection_name: str + :param slot: Name of the site deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RemotePrivateEndpointConnectionARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_endpoint_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_endpoint_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def _approve_or_reject_private_endpoint_connection_slot_initial( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + slot: str, + private_endpoint_wrapper: "_models.PrivateLinkConnectionApprovalRequestResource", + **kwargs: Any + ) -> "_models.RemotePrivateEndpointConnectionARMResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._approve_or_reject_private_endpoint_connection_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(private_endpoint_wrapper, 'PrivateLinkConnectionApprovalRequestResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _approve_or_reject_private_endpoint_connection_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def begin_approve_or_reject_private_endpoint_connection_slot( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + slot: str, + private_endpoint_wrapper: "_models.PrivateLinkConnectionApprovalRequestResource", + **kwargs: Any + ) -> AsyncLROPoller["_models.RemotePrivateEndpointConnectionARMResource"]: + """Approves or rejects a private endpoint connection. + + Description for Approves or rejects a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :param private_endpoint_connection_name: + :type private_endpoint_connection_name: str + :param slot: + :type slot: str + :param private_endpoint_wrapper: + :type private_endpoint_wrapper: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkConnectionApprovalRequestResource + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 RemotePrivateEndpointConnectionARMResource or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + 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._approve_or_reject_private_endpoint_connection_slot_initial( + resource_group_name=resource_group_name, + name=name, + private_endpoint_connection_name=private_endpoint_connection_name, + slot=slot, + private_endpoint_wrapper=private_endpoint_wrapper, + 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('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_approve_or_reject_private_endpoint_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def _delete_private_endpoint_connection_slot_initial( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + slot: str, + **kwargs: Any + ) -> Any: + cls = kwargs.pop('cls', None) # type: ClsType[Any] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_private_endpoint_connection_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('object', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('object', pipeline_response) + + if response.status_code == 204: + deserialized = self._deserialize('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _delete_private_endpoint_connection_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def begin_delete_private_endpoint_connection_slot( + self, + resource_group_name: str, + name: str, + private_endpoint_connection_name: str, + slot: str, + **kwargs: Any + ) -> AsyncLROPoller[Any]: + """Deletes a private endpoint connection. + + Description for Deletes a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :param private_endpoint_connection_name: + :type private_endpoint_connection_name: str + :param slot: + :type slot: 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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 any or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[any] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[Any] + 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_private_endpoint_connection_slot_initial( + resource_group_name=resource_group_name, + name=name, + private_endpoint_connection_name=private_endpoint_connection_name, + slot=slot, + 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('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete_private_endpoint_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + async def get_private_link_resources_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.PrivateLinkResourcesWrapper": + """Gets the private link resources. + + Description for Gets the private link resources. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :param slot: + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateLinkResourcesWrapper, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkResourcesWrapper + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourcesWrapper"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_link_resources_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateLinkResourcesWrapper', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_link_resources_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateLinkResources'} # type: ignore + + def list_processes_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.ProcessInfoCollection"]: + """Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site. + + Description for Get list of processes for a web site, or a deployment slot, or for a specific + scaled-out instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ProcessInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_processes_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_processes_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/processes'} # type: ignore + + async def get_process_slot( + self, + resource_group_name: str, + name: str, + process_id: str, + slot: str, + **kwargs: Any + ) -> "_models.ProcessInfo": + """Get process information by its ID for a specific scaled-out instance in a web site. + + Description for Get process information by its ID for a specific scaled-out instance in a web + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ProcessInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ProcessInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_process_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ProcessInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_process_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/processes/{processId}'} # type: ignore + + async def delete_process_slot( + self, + resource_group_name: str, + name: str, + process_id: str, + slot: str, + **kwargs: Any + ) -> None: + """Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web site. + + Description for Terminate a process by its ID for a web site, or a deployment slot, or specific + scaled-out instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_process_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_process_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/processes/{processId}'} # type: ignore + + async def get_process_dump_slot( + self, + resource_group_name: str, + name: str, + process_id: str, + slot: str, + **kwargs: Any + ) -> IO: + """Get a memory dump of a process by its ID for a specific scaled-out instance in a web site. + + Description for Get a memory dump of a process by its ID for a specific scaled-out instance in + a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[IO] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_process_dump_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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=True, **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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_process_dump_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/processes/{processId}/dump'} # type: ignore + + def list_process_modules_slot( + self, + resource_group_name: str, + name: str, + process_id: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.ProcessModuleInfoCollection"]: + """List module information for a process by its ID for a specific scaled-out instance in a web site. + + Description for List module information for a process by its ID for a specific scaled-out + instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ProcessModuleInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessModuleInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_process_modules_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessModuleInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_process_modules_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/processes/{processId}/modules'} # type: ignore + + async def get_process_module_slot( + self, + resource_group_name: str, + name: str, + process_id: str, + base_address: str, + slot: str, + **kwargs: Any + ) -> "_models.ProcessModuleInfo": + """Get process information by its ID for a specific scaled-out instance in a web site. + + Description for Get process information by its ID for a specific scaled-out instance in a web + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param base_address: Module base address. + :type base_address: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ProcessModuleInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessModuleInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_process_module_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'baseAddress': self._serialize.url("base_address", base_address, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ProcessModuleInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_process_module_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/processes/{processId}/modules/{baseAddress}'} # type: ignore + + def list_process_threads_slot( + self, + resource_group_name: str, + name: str, + process_id: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.ProcessThreadInfoCollection"]: + """List the threads in a process by its ID for a specific scaled-out instance in a web site. + + Description for List the threads in a process by its ID for a specific scaled-out instance in a + web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ProcessThreadInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessThreadInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessThreadInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_process_threads_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessThreadInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_process_threads_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/processes/{processId}/threads'} # type: ignore + + def list_public_certificates_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.PublicCertificateCollection"]: + """Get public certificates for an app or a deployment slot. + + Description for Get public certificates for an app or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API gets hostname + bindings for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PublicCertificateCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.PublicCertificateCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PublicCertificateCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_public_certificates_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PublicCertificateCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_public_certificates_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/publicCertificates'} # type: ignore + + async def get_public_certificate_slot( + self, + resource_group_name: str, + name: str, + slot: str, + public_certificate_name: str, + **kwargs: Any + ) -> "_models.PublicCertificate": + """Get the named public certificate for an app (or deployment slot, if specified). + + Description for Get the named public certificate for an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API the named binding + for the production slot. + :type slot: str + :param public_certificate_name: Public certificate name. + :type public_certificate_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PublicCertificate, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PublicCertificate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PublicCertificate"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_public_certificate_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'publicCertificateName': self._serialize.url("public_certificate_name", public_certificate_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PublicCertificate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_public_certificate_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/publicCertificates/{publicCertificateName}'} # type: ignore + + async def create_or_update_public_certificate_slot( + self, + resource_group_name: str, + name: str, + public_certificate_name: str, + slot: str, + public_certificate: "_models.PublicCertificate", + **kwargs: Any + ) -> "_models.PublicCertificate": + """Creates a hostname binding for an app. + + Description for Creates a hostname binding for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param public_certificate_name: Public certificate name. + :type public_certificate_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will create a + binding for the production slot. + :type slot: str + :param public_certificate: Public certificate details. This is the JSON representation of a + PublicCertificate object. + :type public_certificate: ~azure.mgmt.web.v2021_01_15.models.PublicCertificate + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PublicCertificate, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PublicCertificate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PublicCertificate"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_public_certificate_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'publicCertificateName': self._serialize.url("public_certificate_name", public_certificate_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(public_certificate, 'PublicCertificate') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PublicCertificate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_public_certificate_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/publicCertificates/{publicCertificateName}'} # type: ignore + + async def delete_public_certificate_slot( + self, + resource_group_name: str, + name: str, + slot: str, + public_certificate_name: str, + **kwargs: Any + ) -> None: + """Deletes a hostname binding for an app. + + Description for Deletes a hostname binding for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + binding for the production slot. + :type slot: str + :param public_certificate_name: Public certificate name. + :type public_certificate_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_public_certificate_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'publicCertificateName': self._serialize.url("public_certificate_name", public_certificate_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_public_certificate_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/publicCertificates/{publicCertificateName}'} # type: ignore + + async def list_publishing_profile_xml_with_secrets_slot( + self, + resource_group_name: str, + name: str, + slot: str, + publishing_profile_options: "_models.CsmPublishingProfileOptions", + **kwargs: Any + ) -> IO: + """Gets the publishing profile for an app (or deployment slot, if specified). + + Description for Gets the publishing profile for an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + publishing profile for the production slot. + :type slot: str + :param publishing_profile_options: Specifies publishingProfileOptions for publishing profile. + For example, use {"format": "FileZilla3"} to get a FileZilla publishing profile. + :type publishing_profile_options: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingProfileOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[IO] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/xml" + + # Construct URL + url = self.list_publishing_profile_xml_with_secrets_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(publishing_profile_options, 'CsmPublishingProfileOptions') + 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=True, **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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_publishing_profile_xml_with_secrets_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/publishxml'} # type: ignore + + async def reset_slot_configuration_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> None: + """Resets the configuration settings of the current slot if they were previously modified by calling the API with POST. + + Description for Resets the configuration settings of the current slot if they were previously + modified by calling the API with POST. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API resets + configuration settings for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.reset_slot_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reset_slot_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/resetSlotConfig'} # type: ignore + + async def restart_slot( + self, + resource_group_name: str, + name: str, + slot: str, + soft_restart: Optional[bool] = None, + synchronous: Optional[bool] = None, + **kwargs: Any + ) -> None: + """Restarts an app (or deployment slot, if specified). + + Description for Restarts an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will restart the + production slot. + :type slot: str + :param soft_restart: Specify true to apply the configuration settings and restarts the app only + if necessary. By default, the API always restarts and reprovisions the app. + :type soft_restart: bool + :param synchronous: Specify true to block until the app is restarted. By default, it is set to + false, and the API responds immediately (asynchronous). + :type synchronous: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.restart_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if soft_restart is not None: + query_parameters['softRestart'] = self._serialize.query("soft_restart", soft_restart, 'bool') + if synchronous is not None: + query_parameters['synchronous'] = self._serialize.query("synchronous", synchronous, 'bool') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + restart_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/restart'} # type: ignore + + async def _restore_from_backup_blob_slot_initial( + self, + resource_group_name: str, + name: str, + slot: str, + request: "_models.RestoreRequest", + **kwargs: Any + ) -> 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._restore_from_backup_blob_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'RestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _restore_from_backup_blob_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/restoreFromBackupBlob'} # type: ignore + + async def begin_restore_from_backup_blob_slot( + self, + resource_group_name: str, + name: str, + slot: str, + request: "_models.RestoreRequest", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Restores an app from a backup blob in Azure Storage. + + Description for Restores an app from a backup blob in Azure Storage. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will restore a + backup of the production slot. + :type slot: str + :param request: Information on restore request . + :type request: ~azure.mgmt.web.v2021_01_15.models.RestoreRequest + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._restore_from_backup_blob_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + request=request, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_restore_from_backup_blob_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/restoreFromBackupBlob'} # type: ignore + + async def _restore_from_deleted_app_slot_initial( + self, + resource_group_name: str, + name: str, + slot: str, + restore_request: "_models.DeletedAppRestoreRequest", + **kwargs: Any + ) -> 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._restore_from_deleted_app_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(restore_request, 'DeletedAppRestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _restore_from_deleted_app_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/restoreFromDeletedApp'} # type: ignore + + async def begin_restore_from_deleted_app_slot( + self, + resource_group_name: str, + name: str, + slot: str, + restore_request: "_models.DeletedAppRestoreRequest", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Restores a deleted web app to this web app. + + Description for Restores a deleted web app to this web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param restore_request: Deleted web app restore information. + :type restore_request: ~azure.mgmt.web.v2021_01_15.models.DeletedAppRestoreRequest + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._restore_from_deleted_app_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + restore_request=restore_request, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_restore_from_deleted_app_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/restoreFromDeletedApp'} # type: ignore + + async def _restore_snapshot_slot_initial( + self, + resource_group_name: str, + name: str, + slot: str, + restore_request: "_models.SnapshotRestoreRequest", + **kwargs: Any + ) -> 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._restore_snapshot_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(restore_request, 'SnapshotRestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _restore_snapshot_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/restoreSnapshot'} # type: ignore + + async def begin_restore_snapshot_slot( + self, + resource_group_name: str, + name: str, + slot: str, + restore_request: "_models.SnapshotRestoreRequest", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Restores a web app from a snapshot. + + Description for Restores a web app from a snapshot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param restore_request: Snapshot restore settings. Snapshot information can be obtained by + calling GetDeletedSites or GetSiteSnapshots API. + :type restore_request: ~azure.mgmt.web.v2021_01_15.models.SnapshotRestoreRequest + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._restore_snapshot_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + restore_request=restore_request, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_restore_snapshot_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/restoreSnapshot'} # type: ignore + + def list_site_extensions_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.SiteExtensionInfoCollection"]: + """Get list of siteextensions for a web site, or a deployment slot. + + Description for Get list of siteextensions for a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API uses the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SiteExtensionInfoCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.SiteExtensionInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteExtensionInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_extensions_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SiteExtensionInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_site_extensions_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/siteextensions'} # type: ignore + + async def get_site_extension_slot( + self, + resource_group_name: str, + name: str, + site_extension_id: str, + slot: str, + **kwargs: Any + ) -> "_models.SiteExtensionInfo": + """Get site extension information by its ID for a web site, or a deployment slot. + + Description for Get site extension information by its ID for a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param site_extension_id: Site extension name. + :type site_extension_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API uses the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteExtensionInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteExtensionInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteExtensionInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_extension_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'siteExtensionId': self._serialize.url("site_extension_id", site_extension_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteExtensionInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_extension_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/siteextensions/{siteExtensionId}'} # type: ignore + + async def _install_site_extension_slot_initial( + self, + resource_group_name: str, + name: str, + site_extension_id: str, + slot: str, + **kwargs: Any + ) -> "_models.SiteExtensionInfo": + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteExtensionInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._install_site_extension_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'siteExtensionId': self._serialize.url("site_extension_id", site_extension_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.put(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, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('SiteExtensionInfo', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('SiteExtensionInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _install_site_extension_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/siteextensions/{siteExtensionId}'} # type: ignore + + async def begin_install_site_extension_slot( + self, + resource_group_name: str, + name: str, + site_extension_id: str, + slot: str, + **kwargs: Any + ) -> AsyncLROPoller["_models.SiteExtensionInfo"]: + """Install site extension on a web site, or a deployment slot. + + Description for Install site extension on a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param site_extension_id: Site extension name. + :type site_extension_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API uses the + production slot. + :type slot: 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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 SiteExtensionInfo or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.SiteExtensionInfo] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteExtensionInfo"] + 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._install_site_extension_slot_initial( + resource_group_name=resource_group_name, + name=name, + site_extension_id=site_extension_id, + slot=slot, + 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('SiteExtensionInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'siteExtensionId': self._serialize.url("site_extension_id", site_extension_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_install_site_extension_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/siteextensions/{siteExtensionId}'} # type: ignore + + async def delete_site_extension_slot( + self, + resource_group_name: str, + name: str, + site_extension_id: str, + slot: str, + **kwargs: Any + ) -> None: + """Remove a site extension from a web site, or a deployment slot. + + Description for Remove a site extension from a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param site_extension_id: Site extension name. + :type site_extension_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes a + deployment for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_site_extension_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'siteExtensionId': self._serialize.url("site_extension_id", site_extension_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_site_extension_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/siteextensions/{siteExtensionId}'} # type: ignore + + def list_slot_differences_slot( + self, + resource_group_name: str, + name: str, + slot: str, + slot_swap_entity: "_models.CsmSlotEntity", + **kwargs: Any + ) -> AsyncIterable["_models.SlotDifferenceCollection"]: + """Get the difference in configuration settings between two web app slots. + + Description for Get the difference in configuration settings between two web app slots. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the source slot. If a slot is not specified, the production slot is used + as the source slot. + :type slot: str + :param slot_swap_entity: JSON object that contains the target slot name. See example. + :type slot_swap_entity: ~azure.mgmt.web.v2021_01_15.models.CsmSlotEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SlotDifferenceCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.SlotDifferenceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SlotDifferenceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = "application/json" + accept = "application/json" + + def prepare_request(next_link=None): + # 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') + + if not next_link: + # Construct URL + url = self.list_slot_differences_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(slot_swap_entity, 'CsmSlotEntity') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(slot_swap_entity, 'CsmSlotEntity') + body_content_kwargs['content'] = body_content + request = self._client.get(url, query_parameters, header_parameters, **body_content_kwargs) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('SlotDifferenceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_slot_differences_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/slotsdiffs'} # type: ignore + + async def _swap_slot_initial( + self, + resource_group_name: str, + name: str, + slot: str, + slot_swap_entity: "_models.CsmSlotEntity", + **kwargs: Any + ) -> 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._swap_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(slot_swap_entity, 'CsmSlotEntity') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _swap_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/slotsswap'} # type: ignore + + async def begin_swap_slot( + self, + resource_group_name: str, + name: str, + slot: str, + slot_swap_entity: "_models.CsmSlotEntity", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Swaps two deployment slots of an app. + + Description for Swaps two deployment slots of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the source slot. If a slot is not specified, the production slot is used + as the source slot. + :type slot: str + :param slot_swap_entity: JSON object that contains the target slot name. See example. + :type slot_swap_entity: ~azure.mgmt.web.v2021_01_15.models.CsmSlotEntity + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._swap_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + slot_swap_entity=slot_swap_entity, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_swap_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/slotsswap'} # type: ignore + + def list_snapshots_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.SnapshotCollection"]: + """Returns all Snapshots to the user. + + Description for Returns all Snapshots to the user. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Website Name. + :type name: str + :param slot: Website Slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SnapshotCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.SnapshotCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SnapshotCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_snapshots_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SnapshotCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_snapshots_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/snapshots'} # type: ignore + + def list_snapshots_from_dr_secondary_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.SnapshotCollection"]: + """Returns all Snapshots to the user from DRSecondary endpoint. + + Description for Returns all Snapshots to the user from DRSecondary endpoint. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Website Name. + :type name: str + :param slot: Website Slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SnapshotCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.SnapshotCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SnapshotCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_snapshots_from_dr_secondary_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SnapshotCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_snapshots_from_dr_secondary_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/snapshotsdr'} # type: ignore + + async def get_source_control_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> "_models.SiteSourceControl": + """Gets the source control configuration of an app. + + Description for Gets the source control configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + source control configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteSourceControl, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteSourceControl + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSourceControl"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_source_control_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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, 201, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_source_control_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/sourcecontrols/web'} # type: ignore + + async def _create_or_update_source_control_slot_initial( + self, + resource_group_name: str, + name: str, + slot: str, + site_source_control: "_models.SiteSourceControl", + **kwargs: Any + ) -> "_models.SiteSourceControl": + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSourceControl"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_source_control_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_source_control, 'SiteSourceControl') + 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, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_source_control_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/sourcecontrols/web'} # type: ignore + + async def begin_create_or_update_source_control_slot( + self, + resource_group_name: str, + name: str, + slot: str, + site_source_control: "_models.SiteSourceControl", + **kwargs: Any + ) -> AsyncLROPoller["_models.SiteSourceControl"]: + """Updates the source control configuration of an app. + + Description for Updates the source control configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + source control configuration for the production slot. + :type slot: str + :param site_source_control: JSON representation of a SiteSourceControl object. See example. + :type site_source_control: ~azure.mgmt.web.v2021_01_15.models.SiteSourceControl + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 SiteSourceControl or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.SiteSourceControl] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSourceControl"] + 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_or_update_source_control_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + site_source_control=site_source_control, + 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('SiteSourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update_source_control_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/sourcecontrols/web'} # type: ignore + + async def delete_source_control_slot( + self, + resource_group_name: str, + name: str, + slot: str, + additional_flags: Optional[str] = None, + **kwargs: Any + ) -> None: + """Deletes the source control configuration of an app. + + Description for Deletes the source control configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + source control configuration for the production slot. + :type slot: str + :param additional_flags: + :type additional_flags: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_source_control_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if additional_flags is not None: + query_parameters['additionalFlags'] = self._serialize.query("additional_flags", additional_flags, 'str') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_source_control_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/sourcecontrols/web'} # type: ignore + + async def update_source_control_slot( + self, + resource_group_name: str, + name: str, + slot: str, + site_source_control: "_models.SiteSourceControl", + **kwargs: Any + ) -> "_models.SiteSourceControl": + """Updates the source control configuration of an app. + + Description for Updates the source control configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + source control configuration for the production slot. + :type slot: str + :param site_source_control: JSON representation of a SiteSourceControl object. See example. + :type site_source_control: ~azure.mgmt.web.v2021_01_15.models.SiteSourceControl + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteSourceControl, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteSourceControl + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSourceControl"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_source_control_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_source_control, 'SiteSourceControl') + 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, 201, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_source_control_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/sourcecontrols/web'} # type: ignore + + async def start_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> None: + """Starts an app (or deployment slot, if specified). + + Description for Starts an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will start the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.start_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + start_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/start'} # type: ignore + + async def _start_network_trace_slot_initial( + self, + resource_group_name: str, + name: str, + slot: str, + duration_in_seconds: Optional[int] = None, + max_frame_length: Optional[int] = None, + sas_url: Optional[str] = None, + **kwargs: Any + ) -> List["_models.NetworkTrace"]: + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._start_network_trace_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if duration_in_seconds is not None: + query_parameters['durationInSeconds'] = self._serialize.query("duration_in_seconds", duration_in_seconds, 'int') + if max_frame_length is not None: + query_parameters['maxFrameLength'] = self._serialize.query("max_frame_length", max_frame_length, 'int') + if sas_url is not None: + query_parameters['sasUrl'] = self._serialize.query("sas_url", sas_url, 'str') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _start_network_trace_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/startNetworkTrace'} # type: ignore + + async def begin_start_network_trace_slot( + self, + resource_group_name: str, + name: str, + slot: str, + duration_in_seconds: Optional[int] = None, + max_frame_length: Optional[int] = None, + sas_url: Optional[str] = None, + **kwargs: Any + ) -> AsyncLROPoller[List["_models.NetworkTrace"]]: + """Start capturing network packets for the site. + + Description for Start capturing network packets for the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param slot: The name of the slot for this web app. + :type slot: str + :param duration_in_seconds: The duration to keep capturing in seconds. + :type duration_in_seconds: int + :param max_frame_length: The maximum frame length in bytes (Optional). + :type max_frame_length: int + :param sas_url: The Blob URL to store capture file. + :type sas_url: 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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 list of NetworkTrace or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace]] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + 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._start_network_trace_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + duration_in_seconds=duration_in_seconds, + max_frame_length=max_frame_length, + sas_url=sas_url, + 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('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_start_network_trace_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/startNetworkTrace'} # type: ignore + + async def stop_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> None: + """Stops an app (or deployment slot, if specified). + + Description for Stops an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will stop the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.stop_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + stop_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/stop'} # type: ignore + + async def stop_network_trace_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> None: + """Stop ongoing capturing network packets for the site. + + Description for Stop ongoing capturing network packets for the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param slot: The name of the slot for this web app. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.stop_network_trace_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + stop_network_trace_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/stopNetworkTrace'} # type: ignore + + async def sync_repository_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> None: + """Sync web app repository. + + Description for Sync web app repository. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.sync_repository_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + sync_repository_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/sync'} # type: ignore + + async def sync_function_triggers_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> None: + """Syncs function trigger metadata to the management database. + + Description for Syncs function trigger metadata to the management database. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.sync_function_triggers_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + sync_function_triggers_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/syncfunctiontriggers'} # type: ignore + + def list_triggered_web_jobs_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.TriggeredWebJobCollection"]: + """List triggered web jobs for an app, or a deployment slot. + + Description for List triggered web jobs for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes a + deployment for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either TriggeredWebJobCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.TriggeredWebJobCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TriggeredWebJobCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_triggered_web_jobs_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('TriggeredWebJobCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_triggered_web_jobs_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/triggeredwebjobs'} # type: ignore + + async def get_triggered_web_job_slot( + self, + resource_group_name: str, + name: str, + web_job_name: str, + slot: str, + **kwargs: Any + ) -> "_models.TriggeredWebJob": + """Gets a triggered web job by its ID for an app, or a deployment slot. + + Description for Gets a triggered web job by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API uses the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TriggeredWebJob, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.TriggeredWebJob + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TriggeredWebJob"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_triggered_web_job_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('TriggeredWebJob', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_triggered_web_job_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/triggeredwebjobs/{webJobName}'} # type: ignore + + async def delete_triggered_web_job_slot( + self, + resource_group_name: str, + name: str, + web_job_name: str, + slot: str, + **kwargs: Any + ) -> None: + """Delete a triggered web job by its ID for an app, or a deployment slot. + + Description for Delete a triggered web job by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes web job + for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_triggered_web_job_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_triggered_web_job_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/triggeredwebjobs/{webJobName}'} # type: ignore + + def list_triggered_web_job_history_slot( + self, + resource_group_name: str, + name: str, + web_job_name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.TriggeredJobHistoryCollection"]: + """List a triggered web job's history for an app, or a deployment slot. + + Description for List a triggered web job's history for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API uses the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either TriggeredJobHistoryCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.TriggeredJobHistoryCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TriggeredJobHistoryCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_triggered_web_job_history_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('TriggeredJobHistoryCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_triggered_web_job_history_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/triggeredwebjobs/{webJobName}/history'} # type: ignore + + async def get_triggered_web_job_history_slot( + self, + resource_group_name: str, + name: str, + web_job_name: str, + id: str, + slot: str, + **kwargs: Any + ) -> "_models.TriggeredJobHistory": + """Gets a triggered web job's history by its ID for an app, , or a deployment slot. + + Description for Gets a triggered web job's history by its ID for an app, , or a deployment + slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param id: History ID. + :type id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API uses the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TriggeredJobHistory, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.TriggeredJobHistory + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TriggeredJobHistory"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_triggered_web_job_history_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('TriggeredJobHistory', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_triggered_web_job_history_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/triggeredwebjobs/{webJobName}/history/{id}'} # type: ignore + + async def run_triggered_web_job_slot( + self, + resource_group_name: str, + name: str, + web_job_name: str, + slot: str, + **kwargs: Any + ) -> None: + """Run a triggered web job for an app, or a deployment slot. + + Description for Run a triggered web job for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API uses the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.run_triggered_web_job_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + run_triggered_web_job_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/triggeredwebjobs/{webJobName}/run'} # type: ignore + + def list_usages_slot( + self, + resource_group_name: str, + name: str, + slot: str, + filter: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.CsmUsageQuotaCollection"]: + """Gets the quota usage information of an app (or deployment slot, if specified). + + Description for Gets the quota usage information of an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get quota + information of the production slot. + :type slot: str + :param filter: Return only information specified in the filter (using OData syntax). For + example: $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq + 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq + duration'[Hour|Minute|Day]'. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either CsmUsageQuotaCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.CsmUsageQuotaCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmUsageQuotaCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_usages_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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 filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('CsmUsageQuotaCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_usages_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/usages'} # type: ignore + + async def list_vnet_connections_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> List["_models.VnetInfo"]: + """Gets the virtual networks the app (or deployment slot) is connected to. + + Description for Gets the virtual networks the app (or deployment slot) is connected to. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get virtual + network connections for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of VnetInfo, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.VnetInfo] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.VnetInfo"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_vnet_connections_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[VnetInfo]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_vnet_connections_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/virtualNetworkConnections'} # type: ignore + + async def get_vnet_connection_slot( + self, + resource_group_name: str, + name: str, + vnet_name: str, + slot: str, + **kwargs: Any + ) -> "_models.VnetInfo": + """Gets a virtual network the app (or deployment slot) is connected to by name. + + Description for Gets a virtual network the app (or deployment slot) is connected to by name. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the virtual network. + :type vnet_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + named virtual network for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_vnet_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_vnet_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/virtualNetworkConnections/{vnetName}'} # type: ignore + + async def create_or_update_vnet_connection_slot( + self, + resource_group_name: str, + name: str, + vnet_name: str, + slot: str, + connection_envelope: "_models.VnetInfo", + **kwargs: Any + ) -> "_models.VnetInfo": + """Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH). + + Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the + connection properties (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of an existing Virtual Network. + :type vnet_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will add or + update connections for the production slot. + :type slot: str + :param connection_envelope: Properties of the Virtual Network connection. See example. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_vnet_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetInfo') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_vnet_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/virtualNetworkConnections/{vnetName}'} # type: ignore + + async def delete_vnet_connection_slot( + self, + resource_group_name: str, + name: str, + vnet_name: str, + slot: str, + **kwargs: Any + ) -> None: + """Deletes a connection from an app (or deployment slot to a named virtual network. + + Description for Deletes a connection from an app (or deployment slot to a named virtual + network. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the virtual network. + :type vnet_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + connection for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_vnet_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_vnet_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/virtualNetworkConnections/{vnetName}'} # type: ignore + + async def update_vnet_connection_slot( + self, + resource_group_name: str, + name: str, + vnet_name: str, + slot: str, + connection_envelope: "_models.VnetInfo", + **kwargs: Any + ) -> "_models.VnetInfo": + """Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH). + + Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the + connection properties (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of an existing Virtual Network. + :type vnet_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will add or + update connections for the production slot. + :type slot: str + :param connection_envelope: Properties of the Virtual Network connection. See example. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_vnet_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetInfo') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_vnet_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/virtualNetworkConnections/{vnetName}'} # type: ignore + + async def get_vnet_connection_gateway_slot( + self, + resource_group_name: str, + name: str, + vnet_name: str, + gateway_name: str, + slot: str, + **kwargs: Any + ) -> "_models.VnetGateway": + """Gets an app's Virtual Network gateway. + + Description for Gets an app's Virtual Network gateway. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param gateway_name: Name of the gateway. Currently, the only supported string is "primary". + :type gateway_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get a + gateway for the production slot's Virtual Network. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetGateway, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetGateway"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_vnet_connection_gateway_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'gatewayName': self._serialize.url("gateway_name", gateway_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetGateway', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_vnet_connection_gateway_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/virtualNetworkConnections/{vnetName}/gateways/{gatewayName}'} # type: ignore + + async def create_or_update_vnet_connection_gateway_slot( + self, + resource_group_name: str, + name: str, + vnet_name: str, + gateway_name: str, + slot: str, + connection_envelope: "_models.VnetGateway", + **kwargs: Any + ) -> "_models.VnetGateway": + """Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH). + + Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param gateway_name: Name of the gateway. Currently, the only supported string is "primary". + :type gateway_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will add or + update a gateway for the production slot's Virtual Network. + :type slot: str + :param connection_envelope: The properties to update this gateway with. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetGateway, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetGateway"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_vnet_connection_gateway_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'gatewayName': self._serialize.url("gateway_name", gateway_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetGateway') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetGateway', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_vnet_connection_gateway_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/virtualNetworkConnections/{vnetName}/gateways/{gatewayName}'} # type: ignore + + async def update_vnet_connection_gateway_slot( + self, + resource_group_name: str, + name: str, + vnet_name: str, + gateway_name: str, + slot: str, + connection_envelope: "_models.VnetGateway", + **kwargs: Any + ) -> "_models.VnetGateway": + """Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH). + + Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param gateway_name: Name of the gateway. Currently, the only supported string is "primary". + :type gateway_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will add or + update a gateway for the production slot's Virtual Network. + :type slot: str + :param connection_envelope: The properties to update this gateway with. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetGateway, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetGateway"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_vnet_connection_gateway_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'gatewayName': self._serialize.url("gateway_name", gateway_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetGateway') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetGateway', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_vnet_connection_gateway_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/virtualNetworkConnections/{vnetName}/gateways/{gatewayName}'} # type: ignore + + def list_web_jobs_slot( + self, + resource_group_name: str, + name: str, + slot: str, + **kwargs: Any + ) -> AsyncIterable["_models.WebJobCollection"]: + """List webjobs for an app, or a deployment slot. + + Description for List webjobs for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebJobCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.WebJobCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebJobCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_web_jobs_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('WebJobCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_web_jobs_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/webjobs'} # type: ignore + + async def get_web_job_slot( + self, + resource_group_name: str, + name: str, + web_job_name: str, + slot: str, + **kwargs: Any + ) -> "_models.WebJob": + """Get webjob information for an app, or a deployment slot. + + Description for Get webjob information for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of the web job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: WebJob, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.WebJob + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebJob"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_web_job_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('WebJob', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_web_job_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/webjobs/{webJobName}'} # type: ignore + + def list_slot_differences_from_production( + self, + resource_group_name: str, + name: str, + slot_swap_entity: "_models.CsmSlotEntity", + **kwargs: Any + ) -> AsyncIterable["_models.SlotDifferenceCollection"]: + """Get the difference in configuration settings between two web app slots. + + Description for Get the difference in configuration settings between two web app slots. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot_swap_entity: JSON object that contains the target slot name. See example. + :type slot_swap_entity: ~azure.mgmt.web.v2021_01_15.models.CsmSlotEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SlotDifferenceCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.SlotDifferenceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SlotDifferenceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = "application/json" + accept = "application/json" + + def prepare_request(next_link=None): + # 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') + + if not next_link: + # Construct URL + url = self.list_slot_differences_from_production.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(slot_swap_entity, 'CsmSlotEntity') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(slot_swap_entity, 'CsmSlotEntity') + body_content_kwargs['content'] = body_content + request = self._client.get(url, query_parameters, header_parameters, **body_content_kwargs) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('SlotDifferenceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_slot_differences_from_production.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slotsdiffs'} # type: ignore + + async def _swap_slot_with_production_initial( + self, + resource_group_name: str, + name: str, + slot_swap_entity: "_models.CsmSlotEntity", + **kwargs: Any + ) -> 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._swap_slot_with_production_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(slot_swap_entity, 'CsmSlotEntity') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _swap_slot_with_production_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slotsswap'} # type: ignore + + async def begin_swap_slot_with_production( + self, + resource_group_name: str, + name: str, + slot_swap_entity: "_models.CsmSlotEntity", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Swaps two deployment slots of an app. + + Description for Swaps two deployment slots of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot_swap_entity: JSON object that contains the target slot name. See example. + :type slot_swap_entity: ~azure.mgmt.web.v2021_01_15.models.CsmSlotEntity + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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._swap_slot_with_production_initial( + resource_group_name=resource_group_name, + name=name, + slot_swap_entity=slot_swap_entity, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_swap_slot_with_production.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slotsswap'} # type: ignore + + def list_snapshots( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.SnapshotCollection"]: + """Returns all Snapshots to the user. + + Description for Returns all Snapshots to the user. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Website Name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SnapshotCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.SnapshotCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SnapshotCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_snapshots.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SnapshotCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_snapshots.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/snapshots'} # type: ignore + + def list_snapshots_from_dr_secondary( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.SnapshotCollection"]: + """Returns all Snapshots to the user from DRSecondary endpoint. + + Description for Returns all Snapshots to the user from DRSecondary endpoint. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Website Name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SnapshotCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.SnapshotCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SnapshotCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_snapshots_from_dr_secondary.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SnapshotCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_snapshots_from_dr_secondary.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/snapshotsdr'} # type: ignore + + async def get_source_control( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> "_models.SiteSourceControl": + """Gets the source control configuration of an app. + + Description for Gets the source control configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteSourceControl, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteSourceControl + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSourceControl"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_source_control.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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, 201, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_source_control.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/sourcecontrols/web'} # type: ignore + + async def _create_or_update_source_control_initial( + self, + resource_group_name: str, + name: str, + site_source_control: "_models.SiteSourceControl", + **kwargs: Any + ) -> "_models.SiteSourceControl": + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSourceControl"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_source_control_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_source_control, 'SiteSourceControl') + 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, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_source_control_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/sourcecontrols/web'} # type: ignore + + async def begin_create_or_update_source_control( + self, + resource_group_name: str, + name: str, + site_source_control: "_models.SiteSourceControl", + **kwargs: Any + ) -> AsyncLROPoller["_models.SiteSourceControl"]: + """Updates the source control configuration of an app. + + Description for Updates the source control configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param site_source_control: JSON representation of a SiteSourceControl object. See example. + :type site_source_control: ~azure.mgmt.web.v2021_01_15.models.SiteSourceControl + :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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 SiteSourceControl or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.web.v2021_01_15.models.SiteSourceControl] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSourceControl"] + 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_or_update_source_control_initial( + resource_group_name=resource_group_name, + name=name, + site_source_control=site_source_control, + 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('SiteSourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update_source_control.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/sourcecontrols/web'} # type: ignore + + async def delete_source_control( + self, + resource_group_name: str, + name: str, + additional_flags: Optional[str] = None, + **kwargs: Any + ) -> None: + """Deletes the source control configuration of an app. + + Description for Deletes the source control configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param additional_flags: + :type additional_flags: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_source_control.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if additional_flags is not None: + query_parameters['additionalFlags'] = self._serialize.query("additional_flags", additional_flags, 'str') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_source_control.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/sourcecontrols/web'} # type: ignore + + async def update_source_control( + self, + resource_group_name: str, + name: str, + site_source_control: "_models.SiteSourceControl", + **kwargs: Any + ) -> "_models.SiteSourceControl": + """Updates the source control configuration of an app. + + Description for Updates the source control configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param site_source_control: JSON representation of a SiteSourceControl object. See example. + :type site_source_control: ~azure.mgmt.web.v2021_01_15.models.SiteSourceControl + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteSourceControl, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteSourceControl + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSourceControl"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_source_control.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_source_control, 'SiteSourceControl') + 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, 201, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_source_control.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/sourcecontrols/web'} # type: ignore + + async def start( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> None: + """Starts an app (or deployment slot, if specified). + + Description for Starts an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.start.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + start.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/start'} # type: ignore + + async def _start_network_trace_initial( + self, + resource_group_name: str, + name: str, + duration_in_seconds: Optional[int] = None, + max_frame_length: Optional[int] = None, + sas_url: Optional[str] = None, + **kwargs: Any + ) -> List["_models.NetworkTrace"]: + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._start_network_trace_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if duration_in_seconds is not None: + query_parameters['durationInSeconds'] = self._serialize.query("duration_in_seconds", duration_in_seconds, 'int') + if max_frame_length is not None: + query_parameters['maxFrameLength'] = self._serialize.query("max_frame_length", max_frame_length, 'int') + if sas_url is not None: + query_parameters['sasUrl'] = self._serialize.query("sas_url", sas_url, 'str') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _start_network_trace_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/startNetworkTrace'} # type: ignore + + async def begin_start_network_trace( + self, + resource_group_name: str, + name: str, + duration_in_seconds: Optional[int] = None, + max_frame_length: Optional[int] = None, + sas_url: Optional[str] = None, + **kwargs: Any + ) -> AsyncLROPoller[List["_models.NetworkTrace"]]: + """Start capturing network packets for the site. + + Description for Start capturing network packets for the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param duration_in_seconds: The duration to keep capturing in seconds. + :type duration_in_seconds: int + :param max_frame_length: The maximum frame length in bytes (Optional). + :type max_frame_length: int + :param sas_url: The Blob URL to store capture file. + :type sas_url: 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: By default, your polling method will be AsyncARMPolling. + Pass in False for this operation to not poll, or pass in 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 list of NetworkTrace or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace]] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + 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._start_network_trace_initial( + resource_group_name=resource_group_name, + name=name, + duration_in_seconds=duration_in_seconds, + max_frame_length=max_frame_length, + sas_url=sas_url, + 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('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_start_network_trace.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/startNetworkTrace'} # type: ignore + + async def stop( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> None: + """Stops an app (or deployment slot, if specified). + + Description for Stops an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.stop.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + stop.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/stop'} # type: ignore + + async def stop_network_trace( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> None: + """Stop ongoing capturing network packets for the site. + + Description for Stop ongoing capturing network packets for the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.stop_network_trace.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + stop_network_trace.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/stopNetworkTrace'} # type: ignore + + async def sync_repository( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> None: + """Sync web app repository. + + Description for Sync web app repository. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.sync_repository.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + sync_repository.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/sync'} # type: ignore + + async def sync_function_triggers( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> None: + """Syncs function trigger metadata to the management database. + + Description for Syncs function trigger metadata to the management database. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.sync_function_triggers.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + sync_function_triggers.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/syncfunctiontriggers'} # type: ignore + + def list_triggered_web_jobs( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.TriggeredWebJobCollection"]: + """List triggered web jobs for an app, or a deployment slot. + + Description for List triggered web jobs for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either TriggeredWebJobCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.TriggeredWebJobCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TriggeredWebJobCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_triggered_web_jobs.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('TriggeredWebJobCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_triggered_web_jobs.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/triggeredwebjobs'} # type: ignore + + async def get_triggered_web_job( + self, + resource_group_name: str, + name: str, + web_job_name: str, + **kwargs: Any + ) -> "_models.TriggeredWebJob": + """Gets a triggered web job by its ID for an app, or a deployment slot. + + Description for Gets a triggered web job by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TriggeredWebJob, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.TriggeredWebJob + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TriggeredWebJob"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_triggered_web_job.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('TriggeredWebJob', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_triggered_web_job.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/triggeredwebjobs/{webJobName}'} # type: ignore + + async def delete_triggered_web_job( + self, + resource_group_name: str, + name: str, + web_job_name: str, + **kwargs: Any + ) -> None: + """Delete a triggered web job by its ID for an app, or a deployment slot. + + Description for Delete a triggered web job by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_triggered_web_job.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_triggered_web_job.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/triggeredwebjobs/{webJobName}'} # type: ignore + + def list_triggered_web_job_history( + self, + resource_group_name: str, + name: str, + web_job_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.TriggeredJobHistoryCollection"]: + """List a triggered web job's history for an app, or a deployment slot. + + Description for List a triggered web job's history for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either TriggeredJobHistoryCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.TriggeredJobHistoryCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TriggeredJobHistoryCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_triggered_web_job_history.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('TriggeredJobHistoryCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_triggered_web_job_history.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/triggeredwebjobs/{webJobName}/history'} # type: ignore + + async def get_triggered_web_job_history( + self, + resource_group_name: str, + name: str, + web_job_name: str, + id: str, + **kwargs: Any + ) -> "_models.TriggeredJobHistory": + """Gets a triggered web job's history by its ID for an app, , or a deployment slot. + + Description for Gets a triggered web job's history by its ID for an app, , or a deployment + slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param id: History ID. + :type id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TriggeredJobHistory, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.TriggeredJobHistory + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TriggeredJobHistory"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_triggered_web_job_history.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('TriggeredJobHistory', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_triggered_web_job_history.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/triggeredwebjobs/{webJobName}/history/{id}'} # type: ignore + + async def run_triggered_web_job( + self, + resource_group_name: str, + name: str, + web_job_name: str, + **kwargs: Any + ) -> None: + """Run a triggered web job for an app, or a deployment slot. + + Description for Run a triggered web job for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.run_triggered_web_job.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + run_triggered_web_job.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/triggeredwebjobs/{webJobName}/run'} # type: ignore + + def list_usages( + self, + resource_group_name: str, + name: str, + filter: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.CsmUsageQuotaCollection"]: + """Gets the quota usage information of an app (or deployment slot, if specified). + + Description for Gets the quota usage information of an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param filter: Return only information specified in the filter (using OData syntax). For + example: $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq + 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq + duration'[Hour|Minute|Day]'. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either CsmUsageQuotaCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.CsmUsageQuotaCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmUsageQuotaCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_usages.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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 filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('CsmUsageQuotaCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_usages.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/usages'} # type: ignore + + async def list_vnet_connections( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> List["_models.VnetInfo"]: + """Gets the virtual networks the app (or deployment slot) is connected to. + + Description for Gets the virtual networks the app (or deployment slot) is connected to. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of VnetInfo, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.VnetInfo] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.VnetInfo"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_vnet_connections.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[VnetInfo]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_vnet_connections.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/virtualNetworkConnections'} # type: ignore + + async def get_vnet_connection( + self, + resource_group_name: str, + name: str, + vnet_name: str, + **kwargs: Any + ) -> "_models.VnetInfo": + """Gets a virtual network the app (or deployment slot) is connected to by name. + + Description for Gets a virtual network the app (or deployment slot) is connected to by name. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the virtual network. + :type vnet_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_vnet_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_vnet_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/virtualNetworkConnections/{vnetName}'} # type: ignore + + async def create_or_update_vnet_connection( + self, + resource_group_name: str, + name: str, + vnet_name: str, + connection_envelope: "_models.VnetInfo", + **kwargs: Any + ) -> "_models.VnetInfo": + """Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH). + + Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the + connection properties (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of an existing Virtual Network. + :type vnet_name: str + :param connection_envelope: Properties of the Virtual Network connection. See example. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_vnet_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetInfo') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_vnet_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/virtualNetworkConnections/{vnetName}'} # type: ignore + + async def delete_vnet_connection( + self, + resource_group_name: str, + name: str, + vnet_name: str, + **kwargs: Any + ) -> None: + """Deletes a connection from an app (or deployment slot to a named virtual network. + + Description for Deletes a connection from an app (or deployment slot to a named virtual + network. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the virtual network. + :type vnet_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_vnet_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_vnet_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/virtualNetworkConnections/{vnetName}'} # type: ignore + + async def update_vnet_connection( + self, + resource_group_name: str, + name: str, + vnet_name: str, + connection_envelope: "_models.VnetInfo", + **kwargs: Any + ) -> "_models.VnetInfo": + """Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH). + + Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the + connection properties (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of an existing Virtual Network. + :type vnet_name: str + :param connection_envelope: Properties of the Virtual Network connection. See example. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_vnet_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetInfo') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_vnet_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/virtualNetworkConnections/{vnetName}'} # type: ignore + + async def get_vnet_connection_gateway( + self, + resource_group_name: str, + name: str, + vnet_name: str, + gateway_name: str, + **kwargs: Any + ) -> "_models.VnetGateway": + """Gets an app's Virtual Network gateway. + + Description for Gets an app's Virtual Network gateway. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param gateway_name: Name of the gateway. Currently, the only supported string is "primary". + :type gateway_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetGateway, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetGateway"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_vnet_connection_gateway.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'gatewayName': self._serialize.url("gateway_name", gateway_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetGateway', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_vnet_connection_gateway.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/virtualNetworkConnections/{vnetName}/gateways/{gatewayName}'} # type: ignore + + async def create_or_update_vnet_connection_gateway( + self, + resource_group_name: str, + name: str, + vnet_name: str, + gateway_name: str, + connection_envelope: "_models.VnetGateway", + **kwargs: Any + ) -> "_models.VnetGateway": + """Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH). + + Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param gateway_name: Name of the gateway. Currently, the only supported string is "primary". + :type gateway_name: str + :param connection_envelope: The properties to update this gateway with. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetGateway, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetGateway"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_vnet_connection_gateway.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'gatewayName': self._serialize.url("gateway_name", gateway_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetGateway') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetGateway', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_vnet_connection_gateway.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/virtualNetworkConnections/{vnetName}/gateways/{gatewayName}'} # type: ignore + + async def update_vnet_connection_gateway( + self, + resource_group_name: str, + name: str, + vnet_name: str, + gateway_name: str, + connection_envelope: "_models.VnetGateway", + **kwargs: Any + ) -> "_models.VnetGateway": + """Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH). + + Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param gateway_name: Name of the gateway. Currently, the only supported string is "primary". + :type gateway_name: str + :param connection_envelope: The properties to update this gateway with. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetGateway, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetGateway"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_vnet_connection_gateway.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'gatewayName': self._serialize.url("gateway_name", gateway_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetGateway') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetGateway', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_vnet_connection_gateway.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/virtualNetworkConnections/{vnetName}/gateways/{gatewayName}'} # type: ignore + + def list_web_jobs( + self, + resource_group_name: str, + name: str, + **kwargs: Any + ) -> AsyncIterable["_models.WebJobCollection"]: + """List webjobs for an app, or a deployment slot. + + Description for List webjobs for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebJobCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.WebJobCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebJobCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_web_jobs.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('WebJobCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_web_jobs.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/webjobs'} # type: ignore + + async def get_web_job( + self, + resource_group_name: str, + name: str, + web_job_name: str, + **kwargs: Any + ) -> "_models.WebJob": + """Get webjob information for an app, or a deployment slot. + + Description for Get webjob information for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of the web job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: WebJob, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.WebJob + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebJob"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_web_job.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('WebJob', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_web_job.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/webjobs/{webJobName}'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_web_site_management_client_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_web_site_management_client_operations.py new file mode 100644 index 000000000000..45860b9cdc7c --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/aio/operations/_web_site_management_client_operations.py @@ -0,0 +1,1121 @@ +# 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.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 WebSiteManagementClientOperationsMixin: + + async def generate_github_access_token_for_appservice_cli_async( + self, + code: str, + state: str, + **kwargs: Any + ) -> "_models.AppserviceGithubToken": + """Exchange code for GitHub access token for AppService CLI. + + Description for Exchange code for GitHub access token for AppService CLI. + + :param code: Code string to exchange for Github Access token. + :type code: str + :param state: State string used for verification. + :type state: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppserviceGithubToken, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppserviceGithubToken + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppserviceGithubToken"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _request = _models.AppserviceGithubTokenRequest(code=code, state=state) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.generate_github_access_token_for_appservice_cli_async.metadata['url'] # type: ignore + + # 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(_request, 'AppserviceGithubTokenRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AppserviceGithubToken', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + generate_github_access_token_for_appservice_cli_async.metadata = {'url': '/providers/Microsoft.Web/generateGithubAccessTokenForAppserviceCLI'} # type: ignore + + async def get_publishing_user( + self, + **kwargs: Any + ) -> "_models.User": + """Gets publishing user. + + Description for Gets publishing user. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: User, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.User + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.User"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_publishing_user.metadata['url'] # type: ignore + + # 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('User', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_publishing_user.metadata = {'url': '/providers/Microsoft.Web/publishingUsers/web'} # type: ignore + + async def update_publishing_user( + self, + user_details: "_models.User", + **kwargs: Any + ) -> "_models.User": + """Updates publishing user. + + Description for Updates publishing user. + + :param user_details: Details of publishing user. + :type user_details: ~azure.mgmt.web.v2021_01_15.models.User + :keyword callable cls: A custom type or function that will be passed the direct response + :return: User, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.User + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.User"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_publishing_user.metadata['url'] # type: ignore + + # 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(user_details, 'User') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('User', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_publishing_user.metadata = {'url': '/providers/Microsoft.Web/publishingUsers/web'} # type: ignore + + def list_source_controls( + self, + **kwargs: Any + ) -> AsyncIterable["_models.SourceControlCollection"]: + """Gets the source controls available for Azure websites. + + Description for Gets the source controls available for Azure websites. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SourceControlCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.SourceControlCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SourceControlCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_source_controls.metadata['url'] # type: ignore + # 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('SourceControlCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_source_controls.metadata = {'url': '/providers/Microsoft.Web/sourcecontrols'} # type: ignore + + async def get_source_control( + self, + source_control_type: str, + **kwargs: Any + ) -> "_models.SourceControl": + """Gets source control token. + + Description for Gets source control token. + + :param source_control_type: Type of source control. + :type source_control_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SourceControl, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SourceControl + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SourceControl"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_source_control.metadata['url'] # type: ignore + path_format_arguments = { + 'sourceControlType': self._serialize.url("source_control_type", source_control_type, '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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_source_control.metadata = {'url': '/providers/Microsoft.Web/sourcecontrols/{sourceControlType}'} # type: ignore + + async def update_source_control( + self, + source_control_type: str, + request_message: "_models.SourceControl", + **kwargs: Any + ) -> "_models.SourceControl": + """Updates source control token. + + Description for Updates source control token. + + :param source_control_type: Type of source control. + :type source_control_type: str + :param request_message: Source control token information. + :type request_message: ~azure.mgmt.web.v2021_01_15.models.SourceControl + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SourceControl, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SourceControl + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SourceControl"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_source_control.metadata['url'] # type: ignore + path_format_arguments = { + 'sourceControlType': self._serialize.url("source_control_type", source_control_type, '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(request_message, 'SourceControl') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_source_control.metadata = {'url': '/providers/Microsoft.Web/sourcecontrols/{sourceControlType}'} # type: ignore + + def list_billing_meters( + self, + billing_location: Optional[str] = None, + os_type: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.BillingMeterCollection"]: + """Gets a list of meters for a given location. + + Description for Gets a list of meters for a given location. + + :param billing_location: Azure Location of billable resource. + :type billing_location: str + :param os_type: App Service OS type meters used for. + :type os_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either BillingMeterCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.BillingMeterCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BillingMeterCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_billing_meters.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if billing_location is not None: + query_parameters['billingLocation'] = self._serialize.query("billing_location", billing_location, 'str') + if os_type is not None: + query_parameters['osType'] = self._serialize.query("os_type", os_type, 'str') + 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('BillingMeterCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_billing_meters.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/billingMeters'} # type: ignore + + async def check_name_availability( + self, + name: str, + type: Union[str, "_models.CheckNameResourceTypes"], + is_fqdn: Optional[bool] = None, + **kwargs: Any + ) -> "_models.ResourceNameAvailability": + """Check if a resource name is available. + + Description for Check if a resource name is available. + + :param name: Resource name to verify. + :type name: str + :param type: Resource type used for verification. + :type type: str or ~azure.mgmt.web.v2021_01_15.models.CheckNameResourceTypes + :param is_fqdn: Is fully qualified domain name. + :type is_fqdn: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ResourceNameAvailability, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ResourceNameAvailability + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceNameAvailability"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _request = _models.ResourceNameAvailabilityRequest(name=name, type=type, is_fqdn=is_fqdn) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.check_name_availability.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(_request, 'ResourceNameAvailabilityRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ResourceNameAvailability', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + check_name_availability.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/checknameavailability'} # type: ignore + + async def get_subscription_deployment_locations( + self, + **kwargs: Any + ) -> "_models.DeploymentLocations": + """Gets list of available geo regions plus ministamps. + + Description for Gets list of available geo regions plus ministamps. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DeploymentLocations, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DeploymentLocations + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DeploymentLocations"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_subscription_deployment_locations.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DeploymentLocations', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_subscription_deployment_locations.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/deploymentLocations'} # type: ignore + + def list_geo_regions( + self, + sku: Optional[Union[str, "_models.SkuName"]] = None, + linux_workers_enabled: Optional[bool] = None, + xenon_workers_enabled: Optional[bool] = None, + linux_dynamic_workers_enabled: Optional[bool] = None, + **kwargs: Any + ) -> AsyncIterable["_models.GeoRegionCollection"]: + """Get a list of available geographical regions. + + Description for Get a list of available geographical regions. + + :param sku: Name of SKU used to filter the regions. + :type sku: str or ~azure.mgmt.web.v2021_01_15.models.SkuName + :param linux_workers_enabled: Specify :code:`true` if you want to filter to only + regions that support Linux workers. + :type linux_workers_enabled: bool + :param xenon_workers_enabled: Specify :code:`true` if you want to filter to only + regions that support Xenon workers. + :type xenon_workers_enabled: bool + :param linux_dynamic_workers_enabled: Specify :code:`true` if you want to filter + to only regions that support Linux Consumption Workers. + :type linux_dynamic_workers_enabled: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either GeoRegionCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.GeoRegionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.GeoRegionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_geo_regions.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if sku is not None: + query_parameters['sku'] = self._serialize.query("sku", sku, 'str') + if linux_workers_enabled is not None: + query_parameters['linuxWorkersEnabled'] = self._serialize.query("linux_workers_enabled", linux_workers_enabled, 'bool') + if xenon_workers_enabled is not None: + query_parameters['xenonWorkersEnabled'] = self._serialize.query("xenon_workers_enabled", xenon_workers_enabled, 'bool') + if linux_dynamic_workers_enabled is not None: + query_parameters['linuxDynamicWorkersEnabled'] = self._serialize.query("linux_dynamic_workers_enabled", linux_dynamic_workers_enabled, 'bool') + 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('GeoRegionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_geo_regions.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/geoRegions'} # type: ignore + + def list_site_identifiers_assigned_to_host_name( + self, + name_identifier: "_models.NameIdentifier", + **kwargs: Any + ) -> AsyncIterable["_models.IdentifierCollection"]: + """List all apps that are assigned to a hostname. + + Description for List all apps that are assigned to a hostname. + + :param name_identifier: Hostname information. + :type name_identifier: ~azure.mgmt.web.v2021_01_15.models.NameIdentifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either IdentifierCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.IdentifierCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.IdentifierCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = "application/json" + accept = "application/json" + + def prepare_request(next_link=None): + # 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') + + if not next_link: + # Construct URL + url = self.list_site_identifiers_assigned_to_host_name.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(name_identifier, 'NameIdentifier') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(name_identifier, 'NameIdentifier') + body_content_kwargs['content'] = body_content + request = self._client.get(url, query_parameters, header_parameters, **body_content_kwargs) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('IdentifierCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_site_identifiers_assigned_to_host_name.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/listSitesAssignedToHostName'} # type: ignore + + def list_premier_add_on_offers( + self, + **kwargs: Any + ) -> AsyncIterable["_models.PremierAddOnOfferCollection"]: + """List all premier add-on offers. + + Description for List all premier add-on offers. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PremierAddOnOfferCollection or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.web.v2021_01_15.models.PremierAddOnOfferCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOnOfferCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_premier_add_on_offers.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PremierAddOnOfferCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_premier_add_on_offers.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/premieraddonoffers'} # type: ignore + + async def list_skus( + self, + **kwargs: Any + ) -> "_models.SkuInfos": + """List all SKUs. + + Description for List all SKUs. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SkuInfos, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SkuInfos + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SkuInfos"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_skus.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SkuInfos', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_skus.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/skus'} # type: ignore + + async def verify_hosting_environment_vnet( + self, + parameters: "_models.VnetParameters", + **kwargs: Any + ) -> "_models.VnetValidationFailureDetails": + """Verifies if this VNET is compatible with an App Service Environment by analyzing the Network Security Group rules. + + Description for Verifies if this VNET is compatible with an App Service Environment by + analyzing the Network Security Group rules. + + :param parameters: VNET information. + :type parameters: ~azure.mgmt.web.v2021_01_15.models.VnetParameters + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetValidationFailureDetails, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetValidationFailureDetails + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetValidationFailureDetails"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.verify_hosting_environment_vnet.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(parameters, 'VnetParameters') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetValidationFailureDetails', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + verify_hosting_environment_vnet.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/verifyHostingEnvironmentVnet'} # type: ignore + + async def move( + self, + resource_group_name: str, + move_resource_envelope: "_models.CsmMoveResourceEnvelope", + **kwargs: Any + ) -> None: + """Move resources between resource groups. + + Description for Move resources between resource groups. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param move_resource_envelope: Object that represents the resource to move. + :type move_resource_envelope: ~azure.mgmt.web.v2021_01_15.models.CsmMoveResourceEnvelope + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.move.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(move_resource_envelope, 'CsmMoveResourceEnvelope') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + move.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/moveResources'} # type: ignore + + async def validate( + self, + resource_group_name: str, + validate_request: "_models.ValidateRequest", + **kwargs: Any + ) -> "_models.ValidateResponse": + """Validate if a resource can be created. + + Description for Validate if a resource can be created. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param validate_request: Request with the resources to validate. + :type validate_request: ~azure.mgmt.web.v2021_01_15.models.ValidateRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ValidateResponse, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ValidateResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ValidateResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.validate.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(validate_request, 'ValidateRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ValidateResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + validate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/validate'} # type: ignore + + async def validate_move( + self, + resource_group_name: str, + move_resource_envelope: "_models.CsmMoveResourceEnvelope", + **kwargs: Any + ) -> None: + """Validate whether a resource can be moved. + + Description for Validate whether a resource can be moved. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param move_resource_envelope: Object that represents the resource to move. + :type move_resource_envelope: ~azure.mgmt.web.v2021_01_15.models.CsmMoveResourceEnvelope + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.validate_move.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(move_resource_envelope, 'CsmMoveResourceEnvelope') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + validate_move.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/validateMoveResources'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/models/__init__.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/models/__init__.py new file mode 100644 index 000000000000..35ac9c3b979d --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/models/__init__.py @@ -0,0 +1,1391 @@ +# 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. +# -------------------------------------------------------------------------- + +try: + from ._models_py3 import AbnormalTimePeriod + from ._models_py3 import Address + from ._models_py3 import AddressResponse + from ._models_py3 import AllowedAudiencesValidation + from ._models_py3 import AnalysisData + from ._models_py3 import AnalysisDefinition + from ._models_py3 import ApiDefinitionInfo + from ._models_py3 import ApiKVReference + from ._models_py3 import ApiKVReferenceCollection + from ._models_py3 import ApiManagementConfig + from ._models_py3 import AppInsightsWebAppStackSettings + from ._models_py3 import AppLogsConfiguration + from ._models_py3 import AppRegistration + from ._models_py3 import AppServiceCertificate + from ._models_py3 import AppServiceCertificateCollection + from ._models_py3 import AppServiceCertificateOrder + from ._models_py3 import AppServiceCertificateOrderCollection + from ._models_py3 import AppServiceCertificateOrderPatchResource + from ._models_py3 import AppServiceCertificatePatchResource + from ._models_py3 import AppServiceCertificateResource + from ._models_py3 import AppServiceEnvironment + from ._models_py3 import AppServiceEnvironmentCollection + from ._models_py3 import AppServiceEnvironmentPatchResource + from ._models_py3 import AppServiceEnvironmentResource + from ._models_py3 import AppServicePlan + from ._models_py3 import AppServicePlanCollection + from ._models_py3 import AppServicePlanPatchResource + from ._models_py3 import Apple + from ._models_py3 import AppleRegistration + from ._models_py3 import ApplicationLogsConfig + from ._models_py3 import ApplicationStack + from ._models_py3 import ApplicationStackCollection + from ._models_py3 import ApplicationStackResource + from ._models_py3 import AppserviceGithubToken + from ._models_py3 import AppserviceGithubTokenRequest + from ._models_py3 import ArcConfiguration + from ._models_py3 import ArmIdWrapper + from ._models_py3 import ArmPlan + from ._models_py3 import AseV3NetworkingConfiguration + from ._models_py3 import AuthPlatform + from ._models_py3 import AutoHealActions + from ._models_py3 import AutoHealCustomAction + from ._models_py3 import AutoHealRules + from ._models_py3 import AutoHealTriggers + from ._models_py3 import AzureActiveDirectory + from ._models_py3 import AzureActiveDirectoryLogin + from ._models_py3 import AzureActiveDirectoryRegistration + from ._models_py3 import AzureActiveDirectoryValidation + from ._models_py3 import AzureBlobStorageApplicationLogsConfig + from ._models_py3 import AzureBlobStorageHttpLogsConfig + from ._models_py3 import AzureStaticWebApps + from ._models_py3 import AzureStaticWebAppsRegistration + from ._models_py3 import AzureStorageInfoValue + from ._models_py3 import AzureStoragePropertyDictionaryResource + from ._models_py3 import AzureTableStorageApplicationLogsConfig + from ._models_py3 import BackupItem + from ._models_py3 import BackupItemCollection + from ._models_py3 import BackupRequest + from ._models_py3 import BackupSchedule + from ._models_py3 import BillingMeter + from ._models_py3 import BillingMeterCollection + from ._models_py3 import BlobStorageTokenStore + from ._models_py3 import Capability + from ._models_py3 import Certificate + from ._models_py3 import CertificateCollection + from ._models_py3 import CertificateDetails + from ._models_py3 import CertificateEmail + from ._models_py3 import CertificateOrderAction + from ._models_py3 import CertificateOrderContact + from ._models_py3 import CertificatePatchResource + from ._models_py3 import ClientRegistration + from ._models_py3 import CloningInfo + from ._models_py3 import ConnStringInfo + from ._models_py3 import ConnStringValueTypePair + from ._models_py3 import ConnectionStringDictionary + from ._models_py3 import Contact + from ._models_py3 import ContainerCpuStatistics + from ._models_py3 import ContainerCpuUsage + from ._models_py3 import ContainerInfo + from ._models_py3 import ContainerMemoryStatistics + from ._models_py3 import ContainerNetworkInterfaceStatistics + from ._models_py3 import ContainerThrottlingData + from ._models_py3 import ContinuousWebJob + from ._models_py3 import ContinuousWebJobCollection + from ._models_py3 import CookieExpiration + from ._models_py3 import CorsSettings + from ._models_py3 import CsmMoveResourceEnvelope + from ._models_py3 import CsmOperationCollection + from ._models_py3 import CsmOperationDescription + from ._models_py3 import CsmOperationDescriptionProperties + from ._models_py3 import CsmOperationDisplay + from ._models_py3 import CsmPublishingCredentialsPoliciesEntity + from ._models_py3 import CsmPublishingProfileOptions + from ._models_py3 import CsmSlotEntity + from ._models_py3 import CsmUsageQuota + from ._models_py3 import CsmUsageQuotaCollection + from ._models_py3 import CustomHostnameAnalysisResult + from ._models_py3 import CustomOpenIdConnectProvider + from ._models_py3 import DataProviderMetadata + from ._models_py3 import DataSource + from ._models_py3 import DataTableResponseColumn + from ._models_py3 import DataTableResponseObject + from ._models_py3 import DatabaseBackupSetting + from ._models_py3 import DefaultErrorResponse + from ._models_py3 import DefaultErrorResponseError + from ._models_py3 import DefaultErrorResponseErrorDetailsItem + from ._models_py3 import DeletedAppRestoreRequest + from ._models_py3 import DeletedSite + from ._models_py3 import DeletedWebAppCollection + from ._models_py3 import Deployment + from ._models_py3 import DeploymentCollection + from ._models_py3 import DeploymentLocations + from ._models_py3 import DetectorAbnormalTimePeriod + from ._models_py3 import DetectorDefinition + from ._models_py3 import DetectorInfo + from ._models_py3 import DetectorResponse + from ._models_py3 import DetectorResponseCollection + from ._models_py3 import DiagnosticAnalysis + from ._models_py3 import DiagnosticAnalysisCollection + from ._models_py3 import DiagnosticCategory + from ._models_py3 import DiagnosticCategoryCollection + from ._models_py3 import DiagnosticData + from ._models_py3 import DiagnosticDetectorCollection + from ._models_py3 import DiagnosticDetectorResponse + from ._models_py3 import DiagnosticMetricSample + from ._models_py3 import DiagnosticMetricSet + from ._models_py3 import Dimension + from ._models_py3 import Domain + from ._models_py3 import DomainAvailabilityCheckResult + from ._models_py3 import DomainCollection + from ._models_py3 import DomainControlCenterSsoRequest + from ._models_py3 import DomainOwnershipIdentifier + from ._models_py3 import DomainOwnershipIdentifierCollection + from ._models_py3 import DomainPatchResource + from ._models_py3 import DomainPurchaseConsent + from ._models_py3 import DomainRecommendationSearchParameters + from ._models_py3 import EnabledConfig + from ._models_py3 import EndpointDependency + from ._models_py3 import EndpointDetail + from ._models_py3 import ErrorEntity + from ._models_py3 import Experiments + from ._models_py3 import ExtendedLocation + from ._models_py3 import Facebook + from ._models_py3 import FileSystemApplicationLogsConfig + from ._models_py3 import FileSystemHttpLogsConfig + from ._models_py3 import FileSystemTokenStore + from ._models_py3 import ForwardProxy + from ._models_py3 import FrontEndConfiguration + from ._models_py3 import FunctionAppMajorVersion + from ._models_py3 import FunctionAppMinorVersion + from ._models_py3 import FunctionAppRuntimeSettings + from ._models_py3 import FunctionAppRuntimes + from ._models_py3 import FunctionAppStack + from ._models_py3 import FunctionAppStackCollection + from ._models_py3 import FunctionEnvelope + from ._models_py3 import FunctionEnvelopeCollection + from ._models_py3 import FunctionSecrets + from ._models_py3 import GeoRegion + from ._models_py3 import GeoRegionCollection + from ._models_py3 import GitHub + from ._models_py3 import GitHubActionCodeConfiguration + from ._models_py3 import GitHubActionConfiguration + from ._models_py3 import GitHubActionContainerConfiguration + from ._models_py3 import GitHubActionWebAppStackSettings + from ._models_py3 import GlobalCsmSkuDescription + from ._models_py3 import GlobalValidation + from ._models_py3 import Google + from ._models_py3 import HandlerMapping + from ._models_py3 import HostKeys + from ._models_py3 import HostName + from ._models_py3 import HostNameBinding + from ._models_py3 import HostNameBindingCollection + from ._models_py3 import HostNameSslState + from ._models_py3 import HostingEnvironmentDeploymentInfo + from ._models_py3 import HostingEnvironmentDiagnostics + from ._models_py3 import HostingEnvironmentProfile + from ._models_py3 import HttpLogsConfig + from ._models_py3 import HttpSettings + from ._models_py3 import HttpSettingsRoutes + from ._models_py3 import HybridConnection + from ._models_py3 import HybridConnectionCollection + from ._models_py3 import HybridConnectionKey + from ._models_py3 import HybridConnectionLimits + from ._models_py3 import Identifier + from ._models_py3 import IdentifierCollection + from ._models_py3 import IdentityProviders + from ._models_py3 import InboundEnvironmentEndpoint + from ._models_py3 import InboundEnvironmentEndpointCollection + from ._models_py3 import IpSecurityRestriction + from ._models_py3 import JwtClaimChecks + from ._models_py3 import KeyInfo + from ._models_py3 import KeyValuePairStringObject + from ._models_py3 import KubeEnvironment + from ._models_py3 import KubeEnvironmentCollection + from ._models_py3 import KubeEnvironmentPatchResource + from ._models_py3 import KubeEnvironmentProfile + from ._models_py3 import LegacyMicrosoftAccount + from ._models_py3 import LinuxJavaContainerSettings + from ._models_py3 import LocalizableString + from ._models_py3 import LogAnalyticsConfiguration + from ._models_py3 import LogSpecification + from ._models_py3 import Login + from ._models_py3 import LoginRoutes + from ._models_py3 import LoginScopes + from ._models_py3 import MSDeploy + from ._models_py3 import MSDeployLog + from ._models_py3 import MSDeployLogEntry + from ._models_py3 import MSDeployStatus + from ._models_py3 import ManagedServiceIdentity + from ._models_py3 import MetricAvailability + from ._models_py3 import MetricSpecification + from ._models_py3 import MigrateMySqlRequest + from ._models_py3 import MigrateMySqlStatus + from ._models_py3 import NameIdentifier + from ._models_py3 import NameIdentifierCollection + from ._models_py3 import NameValuePair + from ._models_py3 import NetworkFeatures + from ._models_py3 import NetworkTrace + from ._models_py3 import Nonce + from ._models_py3 import OpenIdConnectClientCredential + from ._models_py3 import OpenIdConnectConfig + from ._models_py3 import OpenIdConnectLogin + from ._models_py3 import OpenIdConnectRegistration + from ._models_py3 import Operation + from ._models_py3 import OutboundEnvironmentEndpoint + from ._models_py3 import OutboundEnvironmentEndpointCollection + from ._models_py3 import PerfMonCounterCollection + from ._models_py3 import PerfMonResponse + from ._models_py3 import PerfMonSample + from ._models_py3 import PerfMonSet + from ._models_py3 import PremierAddOn + from ._models_py3 import PremierAddOnOffer + from ._models_py3 import PremierAddOnOfferCollection + from ._models_py3 import PremierAddOnPatchResource + from ._models_py3 import PrivateAccess + from ._models_py3 import PrivateAccessSubnet + from ._models_py3 import PrivateAccessVirtualNetwork + from ._models_py3 import PrivateEndpointConnectionCollection + from ._models_py3 import PrivateLinkConnectionApprovalRequestResource + from ._models_py3 import PrivateLinkConnectionState + from ._models_py3 import PrivateLinkResource + from ._models_py3 import PrivateLinkResourceProperties + from ._models_py3 import PrivateLinkResourcesWrapper + from ._models_py3 import ProcessInfo + from ._models_py3 import ProcessInfoCollection + from ._models_py3 import ProcessModuleInfo + from ._models_py3 import ProcessModuleInfoCollection + from ._models_py3 import ProcessThreadInfo + from ._models_py3 import ProcessThreadInfoCollection + from ._models_py3 import ProxyOnlyResource + from ._models_py3 import PublicCertificate + from ._models_py3 import PublicCertificateCollection + from ._models_py3 import PublishingCredentialsPoliciesCollection + from ._models_py3 import PushSettings + from ._models_py3 import QueryUtterancesResult + from ._models_py3 import QueryUtterancesResults + from ._models_py3 import RampUpRule + from ._models_py3 import Recommendation + from ._models_py3 import RecommendationCollection + from ._models_py3 import RecommendationRule + from ._models_py3 import ReissueCertificateOrderRequest + from ._models_py3 import RelayServiceConnectionEntity + from ._models_py3 import RemotePrivateEndpointConnection + from ._models_py3 import RemotePrivateEndpointConnectionARMResource + from ._models_py3 import Rendering + from ._models_py3 import RenewCertificateOrderRequest + from ._models_py3 import RequestsBasedTrigger + from ._models_py3 import Resource + from ._models_py3 import ResourceCollection + from ._models_py3 import ResourceHealthMetadata + from ._models_py3 import ResourceHealthMetadataCollection + from ._models_py3 import ResourceMetricAvailability + from ._models_py3 import ResourceMetricDefinition + from ._models_py3 import ResourceMetricDefinitionCollection + from ._models_py3 import ResourceNameAvailability + from ._models_py3 import ResourceNameAvailabilityRequest + from ._models_py3 import ResponseMessageEnvelopeRemotePrivateEndpointConnection + from ._models_py3 import ResponseMetaData + from ._models_py3 import RestoreRequest + from ._models_py3 import SampleUtterance + from ._models_py3 import ServiceSpecification + from ._models_py3 import Site + from ._models_py3 import SiteAuthSettings + from ._models_py3 import SiteAuthSettingsV2 + from ._models_py3 import SiteCloneability + from ._models_py3 import SiteCloneabilityCriterion + from ._models_py3 import SiteConfig + from ._models_py3 import SiteConfigPropertiesDictionary + from ._models_py3 import SiteConfigResource + from ._models_py3 import SiteConfigResourceCollection + from ._models_py3 import SiteConfigurationSnapshotInfo + from ._models_py3 import SiteConfigurationSnapshotInfoCollection + from ._models_py3 import SiteExtensionInfo + from ._models_py3 import SiteExtensionInfoCollection + from ._models_py3 import SiteLimits + from ._models_py3 import SiteLogsConfig + from ._models_py3 import SiteMachineKey + from ._models_py3 import SitePatchResource + from ._models_py3 import SitePhpErrorLogFlag + from ._models_py3 import SiteSeal + from ._models_py3 import SiteSealRequest + from ._models_py3 import SiteSourceControl + from ._models_py3 import SkuCapacity + from ._models_py3 import SkuDescription + from ._models_py3 import SkuInfo + from ._models_py3 import SkuInfoCollection + from ._models_py3 import SkuInfos + from ._models_py3 import SlotConfigNamesResource + from ._models_py3 import SlotDifference + from ._models_py3 import SlotDifferenceCollection + from ._models_py3 import SlotSwapStatus + from ._models_py3 import SlowRequestsBasedTrigger + from ._models_py3 import Snapshot + from ._models_py3 import SnapshotCollection + from ._models_py3 import SnapshotRecoverySource + from ._models_py3 import SnapshotRestoreRequest + from ._models_py3 import Solution + from ._models_py3 import SourceControl + from ._models_py3 import SourceControlCollection + from ._models_py3 import StackMajorVersion + from ._models_py3 import StackMinorVersion + from ._models_py3 import StampCapacity + from ._models_py3 import StampCapacityCollection + from ._models_py3 import StaticSiteARMResource + from ._models_py3 import StaticSiteBuildARMResource + from ._models_py3 import StaticSiteBuildCollection + from ._models_py3 import StaticSiteBuildProperties + from ._models_py3 import StaticSiteCollection + from ._models_py3 import StaticSiteCustomDomainOverviewARMResource + from ._models_py3 import StaticSiteCustomDomainOverviewCollection + from ._models_py3 import StaticSiteCustomDomainRequestPropertiesARMResource + from ._models_py3 import StaticSiteFunctionOverviewARMResource + from ._models_py3 import StaticSiteFunctionOverviewCollection + from ._models_py3 import StaticSitePatchResource + from ._models_py3 import StaticSiteResetPropertiesARMResource + from ._models_py3 import StaticSiteTemplateOptions + from ._models_py3 import StaticSiteUserARMResource + from ._models_py3 import StaticSiteUserCollection + from ._models_py3 import StaticSiteUserInvitationRequestResource + from ._models_py3 import StaticSiteUserInvitationResponseResource + from ._models_py3 import StaticSiteUserProvidedFunctionApp + from ._models_py3 import StaticSiteUserProvidedFunctionAppARMResource + from ._models_py3 import StaticSiteUserProvidedFunctionAppsCollection + from ._models_py3 import StaticSiteZipDeploymentARMResource + from ._models_py3 import StaticSitesWorkflowPreview + from ._models_py3 import StaticSitesWorkflowPreviewRequest + from ._models_py3 import Status + from ._models_py3 import StatusCodesBasedTrigger + from ._models_py3 import StatusCodesRangeBasedTrigger + from ._models_py3 import StorageMigrationOptions + from ._models_py3 import StorageMigrationResponse + from ._models_py3 import StringDictionary + from ._models_py3 import StringList + from ._models_py3 import SupportTopic + from ._models_py3 import SwiftVirtualNetwork + from ._models_py3 import TldLegalAgreement + from ._models_py3 import TldLegalAgreementCollection + from ._models_py3 import TokenStore + from ._models_py3 import TopLevelDomain + from ._models_py3 import TopLevelDomainAgreementOption + from ._models_py3 import TopLevelDomainCollection + from ._models_py3 import TriggeredJobHistory + from ._models_py3 import TriggeredJobHistoryCollection + from ._models_py3 import TriggeredJobRun + from ._models_py3 import TriggeredWebJob + from ._models_py3 import TriggeredWebJobCollection + from ._models_py3 import Twitter + from ._models_py3 import TwitterRegistration + from ._models_py3 import Usage + from ._models_py3 import UsageCollection + from ._models_py3 import User + from ._models_py3 import UserAssignedIdentity + from ._models_py3 import ValidateRequest + from ._models_py3 import ValidateResponse + from ._models_py3 import ValidateResponseError + from ._models_py3 import VirtualApplication + from ._models_py3 import VirtualDirectory + from ._models_py3 import VirtualIPMapping + from ._models_py3 import VirtualNetworkProfile + from ._models_py3 import VnetGateway + from ._models_py3 import VnetInfo + from ._models_py3 import VnetParameters + from ._models_py3 import VnetRoute + from ._models_py3 import VnetValidationFailureDetails + from ._models_py3 import VnetValidationTestFailure + from ._models_py3 import WebAppCollection + from ._models_py3 import WebAppInstanceStatusCollection + from ._models_py3 import WebAppMajorVersion + from ._models_py3 import WebAppMinorVersion + from ._models_py3 import WebAppRuntimeSettings + from ._models_py3 import WebAppRuntimes + from ._models_py3 import WebAppStack + from ._models_py3 import WebAppStackCollection + from ._models_py3 import WebJob + from ._models_py3 import WebJobCollection + from ._models_py3 import WebSiteInstanceStatus + from ._models_py3 import WindowsJavaContainerSettings + from ._models_py3 import WorkerPoolCollection + from ._models_py3 import WorkerPoolResource +except (SyntaxError, ImportError): + from ._models import AbnormalTimePeriod # type: ignore + from ._models import Address # type: ignore + from ._models import AddressResponse # type: ignore + from ._models import AllowedAudiencesValidation # type: ignore + from ._models import AnalysisData # type: ignore + from ._models import AnalysisDefinition # type: ignore + from ._models import ApiDefinitionInfo # type: ignore + from ._models import ApiKVReference # type: ignore + from ._models import ApiKVReferenceCollection # type: ignore + from ._models import ApiManagementConfig # type: ignore + from ._models import AppInsightsWebAppStackSettings # type: ignore + from ._models import AppLogsConfiguration # type: ignore + from ._models import AppRegistration # type: ignore + from ._models import AppServiceCertificate # type: ignore + from ._models import AppServiceCertificateCollection # type: ignore + from ._models import AppServiceCertificateOrder # type: ignore + from ._models import AppServiceCertificateOrderCollection # type: ignore + from ._models import AppServiceCertificateOrderPatchResource # type: ignore + from ._models import AppServiceCertificatePatchResource # type: ignore + from ._models import AppServiceCertificateResource # type: ignore + from ._models import AppServiceEnvironment # type: ignore + from ._models import AppServiceEnvironmentCollection # type: ignore + from ._models import AppServiceEnvironmentPatchResource # type: ignore + from ._models import AppServiceEnvironmentResource # type: ignore + from ._models import AppServicePlan # type: ignore + from ._models import AppServicePlanCollection # type: ignore + from ._models import AppServicePlanPatchResource # type: ignore + from ._models import Apple # type: ignore + from ._models import AppleRegistration # type: ignore + from ._models import ApplicationLogsConfig # type: ignore + from ._models import ApplicationStack # type: ignore + from ._models import ApplicationStackCollection # type: ignore + from ._models import ApplicationStackResource # type: ignore + from ._models import AppserviceGithubToken # type: ignore + from ._models import AppserviceGithubTokenRequest # type: ignore + from ._models import ArcConfiguration # type: ignore + from ._models import ArmIdWrapper # type: ignore + from ._models import ArmPlan # type: ignore + from ._models import AseV3NetworkingConfiguration # type: ignore + from ._models import AuthPlatform # type: ignore + from ._models import AutoHealActions # type: ignore + from ._models import AutoHealCustomAction # type: ignore + from ._models import AutoHealRules # type: ignore + from ._models import AutoHealTriggers # type: ignore + from ._models import AzureActiveDirectory # type: ignore + from ._models import AzureActiveDirectoryLogin # type: ignore + from ._models import AzureActiveDirectoryRegistration # type: ignore + from ._models import AzureActiveDirectoryValidation # type: ignore + from ._models import AzureBlobStorageApplicationLogsConfig # type: ignore + from ._models import AzureBlobStorageHttpLogsConfig # type: ignore + from ._models import AzureStaticWebApps # type: ignore + from ._models import AzureStaticWebAppsRegistration # type: ignore + from ._models import AzureStorageInfoValue # type: ignore + from ._models import AzureStoragePropertyDictionaryResource # type: ignore + from ._models import AzureTableStorageApplicationLogsConfig # type: ignore + from ._models import BackupItem # type: ignore + from ._models import BackupItemCollection # type: ignore + from ._models import BackupRequest # type: ignore + from ._models import BackupSchedule # type: ignore + from ._models import BillingMeter # type: ignore + from ._models import BillingMeterCollection # type: ignore + from ._models import BlobStorageTokenStore # type: ignore + from ._models import Capability # type: ignore + from ._models import Certificate # type: ignore + from ._models import CertificateCollection # type: ignore + from ._models import CertificateDetails # type: ignore + from ._models import CertificateEmail # type: ignore + from ._models import CertificateOrderAction # type: ignore + from ._models import CertificateOrderContact # type: ignore + from ._models import CertificatePatchResource # type: ignore + from ._models import ClientRegistration # type: ignore + from ._models import CloningInfo # type: ignore + from ._models import ConnStringInfo # type: ignore + from ._models import ConnStringValueTypePair # type: ignore + from ._models import ConnectionStringDictionary # type: ignore + from ._models import Contact # type: ignore + from ._models import ContainerCpuStatistics # type: ignore + from ._models import ContainerCpuUsage # type: ignore + from ._models import ContainerInfo # type: ignore + from ._models import ContainerMemoryStatistics # type: ignore + from ._models import ContainerNetworkInterfaceStatistics # type: ignore + from ._models import ContainerThrottlingData # type: ignore + from ._models import ContinuousWebJob # type: ignore + from ._models import ContinuousWebJobCollection # type: ignore + from ._models import CookieExpiration # type: ignore + from ._models import CorsSettings # type: ignore + from ._models import CsmMoveResourceEnvelope # type: ignore + from ._models import CsmOperationCollection # type: ignore + from ._models import CsmOperationDescription # type: ignore + from ._models import CsmOperationDescriptionProperties # type: ignore + from ._models import CsmOperationDisplay # type: ignore + from ._models import CsmPublishingCredentialsPoliciesEntity # type: ignore + from ._models import CsmPublishingProfileOptions # type: ignore + from ._models import CsmSlotEntity # type: ignore + from ._models import CsmUsageQuota # type: ignore + from ._models import CsmUsageQuotaCollection # type: ignore + from ._models import CustomHostnameAnalysisResult # type: ignore + from ._models import CustomOpenIdConnectProvider # type: ignore + from ._models import DataProviderMetadata # type: ignore + from ._models import DataSource # type: ignore + from ._models import DataTableResponseColumn # type: ignore + from ._models import DataTableResponseObject # type: ignore + from ._models import DatabaseBackupSetting # type: ignore + from ._models import DefaultErrorResponse # type: ignore + from ._models import DefaultErrorResponseError # type: ignore + from ._models import DefaultErrorResponseErrorDetailsItem # type: ignore + from ._models import DeletedAppRestoreRequest # type: ignore + from ._models import DeletedSite # type: ignore + from ._models import DeletedWebAppCollection # type: ignore + from ._models import Deployment # type: ignore + from ._models import DeploymentCollection # type: ignore + from ._models import DeploymentLocations # type: ignore + from ._models import DetectorAbnormalTimePeriod # type: ignore + from ._models import DetectorDefinition # type: ignore + from ._models import DetectorInfo # type: ignore + from ._models import DetectorResponse # type: ignore + from ._models import DetectorResponseCollection # type: ignore + from ._models import DiagnosticAnalysis # type: ignore + from ._models import DiagnosticAnalysisCollection # type: ignore + from ._models import DiagnosticCategory # type: ignore + from ._models import DiagnosticCategoryCollection # type: ignore + from ._models import DiagnosticData # type: ignore + from ._models import DiagnosticDetectorCollection # type: ignore + from ._models import DiagnosticDetectorResponse # type: ignore + from ._models import DiagnosticMetricSample # type: ignore + from ._models import DiagnosticMetricSet # type: ignore + from ._models import Dimension # type: ignore + from ._models import Domain # type: ignore + from ._models import DomainAvailabilityCheckResult # type: ignore + from ._models import DomainCollection # type: ignore + from ._models import DomainControlCenterSsoRequest # type: ignore + from ._models import DomainOwnershipIdentifier # type: ignore + from ._models import DomainOwnershipIdentifierCollection # type: ignore + from ._models import DomainPatchResource # type: ignore + from ._models import DomainPurchaseConsent # type: ignore + from ._models import DomainRecommendationSearchParameters # type: ignore + from ._models import EnabledConfig # type: ignore + from ._models import EndpointDependency # type: ignore + from ._models import EndpointDetail # type: ignore + from ._models import ErrorEntity # type: ignore + from ._models import Experiments # type: ignore + from ._models import ExtendedLocation # type: ignore + from ._models import Facebook # type: ignore + from ._models import FileSystemApplicationLogsConfig # type: ignore + from ._models import FileSystemHttpLogsConfig # type: ignore + from ._models import FileSystemTokenStore # type: ignore + from ._models import ForwardProxy # type: ignore + from ._models import FrontEndConfiguration # type: ignore + from ._models import FunctionAppMajorVersion # type: ignore + from ._models import FunctionAppMinorVersion # type: ignore + from ._models import FunctionAppRuntimeSettings # type: ignore + from ._models import FunctionAppRuntimes # type: ignore + from ._models import FunctionAppStack # type: ignore + from ._models import FunctionAppStackCollection # type: ignore + from ._models import FunctionEnvelope # type: ignore + from ._models import FunctionEnvelopeCollection # type: ignore + from ._models import FunctionSecrets # type: ignore + from ._models import GeoRegion # type: ignore + from ._models import GeoRegionCollection # type: ignore + from ._models import GitHub # type: ignore + from ._models import GitHubActionCodeConfiguration # type: ignore + from ._models import GitHubActionConfiguration # type: ignore + from ._models import GitHubActionContainerConfiguration # type: ignore + from ._models import GitHubActionWebAppStackSettings # type: ignore + from ._models import GlobalCsmSkuDescription # type: ignore + from ._models import GlobalValidation # type: ignore + from ._models import Google # type: ignore + from ._models import HandlerMapping # type: ignore + from ._models import HostKeys # type: ignore + from ._models import HostName # type: ignore + from ._models import HostNameBinding # type: ignore + from ._models import HostNameBindingCollection # type: ignore + from ._models import HostNameSslState # type: ignore + from ._models import HostingEnvironmentDeploymentInfo # type: ignore + from ._models import HostingEnvironmentDiagnostics # type: ignore + from ._models import HostingEnvironmentProfile # type: ignore + from ._models import HttpLogsConfig # type: ignore + from ._models import HttpSettings # type: ignore + from ._models import HttpSettingsRoutes # type: ignore + from ._models import HybridConnection # type: ignore + from ._models import HybridConnectionCollection # type: ignore + from ._models import HybridConnectionKey # type: ignore + from ._models import HybridConnectionLimits # type: ignore + from ._models import Identifier # type: ignore + from ._models import IdentifierCollection # type: ignore + from ._models import IdentityProviders # type: ignore + from ._models import InboundEnvironmentEndpoint # type: ignore + from ._models import InboundEnvironmentEndpointCollection # type: ignore + from ._models import IpSecurityRestriction # type: ignore + from ._models import JwtClaimChecks # type: ignore + from ._models import KeyInfo # type: ignore + from ._models import KeyValuePairStringObject # type: ignore + from ._models import KubeEnvironment # type: ignore + from ._models import KubeEnvironmentCollection # type: ignore + from ._models import KubeEnvironmentPatchResource # type: ignore + from ._models import KubeEnvironmentProfile # type: ignore + from ._models import LegacyMicrosoftAccount # type: ignore + from ._models import LinuxJavaContainerSettings # type: ignore + from ._models import LocalizableString # type: ignore + from ._models import LogAnalyticsConfiguration # type: ignore + from ._models import LogSpecification # type: ignore + from ._models import Login # type: ignore + from ._models import LoginRoutes # type: ignore + from ._models import LoginScopes # type: ignore + from ._models import MSDeploy # type: ignore + from ._models import MSDeployLog # type: ignore + from ._models import MSDeployLogEntry # type: ignore + from ._models import MSDeployStatus # type: ignore + from ._models import ManagedServiceIdentity # type: ignore + from ._models import MetricAvailability # type: ignore + from ._models import MetricSpecification # type: ignore + from ._models import MigrateMySqlRequest # type: ignore + from ._models import MigrateMySqlStatus # type: ignore + from ._models import NameIdentifier # type: ignore + from ._models import NameIdentifierCollection # type: ignore + from ._models import NameValuePair # type: ignore + from ._models import NetworkFeatures # type: ignore + from ._models import NetworkTrace # type: ignore + from ._models import Nonce # type: ignore + from ._models import OpenIdConnectClientCredential # type: ignore + from ._models import OpenIdConnectConfig # type: ignore + from ._models import OpenIdConnectLogin # type: ignore + from ._models import OpenIdConnectRegistration # type: ignore + from ._models import Operation # type: ignore + from ._models import OutboundEnvironmentEndpoint # type: ignore + from ._models import OutboundEnvironmentEndpointCollection # type: ignore + from ._models import PerfMonCounterCollection # type: ignore + from ._models import PerfMonResponse # type: ignore + from ._models import PerfMonSample # type: ignore + from ._models import PerfMonSet # type: ignore + from ._models import PremierAddOn # type: ignore + from ._models import PremierAddOnOffer # type: ignore + from ._models import PremierAddOnOfferCollection # type: ignore + from ._models import PremierAddOnPatchResource # type: ignore + from ._models import PrivateAccess # type: ignore + from ._models import PrivateAccessSubnet # type: ignore + from ._models import PrivateAccessVirtualNetwork # type: ignore + from ._models import PrivateEndpointConnectionCollection # type: ignore + from ._models import PrivateLinkConnectionApprovalRequestResource # type: ignore + from ._models import PrivateLinkConnectionState # type: ignore + from ._models import PrivateLinkResource # type: ignore + from ._models import PrivateLinkResourceProperties # type: ignore + from ._models import PrivateLinkResourcesWrapper # type: ignore + from ._models import ProcessInfo # type: ignore + from ._models import ProcessInfoCollection # type: ignore + from ._models import ProcessModuleInfo # type: ignore + from ._models import ProcessModuleInfoCollection # type: ignore + from ._models import ProcessThreadInfo # type: ignore + from ._models import ProcessThreadInfoCollection # type: ignore + from ._models import ProxyOnlyResource # type: ignore + from ._models import PublicCertificate # type: ignore + from ._models import PublicCertificateCollection # type: ignore + from ._models import PublishingCredentialsPoliciesCollection # type: ignore + from ._models import PushSettings # type: ignore + from ._models import QueryUtterancesResult # type: ignore + from ._models import QueryUtterancesResults # type: ignore + from ._models import RampUpRule # type: ignore + from ._models import Recommendation # type: ignore + from ._models import RecommendationCollection # type: ignore + from ._models import RecommendationRule # type: ignore + from ._models import ReissueCertificateOrderRequest # type: ignore + from ._models import RelayServiceConnectionEntity # type: ignore + from ._models import RemotePrivateEndpointConnection # type: ignore + from ._models import RemotePrivateEndpointConnectionARMResource # type: ignore + from ._models import Rendering # type: ignore + from ._models import RenewCertificateOrderRequest # type: ignore + from ._models import RequestsBasedTrigger # type: ignore + from ._models import Resource # type: ignore + from ._models import ResourceCollection # type: ignore + from ._models import ResourceHealthMetadata # type: ignore + from ._models import ResourceHealthMetadataCollection # type: ignore + from ._models import ResourceMetricAvailability # type: ignore + from ._models import ResourceMetricDefinition # type: ignore + from ._models import ResourceMetricDefinitionCollection # type: ignore + from ._models import ResourceNameAvailability # type: ignore + from ._models import ResourceNameAvailabilityRequest # type: ignore + from ._models import ResponseMessageEnvelopeRemotePrivateEndpointConnection # type: ignore + from ._models import ResponseMetaData # type: ignore + from ._models import RestoreRequest # type: ignore + from ._models import SampleUtterance # type: ignore + from ._models import ServiceSpecification # type: ignore + from ._models import Site # type: ignore + from ._models import SiteAuthSettings # type: ignore + from ._models import SiteAuthSettingsV2 # type: ignore + from ._models import SiteCloneability # type: ignore + from ._models import SiteCloneabilityCriterion # type: ignore + from ._models import SiteConfig # type: ignore + from ._models import SiteConfigPropertiesDictionary # type: ignore + from ._models import SiteConfigResource # type: ignore + from ._models import SiteConfigResourceCollection # type: ignore + from ._models import SiteConfigurationSnapshotInfo # type: ignore + from ._models import SiteConfigurationSnapshotInfoCollection # type: ignore + from ._models import SiteExtensionInfo # type: ignore + from ._models import SiteExtensionInfoCollection # type: ignore + from ._models import SiteLimits # type: ignore + from ._models import SiteLogsConfig # type: ignore + from ._models import SiteMachineKey # type: ignore + from ._models import SitePatchResource # type: ignore + from ._models import SitePhpErrorLogFlag # type: ignore + from ._models import SiteSeal # type: ignore + from ._models import SiteSealRequest # type: ignore + from ._models import SiteSourceControl # type: ignore + from ._models import SkuCapacity # type: ignore + from ._models import SkuDescription # type: ignore + from ._models import SkuInfo # type: ignore + from ._models import SkuInfoCollection # type: ignore + from ._models import SkuInfos # type: ignore + from ._models import SlotConfigNamesResource # type: ignore + from ._models import SlotDifference # type: ignore + from ._models import SlotDifferenceCollection # type: ignore + from ._models import SlotSwapStatus # type: ignore + from ._models import SlowRequestsBasedTrigger # type: ignore + from ._models import Snapshot # type: ignore + from ._models import SnapshotCollection # type: ignore + from ._models import SnapshotRecoverySource # type: ignore + from ._models import SnapshotRestoreRequest # type: ignore + from ._models import Solution # type: ignore + from ._models import SourceControl # type: ignore + from ._models import SourceControlCollection # type: ignore + from ._models import StackMajorVersion # type: ignore + from ._models import StackMinorVersion # type: ignore + from ._models import StampCapacity # type: ignore + from ._models import StampCapacityCollection # type: ignore + from ._models import StaticSiteARMResource # type: ignore + from ._models import StaticSiteBuildARMResource # type: ignore + from ._models import StaticSiteBuildCollection # type: ignore + from ._models import StaticSiteBuildProperties # type: ignore + from ._models import StaticSiteCollection # type: ignore + from ._models import StaticSiteCustomDomainOverviewARMResource # type: ignore + from ._models import StaticSiteCustomDomainOverviewCollection # type: ignore + from ._models import StaticSiteCustomDomainRequestPropertiesARMResource # type: ignore + from ._models import StaticSiteFunctionOverviewARMResource # type: ignore + from ._models import StaticSiteFunctionOverviewCollection # type: ignore + from ._models import StaticSitePatchResource # type: ignore + from ._models import StaticSiteResetPropertiesARMResource # type: ignore + from ._models import StaticSiteTemplateOptions # type: ignore + from ._models import StaticSiteUserARMResource # type: ignore + from ._models import StaticSiteUserCollection # type: ignore + from ._models import StaticSiteUserInvitationRequestResource # type: ignore + from ._models import StaticSiteUserInvitationResponseResource # type: ignore + from ._models import StaticSiteUserProvidedFunctionApp # type: ignore + from ._models import StaticSiteUserProvidedFunctionAppARMResource # type: ignore + from ._models import StaticSiteUserProvidedFunctionAppsCollection # type: ignore + from ._models import StaticSiteZipDeploymentARMResource # type: ignore + from ._models import StaticSitesWorkflowPreview # type: ignore + from ._models import StaticSitesWorkflowPreviewRequest # type: ignore + from ._models import Status # type: ignore + from ._models import StatusCodesBasedTrigger # type: ignore + from ._models import StatusCodesRangeBasedTrigger # type: ignore + from ._models import StorageMigrationOptions # type: ignore + from ._models import StorageMigrationResponse # type: ignore + from ._models import StringDictionary # type: ignore + from ._models import StringList # type: ignore + from ._models import SupportTopic # type: ignore + from ._models import SwiftVirtualNetwork # type: ignore + from ._models import TldLegalAgreement # type: ignore + from ._models import TldLegalAgreementCollection # type: ignore + from ._models import TokenStore # type: ignore + from ._models import TopLevelDomain # type: ignore + from ._models import TopLevelDomainAgreementOption # type: ignore + from ._models import TopLevelDomainCollection # type: ignore + from ._models import TriggeredJobHistory # type: ignore + from ._models import TriggeredJobHistoryCollection # type: ignore + from ._models import TriggeredJobRun # type: ignore + from ._models import TriggeredWebJob # type: ignore + from ._models import TriggeredWebJobCollection # type: ignore + from ._models import Twitter # type: ignore + from ._models import TwitterRegistration # type: ignore + from ._models import Usage # type: ignore + from ._models import UsageCollection # type: ignore + from ._models import User # type: ignore + from ._models import UserAssignedIdentity # type: ignore + from ._models import ValidateRequest # type: ignore + from ._models import ValidateResponse # type: ignore + from ._models import ValidateResponseError # type: ignore + from ._models import VirtualApplication # type: ignore + from ._models import VirtualDirectory # type: ignore + from ._models import VirtualIPMapping # type: ignore + from ._models import VirtualNetworkProfile # type: ignore + from ._models import VnetGateway # type: ignore + from ._models import VnetInfo # type: ignore + from ._models import VnetParameters # type: ignore + from ._models import VnetRoute # type: ignore + from ._models import VnetValidationFailureDetails # type: ignore + from ._models import VnetValidationTestFailure # type: ignore + from ._models import WebAppCollection # type: ignore + from ._models import WebAppInstanceStatusCollection # type: ignore + from ._models import WebAppMajorVersion # type: ignore + from ._models import WebAppMinorVersion # type: ignore + from ._models import WebAppRuntimeSettings # type: ignore + from ._models import WebAppRuntimes # type: ignore + from ._models import WebAppStack # type: ignore + from ._models import WebAppStackCollection # type: ignore + from ._models import WebJob # type: ignore + from ._models import WebJobCollection # type: ignore + from ._models import WebSiteInstanceStatus # type: ignore + from ._models import WindowsJavaContainerSettings # type: ignore + from ._models import WorkerPoolCollection # type: ignore + from ._models import WorkerPoolResource # type: ignore + +from ._web_site_management_client_enums import ( + AppServiceCertificateOrderPatchResourcePropertiesAppServiceCertificateNotRenewableReasonsItem, + AppServiceCertificateOrderPropertiesAppServiceCertificateNotRenewableReasonsItem, + AppServicePlanRestrictions, + AutoHealActionType, + AzureResourceType, + AzureStorageState, + AzureStorageType, + BackupItemStatus, + BackupRestoreOperationType, + BuildStatus, + BuiltInAuthenticationProvider, + CertificateOrderActionType, + CertificateOrderStatus, + CertificateProductType, + Channels, + CheckNameResourceTypes, + ClientCertMode, + CloneAbilityResult, + ComputeModeOptions, + ConnectionStringType, + ContinuousWebJobStatus, + CookieExpirationConvention, + CustomDomainStatus, + CustomHostNameDnsRecordType, + DatabaseType, + DetectorType, + DnsType, + DnsVerificationTestResult, + DomainPatchResourcePropertiesDomainNotRenewableReasonsItem, + DomainPropertiesDomainNotRenewableReasonsItem, + DomainStatus, + DomainType, + Enum10, + Enum11, + Enum12, + Enum13, + Enum14, + Enum15, + ForwardProxyConvention, + FrequencyUnit, + FrontEndServiceType, + FtpsState, + HostNameType, + HostType, + HostingEnvironmentStatus, + InAvailabilityReasonType, + InsightStatus, + IpFilterTag, + IssueType, + KeyVaultSecretStatus, + KubeEnvironmentProvisioningState, + LoadBalancingMode, + LogLevel, + MSDeployLogEntryType, + MSDeployProvisioningState, + ManagedPipelineMode, + ManagedServiceIdentityType, + MySqlMigrationType, + NotificationLevel, + OperationStatus, + ProvisioningState, + PublicCertificateLocation, + PublishingProfileFormat, + RedundancyMode, + RenderingType, + ResolveStatus, + ResourceScopeType, + RouteType, + ScmType, + SiteAvailabilityState, + SiteExtensionType, + SiteLoadBalancing, + SiteRuntimeState, + SkuName, + SolutionType, + SslState, + StackPreferredOs, + StagingEnvironmentPolicy, + StatusOptions, + StorageType, + SupportedTlsVersions, + TriggerTypes, + TriggeredWebJobStatus, + UnauthenticatedClientAction, + UnauthenticatedClientActionV2, + UsageState, + ValidateResourceTypes, + WebJobType, + WorkerSizeOptions, +) + +__all__ = [ + 'AbnormalTimePeriod', + 'Address', + 'AddressResponse', + 'AllowedAudiencesValidation', + 'AnalysisData', + 'AnalysisDefinition', + 'ApiDefinitionInfo', + 'ApiKVReference', + 'ApiKVReferenceCollection', + 'ApiManagementConfig', + 'AppInsightsWebAppStackSettings', + 'AppLogsConfiguration', + 'AppRegistration', + 'AppServiceCertificate', + 'AppServiceCertificateCollection', + 'AppServiceCertificateOrder', + 'AppServiceCertificateOrderCollection', + 'AppServiceCertificateOrderPatchResource', + 'AppServiceCertificatePatchResource', + 'AppServiceCertificateResource', + 'AppServiceEnvironment', + 'AppServiceEnvironmentCollection', + 'AppServiceEnvironmentPatchResource', + 'AppServiceEnvironmentResource', + 'AppServicePlan', + 'AppServicePlanCollection', + 'AppServicePlanPatchResource', + 'Apple', + 'AppleRegistration', + 'ApplicationLogsConfig', + 'ApplicationStack', + 'ApplicationStackCollection', + 'ApplicationStackResource', + 'AppserviceGithubToken', + 'AppserviceGithubTokenRequest', + 'ArcConfiguration', + 'ArmIdWrapper', + 'ArmPlan', + 'AseV3NetworkingConfiguration', + 'AuthPlatform', + 'AutoHealActions', + 'AutoHealCustomAction', + 'AutoHealRules', + 'AutoHealTriggers', + 'AzureActiveDirectory', + 'AzureActiveDirectoryLogin', + 'AzureActiveDirectoryRegistration', + 'AzureActiveDirectoryValidation', + 'AzureBlobStorageApplicationLogsConfig', + 'AzureBlobStorageHttpLogsConfig', + 'AzureStaticWebApps', + 'AzureStaticWebAppsRegistration', + 'AzureStorageInfoValue', + 'AzureStoragePropertyDictionaryResource', + 'AzureTableStorageApplicationLogsConfig', + 'BackupItem', + 'BackupItemCollection', + 'BackupRequest', + 'BackupSchedule', + 'BillingMeter', + 'BillingMeterCollection', + 'BlobStorageTokenStore', + 'Capability', + 'Certificate', + 'CertificateCollection', + 'CertificateDetails', + 'CertificateEmail', + 'CertificateOrderAction', + 'CertificateOrderContact', + 'CertificatePatchResource', + 'ClientRegistration', + 'CloningInfo', + 'ConnStringInfo', + 'ConnStringValueTypePair', + 'ConnectionStringDictionary', + 'Contact', + 'ContainerCpuStatistics', + 'ContainerCpuUsage', + 'ContainerInfo', + 'ContainerMemoryStatistics', + 'ContainerNetworkInterfaceStatistics', + 'ContainerThrottlingData', + 'ContinuousWebJob', + 'ContinuousWebJobCollection', + 'CookieExpiration', + 'CorsSettings', + 'CsmMoveResourceEnvelope', + 'CsmOperationCollection', + 'CsmOperationDescription', + 'CsmOperationDescriptionProperties', + 'CsmOperationDisplay', + 'CsmPublishingCredentialsPoliciesEntity', + 'CsmPublishingProfileOptions', + 'CsmSlotEntity', + 'CsmUsageQuota', + 'CsmUsageQuotaCollection', + 'CustomHostnameAnalysisResult', + 'CustomOpenIdConnectProvider', + 'DataProviderMetadata', + 'DataSource', + 'DataTableResponseColumn', + 'DataTableResponseObject', + 'DatabaseBackupSetting', + 'DefaultErrorResponse', + 'DefaultErrorResponseError', + 'DefaultErrorResponseErrorDetailsItem', + 'DeletedAppRestoreRequest', + 'DeletedSite', + 'DeletedWebAppCollection', + 'Deployment', + 'DeploymentCollection', + 'DeploymentLocations', + 'DetectorAbnormalTimePeriod', + 'DetectorDefinition', + 'DetectorInfo', + 'DetectorResponse', + 'DetectorResponseCollection', + 'DiagnosticAnalysis', + 'DiagnosticAnalysisCollection', + 'DiagnosticCategory', + 'DiagnosticCategoryCollection', + 'DiagnosticData', + 'DiagnosticDetectorCollection', + 'DiagnosticDetectorResponse', + 'DiagnosticMetricSample', + 'DiagnosticMetricSet', + 'Dimension', + 'Domain', + 'DomainAvailabilityCheckResult', + 'DomainCollection', + 'DomainControlCenterSsoRequest', + 'DomainOwnershipIdentifier', + 'DomainOwnershipIdentifierCollection', + 'DomainPatchResource', + 'DomainPurchaseConsent', + 'DomainRecommendationSearchParameters', + 'EnabledConfig', + 'EndpointDependency', + 'EndpointDetail', + 'ErrorEntity', + 'Experiments', + 'ExtendedLocation', + 'Facebook', + 'FileSystemApplicationLogsConfig', + 'FileSystemHttpLogsConfig', + 'FileSystemTokenStore', + 'ForwardProxy', + 'FrontEndConfiguration', + 'FunctionAppMajorVersion', + 'FunctionAppMinorVersion', + 'FunctionAppRuntimeSettings', + 'FunctionAppRuntimes', + 'FunctionAppStack', + 'FunctionAppStackCollection', + 'FunctionEnvelope', + 'FunctionEnvelopeCollection', + 'FunctionSecrets', + 'GeoRegion', + 'GeoRegionCollection', + 'GitHub', + 'GitHubActionCodeConfiguration', + 'GitHubActionConfiguration', + 'GitHubActionContainerConfiguration', + 'GitHubActionWebAppStackSettings', + 'GlobalCsmSkuDescription', + 'GlobalValidation', + 'Google', + 'HandlerMapping', + 'HostKeys', + 'HostName', + 'HostNameBinding', + 'HostNameBindingCollection', + 'HostNameSslState', + 'HostingEnvironmentDeploymentInfo', + 'HostingEnvironmentDiagnostics', + 'HostingEnvironmentProfile', + 'HttpLogsConfig', + 'HttpSettings', + 'HttpSettingsRoutes', + 'HybridConnection', + 'HybridConnectionCollection', + 'HybridConnectionKey', + 'HybridConnectionLimits', + 'Identifier', + 'IdentifierCollection', + 'IdentityProviders', + 'InboundEnvironmentEndpoint', + 'InboundEnvironmentEndpointCollection', + 'IpSecurityRestriction', + 'JwtClaimChecks', + 'KeyInfo', + 'KeyValuePairStringObject', + 'KubeEnvironment', + 'KubeEnvironmentCollection', + 'KubeEnvironmentPatchResource', + 'KubeEnvironmentProfile', + 'LegacyMicrosoftAccount', + 'LinuxJavaContainerSettings', + 'LocalizableString', + 'LogAnalyticsConfiguration', + 'LogSpecification', + 'Login', + 'LoginRoutes', + 'LoginScopes', + 'MSDeploy', + 'MSDeployLog', + 'MSDeployLogEntry', + 'MSDeployStatus', + 'ManagedServiceIdentity', + 'MetricAvailability', + 'MetricSpecification', + 'MigrateMySqlRequest', + 'MigrateMySqlStatus', + 'NameIdentifier', + 'NameIdentifierCollection', + 'NameValuePair', + 'NetworkFeatures', + 'NetworkTrace', + 'Nonce', + 'OpenIdConnectClientCredential', + 'OpenIdConnectConfig', + 'OpenIdConnectLogin', + 'OpenIdConnectRegistration', + 'Operation', + 'OutboundEnvironmentEndpoint', + 'OutboundEnvironmentEndpointCollection', + 'PerfMonCounterCollection', + 'PerfMonResponse', + 'PerfMonSample', + 'PerfMonSet', + 'PremierAddOn', + 'PremierAddOnOffer', + 'PremierAddOnOfferCollection', + 'PremierAddOnPatchResource', + 'PrivateAccess', + 'PrivateAccessSubnet', + 'PrivateAccessVirtualNetwork', + 'PrivateEndpointConnectionCollection', + 'PrivateLinkConnectionApprovalRequestResource', + 'PrivateLinkConnectionState', + 'PrivateLinkResource', + 'PrivateLinkResourceProperties', + 'PrivateLinkResourcesWrapper', + 'ProcessInfo', + 'ProcessInfoCollection', + 'ProcessModuleInfo', + 'ProcessModuleInfoCollection', + 'ProcessThreadInfo', + 'ProcessThreadInfoCollection', + 'ProxyOnlyResource', + 'PublicCertificate', + 'PublicCertificateCollection', + 'PublishingCredentialsPoliciesCollection', + 'PushSettings', + 'QueryUtterancesResult', + 'QueryUtterancesResults', + 'RampUpRule', + 'Recommendation', + 'RecommendationCollection', + 'RecommendationRule', + 'ReissueCertificateOrderRequest', + 'RelayServiceConnectionEntity', + 'RemotePrivateEndpointConnection', + 'RemotePrivateEndpointConnectionARMResource', + 'Rendering', + 'RenewCertificateOrderRequest', + 'RequestsBasedTrigger', + 'Resource', + 'ResourceCollection', + 'ResourceHealthMetadata', + 'ResourceHealthMetadataCollection', + 'ResourceMetricAvailability', + 'ResourceMetricDefinition', + 'ResourceMetricDefinitionCollection', + 'ResourceNameAvailability', + 'ResourceNameAvailabilityRequest', + 'ResponseMessageEnvelopeRemotePrivateEndpointConnection', + 'ResponseMetaData', + 'RestoreRequest', + 'SampleUtterance', + 'ServiceSpecification', + 'Site', + 'SiteAuthSettings', + 'SiteAuthSettingsV2', + 'SiteCloneability', + 'SiteCloneabilityCriterion', + 'SiteConfig', + 'SiteConfigPropertiesDictionary', + 'SiteConfigResource', + 'SiteConfigResourceCollection', + 'SiteConfigurationSnapshotInfo', + 'SiteConfigurationSnapshotInfoCollection', + 'SiteExtensionInfo', + 'SiteExtensionInfoCollection', + 'SiteLimits', + 'SiteLogsConfig', + 'SiteMachineKey', + 'SitePatchResource', + 'SitePhpErrorLogFlag', + 'SiteSeal', + 'SiteSealRequest', + 'SiteSourceControl', + 'SkuCapacity', + 'SkuDescription', + 'SkuInfo', + 'SkuInfoCollection', + 'SkuInfos', + 'SlotConfigNamesResource', + 'SlotDifference', + 'SlotDifferenceCollection', + 'SlotSwapStatus', + 'SlowRequestsBasedTrigger', + 'Snapshot', + 'SnapshotCollection', + 'SnapshotRecoverySource', + 'SnapshotRestoreRequest', + 'Solution', + 'SourceControl', + 'SourceControlCollection', + 'StackMajorVersion', + 'StackMinorVersion', + 'StampCapacity', + 'StampCapacityCollection', + 'StaticSiteARMResource', + 'StaticSiteBuildARMResource', + 'StaticSiteBuildCollection', + 'StaticSiteBuildProperties', + 'StaticSiteCollection', + 'StaticSiteCustomDomainOverviewARMResource', + 'StaticSiteCustomDomainOverviewCollection', + 'StaticSiteCustomDomainRequestPropertiesARMResource', + 'StaticSiteFunctionOverviewARMResource', + 'StaticSiteFunctionOverviewCollection', + 'StaticSitePatchResource', + 'StaticSiteResetPropertiesARMResource', + 'StaticSiteTemplateOptions', + 'StaticSiteUserARMResource', + 'StaticSiteUserCollection', + 'StaticSiteUserInvitationRequestResource', + 'StaticSiteUserInvitationResponseResource', + 'StaticSiteUserProvidedFunctionApp', + 'StaticSiteUserProvidedFunctionAppARMResource', + 'StaticSiteUserProvidedFunctionAppsCollection', + 'StaticSiteZipDeploymentARMResource', + 'StaticSitesWorkflowPreview', + 'StaticSitesWorkflowPreviewRequest', + 'Status', + 'StatusCodesBasedTrigger', + 'StatusCodesRangeBasedTrigger', + 'StorageMigrationOptions', + 'StorageMigrationResponse', + 'StringDictionary', + 'StringList', + 'SupportTopic', + 'SwiftVirtualNetwork', + 'TldLegalAgreement', + 'TldLegalAgreementCollection', + 'TokenStore', + 'TopLevelDomain', + 'TopLevelDomainAgreementOption', + 'TopLevelDomainCollection', + 'TriggeredJobHistory', + 'TriggeredJobHistoryCollection', + 'TriggeredJobRun', + 'TriggeredWebJob', + 'TriggeredWebJobCollection', + 'Twitter', + 'TwitterRegistration', + 'Usage', + 'UsageCollection', + 'User', + 'UserAssignedIdentity', + 'ValidateRequest', + 'ValidateResponse', + 'ValidateResponseError', + 'VirtualApplication', + 'VirtualDirectory', + 'VirtualIPMapping', + 'VirtualNetworkProfile', + 'VnetGateway', + 'VnetInfo', + 'VnetParameters', + 'VnetRoute', + 'VnetValidationFailureDetails', + 'VnetValidationTestFailure', + 'WebAppCollection', + 'WebAppInstanceStatusCollection', + 'WebAppMajorVersion', + 'WebAppMinorVersion', + 'WebAppRuntimeSettings', + 'WebAppRuntimes', + 'WebAppStack', + 'WebAppStackCollection', + 'WebJob', + 'WebJobCollection', + 'WebSiteInstanceStatus', + 'WindowsJavaContainerSettings', + 'WorkerPoolCollection', + 'WorkerPoolResource', + 'AppServiceCertificateOrderPatchResourcePropertiesAppServiceCertificateNotRenewableReasonsItem', + 'AppServiceCertificateOrderPropertiesAppServiceCertificateNotRenewableReasonsItem', + 'AppServicePlanRestrictions', + 'AutoHealActionType', + 'AzureResourceType', + 'AzureStorageState', + 'AzureStorageType', + 'BackupItemStatus', + 'BackupRestoreOperationType', + 'BuildStatus', + 'BuiltInAuthenticationProvider', + 'CertificateOrderActionType', + 'CertificateOrderStatus', + 'CertificateProductType', + 'Channels', + 'CheckNameResourceTypes', + 'ClientCertMode', + 'CloneAbilityResult', + 'ComputeModeOptions', + 'ConnectionStringType', + 'ContinuousWebJobStatus', + 'CookieExpirationConvention', + 'CustomDomainStatus', + 'CustomHostNameDnsRecordType', + 'DatabaseType', + 'DetectorType', + 'DnsType', + 'DnsVerificationTestResult', + 'DomainPatchResourcePropertiesDomainNotRenewableReasonsItem', + 'DomainPropertiesDomainNotRenewableReasonsItem', + 'DomainStatus', + 'DomainType', + 'Enum10', + 'Enum11', + 'Enum12', + 'Enum13', + 'Enum14', + 'Enum15', + 'ForwardProxyConvention', + 'FrequencyUnit', + 'FrontEndServiceType', + 'FtpsState', + 'HostNameType', + 'HostType', + 'HostingEnvironmentStatus', + 'InAvailabilityReasonType', + 'InsightStatus', + 'IpFilterTag', + 'IssueType', + 'KeyVaultSecretStatus', + 'KubeEnvironmentProvisioningState', + 'LoadBalancingMode', + 'LogLevel', + 'MSDeployLogEntryType', + 'MSDeployProvisioningState', + 'ManagedPipelineMode', + 'ManagedServiceIdentityType', + 'MySqlMigrationType', + 'NotificationLevel', + 'OperationStatus', + 'ProvisioningState', + 'PublicCertificateLocation', + 'PublishingProfileFormat', + 'RedundancyMode', + 'RenderingType', + 'ResolveStatus', + 'ResourceScopeType', + 'RouteType', + 'ScmType', + 'SiteAvailabilityState', + 'SiteExtensionType', + 'SiteLoadBalancing', + 'SiteRuntimeState', + 'SkuName', + 'SolutionType', + 'SslState', + 'StackPreferredOs', + 'StagingEnvironmentPolicy', + 'StatusOptions', + 'StorageType', + 'SupportedTlsVersions', + 'TriggerTypes', + 'TriggeredWebJobStatus', + 'UnauthenticatedClientAction', + 'UnauthenticatedClientActionV2', + 'UsageState', + 'ValidateResourceTypes', + 'WebJobType', + 'WorkerSizeOptions', +] diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/models/_models.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/models/_models.py new file mode 100644 index 000000000000..91557d23b2c8 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/models/_models.py @@ -0,0 +1,19458 @@ +# 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 azure.core.exceptions import HttpResponseError +import msrest.serialization + + +class AbnormalTimePeriod(msrest.serialization.Model): + """Class representing Abnormal Time Period identified in diagnosis. + + :param start_time: Start time of the downtime. + :type start_time: ~datetime.datetime + :param end_time: End time of the downtime. + :type end_time: ~datetime.datetime + :param events: List of Possible Cause of downtime. + :type events: list[~azure.mgmt.web.v2021_01_15.models.DetectorAbnormalTimePeriod] + :param solutions: List of proposed solutions. + :type solutions: list[~azure.mgmt.web.v2021_01_15.models.Solution] + """ + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'events': {'key': 'events', 'type': '[DetectorAbnormalTimePeriod]'}, + 'solutions': {'key': 'solutions', 'type': '[Solution]'}, + } + + def __init__( + self, + **kwargs + ): + super(AbnormalTimePeriod, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.events = kwargs.get('events', None) + self.solutions = kwargs.get('solutions', None) + + +class Address(msrest.serialization.Model): + """Address information for domain registration. + + All required parameters must be populated in order to send to Azure. + + :param address1: Required. First line of an Address. + :type address1: str + :param address2: The second line of the Address. Optional. + :type address2: str + :param city: Required. The city for the address. + :type city: str + :param country: Required. The country for the address. + :type country: str + :param postal_code: Required. The postal code for the address. + :type postal_code: str + :param state: Required. The state or province for the address. + :type state: str + """ + + _validation = { + 'address1': {'required': True}, + 'city': {'required': True}, + 'country': {'required': True}, + 'postal_code': {'required': True}, + 'state': {'required': True}, + } + + _attribute_map = { + 'address1': {'key': 'address1', 'type': 'str'}, + 'address2': {'key': 'address2', 'type': 'str'}, + 'city': {'key': 'city', 'type': 'str'}, + 'country': {'key': 'country', 'type': 'str'}, + 'postal_code': {'key': 'postalCode', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Address, self).__init__(**kwargs) + self.address1 = kwargs['address1'] + self.address2 = kwargs.get('address2', None) + self.city = kwargs['city'] + self.country = kwargs['country'] + self.postal_code = kwargs['postal_code'] + self.state = kwargs['state'] + + +class ProxyOnlyResource(msrest.serialization.Model): + """Azure proxy only resource. This resource is not tracked by Azure Resource Manager. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :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'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ProxyOnlyResource, self).__init__(**kwargs) + self.id = None + self.name = None + self.kind = kwargs.get('kind', None) + self.type = None + + +class AddressResponse(ProxyOnlyResource): + """Describes main public IP address and any extra virtual IPs. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param service_ip_address: Main public virtual IP. + :type service_ip_address: str + :param internal_ip_address: Virtual Network internal IP address of the App Service Environment + if it is in internal load-balancing mode. + :type internal_ip_address: str + :param outbound_ip_addresses: IP addresses appearing on outbound connections. + :type outbound_ip_addresses: list[str] + :param vip_mappings: Additional virtual IPs. + :type vip_mappings: list[~azure.mgmt.web.v2021_01_15.models.VirtualIPMapping] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'service_ip_address': {'key': 'properties.serviceIpAddress', 'type': 'str'}, + 'internal_ip_address': {'key': 'properties.internalIpAddress', 'type': 'str'}, + 'outbound_ip_addresses': {'key': 'properties.outboundIpAddresses', 'type': '[str]'}, + 'vip_mappings': {'key': 'properties.vipMappings', 'type': '[VirtualIPMapping]'}, + } + + def __init__( + self, + **kwargs + ): + super(AddressResponse, self).__init__(**kwargs) + self.service_ip_address = kwargs.get('service_ip_address', None) + self.internal_ip_address = kwargs.get('internal_ip_address', None) + self.outbound_ip_addresses = kwargs.get('outbound_ip_addresses', None) + self.vip_mappings = kwargs.get('vip_mappings', None) + + +class AllowedAudiencesValidation(ProxyOnlyResource): + """AllowedAudiencesValidation. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param allowed_audiences: + :type allowed_audiences: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'allowed_audiences': {'key': 'properties.allowedAudiences', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(AllowedAudiencesValidation, self).__init__(**kwargs) + self.allowed_audiences = kwargs.get('allowed_audiences', None) + + +class AnalysisData(msrest.serialization.Model): + """Class Representing Detector Evidence used for analysis. + + :param source: Name of the Detector. + :type source: str + :param detector_definition: Detector Definition. + :type detector_definition: ~azure.mgmt.web.v2021_01_15.models.DetectorDefinition + :param metrics: Source Metrics. + :type metrics: list[~azure.mgmt.web.v2021_01_15.models.DiagnosticMetricSet] + :param data: Additional Source Data. + :type data: list[list[~azure.mgmt.web.v2021_01_15.models.NameValuePair]] + :param detector_meta_data: Detector Meta Data. + :type detector_meta_data: ~azure.mgmt.web.v2021_01_15.models.ResponseMetaData + """ + + _attribute_map = { + 'source': {'key': 'source', 'type': 'str'}, + 'detector_definition': {'key': 'detectorDefinition', 'type': 'DetectorDefinition'}, + 'metrics': {'key': 'metrics', 'type': '[DiagnosticMetricSet]'}, + 'data': {'key': 'data', 'type': '[[NameValuePair]]'}, + 'detector_meta_data': {'key': 'detectorMetaData', 'type': 'ResponseMetaData'}, + } + + def __init__( + self, + **kwargs + ): + super(AnalysisData, self).__init__(**kwargs) + self.source = kwargs.get('source', None) + self.detector_definition = kwargs.get('detector_definition', None) + self.metrics = kwargs.get('metrics', None) + self.data = kwargs.get('data', None) + self.detector_meta_data = kwargs.get('detector_meta_data', None) + + +class AnalysisDefinition(ProxyOnlyResource): + """Definition of Analysis. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar description: Description of the Analysis. + :vartype description: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'description': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AnalysisDefinition, self).__init__(**kwargs) + self.description = None + + +class ApiDefinitionInfo(msrest.serialization.Model): + """Information about the formal API definition for the app. + + :param url: The URL of the API definition. + :type url: str + """ + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ApiDefinitionInfo, self).__init__(**kwargs) + self.url = kwargs.get('url', None) + + +class ApiKVReference(ProxyOnlyResource): + """Description of site key vault references. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param reference: + :type reference: str + :param status: Possible values include: "Initialized", "Resolved", "InvalidSyntax", + "MSINotEnabled", "VaultNotFound", "SecretNotFound", "SecretVersionNotFound", + "AccessToKeyVaultDenied", "OtherReasons", "FetchTimedOut", "UnauthorizedClient". + :type status: str or ~azure.mgmt.web.v2021_01_15.models.ResolveStatus + :param vault_name: + :type vault_name: str + :param secret_name: + :type secret_name: str + :param secret_version: + :type secret_version: str + :param identity_type: Managed service identity. + :type identity_type: ~azure.mgmt.web.v2021_01_15.models.ManagedServiceIdentity + :param details: + :type details: str + :param source: The only acceptable values to pass in are None and "KeyVault". The default + value is None. + :type source: str + :param active_version: + :type active_version: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'reference': {'key': 'properties.reference', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'vault_name': {'key': 'properties.vaultName', 'type': 'str'}, + 'secret_name': {'key': 'properties.secretName', 'type': 'str'}, + 'secret_version': {'key': 'properties.secretVersion', 'type': 'str'}, + 'identity_type': {'key': 'properties.identityType', 'type': 'ManagedServiceIdentity'}, + 'details': {'key': 'properties.details', 'type': 'str'}, + 'source': {'key': 'properties.source', 'type': 'str'}, + 'active_version': {'key': 'properties.activeVersion', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ApiKVReference, self).__init__(**kwargs) + self.reference = kwargs.get('reference', None) + self.status = kwargs.get('status', None) + self.vault_name = kwargs.get('vault_name', None) + self.secret_name = kwargs.get('secret_name', None) + self.secret_version = kwargs.get('secret_version', None) + self.identity_type = kwargs.get('identity_type', None) + self.details = kwargs.get('details', None) + self.source = kwargs.get('source', None) + self.active_version = kwargs.get('active_version', None) + + +class ApiKVReferenceCollection(msrest.serialization.Model): + """ApiKVReferenceCollection. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.ApiKVReference] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ApiKVReference]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ApiKVReferenceCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class ApiManagementConfig(msrest.serialization.Model): + """Azure API management (APIM) configuration linked to the app. + + :param id: APIM-Api Identifier. + :type id: str + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ApiManagementConfig, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + + +class AppInsightsWebAppStackSettings(msrest.serialization.Model): + """App Insights Web App stack settings. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar is_supported: :code:`true` if remote Application Insights is supported for + the stack; otherwise, :code:`false`. + :vartype is_supported: bool + :ivar is_default_off: :code:`true` if Application Insights is disabled by default + for the stack; otherwise, :code:`false`. + :vartype is_default_off: bool + """ + + _validation = { + 'is_supported': {'readonly': True}, + 'is_default_off': {'readonly': True}, + } + + _attribute_map = { + 'is_supported': {'key': 'isSupported', 'type': 'bool'}, + 'is_default_off': {'key': 'isDefaultOff', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(AppInsightsWebAppStackSettings, self).__init__(**kwargs) + self.is_supported = None + self.is_default_off = None + + +class Apple(ProxyOnlyResource): + """The configuration settings of the Apple provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the Apple provider should not be enabled despite + the set registration; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the Apple registration. + :type registration: ~azure.mgmt.web.v2021_01_15.models.AppleRegistration + :param login: The configuration settings of the login flow. + :type login: ~azure.mgmt.web.v2021_01_15.models.LoginScopes + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'AppleRegistration'}, + 'login': {'key': 'properties.login', 'type': 'LoginScopes'}, + } + + def __init__( + self, + **kwargs + ): + super(Apple, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.registration = kwargs.get('registration', None) + self.login = kwargs.get('login', None) + + +class AppleRegistration(ProxyOnlyResource): + """The configuration settings of the registration for the Apple provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param client_id: The Client ID of the app used for login. + :type client_id: str + :param client_secret_setting_name: The app setting name that contains the client secret. + :type client_secret_setting_name: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'client_id': {'key': 'properties.clientId', 'type': 'str'}, + 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AppleRegistration, self).__init__(**kwargs) + self.client_id = kwargs.get('client_id', None) + self.client_secret_setting_name = kwargs.get('client_secret_setting_name', None) + + +class ApplicationLogsConfig(msrest.serialization.Model): + """Application logs configuration. + + :param file_system: Application logs to file system configuration. + :type file_system: ~azure.mgmt.web.v2021_01_15.models.FileSystemApplicationLogsConfig + :param azure_table_storage: Application logs to azure table storage configuration. + :type azure_table_storage: + ~azure.mgmt.web.v2021_01_15.models.AzureTableStorageApplicationLogsConfig + :param azure_blob_storage: Application logs to blob storage configuration. + :type azure_blob_storage: + ~azure.mgmt.web.v2021_01_15.models.AzureBlobStorageApplicationLogsConfig + """ + + _attribute_map = { + 'file_system': {'key': 'fileSystem', 'type': 'FileSystemApplicationLogsConfig'}, + 'azure_table_storage': {'key': 'azureTableStorage', 'type': 'AzureTableStorageApplicationLogsConfig'}, + 'azure_blob_storage': {'key': 'azureBlobStorage', 'type': 'AzureBlobStorageApplicationLogsConfig'}, + } + + def __init__( + self, + **kwargs + ): + super(ApplicationLogsConfig, self).__init__(**kwargs) + self.file_system = kwargs.get('file_system', None) + self.azure_table_storage = kwargs.get('azure_table_storage', None) + self.azure_blob_storage = kwargs.get('azure_blob_storage', None) + + +class ApplicationStack(msrest.serialization.Model): + """Application stack. + + :param name: Application stack name. + :type name: str + :param display: Application stack display name. + :type display: str + :param dependency: Application stack dependency. + :type dependency: str + :param major_versions: List of major versions available. + :type major_versions: list[~azure.mgmt.web.v2021_01_15.models.StackMajorVersion] + :param frameworks: List of frameworks associated with application stack. + :type frameworks: list[~azure.mgmt.web.v2021_01_15.models.ApplicationStack] + :param is_deprecated: :code:`true` if this is the stack is deprecated; otherwise, + :code:`false`. + :type is_deprecated: list[~azure.mgmt.web.v2021_01_15.models.ApplicationStack] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display': {'key': 'display', 'type': 'str'}, + 'dependency': {'key': 'dependency', 'type': 'str'}, + 'major_versions': {'key': 'majorVersions', 'type': '[StackMajorVersion]'}, + 'frameworks': {'key': 'frameworks', 'type': '[ApplicationStack]'}, + 'is_deprecated': {'key': 'isDeprecated', 'type': '[ApplicationStack]'}, + } + + def __init__( + self, + **kwargs + ): + super(ApplicationStack, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.display = kwargs.get('display', None) + self.dependency = kwargs.get('dependency', None) + self.major_versions = kwargs.get('major_versions', None) + self.frameworks = kwargs.get('frameworks', None) + self.is_deprecated = kwargs.get('is_deprecated', None) + + +class ApplicationStackCollection(msrest.serialization.Model): + """Collection of Application Stacks. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.ApplicationStackResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ApplicationStackResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ApplicationStackCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class ApplicationStackResource(ProxyOnlyResource): + """ARM resource for a ApplicationStack. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param name_properties_name: Application stack name. + :type name_properties_name: str + :param display: Application stack display name. + :type display: str + :param dependency: Application stack dependency. + :type dependency: str + :param major_versions: List of major versions available. + :type major_versions: list[~azure.mgmt.web.v2021_01_15.models.StackMajorVersion] + :param frameworks: List of frameworks associated with application stack. + :type frameworks: list[~azure.mgmt.web.v2021_01_15.models.ApplicationStack] + :param is_deprecated: :code:`true` if this is the stack is deprecated; otherwise, + :code:`false`. + :type is_deprecated: list[~azure.mgmt.web.v2021_01_15.models.ApplicationStack] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'name_properties_name': {'key': 'properties.name', 'type': 'str'}, + 'display': {'key': 'properties.display', 'type': 'str'}, + 'dependency': {'key': 'properties.dependency', 'type': 'str'}, + 'major_versions': {'key': 'properties.majorVersions', 'type': '[StackMajorVersion]'}, + 'frameworks': {'key': 'properties.frameworks', 'type': '[ApplicationStack]'}, + 'is_deprecated': {'key': 'properties.isDeprecated', 'type': '[ApplicationStack]'}, + } + + def __init__( + self, + **kwargs + ): + super(ApplicationStackResource, self).__init__(**kwargs) + self.name_properties_name = kwargs.get('name_properties_name', None) + self.display = kwargs.get('display', None) + self.dependency = kwargs.get('dependency', None) + self.major_versions = kwargs.get('major_versions', None) + self.frameworks = kwargs.get('frameworks', None) + self.is_deprecated = kwargs.get('is_deprecated', None) + + +class AppLogsConfiguration(msrest.serialization.Model): + """AppLogsConfiguration. + + :param destination: + :type destination: str + :param log_analytics_configuration: + :type log_analytics_configuration: ~azure.mgmt.web.v2021_01_15.models.LogAnalyticsConfiguration + """ + + _attribute_map = { + 'destination': {'key': 'destination', 'type': 'str'}, + 'log_analytics_configuration': {'key': 'logAnalyticsConfiguration', 'type': 'LogAnalyticsConfiguration'}, + } + + def __init__( + self, + **kwargs + ): + super(AppLogsConfiguration, self).__init__(**kwargs) + self.destination = kwargs.get('destination', None) + self.log_analytics_configuration = kwargs.get('log_analytics_configuration', None) + + +class AppRegistration(ProxyOnlyResource): + """The configuration settings of the app registration for providers that have app ids and app secrets. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param app_id: The App ID of the app used for login. + :type app_id: str + :param app_secret_setting_name: The app setting name that contains the app secret. + :type app_secret_setting_name: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'app_id': {'key': 'properties.appId', 'type': 'str'}, + 'app_secret_setting_name': {'key': 'properties.appSecretSettingName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AppRegistration, self).__init__(**kwargs) + self.app_id = kwargs.get('app_id', None) + self.app_secret_setting_name = kwargs.get('app_secret_setting_name', None) + + +class AppServiceCertificate(msrest.serialization.Model): + """Key Vault container for a certificate that is purchased through Azure. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param key_vault_id: Key Vault resource Id. + :type key_vault_id: str + :param key_vault_secret_name: Key Vault secret name. + :type key_vault_secret_name: str + :ivar provisioning_state: Status of the Key Vault secret. Possible values include: + "Initialized", "WaitingOnCertificateOrder", "Succeeded", "CertificateOrderFailed", + "OperationNotPermittedOnKeyVault", "AzureServiceUnauthorizedToAccessKeyVault", + "KeyVaultDoesNotExist", "KeyVaultSecretDoesNotExist", "UnknownError", "ExternalPrivateKey", + "Unknown". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.KeyVaultSecretStatus + """ + + _validation = { + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'key_vault_id': {'key': 'keyVaultId', 'type': 'str'}, + 'key_vault_secret_name': {'key': 'keyVaultSecretName', 'type': 'str'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AppServiceCertificate, self).__init__(**kwargs) + self.key_vault_id = kwargs.get('key_vault_id', None) + self.key_vault_secret_name = kwargs.get('key_vault_secret_name', None) + self.provisioning_state = None + + +class AppServiceCertificateCollection(msrest.serialization.Model): + """Collection of certificate order certificates. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[AppServiceCertificateResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AppServiceCertificateCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class Resource(msrest.serialization.Model): + """Azure resource. This resource is tracked in Azure Resource Manager. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__( + self, + **kwargs + ): + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.kind = kwargs.get('kind', None) + self.location = kwargs['location'] + self.type = None + self.tags = kwargs.get('tags', None) + + +class AppServiceCertificateOrder(Resource): + """SSL certificate purchase order. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param certificates: State of the Key Vault secret. + :type certificates: dict[str, ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificate] + :param distinguished_name: Certificate distinguished name. + :type distinguished_name: str + :ivar domain_verification_token: Domain verification token. + :vartype domain_verification_token: str + :param validity_in_years: Duration in years (must be 1). + :type validity_in_years: int + :param key_size: Certificate key size. + :type key_size: int + :param product_type: Certificate product type. Possible values include: + "StandardDomainValidatedSsl", "StandardDomainValidatedWildCardSsl". + :type product_type: str or ~azure.mgmt.web.v2021_01_15.models.CertificateProductType + :param auto_renew: :code:`true` if the certificate should be automatically renewed + when it expires; otherwise, :code:`false`. + :type auto_renew: bool + :ivar provisioning_state: Status of certificate order. Possible values include: "Succeeded", + "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :ivar status: Current order status. Possible values include: "Pendingissuance", "Issued", + "Revoked", "Canceled", "Denied", "Pendingrevocation", "PendingRekey", "Unused", "Expired", + "NotSubmitted". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.CertificateOrderStatus + :ivar signed_certificate: Signed certificate. + :vartype signed_certificate: ~azure.mgmt.web.v2021_01_15.models.CertificateDetails + :param csr: Last CSR that was created for this order. + :type csr: str + :ivar intermediate: Intermediate certificate. + :vartype intermediate: ~azure.mgmt.web.v2021_01_15.models.CertificateDetails + :ivar root: Root certificate. + :vartype root: ~azure.mgmt.web.v2021_01_15.models.CertificateDetails + :ivar serial_number: Current serial number of the certificate. + :vartype serial_number: str + :ivar last_certificate_issuance_time: Certificate last issuance time. + :vartype last_certificate_issuance_time: ~datetime.datetime + :ivar expiration_time: Certificate expiration time. + :vartype expiration_time: ~datetime.datetime + :ivar is_private_key_external: :code:`true` if private key is external; otherwise, + :code:`false`. + :vartype is_private_key_external: bool + :ivar app_service_certificate_not_renewable_reasons: Reasons why App Service Certificate is not + renewable at the current moment. + :vartype app_service_certificate_not_renewable_reasons: list[str or + ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrderPropertiesAppServiceCertificateNotRenewableReasonsItem] + :ivar next_auto_renewal_time_stamp: Time stamp when the certificate would be auto renewed next. + :vartype next_auto_renewal_time_stamp: ~datetime.datetime + :ivar contact: Contact info. + :vartype contact: ~azure.mgmt.web.v2021_01_15.models.CertificateOrderContact + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'domain_verification_token': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'signed_certificate': {'readonly': True}, + 'intermediate': {'readonly': True}, + 'root': {'readonly': True}, + 'serial_number': {'readonly': True}, + 'last_certificate_issuance_time': {'readonly': True}, + 'expiration_time': {'readonly': True}, + 'is_private_key_external': {'readonly': True}, + 'app_service_certificate_not_renewable_reasons': {'readonly': True}, + 'next_auto_renewal_time_stamp': {'readonly': True}, + 'contact': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'certificates': {'key': 'properties.certificates', 'type': '{AppServiceCertificate}'}, + 'distinguished_name': {'key': 'properties.distinguishedName', 'type': 'str'}, + 'domain_verification_token': {'key': 'properties.domainVerificationToken', 'type': 'str'}, + 'validity_in_years': {'key': 'properties.validityInYears', 'type': 'int'}, + 'key_size': {'key': 'properties.keySize', 'type': 'int'}, + 'product_type': {'key': 'properties.productType', 'type': 'str'}, + 'auto_renew': {'key': 'properties.autoRenew', 'type': 'bool'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'signed_certificate': {'key': 'properties.signedCertificate', 'type': 'CertificateDetails'}, + 'csr': {'key': 'properties.csr', 'type': 'str'}, + 'intermediate': {'key': 'properties.intermediate', 'type': 'CertificateDetails'}, + 'root': {'key': 'properties.root', 'type': 'CertificateDetails'}, + 'serial_number': {'key': 'properties.serialNumber', 'type': 'str'}, + 'last_certificate_issuance_time': {'key': 'properties.lastCertificateIssuanceTime', 'type': 'iso-8601'}, + 'expiration_time': {'key': 'properties.expirationTime', 'type': 'iso-8601'}, + 'is_private_key_external': {'key': 'properties.isPrivateKeyExternal', 'type': 'bool'}, + 'app_service_certificate_not_renewable_reasons': {'key': 'properties.appServiceCertificateNotRenewableReasons', 'type': '[str]'}, + 'next_auto_renewal_time_stamp': {'key': 'properties.nextAutoRenewalTimeStamp', 'type': 'iso-8601'}, + 'contact': {'key': 'properties.contact', 'type': 'CertificateOrderContact'}, + } + + def __init__( + self, + **kwargs + ): + super(AppServiceCertificateOrder, self).__init__(**kwargs) + self.certificates = kwargs.get('certificates', None) + self.distinguished_name = kwargs.get('distinguished_name', None) + self.domain_verification_token = None + self.validity_in_years = kwargs.get('validity_in_years', 1) + self.key_size = kwargs.get('key_size', 2048) + self.product_type = kwargs.get('product_type', None) + self.auto_renew = kwargs.get('auto_renew', True) + self.provisioning_state = None + self.status = None + self.signed_certificate = None + self.csr = kwargs.get('csr', None) + self.intermediate = None + self.root = None + self.serial_number = None + self.last_certificate_issuance_time = None + self.expiration_time = None + self.is_private_key_external = None + self.app_service_certificate_not_renewable_reasons = None + self.next_auto_renewal_time_stamp = None + self.contact = None + + +class AppServiceCertificateOrderCollection(msrest.serialization.Model): + """Collection of certificate orders. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrder] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[AppServiceCertificateOrder]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AppServiceCertificateOrderCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class AppServiceCertificateOrderPatchResource(ProxyOnlyResource): + """ARM resource for a certificate order that is purchased through Azure. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param certificates: State of the Key Vault secret. + :type certificates: dict[str, ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificate] + :param distinguished_name: Certificate distinguished name. + :type distinguished_name: str + :ivar domain_verification_token: Domain verification token. + :vartype domain_verification_token: str + :param validity_in_years: Duration in years (must be 1). + :type validity_in_years: int + :param key_size: Certificate key size. + :type key_size: int + :param product_type: Certificate product type. Possible values include: + "StandardDomainValidatedSsl", "StandardDomainValidatedWildCardSsl". + :type product_type: str or ~azure.mgmt.web.v2021_01_15.models.CertificateProductType + :param auto_renew: :code:`true` if the certificate should be automatically renewed + when it expires; otherwise, :code:`false`. + :type auto_renew: bool + :ivar provisioning_state: Status of certificate order. Possible values include: "Succeeded", + "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :ivar status: Current order status. Possible values include: "Pendingissuance", "Issued", + "Revoked", "Canceled", "Denied", "Pendingrevocation", "PendingRekey", "Unused", "Expired", + "NotSubmitted". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.CertificateOrderStatus + :ivar signed_certificate: Signed certificate. + :vartype signed_certificate: ~azure.mgmt.web.v2021_01_15.models.CertificateDetails + :param csr: Last CSR that was created for this order. + :type csr: str + :ivar intermediate: Intermediate certificate. + :vartype intermediate: ~azure.mgmt.web.v2021_01_15.models.CertificateDetails + :ivar root: Root certificate. + :vartype root: ~azure.mgmt.web.v2021_01_15.models.CertificateDetails + :ivar serial_number: Current serial number of the certificate. + :vartype serial_number: str + :ivar last_certificate_issuance_time: Certificate last issuance time. + :vartype last_certificate_issuance_time: ~datetime.datetime + :ivar expiration_time: Certificate expiration time. + :vartype expiration_time: ~datetime.datetime + :ivar is_private_key_external: :code:`true` if private key is external; otherwise, + :code:`false`. + :vartype is_private_key_external: bool + :ivar app_service_certificate_not_renewable_reasons: Reasons why App Service Certificate is not + renewable at the current moment. + :vartype app_service_certificate_not_renewable_reasons: list[str or + ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrderPatchResourcePropertiesAppServiceCertificateNotRenewableReasonsItem] + :ivar next_auto_renewal_time_stamp: Time stamp when the certificate would be auto renewed next. + :vartype next_auto_renewal_time_stamp: ~datetime.datetime + :ivar contact: Contact info. + :vartype contact: ~azure.mgmt.web.v2021_01_15.models.CertificateOrderContact + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'domain_verification_token': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'signed_certificate': {'readonly': True}, + 'intermediate': {'readonly': True}, + 'root': {'readonly': True}, + 'serial_number': {'readonly': True}, + 'last_certificate_issuance_time': {'readonly': True}, + 'expiration_time': {'readonly': True}, + 'is_private_key_external': {'readonly': True}, + 'app_service_certificate_not_renewable_reasons': {'readonly': True}, + 'next_auto_renewal_time_stamp': {'readonly': True}, + 'contact': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'certificates': {'key': 'properties.certificates', 'type': '{AppServiceCertificate}'}, + 'distinguished_name': {'key': 'properties.distinguishedName', 'type': 'str'}, + 'domain_verification_token': {'key': 'properties.domainVerificationToken', 'type': 'str'}, + 'validity_in_years': {'key': 'properties.validityInYears', 'type': 'int'}, + 'key_size': {'key': 'properties.keySize', 'type': 'int'}, + 'product_type': {'key': 'properties.productType', 'type': 'str'}, + 'auto_renew': {'key': 'properties.autoRenew', 'type': 'bool'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'signed_certificate': {'key': 'properties.signedCertificate', 'type': 'CertificateDetails'}, + 'csr': {'key': 'properties.csr', 'type': 'str'}, + 'intermediate': {'key': 'properties.intermediate', 'type': 'CertificateDetails'}, + 'root': {'key': 'properties.root', 'type': 'CertificateDetails'}, + 'serial_number': {'key': 'properties.serialNumber', 'type': 'str'}, + 'last_certificate_issuance_time': {'key': 'properties.lastCertificateIssuanceTime', 'type': 'iso-8601'}, + 'expiration_time': {'key': 'properties.expirationTime', 'type': 'iso-8601'}, + 'is_private_key_external': {'key': 'properties.isPrivateKeyExternal', 'type': 'bool'}, + 'app_service_certificate_not_renewable_reasons': {'key': 'properties.appServiceCertificateNotRenewableReasons', 'type': '[str]'}, + 'next_auto_renewal_time_stamp': {'key': 'properties.nextAutoRenewalTimeStamp', 'type': 'iso-8601'}, + 'contact': {'key': 'properties.contact', 'type': 'CertificateOrderContact'}, + } + + def __init__( + self, + **kwargs + ): + super(AppServiceCertificateOrderPatchResource, self).__init__(**kwargs) + self.certificates = kwargs.get('certificates', None) + self.distinguished_name = kwargs.get('distinguished_name', None) + self.domain_verification_token = None + self.validity_in_years = kwargs.get('validity_in_years', 1) + self.key_size = kwargs.get('key_size', 2048) + self.product_type = kwargs.get('product_type', None) + self.auto_renew = kwargs.get('auto_renew', True) + self.provisioning_state = None + self.status = None + self.signed_certificate = None + self.csr = kwargs.get('csr', None) + self.intermediate = None + self.root = None + self.serial_number = None + self.last_certificate_issuance_time = None + self.expiration_time = None + self.is_private_key_external = None + self.app_service_certificate_not_renewable_reasons = None + self.next_auto_renewal_time_stamp = None + self.contact = None + + +class AppServiceCertificatePatchResource(ProxyOnlyResource): + """Key Vault container ARM resource for a certificate that is purchased through Azure. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param key_vault_id: Key Vault resource Id. + :type key_vault_id: str + :param key_vault_secret_name: Key Vault secret name. + :type key_vault_secret_name: str + :ivar provisioning_state: Status of the Key Vault secret. Possible values include: + "Initialized", "WaitingOnCertificateOrder", "Succeeded", "CertificateOrderFailed", + "OperationNotPermittedOnKeyVault", "AzureServiceUnauthorizedToAccessKeyVault", + "KeyVaultDoesNotExist", "KeyVaultSecretDoesNotExist", "UnknownError", "ExternalPrivateKey", + "Unknown". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.KeyVaultSecretStatus + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'key_vault_id': {'key': 'properties.keyVaultId', 'type': 'str'}, + 'key_vault_secret_name': {'key': 'properties.keyVaultSecretName', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AppServiceCertificatePatchResource, self).__init__(**kwargs) + self.key_vault_id = kwargs.get('key_vault_id', None) + self.key_vault_secret_name = kwargs.get('key_vault_secret_name', None) + self.provisioning_state = None + + +class AppServiceCertificateResource(Resource): + """Key Vault container ARM resource for a certificate that is purchased through Azure. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param key_vault_id: Key Vault resource Id. + :type key_vault_id: str + :param key_vault_secret_name: Key Vault secret name. + :type key_vault_secret_name: str + :ivar provisioning_state: Status of the Key Vault secret. Possible values include: + "Initialized", "WaitingOnCertificateOrder", "Succeeded", "CertificateOrderFailed", + "OperationNotPermittedOnKeyVault", "AzureServiceUnauthorizedToAccessKeyVault", + "KeyVaultDoesNotExist", "KeyVaultSecretDoesNotExist", "UnknownError", "ExternalPrivateKey", + "Unknown". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.KeyVaultSecretStatus + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'key_vault_id': {'key': 'properties.keyVaultId', 'type': 'str'}, + 'key_vault_secret_name': {'key': 'properties.keyVaultSecretName', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AppServiceCertificateResource, self).__init__(**kwargs) + self.key_vault_id = kwargs.get('key_vault_id', None) + self.key_vault_secret_name = kwargs.get('key_vault_secret_name', None) + self.provisioning_state = None + + +class AppServiceEnvironment(msrest.serialization.Model): + """Description of an App Service Environment. + + 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 provisioning_state: Provisioning state of the App Service Environment. Possible values + include: "Succeeded", "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :ivar status: Current status of the App Service Environment. Possible values include: + "Preparing", "Ready", "Scaling", "Deleting". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentStatus + :param virtual_network: Required. Description of the Virtual Network. + :type virtual_network: ~azure.mgmt.web.v2021_01_15.models.VirtualNetworkProfile + :param internal_load_balancing_mode: Specifies which endpoints to serve internally in the + Virtual Network for the App Service Environment. Possible values include: "None", "Web", + "Publishing", "Web, Publishing". + :type internal_load_balancing_mode: str or ~azure.mgmt.web.v2021_01_15.models.LoadBalancingMode + :param multi_size: Front-end VM size, e.g. "Medium", "Large". + :type multi_size: str + :ivar multi_role_count: Number of front-end instances. + :vartype multi_role_count: int + :param ipssl_address_count: Number of IP SSL addresses reserved for the App Service + Environment. + :type ipssl_address_count: int + :param dns_suffix: DNS suffix of the App Service Environment. + :type dns_suffix: str + :ivar maximum_number_of_machines: Maximum number of VMs in the App Service Environment. + :vartype maximum_number_of_machines: int + :param front_end_scale_factor: Scale factor for front-ends. + :type front_end_scale_factor: int + :ivar suspended: :code:`true` if the App Service Environment is suspended; + otherwise, :code:`false`. The environment can be suspended, e.g. when the + management endpoint is no longer available + (most likely because NSG blocked the incoming traffic). + :vartype suspended: bool + :param cluster_settings: Custom settings for changing the behavior of the App Service + Environment. + :type cluster_settings: list[~azure.mgmt.web.v2021_01_15.models.NameValuePair] + :param user_whitelisted_ip_ranges: User added ip ranges to whitelist on ASE db. + :type user_whitelisted_ip_ranges: list[str] + :ivar has_linux_workers: Flag that displays whether an ASE has linux workers or not. + :vartype has_linux_workers: bool + :ivar dedicated_host_count: Dedicated Host Count. + :vartype dedicated_host_count: int + """ + + _validation = { + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'virtual_network': {'required': True}, + 'multi_role_count': {'readonly': True}, + 'maximum_number_of_machines': {'readonly': True}, + 'suspended': {'readonly': True}, + 'has_linux_workers': {'readonly': True}, + 'dedicated_host_count': {'readonly': True}, + } + + _attribute_map = { + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'virtual_network': {'key': 'virtualNetwork', 'type': 'VirtualNetworkProfile'}, + 'internal_load_balancing_mode': {'key': 'internalLoadBalancingMode', 'type': 'str'}, + 'multi_size': {'key': 'multiSize', 'type': 'str'}, + 'multi_role_count': {'key': 'multiRoleCount', 'type': 'int'}, + 'ipssl_address_count': {'key': 'ipsslAddressCount', 'type': 'int'}, + 'dns_suffix': {'key': 'dnsSuffix', 'type': 'str'}, + 'maximum_number_of_machines': {'key': 'maximumNumberOfMachines', 'type': 'int'}, + 'front_end_scale_factor': {'key': 'frontEndScaleFactor', 'type': 'int'}, + 'suspended': {'key': 'suspended', 'type': 'bool'}, + 'cluster_settings': {'key': 'clusterSettings', 'type': '[NameValuePair]'}, + 'user_whitelisted_ip_ranges': {'key': 'userWhitelistedIpRanges', 'type': '[str]'}, + 'has_linux_workers': {'key': 'hasLinuxWorkers', 'type': 'bool'}, + 'dedicated_host_count': {'key': 'dedicatedHostCount', 'type': 'int'}, + } + + def __init__( + self, + **kwargs + ): + super(AppServiceEnvironment, self).__init__(**kwargs) + self.provisioning_state = None + self.status = None + self.virtual_network = kwargs['virtual_network'] + self.internal_load_balancing_mode = kwargs.get('internal_load_balancing_mode', None) + self.multi_size = kwargs.get('multi_size', None) + self.multi_role_count = None + self.ipssl_address_count = kwargs.get('ipssl_address_count', None) + self.dns_suffix = kwargs.get('dns_suffix', None) + self.maximum_number_of_machines = None + self.front_end_scale_factor = kwargs.get('front_end_scale_factor', None) + self.suspended = None + self.cluster_settings = kwargs.get('cluster_settings', None) + self.user_whitelisted_ip_ranges = kwargs.get('user_whitelisted_ip_ranges', None) + self.has_linux_workers = None + self.dedicated_host_count = None + + +class AppServiceEnvironmentCollection(msrest.serialization.Model): + """Collection of App Service Environments. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironmentResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[AppServiceEnvironmentResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AppServiceEnvironmentCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class AppServiceEnvironmentPatchResource(ProxyOnlyResource): + """ARM resource for a app service environment. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar provisioning_state: Provisioning state of the App Service Environment. Possible values + include: "Succeeded", "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :ivar status: Current status of the App Service Environment. Possible values include: + "Preparing", "Ready", "Scaling", "Deleting". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentStatus + :param virtual_network: Description of the Virtual Network. + :type virtual_network: ~azure.mgmt.web.v2021_01_15.models.VirtualNetworkProfile + :param internal_load_balancing_mode: Specifies which endpoints to serve internally in the + Virtual Network for the App Service Environment. Possible values include: "None", "Web", + "Publishing", "Web, Publishing". + :type internal_load_balancing_mode: str or ~azure.mgmt.web.v2021_01_15.models.LoadBalancingMode + :param multi_size: Front-end VM size, e.g. "Medium", "Large". + :type multi_size: str + :ivar multi_role_count: Number of front-end instances. + :vartype multi_role_count: int + :param ipssl_address_count: Number of IP SSL addresses reserved for the App Service + Environment. + :type ipssl_address_count: int + :param dns_suffix: DNS suffix of the App Service Environment. + :type dns_suffix: str + :ivar maximum_number_of_machines: Maximum number of VMs in the App Service Environment. + :vartype maximum_number_of_machines: int + :param front_end_scale_factor: Scale factor for front-ends. + :type front_end_scale_factor: int + :ivar suspended: :code:`true` if the App Service Environment is suspended; + otherwise, :code:`false`. The environment can be suspended, e.g. when the + management endpoint is no longer available + (most likely because NSG blocked the incoming traffic). + :vartype suspended: bool + :param cluster_settings: Custom settings for changing the behavior of the App Service + Environment. + :type cluster_settings: list[~azure.mgmt.web.v2021_01_15.models.NameValuePair] + :param user_whitelisted_ip_ranges: User added ip ranges to whitelist on ASE db. + :type user_whitelisted_ip_ranges: list[str] + :ivar has_linux_workers: Flag that displays whether an ASE has linux workers or not. + :vartype has_linux_workers: bool + :ivar dedicated_host_count: Dedicated Host Count. + :vartype dedicated_host_count: int + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'multi_role_count': {'readonly': True}, + 'maximum_number_of_machines': {'readonly': True}, + 'suspended': {'readonly': True}, + 'has_linux_workers': {'readonly': True}, + 'dedicated_host_count': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'virtual_network': {'key': 'properties.virtualNetwork', 'type': 'VirtualNetworkProfile'}, + 'internal_load_balancing_mode': {'key': 'properties.internalLoadBalancingMode', 'type': 'str'}, + 'multi_size': {'key': 'properties.multiSize', 'type': 'str'}, + 'multi_role_count': {'key': 'properties.multiRoleCount', 'type': 'int'}, + 'ipssl_address_count': {'key': 'properties.ipsslAddressCount', 'type': 'int'}, + 'dns_suffix': {'key': 'properties.dnsSuffix', 'type': 'str'}, + 'maximum_number_of_machines': {'key': 'properties.maximumNumberOfMachines', 'type': 'int'}, + 'front_end_scale_factor': {'key': 'properties.frontEndScaleFactor', 'type': 'int'}, + 'suspended': {'key': 'properties.suspended', 'type': 'bool'}, + 'cluster_settings': {'key': 'properties.clusterSettings', 'type': '[NameValuePair]'}, + 'user_whitelisted_ip_ranges': {'key': 'properties.userWhitelistedIpRanges', 'type': '[str]'}, + 'has_linux_workers': {'key': 'properties.hasLinuxWorkers', 'type': 'bool'}, + 'dedicated_host_count': {'key': 'properties.dedicatedHostCount', 'type': 'int'}, + } + + def __init__( + self, + **kwargs + ): + super(AppServiceEnvironmentPatchResource, self).__init__(**kwargs) + self.provisioning_state = None + self.status = None + self.virtual_network = kwargs.get('virtual_network', None) + self.internal_load_balancing_mode = kwargs.get('internal_load_balancing_mode', None) + self.multi_size = kwargs.get('multi_size', None) + self.multi_role_count = None + self.ipssl_address_count = kwargs.get('ipssl_address_count', None) + self.dns_suffix = kwargs.get('dns_suffix', None) + self.maximum_number_of_machines = None + self.front_end_scale_factor = kwargs.get('front_end_scale_factor', None) + self.suspended = None + self.cluster_settings = kwargs.get('cluster_settings', None) + self.user_whitelisted_ip_ranges = kwargs.get('user_whitelisted_ip_ranges', None) + self.has_linux_workers = None + self.dedicated_host_count = None + + +class AppServiceEnvironmentResource(Resource): + """App Service Environment ARM resource. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :ivar provisioning_state: Provisioning state of the App Service Environment. Possible values + include: "Succeeded", "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :ivar status: Current status of the App Service Environment. Possible values include: + "Preparing", "Ready", "Scaling", "Deleting". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentStatus + :param virtual_network: Description of the Virtual Network. + :type virtual_network: ~azure.mgmt.web.v2021_01_15.models.VirtualNetworkProfile + :param internal_load_balancing_mode: Specifies which endpoints to serve internally in the + Virtual Network for the App Service Environment. Possible values include: "None", "Web", + "Publishing", "Web, Publishing". + :type internal_load_balancing_mode: str or ~azure.mgmt.web.v2021_01_15.models.LoadBalancingMode + :param multi_size: Front-end VM size, e.g. "Medium", "Large". + :type multi_size: str + :ivar multi_role_count: Number of front-end instances. + :vartype multi_role_count: int + :param ipssl_address_count: Number of IP SSL addresses reserved for the App Service + Environment. + :type ipssl_address_count: int + :param dns_suffix: DNS suffix of the App Service Environment. + :type dns_suffix: str + :ivar maximum_number_of_machines: Maximum number of VMs in the App Service Environment. + :vartype maximum_number_of_machines: int + :param front_end_scale_factor: Scale factor for front-ends. + :type front_end_scale_factor: int + :ivar suspended: :code:`true` if the App Service Environment is suspended; + otherwise, :code:`false`. The environment can be suspended, e.g. when the + management endpoint is no longer available + (most likely because NSG blocked the incoming traffic). + :vartype suspended: bool + :param cluster_settings: Custom settings for changing the behavior of the App Service + Environment. + :type cluster_settings: list[~azure.mgmt.web.v2021_01_15.models.NameValuePair] + :param user_whitelisted_ip_ranges: User added ip ranges to whitelist on ASE db. + :type user_whitelisted_ip_ranges: list[str] + :ivar has_linux_workers: Flag that displays whether an ASE has linux workers or not. + :vartype has_linux_workers: bool + :ivar dedicated_host_count: Dedicated Host Count. + :vartype dedicated_host_count: int + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'multi_role_count': {'readonly': True}, + 'maximum_number_of_machines': {'readonly': True}, + 'suspended': {'readonly': True}, + 'has_linux_workers': {'readonly': True}, + 'dedicated_host_count': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'virtual_network': {'key': 'properties.virtualNetwork', 'type': 'VirtualNetworkProfile'}, + 'internal_load_balancing_mode': {'key': 'properties.internalLoadBalancingMode', 'type': 'str'}, + 'multi_size': {'key': 'properties.multiSize', 'type': 'str'}, + 'multi_role_count': {'key': 'properties.multiRoleCount', 'type': 'int'}, + 'ipssl_address_count': {'key': 'properties.ipsslAddressCount', 'type': 'int'}, + 'dns_suffix': {'key': 'properties.dnsSuffix', 'type': 'str'}, + 'maximum_number_of_machines': {'key': 'properties.maximumNumberOfMachines', 'type': 'int'}, + 'front_end_scale_factor': {'key': 'properties.frontEndScaleFactor', 'type': 'int'}, + 'suspended': {'key': 'properties.suspended', 'type': 'bool'}, + 'cluster_settings': {'key': 'properties.clusterSettings', 'type': '[NameValuePair]'}, + 'user_whitelisted_ip_ranges': {'key': 'properties.userWhitelistedIpRanges', 'type': '[str]'}, + 'has_linux_workers': {'key': 'properties.hasLinuxWorkers', 'type': 'bool'}, + 'dedicated_host_count': {'key': 'properties.dedicatedHostCount', 'type': 'int'}, + } + + def __init__( + self, + **kwargs + ): + super(AppServiceEnvironmentResource, self).__init__(**kwargs) + self.provisioning_state = None + self.status = None + self.virtual_network = kwargs.get('virtual_network', None) + self.internal_load_balancing_mode = kwargs.get('internal_load_balancing_mode', None) + self.multi_size = kwargs.get('multi_size', None) + self.multi_role_count = None + self.ipssl_address_count = kwargs.get('ipssl_address_count', None) + self.dns_suffix = kwargs.get('dns_suffix', None) + self.maximum_number_of_machines = None + self.front_end_scale_factor = kwargs.get('front_end_scale_factor', None) + self.suspended = None + self.cluster_settings = kwargs.get('cluster_settings', None) + self.user_whitelisted_ip_ranges = kwargs.get('user_whitelisted_ip_ranges', None) + self.has_linux_workers = None + self.dedicated_host_count = None + + +class AppserviceGithubToken(msrest.serialization.Model): + """Github access token for Appservice CLI github integration. + + :param access_token: Github access token for Appservice CLI github integration. + :type access_token: str + :param scope: Scope of the github access token. + :type scope: str + :param token_type: token type. + :type token_type: str + :param got_token: True if valid github token received, False otherwise. + :type got_token: bool + :param error_message: Error message if unable to get token. + :type error_message: str + """ + + _attribute_map = { + 'access_token': {'key': 'accessToken', 'type': 'str'}, + 'scope': {'key': 'scope', 'type': 'str'}, + 'token_type': {'key': 'tokenType', 'type': 'str'}, + 'got_token': {'key': 'gotToken', 'type': 'bool'}, + 'error_message': {'key': 'errorMessage', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AppserviceGithubToken, self).__init__(**kwargs) + self.access_token = kwargs.get('access_token', None) + self.scope = kwargs.get('scope', None) + self.token_type = kwargs.get('token_type', None) + self.got_token = kwargs.get('got_token', None) + self.error_message = kwargs.get('error_message', None) + + +class AppserviceGithubTokenRequest(msrest.serialization.Model): + """Appservice Github token request content. + + All required parameters must be populated in order to send to Azure. + + :param code: Required. Code string to exchange for Github Access token. + :type code: str + :param state: Required. State string used for verification. + :type state: str + """ + + _validation = { + 'code': {'required': True}, + 'state': {'required': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AppserviceGithubTokenRequest, self).__init__(**kwargs) + self.code = kwargs['code'] + self.state = kwargs['state'] + + +class AppServicePlan(Resource): + """App Service plan. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param sku: Description of a SKU for a scalable resource. + :type sku: ~azure.mgmt.web.v2021_01_15.models.SkuDescription + :param extended_location: Extended Location. + :type extended_location: ~azure.mgmt.web.v2021_01_15.models.ExtendedLocation + :param worker_tier_name: Target worker tier assigned to the App Service plan. + :type worker_tier_name: str + :ivar status: App Service plan status. Possible values include: "Ready", "Pending", "Creating". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.StatusOptions + :ivar subscription: App Service plan subscription. + :vartype subscription: str + :param hosting_environment_profile: Specification for the App Service Environment to use for + the App Service plan. + :type hosting_environment_profile: ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentProfile + :ivar maximum_number_of_workers: Maximum number of instances that can be assigned to this App + Service plan. + :vartype maximum_number_of_workers: int + :ivar geo_region: Geographical location for the App Service plan. + :vartype geo_region: str + :param per_site_scaling: If :code:`true`, apps assigned to this App Service plan + can be scaled independently. + If :code:`false`, apps assigned to this App Service plan will scale to all + instances of the plan. + :type per_site_scaling: bool + :param elastic_scale_enabled: ServerFarm supports ElasticScale. Apps in this plan will scale as + if the ServerFarm was ElasticPremium sku. + :type elastic_scale_enabled: bool + :param maximum_elastic_worker_count: Maximum number of total workers allowed for this + ElasticScaleEnabled App Service Plan. + :type maximum_elastic_worker_count: int + :ivar number_of_sites: Number of apps assigned to this App Service plan. + :vartype number_of_sites: int + :param is_spot: If :code:`true`, this App Service Plan owns spot instances. + :type is_spot: bool + :param spot_expiration_time: The time when the server farm expires. Valid only if it is a spot + server farm. + :type spot_expiration_time: ~datetime.datetime + :param free_offer_expiration_time: The time when the server farm free offer expires. + :type free_offer_expiration_time: ~datetime.datetime + :ivar resource_group: Resource group of the App Service plan. + :vartype resource_group: str + :param reserved: If Linux app service plan :code:`true`, + :code:`false` otherwise. + :type reserved: bool + :param is_xenon: Obsolete: If Hyper-V container app service plan :code:`true`, + :code:`false` otherwise. + :type is_xenon: bool + :param hyper_v: If Hyper-V container app service plan :code:`true`, + :code:`false` otherwise. + :type hyper_v: bool + :param target_worker_count: Scaling worker count. + :type target_worker_count: int + :param target_worker_size_id: Scaling worker size ID. + :type target_worker_size_id: int + :ivar provisioning_state: Provisioning state of the App Service Plan. Possible values include: + "Succeeded", "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :param kube_environment_profile: Specification for the Kubernetes Environment to use for the + App Service plan. + :type kube_environment_profile: ~azure.mgmt.web.v2021_01_15.models.KubeEnvironmentProfile + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'status': {'readonly': True}, + 'subscription': {'readonly': True}, + 'maximum_number_of_workers': {'readonly': True}, + 'geo_region': {'readonly': True}, + 'number_of_sites': {'readonly': True}, + 'resource_group': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'sku': {'key': 'sku', 'type': 'SkuDescription'}, + 'extended_location': {'key': 'extendedLocation', 'type': 'ExtendedLocation'}, + 'worker_tier_name': {'key': 'properties.workerTierName', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'subscription': {'key': 'properties.subscription', 'type': 'str'}, + 'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'}, + 'maximum_number_of_workers': {'key': 'properties.maximumNumberOfWorkers', 'type': 'int'}, + 'geo_region': {'key': 'properties.geoRegion', 'type': 'str'}, + 'per_site_scaling': {'key': 'properties.perSiteScaling', 'type': 'bool'}, + 'elastic_scale_enabled': {'key': 'properties.elasticScaleEnabled', 'type': 'bool'}, + 'maximum_elastic_worker_count': {'key': 'properties.maximumElasticWorkerCount', 'type': 'int'}, + 'number_of_sites': {'key': 'properties.numberOfSites', 'type': 'int'}, + 'is_spot': {'key': 'properties.isSpot', 'type': 'bool'}, + 'spot_expiration_time': {'key': 'properties.spotExpirationTime', 'type': 'iso-8601'}, + 'free_offer_expiration_time': {'key': 'properties.freeOfferExpirationTime', 'type': 'iso-8601'}, + 'resource_group': {'key': 'properties.resourceGroup', 'type': 'str'}, + 'reserved': {'key': 'properties.reserved', 'type': 'bool'}, + 'is_xenon': {'key': 'properties.isXenon', 'type': 'bool'}, + 'hyper_v': {'key': 'properties.hyperV', 'type': 'bool'}, + 'target_worker_count': {'key': 'properties.targetWorkerCount', 'type': 'int'}, + 'target_worker_size_id': {'key': 'properties.targetWorkerSizeId', 'type': 'int'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'kube_environment_profile': {'key': 'properties.kubeEnvironmentProfile', 'type': 'KubeEnvironmentProfile'}, + } + + def __init__( + self, + **kwargs + ): + super(AppServicePlan, self).__init__(**kwargs) + self.sku = kwargs.get('sku', None) + self.extended_location = kwargs.get('extended_location', None) + self.worker_tier_name = kwargs.get('worker_tier_name', None) + self.status = None + self.subscription = None + self.hosting_environment_profile = kwargs.get('hosting_environment_profile', None) + self.maximum_number_of_workers = None + self.geo_region = None + self.per_site_scaling = kwargs.get('per_site_scaling', False) + self.elastic_scale_enabled = kwargs.get('elastic_scale_enabled', None) + self.maximum_elastic_worker_count = kwargs.get('maximum_elastic_worker_count', None) + self.number_of_sites = None + self.is_spot = kwargs.get('is_spot', None) + self.spot_expiration_time = kwargs.get('spot_expiration_time', None) + self.free_offer_expiration_time = kwargs.get('free_offer_expiration_time', None) + self.resource_group = None + self.reserved = kwargs.get('reserved', False) + self.is_xenon = kwargs.get('is_xenon', False) + self.hyper_v = kwargs.get('hyper_v', False) + self.target_worker_count = kwargs.get('target_worker_count', None) + self.target_worker_size_id = kwargs.get('target_worker_size_id', None) + self.provisioning_state = None + self.kube_environment_profile = kwargs.get('kube_environment_profile', None) + + +class AppServicePlanCollection(msrest.serialization.Model): + """Collection of App Service plans. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.AppServicePlan] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[AppServicePlan]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AppServicePlanCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class AppServicePlanPatchResource(ProxyOnlyResource): + """ARM resource for a app service plan. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param worker_tier_name: Target worker tier assigned to the App Service plan. + :type worker_tier_name: str + :ivar status: App Service plan status. Possible values include: "Ready", "Pending", "Creating". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.StatusOptions + :ivar subscription: App Service plan subscription. + :vartype subscription: str + :param hosting_environment_profile: Specification for the App Service Environment to use for + the App Service plan. + :type hosting_environment_profile: ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentProfile + :ivar maximum_number_of_workers: Maximum number of instances that can be assigned to this App + Service plan. + :vartype maximum_number_of_workers: int + :ivar geo_region: Geographical location for the App Service plan. + :vartype geo_region: str + :param per_site_scaling: If :code:`true`, apps assigned to this App Service plan + can be scaled independently. + If :code:`false`, apps assigned to this App Service plan will scale to all + instances of the plan. + :type per_site_scaling: bool + :param elastic_scale_enabled: ServerFarm supports ElasticScale. Apps in this plan will scale as + if the ServerFarm was ElasticPremium sku. + :type elastic_scale_enabled: bool + :param maximum_elastic_worker_count: Maximum number of total workers allowed for this + ElasticScaleEnabled App Service Plan. + :type maximum_elastic_worker_count: int + :ivar number_of_sites: Number of apps assigned to this App Service plan. + :vartype number_of_sites: int + :param is_spot: If :code:`true`, this App Service Plan owns spot instances. + :type is_spot: bool + :param spot_expiration_time: The time when the server farm expires. Valid only if it is a spot + server farm. + :type spot_expiration_time: ~datetime.datetime + :param free_offer_expiration_time: The time when the server farm free offer expires. + :type free_offer_expiration_time: ~datetime.datetime + :ivar resource_group: Resource group of the App Service plan. + :vartype resource_group: str + :param reserved: If Linux app service plan :code:`true`, + :code:`false` otherwise. + :type reserved: bool + :param is_xenon: Obsolete: If Hyper-V container app service plan :code:`true`, + :code:`false` otherwise. + :type is_xenon: bool + :param hyper_v: If Hyper-V container app service plan :code:`true`, + :code:`false` otherwise. + :type hyper_v: bool + :param target_worker_count: Scaling worker count. + :type target_worker_count: int + :param target_worker_size_id: Scaling worker size ID. + :type target_worker_size_id: int + :ivar provisioning_state: Provisioning state of the App Service Plan. Possible values include: + "Succeeded", "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :param kube_environment_profile: Specification for the Kubernetes Environment to use for the + App Service plan. + :type kube_environment_profile: ~azure.mgmt.web.v2021_01_15.models.KubeEnvironmentProfile + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'status': {'readonly': True}, + 'subscription': {'readonly': True}, + 'maximum_number_of_workers': {'readonly': True}, + 'geo_region': {'readonly': True}, + 'number_of_sites': {'readonly': True}, + 'resource_group': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'worker_tier_name': {'key': 'properties.workerTierName', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'subscription': {'key': 'properties.subscription', 'type': 'str'}, + 'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'}, + 'maximum_number_of_workers': {'key': 'properties.maximumNumberOfWorkers', 'type': 'int'}, + 'geo_region': {'key': 'properties.geoRegion', 'type': 'str'}, + 'per_site_scaling': {'key': 'properties.perSiteScaling', 'type': 'bool'}, + 'elastic_scale_enabled': {'key': 'properties.elasticScaleEnabled', 'type': 'bool'}, + 'maximum_elastic_worker_count': {'key': 'properties.maximumElasticWorkerCount', 'type': 'int'}, + 'number_of_sites': {'key': 'properties.numberOfSites', 'type': 'int'}, + 'is_spot': {'key': 'properties.isSpot', 'type': 'bool'}, + 'spot_expiration_time': {'key': 'properties.spotExpirationTime', 'type': 'iso-8601'}, + 'free_offer_expiration_time': {'key': 'properties.freeOfferExpirationTime', 'type': 'iso-8601'}, + 'resource_group': {'key': 'properties.resourceGroup', 'type': 'str'}, + 'reserved': {'key': 'properties.reserved', 'type': 'bool'}, + 'is_xenon': {'key': 'properties.isXenon', 'type': 'bool'}, + 'hyper_v': {'key': 'properties.hyperV', 'type': 'bool'}, + 'target_worker_count': {'key': 'properties.targetWorkerCount', 'type': 'int'}, + 'target_worker_size_id': {'key': 'properties.targetWorkerSizeId', 'type': 'int'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'kube_environment_profile': {'key': 'properties.kubeEnvironmentProfile', 'type': 'KubeEnvironmentProfile'}, + } + + def __init__( + self, + **kwargs + ): + super(AppServicePlanPatchResource, self).__init__(**kwargs) + self.worker_tier_name = kwargs.get('worker_tier_name', None) + self.status = None + self.subscription = None + self.hosting_environment_profile = kwargs.get('hosting_environment_profile', None) + self.maximum_number_of_workers = None + self.geo_region = None + self.per_site_scaling = kwargs.get('per_site_scaling', False) + self.elastic_scale_enabled = kwargs.get('elastic_scale_enabled', None) + self.maximum_elastic_worker_count = kwargs.get('maximum_elastic_worker_count', None) + self.number_of_sites = None + self.is_spot = kwargs.get('is_spot', None) + self.spot_expiration_time = kwargs.get('spot_expiration_time', None) + self.free_offer_expiration_time = kwargs.get('free_offer_expiration_time', None) + self.resource_group = None + self.reserved = kwargs.get('reserved', False) + self.is_xenon = kwargs.get('is_xenon', False) + self.hyper_v = kwargs.get('hyper_v', False) + self.target_worker_count = kwargs.get('target_worker_count', None) + self.target_worker_size_id = kwargs.get('target_worker_size_id', None) + self.provisioning_state = None + self.kube_environment_profile = kwargs.get('kube_environment_profile', None) + + +class ArcConfiguration(msrest.serialization.Model): + """ArcConfiguration. + + :param artifacts_storage_type: Possible values include: "LocalNode", "NetworkFileSystem". + :type artifacts_storage_type: str or ~azure.mgmt.web.v2021_01_15.models.StorageType + :param artifact_storage_class_name: + :type artifact_storage_class_name: str + :param artifact_storage_mount_path: + :type artifact_storage_mount_path: str + :param artifact_storage_node_name: + :type artifact_storage_node_name: str + :param artifact_storage_access_mode: + :type artifact_storage_access_mode: str + :param front_end_service_configuration: + :type front_end_service_configuration: ~azure.mgmt.web.v2021_01_15.models.FrontEndConfiguration + :param kube_config: + :type kube_config: str + """ + + _attribute_map = { + 'artifacts_storage_type': {'key': 'artifactsStorageType', 'type': 'str'}, + 'artifact_storage_class_name': {'key': 'artifactStorageClassName', 'type': 'str'}, + 'artifact_storage_mount_path': {'key': 'artifactStorageMountPath', 'type': 'str'}, + 'artifact_storage_node_name': {'key': 'artifactStorageNodeName', 'type': 'str'}, + 'artifact_storage_access_mode': {'key': 'artifactStorageAccessMode', 'type': 'str'}, + 'front_end_service_configuration': {'key': 'frontEndServiceConfiguration', 'type': 'FrontEndConfiguration'}, + 'kube_config': {'key': 'kubeConfig', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ArcConfiguration, self).__init__(**kwargs) + self.artifacts_storage_type = kwargs.get('artifacts_storage_type', None) + self.artifact_storage_class_name = kwargs.get('artifact_storage_class_name', None) + self.artifact_storage_mount_path = kwargs.get('artifact_storage_mount_path', None) + self.artifact_storage_node_name = kwargs.get('artifact_storage_node_name', None) + self.artifact_storage_access_mode = kwargs.get('artifact_storage_access_mode', None) + self.front_end_service_configuration = kwargs.get('front_end_service_configuration', None) + self.kube_config = kwargs.get('kube_config', None) + + +class ArmIdWrapper(msrest.serialization.Model): + """A wrapper for an ARM resource id. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: + :vartype id: str + """ + + _validation = { + 'id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ArmIdWrapper, self).__init__(**kwargs) + self.id = None + + +class ArmPlan(msrest.serialization.Model): + """The plan object in Azure Resource Manager, represents a marketplace plan. + + :param name: The name. + :type name: str + :param publisher: The publisher. + :type publisher: str + :param product: The product. + :type product: str + :param promotion_code: The promotion code. + :type promotion_code: str + :param version: Version of product. + :type version: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'publisher': {'key': 'publisher', 'type': 'str'}, + 'product': {'key': 'product', 'type': 'str'}, + 'promotion_code': {'key': 'promotionCode', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ArmPlan, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.publisher = kwargs.get('publisher', None) + self.product = kwargs.get('product', None) + self.promotion_code = kwargs.get('promotion_code', None) + self.version = kwargs.get('version', None) + + +class AseV3NetworkingConfiguration(ProxyOnlyResource): + """Full view of networking configuration for an ASE. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar windows_outbound_ip_addresses: + :vartype windows_outbound_ip_addresses: list[str] + :ivar linux_outbound_ip_addresses: + :vartype linux_outbound_ip_addresses: list[str] + :param allow_new_private_endpoint_connections: Property to enable and disable new private + endpoint connection creation on ASE. + :type allow_new_private_endpoint_connections: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'windows_outbound_ip_addresses': {'readonly': True}, + 'linux_outbound_ip_addresses': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'windows_outbound_ip_addresses': {'key': 'properties.windowsOutboundIpAddresses', 'type': '[str]'}, + 'linux_outbound_ip_addresses': {'key': 'properties.linuxOutboundIpAddresses', 'type': '[str]'}, + 'allow_new_private_endpoint_connections': {'key': 'properties.allowNewPrivateEndpointConnections', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(AseV3NetworkingConfiguration, self).__init__(**kwargs) + self.windows_outbound_ip_addresses = None + self.linux_outbound_ip_addresses = None + self.allow_new_private_endpoint_connections = kwargs.get('allow_new_private_endpoint_connections', None) + + +class AuthPlatform(ProxyOnlyResource): + """The configuration settings of the platform of App Service Authentication/Authorization. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`true` if the Authentication / Authorization feature is + enabled for the current app; otherwise, :code:`false`. + :type enabled: bool + :param runtime_version: The RuntimeVersion of the Authentication / Authorization feature in use + for the current app. + The setting in this value can control the behavior of certain features in the Authentication / + Authorization module. + :type runtime_version: str + :param config_file_path: The path of the config file containing auth settings if they come from + a file. + If the path is relative, base will the site's root directory. + :type config_file_path: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'runtime_version': {'key': 'properties.runtimeVersion', 'type': 'str'}, + 'config_file_path': {'key': 'properties.configFilePath', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AuthPlatform, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.runtime_version = kwargs.get('runtime_version', None) + self.config_file_path = kwargs.get('config_file_path', None) + + +class AutoHealActions(msrest.serialization.Model): + """Actions which to take by the auto-heal module when a rule is triggered. + + :param action_type: Predefined action to be taken. Possible values include: "Recycle", + "LogEvent", "CustomAction". + :type action_type: str or ~azure.mgmt.web.v2021_01_15.models.AutoHealActionType + :param custom_action: Custom action to be taken. + :type custom_action: ~azure.mgmt.web.v2021_01_15.models.AutoHealCustomAction + :param min_process_execution_time: Minimum time the process must execute + before taking the action. + :type min_process_execution_time: str + """ + + _attribute_map = { + 'action_type': {'key': 'actionType', 'type': 'str'}, + 'custom_action': {'key': 'customAction', 'type': 'AutoHealCustomAction'}, + 'min_process_execution_time': {'key': 'minProcessExecutionTime', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AutoHealActions, self).__init__(**kwargs) + self.action_type = kwargs.get('action_type', None) + self.custom_action = kwargs.get('custom_action', None) + self.min_process_execution_time = kwargs.get('min_process_execution_time', None) + + +class AutoHealCustomAction(msrest.serialization.Model): + """Custom action to be executed +when an auto heal rule is triggered. + + :param exe: Executable to be run. + :type exe: str + :param parameters: Parameters for the executable. + :type parameters: str + """ + + _attribute_map = { + 'exe': {'key': 'exe', 'type': 'str'}, + 'parameters': {'key': 'parameters', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AutoHealCustomAction, self).__init__(**kwargs) + self.exe = kwargs.get('exe', None) + self.parameters = kwargs.get('parameters', None) + + +class AutoHealRules(msrest.serialization.Model): + """Rules that can be defined for auto-heal. + + :param triggers: Conditions that describe when to execute the auto-heal actions. + :type triggers: ~azure.mgmt.web.v2021_01_15.models.AutoHealTriggers + :param actions: Actions to be executed when a rule is triggered. + :type actions: ~azure.mgmt.web.v2021_01_15.models.AutoHealActions + """ + + _attribute_map = { + 'triggers': {'key': 'triggers', 'type': 'AutoHealTriggers'}, + 'actions': {'key': 'actions', 'type': 'AutoHealActions'}, + } + + def __init__( + self, + **kwargs + ): + super(AutoHealRules, self).__init__(**kwargs) + self.triggers = kwargs.get('triggers', None) + self.actions = kwargs.get('actions', None) + + +class AutoHealTriggers(msrest.serialization.Model): + """Triggers for auto-heal. + + :param requests: A rule based on total requests. + :type requests: ~azure.mgmt.web.v2021_01_15.models.RequestsBasedTrigger + :param private_bytes_in_kb: A rule based on private bytes. + :type private_bytes_in_kb: int + :param status_codes: A rule based on status codes. + :type status_codes: list[~azure.mgmt.web.v2021_01_15.models.StatusCodesBasedTrigger] + :param slow_requests: A rule based on request execution time. + :type slow_requests: ~azure.mgmt.web.v2021_01_15.models.SlowRequestsBasedTrigger + :param slow_requests_with_path: A rule based on multiple Slow Requests Rule with path. + :type slow_requests_with_path: + list[~azure.mgmt.web.v2021_01_15.models.SlowRequestsBasedTrigger] + :param status_codes_range: A rule based on status codes ranges. + :type status_codes_range: list[~azure.mgmt.web.v2021_01_15.models.StatusCodesRangeBasedTrigger] + """ + + _attribute_map = { + 'requests': {'key': 'requests', 'type': 'RequestsBasedTrigger'}, + 'private_bytes_in_kb': {'key': 'privateBytesInKB', 'type': 'int'}, + 'status_codes': {'key': 'statusCodes', 'type': '[StatusCodesBasedTrigger]'}, + 'slow_requests': {'key': 'slowRequests', 'type': 'SlowRequestsBasedTrigger'}, + 'slow_requests_with_path': {'key': 'slowRequestsWithPath', 'type': '[SlowRequestsBasedTrigger]'}, + 'status_codes_range': {'key': 'statusCodesRange', 'type': '[StatusCodesRangeBasedTrigger]'}, + } + + def __init__( + self, + **kwargs + ): + super(AutoHealTriggers, self).__init__(**kwargs) + self.requests = kwargs.get('requests', None) + self.private_bytes_in_kb = kwargs.get('private_bytes_in_kb', None) + self.status_codes = kwargs.get('status_codes', None) + self.slow_requests = kwargs.get('slow_requests', None) + self.slow_requests_with_path = kwargs.get('slow_requests_with_path', None) + self.status_codes_range = kwargs.get('status_codes_range', None) + + +class AzureActiveDirectory(ProxyOnlyResource): + """The configuration settings of the Azure Active directory provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the Azure Active Directory provider should not be + enabled despite the set registration; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the Azure Active Directory app registration. + :type registration: ~azure.mgmt.web.v2021_01_15.models.AzureActiveDirectoryRegistration + :param login: The configuration settings of the Azure Active Directory login flow. + :type login: ~azure.mgmt.web.v2021_01_15.models.AzureActiveDirectoryLogin + :param validation: The configuration settings of the Azure Active Directory token validation + flow. + :type validation: ~azure.mgmt.web.v2021_01_15.models.AzureActiveDirectoryValidation + :param is_auto_provisioned: Gets a value indicating whether the Azure AD configuration was + auto-provisioned using 1st party tooling. + This is an internal flag primarily intended to support the Azure Management Portal. Users + should not + read or write to this property. + :type is_auto_provisioned: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'AzureActiveDirectoryRegistration'}, + 'login': {'key': 'properties.login', 'type': 'AzureActiveDirectoryLogin'}, + 'validation': {'key': 'properties.validation', 'type': 'AzureActiveDirectoryValidation'}, + 'is_auto_provisioned': {'key': 'properties.isAutoProvisioned', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(AzureActiveDirectory, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.registration = kwargs.get('registration', None) + self.login = kwargs.get('login', None) + self.validation = kwargs.get('validation', None) + self.is_auto_provisioned = kwargs.get('is_auto_provisioned', None) + + +class AzureActiveDirectoryLogin(ProxyOnlyResource): + """The configuration settings of the Azure Active Directory login flow. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param disable_www_authenticate: + :type disable_www_authenticate: bool + :param login_parameters: Login parameters to send to the OpenID Connect authorization endpoint + when + a user logs in. Each parameter must be in the form "key=value". + :type login_parameters: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'disable_www_authenticate': {'key': 'properties.disableWWWAuthenticate', 'type': 'bool'}, + 'login_parameters': {'key': 'properties.loginParameters', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(AzureActiveDirectoryLogin, self).__init__(**kwargs) + self.disable_www_authenticate = kwargs.get('disable_www_authenticate', None) + self.login_parameters = kwargs.get('login_parameters', None) + + +class AzureActiveDirectoryRegistration(ProxyOnlyResource): + """The configuration settings of the Azure Active Directory app registration. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param open_id_issuer: The OpenID Connect Issuer URI that represents the entity which issues + access tokens for this application. + When using Azure Active Directory, this value is the URI of the directory tenant, e.g. + https://login.microsoftonline.com/v2.0/{tenant-guid}/. + This URI is a case-sensitive identifier for the token issuer. + More information on OpenID Connect Discovery: + http://openid.net/specs/openid-connect-discovery-1_0.html. + :type open_id_issuer: str + :param client_id: The Client ID of this relying party application, known as the client_id. + This setting is required for enabling OpenID Connection authentication with Azure Active + Directory or + other 3rd party OpenID Connect providers. + More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html. + :type client_id: str + :param client_secret_setting_name: The app setting name that contains the client secret of the + relying party application. + :type client_secret_setting_name: str + :param client_secret_certificate_thumbprint: An alternative to the client secret, that is the + thumbprint of a certificate used for signing purposes. This property acts as + a replacement for the Client Secret. It is also optional. + :type client_secret_certificate_thumbprint: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'open_id_issuer': {'key': 'properties.openIdIssuer', 'type': 'str'}, + 'client_id': {'key': 'properties.clientId', 'type': 'str'}, + 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, + 'client_secret_certificate_thumbprint': {'key': 'properties.clientSecretCertificateThumbprint', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AzureActiveDirectoryRegistration, self).__init__(**kwargs) + self.open_id_issuer = kwargs.get('open_id_issuer', None) + self.client_id = kwargs.get('client_id', None) + self.client_secret_setting_name = kwargs.get('client_secret_setting_name', None) + self.client_secret_certificate_thumbprint = kwargs.get('client_secret_certificate_thumbprint', None) + + +class AzureActiveDirectoryValidation(ProxyOnlyResource): + """The configuration settings of the Azure Active Directory token validation flow. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param jwt_claim_checks: The configuration settings of the checks that should be made while + validating the JWT Claims. + :type jwt_claim_checks: ~azure.mgmt.web.v2021_01_15.models.JwtClaimChecks + :param allowed_audiences: The list of audiences that can make successful + authentication/authorization requests. + :type allowed_audiences: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'jwt_claim_checks': {'key': 'properties.jwtClaimChecks', 'type': 'JwtClaimChecks'}, + 'allowed_audiences': {'key': 'properties.allowedAudiences', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(AzureActiveDirectoryValidation, self).__init__(**kwargs) + self.jwt_claim_checks = kwargs.get('jwt_claim_checks', None) + self.allowed_audiences = kwargs.get('allowed_audiences', None) + + +class AzureBlobStorageApplicationLogsConfig(msrest.serialization.Model): + """Application logs azure blob storage configuration. + + :param level: Log level. Possible values include: "Off", "Verbose", "Information", "Warning", + "Error". + :type level: str or ~azure.mgmt.web.v2021_01_15.models.LogLevel + :param sas_url: SAS url to a azure blob container with read/write/list/delete permissions. + :type sas_url: str + :param retention_in_days: Retention in days. + Remove blobs older than X days. + 0 or lower means no retention. + :type retention_in_days: int + """ + + _attribute_map = { + 'level': {'key': 'level', 'type': 'str'}, + 'sas_url': {'key': 'sasUrl', 'type': 'str'}, + 'retention_in_days': {'key': 'retentionInDays', 'type': 'int'}, + } + + def __init__( + self, + **kwargs + ): + super(AzureBlobStorageApplicationLogsConfig, self).__init__(**kwargs) + self.level = kwargs.get('level', None) + self.sas_url = kwargs.get('sas_url', None) + self.retention_in_days = kwargs.get('retention_in_days', None) + + +class AzureBlobStorageHttpLogsConfig(msrest.serialization.Model): + """Http logs to azure blob storage configuration. + + :param sas_url: SAS url to a azure blob container with read/write/list/delete permissions. + :type sas_url: str + :param retention_in_days: Retention in days. + Remove blobs older than X days. + 0 or lower means no retention. + :type retention_in_days: int + :param enabled: True if configuration is enabled, false if it is disabled and null if + configuration is not set. + :type enabled: bool + """ + + _attribute_map = { + 'sas_url': {'key': 'sasUrl', 'type': 'str'}, + 'retention_in_days': {'key': 'retentionInDays', 'type': 'int'}, + 'enabled': {'key': 'enabled', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(AzureBlobStorageHttpLogsConfig, self).__init__(**kwargs) + self.sas_url = kwargs.get('sas_url', None) + self.retention_in_days = kwargs.get('retention_in_days', None) + self.enabled = kwargs.get('enabled', None) + + +class AzureStaticWebApps(ProxyOnlyResource): + """The configuration settings of the Azure Static Web Apps provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the Azure Static Web Apps provider should not be + enabled despite the set registration; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the Azure Static Web Apps registration. + :type registration: ~azure.mgmt.web.v2021_01_15.models.AzureStaticWebAppsRegistration + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'AzureStaticWebAppsRegistration'}, + } + + def __init__( + self, + **kwargs + ): + super(AzureStaticWebApps, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.registration = kwargs.get('registration', None) + + +class AzureStaticWebAppsRegistration(ProxyOnlyResource): + """The configuration settings of the registration for the Azure Static Web Apps provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param client_id: The Client ID of the app used for login. + :type client_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'client_id': {'key': 'properties.clientId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AzureStaticWebAppsRegistration, self).__init__(**kwargs) + self.client_id = kwargs.get('client_id', None) + + +class AzureStorageInfoValue(msrest.serialization.Model): + """Azure Files or Blob Storage access information value for dictionary storage. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param type: Type of storage. Possible values include: "AzureFiles", "AzureBlob". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.AzureStorageType + :param account_name: Name of the storage account. + :type account_name: str + :param share_name: Name of the file share (container name, for Blob storage). + :type share_name: str + :param access_key: Access key for the storage account. + :type access_key: str + :param mount_path: Path to mount the storage within the site's runtime environment. + :type mount_path: str + :ivar state: State of the storage account. Possible values include: "Ok", "InvalidCredentials", + "InvalidShare", "NotValidated". + :vartype state: str or ~azure.mgmt.web.v2021_01_15.models.AzureStorageState + """ + + _validation = { + 'state': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'account_name': {'key': 'accountName', 'type': 'str'}, + 'share_name': {'key': 'shareName', 'type': 'str'}, + 'access_key': {'key': 'accessKey', 'type': 'str'}, + 'mount_path': {'key': 'mountPath', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AzureStorageInfoValue, self).__init__(**kwargs) + self.type = kwargs.get('type', None) + self.account_name = kwargs.get('account_name', None) + self.share_name = kwargs.get('share_name', None) + self.access_key = kwargs.get('access_key', None) + self.mount_path = kwargs.get('mount_path', None) + self.state = None + + +class AzureStoragePropertyDictionaryResource(ProxyOnlyResource): + """AzureStorageInfo dictionary resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param properties: Azure storage accounts. + :type properties: dict[str, ~azure.mgmt.web.v2021_01_15.models.AzureStorageInfoValue] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': '{AzureStorageInfoValue}'}, + } + + def __init__( + self, + **kwargs + ): + super(AzureStoragePropertyDictionaryResource, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) + + +class AzureTableStorageApplicationLogsConfig(msrest.serialization.Model): + """Application logs to Azure table storage configuration. + + All required parameters must be populated in order to send to Azure. + + :param level: Log level. Possible values include: "Off", "Verbose", "Information", "Warning", + "Error". + :type level: str or ~azure.mgmt.web.v2021_01_15.models.LogLevel + :param sas_url: Required. SAS URL to an Azure table with add/query/delete permissions. + :type sas_url: str + """ + + _validation = { + 'sas_url': {'required': True}, + } + + _attribute_map = { + 'level': {'key': 'level', 'type': 'str'}, + 'sas_url': {'key': 'sasUrl', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(AzureTableStorageApplicationLogsConfig, self).__init__(**kwargs) + self.level = kwargs.get('level', None) + self.sas_url = kwargs['sas_url'] + + +class BackupItem(ProxyOnlyResource): + """Backup description. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar backup_id: Id of the backup. + :vartype backup_id: int + :ivar storage_account_url: SAS URL for the storage account container which contains this + backup. + :vartype storage_account_url: str + :ivar blob_name: Name of the blob which contains data for this backup. + :vartype blob_name: str + :ivar name_properties_name: Name of this backup. + :vartype name_properties_name: str + :ivar status: Backup status. Possible values include: "InProgress", "Failed", "Succeeded", + "TimedOut", "Created", "Skipped", "PartiallySucceeded", "DeleteInProgress", "DeleteFailed", + "Deleted". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.BackupItemStatus + :ivar size_in_bytes: Size of the backup in bytes. + :vartype size_in_bytes: long + :ivar created: Timestamp of the backup creation. + :vartype created: ~datetime.datetime + :ivar log: Details regarding this backup. Might contain an error message. + :vartype log: str + :ivar databases: List of databases included in the backup. + :vartype databases: list[~azure.mgmt.web.v2021_01_15.models.DatabaseBackupSetting] + :ivar scheduled: True if this backup has been created due to a schedule being triggered. + :vartype scheduled: bool + :ivar last_restore_time_stamp: Timestamp of a last restore operation which used this backup. + :vartype last_restore_time_stamp: ~datetime.datetime + :ivar finished_time_stamp: Timestamp when this backup finished. + :vartype finished_time_stamp: ~datetime.datetime + :ivar correlation_id: Unique correlation identifier. Please use this along with the timestamp + while communicating with Azure support. + :vartype correlation_id: str + :ivar website_size_in_bytes: Size of the original web app which has been backed up. + :vartype website_size_in_bytes: long + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'backup_id': {'readonly': True}, + 'storage_account_url': {'readonly': True}, + 'blob_name': {'readonly': True}, + 'name_properties_name': {'readonly': True}, + 'status': {'readonly': True}, + 'size_in_bytes': {'readonly': True}, + 'created': {'readonly': True}, + 'log': {'readonly': True}, + 'databases': {'readonly': True}, + 'scheduled': {'readonly': True}, + 'last_restore_time_stamp': {'readonly': True}, + 'finished_time_stamp': {'readonly': True}, + 'correlation_id': {'readonly': True}, + 'website_size_in_bytes': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'backup_id': {'key': 'properties.id', 'type': 'int'}, + 'storage_account_url': {'key': 'properties.storageAccountUrl', 'type': 'str'}, + 'blob_name': {'key': 'properties.blobName', 'type': 'str'}, + 'name_properties_name': {'key': 'properties.name', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'size_in_bytes': {'key': 'properties.sizeInBytes', 'type': 'long'}, + 'created': {'key': 'properties.created', 'type': 'iso-8601'}, + 'log': {'key': 'properties.log', 'type': 'str'}, + 'databases': {'key': 'properties.databases', 'type': '[DatabaseBackupSetting]'}, + 'scheduled': {'key': 'properties.scheduled', 'type': 'bool'}, + 'last_restore_time_stamp': {'key': 'properties.lastRestoreTimeStamp', 'type': 'iso-8601'}, + 'finished_time_stamp': {'key': 'properties.finishedTimeStamp', 'type': 'iso-8601'}, + 'correlation_id': {'key': 'properties.correlationId', 'type': 'str'}, + 'website_size_in_bytes': {'key': 'properties.websiteSizeInBytes', 'type': 'long'}, + } + + def __init__( + self, + **kwargs + ): + super(BackupItem, self).__init__(**kwargs) + self.backup_id = None + self.storage_account_url = None + self.blob_name = None + self.name_properties_name = None + self.status = None + self.size_in_bytes = None + self.created = None + self.log = None + self.databases = None + self.scheduled = None + self.last_restore_time_stamp = None + self.finished_time_stamp = None + self.correlation_id = None + self.website_size_in_bytes = None + + +class BackupItemCollection(msrest.serialization.Model): + """Collection of backup items. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.BackupItem] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[BackupItem]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(BackupItemCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class BackupRequest(ProxyOnlyResource): + """Description of a backup which will be performed. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param backup_name: Name of the backup. + :type backup_name: str + :param enabled: True if the backup schedule is enabled (must be included in that case), false + if the backup schedule should be disabled. + :type enabled: bool + :param storage_account_url: SAS URL to the container. + :type storage_account_url: str + :param backup_schedule: Schedule for the backup if it is executed periodically. + :type backup_schedule: ~azure.mgmt.web.v2021_01_15.models.BackupSchedule + :param databases: Databases included in the backup. + :type databases: list[~azure.mgmt.web.v2021_01_15.models.DatabaseBackupSetting] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'backup_name': {'key': 'properties.backupName', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'storage_account_url': {'key': 'properties.storageAccountUrl', 'type': 'str'}, + 'backup_schedule': {'key': 'properties.backupSchedule', 'type': 'BackupSchedule'}, + 'databases': {'key': 'properties.databases', 'type': '[DatabaseBackupSetting]'}, + } + + def __init__( + self, + **kwargs + ): + super(BackupRequest, self).__init__(**kwargs) + self.backup_name = kwargs.get('backup_name', None) + self.enabled = kwargs.get('enabled', None) + self.storage_account_url = kwargs.get('storage_account_url', None) + self.backup_schedule = kwargs.get('backup_schedule', None) + self.databases = kwargs.get('databases', None) + + +class BackupSchedule(msrest.serialization.Model): + """Description of a backup schedule. Describes how often should be the backup performed and what should be the retention policy. + + 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 frequency_interval: Required. How often the backup should be executed (e.g. for weekly + backup, this should be set to 7 and FrequencyUnit should be set to Day). + :type frequency_interval: int + :param frequency_unit: Required. The unit of time for how often the backup should be executed + (e.g. for weekly backup, this should be set to Day and FrequencyInterval should be set to 7). + Possible values include: "Day", "Hour". Default value: "Day". + :type frequency_unit: str or ~azure.mgmt.web.v2021_01_15.models.FrequencyUnit + :param keep_at_least_one_backup: Required. True if the retention policy should always keep at + least one backup in the storage account, regardless how old it is; false otherwise. + :type keep_at_least_one_backup: bool + :param retention_period_in_days: Required. After how many days backups should be deleted. + :type retention_period_in_days: int + :param start_time: When the schedule should start working. + :type start_time: ~datetime.datetime + :ivar last_execution_time: Last time when this schedule was triggered. + :vartype last_execution_time: ~datetime.datetime + """ + + _validation = { + 'frequency_interval': {'required': True}, + 'frequency_unit': {'required': True}, + 'keep_at_least_one_backup': {'required': True}, + 'retention_period_in_days': {'required': True}, + 'last_execution_time': {'readonly': True}, + } + + _attribute_map = { + 'frequency_interval': {'key': 'frequencyInterval', 'type': 'int'}, + 'frequency_unit': {'key': 'frequencyUnit', 'type': 'str'}, + 'keep_at_least_one_backup': {'key': 'keepAtLeastOneBackup', 'type': 'bool'}, + 'retention_period_in_days': {'key': 'retentionPeriodInDays', 'type': 'int'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_execution_time': {'key': 'lastExecutionTime', 'type': 'iso-8601'}, + } + + def __init__( + self, + **kwargs + ): + super(BackupSchedule, self).__init__(**kwargs) + self.frequency_interval = kwargs.get('frequency_interval', 7) + self.frequency_unit = kwargs.get('frequency_unit', "Day") + self.keep_at_least_one_backup = kwargs.get('keep_at_least_one_backup', True) + self.retention_period_in_days = kwargs.get('retention_period_in_days', 30) + self.start_time = kwargs.get('start_time', None) + self.last_execution_time = None + + +class BillingMeter(ProxyOnlyResource): + """App Service billing entity that contains information about meter which the Azure billing system utilizes to charge users for services. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param meter_id: Meter GUID onboarded in Commerce. + :type meter_id: str + :param billing_location: Azure Location of billable resource. + :type billing_location: str + :param short_name: Short Name from App Service Azure pricing Page. + :type short_name: str + :param friendly_name: Friendly name of the meter. + :type friendly_name: str + :param resource_type: App Service ResourceType meter used for. + :type resource_type: str + :param os_type: App Service OS type meter used for. + :type os_type: str + :param multiplier: Meter Multiplier. + :type multiplier: float + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'meter_id': {'key': 'properties.meterId', 'type': 'str'}, + 'billing_location': {'key': 'properties.billingLocation', 'type': 'str'}, + 'short_name': {'key': 'properties.shortName', 'type': 'str'}, + 'friendly_name': {'key': 'properties.friendlyName', 'type': 'str'}, + 'resource_type': {'key': 'properties.resourceType', 'type': 'str'}, + 'os_type': {'key': 'properties.osType', 'type': 'str'}, + 'multiplier': {'key': 'properties.multiplier', 'type': 'float'}, + } + + def __init__( + self, + **kwargs + ): + super(BillingMeter, self).__init__(**kwargs) + self.meter_id = kwargs.get('meter_id', None) + self.billing_location = kwargs.get('billing_location', None) + self.short_name = kwargs.get('short_name', None) + self.friendly_name = kwargs.get('friendly_name', None) + self.resource_type = kwargs.get('resource_type', None) + self.os_type = kwargs.get('os_type', None) + self.multiplier = kwargs.get('multiplier', None) + + +class BillingMeterCollection(msrest.serialization.Model): + """Collection of Billing Meters. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.BillingMeter] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[BillingMeter]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(BillingMeterCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class BlobStorageTokenStore(ProxyOnlyResource): + """The configuration settings of the storage of the tokens if blob storage is used. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param sas_url_setting_name: The name of the app setting containing the SAS URL of the blob + storage containing the tokens. + :type sas_url_setting_name: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'sas_url_setting_name': {'key': 'properties.sasUrlSettingName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(BlobStorageTokenStore, self).__init__(**kwargs) + self.sas_url_setting_name = kwargs.get('sas_url_setting_name', None) + + +class Capability(msrest.serialization.Model): + """Describes the capabilities/features allowed for a specific SKU. + + :param name: Name of the SKU capability. + :type name: str + :param value: Value of the SKU capability. + :type value: str + :param reason: Reason of the SKU capability. + :type reason: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + 'reason': {'key': 'reason', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Capability, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.value = kwargs.get('value', None) + self.reason = kwargs.get('reason', None) + + +class Certificate(Resource): + """SSL certificate for an app. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param password: Certificate password. + :type password: str + :ivar friendly_name: Friendly name of the certificate. + :vartype friendly_name: str + :ivar subject_name: Subject name of the certificate. + :vartype subject_name: str + :param host_names: Host names the certificate applies to. + :type host_names: list[str] + :param pfx_blob: Pfx blob. + :type pfx_blob: bytearray + :ivar site_name: App name. + :vartype site_name: str + :ivar self_link: Self link. + :vartype self_link: str + :ivar issuer: Certificate issuer. + :vartype issuer: str + :ivar issue_date: Certificate issue Date. + :vartype issue_date: ~datetime.datetime + :ivar expiration_date: Certificate expiration date. + :vartype expiration_date: ~datetime.datetime + :ivar thumbprint: Certificate thumbprint. + :vartype thumbprint: str + :ivar valid: Is the certificate valid?. + :vartype valid: bool + :ivar cer_blob: Raw bytes of .cer file. + :vartype cer_blob: bytearray + :ivar public_key_hash: Public key hash. + :vartype public_key_hash: str + :ivar hosting_environment_profile: Specification for the App Service Environment to use for the + certificate. + :vartype hosting_environment_profile: + ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentProfile + :param key_vault_id: Key Vault Csm resource Id. + :type key_vault_id: str + :param key_vault_secret_name: Key Vault secret name. + :type key_vault_secret_name: str + :ivar key_vault_secret_status: Status of the Key Vault secret. Possible values include: + "Initialized", "WaitingOnCertificateOrder", "Succeeded", "CertificateOrderFailed", + "OperationNotPermittedOnKeyVault", "AzureServiceUnauthorizedToAccessKeyVault", + "KeyVaultDoesNotExist", "KeyVaultSecretDoesNotExist", "UnknownError", "ExternalPrivateKey", + "Unknown". + :vartype key_vault_secret_status: str or + ~azure.mgmt.web.v2021_01_15.models.KeyVaultSecretStatus + :param server_farm_id: Resource ID of the associated App Service plan, formatted as: + "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". + :type server_farm_id: str + :param canonical_name: CNAME of the certificate to be issued via free certificate. + :type canonical_name: str + :param domain_validation_method: Method of domain validation for free cert. + :type domain_validation_method: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'friendly_name': {'readonly': True}, + 'subject_name': {'readonly': True}, + 'site_name': {'readonly': True}, + 'self_link': {'readonly': True}, + 'issuer': {'readonly': True}, + 'issue_date': {'readonly': True}, + 'expiration_date': {'readonly': True}, + 'thumbprint': {'readonly': True}, + 'valid': {'readonly': True}, + 'cer_blob': {'readonly': True}, + 'public_key_hash': {'readonly': True}, + 'hosting_environment_profile': {'readonly': True}, + 'key_vault_secret_status': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'password': {'key': 'properties.password', 'type': 'str'}, + 'friendly_name': {'key': 'properties.friendlyName', 'type': 'str'}, + 'subject_name': {'key': 'properties.subjectName', 'type': 'str'}, + 'host_names': {'key': 'properties.hostNames', 'type': '[str]'}, + 'pfx_blob': {'key': 'properties.pfxBlob', 'type': 'bytearray'}, + 'site_name': {'key': 'properties.siteName', 'type': 'str'}, + 'self_link': {'key': 'properties.selfLink', 'type': 'str'}, + 'issuer': {'key': 'properties.issuer', 'type': 'str'}, + 'issue_date': {'key': 'properties.issueDate', 'type': 'iso-8601'}, + 'expiration_date': {'key': 'properties.expirationDate', 'type': 'iso-8601'}, + 'thumbprint': {'key': 'properties.thumbprint', 'type': 'str'}, + 'valid': {'key': 'properties.valid', 'type': 'bool'}, + 'cer_blob': {'key': 'properties.cerBlob', 'type': 'bytearray'}, + 'public_key_hash': {'key': 'properties.publicKeyHash', 'type': 'str'}, + 'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'}, + 'key_vault_id': {'key': 'properties.keyVaultId', 'type': 'str'}, + 'key_vault_secret_name': {'key': 'properties.keyVaultSecretName', 'type': 'str'}, + 'key_vault_secret_status': {'key': 'properties.keyVaultSecretStatus', 'type': 'str'}, + 'server_farm_id': {'key': 'properties.serverFarmId', 'type': 'str'}, + 'canonical_name': {'key': 'properties.canonicalName', 'type': 'str'}, + 'domain_validation_method': {'key': 'properties.domainValidationMethod', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Certificate, self).__init__(**kwargs) + self.password = kwargs.get('password', None) + self.friendly_name = None + self.subject_name = None + self.host_names = kwargs.get('host_names', None) + self.pfx_blob = kwargs.get('pfx_blob', None) + self.site_name = None + self.self_link = None + self.issuer = None + self.issue_date = None + self.expiration_date = None + self.thumbprint = None + self.valid = None + self.cer_blob = None + self.public_key_hash = None + self.hosting_environment_profile = None + self.key_vault_id = kwargs.get('key_vault_id', None) + self.key_vault_secret_name = kwargs.get('key_vault_secret_name', None) + self.key_vault_secret_status = None + self.server_farm_id = kwargs.get('server_farm_id', None) + self.canonical_name = kwargs.get('canonical_name', None) + self.domain_validation_method = kwargs.get('domain_validation_method', None) + + +class CertificateCollection(msrest.serialization.Model): + """Collection of certificates. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.Certificate] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Certificate]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(CertificateCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class CertificateDetails(msrest.serialization.Model): + """SSL certificate details. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar version: Certificate Version. + :vartype version: int + :ivar serial_number: Certificate Serial Number. + :vartype serial_number: str + :ivar thumbprint: Certificate Thumbprint. + :vartype thumbprint: str + :ivar subject: Certificate Subject. + :vartype subject: str + :ivar not_before: Date Certificate is valid from. + :vartype not_before: ~datetime.datetime + :ivar not_after: Date Certificate is valid to. + :vartype not_after: ~datetime.datetime + :ivar signature_algorithm: Certificate Signature algorithm. + :vartype signature_algorithm: str + :ivar issuer: Certificate Issuer. + :vartype issuer: str + :ivar raw_data: Raw certificate data. + :vartype raw_data: str + """ + + _validation = { + 'version': {'readonly': True}, + 'serial_number': {'readonly': True}, + 'thumbprint': {'readonly': True}, + 'subject': {'readonly': True}, + 'not_before': {'readonly': True}, + 'not_after': {'readonly': True}, + 'signature_algorithm': {'readonly': True}, + 'issuer': {'readonly': True}, + 'raw_data': {'readonly': True}, + } + + _attribute_map = { + 'version': {'key': 'version', 'type': 'int'}, + 'serial_number': {'key': 'serialNumber', 'type': 'str'}, + 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, + 'subject': {'key': 'subject', 'type': 'str'}, + 'not_before': {'key': 'notBefore', 'type': 'iso-8601'}, + 'not_after': {'key': 'notAfter', 'type': 'iso-8601'}, + 'signature_algorithm': {'key': 'signatureAlgorithm', 'type': 'str'}, + 'issuer': {'key': 'issuer', 'type': 'str'}, + 'raw_data': {'key': 'rawData', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(CertificateDetails, self).__init__(**kwargs) + self.version = None + self.serial_number = None + self.thumbprint = None + self.subject = None + self.not_before = None + self.not_after = None + self.signature_algorithm = None + self.issuer = None + self.raw_data = None + + +class CertificateEmail(ProxyOnlyResource): + """SSL certificate email. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param email_id: Email id. + :type email_id: str + :param time_stamp: Time stamp. + :type time_stamp: ~datetime.datetime + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'email_id': {'key': 'properties.emailId', 'type': 'str'}, + 'time_stamp': {'key': 'properties.timeStamp', 'type': 'iso-8601'}, + } + + def __init__( + self, + **kwargs + ): + super(CertificateEmail, self).__init__(**kwargs) + self.email_id = kwargs.get('email_id', None) + self.time_stamp = kwargs.get('time_stamp', None) + + +class CertificateOrderAction(ProxyOnlyResource): + """Certificate order action. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar action_type: Action type. Possible values include: "CertificateIssued", + "CertificateOrderCanceled", "CertificateOrderCreated", "CertificateRevoked", + "DomainValidationComplete", "FraudDetected", "OrgNameChange", "OrgValidationComplete", + "SanDrop", "FraudCleared", "CertificateExpired", "CertificateExpirationWarning", + "FraudDocumentationRequired", "Unknown". + :vartype action_type: str or ~azure.mgmt.web.v2021_01_15.models.CertificateOrderActionType + :ivar created_at: Time at which the certificate action was performed. + :vartype created_at: ~datetime.datetime + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'action_type': {'readonly': True}, + 'created_at': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'action_type': {'key': 'properties.actionType', 'type': 'str'}, + 'created_at': {'key': 'properties.createdAt', 'type': 'iso-8601'}, + } + + def __init__( + self, + **kwargs + ): + super(CertificateOrderAction, self).__init__(**kwargs) + self.action_type = None + self.created_at = None + + +class CertificateOrderContact(msrest.serialization.Model): + """CertificateOrderContact. + + :param email: + :type email: str + :param name_first: + :type name_first: str + :param name_last: + :type name_last: str + :param phone: + :type phone: str + """ + + _attribute_map = { + 'email': {'key': 'email', 'type': 'str'}, + 'name_first': {'key': 'nameFirst', 'type': 'str'}, + 'name_last': {'key': 'nameLast', 'type': 'str'}, + 'phone': {'key': 'phone', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(CertificateOrderContact, self).__init__(**kwargs) + self.email = kwargs.get('email', None) + self.name_first = kwargs.get('name_first', None) + self.name_last = kwargs.get('name_last', None) + self.phone = kwargs.get('phone', None) + + +class CertificatePatchResource(ProxyOnlyResource): + """ARM resource for a certificate. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param password: Certificate password. + :type password: str + :ivar friendly_name: Friendly name of the certificate. + :vartype friendly_name: str + :ivar subject_name: Subject name of the certificate. + :vartype subject_name: str + :param host_names: Host names the certificate applies to. + :type host_names: list[str] + :param pfx_blob: Pfx blob. + :type pfx_blob: bytearray + :ivar site_name: App name. + :vartype site_name: str + :ivar self_link: Self link. + :vartype self_link: str + :ivar issuer: Certificate issuer. + :vartype issuer: str + :ivar issue_date: Certificate issue Date. + :vartype issue_date: ~datetime.datetime + :ivar expiration_date: Certificate expiration date. + :vartype expiration_date: ~datetime.datetime + :ivar thumbprint: Certificate thumbprint. + :vartype thumbprint: str + :ivar valid: Is the certificate valid?. + :vartype valid: bool + :ivar cer_blob: Raw bytes of .cer file. + :vartype cer_blob: bytearray + :ivar public_key_hash: Public key hash. + :vartype public_key_hash: str + :ivar hosting_environment_profile: Specification for the App Service Environment to use for the + certificate. + :vartype hosting_environment_profile: + ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentProfile + :param key_vault_id: Key Vault Csm resource Id. + :type key_vault_id: str + :param key_vault_secret_name: Key Vault secret name. + :type key_vault_secret_name: str + :ivar key_vault_secret_status: Status of the Key Vault secret. Possible values include: + "Initialized", "WaitingOnCertificateOrder", "Succeeded", "CertificateOrderFailed", + "OperationNotPermittedOnKeyVault", "AzureServiceUnauthorizedToAccessKeyVault", + "KeyVaultDoesNotExist", "KeyVaultSecretDoesNotExist", "UnknownError", "ExternalPrivateKey", + "Unknown". + :vartype key_vault_secret_status: str or + ~azure.mgmt.web.v2021_01_15.models.KeyVaultSecretStatus + :param server_farm_id: Resource ID of the associated App Service plan, formatted as: + "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". + :type server_farm_id: str + :param canonical_name: CNAME of the certificate to be issued via free certificate. + :type canonical_name: str + :param domain_validation_method: Method of domain validation for free cert. + :type domain_validation_method: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'friendly_name': {'readonly': True}, + 'subject_name': {'readonly': True}, + 'site_name': {'readonly': True}, + 'self_link': {'readonly': True}, + 'issuer': {'readonly': True}, + 'issue_date': {'readonly': True}, + 'expiration_date': {'readonly': True}, + 'thumbprint': {'readonly': True}, + 'valid': {'readonly': True}, + 'cer_blob': {'readonly': True}, + 'public_key_hash': {'readonly': True}, + 'hosting_environment_profile': {'readonly': True}, + 'key_vault_secret_status': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'password': {'key': 'properties.password', 'type': 'str'}, + 'friendly_name': {'key': 'properties.friendlyName', 'type': 'str'}, + 'subject_name': {'key': 'properties.subjectName', 'type': 'str'}, + 'host_names': {'key': 'properties.hostNames', 'type': '[str]'}, + 'pfx_blob': {'key': 'properties.pfxBlob', 'type': 'bytearray'}, + 'site_name': {'key': 'properties.siteName', 'type': 'str'}, + 'self_link': {'key': 'properties.selfLink', 'type': 'str'}, + 'issuer': {'key': 'properties.issuer', 'type': 'str'}, + 'issue_date': {'key': 'properties.issueDate', 'type': 'iso-8601'}, + 'expiration_date': {'key': 'properties.expirationDate', 'type': 'iso-8601'}, + 'thumbprint': {'key': 'properties.thumbprint', 'type': 'str'}, + 'valid': {'key': 'properties.valid', 'type': 'bool'}, + 'cer_blob': {'key': 'properties.cerBlob', 'type': 'bytearray'}, + 'public_key_hash': {'key': 'properties.publicKeyHash', 'type': 'str'}, + 'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'}, + 'key_vault_id': {'key': 'properties.keyVaultId', 'type': 'str'}, + 'key_vault_secret_name': {'key': 'properties.keyVaultSecretName', 'type': 'str'}, + 'key_vault_secret_status': {'key': 'properties.keyVaultSecretStatus', 'type': 'str'}, + 'server_farm_id': {'key': 'properties.serverFarmId', 'type': 'str'}, + 'canonical_name': {'key': 'properties.canonicalName', 'type': 'str'}, + 'domain_validation_method': {'key': 'properties.domainValidationMethod', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(CertificatePatchResource, self).__init__(**kwargs) + self.password = kwargs.get('password', None) + self.friendly_name = None + self.subject_name = None + self.host_names = kwargs.get('host_names', None) + self.pfx_blob = kwargs.get('pfx_blob', None) + self.site_name = None + self.self_link = None + self.issuer = None + self.issue_date = None + self.expiration_date = None + self.thumbprint = None + self.valid = None + self.cer_blob = None + self.public_key_hash = None + self.hosting_environment_profile = None + self.key_vault_id = kwargs.get('key_vault_id', None) + self.key_vault_secret_name = kwargs.get('key_vault_secret_name', None) + self.key_vault_secret_status = None + self.server_farm_id = kwargs.get('server_farm_id', None) + self.canonical_name = kwargs.get('canonical_name', None) + self.domain_validation_method = kwargs.get('domain_validation_method', None) + + +class ClientRegistration(ProxyOnlyResource): + """The configuration settings of the app registration for providers that have client ids and client secrets. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param client_id: The Client ID of the app used for login. + :type client_id: str + :param client_secret_setting_name: The app setting name that contains the client secret. + :type client_secret_setting_name: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'client_id': {'key': 'properties.clientId', 'type': 'str'}, + 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ClientRegistration, self).__init__(**kwargs) + self.client_id = kwargs.get('client_id', None) + self.client_secret_setting_name = kwargs.get('client_secret_setting_name', None) + + +class CloningInfo(msrest.serialization.Model): + """Information needed for cloning operation. + + All required parameters must be populated in order to send to Azure. + + :param correlation_id: Correlation ID of cloning operation. This ID ties multiple cloning + operations + together to use the same snapshot. + :type correlation_id: str + :param overwrite: :code:`true` to overwrite destination app; otherwise, + :code:`false`. + :type overwrite: bool + :param clone_custom_host_names: :code:`true` to clone custom hostnames from source + app; otherwise, :code:`false`. + :type clone_custom_host_names: bool + :param clone_source_control: :code:`true` to clone source control from source app; + otherwise, :code:`false`. + :type clone_source_control: bool + :param source_web_app_id: Required. ARM resource ID of the source app. App resource ID is of + the form + /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} + for production slots and + /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} + for other slots. + :type source_web_app_id: str + :param source_web_app_location: Location of source app ex: West US or North Europe. + :type source_web_app_location: str + :param hosting_environment: App Service Environment. + :type hosting_environment: str + :param app_settings_overrides: Application setting overrides for cloned app. If specified, + these settings override the settings cloned + from source app. Otherwise, application settings from source app are retained. + :type app_settings_overrides: dict[str, str] + :param configure_load_balancing: :code:`true` to configure load balancing for + source and destination app. + :type configure_load_balancing: bool + :param traffic_manager_profile_id: ARM resource ID of the Traffic Manager profile to use, if it + exists. Traffic Manager resource ID is of the form + /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. + :type traffic_manager_profile_id: str + :param traffic_manager_profile_name: Name of Traffic Manager profile to create. This is only + needed if Traffic Manager profile does not already exist. + :type traffic_manager_profile_name: str + """ + + _validation = { + 'source_web_app_id': {'required': True}, + } + + _attribute_map = { + 'correlation_id': {'key': 'correlationId', 'type': 'str'}, + 'overwrite': {'key': 'overwrite', 'type': 'bool'}, + 'clone_custom_host_names': {'key': 'cloneCustomHostNames', 'type': 'bool'}, + 'clone_source_control': {'key': 'cloneSourceControl', 'type': 'bool'}, + 'source_web_app_id': {'key': 'sourceWebAppId', 'type': 'str'}, + 'source_web_app_location': {'key': 'sourceWebAppLocation', 'type': 'str'}, + 'hosting_environment': {'key': 'hostingEnvironment', 'type': 'str'}, + 'app_settings_overrides': {'key': 'appSettingsOverrides', 'type': '{str}'}, + 'configure_load_balancing': {'key': 'configureLoadBalancing', 'type': 'bool'}, + 'traffic_manager_profile_id': {'key': 'trafficManagerProfileId', 'type': 'str'}, + 'traffic_manager_profile_name': {'key': 'trafficManagerProfileName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(CloningInfo, self).__init__(**kwargs) + self.correlation_id = kwargs.get('correlation_id', None) + self.overwrite = kwargs.get('overwrite', None) + self.clone_custom_host_names = kwargs.get('clone_custom_host_names', None) + self.clone_source_control = kwargs.get('clone_source_control', None) + self.source_web_app_id = kwargs['source_web_app_id'] + self.source_web_app_location = kwargs.get('source_web_app_location', None) + self.hosting_environment = kwargs.get('hosting_environment', None) + self.app_settings_overrides = kwargs.get('app_settings_overrides', None) + self.configure_load_balancing = kwargs.get('configure_load_balancing', None) + self.traffic_manager_profile_id = kwargs.get('traffic_manager_profile_id', None) + self.traffic_manager_profile_name = kwargs.get('traffic_manager_profile_name', None) + + +class ConnectionStringDictionary(ProxyOnlyResource): + """String dictionary resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param properties: Connection strings. + :type properties: dict[str, ~azure.mgmt.web.v2021_01_15.models.ConnStringValueTypePair] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': '{ConnStringValueTypePair}'}, + } + + def __init__( + self, + **kwargs + ): + super(ConnectionStringDictionary, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) + + +class ConnStringInfo(msrest.serialization.Model): + """Database connection string information. + + :param name: Name of connection string. + :type name: str + :param connection_string: Connection string value. + :type connection_string: str + :param type: Type of database. Possible values include: "MySql", "SQLServer", "SQLAzure", + "Custom", "NotificationHub", "ServiceBus", "EventHub", "ApiHub", "DocDb", "RedisCache", + "PostgreSQL". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.ConnectionStringType + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'connection_string': {'key': 'connectionString', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ConnStringInfo, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.connection_string = kwargs.get('connection_string', None) + self.type = kwargs.get('type', None) + + +class ConnStringValueTypePair(msrest.serialization.Model): + """Database connection string value to type pair. + + All required parameters must be populated in order to send to Azure. + + :param value: Required. Value of pair. + :type value: str + :param type: Required. Type of database. Possible values include: "MySql", "SQLServer", + "SQLAzure", "Custom", "NotificationHub", "ServiceBus", "EventHub", "ApiHub", "DocDb", + "RedisCache", "PostgreSQL". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.ConnectionStringType + """ + + _validation = { + 'value': {'required': True}, + 'type': {'required': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ConnStringValueTypePair, self).__init__(**kwargs) + self.value = kwargs['value'] + self.type = kwargs['type'] + + +class Contact(msrest.serialization.Model): + """Contact information for domain registration. If 'Domain Privacy' option is not selected then the contact information is made publicly available through the Whois +directories as per ICANN requirements. + + All required parameters must be populated in order to send to Azure. + + :param address_mailing: Mailing address. + :type address_mailing: ~azure.mgmt.web.v2021_01_15.models.Address + :param email: Required. Email address. + :type email: str + :param fax: Fax number. + :type fax: str + :param job_title: Job title. + :type job_title: str + :param name_first: Required. First name. + :type name_first: str + :param name_last: Required. Last name. + :type name_last: str + :param name_middle: Middle name. + :type name_middle: str + :param organization: Organization contact belongs to. + :type organization: str + :param phone: Required. Phone number. + :type phone: str + """ + + _validation = { + 'email': {'required': True}, + 'name_first': {'required': True}, + 'name_last': {'required': True}, + 'phone': {'required': True}, + } + + _attribute_map = { + 'address_mailing': {'key': 'addressMailing', 'type': 'Address'}, + 'email': {'key': 'email', 'type': 'str'}, + 'fax': {'key': 'fax', 'type': 'str'}, + 'job_title': {'key': 'jobTitle', 'type': 'str'}, + 'name_first': {'key': 'nameFirst', 'type': 'str'}, + 'name_last': {'key': 'nameLast', 'type': 'str'}, + 'name_middle': {'key': 'nameMiddle', 'type': 'str'}, + 'organization': {'key': 'organization', 'type': 'str'}, + 'phone': {'key': 'phone', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Contact, self).__init__(**kwargs) + self.address_mailing = kwargs.get('address_mailing', None) + self.email = kwargs['email'] + self.fax = kwargs.get('fax', None) + self.job_title = kwargs.get('job_title', None) + self.name_first = kwargs['name_first'] + self.name_last = kwargs['name_last'] + self.name_middle = kwargs.get('name_middle', None) + self.organization = kwargs.get('organization', None) + self.phone = kwargs['phone'] + + +class ContainerCpuStatistics(msrest.serialization.Model): + """ContainerCpuStatistics. + + :param cpu_usage: + :type cpu_usage: ~azure.mgmt.web.v2021_01_15.models.ContainerCpuUsage + :param system_cpu_usage: + :type system_cpu_usage: long + :param online_cpu_count: + :type online_cpu_count: int + :param throttling_data: + :type throttling_data: ~azure.mgmt.web.v2021_01_15.models.ContainerThrottlingData + """ + + _attribute_map = { + 'cpu_usage': {'key': 'cpuUsage', 'type': 'ContainerCpuUsage'}, + 'system_cpu_usage': {'key': 'systemCpuUsage', 'type': 'long'}, + 'online_cpu_count': {'key': 'onlineCpuCount', 'type': 'int'}, + 'throttling_data': {'key': 'throttlingData', 'type': 'ContainerThrottlingData'}, + } + + def __init__( + self, + **kwargs + ): + super(ContainerCpuStatistics, self).__init__(**kwargs) + self.cpu_usage = kwargs.get('cpu_usage', None) + self.system_cpu_usage = kwargs.get('system_cpu_usage', None) + self.online_cpu_count = kwargs.get('online_cpu_count', None) + self.throttling_data = kwargs.get('throttling_data', None) + + +class ContainerCpuUsage(msrest.serialization.Model): + """ContainerCpuUsage. + + :param total_usage: + :type total_usage: long + :param per_cpu_usage: + :type per_cpu_usage: list[long] + :param kernel_mode_usage: + :type kernel_mode_usage: long + :param user_mode_usage: + :type user_mode_usage: long + """ + + _attribute_map = { + 'total_usage': {'key': 'totalUsage', 'type': 'long'}, + 'per_cpu_usage': {'key': 'perCpuUsage', 'type': '[long]'}, + 'kernel_mode_usage': {'key': 'kernelModeUsage', 'type': 'long'}, + 'user_mode_usage': {'key': 'userModeUsage', 'type': 'long'}, + } + + def __init__( + self, + **kwargs + ): + super(ContainerCpuUsage, self).__init__(**kwargs) + self.total_usage = kwargs.get('total_usage', None) + self.per_cpu_usage = kwargs.get('per_cpu_usage', None) + self.kernel_mode_usage = kwargs.get('kernel_mode_usage', None) + self.user_mode_usage = kwargs.get('user_mode_usage', None) + + +class ContainerInfo(msrest.serialization.Model): + """ContainerInfo. + + :param current_time_stamp: + :type current_time_stamp: ~datetime.datetime + :param previous_time_stamp: + :type previous_time_stamp: ~datetime.datetime + :param current_cpu_stats: + :type current_cpu_stats: ~azure.mgmt.web.v2021_01_15.models.ContainerCpuStatistics + :param previous_cpu_stats: + :type previous_cpu_stats: ~azure.mgmt.web.v2021_01_15.models.ContainerCpuStatistics + :param memory_stats: + :type memory_stats: ~azure.mgmt.web.v2021_01_15.models.ContainerMemoryStatistics + :param name: + :type name: str + :param id: + :type id: str + :param eth0: + :type eth0: ~azure.mgmt.web.v2021_01_15.models.ContainerNetworkInterfaceStatistics + """ + + _attribute_map = { + 'current_time_stamp': {'key': 'currentTimeStamp', 'type': 'iso-8601'}, + 'previous_time_stamp': {'key': 'previousTimeStamp', 'type': 'iso-8601'}, + 'current_cpu_stats': {'key': 'currentCpuStats', 'type': 'ContainerCpuStatistics'}, + 'previous_cpu_stats': {'key': 'previousCpuStats', 'type': 'ContainerCpuStatistics'}, + 'memory_stats': {'key': 'memoryStats', 'type': 'ContainerMemoryStatistics'}, + 'name': {'key': 'name', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'eth0': {'key': 'eth0', 'type': 'ContainerNetworkInterfaceStatistics'}, + } + + def __init__( + self, + **kwargs + ): + super(ContainerInfo, self).__init__(**kwargs) + self.current_time_stamp = kwargs.get('current_time_stamp', None) + self.previous_time_stamp = kwargs.get('previous_time_stamp', None) + self.current_cpu_stats = kwargs.get('current_cpu_stats', None) + self.previous_cpu_stats = kwargs.get('previous_cpu_stats', None) + self.memory_stats = kwargs.get('memory_stats', None) + self.name = kwargs.get('name', None) + self.id = kwargs.get('id', None) + self.eth0 = kwargs.get('eth0', None) + + +class ContainerMemoryStatistics(msrest.serialization.Model): + """ContainerMemoryStatistics. + + :param usage: + :type usage: long + :param max_usage: + :type max_usage: long + :param limit: + :type limit: long + """ + + _attribute_map = { + 'usage': {'key': 'usage', 'type': 'long'}, + 'max_usage': {'key': 'maxUsage', 'type': 'long'}, + 'limit': {'key': 'limit', 'type': 'long'}, + } + + def __init__( + self, + **kwargs + ): + super(ContainerMemoryStatistics, self).__init__(**kwargs) + self.usage = kwargs.get('usage', None) + self.max_usage = kwargs.get('max_usage', None) + self.limit = kwargs.get('limit', None) + + +class ContainerNetworkInterfaceStatistics(msrest.serialization.Model): + """ContainerNetworkInterfaceStatistics. + + :param rx_bytes: + :type rx_bytes: long + :param rx_packets: + :type rx_packets: long + :param rx_errors: + :type rx_errors: long + :param rx_dropped: + :type rx_dropped: long + :param tx_bytes: + :type tx_bytes: long + :param tx_packets: + :type tx_packets: long + :param tx_errors: + :type tx_errors: long + :param tx_dropped: + :type tx_dropped: long + """ + + _attribute_map = { + 'rx_bytes': {'key': 'rxBytes', 'type': 'long'}, + 'rx_packets': {'key': 'rxPackets', 'type': 'long'}, + 'rx_errors': {'key': 'rxErrors', 'type': 'long'}, + 'rx_dropped': {'key': 'rxDropped', 'type': 'long'}, + 'tx_bytes': {'key': 'txBytes', 'type': 'long'}, + 'tx_packets': {'key': 'txPackets', 'type': 'long'}, + 'tx_errors': {'key': 'txErrors', 'type': 'long'}, + 'tx_dropped': {'key': 'txDropped', 'type': 'long'}, + } + + def __init__( + self, + **kwargs + ): + super(ContainerNetworkInterfaceStatistics, self).__init__(**kwargs) + self.rx_bytes = kwargs.get('rx_bytes', None) + self.rx_packets = kwargs.get('rx_packets', None) + self.rx_errors = kwargs.get('rx_errors', None) + self.rx_dropped = kwargs.get('rx_dropped', None) + self.tx_bytes = kwargs.get('tx_bytes', None) + self.tx_packets = kwargs.get('tx_packets', None) + self.tx_errors = kwargs.get('tx_errors', None) + self.tx_dropped = kwargs.get('tx_dropped', None) + + +class ContainerThrottlingData(msrest.serialization.Model): + """ContainerThrottlingData. + + :param periods: + :type periods: int + :param throttled_periods: + :type throttled_periods: int + :param throttled_time: + :type throttled_time: int + """ + + _attribute_map = { + 'periods': {'key': 'periods', 'type': 'int'}, + 'throttled_periods': {'key': 'throttledPeriods', 'type': 'int'}, + 'throttled_time': {'key': 'throttledTime', 'type': 'int'}, + } + + def __init__( + self, + **kwargs + ): + super(ContainerThrottlingData, self).__init__(**kwargs) + self.periods = kwargs.get('periods', None) + self.throttled_periods = kwargs.get('throttled_periods', None) + self.throttled_time = kwargs.get('throttled_time', None) + + +class ContinuousWebJob(ProxyOnlyResource): + """Continuous Web Job Information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param status: Job status. Possible values include: "Initializing", "Starting", "Running", + "PendingRestart", "Stopped". + :type status: str or ~azure.mgmt.web.v2021_01_15.models.ContinuousWebJobStatus + :param detailed_status: Detailed status. + :type detailed_status: str + :param log_url: Log URL. + :type log_url: str + :param run_command: Run command. + :type run_command: str + :param url: Job URL. + :type url: str + :param extra_info_url: Extra Info URL. + :type extra_info_url: str + :param web_job_type: Job type. Possible values include: "Continuous", "Triggered". + :type web_job_type: str or ~azure.mgmt.web.v2021_01_15.models.WebJobType + :param error: Error information. + :type error: str + :param using_sdk: Using SDK?. + :type using_sdk: bool + :param settings: Job settings. + :type settings: dict[str, any] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'detailed_status': {'key': 'properties.detailed_status', 'type': 'str'}, + 'log_url': {'key': 'properties.log_url', 'type': 'str'}, + 'run_command': {'key': 'properties.run_command', 'type': 'str'}, + 'url': {'key': 'properties.url', 'type': 'str'}, + 'extra_info_url': {'key': 'properties.extra_info_url', 'type': 'str'}, + 'web_job_type': {'key': 'properties.web_job_type', 'type': 'str'}, + 'error': {'key': 'properties.error', 'type': 'str'}, + 'using_sdk': {'key': 'properties.using_sdk', 'type': 'bool'}, + 'settings': {'key': 'properties.settings', 'type': '{object}'}, + } + + def __init__( + self, + **kwargs + ): + super(ContinuousWebJob, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.detailed_status = kwargs.get('detailed_status', None) + self.log_url = kwargs.get('log_url', None) + self.run_command = kwargs.get('run_command', None) + self.url = kwargs.get('url', None) + self.extra_info_url = kwargs.get('extra_info_url', None) + self.web_job_type = kwargs.get('web_job_type', None) + self.error = kwargs.get('error', None) + self.using_sdk = kwargs.get('using_sdk', None) + self.settings = kwargs.get('settings', None) + + +class ContinuousWebJobCollection(msrest.serialization.Model): + """Collection of Kudu continuous web job information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.ContinuousWebJob] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ContinuousWebJob]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ContinuousWebJobCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class CookieExpiration(ProxyOnlyResource): + """The configuration settings of the session cookie's expiration. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param convention: The convention used when determining the session cookie's expiration. + Possible values include: "FixedTime", "IdentityProviderDerived". + :type convention: str or ~azure.mgmt.web.v2021_01_15.models.CookieExpirationConvention + :param time_to_expiration: The time after the request is made when the session cookie should + expire. + :type time_to_expiration: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'convention': {'key': 'properties.convention', 'type': 'str'}, + 'time_to_expiration': {'key': 'properties.timeToExpiration', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(CookieExpiration, self).__init__(**kwargs) + self.convention = kwargs.get('convention', None) + self.time_to_expiration = kwargs.get('time_to_expiration', None) + + +class CorsSettings(msrest.serialization.Model): + """Cross-Origin Resource Sharing (CORS) settings for the app. + + :param allowed_origins: Gets or sets the list of origins that should be allowed to make + cross-origin + calls (for example: http://example.com:12345). Use "*" to allow all. + :type allowed_origins: list[str] + :param support_credentials: Gets or sets whether CORS requests with credentials are allowed. + See + https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials + for more details. + :type support_credentials: bool + """ + + _attribute_map = { + 'allowed_origins': {'key': 'allowedOrigins', 'type': '[str]'}, + 'support_credentials': {'key': 'supportCredentials', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(CorsSettings, self).__init__(**kwargs) + self.allowed_origins = kwargs.get('allowed_origins', None) + self.support_credentials = kwargs.get('support_credentials', None) + + +class CsmMoveResourceEnvelope(msrest.serialization.Model): + """Object with a list of the resources that need to be moved and the resource group they should be moved to. + + :param target_resource_group: + :type target_resource_group: str + :param resources: + :type resources: list[str] + """ + + _validation = { + 'target_resource_group': {'max_length': 90, 'min_length': 1, 'pattern': r' ^[-\w\._\(\)]+[^\.]$'}, + } + + _attribute_map = { + 'target_resource_group': {'key': 'targetResourceGroup', 'type': 'str'}, + 'resources': {'key': 'resources', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(CsmMoveResourceEnvelope, self).__init__(**kwargs) + self.target_resource_group = kwargs.get('target_resource_group', None) + self.resources = kwargs.get('resources', None) + + +class CsmOperationCollection(msrest.serialization.Model): + """Collection of Azure resource manager operation metadata. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.CsmOperationDescription] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[CsmOperationDescription]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(CsmOperationCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class CsmOperationDescription(msrest.serialization.Model): + """Description of an operation available for Microsoft.Web resource provider. + + :param name: + :type name: str + :param is_data_action: + :type is_data_action: bool + :param display: Meta data about operation used for display in portal. + :type display: ~azure.mgmt.web.v2021_01_15.models.CsmOperationDisplay + :param origin: + :type origin: str + :param properties: Properties available for a Microsoft.Web resource provider operation. + :type properties: ~azure.mgmt.web.v2021_01_15.models.CsmOperationDescriptionProperties + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'is_data_action': {'key': 'isDataAction', 'type': 'bool'}, + 'display': {'key': 'display', 'type': 'CsmOperationDisplay'}, + 'origin': {'key': 'origin', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'CsmOperationDescriptionProperties'}, + } + + def __init__( + self, + **kwargs + ): + super(CsmOperationDescription, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.is_data_action = kwargs.get('is_data_action', None) + self.display = kwargs.get('display', None) + self.origin = kwargs.get('origin', None) + self.properties = kwargs.get('properties', None) + + +class CsmOperationDescriptionProperties(msrest.serialization.Model): + """Properties available for a Microsoft.Web resource provider operation. + + :param service_specification: Resource metrics service provided by Microsoft.Insights resource + provider. + :type service_specification: ~azure.mgmt.web.v2021_01_15.models.ServiceSpecification + """ + + _attribute_map = { + 'service_specification': {'key': 'serviceSpecification', 'type': 'ServiceSpecification'}, + } + + def __init__( + self, + **kwargs + ): + super(CsmOperationDescriptionProperties, self).__init__(**kwargs) + self.service_specification = kwargs.get('service_specification', None) + + +class CsmOperationDisplay(msrest.serialization.Model): + """Meta data about operation used for display in portal. + + :param provider: + :type provider: str + :param resource: + :type resource: str + :param operation: + :type operation: str + :param description: + :type description: str + """ + + _attribute_map = { + 'provider': {'key': 'provider', 'type': 'str'}, + 'resource': {'key': 'resource', 'type': 'str'}, + 'operation': {'key': 'operation', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(CsmOperationDisplay, self).__init__(**kwargs) + self.provider = kwargs.get('provider', None) + self.resource = kwargs.get('resource', None) + self.operation = kwargs.get('operation', None) + self.description = kwargs.get('description', None) + + +class CsmPublishingCredentialsPoliciesEntity(ProxyOnlyResource): + """Publishing Credentials Policies parameters. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param allow: :code:`true` to allow access to a publishing method; otherwise, + :code:`false`. + :type allow: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'allow': {'key': 'properties.allow', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(CsmPublishingCredentialsPoliciesEntity, self).__init__(**kwargs) + self.allow = kwargs.get('allow', None) + + +class CsmPublishingProfileOptions(msrest.serialization.Model): + """Publishing options for requested profile. + + :param format: Name of the format. Valid values are: + FileZilla3 + WebDeploy -- default + Ftp. Possible values include: "FileZilla3", "WebDeploy", "Ftp". + :type format: str or ~azure.mgmt.web.v2021_01_15.models.PublishingProfileFormat + :param include_disaster_recovery_endpoints: Include the DisasterRecover endpoint if true. + :type include_disaster_recovery_endpoints: bool + """ + + _attribute_map = { + 'format': {'key': 'format', 'type': 'str'}, + 'include_disaster_recovery_endpoints': {'key': 'includeDisasterRecoveryEndpoints', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(CsmPublishingProfileOptions, self).__init__(**kwargs) + self.format = kwargs.get('format', None) + self.include_disaster_recovery_endpoints = kwargs.get('include_disaster_recovery_endpoints', None) + + +class CsmSlotEntity(msrest.serialization.Model): + """Deployment slot parameters. + + All required parameters must be populated in order to send to Azure. + + :param target_slot: Required. Destination deployment slot during swap operation. + :type target_slot: str + :param preserve_vnet: Required. :code:`true` to preserve Virtual Network to the + slot during swap; otherwise, :code:`false`. + :type preserve_vnet: bool + """ + + _validation = { + 'target_slot': {'required': True}, + 'preserve_vnet': {'required': True}, + } + + _attribute_map = { + 'target_slot': {'key': 'targetSlot', 'type': 'str'}, + 'preserve_vnet': {'key': 'preserveVnet', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(CsmSlotEntity, self).__init__(**kwargs) + self.target_slot = kwargs['target_slot'] + self.preserve_vnet = kwargs['preserve_vnet'] + + +class CsmUsageQuota(msrest.serialization.Model): + """Usage of the quota resource. + + :param unit: Units of measurement for the quota resource. + :type unit: str + :param next_reset_time: Next reset time for the resource counter. + :type next_reset_time: ~datetime.datetime + :param current_value: The current value of the resource counter. + :type current_value: long + :param limit: The resource limit. + :type limit: long + :param name: Quota name. + :type name: ~azure.mgmt.web.v2021_01_15.models.LocalizableString + """ + + _attribute_map = { + 'unit': {'key': 'unit', 'type': 'str'}, + 'next_reset_time': {'key': 'nextResetTime', 'type': 'iso-8601'}, + 'current_value': {'key': 'currentValue', 'type': 'long'}, + 'limit': {'key': 'limit', 'type': 'long'}, + 'name': {'key': 'name', 'type': 'LocalizableString'}, + } + + def __init__( + self, + **kwargs + ): + super(CsmUsageQuota, self).__init__(**kwargs) + self.unit = kwargs.get('unit', None) + self.next_reset_time = kwargs.get('next_reset_time', None) + self.current_value = kwargs.get('current_value', None) + self.limit = kwargs.get('limit', None) + self.name = kwargs.get('name', None) + + +class CsmUsageQuotaCollection(msrest.serialization.Model): + """Collection of CSM usage quotas. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.CsmUsageQuota] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[CsmUsageQuota]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(CsmUsageQuotaCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class CustomHostnameAnalysisResult(ProxyOnlyResource): + """Custom domain analysis. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar is_hostname_already_verified: :code:`true` if hostname is already verified; + otherwise, :code:`false`. + :vartype is_hostname_already_verified: bool + :ivar custom_domain_verification_test: DNS verification test result. Possible values include: + "Passed", "Failed", "Skipped". + :vartype custom_domain_verification_test: str or + ~azure.mgmt.web.v2021_01_15.models.DnsVerificationTestResult + :ivar custom_domain_verification_failure_info: Raw failure information if DNS verification + fails. + :vartype custom_domain_verification_failure_info: + ~azure.mgmt.web.v2021_01_15.models.ErrorEntity + :ivar has_conflict_on_scale_unit: :code:`true` if there is a conflict on a scale + unit; otherwise, :code:`false`. + :vartype has_conflict_on_scale_unit: bool + :ivar has_conflict_across_subscription: :code:`true` if there is a conflict across + subscriptions; otherwise, :code:`false`. + :vartype has_conflict_across_subscription: bool + :ivar conflicting_app_resource_id: Name of the conflicting app on scale unit if it's within the + same subscription. + :vartype conflicting_app_resource_id: str + :param c_name_records: CName records controller can see for this hostname. + :type c_name_records: list[str] + :param txt_records: TXT records controller can see for this hostname. + :type txt_records: list[str] + :param a_records: A records controller can see for this hostname. + :type a_records: list[str] + :param alternate_c_name_records: Alternate CName records controller can see for this hostname. + :type alternate_c_name_records: list[str] + :param alternate_txt_records: Alternate TXT records controller can see for this hostname. + :type alternate_txt_records: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'is_hostname_already_verified': {'readonly': True}, + 'custom_domain_verification_test': {'readonly': True}, + 'custom_domain_verification_failure_info': {'readonly': True}, + 'has_conflict_on_scale_unit': {'readonly': True}, + 'has_conflict_across_subscription': {'readonly': True}, + 'conflicting_app_resource_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'is_hostname_already_verified': {'key': 'properties.isHostnameAlreadyVerified', 'type': 'bool'}, + 'custom_domain_verification_test': {'key': 'properties.customDomainVerificationTest', 'type': 'str'}, + 'custom_domain_verification_failure_info': {'key': 'properties.customDomainVerificationFailureInfo', 'type': 'ErrorEntity'}, + 'has_conflict_on_scale_unit': {'key': 'properties.hasConflictOnScaleUnit', 'type': 'bool'}, + 'has_conflict_across_subscription': {'key': 'properties.hasConflictAcrossSubscription', 'type': 'bool'}, + 'conflicting_app_resource_id': {'key': 'properties.conflictingAppResourceId', 'type': 'str'}, + 'c_name_records': {'key': 'properties.cNameRecords', 'type': '[str]'}, + 'txt_records': {'key': 'properties.txtRecords', 'type': '[str]'}, + 'a_records': {'key': 'properties.aRecords', 'type': '[str]'}, + 'alternate_c_name_records': {'key': 'properties.alternateCNameRecords', 'type': '[str]'}, + 'alternate_txt_records': {'key': 'properties.alternateTxtRecords', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(CustomHostnameAnalysisResult, self).__init__(**kwargs) + self.is_hostname_already_verified = None + self.custom_domain_verification_test = None + self.custom_domain_verification_failure_info = None + self.has_conflict_on_scale_unit = None + self.has_conflict_across_subscription = None + self.conflicting_app_resource_id = None + self.c_name_records = kwargs.get('c_name_records', None) + self.txt_records = kwargs.get('txt_records', None) + self.a_records = kwargs.get('a_records', None) + self.alternate_c_name_records = kwargs.get('alternate_c_name_records', None) + self.alternate_txt_records = kwargs.get('alternate_txt_records', None) + + +class CustomOpenIdConnectProvider(ProxyOnlyResource): + """The configuration settings of the custom Open ID Connect provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the custom Open ID provider provider should not + be enabled; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the app registration for the custom Open ID + Connect provider. + :type registration: ~azure.mgmt.web.v2021_01_15.models.OpenIdConnectRegistration + :param login: The configuration settings of the login flow of the custom Open ID Connect + provider. + :type login: ~azure.mgmt.web.v2021_01_15.models.OpenIdConnectLogin + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'OpenIdConnectRegistration'}, + 'login': {'key': 'properties.login', 'type': 'OpenIdConnectLogin'}, + } + + def __init__( + self, + **kwargs + ): + super(CustomOpenIdConnectProvider, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.registration = kwargs.get('registration', None) + self.login = kwargs.get('login', None) + + +class DatabaseBackupSetting(msrest.serialization.Model): + """Database backup settings. + + All required parameters must be populated in order to send to Azure. + + :param database_type: Required. Database type (e.g. SqlAzure / MySql). Possible values include: + "SqlAzure", "MySql", "LocalMySql", "PostgreSql". + :type database_type: str or ~azure.mgmt.web.v2021_01_15.models.DatabaseType + :param name: + :type name: str + :param connection_string_name: Contains a connection string name that is linked to the + SiteConfig.ConnectionStrings. + This is used during restore with overwrite connection strings options. + :type connection_string_name: str + :param connection_string: Contains a connection string to a database which is being backed up + or restored. If the restore should happen to a new database, the database name inside is the + new one. + :type connection_string: str + """ + + _validation = { + 'database_type': {'required': True}, + } + + _attribute_map = { + 'database_type': {'key': 'databaseType', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'connection_string_name': {'key': 'connectionStringName', 'type': 'str'}, + 'connection_string': {'key': 'connectionString', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DatabaseBackupSetting, self).__init__(**kwargs) + self.database_type = kwargs['database_type'] + self.name = kwargs.get('name', None) + self.connection_string_name = kwargs.get('connection_string_name', None) + self.connection_string = kwargs.get('connection_string', None) + + +class DataProviderMetadata(msrest.serialization.Model): + """Additional configuration for a data providers. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param provider_name: + :type provider_name: str + :ivar property_bag: Settings for the data provider. + :vartype property_bag: list[~azure.mgmt.web.v2021_01_15.models.KeyValuePairStringObject] + """ + + _validation = { + 'property_bag': {'readonly': True}, + } + + _attribute_map = { + 'provider_name': {'key': 'providerName', 'type': 'str'}, + 'property_bag': {'key': 'propertyBag', 'type': '[KeyValuePairStringObject]'}, + } + + def __init__( + self, + **kwargs + ): + super(DataProviderMetadata, self).__init__(**kwargs) + self.provider_name = kwargs.get('provider_name', None) + self.property_bag = None + + +class DataSource(msrest.serialization.Model): + """Class representing data source used by the detectors. + + :param instructions: Instructions if any for the data source. + :type instructions: list[str] + :param data_source_uri: Datasource Uri Links. + :type data_source_uri: list[~azure.mgmt.web.v2021_01_15.models.NameValuePair] + """ + + _attribute_map = { + 'instructions': {'key': 'instructions', 'type': '[str]'}, + 'data_source_uri': {'key': 'dataSourceUri', 'type': '[NameValuePair]'}, + } + + def __init__( + self, + **kwargs + ): + super(DataSource, self).__init__(**kwargs) + self.instructions = kwargs.get('instructions', None) + self.data_source_uri = kwargs.get('data_source_uri', None) + + +class DataTableResponseColumn(msrest.serialization.Model): + """Column definition. + + :param column_name: Name of the column. + :type column_name: str + :param data_type: Data type which looks like 'String' or 'Int32'. + :type data_type: str + :param column_type: Column Type. + :type column_type: str + """ + + _attribute_map = { + 'column_name': {'key': 'columnName', 'type': 'str'}, + 'data_type': {'key': 'dataType', 'type': 'str'}, + 'column_type': {'key': 'columnType', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DataTableResponseColumn, self).__init__(**kwargs) + self.column_name = kwargs.get('column_name', None) + self.data_type = kwargs.get('data_type', None) + self.column_type = kwargs.get('column_type', None) + + +class DataTableResponseObject(msrest.serialization.Model): + """Data Table which defines columns and raw row values. + + :param table_name: Name of the table. + :type table_name: str + :param columns: List of columns with data types. + :type columns: list[~azure.mgmt.web.v2021_01_15.models.DataTableResponseColumn] + :param rows: Raw row values. + :type rows: list[list[str]] + """ + + _attribute_map = { + 'table_name': {'key': 'tableName', 'type': 'str'}, + 'columns': {'key': 'columns', 'type': '[DataTableResponseColumn]'}, + 'rows': {'key': 'rows', 'type': '[[str]]'}, + } + + def __init__( + self, + **kwargs + ): + super(DataTableResponseObject, self).__init__(**kwargs) + self.table_name = kwargs.get('table_name', None) + self.columns = kwargs.get('columns', None) + self.rows = kwargs.get('rows', None) + + +class DefaultErrorResponse(msrest.serialization.Model): + """App Service error response. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar error: Error model. + :vartype error: ~azure.mgmt.web.v2021_01_15.models.DefaultErrorResponseError + """ + + _validation = { + 'error': {'readonly': True}, + } + + _attribute_map = { + 'error': {'key': 'error', 'type': 'DefaultErrorResponseError'}, + } + + def __init__( + self, + **kwargs + ): + super(DefaultErrorResponse, self).__init__(**kwargs) + self.error = None + + +class DefaultErrorResponseError(msrest.serialization.Model): + """Error model. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar code: Standardized string to programmatically identify the error. + :vartype code: str + :ivar message: Detailed error description and debugging information. + :vartype message: str + :ivar target: Detailed error description and debugging information. + :vartype target: str + :param details: + :type details: list[~azure.mgmt.web.v2021_01_15.models.DefaultErrorResponseErrorDetailsItem] + :ivar innererror: More information to debug error. + :vartype innererror: str + """ + + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + 'target': {'readonly': True}, + 'innererror': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[DefaultErrorResponseErrorDetailsItem]'}, + 'innererror': {'key': 'innererror', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DefaultErrorResponseError, self).__init__(**kwargs) + self.code = None + self.message = None + self.target = None + self.details = kwargs.get('details', None) + self.innererror = None + + +class DefaultErrorResponseErrorDetailsItem(msrest.serialization.Model): + """Detailed errors. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar code: Standardized string to programmatically identify the error. + :vartype code: str + :ivar message: Detailed error description and debugging information. + :vartype message: str + :ivar target: Detailed error description and debugging information. + :vartype target: str + """ + + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + 'target': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DefaultErrorResponseErrorDetailsItem, self).__init__(**kwargs) + self.code = None + self.message = None + self.target = None + + +class DeletedAppRestoreRequest(ProxyOnlyResource): + """Details about restoring a deleted app. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param deleted_site_id: ARM resource ID of the deleted app. Example: + /subscriptions/{subId}/providers/Microsoft.Web/deletedSites/{deletedSiteId}. + :type deleted_site_id: str + :param recover_configuration: If true, deleted site configuration, in addition to content, will + be restored. + :type recover_configuration: bool + :param snapshot_time: Point in time to restore the deleted app from, formatted as a DateTime + string. + If unspecified, default value is the time that the app was deleted. + :type snapshot_time: str + :param use_dr_secondary: If true, the snapshot is retrieved from DRSecondary endpoint. + :type use_dr_secondary: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'deleted_site_id': {'key': 'properties.deletedSiteId', 'type': 'str'}, + 'recover_configuration': {'key': 'properties.recoverConfiguration', 'type': 'bool'}, + 'snapshot_time': {'key': 'properties.snapshotTime', 'type': 'str'}, + 'use_dr_secondary': {'key': 'properties.useDRSecondary', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(DeletedAppRestoreRequest, self).__init__(**kwargs) + self.deleted_site_id = kwargs.get('deleted_site_id', None) + self.recover_configuration = kwargs.get('recover_configuration', None) + self.snapshot_time = kwargs.get('snapshot_time', None) + self.use_dr_secondary = kwargs.get('use_dr_secondary', None) + + +class DeletedSite(ProxyOnlyResource): + """A deleted app. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar deleted_site_id: Numeric id for the deleted site. + :vartype deleted_site_id: int + :ivar deleted_timestamp: Time in UTC when the app was deleted. + :vartype deleted_timestamp: str + :ivar subscription: Subscription containing the deleted site. + :vartype subscription: str + :ivar resource_group: ResourceGroup that contained the deleted site. + :vartype resource_group: str + :ivar deleted_site_name: Name of the deleted site. + :vartype deleted_site_name: str + :ivar slot: Slot of the deleted site. + :vartype slot: str + :ivar kind_properties_kind: Kind of site that was deleted. + :vartype kind_properties_kind: str + :ivar geo_region_name: Geo Region of the deleted site. + :vartype geo_region_name: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'deleted_site_id': {'readonly': True}, + 'deleted_timestamp': {'readonly': True}, + 'subscription': {'readonly': True}, + 'resource_group': {'readonly': True}, + 'deleted_site_name': {'readonly': True}, + 'slot': {'readonly': True}, + 'kind_properties_kind': {'readonly': True}, + 'geo_region_name': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'deleted_site_id': {'key': 'properties.deletedSiteId', 'type': 'int'}, + 'deleted_timestamp': {'key': 'properties.deletedTimestamp', 'type': 'str'}, + 'subscription': {'key': 'properties.subscription', 'type': 'str'}, + 'resource_group': {'key': 'properties.resourceGroup', 'type': 'str'}, + 'deleted_site_name': {'key': 'properties.deletedSiteName', 'type': 'str'}, + 'slot': {'key': 'properties.slot', 'type': 'str'}, + 'kind_properties_kind': {'key': 'properties.kind', 'type': 'str'}, + 'geo_region_name': {'key': 'properties.geoRegionName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DeletedSite, self).__init__(**kwargs) + self.deleted_site_id = None + self.deleted_timestamp = None + self.subscription = None + self.resource_group = None + self.deleted_site_name = None + self.slot = None + self.kind_properties_kind = None + self.geo_region_name = None + + +class DeletedWebAppCollection(msrest.serialization.Model): + """Collection of deleted apps. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.DeletedSite] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[DeletedSite]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DeletedWebAppCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class Deployment(ProxyOnlyResource): + """User credentials used for publishing activity. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param status: Deployment status. + :type status: int + :param message: Details about deployment status. + :type message: str + :param author: Who authored the deployment. + :type author: str + :param deployer: Who performed the deployment. + :type deployer: str + :param author_email: Author email. + :type author_email: str + :param start_time: Start time. + :type start_time: ~datetime.datetime + :param end_time: End time. + :type end_time: ~datetime.datetime + :param active: True if deployment is currently active, false if completed and null if not + started. + :type active: bool + :param details: Details on deployment. + :type details: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'int'}, + 'message': {'key': 'properties.message', 'type': 'str'}, + 'author': {'key': 'properties.author', 'type': 'str'}, + 'deployer': {'key': 'properties.deployer', 'type': 'str'}, + 'author_email': {'key': 'properties.author_email', 'type': 'str'}, + 'start_time': {'key': 'properties.start_time', 'type': 'iso-8601'}, + 'end_time': {'key': 'properties.end_time', 'type': 'iso-8601'}, + 'active': {'key': 'properties.active', 'type': 'bool'}, + 'details': {'key': 'properties.details', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Deployment, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.message = kwargs.get('message', None) + self.author = kwargs.get('author', None) + self.deployer = kwargs.get('deployer', None) + self.author_email = kwargs.get('author_email', None) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.active = kwargs.get('active', None) + self.details = kwargs.get('details', None) + + +class DeploymentCollection(msrest.serialization.Model): + """Collection of app deployments. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.Deployment] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Deployment]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DeploymentCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class DeploymentLocations(msrest.serialization.Model): + """List of available locations (regions or App Service Environments) for +deployment of App Service resources. + + :param locations: Available regions. + :type locations: list[~azure.mgmt.web.v2021_01_15.models.GeoRegion] + :param hosting_environments: Available App Service Environments with full descriptions of the + environments. + :type hosting_environments: list[~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironment] + :param hosting_environment_deployment_infos: Available App Service Environments with basic + information. + :type hosting_environment_deployment_infos: + list[~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentDeploymentInfo] + """ + + _attribute_map = { + 'locations': {'key': 'locations', 'type': '[GeoRegion]'}, + 'hosting_environments': {'key': 'hostingEnvironments', 'type': '[AppServiceEnvironment]'}, + 'hosting_environment_deployment_infos': {'key': 'hostingEnvironmentDeploymentInfos', 'type': '[HostingEnvironmentDeploymentInfo]'}, + } + + def __init__( + self, + **kwargs + ): + super(DeploymentLocations, self).__init__(**kwargs) + self.locations = kwargs.get('locations', None) + self.hosting_environments = kwargs.get('hosting_environments', None) + self.hosting_environment_deployment_infos = kwargs.get('hosting_environment_deployment_infos', None) + + +class DetectorAbnormalTimePeriod(msrest.serialization.Model): + """Class representing Abnormal Time Period detected. + + :param start_time: Start time of the correlated event. + :type start_time: ~datetime.datetime + :param end_time: End time of the correlated event. + :type end_time: ~datetime.datetime + :param message: Message describing the event. + :type message: str + :param source: Represents the name of the Detector. + :type source: str + :param priority: Represents the rank of the Detector. + :type priority: float + :param meta_data: Downtime metadata. + :type meta_data: list[list[~azure.mgmt.web.v2021_01_15.models.NameValuePair]] + :param type: Represents the type of the Detector. Possible values include: "ServiceIncident", + "AppDeployment", "AppCrash", "RuntimeIssueDetected", "AseDeployment", "UserIssue", + "PlatformIssue", "Other". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.IssueType + :param solutions: List of proposed solutions. + :type solutions: list[~azure.mgmt.web.v2021_01_15.models.Solution] + """ + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'message': {'key': 'message', 'type': 'str'}, + 'source': {'key': 'source', 'type': 'str'}, + 'priority': {'key': 'priority', 'type': 'float'}, + 'meta_data': {'key': 'metaData', 'type': '[[NameValuePair]]'}, + 'type': {'key': 'type', 'type': 'str'}, + 'solutions': {'key': 'solutions', 'type': '[Solution]'}, + } + + def __init__( + self, + **kwargs + ): + super(DetectorAbnormalTimePeriod, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.message = kwargs.get('message', None) + self.source = kwargs.get('source', None) + self.priority = kwargs.get('priority', None) + self.meta_data = kwargs.get('meta_data', None) + self.type = kwargs.get('type', None) + self.solutions = kwargs.get('solutions', None) + + +class DetectorDefinition(ProxyOnlyResource): + """Class representing detector definition. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar display_name: Display name of the detector. + :vartype display_name: str + :ivar description: Description of the detector. + :vartype description: str + :ivar rank: Detector Rank. + :vartype rank: float + :ivar is_enabled: Flag representing whether detector is enabled or not. + :vartype is_enabled: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'display_name': {'readonly': True}, + 'description': {'readonly': True}, + 'rank': {'readonly': True}, + 'is_enabled': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'display_name': {'key': 'properties.displayName', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'rank': {'key': 'properties.rank', 'type': 'float'}, + 'is_enabled': {'key': 'properties.isEnabled', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(DetectorDefinition, self).__init__(**kwargs) + self.display_name = None + self.description = None + self.rank = None + self.is_enabled = None + + +class DetectorInfo(msrest.serialization.Model): + """Definition of Detector. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Id of detector. + :vartype id: str + :ivar name: Name of detector. + :vartype name: str + :ivar description: Short description of the detector and its purpose. + :vartype description: str + :ivar author: Author of the detector. + :vartype author: str + :ivar category: Problem category. This serves for organizing group for detectors. + :vartype category: str + :ivar support_topic_list: List of Support Topics for which this detector is enabled. + :vartype support_topic_list: list[~azure.mgmt.web.v2021_01_15.models.SupportTopic] + :ivar analysis_type: Analysis Types for which this detector should apply to. + :vartype analysis_type: list[str] + :ivar type: Whether this detector is an Analysis Detector or not. Possible values include: + "Detector", "Analysis", "CategoryOverview". + :vartype type: str or ~azure.mgmt.web.v2021_01_15.models.DetectorType + :ivar score: Defines score of a detector to power ML based matching. + :vartype score: float + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'description': {'readonly': True}, + 'author': {'readonly': True}, + 'category': {'readonly': True}, + 'support_topic_list': {'readonly': True}, + 'analysis_type': {'readonly': True}, + 'type': {'readonly': True}, + 'score': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'author': {'key': 'author', 'type': 'str'}, + 'category': {'key': 'category', 'type': 'str'}, + 'support_topic_list': {'key': 'supportTopicList', 'type': '[SupportTopic]'}, + 'analysis_type': {'key': 'analysisType', 'type': '[str]'}, + 'type': {'key': 'type', 'type': 'str'}, + 'score': {'key': 'score', 'type': 'float'}, + } + + def __init__( + self, + **kwargs + ): + super(DetectorInfo, self).__init__(**kwargs) + self.id = None + self.name = None + self.description = None + self.author = None + self.category = None + self.support_topic_list = None + self.analysis_type = None + self.type = None + self.score = None + + +class DetectorResponse(ProxyOnlyResource): + """Class representing Response from Detector. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param metadata: metadata for the detector. + :type metadata: ~azure.mgmt.web.v2021_01_15.models.DetectorInfo + :param dataset: Data Set. + :type dataset: list[~azure.mgmt.web.v2021_01_15.models.DiagnosticData] + :param status: Indicates status of the most severe insight. + :type status: ~azure.mgmt.web.v2021_01_15.models.Status + :param data_providers_metadata: Additional configuration for different data providers to be + used by the UI. + :type data_providers_metadata: list[~azure.mgmt.web.v2021_01_15.models.DataProviderMetadata] + :param suggested_utterances: Suggested utterances where the detector can be applicable. + :type suggested_utterances: ~azure.mgmt.web.v2021_01_15.models.QueryUtterancesResults + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'metadata': {'key': 'properties.metadata', 'type': 'DetectorInfo'}, + 'dataset': {'key': 'properties.dataset', 'type': '[DiagnosticData]'}, + 'status': {'key': 'properties.status', 'type': 'Status'}, + 'data_providers_metadata': {'key': 'properties.dataProvidersMetadata', 'type': '[DataProviderMetadata]'}, + 'suggested_utterances': {'key': 'properties.suggestedUtterances', 'type': 'QueryUtterancesResults'}, + } + + def __init__( + self, + **kwargs + ): + super(DetectorResponse, self).__init__(**kwargs) + self.metadata = kwargs.get('metadata', None) + self.dataset = kwargs.get('dataset', None) + self.status = kwargs.get('status', None) + self.data_providers_metadata = kwargs.get('data_providers_metadata', None) + self.suggested_utterances = kwargs.get('suggested_utterances', None) + + +class DetectorResponseCollection(msrest.serialization.Model): + """Collection of detector responses. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.DetectorResponse] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[DetectorResponse]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DetectorResponseCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class DiagnosticAnalysis(ProxyOnlyResource): + """Class representing a diagnostic analysis done on an application. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param start_time: Start time of the period. + :type start_time: ~datetime.datetime + :param end_time: End time of the period. + :type end_time: ~datetime.datetime + :param abnormal_time_periods: List of time periods. + :type abnormal_time_periods: list[~azure.mgmt.web.v2021_01_15.models.AbnormalTimePeriod] + :param payload: Data by each detector. + :type payload: list[~azure.mgmt.web.v2021_01_15.models.AnalysisData] + :param non_correlated_detectors: Data by each detector for detectors that did not corelate. + :type non_correlated_detectors: list[~azure.mgmt.web.v2021_01_15.models.DetectorDefinition] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'start_time': {'key': 'properties.startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'properties.endTime', 'type': 'iso-8601'}, + 'abnormal_time_periods': {'key': 'properties.abnormalTimePeriods', 'type': '[AbnormalTimePeriod]'}, + 'payload': {'key': 'properties.payload', 'type': '[AnalysisData]'}, + 'non_correlated_detectors': {'key': 'properties.nonCorrelatedDetectors', 'type': '[DetectorDefinition]'}, + } + + def __init__( + self, + **kwargs + ): + super(DiagnosticAnalysis, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.abnormal_time_periods = kwargs.get('abnormal_time_periods', None) + self.payload = kwargs.get('payload', None) + self.non_correlated_detectors = kwargs.get('non_correlated_detectors', None) + + +class DiagnosticAnalysisCollection(msrest.serialization.Model): + """Collection of Diagnostic Analyses. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.AnalysisDefinition] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[AnalysisDefinition]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DiagnosticAnalysisCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class DiagnosticCategory(ProxyOnlyResource): + """Class representing detector definition. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar description: Description of the diagnostic category. + :vartype description: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'description': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DiagnosticCategory, self).__init__(**kwargs) + self.description = None + + +class DiagnosticCategoryCollection(msrest.serialization.Model): + """Collection of Diagnostic Categories. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.DiagnosticCategory] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[DiagnosticCategory]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DiagnosticCategoryCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class DiagnosticData(msrest.serialization.Model): + """Set of data with rendering instructions. + + :param table: Data in table form. + :type table: ~azure.mgmt.web.v2021_01_15.models.DataTableResponseObject + :param rendering_properties: Properties that describe how the table should be rendered. + :type rendering_properties: ~azure.mgmt.web.v2021_01_15.models.Rendering + """ + + _attribute_map = { + 'table': {'key': 'table', 'type': 'DataTableResponseObject'}, + 'rendering_properties': {'key': 'renderingProperties', 'type': 'Rendering'}, + } + + def __init__( + self, + **kwargs + ): + super(DiagnosticData, self).__init__(**kwargs) + self.table = kwargs.get('table', None) + self.rendering_properties = kwargs.get('rendering_properties', None) + + +class DiagnosticDetectorCollection(msrest.serialization.Model): + """Collection of Diagnostic Detectors. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.DetectorDefinition] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[DetectorDefinition]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DiagnosticDetectorCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class DiagnosticDetectorResponse(ProxyOnlyResource): + """Class representing Response from Diagnostic Detectors. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param start_time: Start time of the period. + :type start_time: ~datetime.datetime + :param end_time: End time of the period. + :type end_time: ~datetime.datetime + :param issue_detected: Flag representing Issue was detected. + :type issue_detected: bool + :param detector_definition: Detector's definition. + :type detector_definition: ~azure.mgmt.web.v2021_01_15.models.DetectorDefinition + :param metrics: Metrics provided by the detector. + :type metrics: list[~azure.mgmt.web.v2021_01_15.models.DiagnosticMetricSet] + :param abnormal_time_periods: List of Correlated events found by the detector. + :type abnormal_time_periods: + list[~azure.mgmt.web.v2021_01_15.models.DetectorAbnormalTimePeriod] + :param data: Additional Data that detector wants to send. + :type data: list[list[~azure.mgmt.web.v2021_01_15.models.NameValuePair]] + :param response_meta_data: Meta Data. + :type response_meta_data: ~azure.mgmt.web.v2021_01_15.models.ResponseMetaData + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'start_time': {'key': 'properties.startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'properties.endTime', 'type': 'iso-8601'}, + 'issue_detected': {'key': 'properties.issueDetected', 'type': 'bool'}, + 'detector_definition': {'key': 'properties.detectorDefinition', 'type': 'DetectorDefinition'}, + 'metrics': {'key': 'properties.metrics', 'type': '[DiagnosticMetricSet]'}, + 'abnormal_time_periods': {'key': 'properties.abnormalTimePeriods', 'type': '[DetectorAbnormalTimePeriod]'}, + 'data': {'key': 'properties.data', 'type': '[[NameValuePair]]'}, + 'response_meta_data': {'key': 'properties.responseMetaData', 'type': 'ResponseMetaData'}, + } + + def __init__( + self, + **kwargs + ): + super(DiagnosticDetectorResponse, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.issue_detected = kwargs.get('issue_detected', None) + self.detector_definition = kwargs.get('detector_definition', None) + self.metrics = kwargs.get('metrics', None) + self.abnormal_time_periods = kwargs.get('abnormal_time_periods', None) + self.data = kwargs.get('data', None) + self.response_meta_data = kwargs.get('response_meta_data', None) + + +class DiagnosticMetricSample(msrest.serialization.Model): + """Class representing Diagnostic Metric. + + :param timestamp: Time at which metric is measured. + :type timestamp: ~datetime.datetime + :param role_instance: Role Instance. Null if this counter is not per instance + This is returned and should be whichever instance name we desire to be returned + i.e. CPU and Memory return RDWORKERNAME (LargeDed..._IN_0) + where RDWORKERNAME is Machine name below and RoleInstance name in parenthesis. + :type role_instance: str + :param total: Total value of the metric. If multiple measurements are made this will have sum + of all. + :type total: float + :param maximum: Maximum of the metric sampled during the time period. + :type maximum: float + :param minimum: Minimum of the metric sampled during the time period. + :type minimum: float + :param is_aggregated: Whether the values are aggregates across all workers or not. + :type is_aggregated: bool + """ + + _attribute_map = { + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + 'role_instance': {'key': 'roleInstance', 'type': 'str'}, + 'total': {'key': 'total', 'type': 'float'}, + 'maximum': {'key': 'maximum', 'type': 'float'}, + 'minimum': {'key': 'minimum', 'type': 'float'}, + 'is_aggregated': {'key': 'isAggregated', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(DiagnosticMetricSample, self).__init__(**kwargs) + self.timestamp = kwargs.get('timestamp', None) + self.role_instance = kwargs.get('role_instance', None) + self.total = kwargs.get('total', None) + self.maximum = kwargs.get('maximum', None) + self.minimum = kwargs.get('minimum', None) + self.is_aggregated = kwargs.get('is_aggregated', None) + + +class DiagnosticMetricSet(msrest.serialization.Model): + """Class representing Diagnostic Metric information. + + :param name: Name of the metric. + :type name: str + :param unit: Metric's unit. + :type unit: str + :param start_time: Start time of the period. + :type start_time: ~datetime.datetime + :param end_time: End time of the period. + :type end_time: ~datetime.datetime + :param time_grain: Presented time grain. Supported grains at the moment are PT1M, PT1H, P1D. + :type time_grain: str + :param values: Collection of metric values for the selected period based on the + {Microsoft.Web.Hosting.Administration.DiagnosticMetricSet.TimeGrain}. + :type values: list[~azure.mgmt.web.v2021_01_15.models.DiagnosticMetricSample] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'unit': {'key': 'unit', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'time_grain': {'key': 'timeGrain', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[DiagnosticMetricSample]'}, + } + + def __init__( + self, + **kwargs + ): + super(DiagnosticMetricSet, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.unit = kwargs.get('unit', None) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.time_grain = kwargs.get('time_grain', None) + self.values = kwargs.get('values', None) + + +class Dimension(msrest.serialization.Model): + """Dimension of a resource metric. For e.g. instance specific HTTP requests for a web app, +where instance name is dimension of the metric HTTP request. + + :param name: + :type name: str + :param display_name: + :type display_name: str + :param internal_name: + :type internal_name: str + :param to_be_exported_for_shoebox: + :type to_be_exported_for_shoebox: bool + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'internal_name': {'key': 'internalName', 'type': 'str'}, + 'to_be_exported_for_shoebox': {'key': 'toBeExportedForShoebox', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(Dimension, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.display_name = kwargs.get('display_name', None) + self.internal_name = kwargs.get('internal_name', None) + self.to_be_exported_for_shoebox = kwargs.get('to_be_exported_for_shoebox', None) + + +class Domain(Resource): + """Information about a domain. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param contact_admin: Administrative contact. + :type contact_admin: ~azure.mgmt.web.v2021_01_15.models.Contact + :param contact_billing: Billing contact. + :type contact_billing: ~azure.mgmt.web.v2021_01_15.models.Contact + :param contact_registrant: Registrant contact. + :type contact_registrant: ~azure.mgmt.web.v2021_01_15.models.Contact + :param contact_tech: Technical contact. + :type contact_tech: ~azure.mgmt.web.v2021_01_15.models.Contact + :ivar registration_status: Domain registration status. Possible values include: "Active", + "Awaiting", "Cancelled", "Confiscated", "Disabled", "Excluded", "Expired", "Failed", "Held", + "Locked", "Parked", "Pending", "Reserved", "Reverted", "Suspended", "Transferred", "Unknown", + "Unlocked", "Unparked", "Updated", "JsonConverterFailed". + :vartype registration_status: str or ~azure.mgmt.web.v2021_01_15.models.DomainStatus + :ivar provisioning_state: Domain provisioning state. Possible values include: "Succeeded", + "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :ivar name_servers: Name servers. + :vartype name_servers: list[str] + :param privacy: :code:`true` if domain privacy is enabled for this domain; + otherwise, :code:`false`. + :type privacy: bool + :ivar created_time: Domain creation timestamp. + :vartype created_time: ~datetime.datetime + :ivar expiration_time: Domain expiration timestamp. + :vartype expiration_time: ~datetime.datetime + :ivar last_renewed_time: Timestamp when the domain was renewed last time. + :vartype last_renewed_time: ~datetime.datetime + :param auto_renew: :code:`true` if the domain should be automatically renewed; + otherwise, :code:`false`. + :type auto_renew: bool + :ivar ready_for_dns_record_management: :code:`true` if Azure can assign this + domain to App Service apps; otherwise, :code:`false`. This value will be + :code:`true` if domain registration status is active and + it is hosted on name servers Azure has programmatic access to. + :vartype ready_for_dns_record_management: bool + :ivar managed_host_names: All hostnames derived from the domain and assigned to Azure + resources. + :vartype managed_host_names: list[~azure.mgmt.web.v2021_01_15.models.HostName] + :param consent: Legal agreement consent. + :type consent: ~azure.mgmt.web.v2021_01_15.models.DomainPurchaseConsent + :ivar domain_not_renewable_reasons: Reasons why domain is not renewable. + :vartype domain_not_renewable_reasons: list[str or + ~azure.mgmt.web.v2021_01_15.models.DomainPropertiesDomainNotRenewableReasonsItem] + :param dns_type: Current DNS type. Possible values include: "AzureDns", + "DefaultDomainRegistrarDns". + :type dns_type: str or ~azure.mgmt.web.v2021_01_15.models.DnsType + :param dns_zone_id: Azure DNS Zone to use. + :type dns_zone_id: str + :param target_dns_type: Target DNS type (would be used for migration). Possible values include: + "AzureDns", "DefaultDomainRegistrarDns". + :type target_dns_type: str or ~azure.mgmt.web.v2021_01_15.models.DnsType + :param auth_code: + :type auth_code: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'registration_status': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'name_servers': {'readonly': True}, + 'created_time': {'readonly': True}, + 'expiration_time': {'readonly': True}, + 'last_renewed_time': {'readonly': True}, + 'ready_for_dns_record_management': {'readonly': True}, + 'managed_host_names': {'readonly': True}, + 'domain_not_renewable_reasons': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'contact_admin': {'key': 'properties.contactAdmin', 'type': 'Contact'}, + 'contact_billing': {'key': 'properties.contactBilling', 'type': 'Contact'}, + 'contact_registrant': {'key': 'properties.contactRegistrant', 'type': 'Contact'}, + 'contact_tech': {'key': 'properties.contactTech', 'type': 'Contact'}, + 'registration_status': {'key': 'properties.registrationStatus', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'name_servers': {'key': 'properties.nameServers', 'type': '[str]'}, + 'privacy': {'key': 'properties.privacy', 'type': 'bool'}, + 'created_time': {'key': 'properties.createdTime', 'type': 'iso-8601'}, + 'expiration_time': {'key': 'properties.expirationTime', 'type': 'iso-8601'}, + 'last_renewed_time': {'key': 'properties.lastRenewedTime', 'type': 'iso-8601'}, + 'auto_renew': {'key': 'properties.autoRenew', 'type': 'bool'}, + 'ready_for_dns_record_management': {'key': 'properties.readyForDnsRecordManagement', 'type': 'bool'}, + 'managed_host_names': {'key': 'properties.managedHostNames', 'type': '[HostName]'}, + 'consent': {'key': 'properties.consent', 'type': 'DomainPurchaseConsent'}, + 'domain_not_renewable_reasons': {'key': 'properties.domainNotRenewableReasons', 'type': '[str]'}, + 'dns_type': {'key': 'properties.dnsType', 'type': 'str'}, + 'dns_zone_id': {'key': 'properties.dnsZoneId', 'type': 'str'}, + 'target_dns_type': {'key': 'properties.targetDnsType', 'type': 'str'}, + 'auth_code': {'key': 'properties.authCode', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Domain, self).__init__(**kwargs) + self.contact_admin = kwargs.get('contact_admin', None) + self.contact_billing = kwargs.get('contact_billing', None) + self.contact_registrant = kwargs.get('contact_registrant', None) + self.contact_tech = kwargs.get('contact_tech', None) + self.registration_status = None + self.provisioning_state = None + self.name_servers = None + self.privacy = kwargs.get('privacy', None) + self.created_time = None + self.expiration_time = None + self.last_renewed_time = None + self.auto_renew = kwargs.get('auto_renew', True) + self.ready_for_dns_record_management = None + self.managed_host_names = None + self.consent = kwargs.get('consent', None) + self.domain_not_renewable_reasons = None + self.dns_type = kwargs.get('dns_type', None) + self.dns_zone_id = kwargs.get('dns_zone_id', None) + self.target_dns_type = kwargs.get('target_dns_type', None) + self.auth_code = kwargs.get('auth_code', None) + + +class DomainAvailabilityCheckResult(msrest.serialization.Model): + """Domain availability check result. + + :param name: Name of the domain. + :type name: str + :param available: :code:`true` if domain can be purchased using CreateDomain API; + otherwise, :code:`false`. + :type available: bool + :param domain_type: Valid values are Regular domain: Azure will charge the full price of domain + registration, SoftDeleted: Purchasing this domain will simply restore it and this operation + will not cost anything. Possible values include: "Regular", "SoftDeleted". + :type domain_type: str or ~azure.mgmt.web.v2021_01_15.models.DomainType + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'available': {'key': 'available', 'type': 'bool'}, + 'domain_type': {'key': 'domainType', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DomainAvailabilityCheckResult, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.available = kwargs.get('available', None) + self.domain_type = kwargs.get('domain_type', None) + + +class DomainCollection(msrest.serialization.Model): + """Collection of domains. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.Domain] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Domain]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DomainCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class DomainControlCenterSsoRequest(msrest.serialization.Model): + """Single sign-on request information for domain management. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar url: URL where the single sign-on request is to be made. + :vartype url: str + :ivar post_parameter_key: Post parameter key. + :vartype post_parameter_key: str + :ivar post_parameter_value: Post parameter value. Client should use + 'application/x-www-form-urlencoded' encoding for this value. + :vartype post_parameter_value: str + """ + + _validation = { + 'url': {'readonly': True}, + 'post_parameter_key': {'readonly': True}, + 'post_parameter_value': {'readonly': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'post_parameter_key': {'key': 'postParameterKey', 'type': 'str'}, + 'post_parameter_value': {'key': 'postParameterValue', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DomainControlCenterSsoRequest, self).__init__(**kwargs) + self.url = None + self.post_parameter_key = None + self.post_parameter_value = None + + +class DomainOwnershipIdentifier(ProxyOnlyResource): + """Domain ownership Identifier. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param ownership_id: Ownership Id. + :type ownership_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'ownership_id': {'key': 'properties.ownershipId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DomainOwnershipIdentifier, self).__init__(**kwargs) + self.ownership_id = kwargs.get('ownership_id', None) + + +class DomainOwnershipIdentifierCollection(msrest.serialization.Model): + """Collection of domain ownership identifiers. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.DomainOwnershipIdentifier] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[DomainOwnershipIdentifier]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DomainOwnershipIdentifierCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class DomainPatchResource(ProxyOnlyResource): + """ARM resource for a domain. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param contact_admin: Administrative contact. + :type contact_admin: ~azure.mgmt.web.v2021_01_15.models.Contact + :param contact_billing: Billing contact. + :type contact_billing: ~azure.mgmt.web.v2021_01_15.models.Contact + :param contact_registrant: Registrant contact. + :type contact_registrant: ~azure.mgmt.web.v2021_01_15.models.Contact + :param contact_tech: Technical contact. + :type contact_tech: ~azure.mgmt.web.v2021_01_15.models.Contact + :ivar registration_status: Domain registration status. Possible values include: "Active", + "Awaiting", "Cancelled", "Confiscated", "Disabled", "Excluded", "Expired", "Failed", "Held", + "Locked", "Parked", "Pending", "Reserved", "Reverted", "Suspended", "Transferred", "Unknown", + "Unlocked", "Unparked", "Updated", "JsonConverterFailed". + :vartype registration_status: str or ~azure.mgmt.web.v2021_01_15.models.DomainStatus + :ivar provisioning_state: Domain provisioning state. Possible values include: "Succeeded", + "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :ivar name_servers: Name servers. + :vartype name_servers: list[str] + :param privacy: :code:`true` if domain privacy is enabled for this domain; + otherwise, :code:`false`. + :type privacy: bool + :ivar created_time: Domain creation timestamp. + :vartype created_time: ~datetime.datetime + :ivar expiration_time: Domain expiration timestamp. + :vartype expiration_time: ~datetime.datetime + :ivar last_renewed_time: Timestamp when the domain was renewed last time. + :vartype last_renewed_time: ~datetime.datetime + :param auto_renew: :code:`true` if the domain should be automatically renewed; + otherwise, :code:`false`. + :type auto_renew: bool + :ivar ready_for_dns_record_management: :code:`true` if Azure can assign this + domain to App Service apps; otherwise, :code:`false`. This value will be + :code:`true` if domain registration status is active and + it is hosted on name servers Azure has programmatic access to. + :vartype ready_for_dns_record_management: bool + :ivar managed_host_names: All hostnames derived from the domain and assigned to Azure + resources. + :vartype managed_host_names: list[~azure.mgmt.web.v2021_01_15.models.HostName] + :param consent: Legal agreement consent. + :type consent: ~azure.mgmt.web.v2021_01_15.models.DomainPurchaseConsent + :ivar domain_not_renewable_reasons: Reasons why domain is not renewable. + :vartype domain_not_renewable_reasons: list[str or + ~azure.mgmt.web.v2021_01_15.models.DomainPatchResourcePropertiesDomainNotRenewableReasonsItem] + :param dns_type: Current DNS type. Possible values include: "AzureDns", + "DefaultDomainRegistrarDns". + :type dns_type: str or ~azure.mgmt.web.v2021_01_15.models.DnsType + :param dns_zone_id: Azure DNS Zone to use. + :type dns_zone_id: str + :param target_dns_type: Target DNS type (would be used for migration). Possible values include: + "AzureDns", "DefaultDomainRegistrarDns". + :type target_dns_type: str or ~azure.mgmt.web.v2021_01_15.models.DnsType + :param auth_code: + :type auth_code: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'registration_status': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'name_servers': {'readonly': True}, + 'created_time': {'readonly': True}, + 'expiration_time': {'readonly': True}, + 'last_renewed_time': {'readonly': True}, + 'ready_for_dns_record_management': {'readonly': True}, + 'managed_host_names': {'readonly': True}, + 'domain_not_renewable_reasons': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'contact_admin': {'key': 'properties.contactAdmin', 'type': 'Contact'}, + 'contact_billing': {'key': 'properties.contactBilling', 'type': 'Contact'}, + 'contact_registrant': {'key': 'properties.contactRegistrant', 'type': 'Contact'}, + 'contact_tech': {'key': 'properties.contactTech', 'type': 'Contact'}, + 'registration_status': {'key': 'properties.registrationStatus', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'name_servers': {'key': 'properties.nameServers', 'type': '[str]'}, + 'privacy': {'key': 'properties.privacy', 'type': 'bool'}, + 'created_time': {'key': 'properties.createdTime', 'type': 'iso-8601'}, + 'expiration_time': {'key': 'properties.expirationTime', 'type': 'iso-8601'}, + 'last_renewed_time': {'key': 'properties.lastRenewedTime', 'type': 'iso-8601'}, + 'auto_renew': {'key': 'properties.autoRenew', 'type': 'bool'}, + 'ready_for_dns_record_management': {'key': 'properties.readyForDnsRecordManagement', 'type': 'bool'}, + 'managed_host_names': {'key': 'properties.managedHostNames', 'type': '[HostName]'}, + 'consent': {'key': 'properties.consent', 'type': 'DomainPurchaseConsent'}, + 'domain_not_renewable_reasons': {'key': 'properties.domainNotRenewableReasons', 'type': '[str]'}, + 'dns_type': {'key': 'properties.dnsType', 'type': 'str'}, + 'dns_zone_id': {'key': 'properties.dnsZoneId', 'type': 'str'}, + 'target_dns_type': {'key': 'properties.targetDnsType', 'type': 'str'}, + 'auth_code': {'key': 'properties.authCode', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DomainPatchResource, self).__init__(**kwargs) + self.contact_admin = kwargs.get('contact_admin', None) + self.contact_billing = kwargs.get('contact_billing', None) + self.contact_registrant = kwargs.get('contact_registrant', None) + self.contact_tech = kwargs.get('contact_tech', None) + self.registration_status = None + self.provisioning_state = None + self.name_servers = None + self.privacy = kwargs.get('privacy', None) + self.created_time = None + self.expiration_time = None + self.last_renewed_time = None + self.auto_renew = kwargs.get('auto_renew', True) + self.ready_for_dns_record_management = None + self.managed_host_names = None + self.consent = kwargs.get('consent', None) + self.domain_not_renewable_reasons = None + self.dns_type = kwargs.get('dns_type', None) + self.dns_zone_id = kwargs.get('dns_zone_id', None) + self.target_dns_type = kwargs.get('target_dns_type', None) + self.auth_code = kwargs.get('auth_code', None) + + +class DomainPurchaseConsent(msrest.serialization.Model): + """Domain purchase consent object, representing acceptance of applicable legal agreements. + + :param agreement_keys: List of applicable legal agreement keys. This list can be retrieved + using ListLegalAgreements API under :code:`TopLevelDomain` resource. + :type agreement_keys: list[str] + :param agreed_by: Client IP address. + :type agreed_by: str + :param agreed_at: Timestamp when the agreements were accepted. + :type agreed_at: ~datetime.datetime + """ + + _attribute_map = { + 'agreement_keys': {'key': 'agreementKeys', 'type': '[str]'}, + 'agreed_by': {'key': 'agreedBy', 'type': 'str'}, + 'agreed_at': {'key': 'agreedAt', 'type': 'iso-8601'}, + } + + def __init__( + self, + **kwargs + ): + super(DomainPurchaseConsent, self).__init__(**kwargs) + self.agreement_keys = kwargs.get('agreement_keys', None) + self.agreed_by = kwargs.get('agreed_by', None) + self.agreed_at = kwargs.get('agreed_at', None) + + +class DomainRecommendationSearchParameters(msrest.serialization.Model): + """Domain recommendation search parameters. + + :param keywords: Keywords to be used for generating domain recommendations. + :type keywords: str + :param max_domain_recommendations: Maximum number of recommendations. + :type max_domain_recommendations: int + """ + + _attribute_map = { + 'keywords': {'key': 'keywords', 'type': 'str'}, + 'max_domain_recommendations': {'key': 'maxDomainRecommendations', 'type': 'int'}, + } + + def __init__( + self, + **kwargs + ): + super(DomainRecommendationSearchParameters, self).__init__(**kwargs) + self.keywords = kwargs.get('keywords', None) + self.max_domain_recommendations = kwargs.get('max_domain_recommendations', None) + + +class EnabledConfig(msrest.serialization.Model): + """Enabled configuration. + + :param enabled: True if configuration is enabled, false if it is disabled and null if + configuration is not set. + :type enabled: bool + """ + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(EnabledConfig, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + + +class EndpointDependency(msrest.serialization.Model): + """A domain name that a service is reached at, including details of the current connection status. + + :param domain_name: The domain name of the dependency. + :type domain_name: str + :param endpoint_details: The IP Addresses and Ports used when connecting to DomainName. + :type endpoint_details: list[~azure.mgmt.web.v2021_01_15.models.EndpointDetail] + """ + + _attribute_map = { + 'domain_name': {'key': 'domainName', 'type': 'str'}, + 'endpoint_details': {'key': 'endpointDetails', 'type': '[EndpointDetail]'}, + } + + def __init__( + self, + **kwargs + ): + super(EndpointDependency, self).__init__(**kwargs) + self.domain_name = kwargs.get('domain_name', None) + self.endpoint_details = kwargs.get('endpoint_details', None) + + +class EndpointDetail(msrest.serialization.Model): + """Current TCP connectivity information from the App Service Environment to a single endpoint. + + :param ip_address: An IP Address that Domain Name currently resolves to. + :type ip_address: str + :param port: The port an endpoint is connected to. + :type port: int + :param latency: The time in milliseconds it takes for a TCP connection to be created from the + App Service Environment to this IpAddress at this Port. + :type latency: float + :param is_accessible: Whether it is possible to create a TCP connection from the App Service + Environment to this IpAddress at this Port. + :type is_accessible: bool + """ + + _attribute_map = { + 'ip_address': {'key': 'ipAddress', 'type': 'str'}, + 'port': {'key': 'port', 'type': 'int'}, + 'latency': {'key': 'latency', 'type': 'float'}, + 'is_accessible': {'key': 'isAccessible', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(EndpointDetail, self).__init__(**kwargs) + self.ip_address = kwargs.get('ip_address', None) + self.port = kwargs.get('port', None) + self.latency = kwargs.get('latency', None) + self.is_accessible = kwargs.get('is_accessible', None) + + +class ErrorEntity(msrest.serialization.Model): + """Body of the error response returned from the API. + + :param extended_code: Type of error. + :type extended_code: str + :param message_template: Message template. + :type message_template: str + :param parameters: Parameters for the template. + :type parameters: list[str] + :param inner_errors: Inner errors. + :type inner_errors: list[~azure.mgmt.web.v2021_01_15.models.ErrorEntity] + :param code: Basic error code. + :type code: str + :param message: Any details of the error. + :type message: str + """ + + _attribute_map = { + 'extended_code': {'key': 'extendedCode', 'type': 'str'}, + 'message_template': {'key': 'messageTemplate', 'type': 'str'}, + 'parameters': {'key': 'parameters', 'type': '[str]'}, + 'inner_errors': {'key': 'innerErrors', 'type': '[ErrorEntity]'}, + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ErrorEntity, self).__init__(**kwargs) + self.extended_code = kwargs.get('extended_code', None) + self.message_template = kwargs.get('message_template', None) + self.parameters = kwargs.get('parameters', None) + self.inner_errors = kwargs.get('inner_errors', None) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + + +class Experiments(msrest.serialization.Model): + """Routing rules in production experiments. + + :param ramp_up_rules: List of ramp-up rules. + :type ramp_up_rules: list[~azure.mgmt.web.v2021_01_15.models.RampUpRule] + """ + + _attribute_map = { + 'ramp_up_rules': {'key': 'rampUpRules', 'type': '[RampUpRule]'}, + } + + def __init__( + self, + **kwargs + ): + super(Experiments, self).__init__(**kwargs) + self.ramp_up_rules = kwargs.get('ramp_up_rules', None) + + +class ExtendedLocation(msrest.serialization.Model): + """Extended Location. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param name: Name of extended location. + :type name: str + :ivar type: Type of extended location. + :vartype type: str + """ + + _validation = { + 'type': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ExtendedLocation, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.type = None + + +class Facebook(ProxyOnlyResource): + """The configuration settings of the Facebook provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the Facebook provider should not be enabled + despite the set registration; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the app registration for the Facebook + provider. + :type registration: ~azure.mgmt.web.v2021_01_15.models.AppRegistration + :param graph_api_version: The version of the Facebook api to be used while logging in. + :type graph_api_version: str + :param login: The configuration settings of the login flow. + :type login: ~azure.mgmt.web.v2021_01_15.models.LoginScopes + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'AppRegistration'}, + 'graph_api_version': {'key': 'properties.graphApiVersion', 'type': 'str'}, + 'login': {'key': 'properties.login', 'type': 'LoginScopes'}, + } + + def __init__( + self, + **kwargs + ): + super(Facebook, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.registration = kwargs.get('registration', None) + self.graph_api_version = kwargs.get('graph_api_version', None) + self.login = kwargs.get('login', None) + + +class FileSystemApplicationLogsConfig(msrest.serialization.Model): + """Application logs to file system configuration. + + :param level: Log level. Possible values include: "Off", "Verbose", "Information", "Warning", + "Error". + :type level: str or ~azure.mgmt.web.v2021_01_15.models.LogLevel + """ + + _attribute_map = { + 'level': {'key': 'level', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(FileSystemApplicationLogsConfig, self).__init__(**kwargs) + self.level = kwargs.get('level', None) + + +class FileSystemHttpLogsConfig(msrest.serialization.Model): + """Http logs to file system configuration. + + :param retention_in_mb: Maximum size in megabytes that http log files can use. + When reached old log files will be removed to make space for new ones. + Value can range between 25 and 100. + :type retention_in_mb: int + :param retention_in_days: Retention in days. + Remove files older than X days. + 0 or lower means no retention. + :type retention_in_days: int + :param enabled: True if configuration is enabled, false if it is disabled and null if + configuration is not set. + :type enabled: bool + """ + + _validation = { + 'retention_in_mb': {'maximum': 100, 'minimum': 25}, + } + + _attribute_map = { + 'retention_in_mb': {'key': 'retentionInMb', 'type': 'int'}, + 'retention_in_days': {'key': 'retentionInDays', 'type': 'int'}, + 'enabled': {'key': 'enabled', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(FileSystemHttpLogsConfig, self).__init__(**kwargs) + self.retention_in_mb = kwargs.get('retention_in_mb', None) + self.retention_in_days = kwargs.get('retention_in_days', None) + self.enabled = kwargs.get('enabled', None) + + +class FileSystemTokenStore(ProxyOnlyResource): + """The configuration settings of the storage of the tokens if a file system is used. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param directory: The directory in which the tokens will be stored. + :type directory: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'directory': {'key': 'properties.directory', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(FileSystemTokenStore, self).__init__(**kwargs) + self.directory = kwargs.get('directory', None) + + +class ForwardProxy(ProxyOnlyResource): + """The configuration settings of a forward proxy used to make the requests. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param convention: The convention used to determine the url of the request made. Possible + values include: "NoProxy", "Standard", "Custom". + :type convention: str or ~azure.mgmt.web.v2021_01_15.models.ForwardProxyConvention + :param custom_host_header_name: The name of the header containing the host of the request. + :type custom_host_header_name: str + :param custom_proto_header_name: The name of the header containing the scheme of the request. + :type custom_proto_header_name: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'convention': {'key': 'properties.convention', 'type': 'str'}, + 'custom_host_header_name': {'key': 'properties.customHostHeaderName', 'type': 'str'}, + 'custom_proto_header_name': {'key': 'properties.customProtoHeaderName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ForwardProxy, self).__init__(**kwargs) + self.convention = kwargs.get('convention', None) + self.custom_host_header_name = kwargs.get('custom_host_header_name', None) + self.custom_proto_header_name = kwargs.get('custom_proto_header_name', None) + + +class FrontEndConfiguration(msrest.serialization.Model): + """FrontEndConfiguration. + + :param kind: Possible values include: "NodePort", "LoadBalancer". + :type kind: str or ~azure.mgmt.web.v2021_01_15.models.FrontEndServiceType + """ + + _attribute_map = { + 'kind': {'key': 'kind', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(FrontEndConfiguration, self).__init__(**kwargs) + self.kind = kwargs.get('kind', None) + + +class FunctionAppMajorVersion(msrest.serialization.Model): + """Function App stack major version. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar display_text: Function App stack major version (display only). + :vartype display_text: str + :ivar value: Function App stack major version name. + :vartype value: str + :ivar minor_versions: Minor versions associated with the major version. + :vartype minor_versions: list[~azure.mgmt.web.v2021_01_15.models.FunctionAppMinorVersion] + """ + + _validation = { + 'display_text': {'readonly': True}, + 'value': {'readonly': True}, + 'minor_versions': {'readonly': True}, + } + + _attribute_map = { + 'display_text': {'key': 'displayText', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + 'minor_versions': {'key': 'minorVersions', 'type': '[FunctionAppMinorVersion]'}, + } + + def __init__( + self, + **kwargs + ): + super(FunctionAppMajorVersion, self).__init__(**kwargs) + self.display_text = None + self.value = None + self.minor_versions = None + + +class FunctionAppMinorVersion(msrest.serialization.Model): + """Function App stack minor version. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar display_text: Function App stack (display only). + :vartype display_text: str + :ivar value: Function App stack name. + :vartype value: str + :ivar stack_settings: Settings associated with the minor version. + :vartype stack_settings: ~azure.mgmt.web.v2021_01_15.models.FunctionAppRuntimes + """ + + _validation = { + 'display_text': {'readonly': True}, + 'value': {'readonly': True}, + 'stack_settings': {'readonly': True}, + } + + _attribute_map = { + 'display_text': {'key': 'displayText', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + 'stack_settings': {'key': 'stackSettings', 'type': 'FunctionAppRuntimes'}, + } + + def __init__( + self, + **kwargs + ): + super(FunctionAppMinorVersion, self).__init__(**kwargs) + self.display_text = None + self.value = None + self.stack_settings = None + + +class FunctionAppRuntimes(msrest.serialization.Model): + """Function App stack runtimes. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar linux_runtime_settings: Linux-specific settings associated with the minor version. + :vartype linux_runtime_settings: ~azure.mgmt.web.v2021_01_15.models.FunctionAppRuntimeSettings + :ivar windows_runtime_settings: Windows-specific settings associated with the minor version. + :vartype windows_runtime_settings: + ~azure.mgmt.web.v2021_01_15.models.FunctionAppRuntimeSettings + """ + + _validation = { + 'linux_runtime_settings': {'readonly': True}, + 'windows_runtime_settings': {'readonly': True}, + } + + _attribute_map = { + 'linux_runtime_settings': {'key': 'linuxRuntimeSettings', 'type': 'FunctionAppRuntimeSettings'}, + 'windows_runtime_settings': {'key': 'windowsRuntimeSettings', 'type': 'FunctionAppRuntimeSettings'}, + } + + def __init__( + self, + **kwargs + ): + super(FunctionAppRuntimes, self).__init__(**kwargs) + self.linux_runtime_settings = None + self.windows_runtime_settings = None + + +class FunctionAppRuntimeSettings(msrest.serialization.Model): + """Function App runtime settings. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar runtime_version: Function App stack minor version (runtime only). + :vartype runtime_version: str + :ivar remote_debugging_supported: :code:`true` if remote debugging is supported + for the stack; otherwise, :code:`false`. + :vartype remote_debugging_supported: bool + :ivar app_insights_settings: Application Insights settings associated with the minor version. + :vartype app_insights_settings: + ~azure.mgmt.web.v2021_01_15.models.AppInsightsWebAppStackSettings + :ivar git_hub_action_settings: GitHub Actions settings associated with the minor version. + :vartype git_hub_action_settings: + ~azure.mgmt.web.v2021_01_15.models.GitHubActionWebAppStackSettings + :ivar app_settings_dictionary: Application settings associated with the minor version. + :vartype app_settings_dictionary: dict[str, str] + :ivar site_config_properties_dictionary: Configuration settings associated with the minor + version. + :vartype site_config_properties_dictionary: + ~azure.mgmt.web.v2021_01_15.models.SiteConfigPropertiesDictionary + :ivar supported_functions_extension_versions: List of supported Functions extension versions. + :vartype supported_functions_extension_versions: list[str] + :ivar is_preview: :code:`true` if the stack is in preview; otherwise, + :code:`false`. + :vartype is_preview: bool + :ivar is_deprecated: :code:`true` if the stack is deprecated; otherwise, + :code:`false`. + :vartype is_deprecated: bool + :ivar is_hidden: :code:`true` if the stack should be hidden; otherwise, + :code:`false`. + :vartype is_hidden: bool + :ivar end_of_life_date: End-of-life date for the minor version. + :vartype end_of_life_date: ~datetime.datetime + :ivar is_auto_update: :code:`true` if the stack version is auto-updated; + otherwise, :code:`false`. + :vartype is_auto_update: bool + :ivar is_early_access: :code:`true` if the minor version is early-access; + otherwise, :code:`false`. + :vartype is_early_access: bool + :ivar is_default: :code:`true` if the minor version the default; otherwise, + :code:`false`. + :vartype is_default: bool + """ + + _validation = { + 'runtime_version': {'readonly': True}, + 'remote_debugging_supported': {'readonly': True}, + 'app_insights_settings': {'readonly': True}, + 'git_hub_action_settings': {'readonly': True}, + 'app_settings_dictionary': {'readonly': True}, + 'site_config_properties_dictionary': {'readonly': True}, + 'supported_functions_extension_versions': {'readonly': True}, + 'is_preview': {'readonly': True}, + 'is_deprecated': {'readonly': True}, + 'is_hidden': {'readonly': True}, + 'end_of_life_date': {'readonly': True}, + 'is_auto_update': {'readonly': True}, + 'is_early_access': {'readonly': True}, + 'is_default': {'readonly': True}, + } + + _attribute_map = { + 'runtime_version': {'key': 'runtimeVersion', 'type': 'str'}, + 'remote_debugging_supported': {'key': 'remoteDebuggingSupported', 'type': 'bool'}, + 'app_insights_settings': {'key': 'appInsightsSettings', 'type': 'AppInsightsWebAppStackSettings'}, + 'git_hub_action_settings': {'key': 'gitHubActionSettings', 'type': 'GitHubActionWebAppStackSettings'}, + 'app_settings_dictionary': {'key': 'appSettingsDictionary', 'type': '{str}'}, + 'site_config_properties_dictionary': {'key': 'siteConfigPropertiesDictionary', 'type': 'SiteConfigPropertiesDictionary'}, + 'supported_functions_extension_versions': {'key': 'supportedFunctionsExtensionVersions', 'type': '[str]'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + 'is_deprecated': {'key': 'isDeprecated', 'type': 'bool'}, + 'is_hidden': {'key': 'isHidden', 'type': 'bool'}, + 'end_of_life_date': {'key': 'endOfLifeDate', 'type': 'iso-8601'}, + 'is_auto_update': {'key': 'isAutoUpdate', 'type': 'bool'}, + 'is_early_access': {'key': 'isEarlyAccess', 'type': 'bool'}, + 'is_default': {'key': 'isDefault', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(FunctionAppRuntimeSettings, self).__init__(**kwargs) + self.runtime_version = None + self.remote_debugging_supported = None + self.app_insights_settings = None + self.git_hub_action_settings = None + self.app_settings_dictionary = None + self.site_config_properties_dictionary = None + self.supported_functions_extension_versions = None + self.is_preview = None + self.is_deprecated = None + self.is_hidden = None + self.end_of_life_date = None + self.is_auto_update = None + self.is_early_access = None + self.is_default = None + + +class FunctionAppStack(ProxyOnlyResource): + """Function App Stack. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar location: Function App stack location. + :vartype location: str + :ivar display_text: Function App stack (display only). + :vartype display_text: str + :ivar value: Function App stack name. + :vartype value: str + :ivar major_versions: List of major versions available. + :vartype major_versions: list[~azure.mgmt.web.v2021_01_15.models.FunctionAppMajorVersion] + :ivar preferred_os: Function App stack preferred OS. Possible values include: "Windows", + "Linux". + :vartype preferred_os: str or ~azure.mgmt.web.v2021_01_15.models.StackPreferredOs + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'readonly': True}, + 'display_text': {'readonly': True}, + 'value': {'readonly': True}, + 'major_versions': {'readonly': True}, + 'preferred_os': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'display_text': {'key': 'properties.displayText', 'type': 'str'}, + 'value': {'key': 'properties.value', 'type': 'str'}, + 'major_versions': {'key': 'properties.majorVersions', 'type': '[FunctionAppMajorVersion]'}, + 'preferred_os': {'key': 'properties.preferredOs', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(FunctionAppStack, self).__init__(**kwargs) + self.location = None + self.display_text = None + self.value = None + self.major_versions = None + self.preferred_os = None + + +class FunctionAppStackCollection(msrest.serialization.Model): + """Collection of Function app Stacks. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.FunctionAppStack] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[FunctionAppStack]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(FunctionAppStackCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class FunctionEnvelope(ProxyOnlyResource): + """Function information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param function_app_id: Function App ID. + :type function_app_id: str + :param script_root_path_href: Script root path URI. + :type script_root_path_href: str + :param script_href: Script URI. + :type script_href: str + :param config_href: Config URI. + :type config_href: str + :param test_data_href: Test data URI. + :type test_data_href: str + :param secrets_file_href: Secrets file URI. + :type secrets_file_href: str + :param href: Function URI. + :type href: str + :param config: Config information. + :type config: any + :param files: File list. + :type files: dict[str, str] + :param test_data: Test data used when testing via the Azure Portal. + :type test_data: str + :param invoke_url_template: The invocation URL. + :type invoke_url_template: str + :param language: The function language. + :type language: str + :param is_disabled: Gets or sets a value indicating whether the function is disabled. + :type is_disabled: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'function_app_id': {'key': 'properties.function_app_id', 'type': 'str'}, + 'script_root_path_href': {'key': 'properties.script_root_path_href', 'type': 'str'}, + 'script_href': {'key': 'properties.script_href', 'type': 'str'}, + 'config_href': {'key': 'properties.config_href', 'type': 'str'}, + 'test_data_href': {'key': 'properties.test_data_href', 'type': 'str'}, + 'secrets_file_href': {'key': 'properties.secrets_file_href', 'type': 'str'}, + 'href': {'key': 'properties.href', 'type': 'str'}, + 'config': {'key': 'properties.config', 'type': 'object'}, + 'files': {'key': 'properties.files', 'type': '{str}'}, + 'test_data': {'key': 'properties.test_data', 'type': 'str'}, + 'invoke_url_template': {'key': 'properties.invoke_url_template', 'type': 'str'}, + 'language': {'key': 'properties.language', 'type': 'str'}, + 'is_disabled': {'key': 'properties.isDisabled', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(FunctionEnvelope, self).__init__(**kwargs) + self.function_app_id = kwargs.get('function_app_id', None) + self.script_root_path_href = kwargs.get('script_root_path_href', None) + self.script_href = kwargs.get('script_href', None) + self.config_href = kwargs.get('config_href', None) + self.test_data_href = kwargs.get('test_data_href', None) + self.secrets_file_href = kwargs.get('secrets_file_href', None) + self.href = kwargs.get('href', None) + self.config = kwargs.get('config', None) + self.files = kwargs.get('files', None) + self.test_data = kwargs.get('test_data', None) + self.invoke_url_template = kwargs.get('invoke_url_template', None) + self.language = kwargs.get('language', None) + self.is_disabled = kwargs.get('is_disabled', None) + + +class FunctionEnvelopeCollection(msrest.serialization.Model): + """Collection of Kudu function information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.FunctionEnvelope] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[FunctionEnvelope]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(FunctionEnvelopeCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class FunctionSecrets(msrest.serialization.Model): + """Function secrets. + + :param key: Secret key. + :type key: str + :param trigger_url: Trigger URL. + :type trigger_url: str + """ + + _attribute_map = { + 'key': {'key': 'key', 'type': 'str'}, + 'trigger_url': {'key': 'trigger_url', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(FunctionSecrets, self).__init__(**kwargs) + self.key = kwargs.get('key', None) + self.trigger_url = kwargs.get('trigger_url', None) + + +class GeoRegion(ProxyOnlyResource): + """Geographical region. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar description: Region description. + :vartype description: str + :ivar display_name: Display name for region. + :vartype display_name: str + :ivar org_domain: Display name for region. + :vartype org_domain: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'description': {'readonly': True}, + 'display_name': {'readonly': True}, + 'org_domain': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'display_name': {'key': 'properties.displayName', 'type': 'str'}, + 'org_domain': {'key': 'properties.orgDomain', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(GeoRegion, self).__init__(**kwargs) + self.description = None + self.display_name = None + self.org_domain = None + + +class GeoRegionCollection(msrest.serialization.Model): + """Collection of geographical regions. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.GeoRegion] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[GeoRegion]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(GeoRegionCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class GitHub(ProxyOnlyResource): + """The configuration settings of the GitHub provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the GitHub provider should not be enabled despite + the set registration; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the app registration for the GitHub + provider. + :type registration: ~azure.mgmt.web.v2021_01_15.models.ClientRegistration + :param login: The configuration settings of the login flow. + :type login: ~azure.mgmt.web.v2021_01_15.models.LoginScopes + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'ClientRegistration'}, + 'login': {'key': 'properties.login', 'type': 'LoginScopes'}, + } + + def __init__( + self, + **kwargs + ): + super(GitHub, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.registration = kwargs.get('registration', None) + self.login = kwargs.get('login', None) + + +class GitHubActionCodeConfiguration(msrest.serialization.Model): + """The GitHub action code configuration. + + :param runtime_stack: Runtime stack is used to determine the workflow file content for code + base apps. + :type runtime_stack: str + :param runtime_version: Runtime version is used to determine what build version to set in the + workflow file. + :type runtime_version: str + """ + + _attribute_map = { + 'runtime_stack': {'key': 'runtimeStack', 'type': 'str'}, + 'runtime_version': {'key': 'runtimeVersion', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(GitHubActionCodeConfiguration, self).__init__(**kwargs) + self.runtime_stack = kwargs.get('runtime_stack', None) + self.runtime_version = kwargs.get('runtime_version', None) + + +class GitHubActionConfiguration(msrest.serialization.Model): + """The GitHub action configuration. + + :param code_configuration: GitHub Action code configuration. + :type code_configuration: ~azure.mgmt.web.v2021_01_15.models.GitHubActionCodeConfiguration + :param container_configuration: GitHub Action container configuration. + :type container_configuration: + ~azure.mgmt.web.v2021_01_15.models.GitHubActionContainerConfiguration + :param is_linux: This will help determine the workflow configuration to select. + :type is_linux: bool + :param generate_workflow_file: Workflow option to determine whether the workflow file should be + generated and written to the repository. + :type generate_workflow_file: bool + """ + + _attribute_map = { + 'code_configuration': {'key': 'codeConfiguration', 'type': 'GitHubActionCodeConfiguration'}, + 'container_configuration': {'key': 'containerConfiguration', 'type': 'GitHubActionContainerConfiguration'}, + 'is_linux': {'key': 'isLinux', 'type': 'bool'}, + 'generate_workflow_file': {'key': 'generateWorkflowFile', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(GitHubActionConfiguration, self).__init__(**kwargs) + self.code_configuration = kwargs.get('code_configuration', None) + self.container_configuration = kwargs.get('container_configuration', None) + self.is_linux = kwargs.get('is_linux', None) + self.generate_workflow_file = kwargs.get('generate_workflow_file', None) + + +class GitHubActionContainerConfiguration(msrest.serialization.Model): + """The GitHub action container configuration. + + :param server_url: The server URL for the container registry where the build will be hosted. + :type server_url: str + :param image_name: The image name for the build. + :type image_name: str + :param username: The username used to upload the image to the container registry. + :type username: str + :param password: The password used to upload the image to the container registry. + :type password: str + """ + + _attribute_map = { + 'server_url': {'key': 'serverUrl', 'type': 'str'}, + 'image_name': {'key': 'imageName', 'type': 'str'}, + 'username': {'key': 'username', 'type': 'str'}, + 'password': {'key': 'password', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(GitHubActionContainerConfiguration, self).__init__(**kwargs) + self.server_url = kwargs.get('server_url', None) + self.image_name = kwargs.get('image_name', None) + self.username = kwargs.get('username', None) + self.password = kwargs.get('password', None) + + +class GitHubActionWebAppStackSettings(msrest.serialization.Model): + """GitHub Actions Web App stack settings. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar is_supported: :code:`true` if GitHub Actions is supported for the stack; + otherwise, :code:`false`. + :vartype is_supported: bool + :ivar supported_version: The minor version that is supported for GitHub Actions. + :vartype supported_version: str + """ + + _validation = { + 'is_supported': {'readonly': True}, + 'supported_version': {'readonly': True}, + } + + _attribute_map = { + 'is_supported': {'key': 'isSupported', 'type': 'bool'}, + 'supported_version': {'key': 'supportedVersion', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(GitHubActionWebAppStackSettings, self).__init__(**kwargs) + self.is_supported = None + self.supported_version = None + + +class GlobalCsmSkuDescription(msrest.serialization.Model): + """A Global SKU Description. + + :param name: Name of the resource SKU. + :type name: str + :param tier: Service Tier of the resource SKU. + :type tier: str + :param size: Size specifier of the resource SKU. + :type size: str + :param family: Family code of the resource SKU. + :type family: str + :param capacity: Min, max, and default scale values of the SKU. + :type capacity: ~azure.mgmt.web.v2021_01_15.models.SkuCapacity + :param locations: Locations of the SKU. + :type locations: list[str] + :param capabilities: Capabilities of the SKU, e.g., is traffic manager enabled?. + :type capabilities: list[~azure.mgmt.web.v2021_01_15.models.Capability] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'tier': {'key': 'tier', 'type': 'str'}, + 'size': {'key': 'size', 'type': 'str'}, + 'family': {'key': 'family', 'type': 'str'}, + 'capacity': {'key': 'capacity', 'type': 'SkuCapacity'}, + 'locations': {'key': 'locations', 'type': '[str]'}, + 'capabilities': {'key': 'capabilities', 'type': '[Capability]'}, + } + + def __init__( + self, + **kwargs + ): + super(GlobalCsmSkuDescription, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.tier = kwargs.get('tier', None) + self.size = kwargs.get('size', None) + self.family = kwargs.get('family', None) + self.capacity = kwargs.get('capacity', None) + self.locations = kwargs.get('locations', None) + self.capabilities = kwargs.get('capabilities', None) + + +class GlobalValidation(ProxyOnlyResource): + """The configuration settings that determines the validation flow of users using App Service Authentication/Authorization. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param require_authentication: :code:`true` if the authentication flow is required + any request is made; otherwise, :code:`false`. + :type require_authentication: bool + :param unauthenticated_client_action: The action to take when an unauthenticated client + attempts to access the app. Possible values include: "RedirectToLoginPage", "AllowAnonymous", + "Return401", "Return403". + :type unauthenticated_client_action: str or + ~azure.mgmt.web.v2021_01_15.models.UnauthenticatedClientActionV2 + :param redirect_to_provider: The default authentication provider to use when multiple providers + are configured. + This setting is only needed if multiple providers are configured and the unauthenticated + client + action is set to "RedirectToLoginPage". + :type redirect_to_provider: str + :param excluded_paths: The paths for which unauthenticated flow would not be redirected to the + login page. + :type excluded_paths: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'require_authentication': {'key': 'properties.requireAuthentication', 'type': 'bool'}, + 'unauthenticated_client_action': {'key': 'properties.unauthenticatedClientAction', 'type': 'str'}, + 'redirect_to_provider': {'key': 'properties.redirectToProvider', 'type': 'str'}, + 'excluded_paths': {'key': 'properties.excludedPaths', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(GlobalValidation, self).__init__(**kwargs) + self.require_authentication = kwargs.get('require_authentication', None) + self.unauthenticated_client_action = kwargs.get('unauthenticated_client_action', None) + self.redirect_to_provider = kwargs.get('redirect_to_provider', None) + self.excluded_paths = kwargs.get('excluded_paths', None) + + +class Google(ProxyOnlyResource): + """The configuration settings of the Google provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the Google provider should not be enabled despite + the set registration; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the app registration for the Google + provider. + :type registration: ~azure.mgmt.web.v2021_01_15.models.ClientRegistration + :param login: The configuration settings of the login flow. + :type login: ~azure.mgmt.web.v2021_01_15.models.LoginScopes + :param validation: The configuration settings of the Azure Active Directory token validation + flow. + :type validation: ~azure.mgmt.web.v2021_01_15.models.AllowedAudiencesValidation + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'ClientRegistration'}, + 'login': {'key': 'properties.login', 'type': 'LoginScopes'}, + 'validation': {'key': 'properties.validation', 'type': 'AllowedAudiencesValidation'}, + } + + def __init__( + self, + **kwargs + ): + super(Google, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.registration = kwargs.get('registration', None) + self.login = kwargs.get('login', None) + self.validation = kwargs.get('validation', None) + + +class HandlerMapping(msrest.serialization.Model): + """The IIS handler mappings used to define which handler processes HTTP requests with certain extension. +For example, it is used to configure php-cgi.exe process to handle all HTTP requests with *.php extension. + + :param extension: Requests with this extension will be handled using the specified FastCGI + application. + :type extension: str + :param script_processor: The absolute path to the FastCGI application. + :type script_processor: str + :param arguments: Command-line arguments to be passed to the script processor. + :type arguments: str + """ + + _attribute_map = { + 'extension': {'key': 'extension', 'type': 'str'}, + 'script_processor': {'key': 'scriptProcessor', 'type': 'str'}, + 'arguments': {'key': 'arguments', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(HandlerMapping, self).__init__(**kwargs) + self.extension = kwargs.get('extension', None) + self.script_processor = kwargs.get('script_processor', None) + self.arguments = kwargs.get('arguments', None) + + +class HostingEnvironmentDeploymentInfo(msrest.serialization.Model): + """Information needed to create resources on an App Service Environment. + + :param name: Name of the App Service Environment. + :type name: str + :param location: Location of the App Service Environment. + :type location: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(HostingEnvironmentDeploymentInfo, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.location = kwargs.get('location', None) + + +class HostingEnvironmentDiagnostics(msrest.serialization.Model): + """Diagnostics for an App Service Environment. + + :param name: Name/identifier of the diagnostics. + :type name: str + :param diagnostics_output: Diagnostics output. + :type diagnostics_output: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'diagnostics_output': {'key': 'diagnosticsOutput', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(HostingEnvironmentDiagnostics, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.diagnostics_output = kwargs.get('diagnostics_output', None) + + +class HostingEnvironmentProfile(msrest.serialization.Model): + """Specification for an App Service Environment to use for this resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param id: Resource ID of the App Service Environment. + :type id: str + :ivar name: Name of the App Service Environment. + :vartype name: str + :ivar type: Resource type of the App Service Environment. + :vartype type: str + """ + + _validation = { + '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(HostingEnvironmentProfile, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.name = None + self.type = None + + +class HostKeys(msrest.serialization.Model): + """Functions host level keys. + + :param master_key: Secret key. + :type master_key: str + :param function_keys: Host level function keys. + :type function_keys: dict[str, str] + :param system_keys: System keys. + :type system_keys: dict[str, str] + """ + + _attribute_map = { + 'master_key': {'key': 'masterKey', 'type': 'str'}, + 'function_keys': {'key': 'functionKeys', 'type': '{str}'}, + 'system_keys': {'key': 'systemKeys', 'type': '{str}'}, + } + + def __init__( + self, + **kwargs + ): + super(HostKeys, self).__init__(**kwargs) + self.master_key = kwargs.get('master_key', None) + self.function_keys = kwargs.get('function_keys', None) + self.system_keys = kwargs.get('system_keys', None) + + +class HostName(msrest.serialization.Model): + """Details of a hostname derived from a domain. + + :param name: Name of the hostname. + :type name: str + :param site_names: List of apps the hostname is assigned to. This list will have more than one + app only if the hostname is pointing to a Traffic Manager. + :type site_names: list[str] + :param azure_resource_name: Name of the Azure resource the hostname is assigned to. If it is + assigned to a Traffic Manager then it will be the Traffic Manager name otherwise it will be the + app name. + :type azure_resource_name: str + :param azure_resource_type: Type of the Azure resource the hostname is assigned to. Possible + values include: "Website", "TrafficManager". + :type azure_resource_type: str or ~azure.mgmt.web.v2021_01_15.models.AzureResourceType + :param custom_host_name_dns_record_type: Type of the DNS record. Possible values include: + "CName", "A". + :type custom_host_name_dns_record_type: str or + ~azure.mgmt.web.v2021_01_15.models.CustomHostNameDnsRecordType + :param host_name_type: Type of the hostname. Possible values include: "Verified", "Managed". + :type host_name_type: str or ~azure.mgmt.web.v2021_01_15.models.HostNameType + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'site_names': {'key': 'siteNames', 'type': '[str]'}, + 'azure_resource_name': {'key': 'azureResourceName', 'type': 'str'}, + 'azure_resource_type': {'key': 'azureResourceType', 'type': 'str'}, + 'custom_host_name_dns_record_type': {'key': 'customHostNameDnsRecordType', 'type': 'str'}, + 'host_name_type': {'key': 'hostNameType', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(HostName, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.site_names = kwargs.get('site_names', None) + self.azure_resource_name = kwargs.get('azure_resource_name', None) + self.azure_resource_type = kwargs.get('azure_resource_type', None) + self.custom_host_name_dns_record_type = kwargs.get('custom_host_name_dns_record_type', None) + self.host_name_type = kwargs.get('host_name_type', None) + + +class HostNameBinding(ProxyOnlyResource): + """A hostname binding object. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param site_name: App Service app name. + :type site_name: str + :param domain_id: Fully qualified ARM domain resource URI. + :type domain_id: str + :param azure_resource_name: Azure resource name. + :type azure_resource_name: str + :param azure_resource_type: Azure resource type. Possible values include: "Website", + "TrafficManager". + :type azure_resource_type: str or ~azure.mgmt.web.v2021_01_15.models.AzureResourceType + :param custom_host_name_dns_record_type: Custom DNS record type. Possible values include: + "CName", "A". + :type custom_host_name_dns_record_type: str or + ~azure.mgmt.web.v2021_01_15.models.CustomHostNameDnsRecordType + :param host_name_type: Hostname type. Possible values include: "Verified", "Managed". + :type host_name_type: str or ~azure.mgmt.web.v2021_01_15.models.HostNameType + :param ssl_state: SSL type. Possible values include: "Disabled", "SniEnabled", + "IpBasedEnabled". + :type ssl_state: str or ~azure.mgmt.web.v2021_01_15.models.SslState + :param thumbprint: SSL certificate thumbprint. + :type thumbprint: str + :ivar virtual_ip: Virtual IP address assigned to the hostname if IP based SSL is enabled. + :vartype virtual_ip: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'virtual_ip': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'site_name': {'key': 'properties.siteName', 'type': 'str'}, + 'domain_id': {'key': 'properties.domainId', 'type': 'str'}, + 'azure_resource_name': {'key': 'properties.azureResourceName', 'type': 'str'}, + 'azure_resource_type': {'key': 'properties.azureResourceType', 'type': 'str'}, + 'custom_host_name_dns_record_type': {'key': 'properties.customHostNameDnsRecordType', 'type': 'str'}, + 'host_name_type': {'key': 'properties.hostNameType', 'type': 'str'}, + 'ssl_state': {'key': 'properties.sslState', 'type': 'str'}, + 'thumbprint': {'key': 'properties.thumbprint', 'type': 'str'}, + 'virtual_ip': {'key': 'properties.virtualIP', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(HostNameBinding, self).__init__(**kwargs) + self.site_name = kwargs.get('site_name', None) + self.domain_id = kwargs.get('domain_id', None) + self.azure_resource_name = kwargs.get('azure_resource_name', None) + self.azure_resource_type = kwargs.get('azure_resource_type', None) + self.custom_host_name_dns_record_type = kwargs.get('custom_host_name_dns_record_type', None) + self.host_name_type = kwargs.get('host_name_type', None) + self.ssl_state = kwargs.get('ssl_state', None) + self.thumbprint = kwargs.get('thumbprint', None) + self.virtual_ip = None + + +class HostNameBindingCollection(msrest.serialization.Model): + """Collection of hostname bindings. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.HostNameBinding] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[HostNameBinding]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(HostNameBindingCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class HostNameSslState(msrest.serialization.Model): + """SSL-enabled hostname. + + :param name: Hostname. + :type name: str + :param ssl_state: SSL type. Possible values include: "Disabled", "SniEnabled", + "IpBasedEnabled". + :type ssl_state: str or ~azure.mgmt.web.v2021_01_15.models.SslState + :param virtual_ip: Virtual IP address assigned to the hostname if IP based SSL is enabled. + :type virtual_ip: str + :param thumbprint: SSL certificate thumbprint. + :type thumbprint: str + :param to_update: Set to :code:`true` to update existing hostname. + :type to_update: bool + :param host_type: Indicates whether the hostname is a standard or repository hostname. Possible + values include: "Standard", "Repository". + :type host_type: str or ~azure.mgmt.web.v2021_01_15.models.HostType + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'ssl_state': {'key': 'sslState', 'type': 'str'}, + 'virtual_ip': {'key': 'virtualIP', 'type': 'str'}, + 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, + 'to_update': {'key': 'toUpdate', 'type': 'bool'}, + 'host_type': {'key': 'hostType', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(HostNameSslState, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.ssl_state = kwargs.get('ssl_state', None) + self.virtual_ip = kwargs.get('virtual_ip', None) + self.thumbprint = kwargs.get('thumbprint', None) + self.to_update = kwargs.get('to_update', None) + self.host_type = kwargs.get('host_type', None) + + +class HttpLogsConfig(msrest.serialization.Model): + """Http logs configuration. + + :param file_system: Http logs to file system configuration. + :type file_system: ~azure.mgmt.web.v2021_01_15.models.FileSystemHttpLogsConfig + :param azure_blob_storage: Http logs to azure blob storage configuration. + :type azure_blob_storage: ~azure.mgmt.web.v2021_01_15.models.AzureBlobStorageHttpLogsConfig + """ + + _attribute_map = { + 'file_system': {'key': 'fileSystem', 'type': 'FileSystemHttpLogsConfig'}, + 'azure_blob_storage': {'key': 'azureBlobStorage', 'type': 'AzureBlobStorageHttpLogsConfig'}, + } + + def __init__( + self, + **kwargs + ): + super(HttpLogsConfig, self).__init__(**kwargs) + self.file_system = kwargs.get('file_system', None) + self.azure_blob_storage = kwargs.get('azure_blob_storage', None) + + +class HttpSettings(ProxyOnlyResource): + """The configuration settings of the HTTP requests for authentication and authorization requests made against App Service Authentication/Authorization. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param require_https: :code:`false` if the authentication/authorization responses + not having the HTTPS scheme are permissible; otherwise, :code:`true`. + :type require_https: bool + :param routes: The configuration settings of the paths HTTP requests. + :type routes: ~azure.mgmt.web.v2021_01_15.models.HttpSettingsRoutes + :param forward_proxy: The configuration settings of a forward proxy used to make the requests. + :type forward_proxy: ~azure.mgmt.web.v2021_01_15.models.ForwardProxy + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'require_https': {'key': 'properties.requireHttps', 'type': 'bool'}, + 'routes': {'key': 'properties.routes', 'type': 'HttpSettingsRoutes'}, + 'forward_proxy': {'key': 'properties.forwardProxy', 'type': 'ForwardProxy'}, + } + + def __init__( + self, + **kwargs + ): + super(HttpSettings, self).__init__(**kwargs) + self.require_https = kwargs.get('require_https', None) + self.routes = kwargs.get('routes', None) + self.forward_proxy = kwargs.get('forward_proxy', None) + + +class HttpSettingsRoutes(ProxyOnlyResource): + """The configuration settings of the paths HTTP requests. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param api_prefix: The prefix that should precede all the authentication/authorization paths. + :type api_prefix: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'api_prefix': {'key': 'properties.apiPrefix', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(HttpSettingsRoutes, self).__init__(**kwargs) + self.api_prefix = kwargs.get('api_prefix', None) + + +class HybridConnection(ProxyOnlyResource): + """Hybrid Connection contract. This is used to configure a Hybrid Connection. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param service_bus_namespace: The name of the Service Bus namespace. + :type service_bus_namespace: str + :param relay_name: The name of the Service Bus relay. + :type relay_name: str + :param relay_arm_uri: The ARM URI to the Service Bus relay. + :type relay_arm_uri: str + :param hostname: The hostname of the endpoint. + :type hostname: str + :param port: The port of the endpoint. + :type port: int + :param send_key_name: The name of the Service Bus key which has Send permissions. This is used + to authenticate to Service Bus. + :type send_key_name: str + :param send_key_value: The value of the Service Bus key. This is used to authenticate to + Service Bus. In ARM this key will not be returned + normally, use the POST /listKeys API instead. + :type send_key_value: str + :param service_bus_suffix: The suffix for the service bus endpoint. By default this is + .servicebus.windows.net. + :type service_bus_suffix: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'service_bus_namespace': {'key': 'properties.serviceBusNamespace', 'type': 'str'}, + 'relay_name': {'key': 'properties.relayName', 'type': 'str'}, + 'relay_arm_uri': {'key': 'properties.relayArmUri', 'type': 'str'}, + 'hostname': {'key': 'properties.hostname', 'type': 'str'}, + 'port': {'key': 'properties.port', 'type': 'int'}, + 'send_key_name': {'key': 'properties.sendKeyName', 'type': 'str'}, + 'send_key_value': {'key': 'properties.sendKeyValue', 'type': 'str'}, + 'service_bus_suffix': {'key': 'properties.serviceBusSuffix', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(HybridConnection, self).__init__(**kwargs) + self.service_bus_namespace = kwargs.get('service_bus_namespace', None) + self.relay_name = kwargs.get('relay_name', None) + self.relay_arm_uri = kwargs.get('relay_arm_uri', None) + self.hostname = kwargs.get('hostname', None) + self.port = kwargs.get('port', None) + self.send_key_name = kwargs.get('send_key_name', None) + self.send_key_value = kwargs.get('send_key_value', None) + self.service_bus_suffix = kwargs.get('service_bus_suffix', None) + + +class HybridConnectionCollection(msrest.serialization.Model): + """Collection of hostname bindings. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.HybridConnection] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[HybridConnection]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(HybridConnectionCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class HybridConnectionKey(ProxyOnlyResource): + """Hybrid Connection key contract. This has the send key name and value for a Hybrid Connection. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar send_key_name: The name of the send key. + :vartype send_key_name: str + :ivar send_key_value: The value of the send key. + :vartype send_key_value: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'send_key_name': {'readonly': True}, + 'send_key_value': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'send_key_name': {'key': 'properties.sendKeyName', 'type': 'str'}, + 'send_key_value': {'key': 'properties.sendKeyValue', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(HybridConnectionKey, self).__init__(**kwargs) + self.send_key_name = None + self.send_key_value = None + + +class HybridConnectionLimits(ProxyOnlyResource): + """Hybrid Connection limits contract. This is used to return the plan limits of Hybrid Connections. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar current: The current number of Hybrid Connections. + :vartype current: int + :ivar maximum: The maximum number of Hybrid Connections allowed. + :vartype maximum: int + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'current': {'readonly': True}, + 'maximum': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'current': {'key': 'properties.current', 'type': 'int'}, + 'maximum': {'key': 'properties.maximum', 'type': 'int'}, + } + + def __init__( + self, + **kwargs + ): + super(HybridConnectionLimits, self).__init__(**kwargs) + self.current = None + self.maximum = None + + +class Identifier(ProxyOnlyResource): + """A domain specific resource identifier. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param value: String representation of the identity. + :type value: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'value': {'key': 'properties.id', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Identifier, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + + +class IdentifierCollection(msrest.serialization.Model): + """Collection of identifiers. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.Identifier] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Identifier]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(IdentifierCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class IdentityProviders(ProxyOnlyResource): + """The configuration settings of each of the identity providers used to configure App Service Authentication/Authorization. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param azure_active_directory: The configuration settings of the Azure Active directory + provider. + :type azure_active_directory: ~azure.mgmt.web.v2021_01_15.models.AzureActiveDirectory + :param facebook: The configuration settings of the Facebook provider. + :type facebook: ~azure.mgmt.web.v2021_01_15.models.Facebook + :param git_hub: The configuration settings of the GitHub provider. + :type git_hub: ~azure.mgmt.web.v2021_01_15.models.GitHub + :param google: The configuration settings of the Google provider. + :type google: ~azure.mgmt.web.v2021_01_15.models.Google + :param twitter: The configuration settings of the Twitter provider. + :type twitter: ~azure.mgmt.web.v2021_01_15.models.Twitter + :param custom_open_id_connect_providers: The map of the name of the alias of each custom Open + ID Connect provider to the + configuration settings of the custom Open ID Connect provider. + :type custom_open_id_connect_providers: dict[str, + ~azure.mgmt.web.v2021_01_15.models.CustomOpenIdConnectProvider] + :param legacy_microsoft_account: The configuration settings of the legacy Microsoft Account + provider. + :type legacy_microsoft_account: ~azure.mgmt.web.v2021_01_15.models.LegacyMicrosoftAccount + :param apple: The configuration settings of the Apple provider. + :type apple: ~azure.mgmt.web.v2021_01_15.models.Apple + :param azure_static_web_apps: The configuration settings of the Azure Static Web Apps provider. + :type azure_static_web_apps: ~azure.mgmt.web.v2021_01_15.models.AzureStaticWebApps + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'azure_active_directory': {'key': 'properties.azureActiveDirectory', 'type': 'AzureActiveDirectory'}, + 'facebook': {'key': 'properties.facebook', 'type': 'Facebook'}, + 'git_hub': {'key': 'properties.gitHub', 'type': 'GitHub'}, + 'google': {'key': 'properties.google', 'type': 'Google'}, + 'twitter': {'key': 'properties.twitter', 'type': 'Twitter'}, + 'custom_open_id_connect_providers': {'key': 'properties.customOpenIdConnectProviders', 'type': '{CustomOpenIdConnectProvider}'}, + 'legacy_microsoft_account': {'key': 'properties.legacyMicrosoftAccount', 'type': 'LegacyMicrosoftAccount'}, + 'apple': {'key': 'properties.apple', 'type': 'Apple'}, + 'azure_static_web_apps': {'key': 'properties.azureStaticWebApps', 'type': 'AzureStaticWebApps'}, + } + + def __init__( + self, + **kwargs + ): + super(IdentityProviders, self).__init__(**kwargs) + self.azure_active_directory = kwargs.get('azure_active_directory', None) + self.facebook = kwargs.get('facebook', None) + self.git_hub = kwargs.get('git_hub', None) + self.google = kwargs.get('google', None) + self.twitter = kwargs.get('twitter', None) + self.custom_open_id_connect_providers = kwargs.get('custom_open_id_connect_providers', None) + self.legacy_microsoft_account = kwargs.get('legacy_microsoft_account', None) + self.apple = kwargs.get('apple', None) + self.azure_static_web_apps = kwargs.get('azure_static_web_apps', None) + + +class InboundEnvironmentEndpoint(msrest.serialization.Model): + """The IP Addresses and Ports that require inbound network access to and within the subnet of the App Service Environment. + + :param description: Short text describing the purpose of the network traffic. + :type description: str + :param endpoints: The IP addresses that network traffic will originate from in cidr notation. + :type endpoints: list[str] + :param ports: The ports that network traffic will arrive to the App Service Environment at. + :type ports: list[str] + """ + + _attribute_map = { + 'description': {'key': 'description', 'type': 'str'}, + 'endpoints': {'key': 'endpoints', 'type': '[str]'}, + 'ports': {'key': 'ports', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(InboundEnvironmentEndpoint, self).__init__(**kwargs) + self.description = kwargs.get('description', None) + self.endpoints = kwargs.get('endpoints', None) + self.ports = kwargs.get('ports', None) + + +class InboundEnvironmentEndpointCollection(msrest.serialization.Model): + """Collection of Inbound Environment Endpoints. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.InboundEnvironmentEndpoint] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[InboundEnvironmentEndpoint]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(InboundEnvironmentEndpointCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class IpSecurityRestriction(msrest.serialization.Model): + """IP security restriction on an app. + + :param ip_address: IP address the security restriction is valid for. + It can be in form of pure ipv4 address (required SubnetMask property) or + CIDR notation such as ipv4/mask (leading bit match). For CIDR, + SubnetMask property must not be specified. + :type ip_address: str + :param subnet_mask: Subnet mask for the range of IP addresses the restriction is valid for. + :type subnet_mask: str + :param vnet_subnet_resource_id: Virtual network resource id. + :type vnet_subnet_resource_id: str + :param vnet_traffic_tag: (internal) Vnet traffic tag. + :type vnet_traffic_tag: int + :param subnet_traffic_tag: (internal) Subnet traffic tag. + :type subnet_traffic_tag: int + :param action: Allow or Deny access for this IP range. + :type action: str + :param tag: Defines what this IP filter will be used for. This is to support IP filtering on + proxies. Possible values include: "Default", "XffProxy", "ServiceTag". + :type tag: str or ~azure.mgmt.web.v2021_01_15.models.IpFilterTag + :param priority: Priority of IP restriction rule. + :type priority: int + :param name: IP restriction rule name. + :type name: str + :param description: IP restriction rule description. + :type description: str + :param headers: IP restriction rule headers. + X-Forwarded-Host + (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). + The matching logic is .. + + + * If the property is null or empty (default), all hosts(or lack of) are allowed. + * A value is compared using ordinal-ignore-case (excluding port number). + * Subdomain wildcards are permitted but don't match the root domain. For example, + *.contoso.com matches the subdomain foo.contoso.com + but not the root domain contoso.com or multi-level foo.bar.contoso.com + * Unicode host names are allowed but are converted to Punycode for matching. + + X-Forwarded-For + (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). + The matching logic is .. + + + * If the property is null or empty (default), any forwarded-for chains (or lack of) are + allowed. + * If any address (excluding port number) in the chain (comma separated) matches the CIDR + defined by the property. + + X-Azure-FDID and X-FD-HealthProbe. + The matching logic is exact match. + :type headers: dict[str, list[str]] + """ + + _attribute_map = { + 'ip_address': {'key': 'ipAddress', 'type': 'str'}, + 'subnet_mask': {'key': 'subnetMask', 'type': 'str'}, + 'vnet_subnet_resource_id': {'key': 'vnetSubnetResourceId', 'type': 'str'}, + 'vnet_traffic_tag': {'key': 'vnetTrafficTag', 'type': 'int'}, + 'subnet_traffic_tag': {'key': 'subnetTrafficTag', 'type': 'int'}, + 'action': {'key': 'action', 'type': 'str'}, + 'tag': {'key': 'tag', 'type': 'str'}, + 'priority': {'key': 'priority', 'type': 'int'}, + 'name': {'key': 'name', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'headers': {'key': 'headers', 'type': '{[str]}'}, + } + + def __init__( + self, + **kwargs + ): + super(IpSecurityRestriction, self).__init__(**kwargs) + self.ip_address = kwargs.get('ip_address', None) + self.subnet_mask = kwargs.get('subnet_mask', None) + self.vnet_subnet_resource_id = kwargs.get('vnet_subnet_resource_id', None) + self.vnet_traffic_tag = kwargs.get('vnet_traffic_tag', None) + self.subnet_traffic_tag = kwargs.get('subnet_traffic_tag', None) + self.action = kwargs.get('action', None) + self.tag = kwargs.get('tag', None) + self.priority = kwargs.get('priority', None) + self.name = kwargs.get('name', None) + self.description = kwargs.get('description', None) + self.headers = kwargs.get('headers', None) + + +class JwtClaimChecks(ProxyOnlyResource): + """The configuration settings of the checks that should be made while validating the JWT Claims. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param allowed_groups: The list of the allowed groups. + :type allowed_groups: list[str] + :param allowed_client_applications: The list of the allowed client applications. + :type allowed_client_applications: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'allowed_groups': {'key': 'properties.allowedGroups', 'type': '[str]'}, + 'allowed_client_applications': {'key': 'properties.allowedClientApplications', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(JwtClaimChecks, self).__init__(**kwargs) + self.allowed_groups = kwargs.get('allowed_groups', None) + self.allowed_client_applications = kwargs.get('allowed_client_applications', None) + + +class KeyInfo(msrest.serialization.Model): + """Function key info. + + :param name: Key name. + :type name: str + :param value: Key value. + :type value: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(KeyInfo, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.value = kwargs.get('value', None) + + +class KeyValuePairStringObject(msrest.serialization.Model): + """KeyValuePairStringObject. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar key: + :vartype key: str + :ivar value: Any object. + :vartype value: any + """ + + _validation = { + 'key': {'readonly': True}, + 'value': {'readonly': True}, + } + + _attribute_map = { + 'key': {'key': 'key', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'object'}, + } + + def __init__( + self, + **kwargs + ): + super(KeyValuePairStringObject, self).__init__(**kwargs) + self.key = None + self.value = None + + +class KubeEnvironment(Resource): + """A Kubernetes cluster specialized for web workloads by Azure App Service. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param extended_location: Extended Location. + :type extended_location: ~azure.mgmt.web.v2021_01_15.models.ExtendedLocation + :ivar provisioning_state: Provisioning state of the Kubernetes Environment. Possible values + include: "Succeeded", "Failed", "Canceled", "Waiting", "InitializationInProgress", + "InfrastructureSetupInProgress", "InfrastructureSetupComplete", "ScheduledForDelete", + "UpgradeRequested", "UpgradeFailed". + :vartype provisioning_state: str or + ~azure.mgmt.web.v2021_01_15.models.KubeEnvironmentProvisioningState + :ivar deployment_errors: Any errors that occurred during deployment or deployment validation. + :vartype deployment_errors: str + :param internal_load_balancer_enabled: Only visible within Vnet/Subnet. + :type internal_load_balancer_enabled: bool + :ivar default_domain: Default Domain Name for the cluster. + :vartype default_domain: str + :param static_ip: Static IP of the KubeEnvironment. + :type static_ip: str + :param arc_configuration: Cluster configuration which determines the ARC cluster + components types. Eg: Choosing between BuildService kind, + FrontEnd Service ArtifactsStorageType etc. + :type arc_configuration: ~azure.mgmt.web.v2021_01_15.models.ArcConfiguration + :param app_logs_configuration: Cluster configuration which enables the log daemon to export + app logs to a destination. Currently only "log-analytics" is + supported. + :type app_logs_configuration: ~azure.mgmt.web.v2021_01_15.models.AppLogsConfiguration + :param aks_resource_id: + :type aks_resource_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'deployment_errors': {'readonly': True}, + 'default_domain': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'extended_location': {'key': 'extendedLocation', 'type': 'ExtendedLocation'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'deployment_errors': {'key': 'properties.deploymentErrors', 'type': 'str'}, + 'internal_load_balancer_enabled': {'key': 'properties.internalLoadBalancerEnabled', 'type': 'bool'}, + 'default_domain': {'key': 'properties.defaultDomain', 'type': 'str'}, + 'static_ip': {'key': 'properties.staticIp', 'type': 'str'}, + 'arc_configuration': {'key': 'properties.arcConfiguration', 'type': 'ArcConfiguration'}, + 'app_logs_configuration': {'key': 'properties.appLogsConfiguration', 'type': 'AppLogsConfiguration'}, + 'aks_resource_id': {'key': 'properties.aksResourceID', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(KubeEnvironment, self).__init__(**kwargs) + self.extended_location = kwargs.get('extended_location', None) + self.provisioning_state = None + self.deployment_errors = None + self.internal_load_balancer_enabled = kwargs.get('internal_load_balancer_enabled', None) + self.default_domain = None + self.static_ip = kwargs.get('static_ip', None) + self.arc_configuration = kwargs.get('arc_configuration', None) + self.app_logs_configuration = kwargs.get('app_logs_configuration', None) + self.aks_resource_id = kwargs.get('aks_resource_id', None) + + +class KubeEnvironmentCollection(msrest.serialization.Model): + """Collection of Kubernetes Environments. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.KubeEnvironment] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[KubeEnvironment]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(KubeEnvironmentCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class KubeEnvironmentPatchResource(ProxyOnlyResource): + """ARM resource for a KubeEnvironment when patching. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar provisioning_state: Provisioning state of the Kubernetes Environment. Possible values + include: "Succeeded", "Failed", "Canceled", "Waiting", "InitializationInProgress", + "InfrastructureSetupInProgress", "InfrastructureSetupComplete", "ScheduledForDelete", + "UpgradeRequested", "UpgradeFailed". + :vartype provisioning_state: str or + ~azure.mgmt.web.v2021_01_15.models.KubeEnvironmentProvisioningState + :ivar deployment_errors: Any errors that occurred during deployment or deployment validation. + :vartype deployment_errors: str + :param internal_load_balancer_enabled: Only visible within Vnet/Subnet. + :type internal_load_balancer_enabled: bool + :ivar default_domain: Default Domain Name for the cluster. + :vartype default_domain: str + :param static_ip: Static IP of the KubeEnvironment. + :type static_ip: str + :param arc_configuration: Cluster configuration which determines the ARC cluster + components types. Eg: Choosing between BuildService kind, + FrontEnd Service ArtifactsStorageType etc. + :type arc_configuration: ~azure.mgmt.web.v2021_01_15.models.ArcConfiguration + :param app_logs_configuration: Cluster configuration which enables the log daemon to export + app logs to a destination. Currently only "log-analytics" is + supported. + :type app_logs_configuration: ~azure.mgmt.web.v2021_01_15.models.AppLogsConfiguration + :param aks_resource_id: + :type aks_resource_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'deployment_errors': {'readonly': True}, + 'default_domain': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'deployment_errors': {'key': 'properties.deploymentErrors', 'type': 'str'}, + 'internal_load_balancer_enabled': {'key': 'properties.internalLoadBalancerEnabled', 'type': 'bool'}, + 'default_domain': {'key': 'properties.defaultDomain', 'type': 'str'}, + 'static_ip': {'key': 'properties.staticIp', 'type': 'str'}, + 'arc_configuration': {'key': 'properties.arcConfiguration', 'type': 'ArcConfiguration'}, + 'app_logs_configuration': {'key': 'properties.appLogsConfiguration', 'type': 'AppLogsConfiguration'}, + 'aks_resource_id': {'key': 'properties.aksResourceID', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(KubeEnvironmentPatchResource, self).__init__(**kwargs) + self.provisioning_state = None + self.deployment_errors = None + self.internal_load_balancer_enabled = kwargs.get('internal_load_balancer_enabled', None) + self.default_domain = None + self.static_ip = kwargs.get('static_ip', None) + self.arc_configuration = kwargs.get('arc_configuration', None) + self.app_logs_configuration = kwargs.get('app_logs_configuration', None) + self.aks_resource_id = kwargs.get('aks_resource_id', None) + + +class KubeEnvironmentProfile(msrest.serialization.Model): + """Specification for a Kubernetes Environment to use for this resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param id: Resource ID of the Kubernetes Environment. + :type id: str + :ivar name: Name of the Kubernetes Environment. + :vartype name: str + :ivar type: Resource type of the Kubernetes Environment. + :vartype type: str + """ + + _validation = { + '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(KubeEnvironmentProfile, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.name = None + self.type = None + + +class LegacyMicrosoftAccount(ProxyOnlyResource): + """The configuration settings of the legacy Microsoft Account provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the legacy Microsoft Account provider should not + be enabled despite the set registration; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the app registration for the legacy + Microsoft Account provider. + :type registration: ~azure.mgmt.web.v2021_01_15.models.ClientRegistration + :param login: The configuration settings of the login flow. + :type login: ~azure.mgmt.web.v2021_01_15.models.LoginScopes + :param validation: The configuration settings of the legacy Microsoft Account provider token + validation flow. + :type validation: ~azure.mgmt.web.v2021_01_15.models.AllowedAudiencesValidation + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'ClientRegistration'}, + 'login': {'key': 'properties.login', 'type': 'LoginScopes'}, + 'validation': {'key': 'properties.validation', 'type': 'AllowedAudiencesValidation'}, + } + + def __init__( + self, + **kwargs + ): + super(LegacyMicrosoftAccount, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.registration = kwargs.get('registration', None) + self.login = kwargs.get('login', None) + self.validation = kwargs.get('validation', None) + + +class LinuxJavaContainerSettings(msrest.serialization.Model): + """Linux Java Container settings. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar java11_runtime: Java 11 version (runtime only). + :vartype java11_runtime: str + :ivar java8_runtime: Java 8 version (runtime only). + :vartype java8_runtime: str + :ivar is_preview: :code:`true` if the stack is in preview; otherwise, + :code:`false`. + :vartype is_preview: bool + :ivar is_deprecated: :code:`true` if the stack is deprecated; otherwise, + :code:`false`. + :vartype is_deprecated: bool + :ivar is_hidden: :code:`true` if the stack should be hidden; otherwise, + :code:`false`. + :vartype is_hidden: bool + :ivar end_of_life_date: End-of-life date for the minor version. + :vartype end_of_life_date: ~datetime.datetime + :ivar is_auto_update: :code:`true` if the stack version is auto-updated; + otherwise, :code:`false`. + :vartype is_auto_update: bool + :ivar is_early_access: :code:`true` if the minor version is early-access; + otherwise, :code:`false`. + :vartype is_early_access: bool + """ + + _validation = { + 'java11_runtime': {'readonly': True}, + 'java8_runtime': {'readonly': True}, + 'is_preview': {'readonly': True}, + 'is_deprecated': {'readonly': True}, + 'is_hidden': {'readonly': True}, + 'end_of_life_date': {'readonly': True}, + 'is_auto_update': {'readonly': True}, + 'is_early_access': {'readonly': True}, + } + + _attribute_map = { + 'java11_runtime': {'key': 'java11Runtime', 'type': 'str'}, + 'java8_runtime': {'key': 'java8Runtime', 'type': 'str'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + 'is_deprecated': {'key': 'isDeprecated', 'type': 'bool'}, + 'is_hidden': {'key': 'isHidden', 'type': 'bool'}, + 'end_of_life_date': {'key': 'endOfLifeDate', 'type': 'iso-8601'}, + 'is_auto_update': {'key': 'isAutoUpdate', 'type': 'bool'}, + 'is_early_access': {'key': 'isEarlyAccess', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(LinuxJavaContainerSettings, self).__init__(**kwargs) + self.java11_runtime = None + self.java8_runtime = None + self.is_preview = None + self.is_deprecated = None + self.is_hidden = None + self.end_of_life_date = None + self.is_auto_update = None + self.is_early_access = None + + +class LocalizableString(msrest.serialization.Model): + """Localizable string object containing the name and a localized value. + + :param value: Non-localized name. + :type value: str + :param localized_value: Localized name. + :type localized_value: str + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': 'str'}, + 'localized_value': {'key': 'localizedValue', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(LocalizableString, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + self.localized_value = kwargs.get('localized_value', None) + + +class LogAnalyticsConfiguration(msrest.serialization.Model): + """LogAnalyticsConfiguration. + + :param customer_id: + :type customer_id: str + :param shared_key: + :type shared_key: str + """ + + _attribute_map = { + 'customer_id': {'key': 'customerId', 'type': 'str'}, + 'shared_key': {'key': 'sharedKey', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(LogAnalyticsConfiguration, self).__init__(**kwargs) + self.customer_id = kwargs.get('customer_id', None) + self.shared_key = kwargs.get('shared_key', None) + + +class Login(ProxyOnlyResource): + """The configuration settings of the login flow of users using App Service Authentication/Authorization. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param routes: The routes that specify the endpoints used for login and logout requests. + :type routes: ~azure.mgmt.web.v2021_01_15.models.LoginRoutes + :param token_store: The configuration settings of the token store. + :type token_store: ~azure.mgmt.web.v2021_01_15.models.TokenStore + :param preserve_url_fragments_for_logins: :code:`true` if the fragments from the + request are preserved after the login request is made; otherwise, :code:`false`. + :type preserve_url_fragments_for_logins: bool + :param allowed_external_redirect_urls: External URLs that can be redirected to as part of + logging in or logging out of the app. Note that the query string part of the URL is ignored. + This is an advanced setting typically only needed by Windows Store application backends. + Note that URLs within the current domain are always implicitly allowed. + :type allowed_external_redirect_urls: list[str] + :param cookie_expiration: The configuration settings of the session cookie's expiration. + :type cookie_expiration: ~azure.mgmt.web.v2021_01_15.models.CookieExpiration + :param nonce: The configuration settings of the nonce used in the login flow. + :type nonce: ~azure.mgmt.web.v2021_01_15.models.Nonce + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'routes': {'key': 'properties.routes', 'type': 'LoginRoutes'}, + 'token_store': {'key': 'properties.tokenStore', 'type': 'TokenStore'}, + 'preserve_url_fragments_for_logins': {'key': 'properties.preserveUrlFragmentsForLogins', 'type': 'bool'}, + 'allowed_external_redirect_urls': {'key': 'properties.allowedExternalRedirectUrls', 'type': '[str]'}, + 'cookie_expiration': {'key': 'properties.cookieExpiration', 'type': 'CookieExpiration'}, + 'nonce': {'key': 'properties.nonce', 'type': 'Nonce'}, + } + + def __init__( + self, + **kwargs + ): + super(Login, self).__init__(**kwargs) + self.routes = kwargs.get('routes', None) + self.token_store = kwargs.get('token_store', None) + self.preserve_url_fragments_for_logins = kwargs.get('preserve_url_fragments_for_logins', None) + self.allowed_external_redirect_urls = kwargs.get('allowed_external_redirect_urls', None) + self.cookie_expiration = kwargs.get('cookie_expiration', None) + self.nonce = kwargs.get('nonce', None) + + +class LoginRoutes(ProxyOnlyResource): + """The routes that specify the endpoints used for login and logout requests. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param logout_endpoint: The endpoint at which a logout request should be made. + :type logout_endpoint: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'logout_endpoint': {'key': 'properties.logoutEndpoint', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(LoginRoutes, self).__init__(**kwargs) + self.logout_endpoint = kwargs.get('logout_endpoint', None) + + +class LoginScopes(ProxyOnlyResource): + """The configuration settings of the login flow, including the scopes that should be requested. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param scopes: A list of the scopes that should be requested while authenticating. + :type scopes: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'scopes': {'key': 'properties.scopes', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(LoginScopes, self).__init__(**kwargs) + self.scopes = kwargs.get('scopes', None) + + +class LogSpecification(msrest.serialization.Model): + """Log Definition of a single resource metric. + + :param name: + :type name: str + :param display_name: + :type display_name: str + :param blob_duration: + :type blob_duration: str + :param log_filter_pattern: + :type log_filter_pattern: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'blob_duration': {'key': 'blobDuration', 'type': 'str'}, + 'log_filter_pattern': {'key': 'logFilterPattern', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(LogSpecification, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.display_name = kwargs.get('display_name', None) + self.blob_duration = kwargs.get('blob_duration', None) + self.log_filter_pattern = kwargs.get('log_filter_pattern', None) + + +class ManagedServiceIdentity(msrest.serialization.Model): + """Managed service identity. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param type: Type of managed service identity. Possible values include: "SystemAssigned", + "UserAssigned", "SystemAssigned, UserAssigned", "None". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.ManagedServiceIdentityType + :ivar tenant_id: Tenant of managed service identity. + :vartype tenant_id: str + :ivar principal_id: Principal Id of managed service identity. + :vartype principal_id: str + :param user_assigned_identities: The list of user assigned identities associated with the + resource. The user identity dictionary key references will be ARM resource ids in the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + :type user_assigned_identities: dict[str, + ~azure.mgmt.web.v2021_01_15.models.UserAssignedIdentity] + """ + + _validation = { + 'tenant_id': {'readonly': True}, + 'principal_id': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'user_assigned_identities': {'key': 'userAssignedIdentities', 'type': '{UserAssignedIdentity}'}, + } + + def __init__( + self, + **kwargs + ): + super(ManagedServiceIdentity, self).__init__(**kwargs) + self.type = kwargs.get('type', None) + self.tenant_id = None + self.principal_id = None + self.user_assigned_identities = kwargs.get('user_assigned_identities', None) + + +class MetricAvailability(msrest.serialization.Model): + """Retention policy of a resource metric. + + :param time_grain: + :type time_grain: str + :param blob_duration: + :type blob_duration: str + """ + + _attribute_map = { + 'time_grain': {'key': 'timeGrain', 'type': 'str'}, + 'blob_duration': {'key': 'blobDuration', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(MetricAvailability, self).__init__(**kwargs) + self.time_grain = kwargs.get('time_grain', None) + self.blob_duration = kwargs.get('blob_duration', None) + + +class MetricSpecification(msrest.serialization.Model): + """Definition of a single resource metric. + + :param name: + :type name: str + :param display_name: + :type display_name: str + :param display_description: + :type display_description: str + :param unit: + :type unit: str + :param aggregation_type: + :type aggregation_type: str + :param supports_instance_level_aggregation: + :type supports_instance_level_aggregation: bool + :param enable_regional_mdm_account: + :type enable_regional_mdm_account: bool + :param source_mdm_account: + :type source_mdm_account: str + :param source_mdm_namespace: + :type source_mdm_namespace: str + :param metric_filter_pattern: + :type metric_filter_pattern: str + :param fill_gap_with_zero: + :type fill_gap_with_zero: bool + :param is_internal: + :type is_internal: bool + :param dimensions: + :type dimensions: list[~azure.mgmt.web.v2021_01_15.models.Dimension] + :param category: + :type category: str + :param availabilities: + :type availabilities: list[~azure.mgmt.web.v2021_01_15.models.MetricAvailability] + :param supported_time_grain_types: + :type supported_time_grain_types: list[str] + :param supported_aggregation_types: + :type supported_aggregation_types: list[str] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'display_description': {'key': 'displayDescription', 'type': 'str'}, + 'unit': {'key': 'unit', 'type': 'str'}, + 'aggregation_type': {'key': 'aggregationType', 'type': 'str'}, + 'supports_instance_level_aggregation': {'key': 'supportsInstanceLevelAggregation', 'type': 'bool'}, + 'enable_regional_mdm_account': {'key': 'enableRegionalMdmAccount', 'type': 'bool'}, + 'source_mdm_account': {'key': 'sourceMdmAccount', 'type': 'str'}, + 'source_mdm_namespace': {'key': 'sourceMdmNamespace', 'type': 'str'}, + 'metric_filter_pattern': {'key': 'metricFilterPattern', 'type': 'str'}, + 'fill_gap_with_zero': {'key': 'fillGapWithZero', 'type': 'bool'}, + 'is_internal': {'key': 'isInternal', 'type': 'bool'}, + 'dimensions': {'key': 'dimensions', 'type': '[Dimension]'}, + 'category': {'key': 'category', 'type': 'str'}, + 'availabilities': {'key': 'availabilities', 'type': '[MetricAvailability]'}, + 'supported_time_grain_types': {'key': 'supportedTimeGrainTypes', 'type': '[str]'}, + 'supported_aggregation_types': {'key': 'supportedAggregationTypes', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(MetricSpecification, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.display_name = kwargs.get('display_name', None) + self.display_description = kwargs.get('display_description', None) + self.unit = kwargs.get('unit', None) + self.aggregation_type = kwargs.get('aggregation_type', None) + self.supports_instance_level_aggregation = kwargs.get('supports_instance_level_aggregation', None) + self.enable_regional_mdm_account = kwargs.get('enable_regional_mdm_account', None) + self.source_mdm_account = kwargs.get('source_mdm_account', None) + self.source_mdm_namespace = kwargs.get('source_mdm_namespace', None) + self.metric_filter_pattern = kwargs.get('metric_filter_pattern', None) + self.fill_gap_with_zero = kwargs.get('fill_gap_with_zero', None) + self.is_internal = kwargs.get('is_internal', None) + self.dimensions = kwargs.get('dimensions', None) + self.category = kwargs.get('category', None) + self.availabilities = kwargs.get('availabilities', None) + self.supported_time_grain_types = kwargs.get('supported_time_grain_types', None) + self.supported_aggregation_types = kwargs.get('supported_aggregation_types', None) + + +class MigrateMySqlRequest(ProxyOnlyResource): + """MySQL migration request. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param connection_string: Connection string to the remote MySQL database. + :type connection_string: str + :param migration_type: The type of migration operation to be done. Possible values include: + "LocalToRemote", "RemoteToLocal". + :type migration_type: str or ~azure.mgmt.web.v2021_01_15.models.MySqlMigrationType + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'connection_string': {'key': 'properties.connectionString', 'type': 'str'}, + 'migration_type': {'key': 'properties.migrationType', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(MigrateMySqlRequest, self).__init__(**kwargs) + self.connection_string = kwargs.get('connection_string', None) + self.migration_type = kwargs.get('migration_type', None) + + +class MigrateMySqlStatus(ProxyOnlyResource): + """MySQL migration status. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar migration_operation_status: Status of the migration task. Possible values include: + "InProgress", "Failed", "Succeeded", "TimedOut", "Created". + :vartype migration_operation_status: str or ~azure.mgmt.web.v2021_01_15.models.OperationStatus + :ivar operation_id: Operation ID for the migration task. + :vartype operation_id: str + :ivar local_my_sql_enabled: True if the web app has in app MySql enabled. + :vartype local_my_sql_enabled: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'migration_operation_status': {'readonly': True}, + 'operation_id': {'readonly': True}, + 'local_my_sql_enabled': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'migration_operation_status': {'key': 'properties.migrationOperationStatus', 'type': 'str'}, + 'operation_id': {'key': 'properties.operationId', 'type': 'str'}, + 'local_my_sql_enabled': {'key': 'properties.localMySqlEnabled', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(MigrateMySqlStatus, self).__init__(**kwargs) + self.migration_operation_status = None + self.operation_id = None + self.local_my_sql_enabled = None + + +class MSDeploy(ProxyOnlyResource): + """MSDeploy ARM PUT information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param package_uri: Package URI. + :type package_uri: str + :param connection_string: SQL Connection String. + :type connection_string: str + :param db_type: Database Type. + :type db_type: str + :param set_parameters_xml_file_uri: URI of MSDeploy Parameters file. Must not be set if + SetParameters is used. + :type set_parameters_xml_file_uri: str + :param set_parameters: MSDeploy Parameters. Must not be set if SetParametersXmlFileUri is used. + :type set_parameters: dict[str, str] + :param skip_app_data: Controls whether the MSDeploy operation skips the App_Data directory. + If set to :code:`true`, the existing App_Data directory on the destination + will not be deleted, and any App_Data directory in the source will be ignored. + Setting is :code:`false` by default. + :type skip_app_data: bool + :param app_offline: Sets the AppOffline rule while the MSDeploy operation executes. + Setting is :code:`false` by default. + :type app_offline: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'package_uri': {'key': 'properties.packageUri', 'type': 'str'}, + 'connection_string': {'key': 'properties.connectionString', 'type': 'str'}, + 'db_type': {'key': 'properties.dbType', 'type': 'str'}, + 'set_parameters_xml_file_uri': {'key': 'properties.setParametersXmlFileUri', 'type': 'str'}, + 'set_parameters': {'key': 'properties.setParameters', 'type': '{str}'}, + 'skip_app_data': {'key': 'properties.skipAppData', 'type': 'bool'}, + 'app_offline': {'key': 'properties.appOffline', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(MSDeploy, self).__init__(**kwargs) + self.package_uri = kwargs.get('package_uri', None) + self.connection_string = kwargs.get('connection_string', None) + self.db_type = kwargs.get('db_type', None) + self.set_parameters_xml_file_uri = kwargs.get('set_parameters_xml_file_uri', None) + self.set_parameters = kwargs.get('set_parameters', None) + self.skip_app_data = kwargs.get('skip_app_data', None) + self.app_offline = kwargs.get('app_offline', None) + + +class MSDeployLog(ProxyOnlyResource): + """MSDeploy log. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar entries: List of log entry messages. + :vartype entries: list[~azure.mgmt.web.v2021_01_15.models.MSDeployLogEntry] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'entries': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'entries': {'key': 'properties.entries', 'type': '[MSDeployLogEntry]'}, + } + + def __init__( + self, + **kwargs + ): + super(MSDeployLog, self).__init__(**kwargs) + self.entries = None + + +class MSDeployLogEntry(msrest.serialization.Model): + """MSDeploy log entry. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar time: Timestamp of log entry. + :vartype time: ~datetime.datetime + :ivar type: Log entry type. Possible values include: "Message", "Warning", "Error". + :vartype type: str or ~azure.mgmt.web.v2021_01_15.models.MSDeployLogEntryType + :ivar message: Log entry message. + :vartype message: str + """ + + _validation = { + 'time': {'readonly': True}, + 'type': {'readonly': True}, + 'message': {'readonly': True}, + } + + _attribute_map = { + 'time': {'key': 'time', 'type': 'iso-8601'}, + 'type': {'key': 'type', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(MSDeployLogEntry, self).__init__(**kwargs) + self.time = None + self.type = None + self.message = None + + +class MSDeployStatus(ProxyOnlyResource): + """MSDeploy ARM response. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar deployer: Username of deployer. + :vartype deployer: str + :ivar provisioning_state: Provisioning state. Possible values include: "accepted", "running", + "succeeded", "failed", "canceled". + :vartype provisioning_state: str or + ~azure.mgmt.web.v2021_01_15.models.MSDeployProvisioningState + :ivar start_time: Start time of deploy operation. + :vartype start_time: ~datetime.datetime + :ivar end_time: End time of deploy operation. + :vartype end_time: ~datetime.datetime + :ivar complete: Whether the deployment operation has completed. + :vartype complete: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'deployer': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'start_time': {'readonly': True}, + 'end_time': {'readonly': True}, + 'complete': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'deployer': {'key': 'properties.deployer', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'start_time': {'key': 'properties.startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'properties.endTime', 'type': 'iso-8601'}, + 'complete': {'key': 'properties.complete', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(MSDeployStatus, self).__init__(**kwargs) + self.deployer = None + self.provisioning_state = None + self.start_time = None + self.end_time = None + self.complete = None + + +class NameIdentifier(msrest.serialization.Model): + """Identifies an object. + + :param name: Name of the object. + :type name: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(NameIdentifier, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + + +class NameIdentifierCollection(msrest.serialization.Model): + """Collection of domain name identifiers. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.NameIdentifier] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[NameIdentifier]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(NameIdentifierCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class NameValuePair(msrest.serialization.Model): + """Name value pair. + + :param name: Pair name. + :type name: str + :param value: Pair value. + :type value: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(NameValuePair, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.value = kwargs.get('value', None) + + +class NetworkFeatures(ProxyOnlyResource): + """Full view of network features for an app (presently VNET integration and Hybrid Connections). + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar virtual_network_name: The Virtual Network name. + :vartype virtual_network_name: str + :ivar virtual_network_connection: The Virtual Network summary view. + :vartype virtual_network_connection: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :ivar hybrid_connections: The Hybrid Connections summary view. + :vartype hybrid_connections: + list[~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity] + :ivar hybrid_connections_v2: The Hybrid Connection V2 (Service Bus) view. + :vartype hybrid_connections_v2: list[~azure.mgmt.web.v2021_01_15.models.HybridConnection] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'virtual_network_name': {'readonly': True}, + 'virtual_network_connection': {'readonly': True}, + 'hybrid_connections': {'readonly': True}, + 'hybrid_connections_v2': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'virtual_network_name': {'key': 'properties.virtualNetworkName', 'type': 'str'}, + 'virtual_network_connection': {'key': 'properties.virtualNetworkConnection', 'type': 'VnetInfo'}, + 'hybrid_connections': {'key': 'properties.hybridConnections', 'type': '[RelayServiceConnectionEntity]'}, + 'hybrid_connections_v2': {'key': 'properties.hybridConnectionsV2', 'type': '[HybridConnection]'}, + } + + def __init__( + self, + **kwargs + ): + super(NetworkFeatures, self).__init__(**kwargs) + self.virtual_network_name = None + self.virtual_network_connection = None + self.hybrid_connections = None + self.hybrid_connections_v2 = None + + +class NetworkTrace(msrest.serialization.Model): + """Network trace. + + :param path: Local file path for the captured network trace file. + :type path: str + :param status: Current status of the network trace operation, same as Operation.Status + (InProgress/Succeeded/Failed). + :type status: str + :param message: Detailed message of a network trace operation, e.g. error message in case of + failure. + :type message: str + """ + + _attribute_map = { + 'path': {'key': 'path', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(NetworkTrace, self).__init__(**kwargs) + self.path = kwargs.get('path', None) + self.status = kwargs.get('status', None) + self.message = kwargs.get('message', None) + + +class Nonce(ProxyOnlyResource): + """The configuration settings of the nonce used in the login flow. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param validate_nonce: :code:`false` if the nonce should not be validated while + completing the login flow; otherwise, :code:`true`. + :type validate_nonce: bool + :param nonce_expiration_interval: The time after the request is made when the nonce should + expire. + :type nonce_expiration_interval: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'validate_nonce': {'key': 'properties.validateNonce', 'type': 'bool'}, + 'nonce_expiration_interval': {'key': 'properties.nonceExpirationInterval', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Nonce, self).__init__(**kwargs) + self.validate_nonce = kwargs.get('validate_nonce', None) + self.nonce_expiration_interval = kwargs.get('nonce_expiration_interval', None) + + +class OpenIdConnectClientCredential(ProxyOnlyResource): + """The authentication client credentials of the custom Open ID Connect provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param method: The method that should be used to authenticate the user. The only acceptable + values to pass in are None and "ClientSecretPost". The default value is None. + :type method: str + :param client_secret_setting_name: The app setting that contains the client secret for the + custom Open ID Connect provider. + :type client_secret_setting_name: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'method': {'key': 'properties.method', 'type': 'str'}, + 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(OpenIdConnectClientCredential, self).__init__(**kwargs) + self.method = kwargs.get('method', None) + self.client_secret_setting_name = kwargs.get('client_secret_setting_name', None) + + +class OpenIdConnectConfig(ProxyOnlyResource): + """The configuration settings of the endpoints used for the custom Open ID Connect provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param authorization_endpoint: The endpoint to be used to make an authorization request. + :type authorization_endpoint: str + :param token_endpoint: The endpoint to be used to request a token. + :type token_endpoint: str + :param issuer: The endpoint that issues the token. + :type issuer: str + :param certification_uri: The endpoint that provides the keys necessary to validate the token. + :type certification_uri: str + :param well_known_open_id_configuration: The endpoint that contains all the configuration + endpoints for the provider. + :type well_known_open_id_configuration: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'authorization_endpoint': {'key': 'properties.authorizationEndpoint', 'type': 'str'}, + 'token_endpoint': {'key': 'properties.tokenEndpoint', 'type': 'str'}, + 'issuer': {'key': 'properties.issuer', 'type': 'str'}, + 'certification_uri': {'key': 'properties.certificationUri', 'type': 'str'}, + 'well_known_open_id_configuration': {'key': 'properties.wellKnownOpenIdConfiguration', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(OpenIdConnectConfig, self).__init__(**kwargs) + self.authorization_endpoint = kwargs.get('authorization_endpoint', None) + self.token_endpoint = kwargs.get('token_endpoint', None) + self.issuer = kwargs.get('issuer', None) + self.certification_uri = kwargs.get('certification_uri', None) + self.well_known_open_id_configuration = kwargs.get('well_known_open_id_configuration', None) + + +class OpenIdConnectLogin(ProxyOnlyResource): + """The configuration settings of the login flow of the custom Open ID Connect provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param name_claim_type: The name of the claim that contains the users name. + :type name_claim_type: str + :param scopes: A list of the scopes that should be requested while authenticating. + :type scopes: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'name_claim_type': {'key': 'properties.nameClaimType', 'type': 'str'}, + 'scopes': {'key': 'properties.scopes', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(OpenIdConnectLogin, self).__init__(**kwargs) + self.name_claim_type = kwargs.get('name_claim_type', None) + self.scopes = kwargs.get('scopes', None) + + +class OpenIdConnectRegistration(ProxyOnlyResource): + """The configuration settings of the app registration for the custom Open ID Connect provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param client_id: The client id of the custom Open ID Connect provider. + :type client_id: str + :param client_credential: The authentication credentials of the custom Open ID Connect + provider. + :type client_credential: ~azure.mgmt.web.v2021_01_15.models.OpenIdConnectClientCredential + :param open_id_connect_configuration: The configuration settings of the endpoints used for the + custom Open ID Connect provider. + :type open_id_connect_configuration: ~azure.mgmt.web.v2021_01_15.models.OpenIdConnectConfig + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'client_id': {'key': 'properties.clientId', 'type': 'str'}, + 'client_credential': {'key': 'properties.clientCredential', 'type': 'OpenIdConnectClientCredential'}, + 'open_id_connect_configuration': {'key': 'properties.openIdConnectConfiguration', 'type': 'OpenIdConnectConfig'}, + } + + def __init__( + self, + **kwargs + ): + super(OpenIdConnectRegistration, self).__init__(**kwargs) + self.client_id = kwargs.get('client_id', None) + self.client_credential = kwargs.get('client_credential', None) + self.open_id_connect_configuration = kwargs.get('open_id_connect_configuration', None) + + +class Operation(msrest.serialization.Model): + """An operation on a resource. + + :param id: Operation ID. + :type id: str + :param name: Operation name. + :type name: str + :param status: The current status of the operation. Possible values include: "InProgress", + "Failed", "Succeeded", "TimedOut", "Created". + :type status: str or ~azure.mgmt.web.v2021_01_15.models.OperationStatus + :param errors: Any errors associate with the operation. + :type errors: list[~azure.mgmt.web.v2021_01_15.models.ErrorEntity] + :param created_time: Time when operation has started. + :type created_time: ~datetime.datetime + :param modified_time: Time when operation has been updated. + :type modified_time: ~datetime.datetime + :param expiration_time: Time when operation will expire. + :type expiration_time: ~datetime.datetime + :param geo_master_operation_id: Applicable only for stamp operation ids. + :type geo_master_operation_id: str + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'errors': {'key': 'errors', 'type': '[ErrorEntity]'}, + 'created_time': {'key': 'createdTime', 'type': 'iso-8601'}, + 'modified_time': {'key': 'modifiedTime', 'type': 'iso-8601'}, + 'expiration_time': {'key': 'expirationTime', 'type': 'iso-8601'}, + 'geo_master_operation_id': {'key': 'geoMasterOperationId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Operation, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.name = kwargs.get('name', None) + self.status = kwargs.get('status', None) + self.errors = kwargs.get('errors', None) + self.created_time = kwargs.get('created_time', None) + self.modified_time = kwargs.get('modified_time', None) + self.expiration_time = kwargs.get('expiration_time', None) + self.geo_master_operation_id = kwargs.get('geo_master_operation_id', None) + + +class OutboundEnvironmentEndpoint(msrest.serialization.Model): + """Endpoints accessed for a common purpose that the App Service Environment requires outbound network access to. + + :param category: The type of service accessed by the App Service Environment, e.g., Azure + Storage, Azure SQL Database, and Azure Active Directory. + :type category: str + :param endpoints: The endpoints that the App Service Environment reaches the service at. + :type endpoints: list[~azure.mgmt.web.v2021_01_15.models.EndpointDependency] + """ + + _attribute_map = { + 'category': {'key': 'category', 'type': 'str'}, + 'endpoints': {'key': 'endpoints', 'type': '[EndpointDependency]'}, + } + + def __init__( + self, + **kwargs + ): + super(OutboundEnvironmentEndpoint, self).__init__(**kwargs) + self.category = kwargs.get('category', None) + self.endpoints = kwargs.get('endpoints', None) + + +class OutboundEnvironmentEndpointCollection(msrest.serialization.Model): + """Collection of Outbound Environment Endpoints. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.OutboundEnvironmentEndpoint] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[OutboundEnvironmentEndpoint]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(OutboundEnvironmentEndpointCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class PerfMonCounterCollection(msrest.serialization.Model): + """Collection of performance monitor counters. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.PerfMonResponse] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PerfMonResponse]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PerfMonCounterCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class PerfMonResponse(msrest.serialization.Model): + """Performance monitor API response. + + :param code: The response code. + :type code: str + :param message: The message. + :type message: str + :param data: The performance monitor counters. + :type data: ~azure.mgmt.web.v2021_01_15.models.PerfMonSet + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'data': {'key': 'data', 'type': 'PerfMonSet'}, + } + + def __init__( + self, + **kwargs + ): + super(PerfMonResponse, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.data = kwargs.get('data', None) + + +class PerfMonSample(msrest.serialization.Model): + """Performance monitor sample in a set. + + :param time: Point in time for which counter was measured. + :type time: ~datetime.datetime + :param instance_name: Name of the server on which the measurement is made. + :type instance_name: str + :param value: Value of counter at a certain time. + :type value: float + """ + + _attribute_map = { + 'time': {'key': 'time', 'type': 'iso-8601'}, + 'instance_name': {'key': 'instanceName', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'float'}, + } + + def __init__( + self, + **kwargs + ): + super(PerfMonSample, self).__init__(**kwargs) + self.time = kwargs.get('time', None) + self.instance_name = kwargs.get('instance_name', None) + self.value = kwargs.get('value', None) + + +class PerfMonSet(msrest.serialization.Model): + """Metric information. + + :param name: Unique key name of the counter. + :type name: str + :param start_time: Start time of the period. + :type start_time: ~datetime.datetime + :param end_time: End time of the period. + :type end_time: ~datetime.datetime + :param time_grain: Presented time grain. + :type time_grain: str + :param values: Collection of workers that are active during this time. + :type values: list[~azure.mgmt.web.v2021_01_15.models.PerfMonSample] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'time_grain': {'key': 'timeGrain', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[PerfMonSample]'}, + } + + def __init__( + self, + **kwargs + ): + super(PerfMonSet, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.time_grain = kwargs.get('time_grain', None) + self.values = kwargs.get('values', None) + + +class PremierAddOn(Resource): + """Premier add-on. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param sku: Premier add on SKU. + :type sku: str + :param product: Premier add on Product. + :type product: str + :param vendor: Premier add on Vendor. + :type vendor: str + :param marketplace_publisher: Premier add on Marketplace publisher. + :type marketplace_publisher: str + :param marketplace_offer: Premier add on Marketplace offer. + :type marketplace_offer: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'sku': {'key': 'properties.sku', 'type': 'str'}, + 'product': {'key': 'properties.product', 'type': 'str'}, + 'vendor': {'key': 'properties.vendor', 'type': 'str'}, + 'marketplace_publisher': {'key': 'properties.marketplacePublisher', 'type': 'str'}, + 'marketplace_offer': {'key': 'properties.marketplaceOffer', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PremierAddOn, self).__init__(**kwargs) + self.sku = kwargs.get('sku', None) + self.product = kwargs.get('product', None) + self.vendor = kwargs.get('vendor', None) + self.marketplace_publisher = kwargs.get('marketplace_publisher', None) + self.marketplace_offer = kwargs.get('marketplace_offer', None) + + +class PremierAddOnOffer(ProxyOnlyResource): + """Premier add-on offer. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param sku: Premier add on SKU. + :type sku: str + :param product: Premier add on offer Product. + :type product: str + :param vendor: Premier add on offer Vendor. + :type vendor: str + :param promo_code_required: :code:`true` if promotion code is required; otherwise, + :code:`false`. + :type promo_code_required: bool + :param quota: Premier add on offer Quota. + :type quota: int + :param web_hosting_plan_restrictions: App Service plans this offer is restricted to. Possible + values include: "None", "Free", "Shared", "Basic", "Standard", "Premium". + :type web_hosting_plan_restrictions: str or + ~azure.mgmt.web.v2021_01_15.models.AppServicePlanRestrictions + :param privacy_policy_url: Privacy policy URL. + :type privacy_policy_url: str + :param legal_terms_url: Legal terms URL. + :type legal_terms_url: str + :param marketplace_publisher: Marketplace publisher. + :type marketplace_publisher: str + :param marketplace_offer: Marketplace offer. + :type marketplace_offer: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'sku': {'key': 'properties.sku', 'type': 'str'}, + 'product': {'key': 'properties.product', 'type': 'str'}, + 'vendor': {'key': 'properties.vendor', 'type': 'str'}, + 'promo_code_required': {'key': 'properties.promoCodeRequired', 'type': 'bool'}, + 'quota': {'key': 'properties.quota', 'type': 'int'}, + 'web_hosting_plan_restrictions': {'key': 'properties.webHostingPlanRestrictions', 'type': 'str'}, + 'privacy_policy_url': {'key': 'properties.privacyPolicyUrl', 'type': 'str'}, + 'legal_terms_url': {'key': 'properties.legalTermsUrl', 'type': 'str'}, + 'marketplace_publisher': {'key': 'properties.marketplacePublisher', 'type': 'str'}, + 'marketplace_offer': {'key': 'properties.marketplaceOffer', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PremierAddOnOffer, self).__init__(**kwargs) + self.sku = kwargs.get('sku', None) + self.product = kwargs.get('product', None) + self.vendor = kwargs.get('vendor', None) + self.promo_code_required = kwargs.get('promo_code_required', None) + self.quota = kwargs.get('quota', None) + self.web_hosting_plan_restrictions = kwargs.get('web_hosting_plan_restrictions', None) + self.privacy_policy_url = kwargs.get('privacy_policy_url', None) + self.legal_terms_url = kwargs.get('legal_terms_url', None) + self.marketplace_publisher = kwargs.get('marketplace_publisher', None) + self.marketplace_offer = kwargs.get('marketplace_offer', None) + + +class PremierAddOnOfferCollection(msrest.serialization.Model): + """Collection of premier add-on offers. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.PremierAddOnOffer] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PremierAddOnOffer]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PremierAddOnOfferCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class PremierAddOnPatchResource(ProxyOnlyResource): + """ARM resource for a PremierAddOn. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param sku: Premier add on SKU. + :type sku: str + :param product: Premier add on Product. + :type product: str + :param vendor: Premier add on Vendor. + :type vendor: str + :param marketplace_publisher: Premier add on Marketplace publisher. + :type marketplace_publisher: str + :param marketplace_offer: Premier add on Marketplace offer. + :type marketplace_offer: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'sku': {'key': 'properties.sku', 'type': 'str'}, + 'product': {'key': 'properties.product', 'type': 'str'}, + 'vendor': {'key': 'properties.vendor', 'type': 'str'}, + 'marketplace_publisher': {'key': 'properties.marketplacePublisher', 'type': 'str'}, + 'marketplace_offer': {'key': 'properties.marketplaceOffer', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PremierAddOnPatchResource, self).__init__(**kwargs) + self.sku = kwargs.get('sku', None) + self.product = kwargs.get('product', None) + self.vendor = kwargs.get('vendor', None) + self.marketplace_publisher = kwargs.get('marketplace_publisher', None) + self.marketplace_offer = kwargs.get('marketplace_offer', None) + + +class PrivateAccess(ProxyOnlyResource): + """Description of the parameters of Private Access for a Web Site. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: Whether private access is enabled or not. + :type enabled: bool + :param virtual_networks: The Virtual Networks (and subnets) allowed to access the site + privately. + :type virtual_networks: list[~azure.mgmt.web.v2021_01_15.models.PrivateAccessVirtualNetwork] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'virtual_networks': {'key': 'properties.virtualNetworks', 'type': '[PrivateAccessVirtualNetwork]'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateAccess, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.virtual_networks = kwargs.get('virtual_networks', None) + + +class PrivateAccessSubnet(msrest.serialization.Model): + """Description of a Virtual Network subnet that is useable for private site access. + + :param name: The name of the subnet. + :type name: str + :param key: The key (ID) of the subnet. + :type key: int + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'key': {'key': 'key', 'type': 'int'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateAccessSubnet, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.key = kwargs.get('key', None) + + +class PrivateAccessVirtualNetwork(msrest.serialization.Model): + """Description of a Virtual Network that is useable for private site access. + + :param name: The name of the Virtual Network. + :type name: str + :param key: The key (ID) of the Virtual Network. + :type key: int + :param resource_id: The ARM uri of the Virtual Network. + :type resource_id: str + :param subnets: A List of subnets that access is allowed to on this Virtual Network. An empty + array (but not null) is interpreted to mean that all subnets are allowed within this Virtual + Network. + :type subnets: list[~azure.mgmt.web.v2021_01_15.models.PrivateAccessSubnet] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'key': {'key': 'key', 'type': 'int'}, + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + 'subnets': {'key': 'subnets', 'type': '[PrivateAccessSubnet]'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateAccessVirtualNetwork, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.key = kwargs.get('key', None) + self.resource_id = kwargs.get('resource_id', None) + self.subnets = kwargs.get('subnets', None) + + +class PrivateEndpointConnectionCollection(msrest.serialization.Model): + """PrivateEndpointConnectionCollection. + + 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 value: Required. Collection of resources. + :type value: + list[~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[RemotePrivateEndpointConnectionARMResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateEndpointConnectionCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class PrivateLinkConnectionApprovalRequestResource(ProxyOnlyResource): + """Private Endpoint Connection Approval ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param private_link_service_connection_state: The state of a private link connection. + :type private_link_service_connection_state: + ~azure.mgmt.web.v2021_01_15.models.PrivateLinkConnectionState + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'private_link_service_connection_state': {'key': 'properties.privateLinkServiceConnectionState', 'type': 'PrivateLinkConnectionState'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkConnectionApprovalRequestResource, self).__init__(**kwargs) + self.private_link_service_connection_state = kwargs.get('private_link_service_connection_state', None) + + +class PrivateLinkConnectionState(msrest.serialization.Model): + """The state of a private link connection. + + :param status: Status of a private link connection. + :type status: str + :param description: Description of a private link connection. + :type description: str + :param actions_required: ActionsRequired for a private link connection. + :type actions_required: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'actions_required': {'key': 'actionsRequired', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkConnectionState, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.description = kwargs.get('description', None) + self.actions_required = kwargs.get('actions_required', None) + + +class PrivateLinkResource(msrest.serialization.Model): + """A private link resource. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. + :type id: str + :param name: Required. Name of a private link resource. + :type name: str + :param type: Required. + :type type: str + :param properties: Required. Properties of a private link resource. + :type properties: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkResourceProperties + """ + + _validation = { + 'id': {'required': True}, + 'name': {'required': True}, + 'type': {'required': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'PrivateLinkResourceProperties'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkResource, self).__init__(**kwargs) + self.id = kwargs['id'] + self.name = kwargs['name'] + self.type = kwargs['type'] + self.properties = kwargs['properties'] + + +class PrivateLinkResourceProperties(msrest.serialization.Model): + """Properties of a private link resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar group_id: GroupId of a private link resource. + :vartype group_id: str + :ivar required_members: RequiredMembers of a private link resource. + :vartype required_members: list[str] + :ivar required_zone_names: RequiredZoneNames of a private link resource. + :vartype required_zone_names: list[str] + """ + + _validation = { + 'group_id': {'readonly': True}, + 'required_members': {'readonly': True}, + 'required_zone_names': {'readonly': True}, + } + + _attribute_map = { + 'group_id': {'key': 'groupId', 'type': 'str'}, + 'required_members': {'key': 'requiredMembers', 'type': '[str]'}, + 'required_zone_names': {'key': 'requiredZoneNames', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkResourceProperties, self).__init__(**kwargs) + self.group_id = None + self.required_members = None + self.required_zone_names = None + + +class PrivateLinkResourcesWrapper(msrest.serialization.Model): + """Wrapper for a collection of private link resources. + + All required parameters must be populated in order to send to Azure. + + :param value: Required. + :type value: list[~azure.mgmt.web.v2021_01_15.models.PrivateLinkResource] + """ + + _validation = { + 'value': {'required': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PrivateLinkResource]'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkResourcesWrapper, self).__init__(**kwargs) + self.value = kwargs['value'] + + +class ProcessInfo(ProxyOnlyResource): + """Process Information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar identifier: ARM Identifier for deployment. + :vartype identifier: int + :param deployment_name: Deployment name. + :type deployment_name: str + :param href: HRef URI. + :type href: str + :param minidump: Minidump URI. + :type minidump: str + :param is_profile_running: Is profile running?. + :type is_profile_running: bool + :param is_iis_profile_running: Is the IIS Profile running?. + :type is_iis_profile_running: bool + :param iis_profile_timeout_in_seconds: IIS Profile timeout (seconds). + :type iis_profile_timeout_in_seconds: float + :param parent: Parent process. + :type parent: str + :param children: Child process list. + :type children: list[str] + :param threads: Thread list. + :type threads: list[~azure.mgmt.web.v2021_01_15.models.ProcessThreadInfo] + :param open_file_handles: List of open files. + :type open_file_handles: list[str] + :param modules: List of modules. + :type modules: list[~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfo] + :param file_name: File name of this process. + :type file_name: str + :param command_line: Command line. + :type command_line: str + :param user_name: User name. + :type user_name: str + :param handle_count: Handle count. + :type handle_count: int + :param module_count: Module count. + :type module_count: int + :param thread_count: Thread count. + :type thread_count: int + :param start_time: Start time. + :type start_time: ~datetime.datetime + :param total_cpu_time: Total CPU time. + :type total_cpu_time: str + :param user_cpu_time: User CPU time. + :type user_cpu_time: str + :param privileged_cpu_time: Privileged CPU time. + :type privileged_cpu_time: str + :param working_set: Working set. + :type working_set: long + :param peak_working_set: Peak working set. + :type peak_working_set: long + :param private_memory: Private memory size. + :type private_memory: long + :param virtual_memory: Virtual memory size. + :type virtual_memory: long + :param peak_virtual_memory: Peak virtual memory usage. + :type peak_virtual_memory: long + :param paged_system_memory: Paged system memory. + :type paged_system_memory: long + :param non_paged_system_memory: Non-paged system memory. + :type non_paged_system_memory: long + :param paged_memory: Paged memory. + :type paged_memory: long + :param peak_paged_memory: Peak paged memory. + :type peak_paged_memory: long + :param time_stamp: Time stamp. + :type time_stamp: ~datetime.datetime + :param environment_variables: List of environment variables. + :type environment_variables: dict[str, str] + :param is_scm_site: Is this the SCM site?. + :type is_scm_site: bool + :param is_webjob: Is this a Web Job?. + :type is_webjob: bool + :param description: Description of process. + :type description: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'identifier': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'identifier': {'key': 'properties.identifier', 'type': 'int'}, + 'deployment_name': {'key': 'properties.deployment_name', 'type': 'str'}, + 'href': {'key': 'properties.href', 'type': 'str'}, + 'minidump': {'key': 'properties.minidump', 'type': 'str'}, + 'is_profile_running': {'key': 'properties.is_profile_running', 'type': 'bool'}, + 'is_iis_profile_running': {'key': 'properties.is_iis_profile_running', 'type': 'bool'}, + 'iis_profile_timeout_in_seconds': {'key': 'properties.iis_profile_timeout_in_seconds', 'type': 'float'}, + 'parent': {'key': 'properties.parent', 'type': 'str'}, + 'children': {'key': 'properties.children', 'type': '[str]'}, + 'threads': {'key': 'properties.threads', 'type': '[ProcessThreadInfo]'}, + 'open_file_handles': {'key': 'properties.open_file_handles', 'type': '[str]'}, + 'modules': {'key': 'properties.modules', 'type': '[ProcessModuleInfo]'}, + 'file_name': {'key': 'properties.file_name', 'type': 'str'}, + 'command_line': {'key': 'properties.command_line', 'type': 'str'}, + 'user_name': {'key': 'properties.user_name', 'type': 'str'}, + 'handle_count': {'key': 'properties.handle_count', 'type': 'int'}, + 'module_count': {'key': 'properties.module_count', 'type': 'int'}, + 'thread_count': {'key': 'properties.thread_count', 'type': 'int'}, + 'start_time': {'key': 'properties.start_time', 'type': 'iso-8601'}, + 'total_cpu_time': {'key': 'properties.total_cpu_time', 'type': 'str'}, + 'user_cpu_time': {'key': 'properties.user_cpu_time', 'type': 'str'}, + 'privileged_cpu_time': {'key': 'properties.privileged_cpu_time', 'type': 'str'}, + 'working_set': {'key': 'properties.working_set', 'type': 'long'}, + 'peak_working_set': {'key': 'properties.peak_working_set', 'type': 'long'}, + 'private_memory': {'key': 'properties.private_memory', 'type': 'long'}, + 'virtual_memory': {'key': 'properties.virtual_memory', 'type': 'long'}, + 'peak_virtual_memory': {'key': 'properties.peak_virtual_memory', 'type': 'long'}, + 'paged_system_memory': {'key': 'properties.paged_system_memory', 'type': 'long'}, + 'non_paged_system_memory': {'key': 'properties.non_paged_system_memory', 'type': 'long'}, + 'paged_memory': {'key': 'properties.paged_memory', 'type': 'long'}, + 'peak_paged_memory': {'key': 'properties.peak_paged_memory', 'type': 'long'}, + 'time_stamp': {'key': 'properties.time_stamp', 'type': 'iso-8601'}, + 'environment_variables': {'key': 'properties.environment_variables', 'type': '{str}'}, + 'is_scm_site': {'key': 'properties.is_scm_site', 'type': 'bool'}, + 'is_webjob': {'key': 'properties.is_webjob', 'type': 'bool'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ProcessInfo, self).__init__(**kwargs) + self.identifier = None + self.deployment_name = kwargs.get('deployment_name', None) + self.href = kwargs.get('href', None) + self.minidump = kwargs.get('minidump', None) + self.is_profile_running = kwargs.get('is_profile_running', None) + self.is_iis_profile_running = kwargs.get('is_iis_profile_running', None) + self.iis_profile_timeout_in_seconds = kwargs.get('iis_profile_timeout_in_seconds', None) + self.parent = kwargs.get('parent', None) + self.children = kwargs.get('children', None) + self.threads = kwargs.get('threads', None) + self.open_file_handles = kwargs.get('open_file_handles', None) + self.modules = kwargs.get('modules', None) + self.file_name = kwargs.get('file_name', None) + self.command_line = kwargs.get('command_line', None) + self.user_name = kwargs.get('user_name', None) + self.handle_count = kwargs.get('handle_count', None) + self.module_count = kwargs.get('module_count', None) + self.thread_count = kwargs.get('thread_count', None) + self.start_time = kwargs.get('start_time', None) + self.total_cpu_time = kwargs.get('total_cpu_time', None) + self.user_cpu_time = kwargs.get('user_cpu_time', None) + self.privileged_cpu_time = kwargs.get('privileged_cpu_time', None) + self.working_set = kwargs.get('working_set', None) + self.peak_working_set = kwargs.get('peak_working_set', None) + self.private_memory = kwargs.get('private_memory', None) + self.virtual_memory = kwargs.get('virtual_memory', None) + self.peak_virtual_memory = kwargs.get('peak_virtual_memory', None) + self.paged_system_memory = kwargs.get('paged_system_memory', None) + self.non_paged_system_memory = kwargs.get('non_paged_system_memory', None) + self.paged_memory = kwargs.get('paged_memory', None) + self.peak_paged_memory = kwargs.get('peak_paged_memory', None) + self.time_stamp = kwargs.get('time_stamp', None) + self.environment_variables = kwargs.get('environment_variables', None) + self.is_scm_site = kwargs.get('is_scm_site', None) + self.is_webjob = kwargs.get('is_webjob', None) + self.description = kwargs.get('description', None) + + +class ProcessInfoCollection(msrest.serialization.Model): + """Collection of Kudu process information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.ProcessInfo] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ProcessInfo]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ProcessInfoCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class ProcessModuleInfo(ProxyOnlyResource): + """Process Module Information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param base_address: Base address. Used as module identifier in ARM resource URI. + :type base_address: str + :param file_name: File name. + :type file_name: str + :param href: HRef URI. + :type href: str + :param file_path: File path. + :type file_path: str + :param module_memory_size: Module memory size. + :type module_memory_size: int + :param file_version: File version. + :type file_version: str + :param file_description: File description. + :type file_description: str + :param product: Product name. + :type product: str + :param product_version: Product version. + :type product_version: str + :param is_debug: Is debug?. + :type is_debug: bool + :param language: Module language (locale). + :type language: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'base_address': {'key': 'properties.base_address', 'type': 'str'}, + 'file_name': {'key': 'properties.file_name', 'type': 'str'}, + 'href': {'key': 'properties.href', 'type': 'str'}, + 'file_path': {'key': 'properties.file_path', 'type': 'str'}, + 'module_memory_size': {'key': 'properties.module_memory_size', 'type': 'int'}, + 'file_version': {'key': 'properties.file_version', 'type': 'str'}, + 'file_description': {'key': 'properties.file_description', 'type': 'str'}, + 'product': {'key': 'properties.product', 'type': 'str'}, + 'product_version': {'key': 'properties.product_version', 'type': 'str'}, + 'is_debug': {'key': 'properties.is_debug', 'type': 'bool'}, + 'language': {'key': 'properties.language', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ProcessModuleInfo, self).__init__(**kwargs) + self.base_address = kwargs.get('base_address', None) + self.file_name = kwargs.get('file_name', None) + self.href = kwargs.get('href', None) + self.file_path = kwargs.get('file_path', None) + self.module_memory_size = kwargs.get('module_memory_size', None) + self.file_version = kwargs.get('file_version', None) + self.file_description = kwargs.get('file_description', None) + self.product = kwargs.get('product', None) + self.product_version = kwargs.get('product_version', None) + self.is_debug = kwargs.get('is_debug', None) + self.language = kwargs.get('language', None) + + +class ProcessModuleInfoCollection(msrest.serialization.Model): + """Collection of Kudu thread information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfo] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ProcessModuleInfo]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ProcessModuleInfoCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class ProcessThreadInfo(ProxyOnlyResource): + """Process Thread Information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar identifier: Site extension ID. + :vartype identifier: int + :param href: HRef URI. + :type href: str + :param process: Process URI. + :type process: str + :param start_address: Start address. + :type start_address: str + :param current_priority: Current thread priority. + :type current_priority: int + :param priority_level: Thread priority level. + :type priority_level: str + :param base_priority: Base priority. + :type base_priority: int + :param start_time: Start time. + :type start_time: ~datetime.datetime + :param total_processor_time: Total processor time. + :type total_processor_time: str + :param user_processor_time: User processor time. + :type user_processor_time: str + :param state: Thread state. + :type state: str + :param wait_reason: Wait reason. + :type wait_reason: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'identifier': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'identifier': {'key': 'properties.identifier', 'type': 'int'}, + 'href': {'key': 'properties.href', 'type': 'str'}, + 'process': {'key': 'properties.process', 'type': 'str'}, + 'start_address': {'key': 'properties.start_address', 'type': 'str'}, + 'current_priority': {'key': 'properties.current_priority', 'type': 'int'}, + 'priority_level': {'key': 'properties.priority_level', 'type': 'str'}, + 'base_priority': {'key': 'properties.base_priority', 'type': 'int'}, + 'start_time': {'key': 'properties.start_time', 'type': 'iso-8601'}, + 'total_processor_time': {'key': 'properties.total_processor_time', 'type': 'str'}, + 'user_processor_time': {'key': 'properties.user_processor_time', 'type': 'str'}, + 'state': {'key': 'properties.state', 'type': 'str'}, + 'wait_reason': {'key': 'properties.wait_reason', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ProcessThreadInfo, self).__init__(**kwargs) + self.identifier = None + self.href = kwargs.get('href', None) + self.process = kwargs.get('process', None) + self.start_address = kwargs.get('start_address', None) + self.current_priority = kwargs.get('current_priority', None) + self.priority_level = kwargs.get('priority_level', None) + self.base_priority = kwargs.get('base_priority', None) + self.start_time = kwargs.get('start_time', None) + self.total_processor_time = kwargs.get('total_processor_time', None) + self.user_processor_time = kwargs.get('user_processor_time', None) + self.state = kwargs.get('state', None) + self.wait_reason = kwargs.get('wait_reason', None) + + +class ProcessThreadInfoCollection(msrest.serialization.Model): + """Collection of Kudu thread information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.ProcessThreadInfo] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ProcessThreadInfo]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ProcessThreadInfoCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class PublicCertificate(ProxyOnlyResource): + """Public certificate object. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param blob: Public Certificate byte array. + :type blob: bytearray + :param public_certificate_location: Public Certificate Location. Possible values include: + "CurrentUserMy", "LocalMachineMy", "Unknown". + :type public_certificate_location: str or + ~azure.mgmt.web.v2021_01_15.models.PublicCertificateLocation + :ivar thumbprint: Certificate Thumbprint. + :vartype thumbprint: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'thumbprint': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'blob': {'key': 'properties.blob', 'type': 'bytearray'}, + 'public_certificate_location': {'key': 'properties.publicCertificateLocation', 'type': 'str'}, + 'thumbprint': {'key': 'properties.thumbprint', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PublicCertificate, self).__init__(**kwargs) + self.blob = kwargs.get('blob', None) + self.public_certificate_location = kwargs.get('public_certificate_location', None) + self.thumbprint = None + + +class PublicCertificateCollection(msrest.serialization.Model): + """Collection of public certificates. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.PublicCertificate] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PublicCertificate]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PublicCertificateCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class PublishingCredentialsPoliciesCollection(msrest.serialization.Model): + """Publishing Credentials Policies entity collection ARM resource. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[CsmPublishingCredentialsPoliciesEntity]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PublishingCredentialsPoliciesCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class PushSettings(ProxyOnlyResource): + """Push settings for the App. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param is_push_enabled: Gets or sets a flag indicating whether the Push endpoint is enabled. + :type is_push_enabled: bool + :param tag_whitelist_json: Gets or sets a JSON string containing a list of tags that are + whitelisted for use by the push registration endpoint. + :type tag_whitelist_json: str + :param tags_requiring_auth: Gets or sets a JSON string containing a list of tags that require + user authentication to be used in the push registration endpoint. + Tags can consist of alphanumeric characters and the following: + '_', '@', '#', '.', ':', '-'. + Validation should be performed at the PushRequestHandler. + :type tags_requiring_auth: str + :param dynamic_tags_json: Gets or sets a JSON string containing a list of dynamic tags that + will be evaluated from user claims in the push registration endpoint. + :type dynamic_tags_json: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'is_push_enabled': {'key': 'properties.isPushEnabled', 'type': 'bool'}, + 'tag_whitelist_json': {'key': 'properties.tagWhitelistJson', 'type': 'str'}, + 'tags_requiring_auth': {'key': 'properties.tagsRequiringAuth', 'type': 'str'}, + 'dynamic_tags_json': {'key': 'properties.dynamicTagsJson', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PushSettings, self).__init__(**kwargs) + self.is_push_enabled = kwargs.get('is_push_enabled', None) + self.tag_whitelist_json = kwargs.get('tag_whitelist_json', None) + self.tags_requiring_auth = kwargs.get('tags_requiring_auth', None) + self.dynamic_tags_json = kwargs.get('dynamic_tags_json', None) + + +class QueryUtterancesResult(msrest.serialization.Model): + """Result for utterances query. + + :param sample_utterance: A sample utterance. + :type sample_utterance: ~azure.mgmt.web.v2021_01_15.models.SampleUtterance + :param score: Score of a sample utterance. + :type score: float + """ + + _attribute_map = { + 'sample_utterance': {'key': 'sampleUtterance', 'type': 'SampleUtterance'}, + 'score': {'key': 'score', 'type': 'float'}, + } + + def __init__( + self, + **kwargs + ): + super(QueryUtterancesResult, self).__init__(**kwargs) + self.sample_utterance = kwargs.get('sample_utterance', None) + self.score = kwargs.get('score', None) + + +class QueryUtterancesResults(msrest.serialization.Model): + """Suggested utterances where the detector can be applicable. + + :param query: Search Query. + :type query: str + :param results: Array of utterance results for search query. + :type results: list[~azure.mgmt.web.v2021_01_15.models.QueryUtterancesResult] + """ + + _attribute_map = { + 'query': {'key': 'query', 'type': 'str'}, + 'results': {'key': 'results', 'type': '[QueryUtterancesResult]'}, + } + + def __init__( + self, + **kwargs + ): + super(QueryUtterancesResults, self).__init__(**kwargs) + self.query = kwargs.get('query', None) + self.results = kwargs.get('results', None) + + +class RampUpRule(msrest.serialization.Model): + """Routing rules for ramp up testing. This rule allows to redirect static traffic % to a slot or to gradually change routing % based on performance. + + :param action_host_name: Hostname of a slot to which the traffic will be redirected if decided + to. E.g. myapp-stage.azurewebsites.net. + :type action_host_name: str + :param reroute_percentage: Percentage of the traffic which will be redirected to + :code:`ActionHostName`. + :type reroute_percentage: float + :param change_step: In auto ramp up scenario this is the step to add/remove from + :code:`ReroutePercentage` until it reaches + \n:code:`MinReroutePercentage` or + :code:`MaxReroutePercentage`. Site metrics are checked every N minutes specified + in :code:`ChangeIntervalInMinutes`.\nCustom decision algorithm + can be provided in TiPCallback site extension which URL can be specified in + :code:`ChangeDecisionCallbackUrl`. + :type change_step: float + :param change_interval_in_minutes: Specifies interval in minutes to reevaluate + ReroutePercentage. + :type change_interval_in_minutes: int + :param min_reroute_percentage: Specifies lower boundary above which ReroutePercentage will + stay. + :type min_reroute_percentage: float + :param max_reroute_percentage: Specifies upper boundary below which ReroutePercentage will + stay. + :type max_reroute_percentage: float + :param change_decision_callback_url: Custom decision algorithm can be provided in TiPCallback + site extension which URL can be specified. See TiPCallback site extension for the scaffold and + contracts. + https://www.siteextensions.net/packages/TiPCallback/. + :type change_decision_callback_url: str + :param name: Name of the routing rule. The recommended name would be to point to the slot which + will receive the traffic in the experiment. + :type name: str + """ + + _attribute_map = { + 'action_host_name': {'key': 'actionHostName', 'type': 'str'}, + 'reroute_percentage': {'key': 'reroutePercentage', 'type': 'float'}, + 'change_step': {'key': 'changeStep', 'type': 'float'}, + 'change_interval_in_minutes': {'key': 'changeIntervalInMinutes', 'type': 'int'}, + 'min_reroute_percentage': {'key': 'minReroutePercentage', 'type': 'float'}, + 'max_reroute_percentage': {'key': 'maxReroutePercentage', 'type': 'float'}, + 'change_decision_callback_url': {'key': 'changeDecisionCallbackUrl', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RampUpRule, self).__init__(**kwargs) + self.action_host_name = kwargs.get('action_host_name', None) + self.reroute_percentage = kwargs.get('reroute_percentage', None) + self.change_step = kwargs.get('change_step', None) + self.change_interval_in_minutes = kwargs.get('change_interval_in_minutes', None) + self.min_reroute_percentage = kwargs.get('min_reroute_percentage', None) + self.max_reroute_percentage = kwargs.get('max_reroute_percentage', None) + self.change_decision_callback_url = kwargs.get('change_decision_callback_url', None) + self.name = kwargs.get('name', None) + + +class Recommendation(ProxyOnlyResource): + """Represents a recommendation result generated by the recommendation engine. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param creation_time: Timestamp when this instance was created. + :type creation_time: ~datetime.datetime + :param recommendation_id: A GUID value that each recommendation object is associated with. + :type recommendation_id: str + :param resource_id: Full ARM resource ID string that this recommendation object is associated + with. + :type resource_id: str + :param resource_scope: Name of a resource type this recommendation applies, e.g. Subscription, + ServerFarm, Site. Possible values include: "ServerFarm", "Subscription", "WebSite". + :type resource_scope: str or ~azure.mgmt.web.v2021_01_15.models.ResourceScopeType + :param rule_name: Unique name of the rule. + :type rule_name: str + :param display_name: UI friendly name of the rule (may not be unique). + :type display_name: str + :param message: Recommendation text. + :type message: str + :param level: Level indicating how critical this recommendation can impact. Possible values + include: "Critical", "Warning", "Information", "NonUrgentSuggestion". + :type level: str or ~azure.mgmt.web.v2021_01_15.models.NotificationLevel + :param channels: List of channels that this recommendation can apply. Possible values include: + "Notification", "Api", "Email", "Webhook", "All". + :type channels: str or ~azure.mgmt.web.v2021_01_15.models.Channels + :ivar category_tags: The list of category tags that this recommendation belongs to. + :vartype category_tags: list[str] + :param action_name: Name of action recommended by this object. + :type action_name: str + :param enabled: True if this recommendation is still valid (i.e. "actionable"). False if it is + invalid. + :type enabled: int + :param states: The list of states of this recommendation. If it's null then it should be + considered "Active". + :type states: list[str] + :param start_time: The beginning time in UTC of a range that the recommendation refers to. + :type start_time: ~datetime.datetime + :param end_time: The end time in UTC of a range that the recommendation refers to. + :type end_time: ~datetime.datetime + :param next_notification_time: When to notify this recommendation next in UTC. Null means that + this will never be notified anymore. + :type next_notification_time: ~datetime.datetime + :param notification_expiration_time: Date and time in UTC when this notification expires. + :type notification_expiration_time: ~datetime.datetime + :param notified_time: Last timestamp in UTC this instance was actually notified. Null means + that this recommendation hasn't been notified yet. + :type notified_time: ~datetime.datetime + :param score: A metric value measured by the rule. + :type score: float + :param is_dynamic: True if this is associated with a dynamically added rule. + :type is_dynamic: bool + :param extension_name: Extension name of the portal if exists. + :type extension_name: str + :param blade_name: Deep link to a blade on the portal. + :type blade_name: str + :param forward_link: Forward link to an external document associated with the rule. + :type forward_link: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'category_tags': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'creation_time': {'key': 'properties.creationTime', 'type': 'iso-8601'}, + 'recommendation_id': {'key': 'properties.recommendationId', 'type': 'str'}, + 'resource_id': {'key': 'properties.resourceId', 'type': 'str'}, + 'resource_scope': {'key': 'properties.resourceScope', 'type': 'str'}, + 'rule_name': {'key': 'properties.ruleName', 'type': 'str'}, + 'display_name': {'key': 'properties.displayName', 'type': 'str'}, + 'message': {'key': 'properties.message', 'type': 'str'}, + 'level': {'key': 'properties.level', 'type': 'str'}, + 'channels': {'key': 'properties.channels', 'type': 'str'}, + 'category_tags': {'key': 'properties.categoryTags', 'type': '[str]'}, + 'action_name': {'key': 'properties.actionName', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'int'}, + 'states': {'key': 'properties.states', 'type': '[str]'}, + 'start_time': {'key': 'properties.startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'properties.endTime', 'type': 'iso-8601'}, + 'next_notification_time': {'key': 'properties.nextNotificationTime', 'type': 'iso-8601'}, + 'notification_expiration_time': {'key': 'properties.notificationExpirationTime', 'type': 'iso-8601'}, + 'notified_time': {'key': 'properties.notifiedTime', 'type': 'iso-8601'}, + 'score': {'key': 'properties.score', 'type': 'float'}, + 'is_dynamic': {'key': 'properties.isDynamic', 'type': 'bool'}, + 'extension_name': {'key': 'properties.extensionName', 'type': 'str'}, + 'blade_name': {'key': 'properties.bladeName', 'type': 'str'}, + 'forward_link': {'key': 'properties.forwardLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Recommendation, self).__init__(**kwargs) + self.creation_time = kwargs.get('creation_time', None) + self.recommendation_id = kwargs.get('recommendation_id', None) + self.resource_id = kwargs.get('resource_id', None) + self.resource_scope = kwargs.get('resource_scope', None) + self.rule_name = kwargs.get('rule_name', None) + self.display_name = kwargs.get('display_name', None) + self.message = kwargs.get('message', None) + self.level = kwargs.get('level', None) + self.channels = kwargs.get('channels', None) + self.category_tags = None + self.action_name = kwargs.get('action_name', None) + self.enabled = kwargs.get('enabled', None) + self.states = kwargs.get('states', None) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.next_notification_time = kwargs.get('next_notification_time', None) + self.notification_expiration_time = kwargs.get('notification_expiration_time', None) + self.notified_time = kwargs.get('notified_time', None) + self.score = kwargs.get('score', None) + self.is_dynamic = kwargs.get('is_dynamic', None) + self.extension_name = kwargs.get('extension_name', None) + self.blade_name = kwargs.get('blade_name', None) + self.forward_link = kwargs.get('forward_link', None) + + +class RecommendationCollection(msrest.serialization.Model): + """Collection of recommendations. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.Recommendation] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Recommendation]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RecommendationCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class RecommendationRule(ProxyOnlyResource): + """Represents a recommendation rule that the recommendation engine can perform. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param recommendation_name: Unique name of the rule. + :type recommendation_name: str + :param display_name: UI friendly name of the rule. + :type display_name: str + :param message: Localized name of the rule (Good for UI). + :type message: str + :param recommendation_id: Recommendation ID of an associated recommendation object tied to the + rule, if exists. + If such an object doesn't exist, it is set to null. + :type recommendation_id: str + :param description: Localized detailed description of the rule. + :type description: str + :param action_name: Name of action that is recommended by this rule in string. + :type action_name: str + :param level: Level of impact indicating how critical this rule is. Possible values include: + "Critical", "Warning", "Information", "NonUrgentSuggestion". + :type level: str or ~azure.mgmt.web.v2021_01_15.models.NotificationLevel + :param channels: List of available channels that this rule applies. Possible values include: + "Notification", "Api", "Email", "Webhook", "All". + :type channels: str or ~azure.mgmt.web.v2021_01_15.models.Channels + :ivar category_tags: The list of category tags that this recommendation rule belongs to. + :vartype category_tags: list[str] + :param is_dynamic: True if this is associated with a dynamically added rule. + :type is_dynamic: bool + :param extension_name: Extension name of the portal if exists. Applicable to dynamic rule only. + :type extension_name: str + :param blade_name: Deep link to a blade on the portal. Applicable to dynamic rule only. + :type blade_name: str + :param forward_link: Forward link to an external document associated with the rule. Applicable + to dynamic rule only. + :type forward_link: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'category_tags': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'recommendation_name': {'key': 'properties.recommendationName', 'type': 'str'}, + 'display_name': {'key': 'properties.displayName', 'type': 'str'}, + 'message': {'key': 'properties.message', 'type': 'str'}, + 'recommendation_id': {'key': 'properties.recommendationId', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'action_name': {'key': 'properties.actionName', 'type': 'str'}, + 'level': {'key': 'properties.level', 'type': 'str'}, + 'channels': {'key': 'properties.channels', 'type': 'str'}, + 'category_tags': {'key': 'properties.categoryTags', 'type': '[str]'}, + 'is_dynamic': {'key': 'properties.isDynamic', 'type': 'bool'}, + 'extension_name': {'key': 'properties.extensionName', 'type': 'str'}, + 'blade_name': {'key': 'properties.bladeName', 'type': 'str'}, + 'forward_link': {'key': 'properties.forwardLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RecommendationRule, self).__init__(**kwargs) + self.recommendation_name = kwargs.get('recommendation_name', None) + self.display_name = kwargs.get('display_name', None) + self.message = kwargs.get('message', None) + self.recommendation_id = kwargs.get('recommendation_id', None) + self.description = kwargs.get('description', None) + self.action_name = kwargs.get('action_name', None) + self.level = kwargs.get('level', None) + self.channels = kwargs.get('channels', None) + self.category_tags = None + self.is_dynamic = kwargs.get('is_dynamic', None) + self.extension_name = kwargs.get('extension_name', None) + self.blade_name = kwargs.get('blade_name', None) + self.forward_link = kwargs.get('forward_link', None) + + +class ReissueCertificateOrderRequest(ProxyOnlyResource): + """Class representing certificate reissue request. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param key_size: Certificate Key Size. + :type key_size: int + :param delay_existing_revoke_in_hours: Delay in hours to revoke existing certificate after the + new certificate is issued. + :type delay_existing_revoke_in_hours: int + :param csr: Csr to be used for re-key operation. + :type csr: str + :param is_private_key_external: Should we change the ASC type (from managed private key to + external private key and vice versa). + :type is_private_key_external: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'key_size': {'key': 'properties.keySize', 'type': 'int'}, + 'delay_existing_revoke_in_hours': {'key': 'properties.delayExistingRevokeInHours', 'type': 'int'}, + 'csr': {'key': 'properties.csr', 'type': 'str'}, + 'is_private_key_external': {'key': 'properties.isPrivateKeyExternal', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(ReissueCertificateOrderRequest, self).__init__(**kwargs) + self.key_size = kwargs.get('key_size', None) + self.delay_existing_revoke_in_hours = kwargs.get('delay_existing_revoke_in_hours', None) + self.csr = kwargs.get('csr', None) + self.is_private_key_external = kwargs.get('is_private_key_external', None) + + +class RelayServiceConnectionEntity(ProxyOnlyResource): + """Hybrid Connection for an App Service app. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param entity_name: + :type entity_name: str + :param entity_connection_string: + :type entity_connection_string: str + :param resource_type: + :type resource_type: str + :param resource_connection_string: + :type resource_connection_string: str + :param hostname: + :type hostname: str + :param port: + :type port: int + :param biztalk_uri: + :type biztalk_uri: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'entity_name': {'key': 'properties.entityName', 'type': 'str'}, + 'entity_connection_string': {'key': 'properties.entityConnectionString', 'type': 'str'}, + 'resource_type': {'key': 'properties.resourceType', 'type': 'str'}, + 'resource_connection_string': {'key': 'properties.resourceConnectionString', 'type': 'str'}, + 'hostname': {'key': 'properties.hostname', 'type': 'str'}, + 'port': {'key': 'properties.port', 'type': 'int'}, + 'biztalk_uri': {'key': 'properties.biztalkUri', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RelayServiceConnectionEntity, self).__init__(**kwargs) + self.entity_name = kwargs.get('entity_name', None) + self.entity_connection_string = kwargs.get('entity_connection_string', None) + self.resource_type = kwargs.get('resource_type', None) + self.resource_connection_string = kwargs.get('resource_connection_string', None) + self.hostname = kwargs.get('hostname', None) + self.port = kwargs.get('port', None) + self.biztalk_uri = kwargs.get('biztalk_uri', None) + + +class RemotePrivateEndpointConnection(ProxyOnlyResource): + """A remote private endpoint connection. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar provisioning_state: + :vartype provisioning_state: str + :param private_endpoint: PrivateEndpoint of a remote private endpoint connection. + :type private_endpoint: ~azure.mgmt.web.v2021_01_15.models.ArmIdWrapper + :param private_link_service_connection_state: The state of a private link connection. + :type private_link_service_connection_state: + ~azure.mgmt.web.v2021_01_15.models.PrivateLinkConnectionState + :param ip_addresses: Private IPAddresses mapped to the remote private endpoint. + :type ip_addresses: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'private_endpoint': {'key': 'properties.privateEndpoint', 'type': 'ArmIdWrapper'}, + 'private_link_service_connection_state': {'key': 'properties.privateLinkServiceConnectionState', 'type': 'PrivateLinkConnectionState'}, + 'ip_addresses': {'key': 'properties.ipAddresses', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(RemotePrivateEndpointConnection, self).__init__(**kwargs) + self.provisioning_state = None + self.private_endpoint = kwargs.get('private_endpoint', None) + self.private_link_service_connection_state = kwargs.get('private_link_service_connection_state', None) + self.ip_addresses = kwargs.get('ip_addresses', None) + + +class RemotePrivateEndpointConnectionARMResource(ProxyOnlyResource): + """Remote Private Endpoint Connection ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar provisioning_state: + :vartype provisioning_state: str + :param private_endpoint: PrivateEndpoint of a remote private endpoint connection. + :type private_endpoint: ~azure.mgmt.web.v2021_01_15.models.ArmIdWrapper + :param private_link_service_connection_state: The state of a private link connection. + :type private_link_service_connection_state: + ~azure.mgmt.web.v2021_01_15.models.PrivateLinkConnectionState + :param ip_addresses: Private IPAddresses mapped to the remote private endpoint. + :type ip_addresses: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'private_endpoint': {'key': 'properties.privateEndpoint', 'type': 'ArmIdWrapper'}, + 'private_link_service_connection_state': {'key': 'properties.privateLinkServiceConnectionState', 'type': 'PrivateLinkConnectionState'}, + 'ip_addresses': {'key': 'properties.ipAddresses', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(RemotePrivateEndpointConnectionARMResource, self).__init__(**kwargs) + self.provisioning_state = None + self.private_endpoint = kwargs.get('private_endpoint', None) + self.private_link_service_connection_state = kwargs.get('private_link_service_connection_state', None) + self.ip_addresses = kwargs.get('ip_addresses', None) + + +class Rendering(msrest.serialization.Model): + """Instructions for rendering the data. + + :param type: Rendering Type. Possible values include: "NoGraph", "Table", "TimeSeries", + "TimeSeriesPerInstance", "PieChart", "DataSummary", "Email", "Insights", "DynamicInsight", + "Markdown", "Detector", "DropDown", "Card", "Solution", "Guage", "Form", "ChangeSets", + "ChangeAnalysisOnboarding", "ChangesView", "AppInsight", "DependencyGraph", "DownTime", + "SummaryCard", "SearchComponent", "AppInsightEnablement". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.RenderingType + :param title: Title of data. + :type title: str + :param description: Description of the data that will help it be interpreted. + :type description: str + """ + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'title': {'key': 'title', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Rendering, self).__init__(**kwargs) + self.type = kwargs.get('type', None) + self.title = kwargs.get('title', None) + self.description = kwargs.get('description', None) + + +class RenewCertificateOrderRequest(ProxyOnlyResource): + """Class representing certificate renew request. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param key_size: Certificate Key Size. + :type key_size: int + :param csr: Csr to be used for re-key operation. + :type csr: str + :param is_private_key_external: Should we change the ASC type (from managed private key to + external private key and vice versa). + :type is_private_key_external: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'key_size': {'key': 'properties.keySize', 'type': 'int'}, + 'csr': {'key': 'properties.csr', 'type': 'str'}, + 'is_private_key_external': {'key': 'properties.isPrivateKeyExternal', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(RenewCertificateOrderRequest, self).__init__(**kwargs) + self.key_size = kwargs.get('key_size', None) + self.csr = kwargs.get('csr', None) + self.is_private_key_external = kwargs.get('is_private_key_external', None) + + +class RequestsBasedTrigger(msrest.serialization.Model): + """Trigger based on total requests. + + :param count: Request Count. + :type count: int + :param time_interval: Time interval. + :type time_interval: str + """ + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + 'time_interval': {'key': 'timeInterval', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RequestsBasedTrigger, self).__init__(**kwargs) + self.count = kwargs.get('count', None) + self.time_interval = kwargs.get('time_interval', None) + + +class ResourceCollection(msrest.serialization.Model): + """Collection of resources. + + 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 value: Required. Collection of resources. + :type value: list[str] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[str]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ResourceCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class ResourceHealthMetadata(ProxyOnlyResource): + """Used for getting ResourceHealthCheck settings. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param category: The category that the resource matches in the RHC Policy File. + :type category: str + :param signal_availability: Is there a health signal for the resource. + :type signal_availability: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'category': {'key': 'properties.category', 'type': 'str'}, + 'signal_availability': {'key': 'properties.signalAvailability', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(ResourceHealthMetadata, self).__init__(**kwargs) + self.category = kwargs.get('category', None) + self.signal_availability = kwargs.get('signal_availability', None) + + +class ResourceHealthMetadataCollection(msrest.serialization.Model): + """Collection of resource health metadata. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.ResourceHealthMetadata] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ResourceHealthMetadata]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ResourceHealthMetadataCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class ResourceMetricAvailability(msrest.serialization.Model): + """Metrics availability and retention. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar time_grain: Time grain . + :vartype time_grain: str + :ivar retention: Retention period for the current time grain. + :vartype retention: str + """ + + _validation = { + 'time_grain': {'readonly': True}, + 'retention': {'readonly': True}, + } + + _attribute_map = { + 'time_grain': {'key': 'timeGrain', 'type': 'str'}, + 'retention': {'key': 'retention', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ResourceMetricAvailability, self).__init__(**kwargs) + self.time_grain = None + self.retention = None + + +class ResourceMetricDefinition(ProxyOnlyResource): + """Metadata for the metrics. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar unit: Unit of the metric. + :vartype unit: str + :ivar primary_aggregation_type: Primary aggregation type. + :vartype primary_aggregation_type: str + :ivar metric_availabilities: List of time grains supported for the metric together with + retention period. + :vartype metric_availabilities: + list[~azure.mgmt.web.v2021_01_15.models.ResourceMetricAvailability] + :ivar resource_uri: Resource URI. + :vartype resource_uri: str + :ivar properties: Resource metric definition properties. + :vartype properties: dict[str, str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'unit': {'readonly': True}, + 'primary_aggregation_type': {'readonly': True}, + 'metric_availabilities': {'readonly': True}, + 'resource_uri': {'readonly': True}, + 'properties': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'unit': {'key': 'properties.unit', 'type': 'str'}, + 'primary_aggregation_type': {'key': 'properties.primaryAggregationType', 'type': 'str'}, + 'metric_availabilities': {'key': 'properties.metricAvailabilities', 'type': '[ResourceMetricAvailability]'}, + 'resource_uri': {'key': 'properties.resourceUri', 'type': 'str'}, + 'properties': {'key': 'properties.properties', 'type': '{str}'}, + } + + def __init__( + self, + **kwargs + ): + super(ResourceMetricDefinition, self).__init__(**kwargs) + self.unit = None + self.primary_aggregation_type = None + self.metric_availabilities = None + self.resource_uri = None + self.properties = None + + +class ResourceMetricDefinitionCollection(msrest.serialization.Model): + """Collection of metric definitions. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.ResourceMetricDefinition] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ResourceMetricDefinition]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ResourceMetricDefinitionCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class ResourceNameAvailability(msrest.serialization.Model): + """Information regarding availability of a resource name. + + :param name_available: :code:`true` indicates name is valid and available. + :code:`false` indicates the name is invalid, unavailable, or both. + :type name_available: bool + :param reason: :code:`Invalid` indicates the name provided does not match Azure + App Service naming requirements. :code:`AlreadyExists` indicates that the name is + already in use and is therefore unavailable. Possible values include: "Invalid", + "AlreadyExists". + :type reason: str or ~azure.mgmt.web.v2021_01_15.models.InAvailabilityReasonType + :param message: If reason == invalid, provide the user with the reason why the given name is + invalid, and provide the resource naming requirements so that the user can select a valid name. + If reason == AlreadyExists, explain that resource name is already in use, and direct them to + select a different name. + :type message: str + """ + + _attribute_map = { + 'name_available': {'key': 'nameAvailable', 'type': 'bool'}, + 'reason': {'key': 'reason', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ResourceNameAvailability, self).__init__(**kwargs) + self.name_available = kwargs.get('name_available', None) + self.reason = kwargs.get('reason', None) + self.message = kwargs.get('message', None) + + +class ResourceNameAvailabilityRequest(msrest.serialization.Model): + """Resource name availability request content. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. Resource name to verify. + :type name: str + :param type: Required. Resource type used for verification. Possible values include: "Site", + "Slot", "HostingEnvironment", "PublishingUser", "Microsoft.Web/sites", + "Microsoft.Web/sites/slots", "Microsoft.Web/hostingEnvironments", + "Microsoft.Web/publishingUsers". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.CheckNameResourceTypes + :param is_fqdn: Is fully qualified domain name. + :type is_fqdn: bool + """ + + _validation = { + 'name': {'required': True}, + 'type': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'is_fqdn': {'key': 'isFqdn', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(ResourceNameAvailabilityRequest, self).__init__(**kwargs) + self.name = kwargs['name'] + self.type = kwargs['type'] + self.is_fqdn = kwargs.get('is_fqdn', None) + + +class ResponseMessageEnvelopeRemotePrivateEndpointConnection(msrest.serialization.Model): + """Message envelope that contains the common Azure resource manager properties and the resource provider specific content. + + :param id: Resource Id. Typically ID is populated only for responses to GET requests. Caller is + responsible for passing in this + value for GET requests only. + For example: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupId}/providers/Microsoft.Web/sites/{sitename}. + :type id: str + :param name: Name of resource. + :type name: str + :param type: Type of resource e.g "Microsoft.Web/sites". + :type type: str + :param location: Geographical region resource belongs to e.g. SouthCentralUS, SouthEastAsia. + :type location: str + :param tags: A set of tags. Tags associated with resource. + :type tags: dict[str, str] + :param plan: Azure resource manager plan. + :type plan: ~azure.mgmt.web.v2021_01_15.models.ArmPlan + :param properties: Resource specific properties. + :type properties: ~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnection + :param sku: SKU description of the resource. + :type sku: ~azure.mgmt.web.v2021_01_15.models.SkuDescription + :param status: Azure-AsyncOperation Status info. + :type status: str + :param error: Azure-AsyncOperation Error info. + :type error: ~azure.mgmt.web.v2021_01_15.models.ErrorEntity + :param identity: MSI resource. + :type identity: ~azure.mgmt.web.v2021_01_15.models.ManagedServiceIdentity + :param zones: Logical Availability Zones the service is hosted in. + :type zones: list[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}'}, + 'plan': {'key': 'plan', 'type': 'ArmPlan'}, + 'properties': {'key': 'properties', 'type': 'RemotePrivateEndpointConnection'}, + 'sku': {'key': 'sku', 'type': 'SkuDescription'}, + 'status': {'key': 'status', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'ErrorEntity'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, + 'zones': {'key': 'zones', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(ResponseMessageEnvelopeRemotePrivateEndpointConnection, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.name = kwargs.get('name', None) + self.type = kwargs.get('type', None) + self.location = kwargs.get('location', None) + self.tags = kwargs.get('tags', None) + self.plan = kwargs.get('plan', None) + self.properties = kwargs.get('properties', None) + self.sku = kwargs.get('sku', None) + self.status = kwargs.get('status', None) + self.error = kwargs.get('error', None) + self.identity = kwargs.get('identity', None) + self.zones = kwargs.get('zones', None) + + +class ResponseMetaData(msrest.serialization.Model): + """ResponseMetaData. + + :param data_source: Source of the Data. + :type data_source: ~azure.mgmt.web.v2021_01_15.models.DataSource + """ + + _attribute_map = { + 'data_source': {'key': 'dataSource', 'type': 'DataSource'}, + } + + def __init__( + self, + **kwargs + ): + super(ResponseMetaData, self).__init__(**kwargs) + self.data_source = kwargs.get('data_source', None) + + +class RestoreRequest(ProxyOnlyResource): + """Description of a restore request. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param storage_account_url: SAS URL to the container. + :type storage_account_url: str + :param blob_name: Name of a blob which contains the backup. + :type blob_name: str + :param overwrite: :code:`true` if the restore operation can overwrite target app; + otherwise, :code:`false`. :code:`true` is needed if trying to restore + over an existing app. + :type overwrite: bool + :param site_name: Name of an app. + :type site_name: str + :param databases: Collection of databases which should be restored. This list has to match the + list of databases included in the backup. + :type databases: list[~azure.mgmt.web.v2021_01_15.models.DatabaseBackupSetting] + :param ignore_conflicting_host_names: Changes a logic when restoring an app with custom + domains. :code:`true` to remove custom domains automatically. If + :code:`false`, custom domains are added to + the app's object when it is being restored, but that might fail due to conflicts during the + operation. + :type ignore_conflicting_host_names: bool + :param ignore_databases: Ignore the databases and only restore the site content. + :type ignore_databases: bool + :param app_service_plan: Specify app service plan that will own restored site. + :type app_service_plan: str + :param operation_type: Operation type. Possible values include: "Default", "Clone", + "Relocation", "Snapshot", "CloudFS". Default value: "Default". + :type operation_type: str or ~azure.mgmt.web.v2021_01_15.models.BackupRestoreOperationType + :param adjust_connection_strings: :code:`true` if SiteConfig.ConnectionStrings + should be set in new app; otherwise, :code:`false`. + :type adjust_connection_strings: bool + :param hosting_environment: App Service Environment name, if needed (only when restoring an app + to an App Service Environment). + :type hosting_environment: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'storage_account_url': {'key': 'properties.storageAccountUrl', 'type': 'str'}, + 'blob_name': {'key': 'properties.blobName', 'type': 'str'}, + 'overwrite': {'key': 'properties.overwrite', 'type': 'bool'}, + 'site_name': {'key': 'properties.siteName', 'type': 'str'}, + 'databases': {'key': 'properties.databases', 'type': '[DatabaseBackupSetting]'}, + 'ignore_conflicting_host_names': {'key': 'properties.ignoreConflictingHostNames', 'type': 'bool'}, + 'ignore_databases': {'key': 'properties.ignoreDatabases', 'type': 'bool'}, + 'app_service_plan': {'key': 'properties.appServicePlan', 'type': 'str'}, + 'operation_type': {'key': 'properties.operationType', 'type': 'str'}, + 'adjust_connection_strings': {'key': 'properties.adjustConnectionStrings', 'type': 'bool'}, + 'hosting_environment': {'key': 'properties.hostingEnvironment', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RestoreRequest, self).__init__(**kwargs) + self.storage_account_url = kwargs.get('storage_account_url', None) + self.blob_name = kwargs.get('blob_name', None) + self.overwrite = kwargs.get('overwrite', None) + self.site_name = kwargs.get('site_name', None) + self.databases = kwargs.get('databases', None) + self.ignore_conflicting_host_names = kwargs.get('ignore_conflicting_host_names', False) + self.ignore_databases = kwargs.get('ignore_databases', False) + self.app_service_plan = kwargs.get('app_service_plan', None) + self.operation_type = kwargs.get('operation_type', "Default") + self.adjust_connection_strings = kwargs.get('adjust_connection_strings', None) + self.hosting_environment = kwargs.get('hosting_environment', None) + + +class SampleUtterance(msrest.serialization.Model): + """Sample utterance. + + :param text: Text attribute of sample utterance. + :type text: str + :param links: Links attribute of sample utterance. + :type links: list[str] + :param qid: Question id of sample utterance (for stackoverflow questions titles). + :type qid: str + """ + + _attribute_map = { + 'text': {'key': 'text', 'type': 'str'}, + 'links': {'key': 'links', 'type': '[str]'}, + 'qid': {'key': 'qid', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SampleUtterance, self).__init__(**kwargs) + self.text = kwargs.get('text', None) + self.links = kwargs.get('links', None) + self.qid = kwargs.get('qid', None) + + +class ServiceSpecification(msrest.serialization.Model): + """Resource metrics service provided by Microsoft.Insights resource provider. + + :param metric_specifications: + :type metric_specifications: list[~azure.mgmt.web.v2021_01_15.models.MetricSpecification] + :param log_specifications: + :type log_specifications: list[~azure.mgmt.web.v2021_01_15.models.LogSpecification] + """ + + _attribute_map = { + 'metric_specifications': {'key': 'metricSpecifications', 'type': '[MetricSpecification]'}, + 'log_specifications': {'key': 'logSpecifications', 'type': '[LogSpecification]'}, + } + + def __init__( + self, + **kwargs + ): + super(ServiceSpecification, self).__init__(**kwargs) + self.metric_specifications = kwargs.get('metric_specifications', None) + self.log_specifications = kwargs.get('log_specifications', None) + + +class Site(Resource): + """A web app, a mobile app backend, or an API app. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param identity: Managed service identity. + :type identity: ~azure.mgmt.web.v2021_01_15.models.ManagedServiceIdentity + :param extended_location: Extended Location. + :type extended_location: ~azure.mgmt.web.v2021_01_15.models.ExtendedLocation + :ivar state: Current state of the app. + :vartype state: str + :ivar host_names: Hostnames associated with the app. + :vartype host_names: list[str] + :ivar repository_site_name: Name of the repository site. + :vartype repository_site_name: str + :ivar usage_state: State indicating whether the app has exceeded its quota usage. Read-only. + Possible values include: "Normal", "Exceeded". + :vartype usage_state: str or ~azure.mgmt.web.v2021_01_15.models.UsageState + :param enabled: :code:`true` if the app is enabled; otherwise, + :code:`false`. Setting this value to false disables the app (takes the app + offline). + :type enabled: bool + :ivar enabled_host_names: Enabled hostnames for the app.Hostnames need to be assigned (see + HostNames) AND enabled. Otherwise, + the app is not served on those hostnames. + :vartype enabled_host_names: list[str] + :ivar availability_state: Management information availability state for the app. Possible + values include: "Normal", "Limited", "DisasterRecoveryMode". + :vartype availability_state: str or ~azure.mgmt.web.v2021_01_15.models.SiteAvailabilityState + :param host_name_ssl_states: Hostname SSL states are used to manage the SSL bindings for app's + hostnames. + :type host_name_ssl_states: list[~azure.mgmt.web.v2021_01_15.models.HostNameSslState] + :param server_farm_id: Resource ID of the associated App Service plan, formatted as: + "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". + :type server_farm_id: str + :param reserved: :code:`true` if reserved; otherwise, :code:`false`. + :type reserved: bool + :param is_xenon: Obsolete: Hyper-V sandbox. + :type is_xenon: bool + :param hyper_v: Hyper-V sandbox. + :type hyper_v: bool + :ivar last_modified_time_utc: Last time the app was modified, in UTC. Read-only. + :vartype last_modified_time_utc: ~datetime.datetime + :param site_config: Configuration of the app. + :type site_config: ~azure.mgmt.web.v2021_01_15.models.SiteConfig + :ivar traffic_manager_host_names: Azure Traffic Manager hostnames associated with the app. + Read-only. + :vartype traffic_manager_host_names: list[str] + :param scm_site_also_stopped: :code:`true` to stop SCM (KUDU) site when the app is + stopped; otherwise, :code:`false`. The default is :code:`false`. + :type scm_site_also_stopped: bool + :ivar target_swap_slot: Specifies which deployment slot this app will swap into. Read-only. + :vartype target_swap_slot: str + :param hosting_environment_profile: App Service Environment to use for the app. + :type hosting_environment_profile: ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentProfile + :param client_affinity_enabled: :code:`true` to enable client affinity; + :code:`false` to stop sending session affinity cookies, which route client + requests in the same session to the same instance. Default is :code:`true`. + :type client_affinity_enabled: bool + :param client_cert_enabled: :code:`true` to enable client certificate + authentication (TLS mutual authentication); otherwise, :code:`false`. Default is + :code:`false`. + :type client_cert_enabled: bool + :param client_cert_mode: This composes with ClientCertEnabled setting. + + + * ClientCertEnabled: false means ClientCert is ignored. + * ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. + * ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or + accepted. Possible values include: "Required", "Optional", "OptionalInteractiveUser". + :type client_cert_mode: str or ~azure.mgmt.web.v2021_01_15.models.ClientCertMode + :param client_cert_exclusion_paths: client certificate authentication comma-separated exclusion + paths. + :type client_cert_exclusion_paths: str + :param host_names_disabled: :code:`true` to disable the public hostnames of the + app; otherwise, :code:`false`. + If :code:`true`, the app is only accessible via API management process. + :type host_names_disabled: bool + :param custom_domain_verification_id: Unique identifier that verifies the custom domains + assigned to the app. Customer will add this id to a txt record for verification. + :type custom_domain_verification_id: str + :ivar outbound_ip_addresses: List of IP addresses that the app uses for outbound connections + (e.g. database access). Includes VIPs from tenants that site can be hosted with current + settings. Read-only. + :vartype outbound_ip_addresses: str + :ivar possible_outbound_ip_addresses: List of IP addresses that the app uses for outbound + connections (e.g. database access). Includes VIPs from all tenants except dataComponent. + Read-only. + :vartype possible_outbound_ip_addresses: str + :param container_size: Size of the function container. + :type container_size: int + :param daily_memory_time_quota: Maximum allowed daily memory-time quota (applicable on dynamic + apps only). + :type daily_memory_time_quota: int + :ivar suspended_till: App suspended till in case memory-time quota is exceeded. + :vartype suspended_till: ~datetime.datetime + :ivar max_number_of_workers: Maximum number of workers. + This only applies to Functions container. + :vartype max_number_of_workers: int + :param cloning_info: If specified during app creation, the app is cloned from a source app. + :type cloning_info: ~azure.mgmt.web.v2021_01_15.models.CloningInfo + :ivar resource_group: Name of the resource group the app belongs to. Read-only. + :vartype resource_group: str + :ivar is_default_container: :code:`true` if the app is a default container; + otherwise, :code:`false`. + :vartype is_default_container: bool + :ivar default_host_name: Default hostname of the app. Read-only. + :vartype default_host_name: str + :ivar slot_swap_status: Status of the last deployment slot swap operation. + :vartype slot_swap_status: ~azure.mgmt.web.v2021_01_15.models.SlotSwapStatus + :param https_only: HttpsOnly: configures a web site to accept only https requests. Issues + redirect for + http requests. + :type https_only: bool + :param redundancy_mode: Site redundancy mode. Possible values include: "None", "Manual", + "Failover", "ActiveActive", "GeoRedundant". + :type redundancy_mode: str or ~azure.mgmt.web.v2021_01_15.models.RedundancyMode + :ivar in_progress_operation_id: Specifies an operation id if this site has a pending operation. + :vartype in_progress_operation_id: str + :param storage_account_required: Checks if Customer provided storage account is required. + :type storage_account_required: bool + :param key_vault_reference_identity: Identity to use for Key Vault Reference authentication. + :type key_vault_reference_identity: str + :param virtual_network_subnet_id: Azure Resource Manager ID of the Virtual network and subnet + to be joined by Regional VNET Integration. + This must be of the form + /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}. + :type virtual_network_subnet_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'state': {'readonly': True}, + 'host_names': {'readonly': True}, + 'repository_site_name': {'readonly': True}, + 'usage_state': {'readonly': True}, + 'enabled_host_names': {'readonly': True}, + 'availability_state': {'readonly': True}, + 'last_modified_time_utc': {'readonly': True}, + 'traffic_manager_host_names': {'readonly': True}, + 'target_swap_slot': {'readonly': True}, + 'outbound_ip_addresses': {'readonly': True}, + 'possible_outbound_ip_addresses': {'readonly': True}, + 'suspended_till': {'readonly': True}, + 'max_number_of_workers': {'readonly': True}, + 'resource_group': {'readonly': True}, + 'is_default_container': {'readonly': True}, + 'default_host_name': {'readonly': True}, + 'slot_swap_status': {'readonly': True}, + 'in_progress_operation_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, + 'extended_location': {'key': 'extendedLocation', 'type': 'ExtendedLocation'}, + 'state': {'key': 'properties.state', 'type': 'str'}, + 'host_names': {'key': 'properties.hostNames', 'type': '[str]'}, + 'repository_site_name': {'key': 'properties.repositorySiteName', 'type': 'str'}, + 'usage_state': {'key': 'properties.usageState', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'enabled_host_names': {'key': 'properties.enabledHostNames', 'type': '[str]'}, + 'availability_state': {'key': 'properties.availabilityState', 'type': 'str'}, + 'host_name_ssl_states': {'key': 'properties.hostNameSslStates', 'type': '[HostNameSslState]'}, + 'server_farm_id': {'key': 'properties.serverFarmId', 'type': 'str'}, + 'reserved': {'key': 'properties.reserved', 'type': 'bool'}, + 'is_xenon': {'key': 'properties.isXenon', 'type': 'bool'}, + 'hyper_v': {'key': 'properties.hyperV', 'type': 'bool'}, + 'last_modified_time_utc': {'key': 'properties.lastModifiedTimeUtc', 'type': 'iso-8601'}, + 'site_config': {'key': 'properties.siteConfig', 'type': 'SiteConfig'}, + 'traffic_manager_host_names': {'key': 'properties.trafficManagerHostNames', 'type': '[str]'}, + 'scm_site_also_stopped': {'key': 'properties.scmSiteAlsoStopped', 'type': 'bool'}, + 'target_swap_slot': {'key': 'properties.targetSwapSlot', 'type': 'str'}, + 'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'}, + 'client_affinity_enabled': {'key': 'properties.clientAffinityEnabled', 'type': 'bool'}, + 'client_cert_enabled': {'key': 'properties.clientCertEnabled', 'type': 'bool'}, + 'client_cert_mode': {'key': 'properties.clientCertMode', 'type': 'str'}, + 'client_cert_exclusion_paths': {'key': 'properties.clientCertExclusionPaths', 'type': 'str'}, + 'host_names_disabled': {'key': 'properties.hostNamesDisabled', 'type': 'bool'}, + 'custom_domain_verification_id': {'key': 'properties.customDomainVerificationId', 'type': 'str'}, + 'outbound_ip_addresses': {'key': 'properties.outboundIpAddresses', 'type': 'str'}, + 'possible_outbound_ip_addresses': {'key': 'properties.possibleOutboundIpAddresses', 'type': 'str'}, + 'container_size': {'key': 'properties.containerSize', 'type': 'int'}, + 'daily_memory_time_quota': {'key': 'properties.dailyMemoryTimeQuota', 'type': 'int'}, + 'suspended_till': {'key': 'properties.suspendedTill', 'type': 'iso-8601'}, + 'max_number_of_workers': {'key': 'properties.maxNumberOfWorkers', 'type': 'int'}, + 'cloning_info': {'key': 'properties.cloningInfo', 'type': 'CloningInfo'}, + 'resource_group': {'key': 'properties.resourceGroup', 'type': 'str'}, + 'is_default_container': {'key': 'properties.isDefaultContainer', 'type': 'bool'}, + 'default_host_name': {'key': 'properties.defaultHostName', 'type': 'str'}, + 'slot_swap_status': {'key': 'properties.slotSwapStatus', 'type': 'SlotSwapStatus'}, + 'https_only': {'key': 'properties.httpsOnly', 'type': 'bool'}, + 'redundancy_mode': {'key': 'properties.redundancyMode', 'type': 'str'}, + 'in_progress_operation_id': {'key': 'properties.inProgressOperationId', 'type': 'str'}, + 'storage_account_required': {'key': 'properties.storageAccountRequired', 'type': 'bool'}, + 'key_vault_reference_identity': {'key': 'properties.keyVaultReferenceIdentity', 'type': 'str'}, + 'virtual_network_subnet_id': {'key': 'properties.virtualNetworkSubnetId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Site, self).__init__(**kwargs) + self.identity = kwargs.get('identity', None) + self.extended_location = kwargs.get('extended_location', None) + self.state = None + self.host_names = None + self.repository_site_name = None + self.usage_state = None + self.enabled = kwargs.get('enabled', None) + self.enabled_host_names = None + self.availability_state = None + self.host_name_ssl_states = kwargs.get('host_name_ssl_states', None) + self.server_farm_id = kwargs.get('server_farm_id', None) + self.reserved = kwargs.get('reserved', False) + self.is_xenon = kwargs.get('is_xenon', False) + self.hyper_v = kwargs.get('hyper_v', False) + self.last_modified_time_utc = None + self.site_config = kwargs.get('site_config', None) + self.traffic_manager_host_names = None + self.scm_site_also_stopped = kwargs.get('scm_site_also_stopped', False) + self.target_swap_slot = None + self.hosting_environment_profile = kwargs.get('hosting_environment_profile', None) + self.client_affinity_enabled = kwargs.get('client_affinity_enabled', None) + self.client_cert_enabled = kwargs.get('client_cert_enabled', None) + self.client_cert_mode = kwargs.get('client_cert_mode', None) + self.client_cert_exclusion_paths = kwargs.get('client_cert_exclusion_paths', None) + self.host_names_disabled = kwargs.get('host_names_disabled', None) + self.custom_domain_verification_id = kwargs.get('custom_domain_verification_id', None) + self.outbound_ip_addresses = None + self.possible_outbound_ip_addresses = None + self.container_size = kwargs.get('container_size', None) + self.daily_memory_time_quota = kwargs.get('daily_memory_time_quota', None) + self.suspended_till = None + self.max_number_of_workers = None + self.cloning_info = kwargs.get('cloning_info', None) + self.resource_group = None + self.is_default_container = None + self.default_host_name = None + self.slot_swap_status = None + self.https_only = kwargs.get('https_only', None) + self.redundancy_mode = kwargs.get('redundancy_mode', None) + self.in_progress_operation_id = None + self.storage_account_required = kwargs.get('storage_account_required', None) + self.key_vault_reference_identity = kwargs.get('key_vault_reference_identity', None) + self.virtual_network_subnet_id = kwargs.get('virtual_network_subnet_id', None) + + +class SiteAuthSettings(ProxyOnlyResource): + """Configuration settings for the Azure App Service Authentication / Authorization feature. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`true` if the Authentication / Authorization feature is + enabled for the current app; otherwise, :code:`false`. + :type enabled: bool + :param runtime_version: The RuntimeVersion of the Authentication / Authorization feature in use + for the current app. + The setting in this value can control the behavior of certain features in the Authentication / + Authorization module. + :type runtime_version: str + :param unauthenticated_client_action: The action to take when an unauthenticated client + attempts to access the app. Possible values include: "RedirectToLoginPage", "AllowAnonymous". + :type unauthenticated_client_action: str or + ~azure.mgmt.web.v2021_01_15.models.UnauthenticatedClientAction + :param token_store_enabled: :code:`true` to durably store platform-specific + security tokens that are obtained during login flows; otherwise, :code:`false`. + The default is :code:`false`. + :type token_store_enabled: bool + :param allowed_external_redirect_urls: External URLs that can be redirected to as part of + logging in or logging out of the app. Note that the query string part of the URL is ignored. + This is an advanced setting typically only needed by Windows Store application backends. + Note that URLs within the current domain are always implicitly allowed. + :type allowed_external_redirect_urls: list[str] + :param default_provider: The default authentication provider to use when multiple providers are + configured. + This setting is only needed if multiple providers are configured and the unauthenticated + client + action is set to "RedirectToLoginPage". Possible values include: "AzureActiveDirectory", + "Facebook", "Google", "MicrosoftAccount", "Twitter", "Github". + :type default_provider: str or ~azure.mgmt.web.v2021_01_15.models.BuiltInAuthenticationProvider + :param token_refresh_extension_hours: The number of hours after session token expiration that a + session token can be used to + call the token refresh API. The default is 72 hours. + :type token_refresh_extension_hours: float + :param client_id: The Client ID of this relying party application, known as the client_id. + This setting is required for enabling OpenID Connection authentication with Azure Active + Directory or + other 3rd party OpenID Connect providers. + More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html. + :type client_id: str + :param client_secret: The Client Secret of this relying party application (in Azure Active + Directory, this is also referred to as the Key). + This setting is optional. If no client secret is configured, the OpenID Connect implicit auth + flow is used to authenticate end users. + Otherwise, the OpenID Connect Authorization Code Flow is used to authenticate end users. + More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html. + :type client_secret: str + :param client_secret_setting_name: The app setting name that contains the client secret of the + relying party application. + :type client_secret_setting_name: str + :param client_secret_certificate_thumbprint: An alternative to the client secret, that is the + thumbprint of a certificate used for signing purposes. This property acts as + a replacement for the Client Secret. It is also optional. + :type client_secret_certificate_thumbprint: str + :param issuer: The OpenID Connect Issuer URI that represents the entity which issues access + tokens for this application. + When using Azure Active Directory, this value is the URI of the directory tenant, e.g. + https://sts.windows.net/{tenant-guid}/. + This URI is a case-sensitive identifier for the token issuer. + More information on OpenID Connect Discovery: + http://openid.net/specs/openid-connect-discovery-1_0.html. + :type issuer: str + :param validate_issuer: Gets a value indicating whether the issuer should be a valid HTTPS url + and be validated as such. + :type validate_issuer: bool + :param allowed_audiences: Allowed audience values to consider when validating JWTs issued by + Azure Active Directory. Note that the :code:`ClientID` value is always considered + an + allowed audience, regardless of this setting. + :type allowed_audiences: list[str] + :param additional_login_params: Login parameters to send to the OpenID Connect authorization + endpoint when + a user logs in. Each parameter must be in the form "key=value". + :type additional_login_params: list[str] + :param aad_claims_authorization: Gets a JSON string containing the Azure AD Acl settings. + :type aad_claims_authorization: str + :param google_client_id: The OpenID Connect Client ID for the Google web application. + This setting is required for enabling Google Sign-In. + Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/. + :type google_client_id: str + :param google_client_secret: The client secret associated with the Google web application. + This setting is required for enabling Google Sign-In. + Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/. + :type google_client_secret: str + :param google_client_secret_setting_name: The app setting name that contains the client secret + associated with + the Google web application. + :type google_client_secret_setting_name: str + :param google_o_auth_scopes: The OAuth 2.0 scopes that will be requested as part of Google + Sign-In authentication. + This setting is optional. If not specified, "openid", "profile", and "email" are used as + default scopes. + Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/. + :type google_o_auth_scopes: list[str] + :param facebook_app_id: The App ID of the Facebook app used for login. + This setting is required for enabling Facebook Login. + Facebook Login documentation: https://developers.facebook.com/docs/facebook-login. + :type facebook_app_id: str + :param facebook_app_secret: The App Secret of the Facebook app used for Facebook Login. + This setting is required for enabling Facebook Login. + Facebook Login documentation: https://developers.facebook.com/docs/facebook-login. + :type facebook_app_secret: str + :param facebook_app_secret_setting_name: The app setting name that contains the app secret used + for Facebook Login. + :type facebook_app_secret_setting_name: str + :param facebook_o_auth_scopes: The OAuth 2.0 scopes that will be requested as part of Facebook + Login authentication. + This setting is optional. + Facebook Login documentation: https://developers.facebook.com/docs/facebook-login. + :type facebook_o_auth_scopes: list[str] + :param git_hub_client_id: The Client Id of the GitHub app used for login. + This setting is required for enabling Github login. + :type git_hub_client_id: str + :param git_hub_client_secret: The Client Secret of the GitHub app used for Github Login. + This setting is required for enabling Github login. + :type git_hub_client_secret: str + :param git_hub_client_secret_setting_name: The app setting name that contains the client secret + of the Github + app used for GitHub Login. + :type git_hub_client_secret_setting_name: str + :param git_hub_o_auth_scopes: The OAuth 2.0 scopes that will be requested as part of GitHub + Login authentication. + This setting is optional. + :type git_hub_o_auth_scopes: list[str] + :param twitter_consumer_key: The OAuth 1.0a consumer key of the Twitter application used for + sign-in. + This setting is required for enabling Twitter Sign-In. + Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in. + :type twitter_consumer_key: str + :param twitter_consumer_secret: The OAuth 1.0a consumer secret of the Twitter application used + for sign-in. + This setting is required for enabling Twitter Sign-In. + Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in. + :type twitter_consumer_secret: str + :param twitter_consumer_secret_setting_name: The app setting name that contains the OAuth 1.0a + consumer secret of the Twitter + application used for sign-in. + :type twitter_consumer_secret_setting_name: str + :param microsoft_account_client_id: The OAuth 2.0 client ID that was created for the app used + for authentication. + This setting is required for enabling Microsoft Account authentication. + Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm. + :type microsoft_account_client_id: str + :param microsoft_account_client_secret: The OAuth 2.0 client secret that was created for the + app used for authentication. + This setting is required for enabling Microsoft Account authentication. + Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm. + :type microsoft_account_client_secret: str + :param microsoft_account_client_secret_setting_name: The app setting name containing the OAuth + 2.0 client secret that was created for the + app used for authentication. + :type microsoft_account_client_secret_setting_name: str + :param microsoft_account_o_auth_scopes: The OAuth 2.0 scopes that will be requested as part of + Microsoft Account authentication. + This setting is optional. If not specified, "wl.basic" is used as the default scope. + Microsoft Account Scopes and permissions documentation: + https://msdn.microsoft.com/en-us/library/dn631845.aspx. + :type microsoft_account_o_auth_scopes: list[str] + :param is_auth_from_file: "true" if the auth config settings should be read from a file, + "false" otherwise. + :type is_auth_from_file: str + :param auth_file_path: The path of the config file containing auth settings. + If the path is relative, base will the site's root directory. + :type auth_file_path: str + :param config_version: The ConfigVersion of the Authentication / Authorization feature in use + for the current app. + The setting in this value can control the behavior of the control plane for Authentication / + Authorization. + :type config_version: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'runtime_version': {'key': 'properties.runtimeVersion', 'type': 'str'}, + 'unauthenticated_client_action': {'key': 'properties.unauthenticatedClientAction', 'type': 'str'}, + 'token_store_enabled': {'key': 'properties.tokenStoreEnabled', 'type': 'bool'}, + 'allowed_external_redirect_urls': {'key': 'properties.allowedExternalRedirectUrls', 'type': '[str]'}, + 'default_provider': {'key': 'properties.defaultProvider', 'type': 'str'}, + 'token_refresh_extension_hours': {'key': 'properties.tokenRefreshExtensionHours', 'type': 'float'}, + 'client_id': {'key': 'properties.clientId', 'type': 'str'}, + 'client_secret': {'key': 'properties.clientSecret', 'type': 'str'}, + 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, + 'client_secret_certificate_thumbprint': {'key': 'properties.clientSecretCertificateThumbprint', 'type': 'str'}, + 'issuer': {'key': 'properties.issuer', 'type': 'str'}, + 'validate_issuer': {'key': 'properties.validateIssuer', 'type': 'bool'}, + 'allowed_audiences': {'key': 'properties.allowedAudiences', 'type': '[str]'}, + 'additional_login_params': {'key': 'properties.additionalLoginParams', 'type': '[str]'}, + 'aad_claims_authorization': {'key': 'properties.aadClaimsAuthorization', 'type': 'str'}, + 'google_client_id': {'key': 'properties.googleClientId', 'type': 'str'}, + 'google_client_secret': {'key': 'properties.googleClientSecret', 'type': 'str'}, + 'google_client_secret_setting_name': {'key': 'properties.googleClientSecretSettingName', 'type': 'str'}, + 'google_o_auth_scopes': {'key': 'properties.googleOAuthScopes', 'type': '[str]'}, + 'facebook_app_id': {'key': 'properties.facebookAppId', 'type': 'str'}, + 'facebook_app_secret': {'key': 'properties.facebookAppSecret', 'type': 'str'}, + 'facebook_app_secret_setting_name': {'key': 'properties.facebookAppSecretSettingName', 'type': 'str'}, + 'facebook_o_auth_scopes': {'key': 'properties.facebookOAuthScopes', 'type': '[str]'}, + 'git_hub_client_id': {'key': 'properties.gitHubClientId', 'type': 'str'}, + 'git_hub_client_secret': {'key': 'properties.gitHubClientSecret', 'type': 'str'}, + 'git_hub_client_secret_setting_name': {'key': 'properties.gitHubClientSecretSettingName', 'type': 'str'}, + 'git_hub_o_auth_scopes': {'key': 'properties.gitHubOAuthScopes', 'type': '[str]'}, + 'twitter_consumer_key': {'key': 'properties.twitterConsumerKey', 'type': 'str'}, + 'twitter_consumer_secret': {'key': 'properties.twitterConsumerSecret', 'type': 'str'}, + 'twitter_consumer_secret_setting_name': {'key': 'properties.twitterConsumerSecretSettingName', 'type': 'str'}, + 'microsoft_account_client_id': {'key': 'properties.microsoftAccountClientId', 'type': 'str'}, + 'microsoft_account_client_secret': {'key': 'properties.microsoftAccountClientSecret', 'type': 'str'}, + 'microsoft_account_client_secret_setting_name': {'key': 'properties.microsoftAccountClientSecretSettingName', 'type': 'str'}, + 'microsoft_account_o_auth_scopes': {'key': 'properties.microsoftAccountOAuthScopes', 'type': '[str]'}, + 'is_auth_from_file': {'key': 'properties.isAuthFromFile', 'type': 'str'}, + 'auth_file_path': {'key': 'properties.authFilePath', 'type': 'str'}, + 'config_version': {'key': 'properties.configVersion', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteAuthSettings, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.runtime_version = kwargs.get('runtime_version', None) + self.unauthenticated_client_action = kwargs.get('unauthenticated_client_action', None) + self.token_store_enabled = kwargs.get('token_store_enabled', None) + self.allowed_external_redirect_urls = kwargs.get('allowed_external_redirect_urls', None) + self.default_provider = kwargs.get('default_provider', None) + self.token_refresh_extension_hours = kwargs.get('token_refresh_extension_hours', None) + self.client_id = kwargs.get('client_id', None) + self.client_secret = kwargs.get('client_secret', None) + self.client_secret_setting_name = kwargs.get('client_secret_setting_name', None) + self.client_secret_certificate_thumbprint = kwargs.get('client_secret_certificate_thumbprint', None) + self.issuer = kwargs.get('issuer', None) + self.validate_issuer = kwargs.get('validate_issuer', None) + self.allowed_audiences = kwargs.get('allowed_audiences', None) + self.additional_login_params = kwargs.get('additional_login_params', None) + self.aad_claims_authorization = kwargs.get('aad_claims_authorization', None) + self.google_client_id = kwargs.get('google_client_id', None) + self.google_client_secret = kwargs.get('google_client_secret', None) + self.google_client_secret_setting_name = kwargs.get('google_client_secret_setting_name', None) + self.google_o_auth_scopes = kwargs.get('google_o_auth_scopes', None) + self.facebook_app_id = kwargs.get('facebook_app_id', None) + self.facebook_app_secret = kwargs.get('facebook_app_secret', None) + self.facebook_app_secret_setting_name = kwargs.get('facebook_app_secret_setting_name', None) + self.facebook_o_auth_scopes = kwargs.get('facebook_o_auth_scopes', None) + self.git_hub_client_id = kwargs.get('git_hub_client_id', None) + self.git_hub_client_secret = kwargs.get('git_hub_client_secret', None) + self.git_hub_client_secret_setting_name = kwargs.get('git_hub_client_secret_setting_name', None) + self.git_hub_o_auth_scopes = kwargs.get('git_hub_o_auth_scopes', None) + self.twitter_consumer_key = kwargs.get('twitter_consumer_key', None) + self.twitter_consumer_secret = kwargs.get('twitter_consumer_secret', None) + self.twitter_consumer_secret_setting_name = kwargs.get('twitter_consumer_secret_setting_name', None) + self.microsoft_account_client_id = kwargs.get('microsoft_account_client_id', None) + self.microsoft_account_client_secret = kwargs.get('microsoft_account_client_secret', None) + self.microsoft_account_client_secret_setting_name = kwargs.get('microsoft_account_client_secret_setting_name', None) + self.microsoft_account_o_auth_scopes = kwargs.get('microsoft_account_o_auth_scopes', None) + self.is_auth_from_file = kwargs.get('is_auth_from_file', None) + self.auth_file_path = kwargs.get('auth_file_path', None) + self.config_version = kwargs.get('config_version', None) + + +class SiteAuthSettingsV2(ProxyOnlyResource): + """Configuration settings for the Azure App Service Authentication / Authorization V2 feature. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param platform: The configuration settings of the platform of App Service + Authentication/Authorization. + :type platform: ~azure.mgmt.web.v2021_01_15.models.AuthPlatform + :param global_validation: The configuration settings that determines the validation flow of + users using App Service Authentication/Authorization. + :type global_validation: ~azure.mgmt.web.v2021_01_15.models.GlobalValidation + :param identity_providers: The configuration settings of each of the identity providers used to + configure App Service Authentication/Authorization. + :type identity_providers: ~azure.mgmt.web.v2021_01_15.models.IdentityProviders + :param login: The configuration settings of the login flow of users using App Service + Authentication/Authorization. + :type login: ~azure.mgmt.web.v2021_01_15.models.Login + :param http_settings: The configuration settings of the HTTP requests for authentication and + authorization requests made against App Service Authentication/Authorization. + :type http_settings: ~azure.mgmt.web.v2021_01_15.models.HttpSettings + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'platform': {'key': 'properties.platform', 'type': 'AuthPlatform'}, + 'global_validation': {'key': 'properties.globalValidation', 'type': 'GlobalValidation'}, + 'identity_providers': {'key': 'properties.identityProviders', 'type': 'IdentityProviders'}, + 'login': {'key': 'properties.login', 'type': 'Login'}, + 'http_settings': {'key': 'properties.httpSettings', 'type': 'HttpSettings'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteAuthSettingsV2, self).__init__(**kwargs) + self.platform = kwargs.get('platform', None) + self.global_validation = kwargs.get('global_validation', None) + self.identity_providers = kwargs.get('identity_providers', None) + self.login = kwargs.get('login', None) + self.http_settings = kwargs.get('http_settings', None) + + +class SiteCloneability(msrest.serialization.Model): + """Represents whether or not an app is cloneable. + + :param result: Name of app. Possible values include: "Cloneable", "PartiallyCloneable", + "NotCloneable". + :type result: str or ~azure.mgmt.web.v2021_01_15.models.CloneAbilityResult + :param blocking_features: List of features enabled on app that prevent cloning. + :type blocking_features: list[~azure.mgmt.web.v2021_01_15.models.SiteCloneabilityCriterion] + :param unsupported_features: List of features enabled on app that are non-blocking but cannot + be cloned. The app can still be cloned + but the features in this list will not be set up on cloned app. + :type unsupported_features: list[~azure.mgmt.web.v2021_01_15.models.SiteCloneabilityCriterion] + :param blocking_characteristics: List of blocking application characteristics. + :type blocking_characteristics: + list[~azure.mgmt.web.v2021_01_15.models.SiteCloneabilityCriterion] + """ + + _attribute_map = { + 'result': {'key': 'result', 'type': 'str'}, + 'blocking_features': {'key': 'blockingFeatures', 'type': '[SiteCloneabilityCriterion]'}, + 'unsupported_features': {'key': 'unsupportedFeatures', 'type': '[SiteCloneabilityCriterion]'}, + 'blocking_characteristics': {'key': 'blockingCharacteristics', 'type': '[SiteCloneabilityCriterion]'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteCloneability, self).__init__(**kwargs) + self.result = kwargs.get('result', None) + self.blocking_features = kwargs.get('blocking_features', None) + self.unsupported_features = kwargs.get('unsupported_features', None) + self.blocking_characteristics = kwargs.get('blocking_characteristics', None) + + +class SiteCloneabilityCriterion(msrest.serialization.Model): + """An app cloneability criterion. + + :param name: Name of criterion. + :type name: str + :param description: Description of criterion. + :type description: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteCloneabilityCriterion, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.description = kwargs.get('description', None) + + +class SiteConfig(msrest.serialization.Model): + """Configuration of an App Service app. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param number_of_workers: Number of workers. + :type number_of_workers: int + :param default_documents: Default documents. + :type default_documents: list[str] + :param net_framework_version: .NET Framework version. + :type net_framework_version: str + :param php_version: Version of PHP. + :type php_version: str + :param python_version: Version of Python. + :type python_version: str + :param node_version: Version of Node.js. + :type node_version: str + :param power_shell_version: Version of PowerShell. + :type power_shell_version: str + :param linux_fx_version: Linux App Framework and version. + :type linux_fx_version: str + :param windows_fx_version: Xenon App Framework and version. + :type windows_fx_version: str + :param request_tracing_enabled: :code:`true` if request tracing is enabled; + otherwise, :code:`false`. + :type request_tracing_enabled: bool + :param request_tracing_expiration_time: Request tracing expiration time. + :type request_tracing_expiration_time: ~datetime.datetime + :param remote_debugging_enabled: :code:`true` if remote debugging is enabled; + otherwise, :code:`false`. + :type remote_debugging_enabled: bool + :param remote_debugging_version: Remote debugging version. + :type remote_debugging_version: str + :param http_logging_enabled: :code:`true` if HTTP logging is enabled; otherwise, + :code:`false`. + :type http_logging_enabled: bool + :param acr_use_managed_identity_creds: Flag to use Managed Identity Creds for ACR pull. + :type acr_use_managed_identity_creds: bool + :param acr_user_managed_identity_id: If using user managed identity, the user managed identity + ClientId. + :type acr_user_managed_identity_id: str + :param logs_directory_size_limit: HTTP logs directory size limit. + :type logs_directory_size_limit: int + :param detailed_error_logging_enabled: :code:`true` if detailed error logging is + enabled; otherwise, :code:`false`. + :type detailed_error_logging_enabled: bool + :param publishing_username: Publishing user name. + :type publishing_username: str + :param app_settings: Application settings. + :type app_settings: list[~azure.mgmt.web.v2021_01_15.models.NameValuePair] + :param connection_strings: Connection strings. + :type connection_strings: list[~azure.mgmt.web.v2021_01_15.models.ConnStringInfo] + :ivar machine_key: Site MachineKey. + :vartype machine_key: ~azure.mgmt.web.v2021_01_15.models.SiteMachineKey + :param handler_mappings: Handler mappings. + :type handler_mappings: list[~azure.mgmt.web.v2021_01_15.models.HandlerMapping] + :param document_root: Document root. + :type document_root: str + :param scm_type: SCM type. Possible values include: "None", "Dropbox", "Tfs", "LocalGit", + "GitHub", "CodePlexGit", "CodePlexHg", "BitbucketGit", "BitbucketHg", "ExternalGit", + "ExternalHg", "OneDrive", "VSO", "VSTSRM". + :type scm_type: str or ~azure.mgmt.web.v2021_01_15.models.ScmType + :param use32_bit_worker_process: :code:`true` to use 32-bit worker process; + otherwise, :code:`false`. + :type use32_bit_worker_process: bool + :param web_sockets_enabled: :code:`true` if WebSocket is enabled; otherwise, + :code:`false`. + :type web_sockets_enabled: bool + :param always_on: :code:`true` if Always On is enabled; otherwise, + :code:`false`. + :type always_on: bool + :param java_version: Java version. + :type java_version: str + :param java_container: Java container. + :type java_container: str + :param java_container_version: Java container version. + :type java_container_version: str + :param app_command_line: App command line to launch. + :type app_command_line: str + :param managed_pipeline_mode: Managed pipeline mode. Possible values include: "Integrated", + "Classic". + :type managed_pipeline_mode: str or ~azure.mgmt.web.v2021_01_15.models.ManagedPipelineMode + :param virtual_applications: Virtual applications. + :type virtual_applications: list[~azure.mgmt.web.v2021_01_15.models.VirtualApplication] + :param load_balancing: Site load balancing. Possible values include: "WeightedRoundRobin", + "LeastRequests", "LeastResponseTime", "WeightedTotalTraffic", "RequestHash", + "PerSiteRoundRobin". + :type load_balancing: str or ~azure.mgmt.web.v2021_01_15.models.SiteLoadBalancing + :param experiments: This is work around for polymorphic types. + :type experiments: ~azure.mgmt.web.v2021_01_15.models.Experiments + :param limits: Site limits. + :type limits: ~azure.mgmt.web.v2021_01_15.models.SiteLimits + :param auto_heal_enabled: :code:`true` if Auto Heal is enabled; otherwise, + :code:`false`. + :type auto_heal_enabled: bool + :param auto_heal_rules: Auto Heal rules. + :type auto_heal_rules: ~azure.mgmt.web.v2021_01_15.models.AutoHealRules + :param tracing_options: Tracing options. + :type tracing_options: str + :param vnet_name: Virtual Network name. + :type vnet_name: str + :param vnet_route_all_enabled: Virtual Network Route All enabled. This causes all outbound + traffic to have Virtual Network Security Groups and User Defined Routes applied. + :type vnet_route_all_enabled: bool + :param vnet_private_ports_count: The number of private ports assigned to this app. These will + be assigned dynamically on runtime. + :type vnet_private_ports_count: int + :param cors: Cross-Origin Resource Sharing (CORS) settings. + :type cors: ~azure.mgmt.web.v2021_01_15.models.CorsSettings + :param push: Push endpoint settings. + :type push: ~azure.mgmt.web.v2021_01_15.models.PushSettings + :param api_definition: Information about the formal API definition for the app. + :type api_definition: ~azure.mgmt.web.v2021_01_15.models.ApiDefinitionInfo + :param api_management_config: Azure API management settings linked to the app. + :type api_management_config: ~azure.mgmt.web.v2021_01_15.models.ApiManagementConfig + :param auto_swap_slot_name: Auto-swap slot name. + :type auto_swap_slot_name: str + :param local_my_sql_enabled: :code:`true` to enable local MySQL; otherwise, + :code:`false`. + :type local_my_sql_enabled: bool + :param managed_service_identity_id: Managed Service Identity Id. + :type managed_service_identity_id: int + :param x_managed_service_identity_id: Explicit Managed Service Identity Id. + :type x_managed_service_identity_id: int + :param key_vault_reference_identity: Identity to use for Key Vault Reference authentication. + :type key_vault_reference_identity: str + :param ip_security_restrictions: IP security restrictions for main. + :type ip_security_restrictions: list[~azure.mgmt.web.v2021_01_15.models.IpSecurityRestriction] + :param scm_ip_security_restrictions: IP security restrictions for scm. + :type scm_ip_security_restrictions: + list[~azure.mgmt.web.v2021_01_15.models.IpSecurityRestriction] + :param scm_ip_security_restrictions_use_main: IP security restrictions for scm to use main. + :type scm_ip_security_restrictions_use_main: bool + :param http20_enabled: Http20Enabled: configures a web site to allow clients to connect over + http2.0. + :type http20_enabled: bool + :param min_tls_version: MinTlsVersion: configures the minimum version of TLS required for SSL + requests. Possible values include: "1.0", "1.1", "1.2". + :type min_tls_version: str or ~azure.mgmt.web.v2021_01_15.models.SupportedTlsVersions + :param scm_min_tls_version: ScmMinTlsVersion: configures the minimum version of TLS required + for SSL requests for SCM site. Possible values include: "1.0", "1.1", "1.2". + :type scm_min_tls_version: str or ~azure.mgmt.web.v2021_01_15.models.SupportedTlsVersions + :param ftps_state: State of FTP / FTPS service. Possible values include: "AllAllowed", + "FtpsOnly", "Disabled". + :type ftps_state: str or ~azure.mgmt.web.v2021_01_15.models.FtpsState + :param pre_warmed_instance_count: Number of preWarmed instances. + This setting only applies to the Consumption and Elastic Plans. + :type pre_warmed_instance_count: int + :param function_app_scale_limit: Maximum number of workers that a site can scale out to. + This setting only applies to the Consumption and Elastic Premium Plans. + :type function_app_scale_limit: int + :param health_check_path: Health check path. + :type health_check_path: str + :param functions_runtime_scale_monitoring_enabled: Gets or sets a value indicating whether + functions runtime scale monitoring is enabled. When enabled, + the ScaleController will not monitor event sources directly, but will instead call to the + runtime to get scale status. + :type functions_runtime_scale_monitoring_enabled: bool + :param website_time_zone: Sets the time zone a site uses for generating timestamps. Compatible + with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence + over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a + quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, + expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows + NT\CurrentVersion\Time Zones. + :type website_time_zone: str + :param minimum_elastic_instance_count: Number of minimum instance count for a site + This setting only applies to the Elastic Plans. + :type minimum_elastic_instance_count: int + :param azure_storage_accounts: List of Azure Storage Accounts. + :type azure_storage_accounts: dict[str, + ~azure.mgmt.web.v2021_01_15.models.AzureStorageInfoValue] + :param public_network_access: Property to allow or block all public traffic. + :type public_network_access: str + """ + + _validation = { + 'machine_key': {'readonly': True}, + 'pre_warmed_instance_count': {'maximum': 10, 'minimum': 0}, + 'function_app_scale_limit': {'minimum': 0}, + 'minimum_elastic_instance_count': {'maximum': 20, 'minimum': 0}, + } + + _attribute_map = { + 'number_of_workers': {'key': 'numberOfWorkers', 'type': 'int'}, + 'default_documents': {'key': 'defaultDocuments', 'type': '[str]'}, + 'net_framework_version': {'key': 'netFrameworkVersion', 'type': 'str'}, + 'php_version': {'key': 'phpVersion', 'type': 'str'}, + 'python_version': {'key': 'pythonVersion', 'type': 'str'}, + 'node_version': {'key': 'nodeVersion', 'type': 'str'}, + 'power_shell_version': {'key': 'powerShellVersion', 'type': 'str'}, + 'linux_fx_version': {'key': 'linuxFxVersion', 'type': 'str'}, + 'windows_fx_version': {'key': 'windowsFxVersion', 'type': 'str'}, + 'request_tracing_enabled': {'key': 'requestTracingEnabled', 'type': 'bool'}, + 'request_tracing_expiration_time': {'key': 'requestTracingExpirationTime', 'type': 'iso-8601'}, + 'remote_debugging_enabled': {'key': 'remoteDebuggingEnabled', 'type': 'bool'}, + 'remote_debugging_version': {'key': 'remoteDebuggingVersion', 'type': 'str'}, + 'http_logging_enabled': {'key': 'httpLoggingEnabled', 'type': 'bool'}, + 'acr_use_managed_identity_creds': {'key': 'acrUseManagedIdentityCreds', 'type': 'bool'}, + 'acr_user_managed_identity_id': {'key': 'acrUserManagedIdentityID', 'type': 'str'}, + 'logs_directory_size_limit': {'key': 'logsDirectorySizeLimit', 'type': 'int'}, + 'detailed_error_logging_enabled': {'key': 'detailedErrorLoggingEnabled', 'type': 'bool'}, + 'publishing_username': {'key': 'publishingUsername', 'type': 'str'}, + 'app_settings': {'key': 'appSettings', 'type': '[NameValuePair]'}, + 'connection_strings': {'key': 'connectionStrings', 'type': '[ConnStringInfo]'}, + 'machine_key': {'key': 'machineKey', 'type': 'SiteMachineKey'}, + 'handler_mappings': {'key': 'handlerMappings', 'type': '[HandlerMapping]'}, + 'document_root': {'key': 'documentRoot', 'type': 'str'}, + 'scm_type': {'key': 'scmType', 'type': 'str'}, + 'use32_bit_worker_process': {'key': 'use32BitWorkerProcess', 'type': 'bool'}, + 'web_sockets_enabled': {'key': 'webSocketsEnabled', 'type': 'bool'}, + 'always_on': {'key': 'alwaysOn', 'type': 'bool'}, + 'java_version': {'key': 'javaVersion', 'type': 'str'}, + 'java_container': {'key': 'javaContainer', 'type': 'str'}, + 'java_container_version': {'key': 'javaContainerVersion', 'type': 'str'}, + 'app_command_line': {'key': 'appCommandLine', 'type': 'str'}, + 'managed_pipeline_mode': {'key': 'managedPipelineMode', 'type': 'str'}, + 'virtual_applications': {'key': 'virtualApplications', 'type': '[VirtualApplication]'}, + 'load_balancing': {'key': 'loadBalancing', 'type': 'str'}, + 'experiments': {'key': 'experiments', 'type': 'Experiments'}, + 'limits': {'key': 'limits', 'type': 'SiteLimits'}, + 'auto_heal_enabled': {'key': 'autoHealEnabled', 'type': 'bool'}, + 'auto_heal_rules': {'key': 'autoHealRules', 'type': 'AutoHealRules'}, + 'tracing_options': {'key': 'tracingOptions', 'type': 'str'}, + 'vnet_name': {'key': 'vnetName', 'type': 'str'}, + 'vnet_route_all_enabled': {'key': 'vnetRouteAllEnabled', 'type': 'bool'}, + 'vnet_private_ports_count': {'key': 'vnetPrivatePortsCount', 'type': 'int'}, + 'cors': {'key': 'cors', 'type': 'CorsSettings'}, + 'push': {'key': 'push', 'type': 'PushSettings'}, + 'api_definition': {'key': 'apiDefinition', 'type': 'ApiDefinitionInfo'}, + 'api_management_config': {'key': 'apiManagementConfig', 'type': 'ApiManagementConfig'}, + 'auto_swap_slot_name': {'key': 'autoSwapSlotName', 'type': 'str'}, + 'local_my_sql_enabled': {'key': 'localMySqlEnabled', 'type': 'bool'}, + 'managed_service_identity_id': {'key': 'managedServiceIdentityId', 'type': 'int'}, + 'x_managed_service_identity_id': {'key': 'xManagedServiceIdentityId', 'type': 'int'}, + 'key_vault_reference_identity': {'key': 'keyVaultReferenceIdentity', 'type': 'str'}, + 'ip_security_restrictions': {'key': 'ipSecurityRestrictions', 'type': '[IpSecurityRestriction]'}, + 'scm_ip_security_restrictions': {'key': 'scmIpSecurityRestrictions', 'type': '[IpSecurityRestriction]'}, + 'scm_ip_security_restrictions_use_main': {'key': 'scmIpSecurityRestrictionsUseMain', 'type': 'bool'}, + 'http20_enabled': {'key': 'http20Enabled', 'type': 'bool'}, + 'min_tls_version': {'key': 'minTlsVersion', 'type': 'str'}, + 'scm_min_tls_version': {'key': 'scmMinTlsVersion', 'type': 'str'}, + 'ftps_state': {'key': 'ftpsState', 'type': 'str'}, + 'pre_warmed_instance_count': {'key': 'preWarmedInstanceCount', 'type': 'int'}, + 'function_app_scale_limit': {'key': 'functionAppScaleLimit', 'type': 'int'}, + 'health_check_path': {'key': 'healthCheckPath', 'type': 'str'}, + 'functions_runtime_scale_monitoring_enabled': {'key': 'functionsRuntimeScaleMonitoringEnabled', 'type': 'bool'}, + 'website_time_zone': {'key': 'websiteTimeZone', 'type': 'str'}, + 'minimum_elastic_instance_count': {'key': 'minimumElasticInstanceCount', 'type': 'int'}, + 'azure_storage_accounts': {'key': 'azureStorageAccounts', 'type': '{AzureStorageInfoValue}'}, + 'public_network_access': {'key': 'publicNetworkAccess', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteConfig, self).__init__(**kwargs) + self.number_of_workers = kwargs.get('number_of_workers', None) + self.default_documents = kwargs.get('default_documents', None) + self.net_framework_version = kwargs.get('net_framework_version', "v4.6") + self.php_version = kwargs.get('php_version', None) + self.python_version = kwargs.get('python_version', None) + self.node_version = kwargs.get('node_version', None) + self.power_shell_version = kwargs.get('power_shell_version', None) + self.linux_fx_version = kwargs.get('linux_fx_version', None) + self.windows_fx_version = kwargs.get('windows_fx_version', None) + self.request_tracing_enabled = kwargs.get('request_tracing_enabled', None) + self.request_tracing_expiration_time = kwargs.get('request_tracing_expiration_time', None) + self.remote_debugging_enabled = kwargs.get('remote_debugging_enabled', None) + self.remote_debugging_version = kwargs.get('remote_debugging_version', None) + self.http_logging_enabled = kwargs.get('http_logging_enabled', None) + self.acr_use_managed_identity_creds = kwargs.get('acr_use_managed_identity_creds', None) + self.acr_user_managed_identity_id = kwargs.get('acr_user_managed_identity_id', None) + self.logs_directory_size_limit = kwargs.get('logs_directory_size_limit', None) + self.detailed_error_logging_enabled = kwargs.get('detailed_error_logging_enabled', None) + self.publishing_username = kwargs.get('publishing_username', None) + self.app_settings = kwargs.get('app_settings', None) + self.connection_strings = kwargs.get('connection_strings', None) + self.machine_key = None + self.handler_mappings = kwargs.get('handler_mappings', None) + self.document_root = kwargs.get('document_root', None) + self.scm_type = kwargs.get('scm_type', None) + self.use32_bit_worker_process = kwargs.get('use32_bit_worker_process', None) + self.web_sockets_enabled = kwargs.get('web_sockets_enabled', None) + self.always_on = kwargs.get('always_on', None) + self.java_version = kwargs.get('java_version', None) + self.java_container = kwargs.get('java_container', None) + self.java_container_version = kwargs.get('java_container_version', None) + self.app_command_line = kwargs.get('app_command_line', None) + self.managed_pipeline_mode = kwargs.get('managed_pipeline_mode', None) + self.virtual_applications = kwargs.get('virtual_applications', None) + self.load_balancing = kwargs.get('load_balancing', None) + self.experiments = kwargs.get('experiments', None) + self.limits = kwargs.get('limits', None) + self.auto_heal_enabled = kwargs.get('auto_heal_enabled', None) + self.auto_heal_rules = kwargs.get('auto_heal_rules', None) + self.tracing_options = kwargs.get('tracing_options', None) + self.vnet_name = kwargs.get('vnet_name', None) + self.vnet_route_all_enabled = kwargs.get('vnet_route_all_enabled', None) + self.vnet_private_ports_count = kwargs.get('vnet_private_ports_count', None) + self.cors = kwargs.get('cors', None) + self.push = kwargs.get('push', None) + self.api_definition = kwargs.get('api_definition', None) + self.api_management_config = kwargs.get('api_management_config', None) + self.auto_swap_slot_name = kwargs.get('auto_swap_slot_name', None) + self.local_my_sql_enabled = kwargs.get('local_my_sql_enabled', False) + self.managed_service_identity_id = kwargs.get('managed_service_identity_id', None) + self.x_managed_service_identity_id = kwargs.get('x_managed_service_identity_id', None) + self.key_vault_reference_identity = kwargs.get('key_vault_reference_identity', None) + self.ip_security_restrictions = kwargs.get('ip_security_restrictions', None) + self.scm_ip_security_restrictions = kwargs.get('scm_ip_security_restrictions', None) + self.scm_ip_security_restrictions_use_main = kwargs.get('scm_ip_security_restrictions_use_main', None) + self.http20_enabled = kwargs.get('http20_enabled', True) + self.min_tls_version = kwargs.get('min_tls_version', None) + self.scm_min_tls_version = kwargs.get('scm_min_tls_version', None) + self.ftps_state = kwargs.get('ftps_state', None) + self.pre_warmed_instance_count = kwargs.get('pre_warmed_instance_count', None) + self.function_app_scale_limit = kwargs.get('function_app_scale_limit', None) + self.health_check_path = kwargs.get('health_check_path', None) + self.functions_runtime_scale_monitoring_enabled = kwargs.get('functions_runtime_scale_monitoring_enabled', None) + self.website_time_zone = kwargs.get('website_time_zone', None) + self.minimum_elastic_instance_count = kwargs.get('minimum_elastic_instance_count', None) + self.azure_storage_accounts = kwargs.get('azure_storage_accounts', None) + self.public_network_access = kwargs.get('public_network_access', None) + + +class SiteConfigPropertiesDictionary(msrest.serialization.Model): + """Site config properties dictionary. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar use32_bit_worker_process: :code:`true` if use32BitWorkerProcess should be + set to true for the stack; otherwise, :code:`false`. + :vartype use32_bit_worker_process: bool + :ivar linux_fx_version: LinuxFxVersion configuration setting. + :vartype linux_fx_version: str + :ivar java_version: JavaVersion configuration setting. + :vartype java_version: str + :ivar power_shell_version: PowerShellVersion configuration setting. + :vartype power_shell_version: str + """ + + _validation = { + 'use32_bit_worker_process': {'readonly': True}, + 'linux_fx_version': {'readonly': True}, + 'java_version': {'readonly': True}, + 'power_shell_version': {'readonly': True}, + } + + _attribute_map = { + 'use32_bit_worker_process': {'key': 'use32BitWorkerProcess', 'type': 'bool'}, + 'linux_fx_version': {'key': 'linuxFxVersion', 'type': 'str'}, + 'java_version': {'key': 'javaVersion', 'type': 'str'}, + 'power_shell_version': {'key': 'powerShellVersion', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteConfigPropertiesDictionary, self).__init__(**kwargs) + self.use32_bit_worker_process = None + self.linux_fx_version = None + self.java_version = None + self.power_shell_version = None + + +class SiteConfigResource(ProxyOnlyResource): + """Web app configuration ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param number_of_workers: Number of workers. + :type number_of_workers: int + :param default_documents: Default documents. + :type default_documents: list[str] + :param net_framework_version: .NET Framework version. + :type net_framework_version: str + :param php_version: Version of PHP. + :type php_version: str + :param python_version: Version of Python. + :type python_version: str + :param node_version: Version of Node.js. + :type node_version: str + :param power_shell_version: Version of PowerShell. + :type power_shell_version: str + :param linux_fx_version: Linux App Framework and version. + :type linux_fx_version: str + :param windows_fx_version: Xenon App Framework and version. + :type windows_fx_version: str + :param request_tracing_enabled: :code:`true` if request tracing is enabled; + otherwise, :code:`false`. + :type request_tracing_enabled: bool + :param request_tracing_expiration_time: Request tracing expiration time. + :type request_tracing_expiration_time: ~datetime.datetime + :param remote_debugging_enabled: :code:`true` if remote debugging is enabled; + otherwise, :code:`false`. + :type remote_debugging_enabled: bool + :param remote_debugging_version: Remote debugging version. + :type remote_debugging_version: str + :param http_logging_enabled: :code:`true` if HTTP logging is enabled; otherwise, + :code:`false`. + :type http_logging_enabled: bool + :param acr_use_managed_identity_creds: Flag to use Managed Identity Creds for ACR pull. + :type acr_use_managed_identity_creds: bool + :param acr_user_managed_identity_id: If using user managed identity, the user managed identity + ClientId. + :type acr_user_managed_identity_id: str + :param logs_directory_size_limit: HTTP logs directory size limit. + :type logs_directory_size_limit: int + :param detailed_error_logging_enabled: :code:`true` if detailed error logging is + enabled; otherwise, :code:`false`. + :type detailed_error_logging_enabled: bool + :param publishing_username: Publishing user name. + :type publishing_username: str + :param app_settings: Application settings. + :type app_settings: list[~azure.mgmt.web.v2021_01_15.models.NameValuePair] + :param connection_strings: Connection strings. + :type connection_strings: list[~azure.mgmt.web.v2021_01_15.models.ConnStringInfo] + :ivar machine_key: Site MachineKey. + :vartype machine_key: ~azure.mgmt.web.v2021_01_15.models.SiteMachineKey + :param handler_mappings: Handler mappings. + :type handler_mappings: list[~azure.mgmt.web.v2021_01_15.models.HandlerMapping] + :param document_root: Document root. + :type document_root: str + :param scm_type: SCM type. Possible values include: "None", "Dropbox", "Tfs", "LocalGit", + "GitHub", "CodePlexGit", "CodePlexHg", "BitbucketGit", "BitbucketHg", "ExternalGit", + "ExternalHg", "OneDrive", "VSO", "VSTSRM". + :type scm_type: str or ~azure.mgmt.web.v2021_01_15.models.ScmType + :param use32_bit_worker_process: :code:`true` to use 32-bit worker process; + otherwise, :code:`false`. + :type use32_bit_worker_process: bool + :param web_sockets_enabled: :code:`true` if WebSocket is enabled; otherwise, + :code:`false`. + :type web_sockets_enabled: bool + :param always_on: :code:`true` if Always On is enabled; otherwise, + :code:`false`. + :type always_on: bool + :param java_version: Java version. + :type java_version: str + :param java_container: Java container. + :type java_container: str + :param java_container_version: Java container version. + :type java_container_version: str + :param app_command_line: App command line to launch. + :type app_command_line: str + :param managed_pipeline_mode: Managed pipeline mode. Possible values include: "Integrated", + "Classic". + :type managed_pipeline_mode: str or ~azure.mgmt.web.v2021_01_15.models.ManagedPipelineMode + :param virtual_applications: Virtual applications. + :type virtual_applications: list[~azure.mgmt.web.v2021_01_15.models.VirtualApplication] + :param load_balancing: Site load balancing. Possible values include: "WeightedRoundRobin", + "LeastRequests", "LeastResponseTime", "WeightedTotalTraffic", "RequestHash", + "PerSiteRoundRobin". + :type load_balancing: str or ~azure.mgmt.web.v2021_01_15.models.SiteLoadBalancing + :param experiments: This is work around for polymorphic types. + :type experiments: ~azure.mgmt.web.v2021_01_15.models.Experiments + :param limits: Site limits. + :type limits: ~azure.mgmt.web.v2021_01_15.models.SiteLimits + :param auto_heal_enabled: :code:`true` if Auto Heal is enabled; otherwise, + :code:`false`. + :type auto_heal_enabled: bool + :param auto_heal_rules: Auto Heal rules. + :type auto_heal_rules: ~azure.mgmt.web.v2021_01_15.models.AutoHealRules + :param tracing_options: Tracing options. + :type tracing_options: str + :param vnet_name: Virtual Network name. + :type vnet_name: str + :param vnet_route_all_enabled: Virtual Network Route All enabled. This causes all outbound + traffic to have Virtual Network Security Groups and User Defined Routes applied. + :type vnet_route_all_enabled: bool + :param vnet_private_ports_count: The number of private ports assigned to this app. These will + be assigned dynamically on runtime. + :type vnet_private_ports_count: int + :param cors: Cross-Origin Resource Sharing (CORS) settings. + :type cors: ~azure.mgmt.web.v2021_01_15.models.CorsSettings + :param push: Push endpoint settings. + :type push: ~azure.mgmt.web.v2021_01_15.models.PushSettings + :param api_definition: Information about the formal API definition for the app. + :type api_definition: ~azure.mgmt.web.v2021_01_15.models.ApiDefinitionInfo + :param api_management_config: Azure API management settings linked to the app. + :type api_management_config: ~azure.mgmt.web.v2021_01_15.models.ApiManagementConfig + :param auto_swap_slot_name: Auto-swap slot name. + :type auto_swap_slot_name: str + :param local_my_sql_enabled: :code:`true` to enable local MySQL; otherwise, + :code:`false`. + :type local_my_sql_enabled: bool + :param managed_service_identity_id: Managed Service Identity Id. + :type managed_service_identity_id: int + :param x_managed_service_identity_id: Explicit Managed Service Identity Id. + :type x_managed_service_identity_id: int + :param key_vault_reference_identity: Identity to use for Key Vault Reference authentication. + :type key_vault_reference_identity: str + :param ip_security_restrictions: IP security restrictions for main. + :type ip_security_restrictions: list[~azure.mgmt.web.v2021_01_15.models.IpSecurityRestriction] + :param scm_ip_security_restrictions: IP security restrictions for scm. + :type scm_ip_security_restrictions: + list[~azure.mgmt.web.v2021_01_15.models.IpSecurityRestriction] + :param scm_ip_security_restrictions_use_main: IP security restrictions for scm to use main. + :type scm_ip_security_restrictions_use_main: bool + :param http20_enabled: Http20Enabled: configures a web site to allow clients to connect over + http2.0. + :type http20_enabled: bool + :param min_tls_version: MinTlsVersion: configures the minimum version of TLS required for SSL + requests. Possible values include: "1.0", "1.1", "1.2". + :type min_tls_version: str or ~azure.mgmt.web.v2021_01_15.models.SupportedTlsVersions + :param scm_min_tls_version: ScmMinTlsVersion: configures the minimum version of TLS required + for SSL requests for SCM site. Possible values include: "1.0", "1.1", "1.2". + :type scm_min_tls_version: str or ~azure.mgmt.web.v2021_01_15.models.SupportedTlsVersions + :param ftps_state: State of FTP / FTPS service. Possible values include: "AllAllowed", + "FtpsOnly", "Disabled". + :type ftps_state: str or ~azure.mgmt.web.v2021_01_15.models.FtpsState + :param pre_warmed_instance_count: Number of preWarmed instances. + This setting only applies to the Consumption and Elastic Plans. + :type pre_warmed_instance_count: int + :param function_app_scale_limit: Maximum number of workers that a site can scale out to. + This setting only applies to the Consumption and Elastic Premium Plans. + :type function_app_scale_limit: int + :param health_check_path: Health check path. + :type health_check_path: str + :param functions_runtime_scale_monitoring_enabled: Gets or sets a value indicating whether + functions runtime scale monitoring is enabled. When enabled, + the ScaleController will not monitor event sources directly, but will instead call to the + runtime to get scale status. + :type functions_runtime_scale_monitoring_enabled: bool + :param website_time_zone: Sets the time zone a site uses for generating timestamps. Compatible + with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence + over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a + quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, + expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows + NT\CurrentVersion\Time Zones. + :type website_time_zone: str + :param minimum_elastic_instance_count: Number of minimum instance count for a site + This setting only applies to the Elastic Plans. + :type minimum_elastic_instance_count: int + :param azure_storage_accounts: List of Azure Storage Accounts. + :type azure_storage_accounts: dict[str, + ~azure.mgmt.web.v2021_01_15.models.AzureStorageInfoValue] + :param public_network_access: Property to allow or block all public traffic. + :type public_network_access: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'machine_key': {'readonly': True}, + 'pre_warmed_instance_count': {'maximum': 10, 'minimum': 0}, + 'function_app_scale_limit': {'minimum': 0}, + 'minimum_elastic_instance_count': {'maximum': 20, 'minimum': 0}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'number_of_workers': {'key': 'properties.numberOfWorkers', 'type': 'int'}, + 'default_documents': {'key': 'properties.defaultDocuments', 'type': '[str]'}, + 'net_framework_version': {'key': 'properties.netFrameworkVersion', 'type': 'str'}, + 'php_version': {'key': 'properties.phpVersion', 'type': 'str'}, + 'python_version': {'key': 'properties.pythonVersion', 'type': 'str'}, + 'node_version': {'key': 'properties.nodeVersion', 'type': 'str'}, + 'power_shell_version': {'key': 'properties.powerShellVersion', 'type': 'str'}, + 'linux_fx_version': {'key': 'properties.linuxFxVersion', 'type': 'str'}, + 'windows_fx_version': {'key': 'properties.windowsFxVersion', 'type': 'str'}, + 'request_tracing_enabled': {'key': 'properties.requestTracingEnabled', 'type': 'bool'}, + 'request_tracing_expiration_time': {'key': 'properties.requestTracingExpirationTime', 'type': 'iso-8601'}, + 'remote_debugging_enabled': {'key': 'properties.remoteDebuggingEnabled', 'type': 'bool'}, + 'remote_debugging_version': {'key': 'properties.remoteDebuggingVersion', 'type': 'str'}, + 'http_logging_enabled': {'key': 'properties.httpLoggingEnabled', 'type': 'bool'}, + 'acr_use_managed_identity_creds': {'key': 'properties.acrUseManagedIdentityCreds', 'type': 'bool'}, + 'acr_user_managed_identity_id': {'key': 'properties.acrUserManagedIdentityID', 'type': 'str'}, + 'logs_directory_size_limit': {'key': 'properties.logsDirectorySizeLimit', 'type': 'int'}, + 'detailed_error_logging_enabled': {'key': 'properties.detailedErrorLoggingEnabled', 'type': 'bool'}, + 'publishing_username': {'key': 'properties.publishingUsername', 'type': 'str'}, + 'app_settings': {'key': 'properties.appSettings', 'type': '[NameValuePair]'}, + 'connection_strings': {'key': 'properties.connectionStrings', 'type': '[ConnStringInfo]'}, + 'machine_key': {'key': 'properties.machineKey', 'type': 'SiteMachineKey'}, + 'handler_mappings': {'key': 'properties.handlerMappings', 'type': '[HandlerMapping]'}, + 'document_root': {'key': 'properties.documentRoot', 'type': 'str'}, + 'scm_type': {'key': 'properties.scmType', 'type': 'str'}, + 'use32_bit_worker_process': {'key': 'properties.use32BitWorkerProcess', 'type': 'bool'}, + 'web_sockets_enabled': {'key': 'properties.webSocketsEnabled', 'type': 'bool'}, + 'always_on': {'key': 'properties.alwaysOn', 'type': 'bool'}, + 'java_version': {'key': 'properties.javaVersion', 'type': 'str'}, + 'java_container': {'key': 'properties.javaContainer', 'type': 'str'}, + 'java_container_version': {'key': 'properties.javaContainerVersion', 'type': 'str'}, + 'app_command_line': {'key': 'properties.appCommandLine', 'type': 'str'}, + 'managed_pipeline_mode': {'key': 'properties.managedPipelineMode', 'type': 'str'}, + 'virtual_applications': {'key': 'properties.virtualApplications', 'type': '[VirtualApplication]'}, + 'load_balancing': {'key': 'properties.loadBalancing', 'type': 'str'}, + 'experiments': {'key': 'properties.experiments', 'type': 'Experiments'}, + 'limits': {'key': 'properties.limits', 'type': 'SiteLimits'}, + 'auto_heal_enabled': {'key': 'properties.autoHealEnabled', 'type': 'bool'}, + 'auto_heal_rules': {'key': 'properties.autoHealRules', 'type': 'AutoHealRules'}, + 'tracing_options': {'key': 'properties.tracingOptions', 'type': 'str'}, + 'vnet_name': {'key': 'properties.vnetName', 'type': 'str'}, + 'vnet_route_all_enabled': {'key': 'properties.vnetRouteAllEnabled', 'type': 'bool'}, + 'vnet_private_ports_count': {'key': 'properties.vnetPrivatePortsCount', 'type': 'int'}, + 'cors': {'key': 'properties.cors', 'type': 'CorsSettings'}, + 'push': {'key': 'properties.push', 'type': 'PushSettings'}, + 'api_definition': {'key': 'properties.apiDefinition', 'type': 'ApiDefinitionInfo'}, + 'api_management_config': {'key': 'properties.apiManagementConfig', 'type': 'ApiManagementConfig'}, + 'auto_swap_slot_name': {'key': 'properties.autoSwapSlotName', 'type': 'str'}, + 'local_my_sql_enabled': {'key': 'properties.localMySqlEnabled', 'type': 'bool'}, + 'managed_service_identity_id': {'key': 'properties.managedServiceIdentityId', 'type': 'int'}, + 'x_managed_service_identity_id': {'key': 'properties.xManagedServiceIdentityId', 'type': 'int'}, + 'key_vault_reference_identity': {'key': 'properties.keyVaultReferenceIdentity', 'type': 'str'}, + 'ip_security_restrictions': {'key': 'properties.ipSecurityRestrictions', 'type': '[IpSecurityRestriction]'}, + 'scm_ip_security_restrictions': {'key': 'properties.scmIpSecurityRestrictions', 'type': '[IpSecurityRestriction]'}, + 'scm_ip_security_restrictions_use_main': {'key': 'properties.scmIpSecurityRestrictionsUseMain', 'type': 'bool'}, + 'http20_enabled': {'key': 'properties.http20Enabled', 'type': 'bool'}, + 'min_tls_version': {'key': 'properties.minTlsVersion', 'type': 'str'}, + 'scm_min_tls_version': {'key': 'properties.scmMinTlsVersion', 'type': 'str'}, + 'ftps_state': {'key': 'properties.ftpsState', 'type': 'str'}, + 'pre_warmed_instance_count': {'key': 'properties.preWarmedInstanceCount', 'type': 'int'}, + 'function_app_scale_limit': {'key': 'properties.functionAppScaleLimit', 'type': 'int'}, + 'health_check_path': {'key': 'properties.healthCheckPath', 'type': 'str'}, + 'functions_runtime_scale_monitoring_enabled': {'key': 'properties.functionsRuntimeScaleMonitoringEnabled', 'type': 'bool'}, + 'website_time_zone': {'key': 'properties.websiteTimeZone', 'type': 'str'}, + 'minimum_elastic_instance_count': {'key': 'properties.minimumElasticInstanceCount', 'type': 'int'}, + 'azure_storage_accounts': {'key': 'properties.azureStorageAccounts', 'type': '{AzureStorageInfoValue}'}, + 'public_network_access': {'key': 'properties.publicNetworkAccess', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteConfigResource, self).__init__(**kwargs) + self.number_of_workers = kwargs.get('number_of_workers', None) + self.default_documents = kwargs.get('default_documents', None) + self.net_framework_version = kwargs.get('net_framework_version', "v4.6") + self.php_version = kwargs.get('php_version', None) + self.python_version = kwargs.get('python_version', None) + self.node_version = kwargs.get('node_version', None) + self.power_shell_version = kwargs.get('power_shell_version', None) + self.linux_fx_version = kwargs.get('linux_fx_version', None) + self.windows_fx_version = kwargs.get('windows_fx_version', None) + self.request_tracing_enabled = kwargs.get('request_tracing_enabled', None) + self.request_tracing_expiration_time = kwargs.get('request_tracing_expiration_time', None) + self.remote_debugging_enabled = kwargs.get('remote_debugging_enabled', None) + self.remote_debugging_version = kwargs.get('remote_debugging_version', None) + self.http_logging_enabled = kwargs.get('http_logging_enabled', None) + self.acr_use_managed_identity_creds = kwargs.get('acr_use_managed_identity_creds', None) + self.acr_user_managed_identity_id = kwargs.get('acr_user_managed_identity_id', None) + self.logs_directory_size_limit = kwargs.get('logs_directory_size_limit', None) + self.detailed_error_logging_enabled = kwargs.get('detailed_error_logging_enabled', None) + self.publishing_username = kwargs.get('publishing_username', None) + self.app_settings = kwargs.get('app_settings', None) + self.connection_strings = kwargs.get('connection_strings', None) + self.machine_key = None + self.handler_mappings = kwargs.get('handler_mappings', None) + self.document_root = kwargs.get('document_root', None) + self.scm_type = kwargs.get('scm_type', None) + self.use32_bit_worker_process = kwargs.get('use32_bit_worker_process', None) + self.web_sockets_enabled = kwargs.get('web_sockets_enabled', None) + self.always_on = kwargs.get('always_on', None) + self.java_version = kwargs.get('java_version', None) + self.java_container = kwargs.get('java_container', None) + self.java_container_version = kwargs.get('java_container_version', None) + self.app_command_line = kwargs.get('app_command_line', None) + self.managed_pipeline_mode = kwargs.get('managed_pipeline_mode', None) + self.virtual_applications = kwargs.get('virtual_applications', None) + self.load_balancing = kwargs.get('load_balancing', None) + self.experiments = kwargs.get('experiments', None) + self.limits = kwargs.get('limits', None) + self.auto_heal_enabled = kwargs.get('auto_heal_enabled', None) + self.auto_heal_rules = kwargs.get('auto_heal_rules', None) + self.tracing_options = kwargs.get('tracing_options', None) + self.vnet_name = kwargs.get('vnet_name', None) + self.vnet_route_all_enabled = kwargs.get('vnet_route_all_enabled', None) + self.vnet_private_ports_count = kwargs.get('vnet_private_ports_count', None) + self.cors = kwargs.get('cors', None) + self.push = kwargs.get('push', None) + self.api_definition = kwargs.get('api_definition', None) + self.api_management_config = kwargs.get('api_management_config', None) + self.auto_swap_slot_name = kwargs.get('auto_swap_slot_name', None) + self.local_my_sql_enabled = kwargs.get('local_my_sql_enabled', False) + self.managed_service_identity_id = kwargs.get('managed_service_identity_id', None) + self.x_managed_service_identity_id = kwargs.get('x_managed_service_identity_id', None) + self.key_vault_reference_identity = kwargs.get('key_vault_reference_identity', None) + self.ip_security_restrictions = kwargs.get('ip_security_restrictions', None) + self.scm_ip_security_restrictions = kwargs.get('scm_ip_security_restrictions', None) + self.scm_ip_security_restrictions_use_main = kwargs.get('scm_ip_security_restrictions_use_main', None) + self.http20_enabled = kwargs.get('http20_enabled', True) + self.min_tls_version = kwargs.get('min_tls_version', None) + self.scm_min_tls_version = kwargs.get('scm_min_tls_version', None) + self.ftps_state = kwargs.get('ftps_state', None) + self.pre_warmed_instance_count = kwargs.get('pre_warmed_instance_count', None) + self.function_app_scale_limit = kwargs.get('function_app_scale_limit', None) + self.health_check_path = kwargs.get('health_check_path', None) + self.functions_runtime_scale_monitoring_enabled = kwargs.get('functions_runtime_scale_monitoring_enabled', None) + self.website_time_zone = kwargs.get('website_time_zone', None) + self.minimum_elastic_instance_count = kwargs.get('minimum_elastic_instance_count', None) + self.azure_storage_accounts = kwargs.get('azure_storage_accounts', None) + self.public_network_access = kwargs.get('public_network_access', None) + + +class SiteConfigResourceCollection(msrest.serialization.Model): + """Collection of site configurations. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.SiteConfigResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SiteConfigResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteConfigResourceCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class SiteConfigurationSnapshotInfo(ProxyOnlyResource): + """A snapshot of a web app configuration. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar time: The time the snapshot was taken. + :vartype time: ~datetime.datetime + :ivar snapshot_id: The id of the snapshot. + :vartype snapshot_id: int + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'time': {'readonly': True}, + 'snapshot_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'time': {'key': 'properties.time', 'type': 'iso-8601'}, + 'snapshot_id': {'key': 'properties.snapshotId', 'type': 'int'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteConfigurationSnapshotInfo, self).__init__(**kwargs) + self.time = None + self.snapshot_id = None + + +class SiteConfigurationSnapshotInfoCollection(msrest.serialization.Model): + """Collection of metadata for the app configuration snapshots that can be restored. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.SiteConfigurationSnapshotInfo] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SiteConfigurationSnapshotInfo]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteConfigurationSnapshotInfoCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class SiteExtensionInfo(ProxyOnlyResource): + """Site Extension Information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param extension_id: Site extension ID. + :type extension_id: str + :param title: + :type title: str + :param extension_type: Site extension type. Possible values include: "Gallery", "WebRoot". + :type extension_type: str or ~azure.mgmt.web.v2021_01_15.models.SiteExtensionType + :param summary: Summary description. + :type summary: str + :param description: Detailed description. + :type description: str + :param version: Version information. + :type version: str + :param extension_url: Extension URL. + :type extension_url: str + :param project_url: Project URL. + :type project_url: str + :param icon_url: Icon URL. + :type icon_url: str + :param license_url: License URL. + :type license_url: str + :param feed_url: Feed URL. + :type feed_url: str + :param authors: List of authors. + :type authors: list[str] + :param installer_command_line_params: Installer command line parameters. + :type installer_command_line_params: str + :param published_date_time: Published timestamp. + :type published_date_time: ~datetime.datetime + :param download_count: Count of downloads. + :type download_count: int + :param local_is_latest_version: :code:`true` if the local version is the latest + version; :code:`false` otherwise. + :type local_is_latest_version: bool + :param local_path: Local path. + :type local_path: str + :param installed_date_time: Installed timestamp. + :type installed_date_time: ~datetime.datetime + :param provisioning_state: Provisioning state. + :type provisioning_state: str + :param comment: Site Extension comment. + :type comment: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'extension_id': {'key': 'properties.extension_id', 'type': 'str'}, + 'title': {'key': 'properties.title', 'type': 'str'}, + 'extension_type': {'key': 'properties.extension_type', 'type': 'str'}, + 'summary': {'key': 'properties.summary', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'version': {'key': 'properties.version', 'type': 'str'}, + 'extension_url': {'key': 'properties.extension_url', 'type': 'str'}, + 'project_url': {'key': 'properties.project_url', 'type': 'str'}, + 'icon_url': {'key': 'properties.icon_url', 'type': 'str'}, + 'license_url': {'key': 'properties.license_url', 'type': 'str'}, + 'feed_url': {'key': 'properties.feed_url', 'type': 'str'}, + 'authors': {'key': 'properties.authors', 'type': '[str]'}, + 'installer_command_line_params': {'key': 'properties.installer_command_line_params', 'type': 'str'}, + 'published_date_time': {'key': 'properties.published_date_time', 'type': 'iso-8601'}, + 'download_count': {'key': 'properties.download_count', 'type': 'int'}, + 'local_is_latest_version': {'key': 'properties.local_is_latest_version', 'type': 'bool'}, + 'local_path': {'key': 'properties.local_path', 'type': 'str'}, + 'installed_date_time': {'key': 'properties.installed_date_time', 'type': 'iso-8601'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'comment': {'key': 'properties.comment', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteExtensionInfo, self).__init__(**kwargs) + self.extension_id = kwargs.get('extension_id', None) + self.title = kwargs.get('title', None) + self.extension_type = kwargs.get('extension_type', None) + self.summary = kwargs.get('summary', None) + self.description = kwargs.get('description', None) + self.version = kwargs.get('version', None) + self.extension_url = kwargs.get('extension_url', None) + self.project_url = kwargs.get('project_url', None) + self.icon_url = kwargs.get('icon_url', None) + self.license_url = kwargs.get('license_url', None) + self.feed_url = kwargs.get('feed_url', None) + self.authors = kwargs.get('authors', None) + self.installer_command_line_params = kwargs.get('installer_command_line_params', None) + self.published_date_time = kwargs.get('published_date_time', None) + self.download_count = kwargs.get('download_count', None) + self.local_is_latest_version = kwargs.get('local_is_latest_version', None) + self.local_path = kwargs.get('local_path', None) + self.installed_date_time = kwargs.get('installed_date_time', None) + self.provisioning_state = kwargs.get('provisioning_state', None) + self.comment = kwargs.get('comment', None) + + +class SiteExtensionInfoCollection(msrest.serialization.Model): + """Collection of Kudu site extension information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.SiteExtensionInfo] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SiteExtensionInfo]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteExtensionInfoCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class SiteLimits(msrest.serialization.Model): + """Metric limits set on an app. + + :param max_percentage_cpu: Maximum allowed CPU usage percentage. + :type max_percentage_cpu: float + :param max_memory_in_mb: Maximum allowed memory usage in MB. + :type max_memory_in_mb: long + :param max_disk_size_in_mb: Maximum allowed disk size usage in MB. + :type max_disk_size_in_mb: long + """ + + _attribute_map = { + 'max_percentage_cpu': {'key': 'maxPercentageCpu', 'type': 'float'}, + 'max_memory_in_mb': {'key': 'maxMemoryInMb', 'type': 'long'}, + 'max_disk_size_in_mb': {'key': 'maxDiskSizeInMb', 'type': 'long'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteLimits, self).__init__(**kwargs) + self.max_percentage_cpu = kwargs.get('max_percentage_cpu', None) + self.max_memory_in_mb = kwargs.get('max_memory_in_mb', None) + self.max_disk_size_in_mb = kwargs.get('max_disk_size_in_mb', None) + + +class SiteLogsConfig(ProxyOnlyResource): + """Configuration of App Service site logs. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param application_logs: Application logs configuration. + :type application_logs: ~azure.mgmt.web.v2021_01_15.models.ApplicationLogsConfig + :param http_logs: HTTP logs configuration. + :type http_logs: ~azure.mgmt.web.v2021_01_15.models.HttpLogsConfig + :param failed_requests_tracing: Failed requests tracing configuration. + :type failed_requests_tracing: ~azure.mgmt.web.v2021_01_15.models.EnabledConfig + :param detailed_error_messages: Detailed error messages configuration. + :type detailed_error_messages: ~azure.mgmt.web.v2021_01_15.models.EnabledConfig + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'application_logs': {'key': 'properties.applicationLogs', 'type': 'ApplicationLogsConfig'}, + 'http_logs': {'key': 'properties.httpLogs', 'type': 'HttpLogsConfig'}, + 'failed_requests_tracing': {'key': 'properties.failedRequestsTracing', 'type': 'EnabledConfig'}, + 'detailed_error_messages': {'key': 'properties.detailedErrorMessages', 'type': 'EnabledConfig'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteLogsConfig, self).__init__(**kwargs) + self.application_logs = kwargs.get('application_logs', None) + self.http_logs = kwargs.get('http_logs', None) + self.failed_requests_tracing = kwargs.get('failed_requests_tracing', None) + self.detailed_error_messages = kwargs.get('detailed_error_messages', None) + + +class SiteMachineKey(msrest.serialization.Model): + """MachineKey of an app. + + :param validation: MachineKey validation. + :type validation: str + :param validation_key: Validation key. + :type validation_key: str + :param decryption: Algorithm used for decryption. + :type decryption: str + :param decryption_key: Decryption key. + :type decryption_key: str + """ + + _attribute_map = { + 'validation': {'key': 'validation', 'type': 'str'}, + 'validation_key': {'key': 'validationKey', 'type': 'str'}, + 'decryption': {'key': 'decryption', 'type': 'str'}, + 'decryption_key': {'key': 'decryptionKey', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteMachineKey, self).__init__(**kwargs) + self.validation = kwargs.get('validation', None) + self.validation_key = kwargs.get('validation_key', None) + self.decryption = kwargs.get('decryption', None) + self.decryption_key = kwargs.get('decryption_key', None) + + +class SitePatchResource(ProxyOnlyResource): + """ARM resource for a site. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param identity: Managed service identity. + :type identity: ~azure.mgmt.web.v2021_01_15.models.ManagedServiceIdentity + :ivar state: Current state of the app. + :vartype state: str + :ivar host_names: Hostnames associated with the app. + :vartype host_names: list[str] + :ivar repository_site_name: Name of the repository site. + :vartype repository_site_name: str + :ivar usage_state: State indicating whether the app has exceeded its quota usage. Read-only. + Possible values include: "Normal", "Exceeded". + :vartype usage_state: str or ~azure.mgmt.web.v2021_01_15.models.UsageState + :param enabled: :code:`true` if the app is enabled; otherwise, + :code:`false`. Setting this value to false disables the app (takes the app + offline). + :type enabled: bool + :ivar enabled_host_names: Enabled hostnames for the app.Hostnames need to be assigned (see + HostNames) AND enabled. Otherwise, + the app is not served on those hostnames. + :vartype enabled_host_names: list[str] + :ivar availability_state: Management information availability state for the app. Possible + values include: "Normal", "Limited", "DisasterRecoveryMode". + :vartype availability_state: str or ~azure.mgmt.web.v2021_01_15.models.SiteAvailabilityState + :param host_name_ssl_states: Hostname SSL states are used to manage the SSL bindings for app's + hostnames. + :type host_name_ssl_states: list[~azure.mgmt.web.v2021_01_15.models.HostNameSslState] + :param server_farm_id: Resource ID of the associated App Service plan, formatted as: + "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". + :type server_farm_id: str + :param reserved: :code:`true` if reserved; otherwise, :code:`false`. + :type reserved: bool + :param is_xenon: Obsolete: Hyper-V sandbox. + :type is_xenon: bool + :param hyper_v: Hyper-V sandbox. + :type hyper_v: bool + :ivar last_modified_time_utc: Last time the app was modified, in UTC. Read-only. + :vartype last_modified_time_utc: ~datetime.datetime + :param site_config: Configuration of the app. + :type site_config: ~azure.mgmt.web.v2021_01_15.models.SiteConfig + :ivar traffic_manager_host_names: Azure Traffic Manager hostnames associated with the app. + Read-only. + :vartype traffic_manager_host_names: list[str] + :param scm_site_also_stopped: :code:`true` to stop SCM (KUDU) site when the app is + stopped; otherwise, :code:`false`. The default is :code:`false`. + :type scm_site_also_stopped: bool + :ivar target_swap_slot: Specifies which deployment slot this app will swap into. Read-only. + :vartype target_swap_slot: str + :param hosting_environment_profile: App Service Environment to use for the app. + :type hosting_environment_profile: ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentProfile + :param client_affinity_enabled: :code:`true` to enable client affinity; + :code:`false` to stop sending session affinity cookies, which route client + requests in the same session to the same instance. Default is :code:`true`. + :type client_affinity_enabled: bool + :param client_cert_enabled: :code:`true` to enable client certificate + authentication (TLS mutual authentication); otherwise, :code:`false`. Default is + :code:`false`. + :type client_cert_enabled: bool + :param client_cert_mode: This composes with ClientCertEnabled setting. + + + * ClientCertEnabled: false means ClientCert is ignored. + * ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. + * ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or + accepted. Possible values include: "Required", "Optional", "OptionalInteractiveUser". + :type client_cert_mode: str or ~azure.mgmt.web.v2021_01_15.models.ClientCertMode + :param client_cert_exclusion_paths: client certificate authentication comma-separated exclusion + paths. + :type client_cert_exclusion_paths: str + :param host_names_disabled: :code:`true` to disable the public hostnames of the + app; otherwise, :code:`false`. + If :code:`true`, the app is only accessible via API management process. + :type host_names_disabled: bool + :param custom_domain_verification_id: Unique identifier that verifies the custom domains + assigned to the app. Customer will add this id to a txt record for verification. + :type custom_domain_verification_id: str + :ivar outbound_ip_addresses: List of IP addresses that the app uses for outbound connections + (e.g. database access). Includes VIPs from tenants that site can be hosted with current + settings. Read-only. + :vartype outbound_ip_addresses: str + :ivar possible_outbound_ip_addresses: List of IP addresses that the app uses for outbound + connections (e.g. database access). Includes VIPs from all tenants except dataComponent. + Read-only. + :vartype possible_outbound_ip_addresses: str + :param container_size: Size of the function container. + :type container_size: int + :param daily_memory_time_quota: Maximum allowed daily memory-time quota (applicable on dynamic + apps only). + :type daily_memory_time_quota: int + :ivar suspended_till: App suspended till in case memory-time quota is exceeded. + :vartype suspended_till: ~datetime.datetime + :ivar max_number_of_workers: Maximum number of workers. + This only applies to Functions container. + :vartype max_number_of_workers: int + :param cloning_info: If specified during app creation, the app is cloned from a source app. + :type cloning_info: ~azure.mgmt.web.v2021_01_15.models.CloningInfo + :ivar resource_group: Name of the resource group the app belongs to. Read-only. + :vartype resource_group: str + :ivar is_default_container: :code:`true` if the app is a default container; + otherwise, :code:`false`. + :vartype is_default_container: bool + :ivar default_host_name: Default hostname of the app. Read-only. + :vartype default_host_name: str + :ivar slot_swap_status: Status of the last deployment slot swap operation. + :vartype slot_swap_status: ~azure.mgmt.web.v2021_01_15.models.SlotSwapStatus + :param https_only: HttpsOnly: configures a web site to accept only https requests. Issues + redirect for + http requests. + :type https_only: bool + :param redundancy_mode: Site redundancy mode. Possible values include: "None", "Manual", + "Failover", "ActiveActive", "GeoRedundant". + :type redundancy_mode: str or ~azure.mgmt.web.v2021_01_15.models.RedundancyMode + :ivar in_progress_operation_id: Specifies an operation id if this site has a pending operation. + :vartype in_progress_operation_id: str + :param storage_account_required: Checks if Customer provided storage account is required. + :type storage_account_required: bool + :param key_vault_reference_identity: Identity to use for Key Vault Reference authentication. + :type key_vault_reference_identity: str + :param virtual_network_subnet_id: Azure Resource Manager ID of the Virtual network and subnet + to be joined by Regional VNET Integration. + This must be of the form + /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}. + :type virtual_network_subnet_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'state': {'readonly': True}, + 'host_names': {'readonly': True}, + 'repository_site_name': {'readonly': True}, + 'usage_state': {'readonly': True}, + 'enabled_host_names': {'readonly': True}, + 'availability_state': {'readonly': True}, + 'last_modified_time_utc': {'readonly': True}, + 'traffic_manager_host_names': {'readonly': True}, + 'target_swap_slot': {'readonly': True}, + 'outbound_ip_addresses': {'readonly': True}, + 'possible_outbound_ip_addresses': {'readonly': True}, + 'suspended_till': {'readonly': True}, + 'max_number_of_workers': {'readonly': True}, + 'resource_group': {'readonly': True}, + 'is_default_container': {'readonly': True}, + 'default_host_name': {'readonly': True}, + 'slot_swap_status': {'readonly': True}, + 'in_progress_operation_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, + 'state': {'key': 'properties.state', 'type': 'str'}, + 'host_names': {'key': 'properties.hostNames', 'type': '[str]'}, + 'repository_site_name': {'key': 'properties.repositorySiteName', 'type': 'str'}, + 'usage_state': {'key': 'properties.usageState', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'enabled_host_names': {'key': 'properties.enabledHostNames', 'type': '[str]'}, + 'availability_state': {'key': 'properties.availabilityState', 'type': 'str'}, + 'host_name_ssl_states': {'key': 'properties.hostNameSslStates', 'type': '[HostNameSslState]'}, + 'server_farm_id': {'key': 'properties.serverFarmId', 'type': 'str'}, + 'reserved': {'key': 'properties.reserved', 'type': 'bool'}, + 'is_xenon': {'key': 'properties.isXenon', 'type': 'bool'}, + 'hyper_v': {'key': 'properties.hyperV', 'type': 'bool'}, + 'last_modified_time_utc': {'key': 'properties.lastModifiedTimeUtc', 'type': 'iso-8601'}, + 'site_config': {'key': 'properties.siteConfig', 'type': 'SiteConfig'}, + 'traffic_manager_host_names': {'key': 'properties.trafficManagerHostNames', 'type': '[str]'}, + 'scm_site_also_stopped': {'key': 'properties.scmSiteAlsoStopped', 'type': 'bool'}, + 'target_swap_slot': {'key': 'properties.targetSwapSlot', 'type': 'str'}, + 'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'}, + 'client_affinity_enabled': {'key': 'properties.clientAffinityEnabled', 'type': 'bool'}, + 'client_cert_enabled': {'key': 'properties.clientCertEnabled', 'type': 'bool'}, + 'client_cert_mode': {'key': 'properties.clientCertMode', 'type': 'str'}, + 'client_cert_exclusion_paths': {'key': 'properties.clientCertExclusionPaths', 'type': 'str'}, + 'host_names_disabled': {'key': 'properties.hostNamesDisabled', 'type': 'bool'}, + 'custom_domain_verification_id': {'key': 'properties.customDomainVerificationId', 'type': 'str'}, + 'outbound_ip_addresses': {'key': 'properties.outboundIpAddresses', 'type': 'str'}, + 'possible_outbound_ip_addresses': {'key': 'properties.possibleOutboundIpAddresses', 'type': 'str'}, + 'container_size': {'key': 'properties.containerSize', 'type': 'int'}, + 'daily_memory_time_quota': {'key': 'properties.dailyMemoryTimeQuota', 'type': 'int'}, + 'suspended_till': {'key': 'properties.suspendedTill', 'type': 'iso-8601'}, + 'max_number_of_workers': {'key': 'properties.maxNumberOfWorkers', 'type': 'int'}, + 'cloning_info': {'key': 'properties.cloningInfo', 'type': 'CloningInfo'}, + 'resource_group': {'key': 'properties.resourceGroup', 'type': 'str'}, + 'is_default_container': {'key': 'properties.isDefaultContainer', 'type': 'bool'}, + 'default_host_name': {'key': 'properties.defaultHostName', 'type': 'str'}, + 'slot_swap_status': {'key': 'properties.slotSwapStatus', 'type': 'SlotSwapStatus'}, + 'https_only': {'key': 'properties.httpsOnly', 'type': 'bool'}, + 'redundancy_mode': {'key': 'properties.redundancyMode', 'type': 'str'}, + 'in_progress_operation_id': {'key': 'properties.inProgressOperationId', 'type': 'str'}, + 'storage_account_required': {'key': 'properties.storageAccountRequired', 'type': 'bool'}, + 'key_vault_reference_identity': {'key': 'properties.keyVaultReferenceIdentity', 'type': 'str'}, + 'virtual_network_subnet_id': {'key': 'properties.virtualNetworkSubnetId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SitePatchResource, self).__init__(**kwargs) + self.identity = kwargs.get('identity', None) + self.state = None + self.host_names = None + self.repository_site_name = None + self.usage_state = None + self.enabled = kwargs.get('enabled', None) + self.enabled_host_names = None + self.availability_state = None + self.host_name_ssl_states = kwargs.get('host_name_ssl_states', None) + self.server_farm_id = kwargs.get('server_farm_id', None) + self.reserved = kwargs.get('reserved', False) + self.is_xenon = kwargs.get('is_xenon', False) + self.hyper_v = kwargs.get('hyper_v', False) + self.last_modified_time_utc = None + self.site_config = kwargs.get('site_config', None) + self.traffic_manager_host_names = None + self.scm_site_also_stopped = kwargs.get('scm_site_also_stopped', False) + self.target_swap_slot = None + self.hosting_environment_profile = kwargs.get('hosting_environment_profile', None) + self.client_affinity_enabled = kwargs.get('client_affinity_enabled', None) + self.client_cert_enabled = kwargs.get('client_cert_enabled', None) + self.client_cert_mode = kwargs.get('client_cert_mode', None) + self.client_cert_exclusion_paths = kwargs.get('client_cert_exclusion_paths', None) + self.host_names_disabled = kwargs.get('host_names_disabled', None) + self.custom_domain_verification_id = kwargs.get('custom_domain_verification_id', None) + self.outbound_ip_addresses = None + self.possible_outbound_ip_addresses = None + self.container_size = kwargs.get('container_size', None) + self.daily_memory_time_quota = kwargs.get('daily_memory_time_quota', None) + self.suspended_till = None + self.max_number_of_workers = None + self.cloning_info = kwargs.get('cloning_info', None) + self.resource_group = None + self.is_default_container = None + self.default_host_name = None + self.slot_swap_status = None + self.https_only = kwargs.get('https_only', None) + self.redundancy_mode = kwargs.get('redundancy_mode', None) + self.in_progress_operation_id = None + self.storage_account_required = kwargs.get('storage_account_required', None) + self.key_vault_reference_identity = kwargs.get('key_vault_reference_identity', None) + self.virtual_network_subnet_id = kwargs.get('virtual_network_subnet_id', None) + + +class SitePhpErrorLogFlag(ProxyOnlyResource): + """Used for getting PHP error logging flag. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param local_log_errors: Local log_errors setting. + :type local_log_errors: str + :param master_log_errors: Master log_errors setting. + :type master_log_errors: str + :param local_log_errors_max_length: Local log_errors_max_len setting. + :type local_log_errors_max_length: str + :param master_log_errors_max_length: Master log_errors_max_len setting. + :type master_log_errors_max_length: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'local_log_errors': {'key': 'properties.localLogErrors', 'type': 'str'}, + 'master_log_errors': {'key': 'properties.masterLogErrors', 'type': 'str'}, + 'local_log_errors_max_length': {'key': 'properties.localLogErrorsMaxLength', 'type': 'str'}, + 'master_log_errors_max_length': {'key': 'properties.masterLogErrorsMaxLength', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SitePhpErrorLogFlag, self).__init__(**kwargs) + self.local_log_errors = kwargs.get('local_log_errors', None) + self.master_log_errors = kwargs.get('master_log_errors', None) + self.local_log_errors_max_length = kwargs.get('local_log_errors_max_length', None) + self.master_log_errors_max_length = kwargs.get('master_log_errors_max_length', None) + + +class SiteSeal(msrest.serialization.Model): + """Site seal. + + All required parameters must be populated in order to send to Azure. + + :param html: Required. HTML snippet. + :type html: str + """ + + _validation = { + 'html': {'required': True}, + } + + _attribute_map = { + 'html': {'key': 'html', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteSeal, self).__init__(**kwargs) + self.html = kwargs['html'] + + +class SiteSealRequest(msrest.serialization.Model): + """Site seal request. + + :param light_theme: If :code:`true` use the light color theme for site seal; + otherwise, use the default color theme. + :type light_theme: bool + :param locale: Locale of site seal. + :type locale: str + """ + + _attribute_map = { + 'light_theme': {'key': 'lightTheme', 'type': 'bool'}, + 'locale': {'key': 'locale', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteSealRequest, self).__init__(**kwargs) + self.light_theme = kwargs.get('light_theme', None) + self.locale = kwargs.get('locale', None) + + +class SiteSourceControl(ProxyOnlyResource): + """Source control configuration for an app. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param repo_url: Repository or source control URL. + :type repo_url: str + :param branch: Name of branch to use for deployment. + :type branch: str + :param is_manual_integration: :code:`true` to limit to manual integration; + :code:`false` to enable continuous integration (which configures webhooks into + online repos like GitHub). + :type is_manual_integration: bool + :param is_git_hub_action: :code:`true` if this is deployed via GitHub action. + :type is_git_hub_action: bool + :param deployment_rollback_enabled: :code:`true` to enable deployment rollback; + otherwise, :code:`false`. + :type deployment_rollback_enabled: bool + :param is_mercurial: :code:`true` for a Mercurial repository; + :code:`false` for a Git repository. + :type is_mercurial: bool + :param git_hub_action_configuration: If GitHub Action is selected, than the associated + configuration. + :type git_hub_action_configuration: + ~azure.mgmt.web.v2021_01_15.models.GitHubActionConfiguration + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'repo_url': {'key': 'properties.repoUrl', 'type': 'str'}, + 'branch': {'key': 'properties.branch', 'type': 'str'}, + 'is_manual_integration': {'key': 'properties.isManualIntegration', 'type': 'bool'}, + 'is_git_hub_action': {'key': 'properties.isGitHubAction', 'type': 'bool'}, + 'deployment_rollback_enabled': {'key': 'properties.deploymentRollbackEnabled', 'type': 'bool'}, + 'is_mercurial': {'key': 'properties.isMercurial', 'type': 'bool'}, + 'git_hub_action_configuration': {'key': 'properties.gitHubActionConfiguration', 'type': 'GitHubActionConfiguration'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteSourceControl, self).__init__(**kwargs) + self.repo_url = kwargs.get('repo_url', None) + self.branch = kwargs.get('branch', None) + self.is_manual_integration = kwargs.get('is_manual_integration', None) + self.is_git_hub_action = kwargs.get('is_git_hub_action', None) + self.deployment_rollback_enabled = kwargs.get('deployment_rollback_enabled', None) + self.is_mercurial = kwargs.get('is_mercurial', None) + self.git_hub_action_configuration = kwargs.get('git_hub_action_configuration', None) + + +class SkuCapacity(msrest.serialization.Model): + """Description of the App Service plan scale options. + + :param minimum: Minimum number of workers for this App Service plan SKU. + :type minimum: int + :param maximum: Maximum number of workers for this App Service plan SKU. + :type maximum: int + :param elastic_maximum: Maximum number of Elastic workers for this App Service plan SKU. + :type elastic_maximum: int + :param default: Default number of workers for this App Service plan SKU. + :type default: int + :param scale_type: Available scale configurations for an App Service plan. + :type scale_type: str + """ + + _attribute_map = { + 'minimum': {'key': 'minimum', 'type': 'int'}, + 'maximum': {'key': 'maximum', 'type': 'int'}, + 'elastic_maximum': {'key': 'elasticMaximum', 'type': 'int'}, + 'default': {'key': 'default', 'type': 'int'}, + 'scale_type': {'key': 'scaleType', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SkuCapacity, self).__init__(**kwargs) + self.minimum = kwargs.get('minimum', None) + self.maximum = kwargs.get('maximum', None) + self.elastic_maximum = kwargs.get('elastic_maximum', None) + self.default = kwargs.get('default', None) + self.scale_type = kwargs.get('scale_type', None) + + +class SkuDescription(msrest.serialization.Model): + """Description of a SKU for a scalable resource. + + :param name: Name of the resource SKU. + :type name: str + :param tier: Service tier of the resource SKU. + :type tier: str + :param size: Size specifier of the resource SKU. + :type size: str + :param family: Family code of the resource SKU. + :type family: str + :param capacity: Current number of instances assigned to the resource. + :type capacity: int + :param sku_capacity: Min, max, and default scale values of the SKU. + :type sku_capacity: ~azure.mgmt.web.v2021_01_15.models.SkuCapacity + :param locations: Locations of the SKU. + :type locations: list[str] + :param capabilities: Capabilities of the SKU, e.g., is traffic manager enabled?. + :type capabilities: list[~azure.mgmt.web.v2021_01_15.models.Capability] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'tier': {'key': 'tier', 'type': 'str'}, + 'size': {'key': 'size', 'type': 'str'}, + 'family': {'key': 'family', 'type': 'str'}, + 'capacity': {'key': 'capacity', 'type': 'int'}, + 'sku_capacity': {'key': 'skuCapacity', 'type': 'SkuCapacity'}, + 'locations': {'key': 'locations', 'type': '[str]'}, + 'capabilities': {'key': 'capabilities', 'type': '[Capability]'}, + } + + def __init__( + self, + **kwargs + ): + super(SkuDescription, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.tier = kwargs.get('tier', None) + self.size = kwargs.get('size', None) + self.family = kwargs.get('family', None) + self.capacity = kwargs.get('capacity', None) + self.sku_capacity = kwargs.get('sku_capacity', None) + self.locations = kwargs.get('locations', None) + self.capabilities = kwargs.get('capabilities', None) + + +class SkuInfo(msrest.serialization.Model): + """SKU discovery information. + + :param resource_type: Resource type that this SKU applies to. + :type resource_type: str + :param sku: Name and tier of the SKU. + :type sku: ~azure.mgmt.web.v2021_01_15.models.SkuDescription + :param capacity: Min, max, and default scale values of the SKU. + :type capacity: ~azure.mgmt.web.v2021_01_15.models.SkuCapacity + """ + + _attribute_map = { + 'resource_type': {'key': 'resourceType', 'type': 'str'}, + 'sku': {'key': 'sku', 'type': 'SkuDescription'}, + 'capacity': {'key': 'capacity', 'type': 'SkuCapacity'}, + } + + def __init__( + self, + **kwargs + ): + super(SkuInfo, self).__init__(**kwargs) + self.resource_type = kwargs.get('resource_type', None) + self.sku = kwargs.get('sku', None) + self.capacity = kwargs.get('capacity', None) + + +class SkuInfoCollection(msrest.serialization.Model): + """Collection of SKU information. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.SkuInfo] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SkuInfo]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SkuInfoCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class SkuInfos(msrest.serialization.Model): + """Collection of SKU information. + + :param resource_type: Resource type that this SKU applies to. + :type resource_type: str + :param skus: List of SKUs the subscription is able to use. + :type skus: list[~azure.mgmt.web.v2021_01_15.models.GlobalCsmSkuDescription] + """ + + _attribute_map = { + 'resource_type': {'key': 'resourceType', 'type': 'str'}, + 'skus': {'key': 'skus', 'type': '[GlobalCsmSkuDescription]'}, + } + + def __init__( + self, + **kwargs + ): + super(SkuInfos, self).__init__(**kwargs) + self.resource_type = kwargs.get('resource_type', None) + self.skus = kwargs.get('skus', None) + + +class SlotConfigNamesResource(ProxyOnlyResource): + """Slot Config names azure resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param connection_string_names: List of connection string names. + :type connection_string_names: list[str] + :param app_setting_names: List of application settings names. + :type app_setting_names: list[str] + :param azure_storage_config_names: List of external Azure storage account identifiers. + :type azure_storage_config_names: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'connection_string_names': {'key': 'properties.connectionStringNames', 'type': '[str]'}, + 'app_setting_names': {'key': 'properties.appSettingNames', 'type': '[str]'}, + 'azure_storage_config_names': {'key': 'properties.azureStorageConfigNames', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(SlotConfigNamesResource, self).__init__(**kwargs) + self.connection_string_names = kwargs.get('connection_string_names', None) + self.app_setting_names = kwargs.get('app_setting_names', None) + self.azure_storage_config_names = kwargs.get('azure_storage_config_names', None) + + +class SlotDifference(ProxyOnlyResource): + """A setting difference between two deployment slots of an app. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar level: Level of the difference: Information, Warning or Error. + :vartype level: str + :ivar setting_type: The type of the setting: General, AppSetting or ConnectionString. + :vartype setting_type: str + :ivar diff_rule: Rule that describes how to process the setting difference during a slot swap. + :vartype diff_rule: str + :ivar setting_name: Name of the setting. + :vartype setting_name: str + :ivar value_in_current_slot: Value of the setting in the current slot. + :vartype value_in_current_slot: str + :ivar value_in_target_slot: Value of the setting in the target slot. + :vartype value_in_target_slot: str + :ivar description: Description of the setting difference. + :vartype description: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'level': {'readonly': True}, + 'setting_type': {'readonly': True}, + 'diff_rule': {'readonly': True}, + 'setting_name': {'readonly': True}, + 'value_in_current_slot': {'readonly': True}, + 'value_in_target_slot': {'readonly': True}, + 'description': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'level': {'key': 'properties.level', 'type': 'str'}, + 'setting_type': {'key': 'properties.settingType', 'type': 'str'}, + 'diff_rule': {'key': 'properties.diffRule', 'type': 'str'}, + 'setting_name': {'key': 'properties.settingName', 'type': 'str'}, + 'value_in_current_slot': {'key': 'properties.valueInCurrentSlot', 'type': 'str'}, + 'value_in_target_slot': {'key': 'properties.valueInTargetSlot', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SlotDifference, self).__init__(**kwargs) + self.level = None + self.setting_type = None + self.diff_rule = None + self.setting_name = None + self.value_in_current_slot = None + self.value_in_target_slot = None + self.description = None + + +class SlotDifferenceCollection(msrest.serialization.Model): + """Collection of slot differences. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.SlotDifference] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SlotDifference]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SlotDifferenceCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class SlotSwapStatus(msrest.serialization.Model): + """The status of the last successful slot swap operation. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar timestamp_utc: The time the last successful slot swap completed. + :vartype timestamp_utc: ~datetime.datetime + :ivar source_slot_name: The source slot of the last swap operation. + :vartype source_slot_name: str + :ivar destination_slot_name: The destination slot of the last swap operation. + :vartype destination_slot_name: str + """ + + _validation = { + 'timestamp_utc': {'readonly': True}, + 'source_slot_name': {'readonly': True}, + 'destination_slot_name': {'readonly': True}, + } + + _attribute_map = { + 'timestamp_utc': {'key': 'timestampUtc', 'type': 'iso-8601'}, + 'source_slot_name': {'key': 'sourceSlotName', 'type': 'str'}, + 'destination_slot_name': {'key': 'destinationSlotName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SlotSwapStatus, self).__init__(**kwargs) + self.timestamp_utc = None + self.source_slot_name = None + self.destination_slot_name = None + + +class SlowRequestsBasedTrigger(msrest.serialization.Model): + """Trigger based on request execution time. + + :param time_taken: Time taken. + :type time_taken: str + :param path: Request Path. + :type path: str + :param count: Request Count. + :type count: int + :param time_interval: Time interval. + :type time_interval: str + """ + + _attribute_map = { + 'time_taken': {'key': 'timeTaken', 'type': 'str'}, + 'path': {'key': 'path', 'type': 'str'}, + 'count': {'key': 'count', 'type': 'int'}, + 'time_interval': {'key': 'timeInterval', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SlowRequestsBasedTrigger, self).__init__(**kwargs) + self.time_taken = kwargs.get('time_taken', None) + self.path = kwargs.get('path', None) + self.count = kwargs.get('count', None) + self.time_interval = kwargs.get('time_interval', None) + + +class Snapshot(ProxyOnlyResource): + """A snapshot of an app. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar time: The time the snapshot was taken. + :vartype time: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'time': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'time': {'key': 'properties.time', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Snapshot, self).__init__(**kwargs) + self.time = None + + +class SnapshotCollection(msrest.serialization.Model): + """Collection of snapshots which can be used to revert an app to a previous time. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.Snapshot] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Snapshot]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SnapshotCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class SnapshotRecoverySource(msrest.serialization.Model): + """Specifies the web app that snapshot contents will be retrieved from. + + :param location: Geographical location of the source web app, e.g. SouthEastAsia, + SouthCentralUS. + :type location: str + :param id: ARM resource ID of the source app. + /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} + for production slots and + /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} + for other slots. + :type id: str + """ + + _attribute_map = { + 'location': {'key': 'location', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SnapshotRecoverySource, self).__init__(**kwargs) + self.location = kwargs.get('location', None) + self.id = kwargs.get('id', None) + + +class SnapshotRestoreRequest(ProxyOnlyResource): + """Details about app recovery operation. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param snapshot_time: Point in time in which the app restore should be done, formatted as a + DateTime string. + :type snapshot_time: str + :param recovery_source: Optional. Specifies the web app that snapshot contents will be + retrieved from. + If empty, the targeted web app will be used as the source. + :type recovery_source: ~azure.mgmt.web.v2021_01_15.models.SnapshotRecoverySource + :param overwrite: If :code:`true` the restore operation can overwrite source app; + otherwise, :code:`false`. + :type overwrite: bool + :param recover_configuration: If true, site configuration, in addition to content, will be + reverted. + :type recover_configuration: bool + :param ignore_conflicting_host_names: If true, custom hostname conflicts will be ignored when + recovering to a target web app. + This setting is only necessary when RecoverConfiguration is enabled. + :type ignore_conflicting_host_names: bool + :param use_dr_secondary: If true, the snapshot is retrieved from DRSecondary endpoint. + :type use_dr_secondary: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'snapshot_time': {'key': 'properties.snapshotTime', 'type': 'str'}, + 'recovery_source': {'key': 'properties.recoverySource', 'type': 'SnapshotRecoverySource'}, + 'overwrite': {'key': 'properties.overwrite', 'type': 'bool'}, + 'recover_configuration': {'key': 'properties.recoverConfiguration', 'type': 'bool'}, + 'ignore_conflicting_host_names': {'key': 'properties.ignoreConflictingHostNames', 'type': 'bool'}, + 'use_dr_secondary': {'key': 'properties.useDRSecondary', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(SnapshotRestoreRequest, self).__init__(**kwargs) + self.snapshot_time = kwargs.get('snapshot_time', None) + self.recovery_source = kwargs.get('recovery_source', None) + self.overwrite = kwargs.get('overwrite', None) + self.recover_configuration = kwargs.get('recover_configuration', None) + self.ignore_conflicting_host_names = kwargs.get('ignore_conflicting_host_names', None) + self.use_dr_secondary = kwargs.get('use_dr_secondary', None) + + +class Solution(msrest.serialization.Model): + """Class Representing Solution for problems detected. + + :param id: Solution Id. + :type id: float + :param display_name: Display Name of the solution. + :type display_name: str + :param order: Order of the solution. + :type order: float + :param description: Description of the solution. + :type description: str + :param type: Type of Solution. Possible values include: "QuickSolution", "DeepInvestigation", + "BestPractices". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.SolutionType + :param data: Solution Data. + :type data: list[list[~azure.mgmt.web.v2021_01_15.models.NameValuePair]] + :param metadata: Solution Metadata. + :type metadata: list[list[~azure.mgmt.web.v2021_01_15.models.NameValuePair]] + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'float'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'order': {'key': 'order', 'type': 'float'}, + 'description': {'key': 'description', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'data': {'key': 'data', 'type': '[[NameValuePair]]'}, + 'metadata': {'key': 'metadata', 'type': '[[NameValuePair]]'}, + } + + def __init__( + self, + **kwargs + ): + super(Solution, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.order = kwargs.get('order', None) + self.description = kwargs.get('description', None) + self.type = kwargs.get('type', None) + self.data = kwargs.get('data', None) + self.metadata = kwargs.get('metadata', None) + + +class SourceControl(ProxyOnlyResource): + """The source control OAuth token. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param token: OAuth access token. + :type token: str + :param token_secret: OAuth access token secret. + :type token_secret: str + :param refresh_token: OAuth refresh token. + :type refresh_token: str + :param expiration_time: OAuth token expiration. + :type expiration_time: ~datetime.datetime + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'token': {'key': 'properties.token', 'type': 'str'}, + 'token_secret': {'key': 'properties.tokenSecret', 'type': 'str'}, + 'refresh_token': {'key': 'properties.refreshToken', 'type': 'str'}, + 'expiration_time': {'key': 'properties.expirationTime', 'type': 'iso-8601'}, + } + + def __init__( + self, + **kwargs + ): + super(SourceControl, self).__init__(**kwargs) + self.token = kwargs.get('token', None) + self.token_secret = kwargs.get('token_secret', None) + self.refresh_token = kwargs.get('refresh_token', None) + self.expiration_time = kwargs.get('expiration_time', None) + + +class SourceControlCollection(msrest.serialization.Model): + """Collection of source controls. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.SourceControl] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SourceControl]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SourceControlCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class StackMajorVersion(msrest.serialization.Model): + """Application stack major version. + + :param display_version: Application stack major version (display only). + :type display_version: str + :param runtime_version: Application stack major version (runtime only). + :type runtime_version: str + :param is_default: :code:`true` if this is the default major version; otherwise, + :code:`false`. + :type is_default: bool + :param minor_versions: Minor versions associated with the major version. + :type minor_versions: list[~azure.mgmt.web.v2021_01_15.models.StackMinorVersion] + :param application_insights: :code:`true` if this supports Application Insights; + otherwise, :code:`false`. + :type application_insights: bool + :param is_preview: :code:`true` if this stack is in Preview, otherwise + :code:`false`. + :type is_preview: bool + :param is_deprecated: :code:`true` if this stack has been deprecated, otherwise + :code:`false`. + :type is_deprecated: bool + :param is_hidden: :code:`true` if this stack should be hidden for new customers on + portal, otherwise :code:`false`. + :type is_hidden: bool + :param app_settings_dictionary: :code:` + + ` + Example: All the function apps need AppSetting: "FUNCTIONS_WORKER_RUNTIME" to be set stack + name. + :type app_settings_dictionary: dict[str, any] + :param site_config_properties_dictionary: :code:` + + ` + Example: All Linux Function Apps, need Use32BitWorkerProcess to be set to 0. + :type site_config_properties_dictionary: dict[str, any] + """ + + _attribute_map = { + 'display_version': {'key': 'displayVersion', 'type': 'str'}, + 'runtime_version': {'key': 'runtimeVersion', 'type': 'str'}, + 'is_default': {'key': 'isDefault', 'type': 'bool'}, + 'minor_versions': {'key': 'minorVersions', 'type': '[StackMinorVersion]'}, + 'application_insights': {'key': 'applicationInsights', 'type': 'bool'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + 'is_deprecated': {'key': 'isDeprecated', 'type': 'bool'}, + 'is_hidden': {'key': 'isHidden', 'type': 'bool'}, + 'app_settings_dictionary': {'key': 'appSettingsDictionary', 'type': '{object}'}, + 'site_config_properties_dictionary': {'key': 'siteConfigPropertiesDictionary', 'type': '{object}'}, + } + + def __init__( + self, + **kwargs + ): + super(StackMajorVersion, self).__init__(**kwargs) + self.display_version = kwargs.get('display_version', None) + self.runtime_version = kwargs.get('runtime_version', None) + self.is_default = kwargs.get('is_default', None) + self.minor_versions = kwargs.get('minor_versions', None) + self.application_insights = kwargs.get('application_insights', None) + self.is_preview = kwargs.get('is_preview', None) + self.is_deprecated = kwargs.get('is_deprecated', None) + self.is_hidden = kwargs.get('is_hidden', None) + self.app_settings_dictionary = kwargs.get('app_settings_dictionary', None) + self.site_config_properties_dictionary = kwargs.get('site_config_properties_dictionary', None) + + +class StackMinorVersion(msrest.serialization.Model): + """Application stack minor version. + + :param display_version: Application stack minor version (display only). + :type display_version: str + :param runtime_version: Application stack minor version (runtime only). + :type runtime_version: str + :param is_default: :code:`true` if this is the default minor version; otherwise, + :code:`false`. + :type is_default: bool + :param is_remote_debugging_enabled: :code:`true` if this supports Remote + Debugging, otherwise :code:`false`. + :type is_remote_debugging_enabled: bool + """ + + _attribute_map = { + 'display_version': {'key': 'displayVersion', 'type': 'str'}, + 'runtime_version': {'key': 'runtimeVersion', 'type': 'str'}, + 'is_default': {'key': 'isDefault', 'type': 'bool'}, + 'is_remote_debugging_enabled': {'key': 'isRemoteDebuggingEnabled', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(StackMinorVersion, self).__init__(**kwargs) + self.display_version = kwargs.get('display_version', None) + self.runtime_version = kwargs.get('runtime_version', None) + self.is_default = kwargs.get('is_default', None) + self.is_remote_debugging_enabled = kwargs.get('is_remote_debugging_enabled', None) + + +class StampCapacity(msrest.serialization.Model): + """Stamp capacity information. + + :param name: Name of the stamp. + :type name: str + :param available_capacity: Available capacity (# of machines, bytes of storage etc...). + :type available_capacity: long + :param total_capacity: Total capacity (# of machines, bytes of storage etc...). + :type total_capacity: long + :param unit: Name of the unit. + :type unit: str + :param compute_mode: Shared/dedicated workers. Possible values include: "Shared", "Dedicated", + "Dynamic". + :type compute_mode: str or ~azure.mgmt.web.v2021_01_15.models.ComputeModeOptions + :param worker_size: Size of the machines. Possible values include: "Small", "Medium", "Large", + "D1", "D2", "D3", "SmallV3", "MediumV3", "LargeV3", "NestedSmall", "NestedSmallLinux", + "Default". + :type worker_size: str or ~azure.mgmt.web.v2021_01_15.models.WorkerSizeOptions + :param worker_size_id: Size ID of machines: + 0 - Small + 1 - Medium + 2 - Large. + :type worker_size_id: int + :param exclude_from_capacity_allocation: If :code:`true`, it includes basic apps. + Basic apps are not used for capacity allocation. + :type exclude_from_capacity_allocation: bool + :param is_applicable_for_all_compute_modes: :code:`true` if capacity is applicable + for all apps; otherwise, :code:`false`. + :type is_applicable_for_all_compute_modes: bool + :param site_mode: Shared or Dedicated. + :type site_mode: str + :param is_linux: Is this a linux stamp capacity. + :type is_linux: bool + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'available_capacity': {'key': 'availableCapacity', 'type': 'long'}, + 'total_capacity': {'key': 'totalCapacity', 'type': 'long'}, + 'unit': {'key': 'unit', 'type': 'str'}, + 'compute_mode': {'key': 'computeMode', 'type': 'str'}, + 'worker_size': {'key': 'workerSize', 'type': 'str'}, + 'worker_size_id': {'key': 'workerSizeId', 'type': 'int'}, + 'exclude_from_capacity_allocation': {'key': 'excludeFromCapacityAllocation', 'type': 'bool'}, + 'is_applicable_for_all_compute_modes': {'key': 'isApplicableForAllComputeModes', 'type': 'bool'}, + 'site_mode': {'key': 'siteMode', 'type': 'str'}, + 'is_linux': {'key': 'isLinux', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(StampCapacity, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.available_capacity = kwargs.get('available_capacity', None) + self.total_capacity = kwargs.get('total_capacity', None) + self.unit = kwargs.get('unit', None) + self.compute_mode = kwargs.get('compute_mode', None) + self.worker_size = kwargs.get('worker_size', None) + self.worker_size_id = kwargs.get('worker_size_id', None) + self.exclude_from_capacity_allocation = kwargs.get('exclude_from_capacity_allocation', None) + self.is_applicable_for_all_compute_modes = kwargs.get('is_applicable_for_all_compute_modes', None) + self.site_mode = kwargs.get('site_mode', None) + self.is_linux = kwargs.get('is_linux', None) + + +class StampCapacityCollection(msrest.serialization.Model): + """Collection of stamp capacities. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.StampCapacity] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[StampCapacity]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StampCapacityCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class StaticSiteARMResource(Resource): + """Static Site ARM resource. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param sku: Description of a SKU for a scalable resource. + :type sku: ~azure.mgmt.web.v2021_01_15.models.SkuDescription + :param identity: Managed service identity. + :type identity: ~azure.mgmt.web.v2021_01_15.models.ManagedServiceIdentity + :ivar default_hostname: The default autogenerated hostname for the static site. + :vartype default_hostname: str + :param repository_url: URL for the repository of the static site. + :type repository_url: str + :param branch: The target branch in the repository. + :type branch: str + :ivar custom_domains: The custom domains associated with this static site. + :vartype custom_domains: list[str] + :param repository_token: A user's github repository token. This is used to setup the Github + Actions workflow file and API secrets. + :type repository_token: str + :param build_properties: Build properties to configure on the repository. + :type build_properties: ~azure.mgmt.web.v2021_01_15.models.StaticSiteBuildProperties + :ivar private_endpoint_connections: Private endpoint connections. + :vartype private_endpoint_connections: + list[~azure.mgmt.web.v2021_01_15.models.ResponseMessageEnvelopeRemotePrivateEndpointConnection] + :param staging_environment_policy: State indicating whether staging environments are allowed or + not allowed for a static web app. Possible values include: "Enabled", "Disabled". + :type staging_environment_policy: str or + ~azure.mgmt.web.v2021_01_15.models.StagingEnvironmentPolicy + :param allow_config_file_updates: :code:`false` if config file is locked for this + static web app; otherwise, :code:`true`. + :type allow_config_file_updates: bool + :param template_properties: Template options for generating a new repository. + :type template_properties: ~azure.mgmt.web.v2021_01_15.models.StaticSiteTemplateOptions + :ivar content_distribution_endpoint: The content distribution endpoint for the static site. + :vartype content_distribution_endpoint: str + :ivar key_vault_reference_identity: Identity to use for Key Vault Reference authentication. + :vartype key_vault_reference_identity: str + :ivar user_provided_function_apps: User provided function apps registered with the static site. + :vartype user_provided_function_apps: + list[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionApp] + :ivar provider: The provider that submitted the last deployment to the primary environment of + the static site. + :vartype provider: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'default_hostname': {'readonly': True}, + 'custom_domains': {'readonly': True}, + 'private_endpoint_connections': {'readonly': True}, + 'content_distribution_endpoint': {'readonly': True}, + 'key_vault_reference_identity': {'readonly': True}, + 'user_provided_function_apps': {'readonly': True}, + 'provider': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'sku': {'key': 'sku', 'type': 'SkuDescription'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, + 'default_hostname': {'key': 'properties.defaultHostname', 'type': 'str'}, + 'repository_url': {'key': 'properties.repositoryUrl', 'type': 'str'}, + 'branch': {'key': 'properties.branch', 'type': 'str'}, + 'custom_domains': {'key': 'properties.customDomains', 'type': '[str]'}, + 'repository_token': {'key': 'properties.repositoryToken', 'type': 'str'}, + 'build_properties': {'key': 'properties.buildProperties', 'type': 'StaticSiteBuildProperties'}, + 'private_endpoint_connections': {'key': 'properties.privateEndpointConnections', 'type': '[ResponseMessageEnvelopeRemotePrivateEndpointConnection]'}, + 'staging_environment_policy': {'key': 'properties.stagingEnvironmentPolicy', 'type': 'str'}, + 'allow_config_file_updates': {'key': 'properties.allowConfigFileUpdates', 'type': 'bool'}, + 'template_properties': {'key': 'properties.templateProperties', 'type': 'StaticSiteTemplateOptions'}, + 'content_distribution_endpoint': {'key': 'properties.contentDistributionEndpoint', 'type': 'str'}, + 'key_vault_reference_identity': {'key': 'properties.keyVaultReferenceIdentity', 'type': 'str'}, + 'user_provided_function_apps': {'key': 'properties.userProvidedFunctionApps', 'type': '[StaticSiteUserProvidedFunctionApp]'}, + 'provider': {'key': 'properties.provider', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteARMResource, self).__init__(**kwargs) + self.sku = kwargs.get('sku', None) + self.identity = kwargs.get('identity', None) + self.default_hostname = None + self.repository_url = kwargs.get('repository_url', None) + self.branch = kwargs.get('branch', None) + self.custom_domains = None + self.repository_token = kwargs.get('repository_token', None) + self.build_properties = kwargs.get('build_properties', None) + self.private_endpoint_connections = None + self.staging_environment_policy = kwargs.get('staging_environment_policy', None) + self.allow_config_file_updates = kwargs.get('allow_config_file_updates', None) + self.template_properties = kwargs.get('template_properties', None) + self.content_distribution_endpoint = None + self.key_vault_reference_identity = None + self.user_provided_function_apps = None + self.provider = None + + +class StaticSiteBuildARMResource(ProxyOnlyResource): + """Static Site Build ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar build_id: An identifier for the static site build. + :vartype build_id: str + :ivar source_branch: The source branch. + :vartype source_branch: str + :ivar pull_request_title: The title of a pull request that a static site build is related to. + :vartype pull_request_title: str + :ivar hostname: The hostname for a static site build. + :vartype hostname: str + :ivar created_time_utc: When this build was created. + :vartype created_time_utc: ~datetime.datetime + :ivar last_updated_on: When this build was updated. + :vartype last_updated_on: ~datetime.datetime + :ivar status: The status of the static site build. Possible values include: + "WaitingForDeployment", "Uploading", "Deploying", "Ready", "Failed", "Deleting", "Detached". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.BuildStatus + :ivar user_provided_function_apps: User provided function apps registered with the static site + build. + :vartype user_provided_function_apps: + list[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionApp] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'build_id': {'readonly': True}, + 'source_branch': {'readonly': True}, + 'pull_request_title': {'readonly': True}, + 'hostname': {'readonly': True}, + 'created_time_utc': {'readonly': True}, + 'last_updated_on': {'readonly': True}, + 'status': {'readonly': True}, + 'user_provided_function_apps': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'build_id': {'key': 'properties.buildId', 'type': 'str'}, + 'source_branch': {'key': 'properties.sourceBranch', 'type': 'str'}, + 'pull_request_title': {'key': 'properties.pullRequestTitle', 'type': 'str'}, + 'hostname': {'key': 'properties.hostname', 'type': 'str'}, + 'created_time_utc': {'key': 'properties.createdTimeUtc', 'type': 'iso-8601'}, + 'last_updated_on': {'key': 'properties.lastUpdatedOn', 'type': 'iso-8601'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'user_provided_function_apps': {'key': 'properties.userProvidedFunctionApps', 'type': '[StaticSiteUserProvidedFunctionApp]'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteBuildARMResource, self).__init__(**kwargs) + self.build_id = None + self.source_branch = None + self.pull_request_title = None + self.hostname = None + self.created_time_utc = None + self.last_updated_on = None + self.status = None + self.user_provided_function_apps = None + + +class StaticSiteBuildCollection(msrest.serialization.Model): + """Collection of static site builds. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.StaticSiteBuildARMResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[StaticSiteBuildARMResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteBuildCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class StaticSiteBuildProperties(msrest.serialization.Model): + """Build properties for the static site. + + :param app_location: The path to the app code within the repository. + :type app_location: str + :param api_location: The path to the api code within the repository. + :type api_location: str + :param app_artifact_location: Deprecated: The path of the app artifacts after building + (deprecated in favor of OutputLocation). + :type app_artifact_location: str + :param output_location: The output path of the app after building. + :type output_location: str + :param app_build_command: A custom command to run during deployment of the static content + application. + :type app_build_command: str + :param api_build_command: A custom command to run during deployment of the Azure Functions API + application. + :type api_build_command: str + :param skip_github_action_workflow_generation: Skip Github Action workflow generation. + :type skip_github_action_workflow_generation: bool + :param github_action_secret_name_override: Github Action secret name override. + :type github_action_secret_name_override: str + """ + + _attribute_map = { + 'app_location': {'key': 'appLocation', 'type': 'str'}, + 'api_location': {'key': 'apiLocation', 'type': 'str'}, + 'app_artifact_location': {'key': 'appArtifactLocation', 'type': 'str'}, + 'output_location': {'key': 'outputLocation', 'type': 'str'}, + 'app_build_command': {'key': 'appBuildCommand', 'type': 'str'}, + 'api_build_command': {'key': 'apiBuildCommand', 'type': 'str'}, + 'skip_github_action_workflow_generation': {'key': 'skipGithubActionWorkflowGeneration', 'type': 'bool'}, + 'github_action_secret_name_override': {'key': 'githubActionSecretNameOverride', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteBuildProperties, self).__init__(**kwargs) + self.app_location = kwargs.get('app_location', None) + self.api_location = kwargs.get('api_location', None) + self.app_artifact_location = kwargs.get('app_artifact_location', None) + self.output_location = kwargs.get('output_location', None) + self.app_build_command = kwargs.get('app_build_command', None) + self.api_build_command = kwargs.get('api_build_command', None) + self.skip_github_action_workflow_generation = kwargs.get('skip_github_action_workflow_generation', None) + self.github_action_secret_name_override = kwargs.get('github_action_secret_name_override', None) + + +class StaticSiteCollection(msrest.serialization.Model): + """Collection of static sites. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.StaticSiteARMResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[StaticSiteARMResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class StaticSiteCustomDomainOverviewARMResource(ProxyOnlyResource): + """Static Site Custom Domain Overview ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar domain_name: The domain name for the static site custom domain. + :vartype domain_name: str + :ivar created_on: The date and time on which the custom domain was created for the static site. + :vartype created_on: ~datetime.datetime + :ivar status: The status of the custom domain. Possible values include: + "RetrievingValidationToken", "Validating", "Adding", "Ready", "Failed", "Deleting". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.CustomDomainStatus + :ivar validation_token: The TXT record validation token. + :vartype validation_token: str + :ivar error_message: + :vartype error_message: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'domain_name': {'readonly': True}, + 'created_on': {'readonly': True}, + 'status': {'readonly': True}, + 'validation_token': {'readonly': True}, + 'error_message': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'domain_name': {'key': 'properties.domainName', 'type': 'str'}, + 'created_on': {'key': 'properties.createdOn', 'type': 'iso-8601'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'validation_token': {'key': 'properties.validationToken', 'type': 'str'}, + 'error_message': {'key': 'properties.errorMessage', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteCustomDomainOverviewARMResource, self).__init__(**kwargs) + self.domain_name = None + self.created_on = None + self.status = None + self.validation_token = None + self.error_message = None + + +class StaticSiteCustomDomainOverviewCollection(msrest.serialization.Model): + """Collection of static site custom domains. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.StaticSiteCustomDomainOverviewARMResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[StaticSiteCustomDomainOverviewARMResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteCustomDomainOverviewCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class StaticSiteCustomDomainRequestPropertiesARMResource(ProxyOnlyResource): + """Static Site Custom Domain Request Properties ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param validation_method: Validation method for adding a custom domain. + :type validation_method: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'validation_method': {'key': 'properties.validationMethod', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteCustomDomainRequestPropertiesARMResource, self).__init__(**kwargs) + self.validation_method = kwargs.get('validation_method', "cname-delegation") + + +class StaticSiteFunctionOverviewARMResource(ProxyOnlyResource): + """Static Site Function Overview ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar function_name: The name for the function. + :vartype function_name: str + :ivar trigger_type: The trigger type of the function. Possible values include: "HttpTrigger", + "Unknown". + :vartype trigger_type: str or ~azure.mgmt.web.v2021_01_15.models.TriggerTypes + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'function_name': {'readonly': True}, + 'trigger_type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'function_name': {'key': 'properties.functionName', 'type': 'str'}, + 'trigger_type': {'key': 'properties.triggerType', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteFunctionOverviewARMResource, self).__init__(**kwargs) + self.function_name = None + self.trigger_type = None + + +class StaticSiteFunctionOverviewCollection(msrest.serialization.Model): + """Collection of static site functions. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.StaticSiteFunctionOverviewARMResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[StaticSiteFunctionOverviewARMResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteFunctionOverviewCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class StaticSitePatchResource(ProxyOnlyResource): + """ARM resource for a static site when patching. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar default_hostname: The default autogenerated hostname for the static site. + :vartype default_hostname: str + :param repository_url: URL for the repository of the static site. + :type repository_url: str + :param branch: The target branch in the repository. + :type branch: str + :ivar custom_domains: The custom domains associated with this static site. + :vartype custom_domains: list[str] + :param repository_token: A user's github repository token. This is used to setup the Github + Actions workflow file and API secrets. + :type repository_token: str + :param build_properties: Build properties to configure on the repository. + :type build_properties: ~azure.mgmt.web.v2021_01_15.models.StaticSiteBuildProperties + :ivar private_endpoint_connections: Private endpoint connections. + :vartype private_endpoint_connections: + list[~azure.mgmt.web.v2021_01_15.models.ResponseMessageEnvelopeRemotePrivateEndpointConnection] + :param staging_environment_policy: State indicating whether staging environments are allowed or + not allowed for a static web app. Possible values include: "Enabled", "Disabled". + :type staging_environment_policy: str or + ~azure.mgmt.web.v2021_01_15.models.StagingEnvironmentPolicy + :param allow_config_file_updates: :code:`false` if config file is locked for this + static web app; otherwise, :code:`true`. + :type allow_config_file_updates: bool + :param template_properties: Template options for generating a new repository. + :type template_properties: ~azure.mgmt.web.v2021_01_15.models.StaticSiteTemplateOptions + :ivar content_distribution_endpoint: The content distribution endpoint for the static site. + :vartype content_distribution_endpoint: str + :ivar key_vault_reference_identity: Identity to use for Key Vault Reference authentication. + :vartype key_vault_reference_identity: str + :ivar user_provided_function_apps: User provided function apps registered with the static site. + :vartype user_provided_function_apps: + list[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionApp] + :ivar provider: The provider that submitted the last deployment to the primary environment of + the static site. + :vartype provider: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'default_hostname': {'readonly': True}, + 'custom_domains': {'readonly': True}, + 'private_endpoint_connections': {'readonly': True}, + 'content_distribution_endpoint': {'readonly': True}, + 'key_vault_reference_identity': {'readonly': True}, + 'user_provided_function_apps': {'readonly': True}, + 'provider': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'default_hostname': {'key': 'properties.defaultHostname', 'type': 'str'}, + 'repository_url': {'key': 'properties.repositoryUrl', 'type': 'str'}, + 'branch': {'key': 'properties.branch', 'type': 'str'}, + 'custom_domains': {'key': 'properties.customDomains', 'type': '[str]'}, + 'repository_token': {'key': 'properties.repositoryToken', 'type': 'str'}, + 'build_properties': {'key': 'properties.buildProperties', 'type': 'StaticSiteBuildProperties'}, + 'private_endpoint_connections': {'key': 'properties.privateEndpointConnections', 'type': '[ResponseMessageEnvelopeRemotePrivateEndpointConnection]'}, + 'staging_environment_policy': {'key': 'properties.stagingEnvironmentPolicy', 'type': 'str'}, + 'allow_config_file_updates': {'key': 'properties.allowConfigFileUpdates', 'type': 'bool'}, + 'template_properties': {'key': 'properties.templateProperties', 'type': 'StaticSiteTemplateOptions'}, + 'content_distribution_endpoint': {'key': 'properties.contentDistributionEndpoint', 'type': 'str'}, + 'key_vault_reference_identity': {'key': 'properties.keyVaultReferenceIdentity', 'type': 'str'}, + 'user_provided_function_apps': {'key': 'properties.userProvidedFunctionApps', 'type': '[StaticSiteUserProvidedFunctionApp]'}, + 'provider': {'key': 'properties.provider', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSitePatchResource, self).__init__(**kwargs) + self.default_hostname = None + self.repository_url = kwargs.get('repository_url', None) + self.branch = kwargs.get('branch', None) + self.custom_domains = None + self.repository_token = kwargs.get('repository_token', None) + self.build_properties = kwargs.get('build_properties', None) + self.private_endpoint_connections = None + self.staging_environment_policy = kwargs.get('staging_environment_policy', None) + self.allow_config_file_updates = kwargs.get('allow_config_file_updates', None) + self.template_properties = kwargs.get('template_properties', None) + self.content_distribution_endpoint = None + self.key_vault_reference_identity = None + self.user_provided_function_apps = None + self.provider = None + + +class StaticSiteResetPropertiesARMResource(ProxyOnlyResource): + """Static Site Reset Properties ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param repository_token: The token which proves admin privileges to the repository. + :type repository_token: str + :param should_update_repository: Determines whether the repository should be updated with the + new properties. + :type should_update_repository: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'repository_token': {'key': 'properties.repositoryToken', 'type': 'str'}, + 'should_update_repository': {'key': 'properties.shouldUpdateRepository', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteResetPropertiesARMResource, self).__init__(**kwargs) + self.repository_token = kwargs.get('repository_token', None) + self.should_update_repository = kwargs.get('should_update_repository', None) + + +class StaticSitesWorkflowPreview(ProxyOnlyResource): + """Preview for the Static Site Workflow to be generated. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar path: The path for the workflow file to be generated. + :vartype path: str + :ivar contents: The contents for the workflow file to be generated. + :vartype contents: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'path': {'readonly': True}, + 'contents': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'path': {'key': 'properties.path', 'type': 'str'}, + 'contents': {'key': 'properties.contents', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSitesWorkflowPreview, self).__init__(**kwargs) + self.path = None + self.contents = None + + +class StaticSitesWorkflowPreviewRequest(ProxyOnlyResource): + """Request entity for previewing the Static Site workflow. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param repository_url: URL for the repository of the static site. + :type repository_url: str + :param branch: The target branch in the repository. + :type branch: str + :param build_properties: Build properties to configure on the repository. + :type build_properties: ~azure.mgmt.web.v2021_01_15.models.StaticSiteBuildProperties + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'repository_url': {'key': 'properties.repositoryUrl', 'type': 'str'}, + 'branch': {'key': 'properties.branch', 'type': 'str'}, + 'build_properties': {'key': 'properties.buildProperties', 'type': 'StaticSiteBuildProperties'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSitesWorkflowPreviewRequest, self).__init__(**kwargs) + self.repository_url = kwargs.get('repository_url', None) + self.branch = kwargs.get('branch', None) + self.build_properties = kwargs.get('build_properties', None) + + +class StaticSiteTemplateOptions(msrest.serialization.Model): + """Template Options for the static site. + + :param template_repository_url: URL of the template repository. The newly generated repository + will be based on this one. + :type template_repository_url: str + :param owner: Owner of the newly generated repository. + :type owner: str + :param repository_name: Name of the newly generated repository. + :type repository_name: str + :param description: Description of the newly generated repository. + :type description: str + :param is_private: Whether or not the newly generated repository is a private repository. + Defaults to false (i.e. public). + :type is_private: bool + """ + + _attribute_map = { + 'template_repository_url': {'key': 'templateRepositoryUrl', 'type': 'str'}, + 'owner': {'key': 'owner', 'type': 'str'}, + 'repository_name': {'key': 'repositoryName', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'is_private': {'key': 'isPrivate', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteTemplateOptions, self).__init__(**kwargs) + self.template_repository_url = kwargs.get('template_repository_url', None) + self.owner = kwargs.get('owner', None) + self.repository_name = kwargs.get('repository_name', None) + self.description = kwargs.get('description', None) + self.is_private = kwargs.get('is_private', None) + + +class StaticSiteUserARMResource(ProxyOnlyResource): + """Static Site User ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar provider: The identity provider for the static site user. + :vartype provider: str + :ivar user_id: The user id for the static site user. + :vartype user_id: str + :ivar display_name: The display name for the static site user. + :vartype display_name: str + :param roles: The roles for the static site user, in free-form string format. + :type roles: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'provider': {'readonly': True}, + 'user_id': {'readonly': True}, + 'display_name': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'provider': {'key': 'properties.provider', 'type': 'str'}, + 'user_id': {'key': 'properties.userId', 'type': 'str'}, + 'display_name': {'key': 'properties.displayName', 'type': 'str'}, + 'roles': {'key': 'properties.roles', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteUserARMResource, self).__init__(**kwargs) + self.provider = None + self.user_id = None + self.display_name = None + self.roles = kwargs.get('roles', None) + + +class StaticSiteUserCollection(msrest.serialization.Model): + """Collection of static site custom users. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserARMResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[StaticSiteUserARMResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteUserCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class StaticSiteUserInvitationRequestResource(ProxyOnlyResource): + """Static sites user roles invitation resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param domain: The domain name for the static site custom domain. + :type domain: str + :param provider: The identity provider for the static site user. + :type provider: str + :param user_details: The user id for the static site user. + :type user_details: str + :param roles: The roles for the static site user, in free-form string format. + :type roles: str + :param num_hours_to_expiration: The number of hours the sas token stays valid. + :type num_hours_to_expiration: int + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'domain': {'key': 'properties.domain', 'type': 'str'}, + 'provider': {'key': 'properties.provider', 'type': 'str'}, + 'user_details': {'key': 'properties.userDetails', 'type': 'str'}, + 'roles': {'key': 'properties.roles', 'type': 'str'}, + 'num_hours_to_expiration': {'key': 'properties.numHoursToExpiration', 'type': 'int'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteUserInvitationRequestResource, self).__init__(**kwargs) + self.domain = kwargs.get('domain', None) + self.provider = kwargs.get('provider', None) + self.user_details = kwargs.get('user_details', None) + self.roles = kwargs.get('roles', None) + self.num_hours_to_expiration = kwargs.get('num_hours_to_expiration', None) + + +class StaticSiteUserInvitationResponseResource(ProxyOnlyResource): + """Static sites user roles invitation link resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar expires_on: The expiration time of the invitation. + :vartype expires_on: ~datetime.datetime + :ivar invitation_url: The url for the invitation link. + :vartype invitation_url: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'expires_on': {'readonly': True}, + 'invitation_url': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'expires_on': {'key': 'properties.expiresOn', 'type': 'iso-8601'}, + 'invitation_url': {'key': 'properties.invitationUrl', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteUserInvitationResponseResource, self).__init__(**kwargs) + self.expires_on = None + self.invitation_url = None + + +class StaticSiteUserProvidedFunctionApp(ProxyOnlyResource): + """A static site user provided function. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param function_app_resource_id: The resource id of the function app registered with the static + site. + :type function_app_resource_id: str + :param function_app_region: The region of the function app registered with the static site. + :type function_app_region: str + :ivar created_on: The date and time on which the function app was registered with the static + site. + :vartype created_on: ~datetime.datetime + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'created_on': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'function_app_resource_id': {'key': 'properties.functionAppResourceId', 'type': 'str'}, + 'function_app_region': {'key': 'properties.functionAppRegion', 'type': 'str'}, + 'created_on': {'key': 'properties.createdOn', 'type': 'iso-8601'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteUserProvidedFunctionApp, self).__init__(**kwargs) + self.function_app_resource_id = kwargs.get('function_app_resource_id', None) + self.function_app_region = kwargs.get('function_app_region', None) + self.created_on = None + + +class StaticSiteUserProvidedFunctionAppARMResource(ProxyOnlyResource): + """Static Site User Provided Function App ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param function_app_resource_id: The resource id of the function app registered with the static + site. + :type function_app_resource_id: str + :param function_app_region: The region of the function app registered with the static site. + :type function_app_region: str + :ivar created_on: The date and time on which the function app was registered with the static + site. + :vartype created_on: ~datetime.datetime + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'created_on': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'function_app_resource_id': {'key': 'properties.functionAppResourceId', 'type': 'str'}, + 'function_app_region': {'key': 'properties.functionAppRegion', 'type': 'str'}, + 'created_on': {'key': 'properties.createdOn', 'type': 'iso-8601'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteUserProvidedFunctionAppARMResource, self).__init__(**kwargs) + self.function_app_resource_id = kwargs.get('function_app_resource_id', None) + self.function_app_region = kwargs.get('function_app_region', None) + self.created_on = None + + +class StaticSiteUserProvidedFunctionAppsCollection(msrest.serialization.Model): + """Collection of static site user provided function apps. + + 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 value: Required. Collection of resources. + :type value: + list[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppARMResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[StaticSiteUserProvidedFunctionAppARMResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteUserProvidedFunctionAppsCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class StaticSiteZipDeploymentARMResource(ProxyOnlyResource): + """Static site zip deployment ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param app_zip_url: URL for the zipped app content. + :type app_zip_url: str + :param api_zip_url: URL for the zipped api content. + :type api_zip_url: str + :param deployment_title: A title to label the deployment. + :type deployment_title: str + :param provider: The provider submitting this deployment. + :type provider: str + :param function_language: The language of the api content, if it exists. + :type function_language: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'app_zip_url': {'key': 'properties.appZipUrl', 'type': 'str'}, + 'api_zip_url': {'key': 'properties.apiZipUrl', 'type': 'str'}, + 'deployment_title': {'key': 'properties.deploymentTitle', 'type': 'str'}, + 'provider': {'key': 'properties.provider', 'type': 'str'}, + 'function_language': {'key': 'properties.functionLanguage', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StaticSiteZipDeploymentARMResource, self).__init__(**kwargs) + self.app_zip_url = kwargs.get('app_zip_url', None) + self.api_zip_url = kwargs.get('api_zip_url', None) + self.deployment_title = kwargs.get('deployment_title', None) + self.provider = kwargs.get('provider', None) + self.function_language = kwargs.get('function_language', None) + + +class Status(msrest.serialization.Model): + """Identify the status of the most severe insight generated by the detector. + + :param message: Descriptive message. + :type message: str + :param status_id: Level of the most severe insight generated by the detector. Possible values + include: "Critical", "Warning", "Info", "Success", "None". + :type status_id: str or ~azure.mgmt.web.v2021_01_15.models.InsightStatus + """ + + _attribute_map = { + 'message': {'key': 'message', 'type': 'str'}, + 'status_id': {'key': 'statusId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Status, self).__init__(**kwargs) + self.message = kwargs.get('message', None) + self.status_id = kwargs.get('status_id', None) + + +class StatusCodesBasedTrigger(msrest.serialization.Model): + """Trigger based on status code. + + :param status: HTTP status code. + :type status: int + :param sub_status: Request Sub Status. + :type sub_status: int + :param win32_status: Win32 error code. + :type win32_status: int + :param count: Request Count. + :type count: int + :param time_interval: Time interval. + :type time_interval: str + :param path: Request Path. + :type path: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'int'}, + 'sub_status': {'key': 'subStatus', 'type': 'int'}, + 'win32_status': {'key': 'win32Status', 'type': 'int'}, + 'count': {'key': 'count', 'type': 'int'}, + 'time_interval': {'key': 'timeInterval', 'type': 'str'}, + 'path': {'key': 'path', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StatusCodesBasedTrigger, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.sub_status = kwargs.get('sub_status', None) + self.win32_status = kwargs.get('win32_status', None) + self.count = kwargs.get('count', None) + self.time_interval = kwargs.get('time_interval', None) + self.path = kwargs.get('path', None) + + +class StatusCodesRangeBasedTrigger(msrest.serialization.Model): + """Trigger based on range of status codes. + + :param status_codes: HTTP status code. + :type status_codes: str + :param path: + :type path: str + :param count: Request Count. + :type count: int + :param time_interval: Time interval. + :type time_interval: str + """ + + _attribute_map = { + 'status_codes': {'key': 'statusCodes', 'type': 'str'}, + 'path': {'key': 'path', 'type': 'str'}, + 'count': {'key': 'count', 'type': 'int'}, + 'time_interval': {'key': 'timeInterval', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StatusCodesRangeBasedTrigger, self).__init__(**kwargs) + self.status_codes = kwargs.get('status_codes', None) + self.path = kwargs.get('path', None) + self.count = kwargs.get('count', None) + self.time_interval = kwargs.get('time_interval', None) + + +class StorageMigrationOptions(ProxyOnlyResource): + """Options for app content migration. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param azurefiles_connection_string: AzureFiles connection string. + :type azurefiles_connection_string: str + :param azurefiles_share: AzureFiles share. + :type azurefiles_share: str + :param switch_site_after_migration: :code:`true`if the app should be switched + over; otherwise, :code:`false`. + :type switch_site_after_migration: bool + :param block_write_access_to_site: :code:`true` if the app should be read only + during copy operation; otherwise, :code:`false`. + :type block_write_access_to_site: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'azurefiles_connection_string': {'key': 'properties.azurefilesConnectionString', 'type': 'str'}, + 'azurefiles_share': {'key': 'properties.azurefilesShare', 'type': 'str'}, + 'switch_site_after_migration': {'key': 'properties.switchSiteAfterMigration', 'type': 'bool'}, + 'block_write_access_to_site': {'key': 'properties.blockWriteAccessToSite', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(StorageMigrationOptions, self).__init__(**kwargs) + self.azurefiles_connection_string = kwargs.get('azurefiles_connection_string', None) + self.azurefiles_share = kwargs.get('azurefiles_share', None) + self.switch_site_after_migration = kwargs.get('switch_site_after_migration', False) + self.block_write_access_to_site = kwargs.get('block_write_access_to_site', False) + + +class StorageMigrationResponse(ProxyOnlyResource): + """Response for a migration of app content request. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar operation_id: When server starts the migration process, it will return an operation ID + identifying that particular migration operation. + :vartype operation_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'operation_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'operation_id': {'key': 'properties.operationId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(StorageMigrationResponse, self).__init__(**kwargs) + self.operation_id = None + + +class StringDictionary(ProxyOnlyResource): + """String dictionary resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param properties: Settings. + :type properties: dict[str, str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': '{str}'}, + } + + def __init__( + self, + **kwargs + ): + super(StringDictionary, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) + + +class StringList(ProxyOnlyResource): + """String list resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param properties: List of string resources. + :type properties: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(StringList, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) + + +class SupportTopic(msrest.serialization.Model): + """Defines a unique Support Topic. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Support Topic Id. + :vartype id: str + :ivar pes_id: Unique resource Id. + :vartype pes_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'pes_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'pes_id': {'key': 'pesId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SupportTopic, self).__init__(**kwargs) + self.id = None + self.pes_id = None + + +class SwiftVirtualNetwork(ProxyOnlyResource): + """Swift Virtual Network Contract. This is used to enable the new Swift way of doing virtual network integration. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param subnet_resource_id: The Virtual Network subnet's resource ID. This is the subnet that + this Web App will join. This subnet must have a delegation to Microsoft.Web/serverFarms defined + first. + :type subnet_resource_id: str + :param swift_supported: A flag that specifies if the scale unit this Web App is on supports + Swift integration. + :type swift_supported: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'subnet_resource_id': {'key': 'properties.subnetResourceId', 'type': 'str'}, + 'swift_supported': {'key': 'properties.swiftSupported', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(SwiftVirtualNetwork, self).__init__(**kwargs) + self.subnet_resource_id = kwargs.get('subnet_resource_id', None) + self.swift_supported = kwargs.get('swift_supported', None) + + +class TldLegalAgreement(msrest.serialization.Model): + """Legal agreement for a top level domain. + + All required parameters must be populated in order to send to Azure. + + :param agreement_key: Required. Unique identifier for the agreement. + :type agreement_key: str + :param title: Required. Agreement title. + :type title: str + :param content: Required. Agreement details. + :type content: str + :param url: URL where a copy of the agreement details is hosted. + :type url: str + """ + + _validation = { + 'agreement_key': {'required': True}, + 'title': {'required': True}, + 'content': {'required': True}, + } + + _attribute_map = { + 'agreement_key': {'key': 'agreementKey', 'type': 'str'}, + 'title': {'key': 'title', 'type': 'str'}, + 'content': {'key': 'content', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(TldLegalAgreement, self).__init__(**kwargs) + self.agreement_key = kwargs['agreement_key'] + self.title = kwargs['title'] + self.content = kwargs['content'] + self.url = kwargs.get('url', None) + + +class TldLegalAgreementCollection(msrest.serialization.Model): + """Collection of top-level domain legal agreements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.TldLegalAgreement] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TldLegalAgreement]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(TldLegalAgreementCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class TokenStore(ProxyOnlyResource): + """The configuration settings of the token store. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`true` to durably store platform-specific security tokens + that are obtained during login flows; otherwise, :code:`false`. + The default is :code:`false`. + :type enabled: bool + :param token_refresh_extension_hours: The number of hours after session token expiration that a + session token can be used to + call the token refresh API. The default is 72 hours. + :type token_refresh_extension_hours: float + :param file_system: The configuration settings of the storage of the tokens if a file system is + used. + :type file_system: ~azure.mgmt.web.v2021_01_15.models.FileSystemTokenStore + :param azure_blob_storage: The configuration settings of the storage of the tokens if blob + storage is used. + :type azure_blob_storage: ~azure.mgmt.web.v2021_01_15.models.BlobStorageTokenStore + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'token_refresh_extension_hours': {'key': 'properties.tokenRefreshExtensionHours', 'type': 'float'}, + 'file_system': {'key': 'properties.fileSystem', 'type': 'FileSystemTokenStore'}, + 'azure_blob_storage': {'key': 'properties.azureBlobStorage', 'type': 'BlobStorageTokenStore'}, + } + + def __init__( + self, + **kwargs + ): + super(TokenStore, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.token_refresh_extension_hours = kwargs.get('token_refresh_extension_hours', None) + self.file_system = kwargs.get('file_system', None) + self.azure_blob_storage = kwargs.get('azure_blob_storage', None) + + +class TopLevelDomain(ProxyOnlyResource): + """A top level domain object. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param privacy: If :code:`true`, then the top level domain supports domain + privacy; otherwise, :code:`false`. + :type privacy: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'privacy': {'key': 'properties.privacy', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(TopLevelDomain, self).__init__(**kwargs) + self.privacy = kwargs.get('privacy', None) + + +class TopLevelDomainAgreementOption(msrest.serialization.Model): + """Options for retrieving the list of top level domain legal agreements. + + :param include_privacy: If :code:`true`, then the list of agreements will include + agreements for domain privacy as well; otherwise, :code:`false`. + :type include_privacy: bool + :param for_transfer: If :code:`true`, then the list of agreements will include + agreements for domain transfer as well; otherwise, :code:`false`. + :type for_transfer: bool + """ + + _attribute_map = { + 'include_privacy': {'key': 'includePrivacy', 'type': 'bool'}, + 'for_transfer': {'key': 'forTransfer', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(TopLevelDomainAgreementOption, self).__init__(**kwargs) + self.include_privacy = kwargs.get('include_privacy', None) + self.for_transfer = kwargs.get('for_transfer', None) + + +class TopLevelDomainCollection(msrest.serialization.Model): + """Collection of Top-level domains. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.TopLevelDomain] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TopLevelDomain]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(TopLevelDomainCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class TriggeredJobHistory(ProxyOnlyResource): + """Triggered Web Job History. List of Triggered Web Job Run Information elements. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param runs: List of triggered web job runs. + :type runs: list[~azure.mgmt.web.v2021_01_15.models.TriggeredJobRun] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'runs': {'key': 'properties.runs', 'type': '[TriggeredJobRun]'}, + } + + def __init__( + self, + **kwargs + ): + super(TriggeredJobHistory, self).__init__(**kwargs) + self.runs = kwargs.get('runs', None) + + +class TriggeredJobHistoryCollection(msrest.serialization.Model): + """Collection of Kudu continuous web job information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.TriggeredJobHistory] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TriggeredJobHistory]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(TriggeredJobHistoryCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class TriggeredJobRun(ProxyOnlyResource): + """Triggered Web Job Run Information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param web_job_id: Job ID. + :type web_job_id: str + :param web_job_name: Job name. + :type web_job_name: str + :param status: Job status. Possible values include: "Success", "Failed", "Error". + :type status: str or ~azure.mgmt.web.v2021_01_15.models.TriggeredWebJobStatus + :param start_time: Start time. + :type start_time: ~datetime.datetime + :param end_time: End time. + :type end_time: ~datetime.datetime + :param duration: Job duration. + :type duration: str + :param output_url: Output URL. + :type output_url: str + :param error_url: Error URL. + :type error_url: str + :param url: Job URL. + :type url: str + :param job_name: Job name. + :type job_name: str + :param trigger: Job trigger. + :type trigger: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'web_job_id': {'key': 'properties.web_job_id', 'type': 'str'}, + 'web_job_name': {'key': 'properties.web_job_name', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'start_time': {'key': 'properties.start_time', 'type': 'iso-8601'}, + 'end_time': {'key': 'properties.end_time', 'type': 'iso-8601'}, + 'duration': {'key': 'properties.duration', 'type': 'str'}, + 'output_url': {'key': 'properties.output_url', 'type': 'str'}, + 'error_url': {'key': 'properties.error_url', 'type': 'str'}, + 'url': {'key': 'properties.url', 'type': 'str'}, + 'job_name': {'key': 'properties.job_name', 'type': 'str'}, + 'trigger': {'key': 'properties.trigger', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(TriggeredJobRun, self).__init__(**kwargs) + self.web_job_id = kwargs.get('web_job_id', None) + self.web_job_name = kwargs.get('web_job_name', None) + self.status = kwargs.get('status', None) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.duration = kwargs.get('duration', None) + self.output_url = kwargs.get('output_url', None) + self.error_url = kwargs.get('error_url', None) + self.url = kwargs.get('url', None) + self.job_name = kwargs.get('job_name', None) + self.trigger = kwargs.get('trigger', None) + + +class TriggeredWebJob(ProxyOnlyResource): + """Triggered Web Job Information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param latest_run: Latest job run information. + :type latest_run: ~azure.mgmt.web.v2021_01_15.models.TriggeredJobRun + :param history_url: History URL. + :type history_url: str + :param scheduler_logs_url: Scheduler Logs URL. + :type scheduler_logs_url: str + :param run_command: Run command. + :type run_command: str + :param url: Job URL. + :type url: str + :param extra_info_url: Extra Info URL. + :type extra_info_url: str + :param web_job_type: Job type. Possible values include: "Continuous", "Triggered". + :type web_job_type: str or ~azure.mgmt.web.v2021_01_15.models.WebJobType + :param error: Error information. + :type error: str + :param using_sdk: Using SDK?. + :type using_sdk: bool + :param settings: Job settings. + :type settings: dict[str, any] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'latest_run': {'key': 'properties.latest_run', 'type': 'TriggeredJobRun'}, + 'history_url': {'key': 'properties.history_url', 'type': 'str'}, + 'scheduler_logs_url': {'key': 'properties.scheduler_logs_url', 'type': 'str'}, + 'run_command': {'key': 'properties.run_command', 'type': 'str'}, + 'url': {'key': 'properties.url', 'type': 'str'}, + 'extra_info_url': {'key': 'properties.extra_info_url', 'type': 'str'}, + 'web_job_type': {'key': 'properties.web_job_type', 'type': 'str'}, + 'error': {'key': 'properties.error', 'type': 'str'}, + 'using_sdk': {'key': 'properties.using_sdk', 'type': 'bool'}, + 'settings': {'key': 'properties.settings', 'type': '{object}'}, + } + + def __init__( + self, + **kwargs + ): + super(TriggeredWebJob, self).__init__(**kwargs) + self.latest_run = kwargs.get('latest_run', None) + self.history_url = kwargs.get('history_url', None) + self.scheduler_logs_url = kwargs.get('scheduler_logs_url', None) + self.run_command = kwargs.get('run_command', None) + self.url = kwargs.get('url', None) + self.extra_info_url = kwargs.get('extra_info_url', None) + self.web_job_type = kwargs.get('web_job_type', None) + self.error = kwargs.get('error', None) + self.using_sdk = kwargs.get('using_sdk', None) + self.settings = kwargs.get('settings', None) + + +class TriggeredWebJobCollection(msrest.serialization.Model): + """Collection of Kudu continuous web job information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.TriggeredWebJob] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TriggeredWebJob]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(TriggeredWebJobCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class Twitter(ProxyOnlyResource): + """The configuration settings of the Twitter provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the Twitter provider should not be enabled + despite the set registration; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the app registration for the Twitter + provider. + :type registration: ~azure.mgmt.web.v2021_01_15.models.TwitterRegistration + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'TwitterRegistration'}, + } + + def __init__( + self, + **kwargs + ): + super(Twitter, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.registration = kwargs.get('registration', None) + + +class TwitterRegistration(ProxyOnlyResource): + """The configuration settings of the app registration for the Twitter provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param consumer_key: The OAuth 1.0a consumer key of the Twitter application used for sign-in. + This setting is required for enabling Twitter Sign-In. + Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in. + :type consumer_key: str + :param consumer_secret_setting_name: The app setting name that contains the OAuth 1.0a consumer + secret of the Twitter + application used for sign-in. + :type consumer_secret_setting_name: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'consumer_key': {'key': 'properties.consumerKey', 'type': 'str'}, + 'consumer_secret_setting_name': {'key': 'properties.consumerSecretSettingName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(TwitterRegistration, self).__init__(**kwargs) + self.consumer_key = kwargs.get('consumer_key', None) + self.consumer_secret_setting_name = kwargs.get('consumer_secret_setting_name', None) + + +class Usage(ProxyOnlyResource): + """Usage of the quota resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar display_name: Friendly name shown in the UI. + :vartype display_name: str + :ivar resource_name: Name of the quota resource. + :vartype resource_name: str + :ivar unit: Units of measurement for the quota resource. + :vartype unit: str + :ivar current_value: The current value of the resource counter. + :vartype current_value: long + :ivar limit: The resource limit. + :vartype limit: long + :ivar next_reset_time: Next reset time for the resource counter. + :vartype next_reset_time: ~datetime.datetime + :ivar compute_mode: Compute mode used for this usage. Possible values include: "Shared", + "Dedicated", "Dynamic". + :vartype compute_mode: str or ~azure.mgmt.web.v2021_01_15.models.ComputeModeOptions + :ivar site_mode: Site mode used for this usage. + :vartype site_mode: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'display_name': {'readonly': True}, + 'resource_name': {'readonly': True}, + 'unit': {'readonly': True}, + 'current_value': {'readonly': True}, + 'limit': {'readonly': True}, + 'next_reset_time': {'readonly': True}, + 'compute_mode': {'readonly': True}, + 'site_mode': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'display_name': {'key': 'properties.displayName', 'type': 'str'}, + 'resource_name': {'key': 'properties.resourceName', 'type': 'str'}, + 'unit': {'key': 'properties.unit', 'type': 'str'}, + 'current_value': {'key': 'properties.currentValue', 'type': 'long'}, + 'limit': {'key': 'properties.limit', 'type': 'long'}, + 'next_reset_time': {'key': 'properties.nextResetTime', 'type': 'iso-8601'}, + 'compute_mode': {'key': 'properties.computeMode', 'type': 'str'}, + 'site_mode': {'key': 'properties.siteMode', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Usage, self).__init__(**kwargs) + self.display_name = None + self.resource_name = None + self.unit = None + self.current_value = None + self.limit = None + self.next_reset_time = None + self.compute_mode = None + self.site_mode = None + + +class UsageCollection(msrest.serialization.Model): + """Collection of usages. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.Usage] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Usage]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(UsageCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class User(ProxyOnlyResource): + """User credentials used for publishing activity. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param publishing_user_name: Username used for publishing. + :type publishing_user_name: str + :param publishing_password: Password used for publishing. + :type publishing_password: str + :param publishing_password_hash: Password hash used for publishing. + :type publishing_password_hash: str + :param publishing_password_hash_salt: Password hash salt used for publishing. + :type publishing_password_hash_salt: str + :param scm_uri: Url of SCM site. + :type scm_uri: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'publishing_user_name': {'key': 'properties.publishingUserName', 'type': 'str'}, + 'publishing_password': {'key': 'properties.publishingPassword', 'type': 'str'}, + 'publishing_password_hash': {'key': 'properties.publishingPasswordHash', 'type': 'str'}, + 'publishing_password_hash_salt': {'key': 'properties.publishingPasswordHashSalt', 'type': 'str'}, + 'scm_uri': {'key': 'properties.scmUri', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(User, self).__init__(**kwargs) + self.publishing_user_name = kwargs.get('publishing_user_name', None) + self.publishing_password = kwargs.get('publishing_password', None) + self.publishing_password_hash = kwargs.get('publishing_password_hash', None) + self.publishing_password_hash_salt = kwargs.get('publishing_password_hash_salt', None) + self.scm_uri = kwargs.get('scm_uri', None) + + +class UserAssignedIdentity(msrest.serialization.Model): + """User Assigned identity. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar principal_id: Principal Id of user assigned identity. + :vartype principal_id: str + :ivar client_id: Client Id of user assigned identity. + :vartype client_id: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'client_id': {'readonly': True}, + } + + _attribute_map = { + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'client_id': {'key': 'clientId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(UserAssignedIdentity, self).__init__(**kwargs) + self.principal_id = None + self.client_id = None + + +class ValidateRequest(msrest.serialization.Model): + """Resource validation request content. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. Resource name to verify. + :type name: str + :param type: Required. Resource type used for verification. Possible values include: + "ServerFarm", "Site", "Microsoft.Web/hostingEnvironments". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.ValidateResourceTypes + :param location: Required. Expected location of the resource. + :type location: str + :param server_farm_id: ARM resource ID of an App Service plan that would host the app. + :type server_farm_id: str + :param sku_name: Name of the target SKU for the App Service plan. + :type sku_name: str + :param need_linux_workers: :code:`true` if App Service plan is for Linux workers; + otherwise, :code:`false`. + :type need_linux_workers: bool + :param is_spot: :code:`true` if App Service plan is for Spot instances; otherwise, + :code:`false`. + :type is_spot: bool + :param capacity: Target capacity of the App Service plan (number of VMs). + :type capacity: int + :param hosting_environment: Name of App Service Environment where app or App Service plan + should be created. + :type hosting_environment: str + :param is_xenon: :code:`true` if App Service plan is running as a windows + container. + :type is_xenon: bool + :param container_registry_base_url: Base URL of the container registry. + :type container_registry_base_url: str + :param container_registry_username: Username for to access the container registry. + :type container_registry_username: str + :param container_registry_password: Password for to access the container registry. + :type container_registry_password: str + :param container_image_repository: Repository name (image name). + :type container_image_repository: str + :param container_image_tag: Image tag. + :type container_image_tag: str + :param container_image_platform: Platform (windows or linux). + :type container_image_platform: str + :param app_service_environment: App Service Environment Properties. + :type app_service_environment: ~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironment + """ + + _validation = { + 'name': {'required': True}, + 'type': {'required': True}, + 'location': {'required': True}, + 'capacity': {'minimum': 1}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'server_farm_id': {'key': 'properties.serverFarmId', 'type': 'str'}, + 'sku_name': {'key': 'properties.skuName', 'type': 'str'}, + 'need_linux_workers': {'key': 'properties.needLinuxWorkers', 'type': 'bool'}, + 'is_spot': {'key': 'properties.isSpot', 'type': 'bool'}, + 'capacity': {'key': 'properties.capacity', 'type': 'int'}, + 'hosting_environment': {'key': 'properties.hostingEnvironment', 'type': 'str'}, + 'is_xenon': {'key': 'properties.isXenon', 'type': 'bool'}, + 'container_registry_base_url': {'key': 'properties.containerRegistryBaseUrl', 'type': 'str'}, + 'container_registry_username': {'key': 'properties.containerRegistryUsername', 'type': 'str'}, + 'container_registry_password': {'key': 'properties.containerRegistryPassword', 'type': 'str'}, + 'container_image_repository': {'key': 'properties.containerImageRepository', 'type': 'str'}, + 'container_image_tag': {'key': 'properties.containerImageTag', 'type': 'str'}, + 'container_image_platform': {'key': 'properties.containerImagePlatform', 'type': 'str'}, + 'app_service_environment': {'key': 'properties.appServiceEnvironment', 'type': 'AppServiceEnvironment'}, + } + + def __init__( + self, + **kwargs + ): + super(ValidateRequest, self).__init__(**kwargs) + self.name = kwargs['name'] + self.type = kwargs['type'] + self.location = kwargs['location'] + self.server_farm_id = kwargs.get('server_farm_id', None) + self.sku_name = kwargs.get('sku_name', None) + self.need_linux_workers = kwargs.get('need_linux_workers', None) + self.is_spot = kwargs.get('is_spot', None) + self.capacity = kwargs.get('capacity', None) + self.hosting_environment = kwargs.get('hosting_environment', None) + self.is_xenon = kwargs.get('is_xenon', None) + self.container_registry_base_url = kwargs.get('container_registry_base_url', None) + self.container_registry_username = kwargs.get('container_registry_username', None) + self.container_registry_password = kwargs.get('container_registry_password', None) + self.container_image_repository = kwargs.get('container_image_repository', None) + self.container_image_tag = kwargs.get('container_image_tag', None) + self.container_image_platform = kwargs.get('container_image_platform', None) + self.app_service_environment = kwargs.get('app_service_environment', None) + + +class ValidateResponse(msrest.serialization.Model): + """Describes the result of resource validation. + + :param status: Result of validation. + :type status: str + :param error: Error details for the case when validation fails. + :type error: ~azure.mgmt.web.v2021_01_15.models.ValidateResponseError + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'ValidateResponseError'}, + } + + def __init__( + self, + **kwargs + ): + super(ValidateResponse, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.error = kwargs.get('error', None) + + +class ValidateResponseError(msrest.serialization.Model): + """Error details for when validation fails. + + :param code: Validation error code. + :type code: str + :param message: Validation error message. + :type message: str + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ValidateResponseError, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + + +class VirtualApplication(msrest.serialization.Model): + """Virtual application in an app. + + :param virtual_path: Virtual path. + :type virtual_path: str + :param physical_path: Physical path. + :type physical_path: str + :param preload_enabled: :code:`true` if preloading is enabled; otherwise, + :code:`false`. + :type preload_enabled: bool + :param virtual_directories: Virtual directories for virtual application. + :type virtual_directories: list[~azure.mgmt.web.v2021_01_15.models.VirtualDirectory] + """ + + _attribute_map = { + 'virtual_path': {'key': 'virtualPath', 'type': 'str'}, + 'physical_path': {'key': 'physicalPath', 'type': 'str'}, + 'preload_enabled': {'key': 'preloadEnabled', 'type': 'bool'}, + 'virtual_directories': {'key': 'virtualDirectories', 'type': '[VirtualDirectory]'}, + } + + def __init__( + self, + **kwargs + ): + super(VirtualApplication, self).__init__(**kwargs) + self.virtual_path = kwargs.get('virtual_path', None) + self.physical_path = kwargs.get('physical_path', None) + self.preload_enabled = kwargs.get('preload_enabled', None) + self.virtual_directories = kwargs.get('virtual_directories', None) + + +class VirtualDirectory(msrest.serialization.Model): + """Directory for virtual application. + + :param virtual_path: Path to virtual application. + :type virtual_path: str + :param physical_path: Physical path. + :type physical_path: str + """ + + _attribute_map = { + 'virtual_path': {'key': 'virtualPath', 'type': 'str'}, + 'physical_path': {'key': 'physicalPath', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(VirtualDirectory, self).__init__(**kwargs) + self.virtual_path = kwargs.get('virtual_path', None) + self.physical_path = kwargs.get('physical_path', None) + + +class VirtualIPMapping(msrest.serialization.Model): + """Virtual IP mapping. + + :param virtual_ip: Virtual IP address. + :type virtual_ip: str + :param internal_http_port: Internal HTTP port. + :type internal_http_port: int + :param internal_https_port: Internal HTTPS port. + :type internal_https_port: int + :param in_use: Is virtual IP mapping in use. + :type in_use: bool + :param service_name: name of the service that virtual IP is assigned to. + :type service_name: str + """ + + _attribute_map = { + 'virtual_ip': {'key': 'virtualIP', 'type': 'str'}, + 'internal_http_port': {'key': 'internalHttpPort', 'type': 'int'}, + 'internal_https_port': {'key': 'internalHttpsPort', 'type': 'int'}, + 'in_use': {'key': 'inUse', 'type': 'bool'}, + 'service_name': {'key': 'serviceName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(VirtualIPMapping, self).__init__(**kwargs) + self.virtual_ip = kwargs.get('virtual_ip', None) + self.internal_http_port = kwargs.get('internal_http_port', None) + self.internal_https_port = kwargs.get('internal_https_port', None) + self.in_use = kwargs.get('in_use', None) + self.service_name = kwargs.get('service_name', None) + + +class VirtualNetworkProfile(msrest.serialization.Model): + """Specification for using a Virtual Network. + + 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. Resource id of the Virtual Network. + :type id: str + :ivar name: Name of the Virtual Network (read-only). + :vartype name: str + :ivar type: Resource type of the Virtual Network (read-only). + :vartype type: str + :param subnet: Subnet within the Virtual Network. + :type subnet: str + """ + + _validation = { + 'id': {'required': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'subnet': {'key': 'subnet', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(VirtualNetworkProfile, self).__init__(**kwargs) + self.id = kwargs['id'] + self.name = None + self.type = None + self.subnet = kwargs.get('subnet', None) + + +class VnetGateway(ProxyOnlyResource): + """The Virtual Network gateway contract. This is used to give the Virtual Network gateway access to the VPN package. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param vnet_name: The Virtual Network name. + :type vnet_name: str + :param vpn_package_uri: The URI where the VPN package can be downloaded. + :type vpn_package_uri: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'vnet_name': {'key': 'properties.vnetName', 'type': 'str'}, + 'vpn_package_uri': {'key': 'properties.vpnPackageUri', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(VnetGateway, self).__init__(**kwargs) + self.vnet_name = kwargs.get('vnet_name', None) + self.vpn_package_uri = kwargs.get('vpn_package_uri', None) + + +class VnetInfo(ProxyOnlyResource): + """Virtual Network information contract. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param vnet_resource_id: The Virtual Network's resource ID. + :type vnet_resource_id: str + :ivar cert_thumbprint: The client certificate thumbprint. + :vartype cert_thumbprint: str + :param cert_blob: A certificate file (.cer) blob containing the public key of the private key + used to authenticate a + Point-To-Site VPN connection. + :type cert_blob: str + :ivar routes: The routes that this Virtual Network connection uses. + :vartype routes: list[~azure.mgmt.web.v2021_01_15.models.VnetRoute] + :ivar resync_required: :code:`true` if a resync is required; otherwise, + :code:`false`. + :vartype resync_required: bool + :param dns_servers: DNS servers to be used by this Virtual Network. This should be a + comma-separated list of IP addresses. + :type dns_servers: str + :param is_swift: Flag that is used to denote if this is VNET injection. + :type is_swift: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'cert_thumbprint': {'readonly': True}, + 'routes': {'readonly': True}, + 'resync_required': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'vnet_resource_id': {'key': 'properties.vnetResourceId', 'type': 'str'}, + 'cert_thumbprint': {'key': 'properties.certThumbprint', 'type': 'str'}, + 'cert_blob': {'key': 'properties.certBlob', 'type': 'str'}, + 'routes': {'key': 'properties.routes', 'type': '[VnetRoute]'}, + 'resync_required': {'key': 'properties.resyncRequired', 'type': 'bool'}, + 'dns_servers': {'key': 'properties.dnsServers', 'type': 'str'}, + 'is_swift': {'key': 'properties.isSwift', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(VnetInfo, self).__init__(**kwargs) + self.vnet_resource_id = kwargs.get('vnet_resource_id', None) + self.cert_thumbprint = None + self.cert_blob = kwargs.get('cert_blob', None) + self.routes = None + self.resync_required = None + self.dns_servers = kwargs.get('dns_servers', None) + self.is_swift = kwargs.get('is_swift', None) + + +class VnetParameters(ProxyOnlyResource): + """The required set of inputs to validate a VNET. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param vnet_resource_group: The Resource Group of the VNET to be validated. + :type vnet_resource_group: str + :param vnet_name: The name of the VNET to be validated. + :type vnet_name: str + :param vnet_subnet_name: The subnet name to be validated. + :type vnet_subnet_name: str + :param subnet_resource_id: The ARM Resource ID of the subnet to validate. + :type subnet_resource_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'vnet_resource_group': {'key': 'properties.vnetResourceGroup', 'type': 'str'}, + 'vnet_name': {'key': 'properties.vnetName', 'type': 'str'}, + 'vnet_subnet_name': {'key': 'properties.vnetSubnetName', 'type': 'str'}, + 'subnet_resource_id': {'key': 'properties.subnetResourceId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(VnetParameters, self).__init__(**kwargs) + self.vnet_resource_group = kwargs.get('vnet_resource_group', None) + self.vnet_name = kwargs.get('vnet_name', None) + self.vnet_subnet_name = kwargs.get('vnet_subnet_name', None) + self.subnet_resource_id = kwargs.get('subnet_resource_id', None) + + +class VnetRoute(ProxyOnlyResource): + """Virtual Network route contract used to pass routing information for a Virtual Network. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param start_address: The starting address for this route. This may also include a CIDR + notation, in which case the end address must not be specified. + :type start_address: str + :param end_address: The ending address for this route. If the start address is specified in + CIDR notation, this must be omitted. + :type end_address: str + :param route_type: The type of route this is: + DEFAULT - By default, every app has routes to the local address ranges specified by RFC1918 + INHERITED - Routes inherited from the real Virtual Network routes + STATIC - Static route set on the app only + + These values will be used for syncing an app's routes with those from a Virtual Network. + Possible values include: "DEFAULT", "INHERITED", "STATIC". + :type route_type: str or ~azure.mgmt.web.v2021_01_15.models.RouteType + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'start_address': {'key': 'properties.startAddress', 'type': 'str'}, + 'end_address': {'key': 'properties.endAddress', 'type': 'str'}, + 'route_type': {'key': 'properties.routeType', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(VnetRoute, self).__init__(**kwargs) + self.start_address = kwargs.get('start_address', None) + self.end_address = kwargs.get('end_address', None) + self.route_type = kwargs.get('route_type', None) + + +class VnetValidationFailureDetails(ProxyOnlyResource): + """A class that describes the reason for a validation failure. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param message: Text describing the validation outcome. + :type message: str + :param failed: A flag describing whether or not validation failed. + :type failed: bool + :param failed_tests: A list of tests that failed in the validation. + :type failed_tests: list[~azure.mgmt.web.v2021_01_15.models.VnetValidationTestFailure] + :param warnings: A list of warnings generated during validation. + :type warnings: list[~azure.mgmt.web.v2021_01_15.models.VnetValidationTestFailure] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'message': {'key': 'properties.message', 'type': 'str'}, + 'failed': {'key': 'properties.failed', 'type': 'bool'}, + 'failed_tests': {'key': 'properties.failedTests', 'type': '[VnetValidationTestFailure]'}, + 'warnings': {'key': 'properties.warnings', 'type': '[VnetValidationTestFailure]'}, + } + + def __init__( + self, + **kwargs + ): + super(VnetValidationFailureDetails, self).__init__(**kwargs) + self.message = kwargs.get('message', None) + self.failed = kwargs.get('failed', None) + self.failed_tests = kwargs.get('failed_tests', None) + self.warnings = kwargs.get('warnings', None) + + +class VnetValidationTestFailure(ProxyOnlyResource): + """A class that describes a test that failed during NSG and UDR validation. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param test_name: The name of the test that failed. + :type test_name: str + :param details: The details of what caused the failure, e.g. the blocking rule name, etc. + :type details: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'test_name': {'key': 'properties.testName', 'type': 'str'}, + 'details': {'key': 'properties.details', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(VnetValidationTestFailure, self).__init__(**kwargs) + self.test_name = kwargs.get('test_name', None) + self.details = kwargs.get('details', None) + + +class WebAppCollection(msrest.serialization.Model): + """Collection of App Service apps. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.Site] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Site]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(WebAppCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class WebAppInstanceStatusCollection(msrest.serialization.Model): + """Collection of app instances. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.WebSiteInstanceStatus] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[WebSiteInstanceStatus]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(WebAppInstanceStatusCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class WebAppMajorVersion(msrest.serialization.Model): + """Web App stack major version. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar display_text: Web App stack major version (display only). + :vartype display_text: str + :ivar value: Web App stack major version name. + :vartype value: str + :ivar minor_versions: Minor versions associated with the major version. + :vartype minor_versions: list[~azure.mgmt.web.v2021_01_15.models.WebAppMinorVersion] + """ + + _validation = { + 'display_text': {'readonly': True}, + 'value': {'readonly': True}, + 'minor_versions': {'readonly': True}, + } + + _attribute_map = { + 'display_text': {'key': 'displayText', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + 'minor_versions': {'key': 'minorVersions', 'type': '[WebAppMinorVersion]'}, + } + + def __init__( + self, + **kwargs + ): + super(WebAppMajorVersion, self).__init__(**kwargs) + self.display_text = None + self.value = None + self.minor_versions = None + + +class WebAppMinorVersion(msrest.serialization.Model): + """Web App stack minor version. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar display_text: Web App stack minor version (display only). + :vartype display_text: str + :ivar value: Web App stack major version name. + :vartype value: str + :ivar stack_settings: Settings associated with the minor version. + :vartype stack_settings: ~azure.mgmt.web.v2021_01_15.models.WebAppRuntimes + """ + + _validation = { + 'display_text': {'readonly': True}, + 'value': {'readonly': True}, + 'stack_settings': {'readonly': True}, + } + + _attribute_map = { + 'display_text': {'key': 'displayText', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + 'stack_settings': {'key': 'stackSettings', 'type': 'WebAppRuntimes'}, + } + + def __init__( + self, + **kwargs + ): + super(WebAppMinorVersion, self).__init__(**kwargs) + self.display_text = None + self.value = None + self.stack_settings = None + + +class WebAppRuntimes(msrest.serialization.Model): + """Web App stack runtimes. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar linux_runtime_settings: Linux-specific settings associated with the minor version. + :vartype linux_runtime_settings: ~azure.mgmt.web.v2021_01_15.models.WebAppRuntimeSettings + :ivar windows_runtime_settings: Windows-specific settings associated with the minor version. + :vartype windows_runtime_settings: ~azure.mgmt.web.v2021_01_15.models.WebAppRuntimeSettings + :ivar linux_container_settings: Linux-specific settings associated with the Java container + minor version. + :vartype linux_container_settings: + ~azure.mgmt.web.v2021_01_15.models.LinuxJavaContainerSettings + :ivar windows_container_settings: Windows-specific settings associated with the Java container + minor version. + :vartype windows_container_settings: + ~azure.mgmt.web.v2021_01_15.models.WindowsJavaContainerSettings + """ + + _validation = { + 'linux_runtime_settings': {'readonly': True}, + 'windows_runtime_settings': {'readonly': True}, + 'linux_container_settings': {'readonly': True}, + 'windows_container_settings': {'readonly': True}, + } + + _attribute_map = { + 'linux_runtime_settings': {'key': 'linuxRuntimeSettings', 'type': 'WebAppRuntimeSettings'}, + 'windows_runtime_settings': {'key': 'windowsRuntimeSettings', 'type': 'WebAppRuntimeSettings'}, + 'linux_container_settings': {'key': 'linuxContainerSettings', 'type': 'LinuxJavaContainerSettings'}, + 'windows_container_settings': {'key': 'windowsContainerSettings', 'type': 'WindowsJavaContainerSettings'}, + } + + def __init__( + self, + **kwargs + ): + super(WebAppRuntimes, self).__init__(**kwargs) + self.linux_runtime_settings = None + self.windows_runtime_settings = None + self.linux_container_settings = None + self.windows_container_settings = None + + +class WebAppRuntimeSettings(msrest.serialization.Model): + """Web App runtime settings. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar runtime_version: Web App stack minor version (runtime only). + :vartype runtime_version: str + :ivar remote_debugging_supported: :code:`true` if remote debugging is supported + for the stack; otherwise, :code:`false`. + :vartype remote_debugging_supported: bool + :ivar app_insights_settings: Application Insights settings associated with the minor version. + :vartype app_insights_settings: + ~azure.mgmt.web.v2021_01_15.models.AppInsightsWebAppStackSettings + :ivar git_hub_action_settings: GitHub Actions settings associated with the minor version. + :vartype git_hub_action_settings: + ~azure.mgmt.web.v2021_01_15.models.GitHubActionWebAppStackSettings + :ivar is_preview: :code:`true` if the stack is in preview; otherwise, + :code:`false`. + :vartype is_preview: bool + :ivar is_deprecated: :code:`true` if the stack is deprecated; otherwise, + :code:`false`. + :vartype is_deprecated: bool + :ivar is_hidden: :code:`true` if the stack should be hidden; otherwise, + :code:`false`. + :vartype is_hidden: bool + :ivar end_of_life_date: End-of-life date for the minor version. + :vartype end_of_life_date: ~datetime.datetime + :ivar is_auto_update: :code:`true` if the stack version is auto-updated; + otherwise, :code:`false`. + :vartype is_auto_update: bool + :ivar is_early_access: :code:`true` if the minor version is early-access; + otherwise, :code:`false`. + :vartype is_early_access: bool + """ + + _validation = { + 'runtime_version': {'readonly': True}, + 'remote_debugging_supported': {'readonly': True}, + 'app_insights_settings': {'readonly': True}, + 'git_hub_action_settings': {'readonly': True}, + 'is_preview': {'readonly': True}, + 'is_deprecated': {'readonly': True}, + 'is_hidden': {'readonly': True}, + 'end_of_life_date': {'readonly': True}, + 'is_auto_update': {'readonly': True}, + 'is_early_access': {'readonly': True}, + } + + _attribute_map = { + 'runtime_version': {'key': 'runtimeVersion', 'type': 'str'}, + 'remote_debugging_supported': {'key': 'remoteDebuggingSupported', 'type': 'bool'}, + 'app_insights_settings': {'key': 'appInsightsSettings', 'type': 'AppInsightsWebAppStackSettings'}, + 'git_hub_action_settings': {'key': 'gitHubActionSettings', 'type': 'GitHubActionWebAppStackSettings'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + 'is_deprecated': {'key': 'isDeprecated', 'type': 'bool'}, + 'is_hidden': {'key': 'isHidden', 'type': 'bool'}, + 'end_of_life_date': {'key': 'endOfLifeDate', 'type': 'iso-8601'}, + 'is_auto_update': {'key': 'isAutoUpdate', 'type': 'bool'}, + 'is_early_access': {'key': 'isEarlyAccess', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(WebAppRuntimeSettings, self).__init__(**kwargs) + self.runtime_version = None + self.remote_debugging_supported = None + self.app_insights_settings = None + self.git_hub_action_settings = None + self.is_preview = None + self.is_deprecated = None + self.is_hidden = None + self.end_of_life_date = None + self.is_auto_update = None + self.is_early_access = None + + +class WebAppStack(ProxyOnlyResource): + """Web App stack. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar location: Web App stack location. + :vartype location: str + :ivar display_text: Web App stack (display only). + :vartype display_text: str + :ivar value: Web App stack name. + :vartype value: str + :ivar major_versions: List of major versions available. + :vartype major_versions: list[~azure.mgmt.web.v2021_01_15.models.WebAppMajorVersion] + :ivar preferred_os: Web App stack preferred OS. Possible values include: "Windows", "Linux". + :vartype preferred_os: str or ~azure.mgmt.web.v2021_01_15.models.StackPreferredOs + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'readonly': True}, + 'display_text': {'readonly': True}, + 'value': {'readonly': True}, + 'major_versions': {'readonly': True}, + 'preferred_os': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'display_text': {'key': 'properties.displayText', 'type': 'str'}, + 'value': {'key': 'properties.value', 'type': 'str'}, + 'major_versions': {'key': 'properties.majorVersions', 'type': '[WebAppMajorVersion]'}, + 'preferred_os': {'key': 'properties.preferredOs', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(WebAppStack, self).__init__(**kwargs) + self.location = None + self.display_text = None + self.value = None + self.major_versions = None + self.preferred_os = None + + +class WebAppStackCollection(msrest.serialization.Model): + """Collection of Web app Stacks. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.WebAppStack] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[WebAppStack]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(WebAppStackCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class WebJob(ProxyOnlyResource): + """Web Job Information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param run_command: Run command. + :type run_command: str + :param url: Job URL. + :type url: str + :param extra_info_url: Extra Info URL. + :type extra_info_url: str + :param web_job_type: Job type. Possible values include: "Continuous", "Triggered". + :type web_job_type: str or ~azure.mgmt.web.v2021_01_15.models.WebJobType + :param error: Error information. + :type error: str + :param using_sdk: Using SDK?. + :type using_sdk: bool + :param settings: Job settings. + :type settings: dict[str, any] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'run_command': {'key': 'properties.run_command', 'type': 'str'}, + 'url': {'key': 'properties.url', 'type': 'str'}, + 'extra_info_url': {'key': 'properties.extra_info_url', 'type': 'str'}, + 'web_job_type': {'key': 'properties.web_job_type', 'type': 'str'}, + 'error': {'key': 'properties.error', 'type': 'str'}, + 'using_sdk': {'key': 'properties.using_sdk', 'type': 'bool'}, + 'settings': {'key': 'properties.settings', 'type': '{object}'}, + } + + def __init__( + self, + **kwargs + ): + super(WebJob, self).__init__(**kwargs) + self.run_command = kwargs.get('run_command', None) + self.url = kwargs.get('url', None) + self.extra_info_url = kwargs.get('extra_info_url', None) + self.web_job_type = kwargs.get('web_job_type', None) + self.error = kwargs.get('error', None) + self.using_sdk = kwargs.get('using_sdk', None) + self.settings = kwargs.get('settings', None) + + +class WebJobCollection(msrest.serialization.Model): + """Collection of Kudu web job information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.WebJob] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[WebJob]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(WebJobCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class WebSiteInstanceStatus(ProxyOnlyResource): + """WebSiteInstanceStatus. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param state: Possible values include: "READY", "STOPPED", "UNKNOWN". + :type state: str or ~azure.mgmt.web.v2021_01_15.models.SiteRuntimeState + :param status_url: Link to the GetStatusApi in Kudu. + :type status_url: str + :param detector_url: Link to the Diagnose and Solve Portal. + :type detector_url: str + :param console_url: Link to the console to web app instance. + :type console_url: str + :param health_check_url: Link to the console to web app instance. + :type health_check_url: str + :param containers: Dictionary of :code:``. + :type containers: dict[str, ~azure.mgmt.web.v2021_01_15.models.ContainerInfo] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'state': {'key': 'properties.state', 'type': 'str'}, + 'status_url': {'key': 'properties.statusUrl', 'type': 'str'}, + 'detector_url': {'key': 'properties.detectorUrl', 'type': 'str'}, + 'console_url': {'key': 'properties.consoleUrl', 'type': 'str'}, + 'health_check_url': {'key': 'properties.healthCheckUrl', 'type': 'str'}, + 'containers': {'key': 'properties.containers', 'type': '{ContainerInfo}'}, + } + + def __init__( + self, + **kwargs + ): + super(WebSiteInstanceStatus, self).__init__(**kwargs) + self.state = kwargs.get('state', None) + self.status_url = kwargs.get('status_url', None) + self.detector_url = kwargs.get('detector_url', None) + self.console_url = kwargs.get('console_url', None) + self.health_check_url = kwargs.get('health_check_url', None) + self.containers = kwargs.get('containers', None) + + +class WindowsJavaContainerSettings(msrest.serialization.Model): + """Windows Java Container settings. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar java_container: Java container (runtime only). + :vartype java_container: str + :ivar java_container_version: Java container version (runtime only). + :vartype java_container_version: str + :ivar is_preview: :code:`true` if the stack is in preview; otherwise, + :code:`false`. + :vartype is_preview: bool + :ivar is_deprecated: :code:`true` if the stack is deprecated; otherwise, + :code:`false`. + :vartype is_deprecated: bool + :ivar is_hidden: :code:`true` if the stack should be hidden; otherwise, + :code:`false`. + :vartype is_hidden: bool + :ivar end_of_life_date: End-of-life date for the minor version. + :vartype end_of_life_date: ~datetime.datetime + :ivar is_auto_update: :code:`true` if the stack version is auto-updated; + otherwise, :code:`false`. + :vartype is_auto_update: bool + :ivar is_early_access: :code:`true` if the minor version is early-access; + otherwise, :code:`false`. + :vartype is_early_access: bool + """ + + _validation = { + 'java_container': {'readonly': True}, + 'java_container_version': {'readonly': True}, + 'is_preview': {'readonly': True}, + 'is_deprecated': {'readonly': True}, + 'is_hidden': {'readonly': True}, + 'end_of_life_date': {'readonly': True}, + 'is_auto_update': {'readonly': True}, + 'is_early_access': {'readonly': True}, + } + + _attribute_map = { + 'java_container': {'key': 'javaContainer', 'type': 'str'}, + 'java_container_version': {'key': 'javaContainerVersion', 'type': 'str'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + 'is_deprecated': {'key': 'isDeprecated', 'type': 'bool'}, + 'is_hidden': {'key': 'isHidden', 'type': 'bool'}, + 'end_of_life_date': {'key': 'endOfLifeDate', 'type': 'iso-8601'}, + 'is_auto_update': {'key': 'isAutoUpdate', 'type': 'bool'}, + 'is_early_access': {'key': 'isEarlyAccess', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(WindowsJavaContainerSettings, self).__init__(**kwargs) + self.java_container = None + self.java_container_version = None + self.is_preview = None + self.is_deprecated = None + self.is_hidden = None + self.end_of_life_date = None + self.is_auto_update = None + self.is_early_access = None + + +class WorkerPoolCollection(msrest.serialization.Model): + """Collection of worker pools. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[WorkerPoolResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(WorkerPoolCollection, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = None + + +class WorkerPoolResource(ProxyOnlyResource): + """Worker pool of an App Service Environment ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param sku: Description of a SKU for a scalable resource. + :type sku: ~azure.mgmt.web.v2021_01_15.models.SkuDescription + :param worker_size_id: Worker size ID for referencing this worker pool. + :type worker_size_id: int + :param compute_mode: Shared or dedicated app hosting. Possible values include: "Shared", + "Dedicated", "Dynamic". + :type compute_mode: str or ~azure.mgmt.web.v2021_01_15.models.ComputeModeOptions + :param worker_size: VM size of the worker pool instances. + :type worker_size: str + :param worker_count: Number of instances in the worker pool. + :type worker_count: int + :ivar instance_names: Names of all instances in the worker pool (read only). + :vartype instance_names: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'instance_names': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'sku': {'key': 'sku', 'type': 'SkuDescription'}, + 'worker_size_id': {'key': 'properties.workerSizeId', 'type': 'int'}, + 'compute_mode': {'key': 'properties.computeMode', 'type': 'str'}, + 'worker_size': {'key': 'properties.workerSize', 'type': 'str'}, + 'worker_count': {'key': 'properties.workerCount', 'type': 'int'}, + 'instance_names': {'key': 'properties.instanceNames', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(WorkerPoolResource, self).__init__(**kwargs) + self.sku = kwargs.get('sku', None) + self.worker_size_id = kwargs.get('worker_size_id', None) + self.compute_mode = kwargs.get('compute_mode', None) + self.worker_size = kwargs.get('worker_size', None) + self.worker_count = kwargs.get('worker_count', None) + self.instance_names = None diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/models/_models_py3.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/models/_models_py3.py new file mode 100644 index 000000000000..468a4a15fb41 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/models/_models_py3.py @@ -0,0 +1,21513 @@ +# 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. +# -------------------------------------------------------------------------- + +import datetime +from typing import Any, Dict, List, Optional, Union + +from azure.core.exceptions import HttpResponseError +import msrest.serialization + +from ._web_site_management_client_enums import * + + +class AbnormalTimePeriod(msrest.serialization.Model): + """Class representing Abnormal Time Period identified in diagnosis. + + :param start_time: Start time of the downtime. + :type start_time: ~datetime.datetime + :param end_time: End time of the downtime. + :type end_time: ~datetime.datetime + :param events: List of Possible Cause of downtime. + :type events: list[~azure.mgmt.web.v2021_01_15.models.DetectorAbnormalTimePeriod] + :param solutions: List of proposed solutions. + :type solutions: list[~azure.mgmt.web.v2021_01_15.models.Solution] + """ + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'events': {'key': 'events', 'type': '[DetectorAbnormalTimePeriod]'}, + 'solutions': {'key': 'solutions', 'type': '[Solution]'}, + } + + def __init__( + self, + *, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + events: Optional[List["DetectorAbnormalTimePeriod"]] = None, + solutions: Optional[List["Solution"]] = None, + **kwargs + ): + super(AbnormalTimePeriod, self).__init__(**kwargs) + self.start_time = start_time + self.end_time = end_time + self.events = events + self.solutions = solutions + + +class Address(msrest.serialization.Model): + """Address information for domain registration. + + All required parameters must be populated in order to send to Azure. + + :param address1: Required. First line of an Address. + :type address1: str + :param address2: The second line of the Address. Optional. + :type address2: str + :param city: Required. The city for the address. + :type city: str + :param country: Required. The country for the address. + :type country: str + :param postal_code: Required. The postal code for the address. + :type postal_code: str + :param state: Required. The state or province for the address. + :type state: str + """ + + _validation = { + 'address1': {'required': True}, + 'city': {'required': True}, + 'country': {'required': True}, + 'postal_code': {'required': True}, + 'state': {'required': True}, + } + + _attribute_map = { + 'address1': {'key': 'address1', 'type': 'str'}, + 'address2': {'key': 'address2', 'type': 'str'}, + 'city': {'key': 'city', 'type': 'str'}, + 'country': {'key': 'country', 'type': 'str'}, + 'postal_code': {'key': 'postalCode', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'str'}, + } + + def __init__( + self, + *, + address1: str, + city: str, + country: str, + postal_code: str, + state: str, + address2: Optional[str] = None, + **kwargs + ): + super(Address, self).__init__(**kwargs) + self.address1 = address1 + self.address2 = address2 + self.city = city + self.country = country + self.postal_code = postal_code + self.state = state + + +class ProxyOnlyResource(msrest.serialization.Model): + """Azure proxy only resource. This resource is not tracked by Azure Resource Manager. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :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'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(ProxyOnlyResource, self).__init__(**kwargs) + self.id = None + self.name = None + self.kind = kind + self.type = None + + +class AddressResponse(ProxyOnlyResource): + """Describes main public IP address and any extra virtual IPs. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param service_ip_address: Main public virtual IP. + :type service_ip_address: str + :param internal_ip_address: Virtual Network internal IP address of the App Service Environment + if it is in internal load-balancing mode. + :type internal_ip_address: str + :param outbound_ip_addresses: IP addresses appearing on outbound connections. + :type outbound_ip_addresses: list[str] + :param vip_mappings: Additional virtual IPs. + :type vip_mappings: list[~azure.mgmt.web.v2021_01_15.models.VirtualIPMapping] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'service_ip_address': {'key': 'properties.serviceIpAddress', 'type': 'str'}, + 'internal_ip_address': {'key': 'properties.internalIpAddress', 'type': 'str'}, + 'outbound_ip_addresses': {'key': 'properties.outboundIpAddresses', 'type': '[str]'}, + 'vip_mappings': {'key': 'properties.vipMappings', 'type': '[VirtualIPMapping]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + service_ip_address: Optional[str] = None, + internal_ip_address: Optional[str] = None, + outbound_ip_addresses: Optional[List[str]] = None, + vip_mappings: Optional[List["VirtualIPMapping"]] = None, + **kwargs + ): + super(AddressResponse, self).__init__(kind=kind, **kwargs) + self.service_ip_address = service_ip_address + self.internal_ip_address = internal_ip_address + self.outbound_ip_addresses = outbound_ip_addresses + self.vip_mappings = vip_mappings + + +class AllowedAudiencesValidation(ProxyOnlyResource): + """AllowedAudiencesValidation. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param allowed_audiences: + :type allowed_audiences: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'allowed_audiences': {'key': 'properties.allowedAudiences', 'type': '[str]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + allowed_audiences: Optional[List[str]] = None, + **kwargs + ): + super(AllowedAudiencesValidation, self).__init__(kind=kind, **kwargs) + self.allowed_audiences = allowed_audiences + + +class AnalysisData(msrest.serialization.Model): + """Class Representing Detector Evidence used for analysis. + + :param source: Name of the Detector. + :type source: str + :param detector_definition: Detector Definition. + :type detector_definition: ~azure.mgmt.web.v2021_01_15.models.DetectorDefinition + :param metrics: Source Metrics. + :type metrics: list[~azure.mgmt.web.v2021_01_15.models.DiagnosticMetricSet] + :param data: Additional Source Data. + :type data: list[list[~azure.mgmt.web.v2021_01_15.models.NameValuePair]] + :param detector_meta_data: Detector Meta Data. + :type detector_meta_data: ~azure.mgmt.web.v2021_01_15.models.ResponseMetaData + """ + + _attribute_map = { + 'source': {'key': 'source', 'type': 'str'}, + 'detector_definition': {'key': 'detectorDefinition', 'type': 'DetectorDefinition'}, + 'metrics': {'key': 'metrics', 'type': '[DiagnosticMetricSet]'}, + 'data': {'key': 'data', 'type': '[[NameValuePair]]'}, + 'detector_meta_data': {'key': 'detectorMetaData', 'type': 'ResponseMetaData'}, + } + + def __init__( + self, + *, + source: Optional[str] = None, + detector_definition: Optional["DetectorDefinition"] = None, + metrics: Optional[List["DiagnosticMetricSet"]] = None, + data: Optional[List[List["NameValuePair"]]] = None, + detector_meta_data: Optional["ResponseMetaData"] = None, + **kwargs + ): + super(AnalysisData, self).__init__(**kwargs) + self.source = source + self.detector_definition = detector_definition + self.metrics = metrics + self.data = data + self.detector_meta_data = detector_meta_data + + +class AnalysisDefinition(ProxyOnlyResource): + """Definition of Analysis. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar description: Description of the Analysis. + :vartype description: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'description': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(AnalysisDefinition, self).__init__(kind=kind, **kwargs) + self.description = None + + +class ApiDefinitionInfo(msrest.serialization.Model): + """Information about the formal API definition for the app. + + :param url: The URL of the API definition. + :type url: str + """ + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + } + + def __init__( + self, + *, + url: Optional[str] = None, + **kwargs + ): + super(ApiDefinitionInfo, self).__init__(**kwargs) + self.url = url + + +class ApiKVReference(ProxyOnlyResource): + """Description of site key vault references. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param reference: + :type reference: str + :param status: Possible values include: "Initialized", "Resolved", "InvalidSyntax", + "MSINotEnabled", "VaultNotFound", "SecretNotFound", "SecretVersionNotFound", + "AccessToKeyVaultDenied", "OtherReasons", "FetchTimedOut", "UnauthorizedClient". + :type status: str or ~azure.mgmt.web.v2021_01_15.models.ResolveStatus + :param vault_name: + :type vault_name: str + :param secret_name: + :type secret_name: str + :param secret_version: + :type secret_version: str + :param identity_type: Managed service identity. + :type identity_type: ~azure.mgmt.web.v2021_01_15.models.ManagedServiceIdentity + :param details: + :type details: str + :param source: The only acceptable values to pass in are None and "KeyVault". The default + value is None. + :type source: str + :param active_version: + :type active_version: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'reference': {'key': 'properties.reference', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'vault_name': {'key': 'properties.vaultName', 'type': 'str'}, + 'secret_name': {'key': 'properties.secretName', 'type': 'str'}, + 'secret_version': {'key': 'properties.secretVersion', 'type': 'str'}, + 'identity_type': {'key': 'properties.identityType', 'type': 'ManagedServiceIdentity'}, + 'details': {'key': 'properties.details', 'type': 'str'}, + 'source': {'key': 'properties.source', 'type': 'str'}, + 'active_version': {'key': 'properties.activeVersion', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + reference: Optional[str] = None, + status: Optional[Union[str, "ResolveStatus"]] = None, + vault_name: Optional[str] = None, + secret_name: Optional[str] = None, + secret_version: Optional[str] = None, + identity_type: Optional["ManagedServiceIdentity"] = None, + details: Optional[str] = None, + source: Optional[str] = None, + active_version: Optional[str] = None, + **kwargs + ): + super(ApiKVReference, self).__init__(kind=kind, **kwargs) + self.reference = reference + self.status = status + self.vault_name = vault_name + self.secret_name = secret_name + self.secret_version = secret_version + self.identity_type = identity_type + self.details = details + self.source = source + self.active_version = active_version + + +class ApiKVReferenceCollection(msrest.serialization.Model): + """ApiKVReferenceCollection. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.ApiKVReference] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ApiKVReference]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["ApiKVReference"], + **kwargs + ): + super(ApiKVReferenceCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class ApiManagementConfig(msrest.serialization.Model): + """Azure API management (APIM) configuration linked to the app. + + :param id: APIM-Api Identifier. + :type id: str + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__( + self, + *, + id: Optional[str] = None, + **kwargs + ): + super(ApiManagementConfig, self).__init__(**kwargs) + self.id = id + + +class AppInsightsWebAppStackSettings(msrest.serialization.Model): + """App Insights Web App stack settings. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar is_supported: :code:`true` if remote Application Insights is supported for + the stack; otherwise, :code:`false`. + :vartype is_supported: bool + :ivar is_default_off: :code:`true` if Application Insights is disabled by default + for the stack; otherwise, :code:`false`. + :vartype is_default_off: bool + """ + + _validation = { + 'is_supported': {'readonly': True}, + 'is_default_off': {'readonly': True}, + } + + _attribute_map = { + 'is_supported': {'key': 'isSupported', 'type': 'bool'}, + 'is_default_off': {'key': 'isDefaultOff', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(AppInsightsWebAppStackSettings, self).__init__(**kwargs) + self.is_supported = None + self.is_default_off = None + + +class Apple(ProxyOnlyResource): + """The configuration settings of the Apple provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the Apple provider should not be enabled despite + the set registration; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the Apple registration. + :type registration: ~azure.mgmt.web.v2021_01_15.models.AppleRegistration + :param login: The configuration settings of the login flow. + :type login: ~azure.mgmt.web.v2021_01_15.models.LoginScopes + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'AppleRegistration'}, + 'login': {'key': 'properties.login', 'type': 'LoginScopes'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + enabled: Optional[bool] = None, + registration: Optional["AppleRegistration"] = None, + login: Optional["LoginScopes"] = None, + **kwargs + ): + super(Apple, self).__init__(kind=kind, **kwargs) + self.enabled = enabled + self.registration = registration + self.login = login + + +class AppleRegistration(ProxyOnlyResource): + """The configuration settings of the registration for the Apple provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param client_id: The Client ID of the app used for login. + :type client_id: str + :param client_secret_setting_name: The app setting name that contains the client secret. + :type client_secret_setting_name: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'client_id': {'key': 'properties.clientId', 'type': 'str'}, + 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + client_id: Optional[str] = None, + client_secret_setting_name: Optional[str] = None, + **kwargs + ): + super(AppleRegistration, self).__init__(kind=kind, **kwargs) + self.client_id = client_id + self.client_secret_setting_name = client_secret_setting_name + + +class ApplicationLogsConfig(msrest.serialization.Model): + """Application logs configuration. + + :param file_system: Application logs to file system configuration. + :type file_system: ~azure.mgmt.web.v2021_01_15.models.FileSystemApplicationLogsConfig + :param azure_table_storage: Application logs to azure table storage configuration. + :type azure_table_storage: + ~azure.mgmt.web.v2021_01_15.models.AzureTableStorageApplicationLogsConfig + :param azure_blob_storage: Application logs to blob storage configuration. + :type azure_blob_storage: + ~azure.mgmt.web.v2021_01_15.models.AzureBlobStorageApplicationLogsConfig + """ + + _attribute_map = { + 'file_system': {'key': 'fileSystem', 'type': 'FileSystemApplicationLogsConfig'}, + 'azure_table_storage': {'key': 'azureTableStorage', 'type': 'AzureTableStorageApplicationLogsConfig'}, + 'azure_blob_storage': {'key': 'azureBlobStorage', 'type': 'AzureBlobStorageApplicationLogsConfig'}, + } + + def __init__( + self, + *, + file_system: Optional["FileSystemApplicationLogsConfig"] = None, + azure_table_storage: Optional["AzureTableStorageApplicationLogsConfig"] = None, + azure_blob_storage: Optional["AzureBlobStorageApplicationLogsConfig"] = None, + **kwargs + ): + super(ApplicationLogsConfig, self).__init__(**kwargs) + self.file_system = file_system + self.azure_table_storage = azure_table_storage + self.azure_blob_storage = azure_blob_storage + + +class ApplicationStack(msrest.serialization.Model): + """Application stack. + + :param name: Application stack name. + :type name: str + :param display: Application stack display name. + :type display: str + :param dependency: Application stack dependency. + :type dependency: str + :param major_versions: List of major versions available. + :type major_versions: list[~azure.mgmt.web.v2021_01_15.models.StackMajorVersion] + :param frameworks: List of frameworks associated with application stack. + :type frameworks: list[~azure.mgmt.web.v2021_01_15.models.ApplicationStack] + :param is_deprecated: :code:`true` if this is the stack is deprecated; otherwise, + :code:`false`. + :type is_deprecated: list[~azure.mgmt.web.v2021_01_15.models.ApplicationStack] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display': {'key': 'display', 'type': 'str'}, + 'dependency': {'key': 'dependency', 'type': 'str'}, + 'major_versions': {'key': 'majorVersions', 'type': '[StackMajorVersion]'}, + 'frameworks': {'key': 'frameworks', 'type': '[ApplicationStack]'}, + 'is_deprecated': {'key': 'isDeprecated', 'type': '[ApplicationStack]'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + display: Optional[str] = None, + dependency: Optional[str] = None, + major_versions: Optional[List["StackMajorVersion"]] = None, + frameworks: Optional[List["ApplicationStack"]] = None, + is_deprecated: Optional[List["ApplicationStack"]] = None, + **kwargs + ): + super(ApplicationStack, self).__init__(**kwargs) + self.name = name + self.display = display + self.dependency = dependency + self.major_versions = major_versions + self.frameworks = frameworks + self.is_deprecated = is_deprecated + + +class ApplicationStackCollection(msrest.serialization.Model): + """Collection of Application Stacks. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.ApplicationStackResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ApplicationStackResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["ApplicationStackResource"], + **kwargs + ): + super(ApplicationStackCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class ApplicationStackResource(ProxyOnlyResource): + """ARM resource for a ApplicationStack. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param name_properties_name: Application stack name. + :type name_properties_name: str + :param display: Application stack display name. + :type display: str + :param dependency: Application stack dependency. + :type dependency: str + :param major_versions: List of major versions available. + :type major_versions: list[~azure.mgmt.web.v2021_01_15.models.StackMajorVersion] + :param frameworks: List of frameworks associated with application stack. + :type frameworks: list[~azure.mgmt.web.v2021_01_15.models.ApplicationStack] + :param is_deprecated: :code:`true` if this is the stack is deprecated; otherwise, + :code:`false`. + :type is_deprecated: list[~azure.mgmt.web.v2021_01_15.models.ApplicationStack] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'name_properties_name': {'key': 'properties.name', 'type': 'str'}, + 'display': {'key': 'properties.display', 'type': 'str'}, + 'dependency': {'key': 'properties.dependency', 'type': 'str'}, + 'major_versions': {'key': 'properties.majorVersions', 'type': '[StackMajorVersion]'}, + 'frameworks': {'key': 'properties.frameworks', 'type': '[ApplicationStack]'}, + 'is_deprecated': {'key': 'properties.isDeprecated', 'type': '[ApplicationStack]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + name_properties_name: Optional[str] = None, + display: Optional[str] = None, + dependency: Optional[str] = None, + major_versions: Optional[List["StackMajorVersion"]] = None, + frameworks: Optional[List["ApplicationStack"]] = None, + is_deprecated: Optional[List["ApplicationStack"]] = None, + **kwargs + ): + super(ApplicationStackResource, self).__init__(kind=kind, **kwargs) + self.name_properties_name = name_properties_name + self.display = display + self.dependency = dependency + self.major_versions = major_versions + self.frameworks = frameworks + self.is_deprecated = is_deprecated + + +class AppLogsConfiguration(msrest.serialization.Model): + """AppLogsConfiguration. + + :param destination: + :type destination: str + :param log_analytics_configuration: + :type log_analytics_configuration: ~azure.mgmt.web.v2021_01_15.models.LogAnalyticsConfiguration + """ + + _attribute_map = { + 'destination': {'key': 'destination', 'type': 'str'}, + 'log_analytics_configuration': {'key': 'logAnalyticsConfiguration', 'type': 'LogAnalyticsConfiguration'}, + } + + def __init__( + self, + *, + destination: Optional[str] = None, + log_analytics_configuration: Optional["LogAnalyticsConfiguration"] = None, + **kwargs + ): + super(AppLogsConfiguration, self).__init__(**kwargs) + self.destination = destination + self.log_analytics_configuration = log_analytics_configuration + + +class AppRegistration(ProxyOnlyResource): + """The configuration settings of the app registration for providers that have app ids and app secrets. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param app_id: The App ID of the app used for login. + :type app_id: str + :param app_secret_setting_name: The app setting name that contains the app secret. + :type app_secret_setting_name: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'app_id': {'key': 'properties.appId', 'type': 'str'}, + 'app_secret_setting_name': {'key': 'properties.appSecretSettingName', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + app_id: Optional[str] = None, + app_secret_setting_name: Optional[str] = None, + **kwargs + ): + super(AppRegistration, self).__init__(kind=kind, **kwargs) + self.app_id = app_id + self.app_secret_setting_name = app_secret_setting_name + + +class AppServiceCertificate(msrest.serialization.Model): + """Key Vault container for a certificate that is purchased through Azure. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param key_vault_id: Key Vault resource Id. + :type key_vault_id: str + :param key_vault_secret_name: Key Vault secret name. + :type key_vault_secret_name: str + :ivar provisioning_state: Status of the Key Vault secret. Possible values include: + "Initialized", "WaitingOnCertificateOrder", "Succeeded", "CertificateOrderFailed", + "OperationNotPermittedOnKeyVault", "AzureServiceUnauthorizedToAccessKeyVault", + "KeyVaultDoesNotExist", "KeyVaultSecretDoesNotExist", "UnknownError", "ExternalPrivateKey", + "Unknown". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.KeyVaultSecretStatus + """ + + _validation = { + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'key_vault_id': {'key': 'keyVaultId', 'type': 'str'}, + 'key_vault_secret_name': {'key': 'keyVaultSecretName', 'type': 'str'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + } + + def __init__( + self, + *, + key_vault_id: Optional[str] = None, + key_vault_secret_name: Optional[str] = None, + **kwargs + ): + super(AppServiceCertificate, self).__init__(**kwargs) + self.key_vault_id = key_vault_id + self.key_vault_secret_name = key_vault_secret_name + self.provisioning_state = None + + +class AppServiceCertificateCollection(msrest.serialization.Model): + """Collection of certificate order certificates. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[AppServiceCertificateResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["AppServiceCertificateResource"], + **kwargs + ): + super(AppServiceCertificateCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class Resource(msrest.serialization.Model): + """Azure resource. This resource is tracked in Azure Resource Manager. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__( + self, + *, + location: str, + kind: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + **kwargs + ): + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.kind = kind + self.location = location + self.type = None + self.tags = tags + + +class AppServiceCertificateOrder(Resource): + """SSL certificate purchase order. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param certificates: State of the Key Vault secret. + :type certificates: dict[str, ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificate] + :param distinguished_name: Certificate distinguished name. + :type distinguished_name: str + :ivar domain_verification_token: Domain verification token. + :vartype domain_verification_token: str + :param validity_in_years: Duration in years (must be 1). + :type validity_in_years: int + :param key_size: Certificate key size. + :type key_size: int + :param product_type: Certificate product type. Possible values include: + "StandardDomainValidatedSsl", "StandardDomainValidatedWildCardSsl". + :type product_type: str or ~azure.mgmt.web.v2021_01_15.models.CertificateProductType + :param auto_renew: :code:`true` if the certificate should be automatically renewed + when it expires; otherwise, :code:`false`. + :type auto_renew: bool + :ivar provisioning_state: Status of certificate order. Possible values include: "Succeeded", + "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :ivar status: Current order status. Possible values include: "Pendingissuance", "Issued", + "Revoked", "Canceled", "Denied", "Pendingrevocation", "PendingRekey", "Unused", "Expired", + "NotSubmitted". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.CertificateOrderStatus + :ivar signed_certificate: Signed certificate. + :vartype signed_certificate: ~azure.mgmt.web.v2021_01_15.models.CertificateDetails + :param csr: Last CSR that was created for this order. + :type csr: str + :ivar intermediate: Intermediate certificate. + :vartype intermediate: ~azure.mgmt.web.v2021_01_15.models.CertificateDetails + :ivar root: Root certificate. + :vartype root: ~azure.mgmt.web.v2021_01_15.models.CertificateDetails + :ivar serial_number: Current serial number of the certificate. + :vartype serial_number: str + :ivar last_certificate_issuance_time: Certificate last issuance time. + :vartype last_certificate_issuance_time: ~datetime.datetime + :ivar expiration_time: Certificate expiration time. + :vartype expiration_time: ~datetime.datetime + :ivar is_private_key_external: :code:`true` if private key is external; otherwise, + :code:`false`. + :vartype is_private_key_external: bool + :ivar app_service_certificate_not_renewable_reasons: Reasons why App Service Certificate is not + renewable at the current moment. + :vartype app_service_certificate_not_renewable_reasons: list[str or + ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrderPropertiesAppServiceCertificateNotRenewableReasonsItem] + :ivar next_auto_renewal_time_stamp: Time stamp when the certificate would be auto renewed next. + :vartype next_auto_renewal_time_stamp: ~datetime.datetime + :ivar contact: Contact info. + :vartype contact: ~azure.mgmt.web.v2021_01_15.models.CertificateOrderContact + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'domain_verification_token': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'signed_certificate': {'readonly': True}, + 'intermediate': {'readonly': True}, + 'root': {'readonly': True}, + 'serial_number': {'readonly': True}, + 'last_certificate_issuance_time': {'readonly': True}, + 'expiration_time': {'readonly': True}, + 'is_private_key_external': {'readonly': True}, + 'app_service_certificate_not_renewable_reasons': {'readonly': True}, + 'next_auto_renewal_time_stamp': {'readonly': True}, + 'contact': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'certificates': {'key': 'properties.certificates', 'type': '{AppServiceCertificate}'}, + 'distinguished_name': {'key': 'properties.distinguishedName', 'type': 'str'}, + 'domain_verification_token': {'key': 'properties.domainVerificationToken', 'type': 'str'}, + 'validity_in_years': {'key': 'properties.validityInYears', 'type': 'int'}, + 'key_size': {'key': 'properties.keySize', 'type': 'int'}, + 'product_type': {'key': 'properties.productType', 'type': 'str'}, + 'auto_renew': {'key': 'properties.autoRenew', 'type': 'bool'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'signed_certificate': {'key': 'properties.signedCertificate', 'type': 'CertificateDetails'}, + 'csr': {'key': 'properties.csr', 'type': 'str'}, + 'intermediate': {'key': 'properties.intermediate', 'type': 'CertificateDetails'}, + 'root': {'key': 'properties.root', 'type': 'CertificateDetails'}, + 'serial_number': {'key': 'properties.serialNumber', 'type': 'str'}, + 'last_certificate_issuance_time': {'key': 'properties.lastCertificateIssuanceTime', 'type': 'iso-8601'}, + 'expiration_time': {'key': 'properties.expirationTime', 'type': 'iso-8601'}, + 'is_private_key_external': {'key': 'properties.isPrivateKeyExternal', 'type': 'bool'}, + 'app_service_certificate_not_renewable_reasons': {'key': 'properties.appServiceCertificateNotRenewableReasons', 'type': '[str]'}, + 'next_auto_renewal_time_stamp': {'key': 'properties.nextAutoRenewalTimeStamp', 'type': 'iso-8601'}, + 'contact': {'key': 'properties.contact', 'type': 'CertificateOrderContact'}, + } + + def __init__( + self, + *, + location: str, + kind: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + certificates: Optional[Dict[str, "AppServiceCertificate"]] = None, + distinguished_name: Optional[str] = None, + validity_in_years: Optional[int] = 1, + key_size: Optional[int] = 2048, + product_type: Optional[Union[str, "CertificateProductType"]] = None, + auto_renew: Optional[bool] = True, + csr: Optional[str] = None, + **kwargs + ): + super(AppServiceCertificateOrder, self).__init__(kind=kind, location=location, tags=tags, **kwargs) + self.certificates = certificates + self.distinguished_name = distinguished_name + self.domain_verification_token = None + self.validity_in_years = validity_in_years + self.key_size = key_size + self.product_type = product_type + self.auto_renew = auto_renew + self.provisioning_state = None + self.status = None + self.signed_certificate = None + self.csr = csr + self.intermediate = None + self.root = None + self.serial_number = None + self.last_certificate_issuance_time = None + self.expiration_time = None + self.is_private_key_external = None + self.app_service_certificate_not_renewable_reasons = None + self.next_auto_renewal_time_stamp = None + self.contact = None + + +class AppServiceCertificateOrderCollection(msrest.serialization.Model): + """Collection of certificate orders. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrder] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[AppServiceCertificateOrder]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["AppServiceCertificateOrder"], + **kwargs + ): + super(AppServiceCertificateOrderCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class AppServiceCertificateOrderPatchResource(ProxyOnlyResource): + """ARM resource for a certificate order that is purchased through Azure. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param certificates: State of the Key Vault secret. + :type certificates: dict[str, ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificate] + :param distinguished_name: Certificate distinguished name. + :type distinguished_name: str + :ivar domain_verification_token: Domain verification token. + :vartype domain_verification_token: str + :param validity_in_years: Duration in years (must be 1). + :type validity_in_years: int + :param key_size: Certificate key size. + :type key_size: int + :param product_type: Certificate product type. Possible values include: + "StandardDomainValidatedSsl", "StandardDomainValidatedWildCardSsl". + :type product_type: str or ~azure.mgmt.web.v2021_01_15.models.CertificateProductType + :param auto_renew: :code:`true` if the certificate should be automatically renewed + when it expires; otherwise, :code:`false`. + :type auto_renew: bool + :ivar provisioning_state: Status of certificate order. Possible values include: "Succeeded", + "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :ivar status: Current order status. Possible values include: "Pendingissuance", "Issued", + "Revoked", "Canceled", "Denied", "Pendingrevocation", "PendingRekey", "Unused", "Expired", + "NotSubmitted". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.CertificateOrderStatus + :ivar signed_certificate: Signed certificate. + :vartype signed_certificate: ~azure.mgmt.web.v2021_01_15.models.CertificateDetails + :param csr: Last CSR that was created for this order. + :type csr: str + :ivar intermediate: Intermediate certificate. + :vartype intermediate: ~azure.mgmt.web.v2021_01_15.models.CertificateDetails + :ivar root: Root certificate. + :vartype root: ~azure.mgmt.web.v2021_01_15.models.CertificateDetails + :ivar serial_number: Current serial number of the certificate. + :vartype serial_number: str + :ivar last_certificate_issuance_time: Certificate last issuance time. + :vartype last_certificate_issuance_time: ~datetime.datetime + :ivar expiration_time: Certificate expiration time. + :vartype expiration_time: ~datetime.datetime + :ivar is_private_key_external: :code:`true` if private key is external; otherwise, + :code:`false`. + :vartype is_private_key_external: bool + :ivar app_service_certificate_not_renewable_reasons: Reasons why App Service Certificate is not + renewable at the current moment. + :vartype app_service_certificate_not_renewable_reasons: list[str or + ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrderPatchResourcePropertiesAppServiceCertificateNotRenewableReasonsItem] + :ivar next_auto_renewal_time_stamp: Time stamp when the certificate would be auto renewed next. + :vartype next_auto_renewal_time_stamp: ~datetime.datetime + :ivar contact: Contact info. + :vartype contact: ~azure.mgmt.web.v2021_01_15.models.CertificateOrderContact + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'domain_verification_token': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'signed_certificate': {'readonly': True}, + 'intermediate': {'readonly': True}, + 'root': {'readonly': True}, + 'serial_number': {'readonly': True}, + 'last_certificate_issuance_time': {'readonly': True}, + 'expiration_time': {'readonly': True}, + 'is_private_key_external': {'readonly': True}, + 'app_service_certificate_not_renewable_reasons': {'readonly': True}, + 'next_auto_renewal_time_stamp': {'readonly': True}, + 'contact': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'certificates': {'key': 'properties.certificates', 'type': '{AppServiceCertificate}'}, + 'distinguished_name': {'key': 'properties.distinguishedName', 'type': 'str'}, + 'domain_verification_token': {'key': 'properties.domainVerificationToken', 'type': 'str'}, + 'validity_in_years': {'key': 'properties.validityInYears', 'type': 'int'}, + 'key_size': {'key': 'properties.keySize', 'type': 'int'}, + 'product_type': {'key': 'properties.productType', 'type': 'str'}, + 'auto_renew': {'key': 'properties.autoRenew', 'type': 'bool'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'signed_certificate': {'key': 'properties.signedCertificate', 'type': 'CertificateDetails'}, + 'csr': {'key': 'properties.csr', 'type': 'str'}, + 'intermediate': {'key': 'properties.intermediate', 'type': 'CertificateDetails'}, + 'root': {'key': 'properties.root', 'type': 'CertificateDetails'}, + 'serial_number': {'key': 'properties.serialNumber', 'type': 'str'}, + 'last_certificate_issuance_time': {'key': 'properties.lastCertificateIssuanceTime', 'type': 'iso-8601'}, + 'expiration_time': {'key': 'properties.expirationTime', 'type': 'iso-8601'}, + 'is_private_key_external': {'key': 'properties.isPrivateKeyExternal', 'type': 'bool'}, + 'app_service_certificate_not_renewable_reasons': {'key': 'properties.appServiceCertificateNotRenewableReasons', 'type': '[str]'}, + 'next_auto_renewal_time_stamp': {'key': 'properties.nextAutoRenewalTimeStamp', 'type': 'iso-8601'}, + 'contact': {'key': 'properties.contact', 'type': 'CertificateOrderContact'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + certificates: Optional[Dict[str, "AppServiceCertificate"]] = None, + distinguished_name: Optional[str] = None, + validity_in_years: Optional[int] = 1, + key_size: Optional[int] = 2048, + product_type: Optional[Union[str, "CertificateProductType"]] = None, + auto_renew: Optional[bool] = True, + csr: Optional[str] = None, + **kwargs + ): + super(AppServiceCertificateOrderPatchResource, self).__init__(kind=kind, **kwargs) + self.certificates = certificates + self.distinguished_name = distinguished_name + self.domain_verification_token = None + self.validity_in_years = validity_in_years + self.key_size = key_size + self.product_type = product_type + self.auto_renew = auto_renew + self.provisioning_state = None + self.status = None + self.signed_certificate = None + self.csr = csr + self.intermediate = None + self.root = None + self.serial_number = None + self.last_certificate_issuance_time = None + self.expiration_time = None + self.is_private_key_external = None + self.app_service_certificate_not_renewable_reasons = None + self.next_auto_renewal_time_stamp = None + self.contact = None + + +class AppServiceCertificatePatchResource(ProxyOnlyResource): + """Key Vault container ARM resource for a certificate that is purchased through Azure. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param key_vault_id: Key Vault resource Id. + :type key_vault_id: str + :param key_vault_secret_name: Key Vault secret name. + :type key_vault_secret_name: str + :ivar provisioning_state: Status of the Key Vault secret. Possible values include: + "Initialized", "WaitingOnCertificateOrder", "Succeeded", "CertificateOrderFailed", + "OperationNotPermittedOnKeyVault", "AzureServiceUnauthorizedToAccessKeyVault", + "KeyVaultDoesNotExist", "KeyVaultSecretDoesNotExist", "UnknownError", "ExternalPrivateKey", + "Unknown". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.KeyVaultSecretStatus + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'key_vault_id': {'key': 'properties.keyVaultId', 'type': 'str'}, + 'key_vault_secret_name': {'key': 'properties.keyVaultSecretName', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + key_vault_id: Optional[str] = None, + key_vault_secret_name: Optional[str] = None, + **kwargs + ): + super(AppServiceCertificatePatchResource, self).__init__(kind=kind, **kwargs) + self.key_vault_id = key_vault_id + self.key_vault_secret_name = key_vault_secret_name + self.provisioning_state = None + + +class AppServiceCertificateResource(Resource): + """Key Vault container ARM resource for a certificate that is purchased through Azure. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param key_vault_id: Key Vault resource Id. + :type key_vault_id: str + :param key_vault_secret_name: Key Vault secret name. + :type key_vault_secret_name: str + :ivar provisioning_state: Status of the Key Vault secret. Possible values include: + "Initialized", "WaitingOnCertificateOrder", "Succeeded", "CertificateOrderFailed", + "OperationNotPermittedOnKeyVault", "AzureServiceUnauthorizedToAccessKeyVault", + "KeyVaultDoesNotExist", "KeyVaultSecretDoesNotExist", "UnknownError", "ExternalPrivateKey", + "Unknown". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.KeyVaultSecretStatus + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'key_vault_id': {'key': 'properties.keyVaultId', 'type': 'str'}, + 'key_vault_secret_name': {'key': 'properties.keyVaultSecretName', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + } + + def __init__( + self, + *, + location: str, + kind: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + key_vault_id: Optional[str] = None, + key_vault_secret_name: Optional[str] = None, + **kwargs + ): + super(AppServiceCertificateResource, self).__init__(kind=kind, location=location, tags=tags, **kwargs) + self.key_vault_id = key_vault_id + self.key_vault_secret_name = key_vault_secret_name + self.provisioning_state = None + + +class AppServiceEnvironment(msrest.serialization.Model): + """Description of an App Service Environment. + + 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 provisioning_state: Provisioning state of the App Service Environment. Possible values + include: "Succeeded", "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :ivar status: Current status of the App Service Environment. Possible values include: + "Preparing", "Ready", "Scaling", "Deleting". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentStatus + :param virtual_network: Required. Description of the Virtual Network. + :type virtual_network: ~azure.mgmt.web.v2021_01_15.models.VirtualNetworkProfile + :param internal_load_balancing_mode: Specifies which endpoints to serve internally in the + Virtual Network for the App Service Environment. Possible values include: "None", "Web", + "Publishing", "Web, Publishing". + :type internal_load_balancing_mode: str or ~azure.mgmt.web.v2021_01_15.models.LoadBalancingMode + :param multi_size: Front-end VM size, e.g. "Medium", "Large". + :type multi_size: str + :ivar multi_role_count: Number of front-end instances. + :vartype multi_role_count: int + :param ipssl_address_count: Number of IP SSL addresses reserved for the App Service + Environment. + :type ipssl_address_count: int + :param dns_suffix: DNS suffix of the App Service Environment. + :type dns_suffix: str + :ivar maximum_number_of_machines: Maximum number of VMs in the App Service Environment. + :vartype maximum_number_of_machines: int + :param front_end_scale_factor: Scale factor for front-ends. + :type front_end_scale_factor: int + :ivar suspended: :code:`true` if the App Service Environment is suspended; + otherwise, :code:`false`. The environment can be suspended, e.g. when the + management endpoint is no longer available + (most likely because NSG blocked the incoming traffic). + :vartype suspended: bool + :param cluster_settings: Custom settings for changing the behavior of the App Service + Environment. + :type cluster_settings: list[~azure.mgmt.web.v2021_01_15.models.NameValuePair] + :param user_whitelisted_ip_ranges: User added ip ranges to whitelist on ASE db. + :type user_whitelisted_ip_ranges: list[str] + :ivar has_linux_workers: Flag that displays whether an ASE has linux workers or not. + :vartype has_linux_workers: bool + :ivar dedicated_host_count: Dedicated Host Count. + :vartype dedicated_host_count: int + """ + + _validation = { + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'virtual_network': {'required': True}, + 'multi_role_count': {'readonly': True}, + 'maximum_number_of_machines': {'readonly': True}, + 'suspended': {'readonly': True}, + 'has_linux_workers': {'readonly': True}, + 'dedicated_host_count': {'readonly': True}, + } + + _attribute_map = { + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'virtual_network': {'key': 'virtualNetwork', 'type': 'VirtualNetworkProfile'}, + 'internal_load_balancing_mode': {'key': 'internalLoadBalancingMode', 'type': 'str'}, + 'multi_size': {'key': 'multiSize', 'type': 'str'}, + 'multi_role_count': {'key': 'multiRoleCount', 'type': 'int'}, + 'ipssl_address_count': {'key': 'ipsslAddressCount', 'type': 'int'}, + 'dns_suffix': {'key': 'dnsSuffix', 'type': 'str'}, + 'maximum_number_of_machines': {'key': 'maximumNumberOfMachines', 'type': 'int'}, + 'front_end_scale_factor': {'key': 'frontEndScaleFactor', 'type': 'int'}, + 'suspended': {'key': 'suspended', 'type': 'bool'}, + 'cluster_settings': {'key': 'clusterSettings', 'type': '[NameValuePair]'}, + 'user_whitelisted_ip_ranges': {'key': 'userWhitelistedIpRanges', 'type': '[str]'}, + 'has_linux_workers': {'key': 'hasLinuxWorkers', 'type': 'bool'}, + 'dedicated_host_count': {'key': 'dedicatedHostCount', 'type': 'int'}, + } + + def __init__( + self, + *, + virtual_network: "VirtualNetworkProfile", + internal_load_balancing_mode: Optional[Union[str, "LoadBalancingMode"]] = None, + multi_size: Optional[str] = None, + ipssl_address_count: Optional[int] = None, + dns_suffix: Optional[str] = None, + front_end_scale_factor: Optional[int] = None, + cluster_settings: Optional[List["NameValuePair"]] = None, + user_whitelisted_ip_ranges: Optional[List[str]] = None, + **kwargs + ): + super(AppServiceEnvironment, self).__init__(**kwargs) + self.provisioning_state = None + self.status = None + self.virtual_network = virtual_network + self.internal_load_balancing_mode = internal_load_balancing_mode + self.multi_size = multi_size + self.multi_role_count = None + self.ipssl_address_count = ipssl_address_count + self.dns_suffix = dns_suffix + self.maximum_number_of_machines = None + self.front_end_scale_factor = front_end_scale_factor + self.suspended = None + self.cluster_settings = cluster_settings + self.user_whitelisted_ip_ranges = user_whitelisted_ip_ranges + self.has_linux_workers = None + self.dedicated_host_count = None + + +class AppServiceEnvironmentCollection(msrest.serialization.Model): + """Collection of App Service Environments. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironmentResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[AppServiceEnvironmentResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["AppServiceEnvironmentResource"], + **kwargs + ): + super(AppServiceEnvironmentCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class AppServiceEnvironmentPatchResource(ProxyOnlyResource): + """ARM resource for a app service environment. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar provisioning_state: Provisioning state of the App Service Environment. Possible values + include: "Succeeded", "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :ivar status: Current status of the App Service Environment. Possible values include: + "Preparing", "Ready", "Scaling", "Deleting". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentStatus + :param virtual_network: Description of the Virtual Network. + :type virtual_network: ~azure.mgmt.web.v2021_01_15.models.VirtualNetworkProfile + :param internal_load_balancing_mode: Specifies which endpoints to serve internally in the + Virtual Network for the App Service Environment. Possible values include: "None", "Web", + "Publishing", "Web, Publishing". + :type internal_load_balancing_mode: str or ~azure.mgmt.web.v2021_01_15.models.LoadBalancingMode + :param multi_size: Front-end VM size, e.g. "Medium", "Large". + :type multi_size: str + :ivar multi_role_count: Number of front-end instances. + :vartype multi_role_count: int + :param ipssl_address_count: Number of IP SSL addresses reserved for the App Service + Environment. + :type ipssl_address_count: int + :param dns_suffix: DNS suffix of the App Service Environment. + :type dns_suffix: str + :ivar maximum_number_of_machines: Maximum number of VMs in the App Service Environment. + :vartype maximum_number_of_machines: int + :param front_end_scale_factor: Scale factor for front-ends. + :type front_end_scale_factor: int + :ivar suspended: :code:`true` if the App Service Environment is suspended; + otherwise, :code:`false`. The environment can be suspended, e.g. when the + management endpoint is no longer available + (most likely because NSG blocked the incoming traffic). + :vartype suspended: bool + :param cluster_settings: Custom settings for changing the behavior of the App Service + Environment. + :type cluster_settings: list[~azure.mgmt.web.v2021_01_15.models.NameValuePair] + :param user_whitelisted_ip_ranges: User added ip ranges to whitelist on ASE db. + :type user_whitelisted_ip_ranges: list[str] + :ivar has_linux_workers: Flag that displays whether an ASE has linux workers or not. + :vartype has_linux_workers: bool + :ivar dedicated_host_count: Dedicated Host Count. + :vartype dedicated_host_count: int + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'multi_role_count': {'readonly': True}, + 'maximum_number_of_machines': {'readonly': True}, + 'suspended': {'readonly': True}, + 'has_linux_workers': {'readonly': True}, + 'dedicated_host_count': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'virtual_network': {'key': 'properties.virtualNetwork', 'type': 'VirtualNetworkProfile'}, + 'internal_load_balancing_mode': {'key': 'properties.internalLoadBalancingMode', 'type': 'str'}, + 'multi_size': {'key': 'properties.multiSize', 'type': 'str'}, + 'multi_role_count': {'key': 'properties.multiRoleCount', 'type': 'int'}, + 'ipssl_address_count': {'key': 'properties.ipsslAddressCount', 'type': 'int'}, + 'dns_suffix': {'key': 'properties.dnsSuffix', 'type': 'str'}, + 'maximum_number_of_machines': {'key': 'properties.maximumNumberOfMachines', 'type': 'int'}, + 'front_end_scale_factor': {'key': 'properties.frontEndScaleFactor', 'type': 'int'}, + 'suspended': {'key': 'properties.suspended', 'type': 'bool'}, + 'cluster_settings': {'key': 'properties.clusterSettings', 'type': '[NameValuePair]'}, + 'user_whitelisted_ip_ranges': {'key': 'properties.userWhitelistedIpRanges', 'type': '[str]'}, + 'has_linux_workers': {'key': 'properties.hasLinuxWorkers', 'type': 'bool'}, + 'dedicated_host_count': {'key': 'properties.dedicatedHostCount', 'type': 'int'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + virtual_network: Optional["VirtualNetworkProfile"] = None, + internal_load_balancing_mode: Optional[Union[str, "LoadBalancingMode"]] = None, + multi_size: Optional[str] = None, + ipssl_address_count: Optional[int] = None, + dns_suffix: Optional[str] = None, + front_end_scale_factor: Optional[int] = None, + cluster_settings: Optional[List["NameValuePair"]] = None, + user_whitelisted_ip_ranges: Optional[List[str]] = None, + **kwargs + ): + super(AppServiceEnvironmentPatchResource, self).__init__(kind=kind, **kwargs) + self.provisioning_state = None + self.status = None + self.virtual_network = virtual_network + self.internal_load_balancing_mode = internal_load_balancing_mode + self.multi_size = multi_size + self.multi_role_count = None + self.ipssl_address_count = ipssl_address_count + self.dns_suffix = dns_suffix + self.maximum_number_of_machines = None + self.front_end_scale_factor = front_end_scale_factor + self.suspended = None + self.cluster_settings = cluster_settings + self.user_whitelisted_ip_ranges = user_whitelisted_ip_ranges + self.has_linux_workers = None + self.dedicated_host_count = None + + +class AppServiceEnvironmentResource(Resource): + """App Service Environment ARM resource. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :ivar provisioning_state: Provisioning state of the App Service Environment. Possible values + include: "Succeeded", "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :ivar status: Current status of the App Service Environment. Possible values include: + "Preparing", "Ready", "Scaling", "Deleting". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentStatus + :param virtual_network: Description of the Virtual Network. + :type virtual_network: ~azure.mgmt.web.v2021_01_15.models.VirtualNetworkProfile + :param internal_load_balancing_mode: Specifies which endpoints to serve internally in the + Virtual Network for the App Service Environment. Possible values include: "None", "Web", + "Publishing", "Web, Publishing". + :type internal_load_balancing_mode: str or ~azure.mgmt.web.v2021_01_15.models.LoadBalancingMode + :param multi_size: Front-end VM size, e.g. "Medium", "Large". + :type multi_size: str + :ivar multi_role_count: Number of front-end instances. + :vartype multi_role_count: int + :param ipssl_address_count: Number of IP SSL addresses reserved for the App Service + Environment. + :type ipssl_address_count: int + :param dns_suffix: DNS suffix of the App Service Environment. + :type dns_suffix: str + :ivar maximum_number_of_machines: Maximum number of VMs in the App Service Environment. + :vartype maximum_number_of_machines: int + :param front_end_scale_factor: Scale factor for front-ends. + :type front_end_scale_factor: int + :ivar suspended: :code:`true` if the App Service Environment is suspended; + otherwise, :code:`false`. The environment can be suspended, e.g. when the + management endpoint is no longer available + (most likely because NSG blocked the incoming traffic). + :vartype suspended: bool + :param cluster_settings: Custom settings for changing the behavior of the App Service + Environment. + :type cluster_settings: list[~azure.mgmt.web.v2021_01_15.models.NameValuePair] + :param user_whitelisted_ip_ranges: User added ip ranges to whitelist on ASE db. + :type user_whitelisted_ip_ranges: list[str] + :ivar has_linux_workers: Flag that displays whether an ASE has linux workers or not. + :vartype has_linux_workers: bool + :ivar dedicated_host_count: Dedicated Host Count. + :vartype dedicated_host_count: int + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'multi_role_count': {'readonly': True}, + 'maximum_number_of_machines': {'readonly': True}, + 'suspended': {'readonly': True}, + 'has_linux_workers': {'readonly': True}, + 'dedicated_host_count': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'virtual_network': {'key': 'properties.virtualNetwork', 'type': 'VirtualNetworkProfile'}, + 'internal_load_balancing_mode': {'key': 'properties.internalLoadBalancingMode', 'type': 'str'}, + 'multi_size': {'key': 'properties.multiSize', 'type': 'str'}, + 'multi_role_count': {'key': 'properties.multiRoleCount', 'type': 'int'}, + 'ipssl_address_count': {'key': 'properties.ipsslAddressCount', 'type': 'int'}, + 'dns_suffix': {'key': 'properties.dnsSuffix', 'type': 'str'}, + 'maximum_number_of_machines': {'key': 'properties.maximumNumberOfMachines', 'type': 'int'}, + 'front_end_scale_factor': {'key': 'properties.frontEndScaleFactor', 'type': 'int'}, + 'suspended': {'key': 'properties.suspended', 'type': 'bool'}, + 'cluster_settings': {'key': 'properties.clusterSettings', 'type': '[NameValuePair]'}, + 'user_whitelisted_ip_ranges': {'key': 'properties.userWhitelistedIpRanges', 'type': '[str]'}, + 'has_linux_workers': {'key': 'properties.hasLinuxWorkers', 'type': 'bool'}, + 'dedicated_host_count': {'key': 'properties.dedicatedHostCount', 'type': 'int'}, + } + + def __init__( + self, + *, + location: str, + kind: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + virtual_network: Optional["VirtualNetworkProfile"] = None, + internal_load_balancing_mode: Optional[Union[str, "LoadBalancingMode"]] = None, + multi_size: Optional[str] = None, + ipssl_address_count: Optional[int] = None, + dns_suffix: Optional[str] = None, + front_end_scale_factor: Optional[int] = None, + cluster_settings: Optional[List["NameValuePair"]] = None, + user_whitelisted_ip_ranges: Optional[List[str]] = None, + **kwargs + ): + super(AppServiceEnvironmentResource, self).__init__(kind=kind, location=location, tags=tags, **kwargs) + self.provisioning_state = None + self.status = None + self.virtual_network = virtual_network + self.internal_load_balancing_mode = internal_load_balancing_mode + self.multi_size = multi_size + self.multi_role_count = None + self.ipssl_address_count = ipssl_address_count + self.dns_suffix = dns_suffix + self.maximum_number_of_machines = None + self.front_end_scale_factor = front_end_scale_factor + self.suspended = None + self.cluster_settings = cluster_settings + self.user_whitelisted_ip_ranges = user_whitelisted_ip_ranges + self.has_linux_workers = None + self.dedicated_host_count = None + + +class AppserviceGithubToken(msrest.serialization.Model): + """Github access token for Appservice CLI github integration. + + :param access_token: Github access token for Appservice CLI github integration. + :type access_token: str + :param scope: Scope of the github access token. + :type scope: str + :param token_type: token type. + :type token_type: str + :param got_token: True if valid github token received, False otherwise. + :type got_token: bool + :param error_message: Error message if unable to get token. + :type error_message: str + """ + + _attribute_map = { + 'access_token': {'key': 'accessToken', 'type': 'str'}, + 'scope': {'key': 'scope', 'type': 'str'}, + 'token_type': {'key': 'tokenType', 'type': 'str'}, + 'got_token': {'key': 'gotToken', 'type': 'bool'}, + 'error_message': {'key': 'errorMessage', 'type': 'str'}, + } + + def __init__( + self, + *, + access_token: Optional[str] = None, + scope: Optional[str] = None, + token_type: Optional[str] = None, + got_token: Optional[bool] = None, + error_message: Optional[str] = None, + **kwargs + ): + super(AppserviceGithubToken, self).__init__(**kwargs) + self.access_token = access_token + self.scope = scope + self.token_type = token_type + self.got_token = got_token + self.error_message = error_message + + +class AppserviceGithubTokenRequest(msrest.serialization.Model): + """Appservice Github token request content. + + All required parameters must be populated in order to send to Azure. + + :param code: Required. Code string to exchange for Github Access token. + :type code: str + :param state: Required. State string used for verification. + :type state: str + """ + + _validation = { + 'code': {'required': True}, + 'state': {'required': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'str'}, + } + + def __init__( + self, + *, + code: str, + state: str, + **kwargs + ): + super(AppserviceGithubTokenRequest, self).__init__(**kwargs) + self.code = code + self.state = state + + +class AppServicePlan(Resource): + """App Service plan. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param sku: Description of a SKU for a scalable resource. + :type sku: ~azure.mgmt.web.v2021_01_15.models.SkuDescription + :param extended_location: Extended Location. + :type extended_location: ~azure.mgmt.web.v2021_01_15.models.ExtendedLocation + :param worker_tier_name: Target worker tier assigned to the App Service plan. + :type worker_tier_name: str + :ivar status: App Service plan status. Possible values include: "Ready", "Pending", "Creating". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.StatusOptions + :ivar subscription: App Service plan subscription. + :vartype subscription: str + :param hosting_environment_profile: Specification for the App Service Environment to use for + the App Service plan. + :type hosting_environment_profile: ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentProfile + :ivar maximum_number_of_workers: Maximum number of instances that can be assigned to this App + Service plan. + :vartype maximum_number_of_workers: int + :ivar geo_region: Geographical location for the App Service plan. + :vartype geo_region: str + :param per_site_scaling: If :code:`true`, apps assigned to this App Service plan + can be scaled independently. + If :code:`false`, apps assigned to this App Service plan will scale to all + instances of the plan. + :type per_site_scaling: bool + :param elastic_scale_enabled: ServerFarm supports ElasticScale. Apps in this plan will scale as + if the ServerFarm was ElasticPremium sku. + :type elastic_scale_enabled: bool + :param maximum_elastic_worker_count: Maximum number of total workers allowed for this + ElasticScaleEnabled App Service Plan. + :type maximum_elastic_worker_count: int + :ivar number_of_sites: Number of apps assigned to this App Service plan. + :vartype number_of_sites: int + :param is_spot: If :code:`true`, this App Service Plan owns spot instances. + :type is_spot: bool + :param spot_expiration_time: The time when the server farm expires. Valid only if it is a spot + server farm. + :type spot_expiration_time: ~datetime.datetime + :param free_offer_expiration_time: The time when the server farm free offer expires. + :type free_offer_expiration_time: ~datetime.datetime + :ivar resource_group: Resource group of the App Service plan. + :vartype resource_group: str + :param reserved: If Linux app service plan :code:`true`, + :code:`false` otherwise. + :type reserved: bool + :param is_xenon: Obsolete: If Hyper-V container app service plan :code:`true`, + :code:`false` otherwise. + :type is_xenon: bool + :param hyper_v: If Hyper-V container app service plan :code:`true`, + :code:`false` otherwise. + :type hyper_v: bool + :param target_worker_count: Scaling worker count. + :type target_worker_count: int + :param target_worker_size_id: Scaling worker size ID. + :type target_worker_size_id: int + :ivar provisioning_state: Provisioning state of the App Service Plan. Possible values include: + "Succeeded", "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :param kube_environment_profile: Specification for the Kubernetes Environment to use for the + App Service plan. + :type kube_environment_profile: ~azure.mgmt.web.v2021_01_15.models.KubeEnvironmentProfile + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'status': {'readonly': True}, + 'subscription': {'readonly': True}, + 'maximum_number_of_workers': {'readonly': True}, + 'geo_region': {'readonly': True}, + 'number_of_sites': {'readonly': True}, + 'resource_group': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'sku': {'key': 'sku', 'type': 'SkuDescription'}, + 'extended_location': {'key': 'extendedLocation', 'type': 'ExtendedLocation'}, + 'worker_tier_name': {'key': 'properties.workerTierName', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'subscription': {'key': 'properties.subscription', 'type': 'str'}, + 'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'}, + 'maximum_number_of_workers': {'key': 'properties.maximumNumberOfWorkers', 'type': 'int'}, + 'geo_region': {'key': 'properties.geoRegion', 'type': 'str'}, + 'per_site_scaling': {'key': 'properties.perSiteScaling', 'type': 'bool'}, + 'elastic_scale_enabled': {'key': 'properties.elasticScaleEnabled', 'type': 'bool'}, + 'maximum_elastic_worker_count': {'key': 'properties.maximumElasticWorkerCount', 'type': 'int'}, + 'number_of_sites': {'key': 'properties.numberOfSites', 'type': 'int'}, + 'is_spot': {'key': 'properties.isSpot', 'type': 'bool'}, + 'spot_expiration_time': {'key': 'properties.spotExpirationTime', 'type': 'iso-8601'}, + 'free_offer_expiration_time': {'key': 'properties.freeOfferExpirationTime', 'type': 'iso-8601'}, + 'resource_group': {'key': 'properties.resourceGroup', 'type': 'str'}, + 'reserved': {'key': 'properties.reserved', 'type': 'bool'}, + 'is_xenon': {'key': 'properties.isXenon', 'type': 'bool'}, + 'hyper_v': {'key': 'properties.hyperV', 'type': 'bool'}, + 'target_worker_count': {'key': 'properties.targetWorkerCount', 'type': 'int'}, + 'target_worker_size_id': {'key': 'properties.targetWorkerSizeId', 'type': 'int'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'kube_environment_profile': {'key': 'properties.kubeEnvironmentProfile', 'type': 'KubeEnvironmentProfile'}, + } + + def __init__( + self, + *, + location: str, + kind: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + sku: Optional["SkuDescription"] = None, + extended_location: Optional["ExtendedLocation"] = None, + worker_tier_name: Optional[str] = None, + hosting_environment_profile: Optional["HostingEnvironmentProfile"] = None, + per_site_scaling: Optional[bool] = False, + elastic_scale_enabled: Optional[bool] = None, + maximum_elastic_worker_count: Optional[int] = None, + is_spot: Optional[bool] = None, + spot_expiration_time: Optional[datetime.datetime] = None, + free_offer_expiration_time: Optional[datetime.datetime] = None, + reserved: Optional[bool] = False, + is_xenon: Optional[bool] = False, + hyper_v: Optional[bool] = False, + target_worker_count: Optional[int] = None, + target_worker_size_id: Optional[int] = None, + kube_environment_profile: Optional["KubeEnvironmentProfile"] = None, + **kwargs + ): + super(AppServicePlan, self).__init__(kind=kind, location=location, tags=tags, **kwargs) + self.sku = sku + self.extended_location = extended_location + self.worker_tier_name = worker_tier_name + self.status = None + self.subscription = None + self.hosting_environment_profile = hosting_environment_profile + self.maximum_number_of_workers = None + self.geo_region = None + self.per_site_scaling = per_site_scaling + self.elastic_scale_enabled = elastic_scale_enabled + self.maximum_elastic_worker_count = maximum_elastic_worker_count + self.number_of_sites = None + self.is_spot = is_spot + self.spot_expiration_time = spot_expiration_time + self.free_offer_expiration_time = free_offer_expiration_time + self.resource_group = None + self.reserved = reserved + self.is_xenon = is_xenon + self.hyper_v = hyper_v + self.target_worker_count = target_worker_count + self.target_worker_size_id = target_worker_size_id + self.provisioning_state = None + self.kube_environment_profile = kube_environment_profile + + +class AppServicePlanCollection(msrest.serialization.Model): + """Collection of App Service plans. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.AppServicePlan] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[AppServicePlan]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["AppServicePlan"], + **kwargs + ): + super(AppServicePlanCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class AppServicePlanPatchResource(ProxyOnlyResource): + """ARM resource for a app service plan. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param worker_tier_name: Target worker tier assigned to the App Service plan. + :type worker_tier_name: str + :ivar status: App Service plan status. Possible values include: "Ready", "Pending", "Creating". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.StatusOptions + :ivar subscription: App Service plan subscription. + :vartype subscription: str + :param hosting_environment_profile: Specification for the App Service Environment to use for + the App Service plan. + :type hosting_environment_profile: ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentProfile + :ivar maximum_number_of_workers: Maximum number of instances that can be assigned to this App + Service plan. + :vartype maximum_number_of_workers: int + :ivar geo_region: Geographical location for the App Service plan. + :vartype geo_region: str + :param per_site_scaling: If :code:`true`, apps assigned to this App Service plan + can be scaled independently. + If :code:`false`, apps assigned to this App Service plan will scale to all + instances of the plan. + :type per_site_scaling: bool + :param elastic_scale_enabled: ServerFarm supports ElasticScale. Apps in this plan will scale as + if the ServerFarm was ElasticPremium sku. + :type elastic_scale_enabled: bool + :param maximum_elastic_worker_count: Maximum number of total workers allowed for this + ElasticScaleEnabled App Service Plan. + :type maximum_elastic_worker_count: int + :ivar number_of_sites: Number of apps assigned to this App Service plan. + :vartype number_of_sites: int + :param is_spot: If :code:`true`, this App Service Plan owns spot instances. + :type is_spot: bool + :param spot_expiration_time: The time when the server farm expires. Valid only if it is a spot + server farm. + :type spot_expiration_time: ~datetime.datetime + :param free_offer_expiration_time: The time when the server farm free offer expires. + :type free_offer_expiration_time: ~datetime.datetime + :ivar resource_group: Resource group of the App Service plan. + :vartype resource_group: str + :param reserved: If Linux app service plan :code:`true`, + :code:`false` otherwise. + :type reserved: bool + :param is_xenon: Obsolete: If Hyper-V container app service plan :code:`true`, + :code:`false` otherwise. + :type is_xenon: bool + :param hyper_v: If Hyper-V container app service plan :code:`true`, + :code:`false` otherwise. + :type hyper_v: bool + :param target_worker_count: Scaling worker count. + :type target_worker_count: int + :param target_worker_size_id: Scaling worker size ID. + :type target_worker_size_id: int + :ivar provisioning_state: Provisioning state of the App Service Plan. Possible values include: + "Succeeded", "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :param kube_environment_profile: Specification for the Kubernetes Environment to use for the + App Service plan. + :type kube_environment_profile: ~azure.mgmt.web.v2021_01_15.models.KubeEnvironmentProfile + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'status': {'readonly': True}, + 'subscription': {'readonly': True}, + 'maximum_number_of_workers': {'readonly': True}, + 'geo_region': {'readonly': True}, + 'number_of_sites': {'readonly': True}, + 'resource_group': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'worker_tier_name': {'key': 'properties.workerTierName', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'subscription': {'key': 'properties.subscription', 'type': 'str'}, + 'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'}, + 'maximum_number_of_workers': {'key': 'properties.maximumNumberOfWorkers', 'type': 'int'}, + 'geo_region': {'key': 'properties.geoRegion', 'type': 'str'}, + 'per_site_scaling': {'key': 'properties.perSiteScaling', 'type': 'bool'}, + 'elastic_scale_enabled': {'key': 'properties.elasticScaleEnabled', 'type': 'bool'}, + 'maximum_elastic_worker_count': {'key': 'properties.maximumElasticWorkerCount', 'type': 'int'}, + 'number_of_sites': {'key': 'properties.numberOfSites', 'type': 'int'}, + 'is_spot': {'key': 'properties.isSpot', 'type': 'bool'}, + 'spot_expiration_time': {'key': 'properties.spotExpirationTime', 'type': 'iso-8601'}, + 'free_offer_expiration_time': {'key': 'properties.freeOfferExpirationTime', 'type': 'iso-8601'}, + 'resource_group': {'key': 'properties.resourceGroup', 'type': 'str'}, + 'reserved': {'key': 'properties.reserved', 'type': 'bool'}, + 'is_xenon': {'key': 'properties.isXenon', 'type': 'bool'}, + 'hyper_v': {'key': 'properties.hyperV', 'type': 'bool'}, + 'target_worker_count': {'key': 'properties.targetWorkerCount', 'type': 'int'}, + 'target_worker_size_id': {'key': 'properties.targetWorkerSizeId', 'type': 'int'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'kube_environment_profile': {'key': 'properties.kubeEnvironmentProfile', 'type': 'KubeEnvironmentProfile'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + worker_tier_name: Optional[str] = None, + hosting_environment_profile: Optional["HostingEnvironmentProfile"] = None, + per_site_scaling: Optional[bool] = False, + elastic_scale_enabled: Optional[bool] = None, + maximum_elastic_worker_count: Optional[int] = None, + is_spot: Optional[bool] = None, + spot_expiration_time: Optional[datetime.datetime] = None, + free_offer_expiration_time: Optional[datetime.datetime] = None, + reserved: Optional[bool] = False, + is_xenon: Optional[bool] = False, + hyper_v: Optional[bool] = False, + target_worker_count: Optional[int] = None, + target_worker_size_id: Optional[int] = None, + kube_environment_profile: Optional["KubeEnvironmentProfile"] = None, + **kwargs + ): + super(AppServicePlanPatchResource, self).__init__(kind=kind, **kwargs) + self.worker_tier_name = worker_tier_name + self.status = None + self.subscription = None + self.hosting_environment_profile = hosting_environment_profile + self.maximum_number_of_workers = None + self.geo_region = None + self.per_site_scaling = per_site_scaling + self.elastic_scale_enabled = elastic_scale_enabled + self.maximum_elastic_worker_count = maximum_elastic_worker_count + self.number_of_sites = None + self.is_spot = is_spot + self.spot_expiration_time = spot_expiration_time + self.free_offer_expiration_time = free_offer_expiration_time + self.resource_group = None + self.reserved = reserved + self.is_xenon = is_xenon + self.hyper_v = hyper_v + self.target_worker_count = target_worker_count + self.target_worker_size_id = target_worker_size_id + self.provisioning_state = None + self.kube_environment_profile = kube_environment_profile + + +class ArcConfiguration(msrest.serialization.Model): + """ArcConfiguration. + + :param artifacts_storage_type: Possible values include: "LocalNode", "NetworkFileSystem". + :type artifacts_storage_type: str or ~azure.mgmt.web.v2021_01_15.models.StorageType + :param artifact_storage_class_name: + :type artifact_storage_class_name: str + :param artifact_storage_mount_path: + :type artifact_storage_mount_path: str + :param artifact_storage_node_name: + :type artifact_storage_node_name: str + :param artifact_storage_access_mode: + :type artifact_storage_access_mode: str + :param front_end_service_configuration: + :type front_end_service_configuration: ~azure.mgmt.web.v2021_01_15.models.FrontEndConfiguration + :param kube_config: + :type kube_config: str + """ + + _attribute_map = { + 'artifacts_storage_type': {'key': 'artifactsStorageType', 'type': 'str'}, + 'artifact_storage_class_name': {'key': 'artifactStorageClassName', 'type': 'str'}, + 'artifact_storage_mount_path': {'key': 'artifactStorageMountPath', 'type': 'str'}, + 'artifact_storage_node_name': {'key': 'artifactStorageNodeName', 'type': 'str'}, + 'artifact_storage_access_mode': {'key': 'artifactStorageAccessMode', 'type': 'str'}, + 'front_end_service_configuration': {'key': 'frontEndServiceConfiguration', 'type': 'FrontEndConfiguration'}, + 'kube_config': {'key': 'kubeConfig', 'type': 'str'}, + } + + def __init__( + self, + *, + artifacts_storage_type: Optional[Union[str, "StorageType"]] = None, + artifact_storage_class_name: Optional[str] = None, + artifact_storage_mount_path: Optional[str] = None, + artifact_storage_node_name: Optional[str] = None, + artifact_storage_access_mode: Optional[str] = None, + front_end_service_configuration: Optional["FrontEndConfiguration"] = None, + kube_config: Optional[str] = None, + **kwargs + ): + super(ArcConfiguration, self).__init__(**kwargs) + self.artifacts_storage_type = artifacts_storage_type + self.artifact_storage_class_name = artifact_storage_class_name + self.artifact_storage_mount_path = artifact_storage_mount_path + self.artifact_storage_node_name = artifact_storage_node_name + self.artifact_storage_access_mode = artifact_storage_access_mode + self.front_end_service_configuration = front_end_service_configuration + self.kube_config = kube_config + + +class ArmIdWrapper(msrest.serialization.Model): + """A wrapper for an ARM resource id. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: + :vartype id: str + """ + + _validation = { + 'id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ArmIdWrapper, self).__init__(**kwargs) + self.id = None + + +class ArmPlan(msrest.serialization.Model): + """The plan object in Azure Resource Manager, represents a marketplace plan. + + :param name: The name. + :type name: str + :param publisher: The publisher. + :type publisher: str + :param product: The product. + :type product: str + :param promotion_code: The promotion code. + :type promotion_code: str + :param version: Version of product. + :type version: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'publisher': {'key': 'publisher', 'type': 'str'}, + 'product': {'key': 'product', 'type': 'str'}, + 'promotion_code': {'key': 'promotionCode', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + publisher: Optional[str] = None, + product: Optional[str] = None, + promotion_code: Optional[str] = None, + version: Optional[str] = None, + **kwargs + ): + super(ArmPlan, self).__init__(**kwargs) + self.name = name + self.publisher = publisher + self.product = product + self.promotion_code = promotion_code + self.version = version + + +class AseV3NetworkingConfiguration(ProxyOnlyResource): + """Full view of networking configuration for an ASE. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar windows_outbound_ip_addresses: + :vartype windows_outbound_ip_addresses: list[str] + :ivar linux_outbound_ip_addresses: + :vartype linux_outbound_ip_addresses: list[str] + :param allow_new_private_endpoint_connections: Property to enable and disable new private + endpoint connection creation on ASE. + :type allow_new_private_endpoint_connections: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'windows_outbound_ip_addresses': {'readonly': True}, + 'linux_outbound_ip_addresses': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'windows_outbound_ip_addresses': {'key': 'properties.windowsOutboundIpAddresses', 'type': '[str]'}, + 'linux_outbound_ip_addresses': {'key': 'properties.linuxOutboundIpAddresses', 'type': '[str]'}, + 'allow_new_private_endpoint_connections': {'key': 'properties.allowNewPrivateEndpointConnections', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + allow_new_private_endpoint_connections: Optional[bool] = None, + **kwargs + ): + super(AseV3NetworkingConfiguration, self).__init__(kind=kind, **kwargs) + self.windows_outbound_ip_addresses = None + self.linux_outbound_ip_addresses = None + self.allow_new_private_endpoint_connections = allow_new_private_endpoint_connections + + +class AuthPlatform(ProxyOnlyResource): + """The configuration settings of the platform of App Service Authentication/Authorization. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`true` if the Authentication / Authorization feature is + enabled for the current app; otherwise, :code:`false`. + :type enabled: bool + :param runtime_version: The RuntimeVersion of the Authentication / Authorization feature in use + for the current app. + The setting in this value can control the behavior of certain features in the Authentication / + Authorization module. + :type runtime_version: str + :param config_file_path: The path of the config file containing auth settings if they come from + a file. + If the path is relative, base will the site's root directory. + :type config_file_path: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'runtime_version': {'key': 'properties.runtimeVersion', 'type': 'str'}, + 'config_file_path': {'key': 'properties.configFilePath', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + enabled: Optional[bool] = None, + runtime_version: Optional[str] = None, + config_file_path: Optional[str] = None, + **kwargs + ): + super(AuthPlatform, self).__init__(kind=kind, **kwargs) + self.enabled = enabled + self.runtime_version = runtime_version + self.config_file_path = config_file_path + + +class AutoHealActions(msrest.serialization.Model): + """Actions which to take by the auto-heal module when a rule is triggered. + + :param action_type: Predefined action to be taken. Possible values include: "Recycle", + "LogEvent", "CustomAction". + :type action_type: str or ~azure.mgmt.web.v2021_01_15.models.AutoHealActionType + :param custom_action: Custom action to be taken. + :type custom_action: ~azure.mgmt.web.v2021_01_15.models.AutoHealCustomAction + :param min_process_execution_time: Minimum time the process must execute + before taking the action. + :type min_process_execution_time: str + """ + + _attribute_map = { + 'action_type': {'key': 'actionType', 'type': 'str'}, + 'custom_action': {'key': 'customAction', 'type': 'AutoHealCustomAction'}, + 'min_process_execution_time': {'key': 'minProcessExecutionTime', 'type': 'str'}, + } + + def __init__( + self, + *, + action_type: Optional[Union[str, "AutoHealActionType"]] = None, + custom_action: Optional["AutoHealCustomAction"] = None, + min_process_execution_time: Optional[str] = None, + **kwargs + ): + super(AutoHealActions, self).__init__(**kwargs) + self.action_type = action_type + self.custom_action = custom_action + self.min_process_execution_time = min_process_execution_time + + +class AutoHealCustomAction(msrest.serialization.Model): + """Custom action to be executed +when an auto heal rule is triggered. + + :param exe: Executable to be run. + :type exe: str + :param parameters: Parameters for the executable. + :type parameters: str + """ + + _attribute_map = { + 'exe': {'key': 'exe', 'type': 'str'}, + 'parameters': {'key': 'parameters', 'type': 'str'}, + } + + def __init__( + self, + *, + exe: Optional[str] = None, + parameters: Optional[str] = None, + **kwargs + ): + super(AutoHealCustomAction, self).__init__(**kwargs) + self.exe = exe + self.parameters = parameters + + +class AutoHealRules(msrest.serialization.Model): + """Rules that can be defined for auto-heal. + + :param triggers: Conditions that describe when to execute the auto-heal actions. + :type triggers: ~azure.mgmt.web.v2021_01_15.models.AutoHealTriggers + :param actions: Actions to be executed when a rule is triggered. + :type actions: ~azure.mgmt.web.v2021_01_15.models.AutoHealActions + """ + + _attribute_map = { + 'triggers': {'key': 'triggers', 'type': 'AutoHealTriggers'}, + 'actions': {'key': 'actions', 'type': 'AutoHealActions'}, + } + + def __init__( + self, + *, + triggers: Optional["AutoHealTriggers"] = None, + actions: Optional["AutoHealActions"] = None, + **kwargs + ): + super(AutoHealRules, self).__init__(**kwargs) + self.triggers = triggers + self.actions = actions + + +class AutoHealTriggers(msrest.serialization.Model): + """Triggers for auto-heal. + + :param requests: A rule based on total requests. + :type requests: ~azure.mgmt.web.v2021_01_15.models.RequestsBasedTrigger + :param private_bytes_in_kb: A rule based on private bytes. + :type private_bytes_in_kb: int + :param status_codes: A rule based on status codes. + :type status_codes: list[~azure.mgmt.web.v2021_01_15.models.StatusCodesBasedTrigger] + :param slow_requests: A rule based on request execution time. + :type slow_requests: ~azure.mgmt.web.v2021_01_15.models.SlowRequestsBasedTrigger + :param slow_requests_with_path: A rule based on multiple Slow Requests Rule with path. + :type slow_requests_with_path: + list[~azure.mgmt.web.v2021_01_15.models.SlowRequestsBasedTrigger] + :param status_codes_range: A rule based on status codes ranges. + :type status_codes_range: list[~azure.mgmt.web.v2021_01_15.models.StatusCodesRangeBasedTrigger] + """ + + _attribute_map = { + 'requests': {'key': 'requests', 'type': 'RequestsBasedTrigger'}, + 'private_bytes_in_kb': {'key': 'privateBytesInKB', 'type': 'int'}, + 'status_codes': {'key': 'statusCodes', 'type': '[StatusCodesBasedTrigger]'}, + 'slow_requests': {'key': 'slowRequests', 'type': 'SlowRequestsBasedTrigger'}, + 'slow_requests_with_path': {'key': 'slowRequestsWithPath', 'type': '[SlowRequestsBasedTrigger]'}, + 'status_codes_range': {'key': 'statusCodesRange', 'type': '[StatusCodesRangeBasedTrigger]'}, + } + + def __init__( + self, + *, + requests: Optional["RequestsBasedTrigger"] = None, + private_bytes_in_kb: Optional[int] = None, + status_codes: Optional[List["StatusCodesBasedTrigger"]] = None, + slow_requests: Optional["SlowRequestsBasedTrigger"] = None, + slow_requests_with_path: Optional[List["SlowRequestsBasedTrigger"]] = None, + status_codes_range: Optional[List["StatusCodesRangeBasedTrigger"]] = None, + **kwargs + ): + super(AutoHealTriggers, self).__init__(**kwargs) + self.requests = requests + self.private_bytes_in_kb = private_bytes_in_kb + self.status_codes = status_codes + self.slow_requests = slow_requests + self.slow_requests_with_path = slow_requests_with_path + self.status_codes_range = status_codes_range + + +class AzureActiveDirectory(ProxyOnlyResource): + """The configuration settings of the Azure Active directory provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the Azure Active Directory provider should not be + enabled despite the set registration; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the Azure Active Directory app registration. + :type registration: ~azure.mgmt.web.v2021_01_15.models.AzureActiveDirectoryRegistration + :param login: The configuration settings of the Azure Active Directory login flow. + :type login: ~azure.mgmt.web.v2021_01_15.models.AzureActiveDirectoryLogin + :param validation: The configuration settings of the Azure Active Directory token validation + flow. + :type validation: ~azure.mgmt.web.v2021_01_15.models.AzureActiveDirectoryValidation + :param is_auto_provisioned: Gets a value indicating whether the Azure AD configuration was + auto-provisioned using 1st party tooling. + This is an internal flag primarily intended to support the Azure Management Portal. Users + should not + read or write to this property. + :type is_auto_provisioned: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'AzureActiveDirectoryRegistration'}, + 'login': {'key': 'properties.login', 'type': 'AzureActiveDirectoryLogin'}, + 'validation': {'key': 'properties.validation', 'type': 'AzureActiveDirectoryValidation'}, + 'is_auto_provisioned': {'key': 'properties.isAutoProvisioned', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + enabled: Optional[bool] = None, + registration: Optional["AzureActiveDirectoryRegistration"] = None, + login: Optional["AzureActiveDirectoryLogin"] = None, + validation: Optional["AzureActiveDirectoryValidation"] = None, + is_auto_provisioned: Optional[bool] = None, + **kwargs + ): + super(AzureActiveDirectory, self).__init__(kind=kind, **kwargs) + self.enabled = enabled + self.registration = registration + self.login = login + self.validation = validation + self.is_auto_provisioned = is_auto_provisioned + + +class AzureActiveDirectoryLogin(ProxyOnlyResource): + """The configuration settings of the Azure Active Directory login flow. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param disable_www_authenticate: + :type disable_www_authenticate: bool + :param login_parameters: Login parameters to send to the OpenID Connect authorization endpoint + when + a user logs in. Each parameter must be in the form "key=value". + :type login_parameters: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'disable_www_authenticate': {'key': 'properties.disableWWWAuthenticate', 'type': 'bool'}, + 'login_parameters': {'key': 'properties.loginParameters', 'type': '[str]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + disable_www_authenticate: Optional[bool] = None, + login_parameters: Optional[List[str]] = None, + **kwargs + ): + super(AzureActiveDirectoryLogin, self).__init__(kind=kind, **kwargs) + self.disable_www_authenticate = disable_www_authenticate + self.login_parameters = login_parameters + + +class AzureActiveDirectoryRegistration(ProxyOnlyResource): + """The configuration settings of the Azure Active Directory app registration. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param open_id_issuer: The OpenID Connect Issuer URI that represents the entity which issues + access tokens for this application. + When using Azure Active Directory, this value is the URI of the directory tenant, e.g. + https://login.microsoftonline.com/v2.0/{tenant-guid}/. + This URI is a case-sensitive identifier for the token issuer. + More information on OpenID Connect Discovery: + http://openid.net/specs/openid-connect-discovery-1_0.html. + :type open_id_issuer: str + :param client_id: The Client ID of this relying party application, known as the client_id. + This setting is required for enabling OpenID Connection authentication with Azure Active + Directory or + other 3rd party OpenID Connect providers. + More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html. + :type client_id: str + :param client_secret_setting_name: The app setting name that contains the client secret of the + relying party application. + :type client_secret_setting_name: str + :param client_secret_certificate_thumbprint: An alternative to the client secret, that is the + thumbprint of a certificate used for signing purposes. This property acts as + a replacement for the Client Secret. It is also optional. + :type client_secret_certificate_thumbprint: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'open_id_issuer': {'key': 'properties.openIdIssuer', 'type': 'str'}, + 'client_id': {'key': 'properties.clientId', 'type': 'str'}, + 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, + 'client_secret_certificate_thumbprint': {'key': 'properties.clientSecretCertificateThumbprint', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + open_id_issuer: Optional[str] = None, + client_id: Optional[str] = None, + client_secret_setting_name: Optional[str] = None, + client_secret_certificate_thumbprint: Optional[str] = None, + **kwargs + ): + super(AzureActiveDirectoryRegistration, self).__init__(kind=kind, **kwargs) + self.open_id_issuer = open_id_issuer + self.client_id = client_id + self.client_secret_setting_name = client_secret_setting_name + self.client_secret_certificate_thumbprint = client_secret_certificate_thumbprint + + +class AzureActiveDirectoryValidation(ProxyOnlyResource): + """The configuration settings of the Azure Active Directory token validation flow. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param jwt_claim_checks: The configuration settings of the checks that should be made while + validating the JWT Claims. + :type jwt_claim_checks: ~azure.mgmt.web.v2021_01_15.models.JwtClaimChecks + :param allowed_audiences: The list of audiences that can make successful + authentication/authorization requests. + :type allowed_audiences: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'jwt_claim_checks': {'key': 'properties.jwtClaimChecks', 'type': 'JwtClaimChecks'}, + 'allowed_audiences': {'key': 'properties.allowedAudiences', 'type': '[str]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + jwt_claim_checks: Optional["JwtClaimChecks"] = None, + allowed_audiences: Optional[List[str]] = None, + **kwargs + ): + super(AzureActiveDirectoryValidation, self).__init__(kind=kind, **kwargs) + self.jwt_claim_checks = jwt_claim_checks + self.allowed_audiences = allowed_audiences + + +class AzureBlobStorageApplicationLogsConfig(msrest.serialization.Model): + """Application logs azure blob storage configuration. + + :param level: Log level. Possible values include: "Off", "Verbose", "Information", "Warning", + "Error". + :type level: str or ~azure.mgmt.web.v2021_01_15.models.LogLevel + :param sas_url: SAS url to a azure blob container with read/write/list/delete permissions. + :type sas_url: str + :param retention_in_days: Retention in days. + Remove blobs older than X days. + 0 or lower means no retention. + :type retention_in_days: int + """ + + _attribute_map = { + 'level': {'key': 'level', 'type': 'str'}, + 'sas_url': {'key': 'sasUrl', 'type': 'str'}, + 'retention_in_days': {'key': 'retentionInDays', 'type': 'int'}, + } + + def __init__( + self, + *, + level: Optional[Union[str, "LogLevel"]] = None, + sas_url: Optional[str] = None, + retention_in_days: Optional[int] = None, + **kwargs + ): + super(AzureBlobStorageApplicationLogsConfig, self).__init__(**kwargs) + self.level = level + self.sas_url = sas_url + self.retention_in_days = retention_in_days + + +class AzureBlobStorageHttpLogsConfig(msrest.serialization.Model): + """Http logs to azure blob storage configuration. + + :param sas_url: SAS url to a azure blob container with read/write/list/delete permissions. + :type sas_url: str + :param retention_in_days: Retention in days. + Remove blobs older than X days. + 0 or lower means no retention. + :type retention_in_days: int + :param enabled: True if configuration is enabled, false if it is disabled and null if + configuration is not set. + :type enabled: bool + """ + + _attribute_map = { + 'sas_url': {'key': 'sasUrl', 'type': 'str'}, + 'retention_in_days': {'key': 'retentionInDays', 'type': 'int'}, + 'enabled': {'key': 'enabled', 'type': 'bool'}, + } + + def __init__( + self, + *, + sas_url: Optional[str] = None, + retention_in_days: Optional[int] = None, + enabled: Optional[bool] = None, + **kwargs + ): + super(AzureBlobStorageHttpLogsConfig, self).__init__(**kwargs) + self.sas_url = sas_url + self.retention_in_days = retention_in_days + self.enabled = enabled + + +class AzureStaticWebApps(ProxyOnlyResource): + """The configuration settings of the Azure Static Web Apps provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the Azure Static Web Apps provider should not be + enabled despite the set registration; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the Azure Static Web Apps registration. + :type registration: ~azure.mgmt.web.v2021_01_15.models.AzureStaticWebAppsRegistration + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'AzureStaticWebAppsRegistration'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + enabled: Optional[bool] = None, + registration: Optional["AzureStaticWebAppsRegistration"] = None, + **kwargs + ): + super(AzureStaticWebApps, self).__init__(kind=kind, **kwargs) + self.enabled = enabled + self.registration = registration + + +class AzureStaticWebAppsRegistration(ProxyOnlyResource): + """The configuration settings of the registration for the Azure Static Web Apps provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param client_id: The Client ID of the app used for login. + :type client_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'client_id': {'key': 'properties.clientId', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + client_id: Optional[str] = None, + **kwargs + ): + super(AzureStaticWebAppsRegistration, self).__init__(kind=kind, **kwargs) + self.client_id = client_id + + +class AzureStorageInfoValue(msrest.serialization.Model): + """Azure Files or Blob Storage access information value for dictionary storage. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param type: Type of storage. Possible values include: "AzureFiles", "AzureBlob". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.AzureStorageType + :param account_name: Name of the storage account. + :type account_name: str + :param share_name: Name of the file share (container name, for Blob storage). + :type share_name: str + :param access_key: Access key for the storage account. + :type access_key: str + :param mount_path: Path to mount the storage within the site's runtime environment. + :type mount_path: str + :ivar state: State of the storage account. Possible values include: "Ok", "InvalidCredentials", + "InvalidShare", "NotValidated". + :vartype state: str or ~azure.mgmt.web.v2021_01_15.models.AzureStorageState + """ + + _validation = { + 'state': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'account_name': {'key': 'accountName', 'type': 'str'}, + 'share_name': {'key': 'shareName', 'type': 'str'}, + 'access_key': {'key': 'accessKey', 'type': 'str'}, + 'mount_path': {'key': 'mountPath', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'str'}, + } + + def __init__( + self, + *, + type: Optional[Union[str, "AzureStorageType"]] = None, + account_name: Optional[str] = None, + share_name: Optional[str] = None, + access_key: Optional[str] = None, + mount_path: Optional[str] = None, + **kwargs + ): + super(AzureStorageInfoValue, self).__init__(**kwargs) + self.type = type + self.account_name = account_name + self.share_name = share_name + self.access_key = access_key + self.mount_path = mount_path + self.state = None + + +class AzureStoragePropertyDictionaryResource(ProxyOnlyResource): + """AzureStorageInfo dictionary resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param properties: Azure storage accounts. + :type properties: dict[str, ~azure.mgmt.web.v2021_01_15.models.AzureStorageInfoValue] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': '{AzureStorageInfoValue}'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + properties: Optional[Dict[str, "AzureStorageInfoValue"]] = None, + **kwargs + ): + super(AzureStoragePropertyDictionaryResource, self).__init__(kind=kind, **kwargs) + self.properties = properties + + +class AzureTableStorageApplicationLogsConfig(msrest.serialization.Model): + """Application logs to Azure table storage configuration. + + All required parameters must be populated in order to send to Azure. + + :param level: Log level. Possible values include: "Off", "Verbose", "Information", "Warning", + "Error". + :type level: str or ~azure.mgmt.web.v2021_01_15.models.LogLevel + :param sas_url: Required. SAS URL to an Azure table with add/query/delete permissions. + :type sas_url: str + """ + + _validation = { + 'sas_url': {'required': True}, + } + + _attribute_map = { + 'level': {'key': 'level', 'type': 'str'}, + 'sas_url': {'key': 'sasUrl', 'type': 'str'}, + } + + def __init__( + self, + *, + sas_url: str, + level: Optional[Union[str, "LogLevel"]] = None, + **kwargs + ): + super(AzureTableStorageApplicationLogsConfig, self).__init__(**kwargs) + self.level = level + self.sas_url = sas_url + + +class BackupItem(ProxyOnlyResource): + """Backup description. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar backup_id: Id of the backup. + :vartype backup_id: int + :ivar storage_account_url: SAS URL for the storage account container which contains this + backup. + :vartype storage_account_url: str + :ivar blob_name: Name of the blob which contains data for this backup. + :vartype blob_name: str + :ivar name_properties_name: Name of this backup. + :vartype name_properties_name: str + :ivar status: Backup status. Possible values include: "InProgress", "Failed", "Succeeded", + "TimedOut", "Created", "Skipped", "PartiallySucceeded", "DeleteInProgress", "DeleteFailed", + "Deleted". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.BackupItemStatus + :ivar size_in_bytes: Size of the backup in bytes. + :vartype size_in_bytes: long + :ivar created: Timestamp of the backup creation. + :vartype created: ~datetime.datetime + :ivar log: Details regarding this backup. Might contain an error message. + :vartype log: str + :ivar databases: List of databases included in the backup. + :vartype databases: list[~azure.mgmt.web.v2021_01_15.models.DatabaseBackupSetting] + :ivar scheduled: True if this backup has been created due to a schedule being triggered. + :vartype scheduled: bool + :ivar last_restore_time_stamp: Timestamp of a last restore operation which used this backup. + :vartype last_restore_time_stamp: ~datetime.datetime + :ivar finished_time_stamp: Timestamp when this backup finished. + :vartype finished_time_stamp: ~datetime.datetime + :ivar correlation_id: Unique correlation identifier. Please use this along with the timestamp + while communicating with Azure support. + :vartype correlation_id: str + :ivar website_size_in_bytes: Size of the original web app which has been backed up. + :vartype website_size_in_bytes: long + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'backup_id': {'readonly': True}, + 'storage_account_url': {'readonly': True}, + 'blob_name': {'readonly': True}, + 'name_properties_name': {'readonly': True}, + 'status': {'readonly': True}, + 'size_in_bytes': {'readonly': True}, + 'created': {'readonly': True}, + 'log': {'readonly': True}, + 'databases': {'readonly': True}, + 'scheduled': {'readonly': True}, + 'last_restore_time_stamp': {'readonly': True}, + 'finished_time_stamp': {'readonly': True}, + 'correlation_id': {'readonly': True}, + 'website_size_in_bytes': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'backup_id': {'key': 'properties.id', 'type': 'int'}, + 'storage_account_url': {'key': 'properties.storageAccountUrl', 'type': 'str'}, + 'blob_name': {'key': 'properties.blobName', 'type': 'str'}, + 'name_properties_name': {'key': 'properties.name', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'size_in_bytes': {'key': 'properties.sizeInBytes', 'type': 'long'}, + 'created': {'key': 'properties.created', 'type': 'iso-8601'}, + 'log': {'key': 'properties.log', 'type': 'str'}, + 'databases': {'key': 'properties.databases', 'type': '[DatabaseBackupSetting]'}, + 'scheduled': {'key': 'properties.scheduled', 'type': 'bool'}, + 'last_restore_time_stamp': {'key': 'properties.lastRestoreTimeStamp', 'type': 'iso-8601'}, + 'finished_time_stamp': {'key': 'properties.finishedTimeStamp', 'type': 'iso-8601'}, + 'correlation_id': {'key': 'properties.correlationId', 'type': 'str'}, + 'website_size_in_bytes': {'key': 'properties.websiteSizeInBytes', 'type': 'long'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(BackupItem, self).__init__(kind=kind, **kwargs) + self.backup_id = None + self.storage_account_url = None + self.blob_name = None + self.name_properties_name = None + self.status = None + self.size_in_bytes = None + self.created = None + self.log = None + self.databases = None + self.scheduled = None + self.last_restore_time_stamp = None + self.finished_time_stamp = None + self.correlation_id = None + self.website_size_in_bytes = None + + +class BackupItemCollection(msrest.serialization.Model): + """Collection of backup items. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.BackupItem] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[BackupItem]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["BackupItem"], + **kwargs + ): + super(BackupItemCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class BackupRequest(ProxyOnlyResource): + """Description of a backup which will be performed. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param backup_name: Name of the backup. + :type backup_name: str + :param enabled: True if the backup schedule is enabled (must be included in that case), false + if the backup schedule should be disabled. + :type enabled: bool + :param storage_account_url: SAS URL to the container. + :type storage_account_url: str + :param backup_schedule: Schedule for the backup if it is executed periodically. + :type backup_schedule: ~azure.mgmt.web.v2021_01_15.models.BackupSchedule + :param databases: Databases included in the backup. + :type databases: list[~azure.mgmt.web.v2021_01_15.models.DatabaseBackupSetting] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'backup_name': {'key': 'properties.backupName', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'storage_account_url': {'key': 'properties.storageAccountUrl', 'type': 'str'}, + 'backup_schedule': {'key': 'properties.backupSchedule', 'type': 'BackupSchedule'}, + 'databases': {'key': 'properties.databases', 'type': '[DatabaseBackupSetting]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + backup_name: Optional[str] = None, + enabled: Optional[bool] = None, + storage_account_url: Optional[str] = None, + backup_schedule: Optional["BackupSchedule"] = None, + databases: Optional[List["DatabaseBackupSetting"]] = None, + **kwargs + ): + super(BackupRequest, self).__init__(kind=kind, **kwargs) + self.backup_name = backup_name + self.enabled = enabled + self.storage_account_url = storage_account_url + self.backup_schedule = backup_schedule + self.databases = databases + + +class BackupSchedule(msrest.serialization.Model): + """Description of a backup schedule. Describes how often should be the backup performed and what should be the retention policy. + + 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 frequency_interval: Required. How often the backup should be executed (e.g. for weekly + backup, this should be set to 7 and FrequencyUnit should be set to Day). + :type frequency_interval: int + :param frequency_unit: Required. The unit of time for how often the backup should be executed + (e.g. for weekly backup, this should be set to Day and FrequencyInterval should be set to 7). + Possible values include: "Day", "Hour". Default value: "Day". + :type frequency_unit: str or ~azure.mgmt.web.v2021_01_15.models.FrequencyUnit + :param keep_at_least_one_backup: Required. True if the retention policy should always keep at + least one backup in the storage account, regardless how old it is; false otherwise. + :type keep_at_least_one_backup: bool + :param retention_period_in_days: Required. After how many days backups should be deleted. + :type retention_period_in_days: int + :param start_time: When the schedule should start working. + :type start_time: ~datetime.datetime + :ivar last_execution_time: Last time when this schedule was triggered. + :vartype last_execution_time: ~datetime.datetime + """ + + _validation = { + 'frequency_interval': {'required': True}, + 'frequency_unit': {'required': True}, + 'keep_at_least_one_backup': {'required': True}, + 'retention_period_in_days': {'required': True}, + 'last_execution_time': {'readonly': True}, + } + + _attribute_map = { + 'frequency_interval': {'key': 'frequencyInterval', 'type': 'int'}, + 'frequency_unit': {'key': 'frequencyUnit', 'type': 'str'}, + 'keep_at_least_one_backup': {'key': 'keepAtLeastOneBackup', 'type': 'bool'}, + 'retention_period_in_days': {'key': 'retentionPeriodInDays', 'type': 'int'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_execution_time': {'key': 'lastExecutionTime', 'type': 'iso-8601'}, + } + + def __init__( + self, + *, + frequency_interval: int = 7, + frequency_unit: Union[str, "FrequencyUnit"] = "Day", + keep_at_least_one_backup: bool = True, + retention_period_in_days: int = 30, + start_time: Optional[datetime.datetime] = None, + **kwargs + ): + super(BackupSchedule, self).__init__(**kwargs) + self.frequency_interval = frequency_interval + self.frequency_unit = frequency_unit + self.keep_at_least_one_backup = keep_at_least_one_backup + self.retention_period_in_days = retention_period_in_days + self.start_time = start_time + self.last_execution_time = None + + +class BillingMeter(ProxyOnlyResource): + """App Service billing entity that contains information about meter which the Azure billing system utilizes to charge users for services. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param meter_id: Meter GUID onboarded in Commerce. + :type meter_id: str + :param billing_location: Azure Location of billable resource. + :type billing_location: str + :param short_name: Short Name from App Service Azure pricing Page. + :type short_name: str + :param friendly_name: Friendly name of the meter. + :type friendly_name: str + :param resource_type: App Service ResourceType meter used for. + :type resource_type: str + :param os_type: App Service OS type meter used for. + :type os_type: str + :param multiplier: Meter Multiplier. + :type multiplier: float + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'meter_id': {'key': 'properties.meterId', 'type': 'str'}, + 'billing_location': {'key': 'properties.billingLocation', 'type': 'str'}, + 'short_name': {'key': 'properties.shortName', 'type': 'str'}, + 'friendly_name': {'key': 'properties.friendlyName', 'type': 'str'}, + 'resource_type': {'key': 'properties.resourceType', 'type': 'str'}, + 'os_type': {'key': 'properties.osType', 'type': 'str'}, + 'multiplier': {'key': 'properties.multiplier', 'type': 'float'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + meter_id: Optional[str] = None, + billing_location: Optional[str] = None, + short_name: Optional[str] = None, + friendly_name: Optional[str] = None, + resource_type: Optional[str] = None, + os_type: Optional[str] = None, + multiplier: Optional[float] = None, + **kwargs + ): + super(BillingMeter, self).__init__(kind=kind, **kwargs) + self.meter_id = meter_id + self.billing_location = billing_location + self.short_name = short_name + self.friendly_name = friendly_name + self.resource_type = resource_type + self.os_type = os_type + self.multiplier = multiplier + + +class BillingMeterCollection(msrest.serialization.Model): + """Collection of Billing Meters. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.BillingMeter] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[BillingMeter]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["BillingMeter"], + **kwargs + ): + super(BillingMeterCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class BlobStorageTokenStore(ProxyOnlyResource): + """The configuration settings of the storage of the tokens if blob storage is used. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param sas_url_setting_name: The name of the app setting containing the SAS URL of the blob + storage containing the tokens. + :type sas_url_setting_name: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'sas_url_setting_name': {'key': 'properties.sasUrlSettingName', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + sas_url_setting_name: Optional[str] = None, + **kwargs + ): + super(BlobStorageTokenStore, self).__init__(kind=kind, **kwargs) + self.sas_url_setting_name = sas_url_setting_name + + +class Capability(msrest.serialization.Model): + """Describes the capabilities/features allowed for a specific SKU. + + :param name: Name of the SKU capability. + :type name: str + :param value: Value of the SKU capability. + :type value: str + :param reason: Reason of the SKU capability. + :type reason: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + 'reason': {'key': 'reason', 'type': 'str'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + value: Optional[str] = None, + reason: Optional[str] = None, + **kwargs + ): + super(Capability, self).__init__(**kwargs) + self.name = name + self.value = value + self.reason = reason + + +class Certificate(Resource): + """SSL certificate for an app. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param password: Certificate password. + :type password: str + :ivar friendly_name: Friendly name of the certificate. + :vartype friendly_name: str + :ivar subject_name: Subject name of the certificate. + :vartype subject_name: str + :param host_names: Host names the certificate applies to. + :type host_names: list[str] + :param pfx_blob: Pfx blob. + :type pfx_blob: bytearray + :ivar site_name: App name. + :vartype site_name: str + :ivar self_link: Self link. + :vartype self_link: str + :ivar issuer: Certificate issuer. + :vartype issuer: str + :ivar issue_date: Certificate issue Date. + :vartype issue_date: ~datetime.datetime + :ivar expiration_date: Certificate expiration date. + :vartype expiration_date: ~datetime.datetime + :ivar thumbprint: Certificate thumbprint. + :vartype thumbprint: str + :ivar valid: Is the certificate valid?. + :vartype valid: bool + :ivar cer_blob: Raw bytes of .cer file. + :vartype cer_blob: bytearray + :ivar public_key_hash: Public key hash. + :vartype public_key_hash: str + :ivar hosting_environment_profile: Specification for the App Service Environment to use for the + certificate. + :vartype hosting_environment_profile: + ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentProfile + :param key_vault_id: Key Vault Csm resource Id. + :type key_vault_id: str + :param key_vault_secret_name: Key Vault secret name. + :type key_vault_secret_name: str + :ivar key_vault_secret_status: Status of the Key Vault secret. Possible values include: + "Initialized", "WaitingOnCertificateOrder", "Succeeded", "CertificateOrderFailed", + "OperationNotPermittedOnKeyVault", "AzureServiceUnauthorizedToAccessKeyVault", + "KeyVaultDoesNotExist", "KeyVaultSecretDoesNotExist", "UnknownError", "ExternalPrivateKey", + "Unknown". + :vartype key_vault_secret_status: str or + ~azure.mgmt.web.v2021_01_15.models.KeyVaultSecretStatus + :param server_farm_id: Resource ID of the associated App Service plan, formatted as: + "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". + :type server_farm_id: str + :param canonical_name: CNAME of the certificate to be issued via free certificate. + :type canonical_name: str + :param domain_validation_method: Method of domain validation for free cert. + :type domain_validation_method: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'friendly_name': {'readonly': True}, + 'subject_name': {'readonly': True}, + 'site_name': {'readonly': True}, + 'self_link': {'readonly': True}, + 'issuer': {'readonly': True}, + 'issue_date': {'readonly': True}, + 'expiration_date': {'readonly': True}, + 'thumbprint': {'readonly': True}, + 'valid': {'readonly': True}, + 'cer_blob': {'readonly': True}, + 'public_key_hash': {'readonly': True}, + 'hosting_environment_profile': {'readonly': True}, + 'key_vault_secret_status': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'password': {'key': 'properties.password', 'type': 'str'}, + 'friendly_name': {'key': 'properties.friendlyName', 'type': 'str'}, + 'subject_name': {'key': 'properties.subjectName', 'type': 'str'}, + 'host_names': {'key': 'properties.hostNames', 'type': '[str]'}, + 'pfx_blob': {'key': 'properties.pfxBlob', 'type': 'bytearray'}, + 'site_name': {'key': 'properties.siteName', 'type': 'str'}, + 'self_link': {'key': 'properties.selfLink', 'type': 'str'}, + 'issuer': {'key': 'properties.issuer', 'type': 'str'}, + 'issue_date': {'key': 'properties.issueDate', 'type': 'iso-8601'}, + 'expiration_date': {'key': 'properties.expirationDate', 'type': 'iso-8601'}, + 'thumbprint': {'key': 'properties.thumbprint', 'type': 'str'}, + 'valid': {'key': 'properties.valid', 'type': 'bool'}, + 'cer_blob': {'key': 'properties.cerBlob', 'type': 'bytearray'}, + 'public_key_hash': {'key': 'properties.publicKeyHash', 'type': 'str'}, + 'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'}, + 'key_vault_id': {'key': 'properties.keyVaultId', 'type': 'str'}, + 'key_vault_secret_name': {'key': 'properties.keyVaultSecretName', 'type': 'str'}, + 'key_vault_secret_status': {'key': 'properties.keyVaultSecretStatus', 'type': 'str'}, + 'server_farm_id': {'key': 'properties.serverFarmId', 'type': 'str'}, + 'canonical_name': {'key': 'properties.canonicalName', 'type': 'str'}, + 'domain_validation_method': {'key': 'properties.domainValidationMethod', 'type': 'str'}, + } + + def __init__( + self, + *, + location: str, + kind: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + password: Optional[str] = None, + host_names: Optional[List[str]] = None, + pfx_blob: Optional[bytearray] = None, + key_vault_id: Optional[str] = None, + key_vault_secret_name: Optional[str] = None, + server_farm_id: Optional[str] = None, + canonical_name: Optional[str] = None, + domain_validation_method: Optional[str] = None, + **kwargs + ): + super(Certificate, self).__init__(kind=kind, location=location, tags=tags, **kwargs) + self.password = password + self.friendly_name = None + self.subject_name = None + self.host_names = host_names + self.pfx_blob = pfx_blob + self.site_name = None + self.self_link = None + self.issuer = None + self.issue_date = None + self.expiration_date = None + self.thumbprint = None + self.valid = None + self.cer_blob = None + self.public_key_hash = None + self.hosting_environment_profile = None + self.key_vault_id = key_vault_id + self.key_vault_secret_name = key_vault_secret_name + self.key_vault_secret_status = None + self.server_farm_id = server_farm_id + self.canonical_name = canonical_name + self.domain_validation_method = domain_validation_method + + +class CertificateCollection(msrest.serialization.Model): + """Collection of certificates. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.Certificate] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Certificate]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["Certificate"], + **kwargs + ): + super(CertificateCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class CertificateDetails(msrest.serialization.Model): + """SSL certificate details. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar version: Certificate Version. + :vartype version: int + :ivar serial_number: Certificate Serial Number. + :vartype serial_number: str + :ivar thumbprint: Certificate Thumbprint. + :vartype thumbprint: str + :ivar subject: Certificate Subject. + :vartype subject: str + :ivar not_before: Date Certificate is valid from. + :vartype not_before: ~datetime.datetime + :ivar not_after: Date Certificate is valid to. + :vartype not_after: ~datetime.datetime + :ivar signature_algorithm: Certificate Signature algorithm. + :vartype signature_algorithm: str + :ivar issuer: Certificate Issuer. + :vartype issuer: str + :ivar raw_data: Raw certificate data. + :vartype raw_data: str + """ + + _validation = { + 'version': {'readonly': True}, + 'serial_number': {'readonly': True}, + 'thumbprint': {'readonly': True}, + 'subject': {'readonly': True}, + 'not_before': {'readonly': True}, + 'not_after': {'readonly': True}, + 'signature_algorithm': {'readonly': True}, + 'issuer': {'readonly': True}, + 'raw_data': {'readonly': True}, + } + + _attribute_map = { + 'version': {'key': 'version', 'type': 'int'}, + 'serial_number': {'key': 'serialNumber', 'type': 'str'}, + 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, + 'subject': {'key': 'subject', 'type': 'str'}, + 'not_before': {'key': 'notBefore', 'type': 'iso-8601'}, + 'not_after': {'key': 'notAfter', 'type': 'iso-8601'}, + 'signature_algorithm': {'key': 'signatureAlgorithm', 'type': 'str'}, + 'issuer': {'key': 'issuer', 'type': 'str'}, + 'raw_data': {'key': 'rawData', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(CertificateDetails, self).__init__(**kwargs) + self.version = None + self.serial_number = None + self.thumbprint = None + self.subject = None + self.not_before = None + self.not_after = None + self.signature_algorithm = None + self.issuer = None + self.raw_data = None + + +class CertificateEmail(ProxyOnlyResource): + """SSL certificate email. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param email_id: Email id. + :type email_id: str + :param time_stamp: Time stamp. + :type time_stamp: ~datetime.datetime + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'email_id': {'key': 'properties.emailId', 'type': 'str'}, + 'time_stamp': {'key': 'properties.timeStamp', 'type': 'iso-8601'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + email_id: Optional[str] = None, + time_stamp: Optional[datetime.datetime] = None, + **kwargs + ): + super(CertificateEmail, self).__init__(kind=kind, **kwargs) + self.email_id = email_id + self.time_stamp = time_stamp + + +class CertificateOrderAction(ProxyOnlyResource): + """Certificate order action. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar action_type: Action type. Possible values include: "CertificateIssued", + "CertificateOrderCanceled", "CertificateOrderCreated", "CertificateRevoked", + "DomainValidationComplete", "FraudDetected", "OrgNameChange", "OrgValidationComplete", + "SanDrop", "FraudCleared", "CertificateExpired", "CertificateExpirationWarning", + "FraudDocumentationRequired", "Unknown". + :vartype action_type: str or ~azure.mgmt.web.v2021_01_15.models.CertificateOrderActionType + :ivar created_at: Time at which the certificate action was performed. + :vartype created_at: ~datetime.datetime + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'action_type': {'readonly': True}, + 'created_at': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'action_type': {'key': 'properties.actionType', 'type': 'str'}, + 'created_at': {'key': 'properties.createdAt', 'type': 'iso-8601'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(CertificateOrderAction, self).__init__(kind=kind, **kwargs) + self.action_type = None + self.created_at = None + + +class CertificateOrderContact(msrest.serialization.Model): + """CertificateOrderContact. + + :param email: + :type email: str + :param name_first: + :type name_first: str + :param name_last: + :type name_last: str + :param phone: + :type phone: str + """ + + _attribute_map = { + 'email': {'key': 'email', 'type': 'str'}, + 'name_first': {'key': 'nameFirst', 'type': 'str'}, + 'name_last': {'key': 'nameLast', 'type': 'str'}, + 'phone': {'key': 'phone', 'type': 'str'}, + } + + def __init__( + self, + *, + email: Optional[str] = None, + name_first: Optional[str] = None, + name_last: Optional[str] = None, + phone: Optional[str] = None, + **kwargs + ): + super(CertificateOrderContact, self).__init__(**kwargs) + self.email = email + self.name_first = name_first + self.name_last = name_last + self.phone = phone + + +class CertificatePatchResource(ProxyOnlyResource): + """ARM resource for a certificate. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param password: Certificate password. + :type password: str + :ivar friendly_name: Friendly name of the certificate. + :vartype friendly_name: str + :ivar subject_name: Subject name of the certificate. + :vartype subject_name: str + :param host_names: Host names the certificate applies to. + :type host_names: list[str] + :param pfx_blob: Pfx blob. + :type pfx_blob: bytearray + :ivar site_name: App name. + :vartype site_name: str + :ivar self_link: Self link. + :vartype self_link: str + :ivar issuer: Certificate issuer. + :vartype issuer: str + :ivar issue_date: Certificate issue Date. + :vartype issue_date: ~datetime.datetime + :ivar expiration_date: Certificate expiration date. + :vartype expiration_date: ~datetime.datetime + :ivar thumbprint: Certificate thumbprint. + :vartype thumbprint: str + :ivar valid: Is the certificate valid?. + :vartype valid: bool + :ivar cer_blob: Raw bytes of .cer file. + :vartype cer_blob: bytearray + :ivar public_key_hash: Public key hash. + :vartype public_key_hash: str + :ivar hosting_environment_profile: Specification for the App Service Environment to use for the + certificate. + :vartype hosting_environment_profile: + ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentProfile + :param key_vault_id: Key Vault Csm resource Id. + :type key_vault_id: str + :param key_vault_secret_name: Key Vault secret name. + :type key_vault_secret_name: str + :ivar key_vault_secret_status: Status of the Key Vault secret. Possible values include: + "Initialized", "WaitingOnCertificateOrder", "Succeeded", "CertificateOrderFailed", + "OperationNotPermittedOnKeyVault", "AzureServiceUnauthorizedToAccessKeyVault", + "KeyVaultDoesNotExist", "KeyVaultSecretDoesNotExist", "UnknownError", "ExternalPrivateKey", + "Unknown". + :vartype key_vault_secret_status: str or + ~azure.mgmt.web.v2021_01_15.models.KeyVaultSecretStatus + :param server_farm_id: Resource ID of the associated App Service plan, formatted as: + "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". + :type server_farm_id: str + :param canonical_name: CNAME of the certificate to be issued via free certificate. + :type canonical_name: str + :param domain_validation_method: Method of domain validation for free cert. + :type domain_validation_method: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'friendly_name': {'readonly': True}, + 'subject_name': {'readonly': True}, + 'site_name': {'readonly': True}, + 'self_link': {'readonly': True}, + 'issuer': {'readonly': True}, + 'issue_date': {'readonly': True}, + 'expiration_date': {'readonly': True}, + 'thumbprint': {'readonly': True}, + 'valid': {'readonly': True}, + 'cer_blob': {'readonly': True}, + 'public_key_hash': {'readonly': True}, + 'hosting_environment_profile': {'readonly': True}, + 'key_vault_secret_status': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'password': {'key': 'properties.password', 'type': 'str'}, + 'friendly_name': {'key': 'properties.friendlyName', 'type': 'str'}, + 'subject_name': {'key': 'properties.subjectName', 'type': 'str'}, + 'host_names': {'key': 'properties.hostNames', 'type': '[str]'}, + 'pfx_blob': {'key': 'properties.pfxBlob', 'type': 'bytearray'}, + 'site_name': {'key': 'properties.siteName', 'type': 'str'}, + 'self_link': {'key': 'properties.selfLink', 'type': 'str'}, + 'issuer': {'key': 'properties.issuer', 'type': 'str'}, + 'issue_date': {'key': 'properties.issueDate', 'type': 'iso-8601'}, + 'expiration_date': {'key': 'properties.expirationDate', 'type': 'iso-8601'}, + 'thumbprint': {'key': 'properties.thumbprint', 'type': 'str'}, + 'valid': {'key': 'properties.valid', 'type': 'bool'}, + 'cer_blob': {'key': 'properties.cerBlob', 'type': 'bytearray'}, + 'public_key_hash': {'key': 'properties.publicKeyHash', 'type': 'str'}, + 'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'}, + 'key_vault_id': {'key': 'properties.keyVaultId', 'type': 'str'}, + 'key_vault_secret_name': {'key': 'properties.keyVaultSecretName', 'type': 'str'}, + 'key_vault_secret_status': {'key': 'properties.keyVaultSecretStatus', 'type': 'str'}, + 'server_farm_id': {'key': 'properties.serverFarmId', 'type': 'str'}, + 'canonical_name': {'key': 'properties.canonicalName', 'type': 'str'}, + 'domain_validation_method': {'key': 'properties.domainValidationMethod', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + password: Optional[str] = None, + host_names: Optional[List[str]] = None, + pfx_blob: Optional[bytearray] = None, + key_vault_id: Optional[str] = None, + key_vault_secret_name: Optional[str] = None, + server_farm_id: Optional[str] = None, + canonical_name: Optional[str] = None, + domain_validation_method: Optional[str] = None, + **kwargs + ): + super(CertificatePatchResource, self).__init__(kind=kind, **kwargs) + self.password = password + self.friendly_name = None + self.subject_name = None + self.host_names = host_names + self.pfx_blob = pfx_blob + self.site_name = None + self.self_link = None + self.issuer = None + self.issue_date = None + self.expiration_date = None + self.thumbprint = None + self.valid = None + self.cer_blob = None + self.public_key_hash = None + self.hosting_environment_profile = None + self.key_vault_id = key_vault_id + self.key_vault_secret_name = key_vault_secret_name + self.key_vault_secret_status = None + self.server_farm_id = server_farm_id + self.canonical_name = canonical_name + self.domain_validation_method = domain_validation_method + + +class ClientRegistration(ProxyOnlyResource): + """The configuration settings of the app registration for providers that have client ids and client secrets. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param client_id: The Client ID of the app used for login. + :type client_id: str + :param client_secret_setting_name: The app setting name that contains the client secret. + :type client_secret_setting_name: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'client_id': {'key': 'properties.clientId', 'type': 'str'}, + 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + client_id: Optional[str] = None, + client_secret_setting_name: Optional[str] = None, + **kwargs + ): + super(ClientRegistration, self).__init__(kind=kind, **kwargs) + self.client_id = client_id + self.client_secret_setting_name = client_secret_setting_name + + +class CloningInfo(msrest.serialization.Model): + """Information needed for cloning operation. + + All required parameters must be populated in order to send to Azure. + + :param correlation_id: Correlation ID of cloning operation. This ID ties multiple cloning + operations + together to use the same snapshot. + :type correlation_id: str + :param overwrite: :code:`true` to overwrite destination app; otherwise, + :code:`false`. + :type overwrite: bool + :param clone_custom_host_names: :code:`true` to clone custom hostnames from source + app; otherwise, :code:`false`. + :type clone_custom_host_names: bool + :param clone_source_control: :code:`true` to clone source control from source app; + otherwise, :code:`false`. + :type clone_source_control: bool + :param source_web_app_id: Required. ARM resource ID of the source app. App resource ID is of + the form + /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} + for production slots and + /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} + for other slots. + :type source_web_app_id: str + :param source_web_app_location: Location of source app ex: West US or North Europe. + :type source_web_app_location: str + :param hosting_environment: App Service Environment. + :type hosting_environment: str + :param app_settings_overrides: Application setting overrides for cloned app. If specified, + these settings override the settings cloned + from source app. Otherwise, application settings from source app are retained. + :type app_settings_overrides: dict[str, str] + :param configure_load_balancing: :code:`true` to configure load balancing for + source and destination app. + :type configure_load_balancing: bool + :param traffic_manager_profile_id: ARM resource ID of the Traffic Manager profile to use, if it + exists. Traffic Manager resource ID is of the form + /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. + :type traffic_manager_profile_id: str + :param traffic_manager_profile_name: Name of Traffic Manager profile to create. This is only + needed if Traffic Manager profile does not already exist. + :type traffic_manager_profile_name: str + """ + + _validation = { + 'source_web_app_id': {'required': True}, + } + + _attribute_map = { + 'correlation_id': {'key': 'correlationId', 'type': 'str'}, + 'overwrite': {'key': 'overwrite', 'type': 'bool'}, + 'clone_custom_host_names': {'key': 'cloneCustomHostNames', 'type': 'bool'}, + 'clone_source_control': {'key': 'cloneSourceControl', 'type': 'bool'}, + 'source_web_app_id': {'key': 'sourceWebAppId', 'type': 'str'}, + 'source_web_app_location': {'key': 'sourceWebAppLocation', 'type': 'str'}, + 'hosting_environment': {'key': 'hostingEnvironment', 'type': 'str'}, + 'app_settings_overrides': {'key': 'appSettingsOverrides', 'type': '{str}'}, + 'configure_load_balancing': {'key': 'configureLoadBalancing', 'type': 'bool'}, + 'traffic_manager_profile_id': {'key': 'trafficManagerProfileId', 'type': 'str'}, + 'traffic_manager_profile_name': {'key': 'trafficManagerProfileName', 'type': 'str'}, + } + + def __init__( + self, + *, + source_web_app_id: str, + correlation_id: Optional[str] = None, + overwrite: Optional[bool] = None, + clone_custom_host_names: Optional[bool] = None, + clone_source_control: Optional[bool] = None, + source_web_app_location: Optional[str] = None, + hosting_environment: Optional[str] = None, + app_settings_overrides: Optional[Dict[str, str]] = None, + configure_load_balancing: Optional[bool] = None, + traffic_manager_profile_id: Optional[str] = None, + traffic_manager_profile_name: Optional[str] = None, + **kwargs + ): + super(CloningInfo, self).__init__(**kwargs) + self.correlation_id = correlation_id + self.overwrite = overwrite + self.clone_custom_host_names = clone_custom_host_names + self.clone_source_control = clone_source_control + self.source_web_app_id = source_web_app_id + self.source_web_app_location = source_web_app_location + self.hosting_environment = hosting_environment + self.app_settings_overrides = app_settings_overrides + self.configure_load_balancing = configure_load_balancing + self.traffic_manager_profile_id = traffic_manager_profile_id + self.traffic_manager_profile_name = traffic_manager_profile_name + + +class ConnectionStringDictionary(ProxyOnlyResource): + """String dictionary resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param properties: Connection strings. + :type properties: dict[str, ~azure.mgmt.web.v2021_01_15.models.ConnStringValueTypePair] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': '{ConnStringValueTypePair}'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + properties: Optional[Dict[str, "ConnStringValueTypePair"]] = None, + **kwargs + ): + super(ConnectionStringDictionary, self).__init__(kind=kind, **kwargs) + self.properties = properties + + +class ConnStringInfo(msrest.serialization.Model): + """Database connection string information. + + :param name: Name of connection string. + :type name: str + :param connection_string: Connection string value. + :type connection_string: str + :param type: Type of database. Possible values include: "MySql", "SQLServer", "SQLAzure", + "Custom", "NotificationHub", "ServiceBus", "EventHub", "ApiHub", "DocDb", "RedisCache", + "PostgreSQL". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.ConnectionStringType + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'connection_string': {'key': 'connectionString', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + connection_string: Optional[str] = None, + type: Optional[Union[str, "ConnectionStringType"]] = None, + **kwargs + ): + super(ConnStringInfo, self).__init__(**kwargs) + self.name = name + self.connection_string = connection_string + self.type = type + + +class ConnStringValueTypePair(msrest.serialization.Model): + """Database connection string value to type pair. + + All required parameters must be populated in order to send to Azure. + + :param value: Required. Value of pair. + :type value: str + :param type: Required. Type of database. Possible values include: "MySql", "SQLServer", + "SQLAzure", "Custom", "NotificationHub", "ServiceBus", "EventHub", "ApiHub", "DocDb", + "RedisCache", "PostgreSQL". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.ConnectionStringType + """ + + _validation = { + 'value': {'required': True}, + 'type': {'required': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + *, + value: str, + type: Union[str, "ConnectionStringType"], + **kwargs + ): + super(ConnStringValueTypePair, self).__init__(**kwargs) + self.value = value + self.type = type + + +class Contact(msrest.serialization.Model): + """Contact information for domain registration. If 'Domain Privacy' option is not selected then the contact information is made publicly available through the Whois +directories as per ICANN requirements. + + All required parameters must be populated in order to send to Azure. + + :param address_mailing: Mailing address. + :type address_mailing: ~azure.mgmt.web.v2021_01_15.models.Address + :param email: Required. Email address. + :type email: str + :param fax: Fax number. + :type fax: str + :param job_title: Job title. + :type job_title: str + :param name_first: Required. First name. + :type name_first: str + :param name_last: Required. Last name. + :type name_last: str + :param name_middle: Middle name. + :type name_middle: str + :param organization: Organization contact belongs to. + :type organization: str + :param phone: Required. Phone number. + :type phone: str + """ + + _validation = { + 'email': {'required': True}, + 'name_first': {'required': True}, + 'name_last': {'required': True}, + 'phone': {'required': True}, + } + + _attribute_map = { + 'address_mailing': {'key': 'addressMailing', 'type': 'Address'}, + 'email': {'key': 'email', 'type': 'str'}, + 'fax': {'key': 'fax', 'type': 'str'}, + 'job_title': {'key': 'jobTitle', 'type': 'str'}, + 'name_first': {'key': 'nameFirst', 'type': 'str'}, + 'name_last': {'key': 'nameLast', 'type': 'str'}, + 'name_middle': {'key': 'nameMiddle', 'type': 'str'}, + 'organization': {'key': 'organization', 'type': 'str'}, + 'phone': {'key': 'phone', 'type': 'str'}, + } + + def __init__( + self, + *, + email: str, + name_first: str, + name_last: str, + phone: str, + address_mailing: Optional["Address"] = None, + fax: Optional[str] = None, + job_title: Optional[str] = None, + name_middle: Optional[str] = None, + organization: Optional[str] = None, + **kwargs + ): + super(Contact, self).__init__(**kwargs) + self.address_mailing = address_mailing + self.email = email + self.fax = fax + self.job_title = job_title + self.name_first = name_first + self.name_last = name_last + self.name_middle = name_middle + self.organization = organization + self.phone = phone + + +class ContainerCpuStatistics(msrest.serialization.Model): + """ContainerCpuStatistics. + + :param cpu_usage: + :type cpu_usage: ~azure.mgmt.web.v2021_01_15.models.ContainerCpuUsage + :param system_cpu_usage: + :type system_cpu_usage: long + :param online_cpu_count: + :type online_cpu_count: int + :param throttling_data: + :type throttling_data: ~azure.mgmt.web.v2021_01_15.models.ContainerThrottlingData + """ + + _attribute_map = { + 'cpu_usage': {'key': 'cpuUsage', 'type': 'ContainerCpuUsage'}, + 'system_cpu_usage': {'key': 'systemCpuUsage', 'type': 'long'}, + 'online_cpu_count': {'key': 'onlineCpuCount', 'type': 'int'}, + 'throttling_data': {'key': 'throttlingData', 'type': 'ContainerThrottlingData'}, + } + + def __init__( + self, + *, + cpu_usage: Optional["ContainerCpuUsage"] = None, + system_cpu_usage: Optional[int] = None, + online_cpu_count: Optional[int] = None, + throttling_data: Optional["ContainerThrottlingData"] = None, + **kwargs + ): + super(ContainerCpuStatistics, self).__init__(**kwargs) + self.cpu_usage = cpu_usage + self.system_cpu_usage = system_cpu_usage + self.online_cpu_count = online_cpu_count + self.throttling_data = throttling_data + + +class ContainerCpuUsage(msrest.serialization.Model): + """ContainerCpuUsage. + + :param total_usage: + :type total_usage: long + :param per_cpu_usage: + :type per_cpu_usage: list[long] + :param kernel_mode_usage: + :type kernel_mode_usage: long + :param user_mode_usage: + :type user_mode_usage: long + """ + + _attribute_map = { + 'total_usage': {'key': 'totalUsage', 'type': 'long'}, + 'per_cpu_usage': {'key': 'perCpuUsage', 'type': '[long]'}, + 'kernel_mode_usage': {'key': 'kernelModeUsage', 'type': 'long'}, + 'user_mode_usage': {'key': 'userModeUsage', 'type': 'long'}, + } + + def __init__( + self, + *, + total_usage: Optional[int] = None, + per_cpu_usage: Optional[List[int]] = None, + kernel_mode_usage: Optional[int] = None, + user_mode_usage: Optional[int] = None, + **kwargs + ): + super(ContainerCpuUsage, self).__init__(**kwargs) + self.total_usage = total_usage + self.per_cpu_usage = per_cpu_usage + self.kernel_mode_usage = kernel_mode_usage + self.user_mode_usage = user_mode_usage + + +class ContainerInfo(msrest.serialization.Model): + """ContainerInfo. + + :param current_time_stamp: + :type current_time_stamp: ~datetime.datetime + :param previous_time_stamp: + :type previous_time_stamp: ~datetime.datetime + :param current_cpu_stats: + :type current_cpu_stats: ~azure.mgmt.web.v2021_01_15.models.ContainerCpuStatistics + :param previous_cpu_stats: + :type previous_cpu_stats: ~azure.mgmt.web.v2021_01_15.models.ContainerCpuStatistics + :param memory_stats: + :type memory_stats: ~azure.mgmt.web.v2021_01_15.models.ContainerMemoryStatistics + :param name: + :type name: str + :param id: + :type id: str + :param eth0: + :type eth0: ~azure.mgmt.web.v2021_01_15.models.ContainerNetworkInterfaceStatistics + """ + + _attribute_map = { + 'current_time_stamp': {'key': 'currentTimeStamp', 'type': 'iso-8601'}, + 'previous_time_stamp': {'key': 'previousTimeStamp', 'type': 'iso-8601'}, + 'current_cpu_stats': {'key': 'currentCpuStats', 'type': 'ContainerCpuStatistics'}, + 'previous_cpu_stats': {'key': 'previousCpuStats', 'type': 'ContainerCpuStatistics'}, + 'memory_stats': {'key': 'memoryStats', 'type': 'ContainerMemoryStatistics'}, + 'name': {'key': 'name', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'eth0': {'key': 'eth0', 'type': 'ContainerNetworkInterfaceStatistics'}, + } + + def __init__( + self, + *, + current_time_stamp: Optional[datetime.datetime] = None, + previous_time_stamp: Optional[datetime.datetime] = None, + current_cpu_stats: Optional["ContainerCpuStatistics"] = None, + previous_cpu_stats: Optional["ContainerCpuStatistics"] = None, + memory_stats: Optional["ContainerMemoryStatistics"] = None, + name: Optional[str] = None, + id: Optional[str] = None, + eth0: Optional["ContainerNetworkInterfaceStatistics"] = None, + **kwargs + ): + super(ContainerInfo, self).__init__(**kwargs) + self.current_time_stamp = current_time_stamp + self.previous_time_stamp = previous_time_stamp + self.current_cpu_stats = current_cpu_stats + self.previous_cpu_stats = previous_cpu_stats + self.memory_stats = memory_stats + self.name = name + self.id = id + self.eth0 = eth0 + + +class ContainerMemoryStatistics(msrest.serialization.Model): + """ContainerMemoryStatistics. + + :param usage: + :type usage: long + :param max_usage: + :type max_usage: long + :param limit: + :type limit: long + """ + + _attribute_map = { + 'usage': {'key': 'usage', 'type': 'long'}, + 'max_usage': {'key': 'maxUsage', 'type': 'long'}, + 'limit': {'key': 'limit', 'type': 'long'}, + } + + def __init__( + self, + *, + usage: Optional[int] = None, + max_usage: Optional[int] = None, + limit: Optional[int] = None, + **kwargs + ): + super(ContainerMemoryStatistics, self).__init__(**kwargs) + self.usage = usage + self.max_usage = max_usage + self.limit = limit + + +class ContainerNetworkInterfaceStatistics(msrest.serialization.Model): + """ContainerNetworkInterfaceStatistics. + + :param rx_bytes: + :type rx_bytes: long + :param rx_packets: + :type rx_packets: long + :param rx_errors: + :type rx_errors: long + :param rx_dropped: + :type rx_dropped: long + :param tx_bytes: + :type tx_bytes: long + :param tx_packets: + :type tx_packets: long + :param tx_errors: + :type tx_errors: long + :param tx_dropped: + :type tx_dropped: long + """ + + _attribute_map = { + 'rx_bytes': {'key': 'rxBytes', 'type': 'long'}, + 'rx_packets': {'key': 'rxPackets', 'type': 'long'}, + 'rx_errors': {'key': 'rxErrors', 'type': 'long'}, + 'rx_dropped': {'key': 'rxDropped', 'type': 'long'}, + 'tx_bytes': {'key': 'txBytes', 'type': 'long'}, + 'tx_packets': {'key': 'txPackets', 'type': 'long'}, + 'tx_errors': {'key': 'txErrors', 'type': 'long'}, + 'tx_dropped': {'key': 'txDropped', 'type': 'long'}, + } + + def __init__( + self, + *, + rx_bytes: Optional[int] = None, + rx_packets: Optional[int] = None, + rx_errors: Optional[int] = None, + rx_dropped: Optional[int] = None, + tx_bytes: Optional[int] = None, + tx_packets: Optional[int] = None, + tx_errors: Optional[int] = None, + tx_dropped: Optional[int] = None, + **kwargs + ): + super(ContainerNetworkInterfaceStatistics, self).__init__(**kwargs) + self.rx_bytes = rx_bytes + self.rx_packets = rx_packets + self.rx_errors = rx_errors + self.rx_dropped = rx_dropped + self.tx_bytes = tx_bytes + self.tx_packets = tx_packets + self.tx_errors = tx_errors + self.tx_dropped = tx_dropped + + +class ContainerThrottlingData(msrest.serialization.Model): + """ContainerThrottlingData. + + :param periods: + :type periods: int + :param throttled_periods: + :type throttled_periods: int + :param throttled_time: + :type throttled_time: int + """ + + _attribute_map = { + 'periods': {'key': 'periods', 'type': 'int'}, + 'throttled_periods': {'key': 'throttledPeriods', 'type': 'int'}, + 'throttled_time': {'key': 'throttledTime', 'type': 'int'}, + } + + def __init__( + self, + *, + periods: Optional[int] = None, + throttled_periods: Optional[int] = None, + throttled_time: Optional[int] = None, + **kwargs + ): + super(ContainerThrottlingData, self).__init__(**kwargs) + self.periods = periods + self.throttled_periods = throttled_periods + self.throttled_time = throttled_time + + +class ContinuousWebJob(ProxyOnlyResource): + """Continuous Web Job Information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param status: Job status. Possible values include: "Initializing", "Starting", "Running", + "PendingRestart", "Stopped". + :type status: str or ~azure.mgmt.web.v2021_01_15.models.ContinuousWebJobStatus + :param detailed_status: Detailed status. + :type detailed_status: str + :param log_url: Log URL. + :type log_url: str + :param run_command: Run command. + :type run_command: str + :param url: Job URL. + :type url: str + :param extra_info_url: Extra Info URL. + :type extra_info_url: str + :param web_job_type: Job type. Possible values include: "Continuous", "Triggered". + :type web_job_type: str or ~azure.mgmt.web.v2021_01_15.models.WebJobType + :param error: Error information. + :type error: str + :param using_sdk: Using SDK?. + :type using_sdk: bool + :param settings: Job settings. + :type settings: dict[str, any] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'detailed_status': {'key': 'properties.detailed_status', 'type': 'str'}, + 'log_url': {'key': 'properties.log_url', 'type': 'str'}, + 'run_command': {'key': 'properties.run_command', 'type': 'str'}, + 'url': {'key': 'properties.url', 'type': 'str'}, + 'extra_info_url': {'key': 'properties.extra_info_url', 'type': 'str'}, + 'web_job_type': {'key': 'properties.web_job_type', 'type': 'str'}, + 'error': {'key': 'properties.error', 'type': 'str'}, + 'using_sdk': {'key': 'properties.using_sdk', 'type': 'bool'}, + 'settings': {'key': 'properties.settings', 'type': '{object}'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + status: Optional[Union[str, "ContinuousWebJobStatus"]] = None, + detailed_status: Optional[str] = None, + log_url: Optional[str] = None, + run_command: Optional[str] = None, + url: Optional[str] = None, + extra_info_url: Optional[str] = None, + web_job_type: Optional[Union[str, "WebJobType"]] = None, + error: Optional[str] = None, + using_sdk: Optional[bool] = None, + settings: Optional[Dict[str, Any]] = None, + **kwargs + ): + super(ContinuousWebJob, self).__init__(kind=kind, **kwargs) + self.status = status + self.detailed_status = detailed_status + self.log_url = log_url + self.run_command = run_command + self.url = url + self.extra_info_url = extra_info_url + self.web_job_type = web_job_type + self.error = error + self.using_sdk = using_sdk + self.settings = settings + + +class ContinuousWebJobCollection(msrest.serialization.Model): + """Collection of Kudu continuous web job information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.ContinuousWebJob] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ContinuousWebJob]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["ContinuousWebJob"], + **kwargs + ): + super(ContinuousWebJobCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class CookieExpiration(ProxyOnlyResource): + """The configuration settings of the session cookie's expiration. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param convention: The convention used when determining the session cookie's expiration. + Possible values include: "FixedTime", "IdentityProviderDerived". + :type convention: str or ~azure.mgmt.web.v2021_01_15.models.CookieExpirationConvention + :param time_to_expiration: The time after the request is made when the session cookie should + expire. + :type time_to_expiration: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'convention': {'key': 'properties.convention', 'type': 'str'}, + 'time_to_expiration': {'key': 'properties.timeToExpiration', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + convention: Optional[Union[str, "CookieExpirationConvention"]] = None, + time_to_expiration: Optional[str] = None, + **kwargs + ): + super(CookieExpiration, self).__init__(kind=kind, **kwargs) + self.convention = convention + self.time_to_expiration = time_to_expiration + + +class CorsSettings(msrest.serialization.Model): + """Cross-Origin Resource Sharing (CORS) settings for the app. + + :param allowed_origins: Gets or sets the list of origins that should be allowed to make + cross-origin + calls (for example: http://example.com:12345). Use "*" to allow all. + :type allowed_origins: list[str] + :param support_credentials: Gets or sets whether CORS requests with credentials are allowed. + See + https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials + for more details. + :type support_credentials: bool + """ + + _attribute_map = { + 'allowed_origins': {'key': 'allowedOrigins', 'type': '[str]'}, + 'support_credentials': {'key': 'supportCredentials', 'type': 'bool'}, + } + + def __init__( + self, + *, + allowed_origins: Optional[List[str]] = None, + support_credentials: Optional[bool] = None, + **kwargs + ): + super(CorsSettings, self).__init__(**kwargs) + self.allowed_origins = allowed_origins + self.support_credentials = support_credentials + + +class CsmMoveResourceEnvelope(msrest.serialization.Model): + """Object with a list of the resources that need to be moved and the resource group they should be moved to. + + :param target_resource_group: + :type target_resource_group: str + :param resources: + :type resources: list[str] + """ + + _validation = { + 'target_resource_group': {'max_length': 90, 'min_length': 1, 'pattern': r' ^[-\w\._\(\)]+[^\.]$'}, + } + + _attribute_map = { + 'target_resource_group': {'key': 'targetResourceGroup', 'type': 'str'}, + 'resources': {'key': 'resources', 'type': '[str]'}, + } + + def __init__( + self, + *, + target_resource_group: Optional[str] = None, + resources: Optional[List[str]] = None, + **kwargs + ): + super(CsmMoveResourceEnvelope, self).__init__(**kwargs) + self.target_resource_group = target_resource_group + self.resources = resources + + +class CsmOperationCollection(msrest.serialization.Model): + """Collection of Azure resource manager operation metadata. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.CsmOperationDescription] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[CsmOperationDescription]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["CsmOperationDescription"], + **kwargs + ): + super(CsmOperationCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class CsmOperationDescription(msrest.serialization.Model): + """Description of an operation available for Microsoft.Web resource provider. + + :param name: + :type name: str + :param is_data_action: + :type is_data_action: bool + :param display: Meta data about operation used for display in portal. + :type display: ~azure.mgmt.web.v2021_01_15.models.CsmOperationDisplay + :param origin: + :type origin: str + :param properties: Properties available for a Microsoft.Web resource provider operation. + :type properties: ~azure.mgmt.web.v2021_01_15.models.CsmOperationDescriptionProperties + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'is_data_action': {'key': 'isDataAction', 'type': 'bool'}, + 'display': {'key': 'display', 'type': 'CsmOperationDisplay'}, + 'origin': {'key': 'origin', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'CsmOperationDescriptionProperties'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + is_data_action: Optional[bool] = None, + display: Optional["CsmOperationDisplay"] = None, + origin: Optional[str] = None, + properties: Optional["CsmOperationDescriptionProperties"] = None, + **kwargs + ): + super(CsmOperationDescription, self).__init__(**kwargs) + self.name = name + self.is_data_action = is_data_action + self.display = display + self.origin = origin + self.properties = properties + + +class CsmOperationDescriptionProperties(msrest.serialization.Model): + """Properties available for a Microsoft.Web resource provider operation. + + :param service_specification: Resource metrics service provided by Microsoft.Insights resource + provider. + :type service_specification: ~azure.mgmt.web.v2021_01_15.models.ServiceSpecification + """ + + _attribute_map = { + 'service_specification': {'key': 'serviceSpecification', 'type': 'ServiceSpecification'}, + } + + def __init__( + self, + *, + service_specification: Optional["ServiceSpecification"] = None, + **kwargs + ): + super(CsmOperationDescriptionProperties, self).__init__(**kwargs) + self.service_specification = service_specification + + +class CsmOperationDisplay(msrest.serialization.Model): + """Meta data about operation used for display in portal. + + :param provider: + :type provider: str + :param resource: + :type resource: str + :param operation: + :type operation: str + :param description: + :type description: str + """ + + _attribute_map = { + 'provider': {'key': 'provider', 'type': 'str'}, + 'resource': {'key': 'resource', 'type': 'str'}, + 'operation': {'key': 'operation', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__( + self, + *, + provider: Optional[str] = None, + resource: Optional[str] = None, + operation: Optional[str] = None, + description: Optional[str] = None, + **kwargs + ): + super(CsmOperationDisplay, self).__init__(**kwargs) + self.provider = provider + self.resource = resource + self.operation = operation + self.description = description + + +class CsmPublishingCredentialsPoliciesEntity(ProxyOnlyResource): + """Publishing Credentials Policies parameters. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param allow: :code:`true` to allow access to a publishing method; otherwise, + :code:`false`. + :type allow: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'allow': {'key': 'properties.allow', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + allow: Optional[bool] = None, + **kwargs + ): + super(CsmPublishingCredentialsPoliciesEntity, self).__init__(kind=kind, **kwargs) + self.allow = allow + + +class CsmPublishingProfileOptions(msrest.serialization.Model): + """Publishing options for requested profile. + + :param format: Name of the format. Valid values are: + FileZilla3 + WebDeploy -- default + Ftp. Possible values include: "FileZilla3", "WebDeploy", "Ftp". + :type format: str or ~azure.mgmt.web.v2021_01_15.models.PublishingProfileFormat + :param include_disaster_recovery_endpoints: Include the DisasterRecover endpoint if true. + :type include_disaster_recovery_endpoints: bool + """ + + _attribute_map = { + 'format': {'key': 'format', 'type': 'str'}, + 'include_disaster_recovery_endpoints': {'key': 'includeDisasterRecoveryEndpoints', 'type': 'bool'}, + } + + def __init__( + self, + *, + format: Optional[Union[str, "PublishingProfileFormat"]] = None, + include_disaster_recovery_endpoints: Optional[bool] = None, + **kwargs + ): + super(CsmPublishingProfileOptions, self).__init__(**kwargs) + self.format = format + self.include_disaster_recovery_endpoints = include_disaster_recovery_endpoints + + +class CsmSlotEntity(msrest.serialization.Model): + """Deployment slot parameters. + + All required parameters must be populated in order to send to Azure. + + :param target_slot: Required. Destination deployment slot during swap operation. + :type target_slot: str + :param preserve_vnet: Required. :code:`true` to preserve Virtual Network to the + slot during swap; otherwise, :code:`false`. + :type preserve_vnet: bool + """ + + _validation = { + 'target_slot': {'required': True}, + 'preserve_vnet': {'required': True}, + } + + _attribute_map = { + 'target_slot': {'key': 'targetSlot', 'type': 'str'}, + 'preserve_vnet': {'key': 'preserveVnet', 'type': 'bool'}, + } + + def __init__( + self, + *, + target_slot: str, + preserve_vnet: bool, + **kwargs + ): + super(CsmSlotEntity, self).__init__(**kwargs) + self.target_slot = target_slot + self.preserve_vnet = preserve_vnet + + +class CsmUsageQuota(msrest.serialization.Model): + """Usage of the quota resource. + + :param unit: Units of measurement for the quota resource. + :type unit: str + :param next_reset_time: Next reset time for the resource counter. + :type next_reset_time: ~datetime.datetime + :param current_value: The current value of the resource counter. + :type current_value: long + :param limit: The resource limit. + :type limit: long + :param name: Quota name. + :type name: ~azure.mgmt.web.v2021_01_15.models.LocalizableString + """ + + _attribute_map = { + 'unit': {'key': 'unit', 'type': 'str'}, + 'next_reset_time': {'key': 'nextResetTime', 'type': 'iso-8601'}, + 'current_value': {'key': 'currentValue', 'type': 'long'}, + 'limit': {'key': 'limit', 'type': 'long'}, + 'name': {'key': 'name', 'type': 'LocalizableString'}, + } + + def __init__( + self, + *, + unit: Optional[str] = None, + next_reset_time: Optional[datetime.datetime] = None, + current_value: Optional[int] = None, + limit: Optional[int] = None, + name: Optional["LocalizableString"] = None, + **kwargs + ): + super(CsmUsageQuota, self).__init__(**kwargs) + self.unit = unit + self.next_reset_time = next_reset_time + self.current_value = current_value + self.limit = limit + self.name = name + + +class CsmUsageQuotaCollection(msrest.serialization.Model): + """Collection of CSM usage quotas. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.CsmUsageQuota] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[CsmUsageQuota]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["CsmUsageQuota"], + **kwargs + ): + super(CsmUsageQuotaCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class CustomHostnameAnalysisResult(ProxyOnlyResource): + """Custom domain analysis. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar is_hostname_already_verified: :code:`true` if hostname is already verified; + otherwise, :code:`false`. + :vartype is_hostname_already_verified: bool + :ivar custom_domain_verification_test: DNS verification test result. Possible values include: + "Passed", "Failed", "Skipped". + :vartype custom_domain_verification_test: str or + ~azure.mgmt.web.v2021_01_15.models.DnsVerificationTestResult + :ivar custom_domain_verification_failure_info: Raw failure information if DNS verification + fails. + :vartype custom_domain_verification_failure_info: + ~azure.mgmt.web.v2021_01_15.models.ErrorEntity + :ivar has_conflict_on_scale_unit: :code:`true` if there is a conflict on a scale + unit; otherwise, :code:`false`. + :vartype has_conflict_on_scale_unit: bool + :ivar has_conflict_across_subscription: :code:`true` if there is a conflict across + subscriptions; otherwise, :code:`false`. + :vartype has_conflict_across_subscription: bool + :ivar conflicting_app_resource_id: Name of the conflicting app on scale unit if it's within the + same subscription. + :vartype conflicting_app_resource_id: str + :param c_name_records: CName records controller can see for this hostname. + :type c_name_records: list[str] + :param txt_records: TXT records controller can see for this hostname. + :type txt_records: list[str] + :param a_records: A records controller can see for this hostname. + :type a_records: list[str] + :param alternate_c_name_records: Alternate CName records controller can see for this hostname. + :type alternate_c_name_records: list[str] + :param alternate_txt_records: Alternate TXT records controller can see for this hostname. + :type alternate_txt_records: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'is_hostname_already_verified': {'readonly': True}, + 'custom_domain_verification_test': {'readonly': True}, + 'custom_domain_verification_failure_info': {'readonly': True}, + 'has_conflict_on_scale_unit': {'readonly': True}, + 'has_conflict_across_subscription': {'readonly': True}, + 'conflicting_app_resource_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'is_hostname_already_verified': {'key': 'properties.isHostnameAlreadyVerified', 'type': 'bool'}, + 'custom_domain_verification_test': {'key': 'properties.customDomainVerificationTest', 'type': 'str'}, + 'custom_domain_verification_failure_info': {'key': 'properties.customDomainVerificationFailureInfo', 'type': 'ErrorEntity'}, + 'has_conflict_on_scale_unit': {'key': 'properties.hasConflictOnScaleUnit', 'type': 'bool'}, + 'has_conflict_across_subscription': {'key': 'properties.hasConflictAcrossSubscription', 'type': 'bool'}, + 'conflicting_app_resource_id': {'key': 'properties.conflictingAppResourceId', 'type': 'str'}, + 'c_name_records': {'key': 'properties.cNameRecords', 'type': '[str]'}, + 'txt_records': {'key': 'properties.txtRecords', 'type': '[str]'}, + 'a_records': {'key': 'properties.aRecords', 'type': '[str]'}, + 'alternate_c_name_records': {'key': 'properties.alternateCNameRecords', 'type': '[str]'}, + 'alternate_txt_records': {'key': 'properties.alternateTxtRecords', 'type': '[str]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + c_name_records: Optional[List[str]] = None, + txt_records: Optional[List[str]] = None, + a_records: Optional[List[str]] = None, + alternate_c_name_records: Optional[List[str]] = None, + alternate_txt_records: Optional[List[str]] = None, + **kwargs + ): + super(CustomHostnameAnalysisResult, self).__init__(kind=kind, **kwargs) + self.is_hostname_already_verified = None + self.custom_domain_verification_test = None + self.custom_domain_verification_failure_info = None + self.has_conflict_on_scale_unit = None + self.has_conflict_across_subscription = None + self.conflicting_app_resource_id = None + self.c_name_records = c_name_records + self.txt_records = txt_records + self.a_records = a_records + self.alternate_c_name_records = alternate_c_name_records + self.alternate_txt_records = alternate_txt_records + + +class CustomOpenIdConnectProvider(ProxyOnlyResource): + """The configuration settings of the custom Open ID Connect provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the custom Open ID provider provider should not + be enabled; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the app registration for the custom Open ID + Connect provider. + :type registration: ~azure.mgmt.web.v2021_01_15.models.OpenIdConnectRegistration + :param login: The configuration settings of the login flow of the custom Open ID Connect + provider. + :type login: ~azure.mgmt.web.v2021_01_15.models.OpenIdConnectLogin + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'OpenIdConnectRegistration'}, + 'login': {'key': 'properties.login', 'type': 'OpenIdConnectLogin'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + enabled: Optional[bool] = None, + registration: Optional["OpenIdConnectRegistration"] = None, + login: Optional["OpenIdConnectLogin"] = None, + **kwargs + ): + super(CustomOpenIdConnectProvider, self).__init__(kind=kind, **kwargs) + self.enabled = enabled + self.registration = registration + self.login = login + + +class DatabaseBackupSetting(msrest.serialization.Model): + """Database backup settings. + + All required parameters must be populated in order to send to Azure. + + :param database_type: Required. Database type (e.g. SqlAzure / MySql). Possible values include: + "SqlAzure", "MySql", "LocalMySql", "PostgreSql". + :type database_type: str or ~azure.mgmt.web.v2021_01_15.models.DatabaseType + :param name: + :type name: str + :param connection_string_name: Contains a connection string name that is linked to the + SiteConfig.ConnectionStrings. + This is used during restore with overwrite connection strings options. + :type connection_string_name: str + :param connection_string: Contains a connection string to a database which is being backed up + or restored. If the restore should happen to a new database, the database name inside is the + new one. + :type connection_string: str + """ + + _validation = { + 'database_type': {'required': True}, + } + + _attribute_map = { + 'database_type': {'key': 'databaseType', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'connection_string_name': {'key': 'connectionStringName', 'type': 'str'}, + 'connection_string': {'key': 'connectionString', 'type': 'str'}, + } + + def __init__( + self, + *, + database_type: Union[str, "DatabaseType"], + name: Optional[str] = None, + connection_string_name: Optional[str] = None, + connection_string: Optional[str] = None, + **kwargs + ): + super(DatabaseBackupSetting, self).__init__(**kwargs) + self.database_type = database_type + self.name = name + self.connection_string_name = connection_string_name + self.connection_string = connection_string + + +class DataProviderMetadata(msrest.serialization.Model): + """Additional configuration for a data providers. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param provider_name: + :type provider_name: str + :ivar property_bag: Settings for the data provider. + :vartype property_bag: list[~azure.mgmt.web.v2021_01_15.models.KeyValuePairStringObject] + """ + + _validation = { + 'property_bag': {'readonly': True}, + } + + _attribute_map = { + 'provider_name': {'key': 'providerName', 'type': 'str'}, + 'property_bag': {'key': 'propertyBag', 'type': '[KeyValuePairStringObject]'}, + } + + def __init__( + self, + *, + provider_name: Optional[str] = None, + **kwargs + ): + super(DataProviderMetadata, self).__init__(**kwargs) + self.provider_name = provider_name + self.property_bag = None + + +class DataSource(msrest.serialization.Model): + """Class representing data source used by the detectors. + + :param instructions: Instructions if any for the data source. + :type instructions: list[str] + :param data_source_uri: Datasource Uri Links. + :type data_source_uri: list[~azure.mgmt.web.v2021_01_15.models.NameValuePair] + """ + + _attribute_map = { + 'instructions': {'key': 'instructions', 'type': '[str]'}, + 'data_source_uri': {'key': 'dataSourceUri', 'type': '[NameValuePair]'}, + } + + def __init__( + self, + *, + instructions: Optional[List[str]] = None, + data_source_uri: Optional[List["NameValuePair"]] = None, + **kwargs + ): + super(DataSource, self).__init__(**kwargs) + self.instructions = instructions + self.data_source_uri = data_source_uri + + +class DataTableResponseColumn(msrest.serialization.Model): + """Column definition. + + :param column_name: Name of the column. + :type column_name: str + :param data_type: Data type which looks like 'String' or 'Int32'. + :type data_type: str + :param column_type: Column Type. + :type column_type: str + """ + + _attribute_map = { + 'column_name': {'key': 'columnName', 'type': 'str'}, + 'data_type': {'key': 'dataType', 'type': 'str'}, + 'column_type': {'key': 'columnType', 'type': 'str'}, + } + + def __init__( + self, + *, + column_name: Optional[str] = None, + data_type: Optional[str] = None, + column_type: Optional[str] = None, + **kwargs + ): + super(DataTableResponseColumn, self).__init__(**kwargs) + self.column_name = column_name + self.data_type = data_type + self.column_type = column_type + + +class DataTableResponseObject(msrest.serialization.Model): + """Data Table which defines columns and raw row values. + + :param table_name: Name of the table. + :type table_name: str + :param columns: List of columns with data types. + :type columns: list[~azure.mgmt.web.v2021_01_15.models.DataTableResponseColumn] + :param rows: Raw row values. + :type rows: list[list[str]] + """ + + _attribute_map = { + 'table_name': {'key': 'tableName', 'type': 'str'}, + 'columns': {'key': 'columns', 'type': '[DataTableResponseColumn]'}, + 'rows': {'key': 'rows', 'type': '[[str]]'}, + } + + def __init__( + self, + *, + table_name: Optional[str] = None, + columns: Optional[List["DataTableResponseColumn"]] = None, + rows: Optional[List[List[str]]] = None, + **kwargs + ): + super(DataTableResponseObject, self).__init__(**kwargs) + self.table_name = table_name + self.columns = columns + self.rows = rows + + +class DefaultErrorResponse(msrest.serialization.Model): + """App Service error response. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar error: Error model. + :vartype error: ~azure.mgmt.web.v2021_01_15.models.DefaultErrorResponseError + """ + + _validation = { + 'error': {'readonly': True}, + } + + _attribute_map = { + 'error': {'key': 'error', 'type': 'DefaultErrorResponseError'}, + } + + def __init__( + self, + **kwargs + ): + super(DefaultErrorResponse, self).__init__(**kwargs) + self.error = None + + +class DefaultErrorResponseError(msrest.serialization.Model): + """Error model. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar code: Standardized string to programmatically identify the error. + :vartype code: str + :ivar message: Detailed error description and debugging information. + :vartype message: str + :ivar target: Detailed error description and debugging information. + :vartype target: str + :param details: + :type details: list[~azure.mgmt.web.v2021_01_15.models.DefaultErrorResponseErrorDetailsItem] + :ivar innererror: More information to debug error. + :vartype innererror: str + """ + + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + 'target': {'readonly': True}, + 'innererror': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[DefaultErrorResponseErrorDetailsItem]'}, + 'innererror': {'key': 'innererror', 'type': 'str'}, + } + + def __init__( + self, + *, + details: Optional[List["DefaultErrorResponseErrorDetailsItem"]] = None, + **kwargs + ): + super(DefaultErrorResponseError, self).__init__(**kwargs) + self.code = None + self.message = None + self.target = None + self.details = details + self.innererror = None + + +class DefaultErrorResponseErrorDetailsItem(msrest.serialization.Model): + """Detailed errors. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar code: Standardized string to programmatically identify the error. + :vartype code: str + :ivar message: Detailed error description and debugging information. + :vartype message: str + :ivar target: Detailed error description and debugging information. + :vartype target: str + """ + + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + 'target': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DefaultErrorResponseErrorDetailsItem, self).__init__(**kwargs) + self.code = None + self.message = None + self.target = None + + +class DeletedAppRestoreRequest(ProxyOnlyResource): + """Details about restoring a deleted app. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param deleted_site_id: ARM resource ID of the deleted app. Example: + /subscriptions/{subId}/providers/Microsoft.Web/deletedSites/{deletedSiteId}. + :type deleted_site_id: str + :param recover_configuration: If true, deleted site configuration, in addition to content, will + be restored. + :type recover_configuration: bool + :param snapshot_time: Point in time to restore the deleted app from, formatted as a DateTime + string. + If unspecified, default value is the time that the app was deleted. + :type snapshot_time: str + :param use_dr_secondary: If true, the snapshot is retrieved from DRSecondary endpoint. + :type use_dr_secondary: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'deleted_site_id': {'key': 'properties.deletedSiteId', 'type': 'str'}, + 'recover_configuration': {'key': 'properties.recoverConfiguration', 'type': 'bool'}, + 'snapshot_time': {'key': 'properties.snapshotTime', 'type': 'str'}, + 'use_dr_secondary': {'key': 'properties.useDRSecondary', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + deleted_site_id: Optional[str] = None, + recover_configuration: Optional[bool] = None, + snapshot_time: Optional[str] = None, + use_dr_secondary: Optional[bool] = None, + **kwargs + ): + super(DeletedAppRestoreRequest, self).__init__(kind=kind, **kwargs) + self.deleted_site_id = deleted_site_id + self.recover_configuration = recover_configuration + self.snapshot_time = snapshot_time + self.use_dr_secondary = use_dr_secondary + + +class DeletedSite(ProxyOnlyResource): + """A deleted app. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar deleted_site_id: Numeric id for the deleted site. + :vartype deleted_site_id: int + :ivar deleted_timestamp: Time in UTC when the app was deleted. + :vartype deleted_timestamp: str + :ivar subscription: Subscription containing the deleted site. + :vartype subscription: str + :ivar resource_group: ResourceGroup that contained the deleted site. + :vartype resource_group: str + :ivar deleted_site_name: Name of the deleted site. + :vartype deleted_site_name: str + :ivar slot: Slot of the deleted site. + :vartype slot: str + :ivar kind_properties_kind: Kind of site that was deleted. + :vartype kind_properties_kind: str + :ivar geo_region_name: Geo Region of the deleted site. + :vartype geo_region_name: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'deleted_site_id': {'readonly': True}, + 'deleted_timestamp': {'readonly': True}, + 'subscription': {'readonly': True}, + 'resource_group': {'readonly': True}, + 'deleted_site_name': {'readonly': True}, + 'slot': {'readonly': True}, + 'kind_properties_kind': {'readonly': True}, + 'geo_region_name': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'deleted_site_id': {'key': 'properties.deletedSiteId', 'type': 'int'}, + 'deleted_timestamp': {'key': 'properties.deletedTimestamp', 'type': 'str'}, + 'subscription': {'key': 'properties.subscription', 'type': 'str'}, + 'resource_group': {'key': 'properties.resourceGroup', 'type': 'str'}, + 'deleted_site_name': {'key': 'properties.deletedSiteName', 'type': 'str'}, + 'slot': {'key': 'properties.slot', 'type': 'str'}, + 'kind_properties_kind': {'key': 'properties.kind', 'type': 'str'}, + 'geo_region_name': {'key': 'properties.geoRegionName', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(DeletedSite, self).__init__(kind=kind, **kwargs) + self.deleted_site_id = None + self.deleted_timestamp = None + self.subscription = None + self.resource_group = None + self.deleted_site_name = None + self.slot = None + self.kind_properties_kind = None + self.geo_region_name = None + + +class DeletedWebAppCollection(msrest.serialization.Model): + """Collection of deleted apps. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.DeletedSite] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[DeletedSite]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["DeletedSite"], + **kwargs + ): + super(DeletedWebAppCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class Deployment(ProxyOnlyResource): + """User credentials used for publishing activity. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param status: Deployment status. + :type status: int + :param message: Details about deployment status. + :type message: str + :param author: Who authored the deployment. + :type author: str + :param deployer: Who performed the deployment. + :type deployer: str + :param author_email: Author email. + :type author_email: str + :param start_time: Start time. + :type start_time: ~datetime.datetime + :param end_time: End time. + :type end_time: ~datetime.datetime + :param active: True if deployment is currently active, false if completed and null if not + started. + :type active: bool + :param details: Details on deployment. + :type details: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'int'}, + 'message': {'key': 'properties.message', 'type': 'str'}, + 'author': {'key': 'properties.author', 'type': 'str'}, + 'deployer': {'key': 'properties.deployer', 'type': 'str'}, + 'author_email': {'key': 'properties.author_email', 'type': 'str'}, + 'start_time': {'key': 'properties.start_time', 'type': 'iso-8601'}, + 'end_time': {'key': 'properties.end_time', 'type': 'iso-8601'}, + 'active': {'key': 'properties.active', 'type': 'bool'}, + 'details': {'key': 'properties.details', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + status: Optional[int] = None, + message: Optional[str] = None, + author: Optional[str] = None, + deployer: Optional[str] = None, + author_email: Optional[str] = None, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + active: Optional[bool] = None, + details: Optional[str] = None, + **kwargs + ): + super(Deployment, self).__init__(kind=kind, **kwargs) + self.status = status + self.message = message + self.author = author + self.deployer = deployer + self.author_email = author_email + self.start_time = start_time + self.end_time = end_time + self.active = active + self.details = details + + +class DeploymentCollection(msrest.serialization.Model): + """Collection of app deployments. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.Deployment] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Deployment]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["Deployment"], + **kwargs + ): + super(DeploymentCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class DeploymentLocations(msrest.serialization.Model): + """List of available locations (regions or App Service Environments) for +deployment of App Service resources. + + :param locations: Available regions. + :type locations: list[~azure.mgmt.web.v2021_01_15.models.GeoRegion] + :param hosting_environments: Available App Service Environments with full descriptions of the + environments. + :type hosting_environments: list[~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironment] + :param hosting_environment_deployment_infos: Available App Service Environments with basic + information. + :type hosting_environment_deployment_infos: + list[~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentDeploymentInfo] + """ + + _attribute_map = { + 'locations': {'key': 'locations', 'type': '[GeoRegion]'}, + 'hosting_environments': {'key': 'hostingEnvironments', 'type': '[AppServiceEnvironment]'}, + 'hosting_environment_deployment_infos': {'key': 'hostingEnvironmentDeploymentInfos', 'type': '[HostingEnvironmentDeploymentInfo]'}, + } + + def __init__( + self, + *, + locations: Optional[List["GeoRegion"]] = None, + hosting_environments: Optional[List["AppServiceEnvironment"]] = None, + hosting_environment_deployment_infos: Optional[List["HostingEnvironmentDeploymentInfo"]] = None, + **kwargs + ): + super(DeploymentLocations, self).__init__(**kwargs) + self.locations = locations + self.hosting_environments = hosting_environments + self.hosting_environment_deployment_infos = hosting_environment_deployment_infos + + +class DetectorAbnormalTimePeriod(msrest.serialization.Model): + """Class representing Abnormal Time Period detected. + + :param start_time: Start time of the correlated event. + :type start_time: ~datetime.datetime + :param end_time: End time of the correlated event. + :type end_time: ~datetime.datetime + :param message: Message describing the event. + :type message: str + :param source: Represents the name of the Detector. + :type source: str + :param priority: Represents the rank of the Detector. + :type priority: float + :param meta_data: Downtime metadata. + :type meta_data: list[list[~azure.mgmt.web.v2021_01_15.models.NameValuePair]] + :param type: Represents the type of the Detector. Possible values include: "ServiceIncident", + "AppDeployment", "AppCrash", "RuntimeIssueDetected", "AseDeployment", "UserIssue", + "PlatformIssue", "Other". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.IssueType + :param solutions: List of proposed solutions. + :type solutions: list[~azure.mgmt.web.v2021_01_15.models.Solution] + """ + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'message': {'key': 'message', 'type': 'str'}, + 'source': {'key': 'source', 'type': 'str'}, + 'priority': {'key': 'priority', 'type': 'float'}, + 'meta_data': {'key': 'metaData', 'type': '[[NameValuePair]]'}, + 'type': {'key': 'type', 'type': 'str'}, + 'solutions': {'key': 'solutions', 'type': '[Solution]'}, + } + + def __init__( + self, + *, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + message: Optional[str] = None, + source: Optional[str] = None, + priority: Optional[float] = None, + meta_data: Optional[List[List["NameValuePair"]]] = None, + type: Optional[Union[str, "IssueType"]] = None, + solutions: Optional[List["Solution"]] = None, + **kwargs + ): + super(DetectorAbnormalTimePeriod, self).__init__(**kwargs) + self.start_time = start_time + self.end_time = end_time + self.message = message + self.source = source + self.priority = priority + self.meta_data = meta_data + self.type = type + self.solutions = solutions + + +class DetectorDefinition(ProxyOnlyResource): + """Class representing detector definition. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar display_name: Display name of the detector. + :vartype display_name: str + :ivar description: Description of the detector. + :vartype description: str + :ivar rank: Detector Rank. + :vartype rank: float + :ivar is_enabled: Flag representing whether detector is enabled or not. + :vartype is_enabled: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'display_name': {'readonly': True}, + 'description': {'readonly': True}, + 'rank': {'readonly': True}, + 'is_enabled': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'display_name': {'key': 'properties.displayName', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'rank': {'key': 'properties.rank', 'type': 'float'}, + 'is_enabled': {'key': 'properties.isEnabled', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(DetectorDefinition, self).__init__(kind=kind, **kwargs) + self.display_name = None + self.description = None + self.rank = None + self.is_enabled = None + + +class DetectorInfo(msrest.serialization.Model): + """Definition of Detector. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Id of detector. + :vartype id: str + :ivar name: Name of detector. + :vartype name: str + :ivar description: Short description of the detector and its purpose. + :vartype description: str + :ivar author: Author of the detector. + :vartype author: str + :ivar category: Problem category. This serves for organizing group for detectors. + :vartype category: str + :ivar support_topic_list: List of Support Topics for which this detector is enabled. + :vartype support_topic_list: list[~azure.mgmt.web.v2021_01_15.models.SupportTopic] + :ivar analysis_type: Analysis Types for which this detector should apply to. + :vartype analysis_type: list[str] + :ivar type: Whether this detector is an Analysis Detector or not. Possible values include: + "Detector", "Analysis", "CategoryOverview". + :vartype type: str or ~azure.mgmt.web.v2021_01_15.models.DetectorType + :ivar score: Defines score of a detector to power ML based matching. + :vartype score: float + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'description': {'readonly': True}, + 'author': {'readonly': True}, + 'category': {'readonly': True}, + 'support_topic_list': {'readonly': True}, + 'analysis_type': {'readonly': True}, + 'type': {'readonly': True}, + 'score': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'author': {'key': 'author', 'type': 'str'}, + 'category': {'key': 'category', 'type': 'str'}, + 'support_topic_list': {'key': 'supportTopicList', 'type': '[SupportTopic]'}, + 'analysis_type': {'key': 'analysisType', 'type': '[str]'}, + 'type': {'key': 'type', 'type': 'str'}, + 'score': {'key': 'score', 'type': 'float'}, + } + + def __init__( + self, + **kwargs + ): + super(DetectorInfo, self).__init__(**kwargs) + self.id = None + self.name = None + self.description = None + self.author = None + self.category = None + self.support_topic_list = None + self.analysis_type = None + self.type = None + self.score = None + + +class DetectorResponse(ProxyOnlyResource): + """Class representing Response from Detector. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param metadata: metadata for the detector. + :type metadata: ~azure.mgmt.web.v2021_01_15.models.DetectorInfo + :param dataset: Data Set. + :type dataset: list[~azure.mgmt.web.v2021_01_15.models.DiagnosticData] + :param status: Indicates status of the most severe insight. + :type status: ~azure.mgmt.web.v2021_01_15.models.Status + :param data_providers_metadata: Additional configuration for different data providers to be + used by the UI. + :type data_providers_metadata: list[~azure.mgmt.web.v2021_01_15.models.DataProviderMetadata] + :param suggested_utterances: Suggested utterances where the detector can be applicable. + :type suggested_utterances: ~azure.mgmt.web.v2021_01_15.models.QueryUtterancesResults + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'metadata': {'key': 'properties.metadata', 'type': 'DetectorInfo'}, + 'dataset': {'key': 'properties.dataset', 'type': '[DiagnosticData]'}, + 'status': {'key': 'properties.status', 'type': 'Status'}, + 'data_providers_metadata': {'key': 'properties.dataProvidersMetadata', 'type': '[DataProviderMetadata]'}, + 'suggested_utterances': {'key': 'properties.suggestedUtterances', 'type': 'QueryUtterancesResults'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + metadata: Optional["DetectorInfo"] = None, + dataset: Optional[List["DiagnosticData"]] = None, + status: Optional["Status"] = None, + data_providers_metadata: Optional[List["DataProviderMetadata"]] = None, + suggested_utterances: Optional["QueryUtterancesResults"] = None, + **kwargs + ): + super(DetectorResponse, self).__init__(kind=kind, **kwargs) + self.metadata = metadata + self.dataset = dataset + self.status = status + self.data_providers_metadata = data_providers_metadata + self.suggested_utterances = suggested_utterances + + +class DetectorResponseCollection(msrest.serialization.Model): + """Collection of detector responses. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.DetectorResponse] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[DetectorResponse]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["DetectorResponse"], + **kwargs + ): + super(DetectorResponseCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class DiagnosticAnalysis(ProxyOnlyResource): + """Class representing a diagnostic analysis done on an application. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param start_time: Start time of the period. + :type start_time: ~datetime.datetime + :param end_time: End time of the period. + :type end_time: ~datetime.datetime + :param abnormal_time_periods: List of time periods. + :type abnormal_time_periods: list[~azure.mgmt.web.v2021_01_15.models.AbnormalTimePeriod] + :param payload: Data by each detector. + :type payload: list[~azure.mgmt.web.v2021_01_15.models.AnalysisData] + :param non_correlated_detectors: Data by each detector for detectors that did not corelate. + :type non_correlated_detectors: list[~azure.mgmt.web.v2021_01_15.models.DetectorDefinition] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'start_time': {'key': 'properties.startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'properties.endTime', 'type': 'iso-8601'}, + 'abnormal_time_periods': {'key': 'properties.abnormalTimePeriods', 'type': '[AbnormalTimePeriod]'}, + 'payload': {'key': 'properties.payload', 'type': '[AnalysisData]'}, + 'non_correlated_detectors': {'key': 'properties.nonCorrelatedDetectors', 'type': '[DetectorDefinition]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + abnormal_time_periods: Optional[List["AbnormalTimePeriod"]] = None, + payload: Optional[List["AnalysisData"]] = None, + non_correlated_detectors: Optional[List["DetectorDefinition"]] = None, + **kwargs + ): + super(DiagnosticAnalysis, self).__init__(kind=kind, **kwargs) + self.start_time = start_time + self.end_time = end_time + self.abnormal_time_periods = abnormal_time_periods + self.payload = payload + self.non_correlated_detectors = non_correlated_detectors + + +class DiagnosticAnalysisCollection(msrest.serialization.Model): + """Collection of Diagnostic Analyses. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.AnalysisDefinition] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[AnalysisDefinition]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["AnalysisDefinition"], + **kwargs + ): + super(DiagnosticAnalysisCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class DiagnosticCategory(ProxyOnlyResource): + """Class representing detector definition. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar description: Description of the diagnostic category. + :vartype description: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'description': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(DiagnosticCategory, self).__init__(kind=kind, **kwargs) + self.description = None + + +class DiagnosticCategoryCollection(msrest.serialization.Model): + """Collection of Diagnostic Categories. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.DiagnosticCategory] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[DiagnosticCategory]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["DiagnosticCategory"], + **kwargs + ): + super(DiagnosticCategoryCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class DiagnosticData(msrest.serialization.Model): + """Set of data with rendering instructions. + + :param table: Data in table form. + :type table: ~azure.mgmt.web.v2021_01_15.models.DataTableResponseObject + :param rendering_properties: Properties that describe how the table should be rendered. + :type rendering_properties: ~azure.mgmt.web.v2021_01_15.models.Rendering + """ + + _attribute_map = { + 'table': {'key': 'table', 'type': 'DataTableResponseObject'}, + 'rendering_properties': {'key': 'renderingProperties', 'type': 'Rendering'}, + } + + def __init__( + self, + *, + table: Optional["DataTableResponseObject"] = None, + rendering_properties: Optional["Rendering"] = None, + **kwargs + ): + super(DiagnosticData, self).__init__(**kwargs) + self.table = table + self.rendering_properties = rendering_properties + + +class DiagnosticDetectorCollection(msrest.serialization.Model): + """Collection of Diagnostic Detectors. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.DetectorDefinition] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[DetectorDefinition]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["DetectorDefinition"], + **kwargs + ): + super(DiagnosticDetectorCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class DiagnosticDetectorResponse(ProxyOnlyResource): + """Class representing Response from Diagnostic Detectors. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param start_time: Start time of the period. + :type start_time: ~datetime.datetime + :param end_time: End time of the period. + :type end_time: ~datetime.datetime + :param issue_detected: Flag representing Issue was detected. + :type issue_detected: bool + :param detector_definition: Detector's definition. + :type detector_definition: ~azure.mgmt.web.v2021_01_15.models.DetectorDefinition + :param metrics: Metrics provided by the detector. + :type metrics: list[~azure.mgmt.web.v2021_01_15.models.DiagnosticMetricSet] + :param abnormal_time_periods: List of Correlated events found by the detector. + :type abnormal_time_periods: + list[~azure.mgmt.web.v2021_01_15.models.DetectorAbnormalTimePeriod] + :param data: Additional Data that detector wants to send. + :type data: list[list[~azure.mgmt.web.v2021_01_15.models.NameValuePair]] + :param response_meta_data: Meta Data. + :type response_meta_data: ~azure.mgmt.web.v2021_01_15.models.ResponseMetaData + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'start_time': {'key': 'properties.startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'properties.endTime', 'type': 'iso-8601'}, + 'issue_detected': {'key': 'properties.issueDetected', 'type': 'bool'}, + 'detector_definition': {'key': 'properties.detectorDefinition', 'type': 'DetectorDefinition'}, + 'metrics': {'key': 'properties.metrics', 'type': '[DiagnosticMetricSet]'}, + 'abnormal_time_periods': {'key': 'properties.abnormalTimePeriods', 'type': '[DetectorAbnormalTimePeriod]'}, + 'data': {'key': 'properties.data', 'type': '[[NameValuePair]]'}, + 'response_meta_data': {'key': 'properties.responseMetaData', 'type': 'ResponseMetaData'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + issue_detected: Optional[bool] = None, + detector_definition: Optional["DetectorDefinition"] = None, + metrics: Optional[List["DiagnosticMetricSet"]] = None, + abnormal_time_periods: Optional[List["DetectorAbnormalTimePeriod"]] = None, + data: Optional[List[List["NameValuePair"]]] = None, + response_meta_data: Optional["ResponseMetaData"] = None, + **kwargs + ): + super(DiagnosticDetectorResponse, self).__init__(kind=kind, **kwargs) + self.start_time = start_time + self.end_time = end_time + self.issue_detected = issue_detected + self.detector_definition = detector_definition + self.metrics = metrics + self.abnormal_time_periods = abnormal_time_periods + self.data = data + self.response_meta_data = response_meta_data + + +class DiagnosticMetricSample(msrest.serialization.Model): + """Class representing Diagnostic Metric. + + :param timestamp: Time at which metric is measured. + :type timestamp: ~datetime.datetime + :param role_instance: Role Instance. Null if this counter is not per instance + This is returned and should be whichever instance name we desire to be returned + i.e. CPU and Memory return RDWORKERNAME (LargeDed..._IN_0) + where RDWORKERNAME is Machine name below and RoleInstance name in parenthesis. + :type role_instance: str + :param total: Total value of the metric. If multiple measurements are made this will have sum + of all. + :type total: float + :param maximum: Maximum of the metric sampled during the time period. + :type maximum: float + :param minimum: Minimum of the metric sampled during the time period. + :type minimum: float + :param is_aggregated: Whether the values are aggregates across all workers or not. + :type is_aggregated: bool + """ + + _attribute_map = { + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + 'role_instance': {'key': 'roleInstance', 'type': 'str'}, + 'total': {'key': 'total', 'type': 'float'}, + 'maximum': {'key': 'maximum', 'type': 'float'}, + 'minimum': {'key': 'minimum', 'type': 'float'}, + 'is_aggregated': {'key': 'isAggregated', 'type': 'bool'}, + } + + def __init__( + self, + *, + timestamp: Optional[datetime.datetime] = None, + role_instance: Optional[str] = None, + total: Optional[float] = None, + maximum: Optional[float] = None, + minimum: Optional[float] = None, + is_aggregated: Optional[bool] = None, + **kwargs + ): + super(DiagnosticMetricSample, self).__init__(**kwargs) + self.timestamp = timestamp + self.role_instance = role_instance + self.total = total + self.maximum = maximum + self.minimum = minimum + self.is_aggregated = is_aggregated + + +class DiagnosticMetricSet(msrest.serialization.Model): + """Class representing Diagnostic Metric information. + + :param name: Name of the metric. + :type name: str + :param unit: Metric's unit. + :type unit: str + :param start_time: Start time of the period. + :type start_time: ~datetime.datetime + :param end_time: End time of the period. + :type end_time: ~datetime.datetime + :param time_grain: Presented time grain. Supported grains at the moment are PT1M, PT1H, P1D. + :type time_grain: str + :param values: Collection of metric values for the selected period based on the + {Microsoft.Web.Hosting.Administration.DiagnosticMetricSet.TimeGrain}. + :type values: list[~azure.mgmt.web.v2021_01_15.models.DiagnosticMetricSample] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'unit': {'key': 'unit', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'time_grain': {'key': 'timeGrain', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[DiagnosticMetricSample]'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + unit: Optional[str] = None, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + time_grain: Optional[str] = None, + values: Optional[List["DiagnosticMetricSample"]] = None, + **kwargs + ): + super(DiagnosticMetricSet, self).__init__(**kwargs) + self.name = name + self.unit = unit + self.start_time = start_time + self.end_time = end_time + self.time_grain = time_grain + self.values = values + + +class Dimension(msrest.serialization.Model): + """Dimension of a resource metric. For e.g. instance specific HTTP requests for a web app, +where instance name is dimension of the metric HTTP request. + + :param name: + :type name: str + :param display_name: + :type display_name: str + :param internal_name: + :type internal_name: str + :param to_be_exported_for_shoebox: + :type to_be_exported_for_shoebox: bool + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'internal_name': {'key': 'internalName', 'type': 'str'}, + 'to_be_exported_for_shoebox': {'key': 'toBeExportedForShoebox', 'type': 'bool'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + display_name: Optional[str] = None, + internal_name: Optional[str] = None, + to_be_exported_for_shoebox: Optional[bool] = None, + **kwargs + ): + super(Dimension, self).__init__(**kwargs) + self.name = name + self.display_name = display_name + self.internal_name = internal_name + self.to_be_exported_for_shoebox = to_be_exported_for_shoebox + + +class Domain(Resource): + """Information about a domain. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param contact_admin: Administrative contact. + :type contact_admin: ~azure.mgmt.web.v2021_01_15.models.Contact + :param contact_billing: Billing contact. + :type contact_billing: ~azure.mgmt.web.v2021_01_15.models.Contact + :param contact_registrant: Registrant contact. + :type contact_registrant: ~azure.mgmt.web.v2021_01_15.models.Contact + :param contact_tech: Technical contact. + :type contact_tech: ~azure.mgmt.web.v2021_01_15.models.Contact + :ivar registration_status: Domain registration status. Possible values include: "Active", + "Awaiting", "Cancelled", "Confiscated", "Disabled", "Excluded", "Expired", "Failed", "Held", + "Locked", "Parked", "Pending", "Reserved", "Reverted", "Suspended", "Transferred", "Unknown", + "Unlocked", "Unparked", "Updated", "JsonConverterFailed". + :vartype registration_status: str or ~azure.mgmt.web.v2021_01_15.models.DomainStatus + :ivar provisioning_state: Domain provisioning state. Possible values include: "Succeeded", + "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :ivar name_servers: Name servers. + :vartype name_servers: list[str] + :param privacy: :code:`true` if domain privacy is enabled for this domain; + otherwise, :code:`false`. + :type privacy: bool + :ivar created_time: Domain creation timestamp. + :vartype created_time: ~datetime.datetime + :ivar expiration_time: Domain expiration timestamp. + :vartype expiration_time: ~datetime.datetime + :ivar last_renewed_time: Timestamp when the domain was renewed last time. + :vartype last_renewed_time: ~datetime.datetime + :param auto_renew: :code:`true` if the domain should be automatically renewed; + otherwise, :code:`false`. + :type auto_renew: bool + :ivar ready_for_dns_record_management: :code:`true` if Azure can assign this + domain to App Service apps; otherwise, :code:`false`. This value will be + :code:`true` if domain registration status is active and + it is hosted on name servers Azure has programmatic access to. + :vartype ready_for_dns_record_management: bool + :ivar managed_host_names: All hostnames derived from the domain and assigned to Azure + resources. + :vartype managed_host_names: list[~azure.mgmt.web.v2021_01_15.models.HostName] + :param consent: Legal agreement consent. + :type consent: ~azure.mgmt.web.v2021_01_15.models.DomainPurchaseConsent + :ivar domain_not_renewable_reasons: Reasons why domain is not renewable. + :vartype domain_not_renewable_reasons: list[str or + ~azure.mgmt.web.v2021_01_15.models.DomainPropertiesDomainNotRenewableReasonsItem] + :param dns_type: Current DNS type. Possible values include: "AzureDns", + "DefaultDomainRegistrarDns". + :type dns_type: str or ~azure.mgmt.web.v2021_01_15.models.DnsType + :param dns_zone_id: Azure DNS Zone to use. + :type dns_zone_id: str + :param target_dns_type: Target DNS type (would be used for migration). Possible values include: + "AzureDns", "DefaultDomainRegistrarDns". + :type target_dns_type: str or ~azure.mgmt.web.v2021_01_15.models.DnsType + :param auth_code: + :type auth_code: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'registration_status': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'name_servers': {'readonly': True}, + 'created_time': {'readonly': True}, + 'expiration_time': {'readonly': True}, + 'last_renewed_time': {'readonly': True}, + 'ready_for_dns_record_management': {'readonly': True}, + 'managed_host_names': {'readonly': True}, + 'domain_not_renewable_reasons': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'contact_admin': {'key': 'properties.contactAdmin', 'type': 'Contact'}, + 'contact_billing': {'key': 'properties.contactBilling', 'type': 'Contact'}, + 'contact_registrant': {'key': 'properties.contactRegistrant', 'type': 'Contact'}, + 'contact_tech': {'key': 'properties.contactTech', 'type': 'Contact'}, + 'registration_status': {'key': 'properties.registrationStatus', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'name_servers': {'key': 'properties.nameServers', 'type': '[str]'}, + 'privacy': {'key': 'properties.privacy', 'type': 'bool'}, + 'created_time': {'key': 'properties.createdTime', 'type': 'iso-8601'}, + 'expiration_time': {'key': 'properties.expirationTime', 'type': 'iso-8601'}, + 'last_renewed_time': {'key': 'properties.lastRenewedTime', 'type': 'iso-8601'}, + 'auto_renew': {'key': 'properties.autoRenew', 'type': 'bool'}, + 'ready_for_dns_record_management': {'key': 'properties.readyForDnsRecordManagement', 'type': 'bool'}, + 'managed_host_names': {'key': 'properties.managedHostNames', 'type': '[HostName]'}, + 'consent': {'key': 'properties.consent', 'type': 'DomainPurchaseConsent'}, + 'domain_not_renewable_reasons': {'key': 'properties.domainNotRenewableReasons', 'type': '[str]'}, + 'dns_type': {'key': 'properties.dnsType', 'type': 'str'}, + 'dns_zone_id': {'key': 'properties.dnsZoneId', 'type': 'str'}, + 'target_dns_type': {'key': 'properties.targetDnsType', 'type': 'str'}, + 'auth_code': {'key': 'properties.authCode', 'type': 'str'}, + } + + def __init__( + self, + *, + location: str, + kind: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + contact_admin: Optional["Contact"] = None, + contact_billing: Optional["Contact"] = None, + contact_registrant: Optional["Contact"] = None, + contact_tech: Optional["Contact"] = None, + privacy: Optional[bool] = None, + auto_renew: Optional[bool] = True, + consent: Optional["DomainPurchaseConsent"] = None, + dns_type: Optional[Union[str, "DnsType"]] = None, + dns_zone_id: Optional[str] = None, + target_dns_type: Optional[Union[str, "DnsType"]] = None, + auth_code: Optional[str] = None, + **kwargs + ): + super(Domain, self).__init__(kind=kind, location=location, tags=tags, **kwargs) + self.contact_admin = contact_admin + self.contact_billing = contact_billing + self.contact_registrant = contact_registrant + self.contact_tech = contact_tech + self.registration_status = None + self.provisioning_state = None + self.name_servers = None + self.privacy = privacy + self.created_time = None + self.expiration_time = None + self.last_renewed_time = None + self.auto_renew = auto_renew + self.ready_for_dns_record_management = None + self.managed_host_names = None + self.consent = consent + self.domain_not_renewable_reasons = None + self.dns_type = dns_type + self.dns_zone_id = dns_zone_id + self.target_dns_type = target_dns_type + self.auth_code = auth_code + + +class DomainAvailabilityCheckResult(msrest.serialization.Model): + """Domain availability check result. + + :param name: Name of the domain. + :type name: str + :param available: :code:`true` if domain can be purchased using CreateDomain API; + otherwise, :code:`false`. + :type available: bool + :param domain_type: Valid values are Regular domain: Azure will charge the full price of domain + registration, SoftDeleted: Purchasing this domain will simply restore it and this operation + will not cost anything. Possible values include: "Regular", "SoftDeleted". + :type domain_type: str or ~azure.mgmt.web.v2021_01_15.models.DomainType + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'available': {'key': 'available', 'type': 'bool'}, + 'domain_type': {'key': 'domainType', 'type': 'str'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + available: Optional[bool] = None, + domain_type: Optional[Union[str, "DomainType"]] = None, + **kwargs + ): + super(DomainAvailabilityCheckResult, self).__init__(**kwargs) + self.name = name + self.available = available + self.domain_type = domain_type + + +class DomainCollection(msrest.serialization.Model): + """Collection of domains. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.Domain] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Domain]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["Domain"], + **kwargs + ): + super(DomainCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class DomainControlCenterSsoRequest(msrest.serialization.Model): + """Single sign-on request information for domain management. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar url: URL where the single sign-on request is to be made. + :vartype url: str + :ivar post_parameter_key: Post parameter key. + :vartype post_parameter_key: str + :ivar post_parameter_value: Post parameter value. Client should use + 'application/x-www-form-urlencoded' encoding for this value. + :vartype post_parameter_value: str + """ + + _validation = { + 'url': {'readonly': True}, + 'post_parameter_key': {'readonly': True}, + 'post_parameter_value': {'readonly': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'post_parameter_key': {'key': 'postParameterKey', 'type': 'str'}, + 'post_parameter_value': {'key': 'postParameterValue', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DomainControlCenterSsoRequest, self).__init__(**kwargs) + self.url = None + self.post_parameter_key = None + self.post_parameter_value = None + + +class DomainOwnershipIdentifier(ProxyOnlyResource): + """Domain ownership Identifier. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param ownership_id: Ownership Id. + :type ownership_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'ownership_id': {'key': 'properties.ownershipId', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + ownership_id: Optional[str] = None, + **kwargs + ): + super(DomainOwnershipIdentifier, self).__init__(kind=kind, **kwargs) + self.ownership_id = ownership_id + + +class DomainOwnershipIdentifierCollection(msrest.serialization.Model): + """Collection of domain ownership identifiers. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.DomainOwnershipIdentifier] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[DomainOwnershipIdentifier]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["DomainOwnershipIdentifier"], + **kwargs + ): + super(DomainOwnershipIdentifierCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class DomainPatchResource(ProxyOnlyResource): + """ARM resource for a domain. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param contact_admin: Administrative contact. + :type contact_admin: ~azure.mgmt.web.v2021_01_15.models.Contact + :param contact_billing: Billing contact. + :type contact_billing: ~azure.mgmt.web.v2021_01_15.models.Contact + :param contact_registrant: Registrant contact. + :type contact_registrant: ~azure.mgmt.web.v2021_01_15.models.Contact + :param contact_tech: Technical contact. + :type contact_tech: ~azure.mgmt.web.v2021_01_15.models.Contact + :ivar registration_status: Domain registration status. Possible values include: "Active", + "Awaiting", "Cancelled", "Confiscated", "Disabled", "Excluded", "Expired", "Failed", "Held", + "Locked", "Parked", "Pending", "Reserved", "Reverted", "Suspended", "Transferred", "Unknown", + "Unlocked", "Unparked", "Updated", "JsonConverterFailed". + :vartype registration_status: str or ~azure.mgmt.web.v2021_01_15.models.DomainStatus + :ivar provisioning_state: Domain provisioning state. Possible values include: "Succeeded", + "Failed", "Canceled", "InProgress", "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.web.v2021_01_15.models.ProvisioningState + :ivar name_servers: Name servers. + :vartype name_servers: list[str] + :param privacy: :code:`true` if domain privacy is enabled for this domain; + otherwise, :code:`false`. + :type privacy: bool + :ivar created_time: Domain creation timestamp. + :vartype created_time: ~datetime.datetime + :ivar expiration_time: Domain expiration timestamp. + :vartype expiration_time: ~datetime.datetime + :ivar last_renewed_time: Timestamp when the domain was renewed last time. + :vartype last_renewed_time: ~datetime.datetime + :param auto_renew: :code:`true` if the domain should be automatically renewed; + otherwise, :code:`false`. + :type auto_renew: bool + :ivar ready_for_dns_record_management: :code:`true` if Azure can assign this + domain to App Service apps; otherwise, :code:`false`. This value will be + :code:`true` if domain registration status is active and + it is hosted on name servers Azure has programmatic access to. + :vartype ready_for_dns_record_management: bool + :ivar managed_host_names: All hostnames derived from the domain and assigned to Azure + resources. + :vartype managed_host_names: list[~azure.mgmt.web.v2021_01_15.models.HostName] + :param consent: Legal agreement consent. + :type consent: ~azure.mgmt.web.v2021_01_15.models.DomainPurchaseConsent + :ivar domain_not_renewable_reasons: Reasons why domain is not renewable. + :vartype domain_not_renewable_reasons: list[str or + ~azure.mgmt.web.v2021_01_15.models.DomainPatchResourcePropertiesDomainNotRenewableReasonsItem] + :param dns_type: Current DNS type. Possible values include: "AzureDns", + "DefaultDomainRegistrarDns". + :type dns_type: str or ~azure.mgmt.web.v2021_01_15.models.DnsType + :param dns_zone_id: Azure DNS Zone to use. + :type dns_zone_id: str + :param target_dns_type: Target DNS type (would be used for migration). Possible values include: + "AzureDns", "DefaultDomainRegistrarDns". + :type target_dns_type: str or ~azure.mgmt.web.v2021_01_15.models.DnsType + :param auth_code: + :type auth_code: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'registration_status': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'name_servers': {'readonly': True}, + 'created_time': {'readonly': True}, + 'expiration_time': {'readonly': True}, + 'last_renewed_time': {'readonly': True}, + 'ready_for_dns_record_management': {'readonly': True}, + 'managed_host_names': {'readonly': True}, + 'domain_not_renewable_reasons': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'contact_admin': {'key': 'properties.contactAdmin', 'type': 'Contact'}, + 'contact_billing': {'key': 'properties.contactBilling', 'type': 'Contact'}, + 'contact_registrant': {'key': 'properties.contactRegistrant', 'type': 'Contact'}, + 'contact_tech': {'key': 'properties.contactTech', 'type': 'Contact'}, + 'registration_status': {'key': 'properties.registrationStatus', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'name_servers': {'key': 'properties.nameServers', 'type': '[str]'}, + 'privacy': {'key': 'properties.privacy', 'type': 'bool'}, + 'created_time': {'key': 'properties.createdTime', 'type': 'iso-8601'}, + 'expiration_time': {'key': 'properties.expirationTime', 'type': 'iso-8601'}, + 'last_renewed_time': {'key': 'properties.lastRenewedTime', 'type': 'iso-8601'}, + 'auto_renew': {'key': 'properties.autoRenew', 'type': 'bool'}, + 'ready_for_dns_record_management': {'key': 'properties.readyForDnsRecordManagement', 'type': 'bool'}, + 'managed_host_names': {'key': 'properties.managedHostNames', 'type': '[HostName]'}, + 'consent': {'key': 'properties.consent', 'type': 'DomainPurchaseConsent'}, + 'domain_not_renewable_reasons': {'key': 'properties.domainNotRenewableReasons', 'type': '[str]'}, + 'dns_type': {'key': 'properties.dnsType', 'type': 'str'}, + 'dns_zone_id': {'key': 'properties.dnsZoneId', 'type': 'str'}, + 'target_dns_type': {'key': 'properties.targetDnsType', 'type': 'str'}, + 'auth_code': {'key': 'properties.authCode', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + contact_admin: Optional["Contact"] = None, + contact_billing: Optional["Contact"] = None, + contact_registrant: Optional["Contact"] = None, + contact_tech: Optional["Contact"] = None, + privacy: Optional[bool] = None, + auto_renew: Optional[bool] = True, + consent: Optional["DomainPurchaseConsent"] = None, + dns_type: Optional[Union[str, "DnsType"]] = None, + dns_zone_id: Optional[str] = None, + target_dns_type: Optional[Union[str, "DnsType"]] = None, + auth_code: Optional[str] = None, + **kwargs + ): + super(DomainPatchResource, self).__init__(kind=kind, **kwargs) + self.contact_admin = contact_admin + self.contact_billing = contact_billing + self.contact_registrant = contact_registrant + self.contact_tech = contact_tech + self.registration_status = None + self.provisioning_state = None + self.name_servers = None + self.privacy = privacy + self.created_time = None + self.expiration_time = None + self.last_renewed_time = None + self.auto_renew = auto_renew + self.ready_for_dns_record_management = None + self.managed_host_names = None + self.consent = consent + self.domain_not_renewable_reasons = None + self.dns_type = dns_type + self.dns_zone_id = dns_zone_id + self.target_dns_type = target_dns_type + self.auth_code = auth_code + + +class DomainPurchaseConsent(msrest.serialization.Model): + """Domain purchase consent object, representing acceptance of applicable legal agreements. + + :param agreement_keys: List of applicable legal agreement keys. This list can be retrieved + using ListLegalAgreements API under :code:`TopLevelDomain` resource. + :type agreement_keys: list[str] + :param agreed_by: Client IP address. + :type agreed_by: str + :param agreed_at: Timestamp when the agreements were accepted. + :type agreed_at: ~datetime.datetime + """ + + _attribute_map = { + 'agreement_keys': {'key': 'agreementKeys', 'type': '[str]'}, + 'agreed_by': {'key': 'agreedBy', 'type': 'str'}, + 'agreed_at': {'key': 'agreedAt', 'type': 'iso-8601'}, + } + + def __init__( + self, + *, + agreement_keys: Optional[List[str]] = None, + agreed_by: Optional[str] = None, + agreed_at: Optional[datetime.datetime] = None, + **kwargs + ): + super(DomainPurchaseConsent, self).__init__(**kwargs) + self.agreement_keys = agreement_keys + self.agreed_by = agreed_by + self.agreed_at = agreed_at + + +class DomainRecommendationSearchParameters(msrest.serialization.Model): + """Domain recommendation search parameters. + + :param keywords: Keywords to be used for generating domain recommendations. + :type keywords: str + :param max_domain_recommendations: Maximum number of recommendations. + :type max_domain_recommendations: int + """ + + _attribute_map = { + 'keywords': {'key': 'keywords', 'type': 'str'}, + 'max_domain_recommendations': {'key': 'maxDomainRecommendations', 'type': 'int'}, + } + + def __init__( + self, + *, + keywords: Optional[str] = None, + max_domain_recommendations: Optional[int] = None, + **kwargs + ): + super(DomainRecommendationSearchParameters, self).__init__(**kwargs) + self.keywords = keywords + self.max_domain_recommendations = max_domain_recommendations + + +class EnabledConfig(msrest.serialization.Model): + """Enabled configuration. + + :param enabled: True if configuration is enabled, false if it is disabled and null if + configuration is not set. + :type enabled: bool + """ + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + } + + def __init__( + self, + *, + enabled: Optional[bool] = None, + **kwargs + ): + super(EnabledConfig, self).__init__(**kwargs) + self.enabled = enabled + + +class EndpointDependency(msrest.serialization.Model): + """A domain name that a service is reached at, including details of the current connection status. + + :param domain_name: The domain name of the dependency. + :type domain_name: str + :param endpoint_details: The IP Addresses and Ports used when connecting to DomainName. + :type endpoint_details: list[~azure.mgmt.web.v2021_01_15.models.EndpointDetail] + """ + + _attribute_map = { + 'domain_name': {'key': 'domainName', 'type': 'str'}, + 'endpoint_details': {'key': 'endpointDetails', 'type': '[EndpointDetail]'}, + } + + def __init__( + self, + *, + domain_name: Optional[str] = None, + endpoint_details: Optional[List["EndpointDetail"]] = None, + **kwargs + ): + super(EndpointDependency, self).__init__(**kwargs) + self.domain_name = domain_name + self.endpoint_details = endpoint_details + + +class EndpointDetail(msrest.serialization.Model): + """Current TCP connectivity information from the App Service Environment to a single endpoint. + + :param ip_address: An IP Address that Domain Name currently resolves to. + :type ip_address: str + :param port: The port an endpoint is connected to. + :type port: int + :param latency: The time in milliseconds it takes for a TCP connection to be created from the + App Service Environment to this IpAddress at this Port. + :type latency: float + :param is_accessible: Whether it is possible to create a TCP connection from the App Service + Environment to this IpAddress at this Port. + :type is_accessible: bool + """ + + _attribute_map = { + 'ip_address': {'key': 'ipAddress', 'type': 'str'}, + 'port': {'key': 'port', 'type': 'int'}, + 'latency': {'key': 'latency', 'type': 'float'}, + 'is_accessible': {'key': 'isAccessible', 'type': 'bool'}, + } + + def __init__( + self, + *, + ip_address: Optional[str] = None, + port: Optional[int] = None, + latency: Optional[float] = None, + is_accessible: Optional[bool] = None, + **kwargs + ): + super(EndpointDetail, self).__init__(**kwargs) + self.ip_address = ip_address + self.port = port + self.latency = latency + self.is_accessible = is_accessible + + +class ErrorEntity(msrest.serialization.Model): + """Body of the error response returned from the API. + + :param extended_code: Type of error. + :type extended_code: str + :param message_template: Message template. + :type message_template: str + :param parameters: Parameters for the template. + :type parameters: list[str] + :param inner_errors: Inner errors. + :type inner_errors: list[~azure.mgmt.web.v2021_01_15.models.ErrorEntity] + :param code: Basic error code. + :type code: str + :param message: Any details of the error. + :type message: str + """ + + _attribute_map = { + 'extended_code': {'key': 'extendedCode', 'type': 'str'}, + 'message_template': {'key': 'messageTemplate', 'type': 'str'}, + 'parameters': {'key': 'parameters', 'type': '[str]'}, + 'inner_errors': {'key': 'innerErrors', 'type': '[ErrorEntity]'}, + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__( + self, + *, + extended_code: Optional[str] = None, + message_template: Optional[str] = None, + parameters: Optional[List[str]] = None, + inner_errors: Optional[List["ErrorEntity"]] = None, + code: Optional[str] = None, + message: Optional[str] = None, + **kwargs + ): + super(ErrorEntity, self).__init__(**kwargs) + self.extended_code = extended_code + self.message_template = message_template + self.parameters = parameters + self.inner_errors = inner_errors + self.code = code + self.message = message + + +class Experiments(msrest.serialization.Model): + """Routing rules in production experiments. + + :param ramp_up_rules: List of ramp-up rules. + :type ramp_up_rules: list[~azure.mgmt.web.v2021_01_15.models.RampUpRule] + """ + + _attribute_map = { + 'ramp_up_rules': {'key': 'rampUpRules', 'type': '[RampUpRule]'}, + } + + def __init__( + self, + *, + ramp_up_rules: Optional[List["RampUpRule"]] = None, + **kwargs + ): + super(Experiments, self).__init__(**kwargs) + self.ramp_up_rules = ramp_up_rules + + +class ExtendedLocation(msrest.serialization.Model): + """Extended Location. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param name: Name of extended location. + :type name: str + :ivar type: Type of extended location. + :vartype type: str + """ + + _validation = { + 'type': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + **kwargs + ): + super(ExtendedLocation, self).__init__(**kwargs) + self.name = name + self.type = None + + +class Facebook(ProxyOnlyResource): + """The configuration settings of the Facebook provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the Facebook provider should not be enabled + despite the set registration; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the app registration for the Facebook + provider. + :type registration: ~azure.mgmt.web.v2021_01_15.models.AppRegistration + :param graph_api_version: The version of the Facebook api to be used while logging in. + :type graph_api_version: str + :param login: The configuration settings of the login flow. + :type login: ~azure.mgmt.web.v2021_01_15.models.LoginScopes + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'AppRegistration'}, + 'graph_api_version': {'key': 'properties.graphApiVersion', 'type': 'str'}, + 'login': {'key': 'properties.login', 'type': 'LoginScopes'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + enabled: Optional[bool] = None, + registration: Optional["AppRegistration"] = None, + graph_api_version: Optional[str] = None, + login: Optional["LoginScopes"] = None, + **kwargs + ): + super(Facebook, self).__init__(kind=kind, **kwargs) + self.enabled = enabled + self.registration = registration + self.graph_api_version = graph_api_version + self.login = login + + +class FileSystemApplicationLogsConfig(msrest.serialization.Model): + """Application logs to file system configuration. + + :param level: Log level. Possible values include: "Off", "Verbose", "Information", "Warning", + "Error". + :type level: str or ~azure.mgmt.web.v2021_01_15.models.LogLevel + """ + + _attribute_map = { + 'level': {'key': 'level', 'type': 'str'}, + } + + def __init__( + self, + *, + level: Optional[Union[str, "LogLevel"]] = None, + **kwargs + ): + super(FileSystemApplicationLogsConfig, self).__init__(**kwargs) + self.level = level + + +class FileSystemHttpLogsConfig(msrest.serialization.Model): + """Http logs to file system configuration. + + :param retention_in_mb: Maximum size in megabytes that http log files can use. + When reached old log files will be removed to make space for new ones. + Value can range between 25 and 100. + :type retention_in_mb: int + :param retention_in_days: Retention in days. + Remove files older than X days. + 0 or lower means no retention. + :type retention_in_days: int + :param enabled: True if configuration is enabled, false if it is disabled and null if + configuration is not set. + :type enabled: bool + """ + + _validation = { + 'retention_in_mb': {'maximum': 100, 'minimum': 25}, + } + + _attribute_map = { + 'retention_in_mb': {'key': 'retentionInMb', 'type': 'int'}, + 'retention_in_days': {'key': 'retentionInDays', 'type': 'int'}, + 'enabled': {'key': 'enabled', 'type': 'bool'}, + } + + def __init__( + self, + *, + retention_in_mb: Optional[int] = None, + retention_in_days: Optional[int] = None, + enabled: Optional[bool] = None, + **kwargs + ): + super(FileSystemHttpLogsConfig, self).__init__(**kwargs) + self.retention_in_mb = retention_in_mb + self.retention_in_days = retention_in_days + self.enabled = enabled + + +class FileSystemTokenStore(ProxyOnlyResource): + """The configuration settings of the storage of the tokens if a file system is used. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param directory: The directory in which the tokens will be stored. + :type directory: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'directory': {'key': 'properties.directory', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + directory: Optional[str] = None, + **kwargs + ): + super(FileSystemTokenStore, self).__init__(kind=kind, **kwargs) + self.directory = directory + + +class ForwardProxy(ProxyOnlyResource): + """The configuration settings of a forward proxy used to make the requests. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param convention: The convention used to determine the url of the request made. Possible + values include: "NoProxy", "Standard", "Custom". + :type convention: str or ~azure.mgmt.web.v2021_01_15.models.ForwardProxyConvention + :param custom_host_header_name: The name of the header containing the host of the request. + :type custom_host_header_name: str + :param custom_proto_header_name: The name of the header containing the scheme of the request. + :type custom_proto_header_name: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'convention': {'key': 'properties.convention', 'type': 'str'}, + 'custom_host_header_name': {'key': 'properties.customHostHeaderName', 'type': 'str'}, + 'custom_proto_header_name': {'key': 'properties.customProtoHeaderName', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + convention: Optional[Union[str, "ForwardProxyConvention"]] = None, + custom_host_header_name: Optional[str] = None, + custom_proto_header_name: Optional[str] = None, + **kwargs + ): + super(ForwardProxy, self).__init__(kind=kind, **kwargs) + self.convention = convention + self.custom_host_header_name = custom_host_header_name + self.custom_proto_header_name = custom_proto_header_name + + +class FrontEndConfiguration(msrest.serialization.Model): + """FrontEndConfiguration. + + :param kind: Possible values include: "NodePort", "LoadBalancer". + :type kind: str or ~azure.mgmt.web.v2021_01_15.models.FrontEndServiceType + """ + + _attribute_map = { + 'kind': {'key': 'kind', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[Union[str, "FrontEndServiceType"]] = None, + **kwargs + ): + super(FrontEndConfiguration, self).__init__(**kwargs) + self.kind = kind + + +class FunctionAppMajorVersion(msrest.serialization.Model): + """Function App stack major version. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar display_text: Function App stack major version (display only). + :vartype display_text: str + :ivar value: Function App stack major version name. + :vartype value: str + :ivar minor_versions: Minor versions associated with the major version. + :vartype minor_versions: list[~azure.mgmt.web.v2021_01_15.models.FunctionAppMinorVersion] + """ + + _validation = { + 'display_text': {'readonly': True}, + 'value': {'readonly': True}, + 'minor_versions': {'readonly': True}, + } + + _attribute_map = { + 'display_text': {'key': 'displayText', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + 'minor_versions': {'key': 'minorVersions', 'type': '[FunctionAppMinorVersion]'}, + } + + def __init__( + self, + **kwargs + ): + super(FunctionAppMajorVersion, self).__init__(**kwargs) + self.display_text = None + self.value = None + self.minor_versions = None + + +class FunctionAppMinorVersion(msrest.serialization.Model): + """Function App stack minor version. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar display_text: Function App stack (display only). + :vartype display_text: str + :ivar value: Function App stack name. + :vartype value: str + :ivar stack_settings: Settings associated with the minor version. + :vartype stack_settings: ~azure.mgmt.web.v2021_01_15.models.FunctionAppRuntimes + """ + + _validation = { + 'display_text': {'readonly': True}, + 'value': {'readonly': True}, + 'stack_settings': {'readonly': True}, + } + + _attribute_map = { + 'display_text': {'key': 'displayText', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + 'stack_settings': {'key': 'stackSettings', 'type': 'FunctionAppRuntimes'}, + } + + def __init__( + self, + **kwargs + ): + super(FunctionAppMinorVersion, self).__init__(**kwargs) + self.display_text = None + self.value = None + self.stack_settings = None + + +class FunctionAppRuntimes(msrest.serialization.Model): + """Function App stack runtimes. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar linux_runtime_settings: Linux-specific settings associated with the minor version. + :vartype linux_runtime_settings: ~azure.mgmt.web.v2021_01_15.models.FunctionAppRuntimeSettings + :ivar windows_runtime_settings: Windows-specific settings associated with the minor version. + :vartype windows_runtime_settings: + ~azure.mgmt.web.v2021_01_15.models.FunctionAppRuntimeSettings + """ + + _validation = { + 'linux_runtime_settings': {'readonly': True}, + 'windows_runtime_settings': {'readonly': True}, + } + + _attribute_map = { + 'linux_runtime_settings': {'key': 'linuxRuntimeSettings', 'type': 'FunctionAppRuntimeSettings'}, + 'windows_runtime_settings': {'key': 'windowsRuntimeSettings', 'type': 'FunctionAppRuntimeSettings'}, + } + + def __init__( + self, + **kwargs + ): + super(FunctionAppRuntimes, self).__init__(**kwargs) + self.linux_runtime_settings = None + self.windows_runtime_settings = None + + +class FunctionAppRuntimeSettings(msrest.serialization.Model): + """Function App runtime settings. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar runtime_version: Function App stack minor version (runtime only). + :vartype runtime_version: str + :ivar remote_debugging_supported: :code:`true` if remote debugging is supported + for the stack; otherwise, :code:`false`. + :vartype remote_debugging_supported: bool + :ivar app_insights_settings: Application Insights settings associated with the minor version. + :vartype app_insights_settings: + ~azure.mgmt.web.v2021_01_15.models.AppInsightsWebAppStackSettings + :ivar git_hub_action_settings: GitHub Actions settings associated with the minor version. + :vartype git_hub_action_settings: + ~azure.mgmt.web.v2021_01_15.models.GitHubActionWebAppStackSettings + :ivar app_settings_dictionary: Application settings associated with the minor version. + :vartype app_settings_dictionary: dict[str, str] + :ivar site_config_properties_dictionary: Configuration settings associated with the minor + version. + :vartype site_config_properties_dictionary: + ~azure.mgmt.web.v2021_01_15.models.SiteConfigPropertiesDictionary + :ivar supported_functions_extension_versions: List of supported Functions extension versions. + :vartype supported_functions_extension_versions: list[str] + :ivar is_preview: :code:`true` if the stack is in preview; otherwise, + :code:`false`. + :vartype is_preview: bool + :ivar is_deprecated: :code:`true` if the stack is deprecated; otherwise, + :code:`false`. + :vartype is_deprecated: bool + :ivar is_hidden: :code:`true` if the stack should be hidden; otherwise, + :code:`false`. + :vartype is_hidden: bool + :ivar end_of_life_date: End-of-life date for the minor version. + :vartype end_of_life_date: ~datetime.datetime + :ivar is_auto_update: :code:`true` if the stack version is auto-updated; + otherwise, :code:`false`. + :vartype is_auto_update: bool + :ivar is_early_access: :code:`true` if the minor version is early-access; + otherwise, :code:`false`. + :vartype is_early_access: bool + :ivar is_default: :code:`true` if the minor version the default; otherwise, + :code:`false`. + :vartype is_default: bool + """ + + _validation = { + 'runtime_version': {'readonly': True}, + 'remote_debugging_supported': {'readonly': True}, + 'app_insights_settings': {'readonly': True}, + 'git_hub_action_settings': {'readonly': True}, + 'app_settings_dictionary': {'readonly': True}, + 'site_config_properties_dictionary': {'readonly': True}, + 'supported_functions_extension_versions': {'readonly': True}, + 'is_preview': {'readonly': True}, + 'is_deprecated': {'readonly': True}, + 'is_hidden': {'readonly': True}, + 'end_of_life_date': {'readonly': True}, + 'is_auto_update': {'readonly': True}, + 'is_early_access': {'readonly': True}, + 'is_default': {'readonly': True}, + } + + _attribute_map = { + 'runtime_version': {'key': 'runtimeVersion', 'type': 'str'}, + 'remote_debugging_supported': {'key': 'remoteDebuggingSupported', 'type': 'bool'}, + 'app_insights_settings': {'key': 'appInsightsSettings', 'type': 'AppInsightsWebAppStackSettings'}, + 'git_hub_action_settings': {'key': 'gitHubActionSettings', 'type': 'GitHubActionWebAppStackSettings'}, + 'app_settings_dictionary': {'key': 'appSettingsDictionary', 'type': '{str}'}, + 'site_config_properties_dictionary': {'key': 'siteConfigPropertiesDictionary', 'type': 'SiteConfigPropertiesDictionary'}, + 'supported_functions_extension_versions': {'key': 'supportedFunctionsExtensionVersions', 'type': '[str]'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + 'is_deprecated': {'key': 'isDeprecated', 'type': 'bool'}, + 'is_hidden': {'key': 'isHidden', 'type': 'bool'}, + 'end_of_life_date': {'key': 'endOfLifeDate', 'type': 'iso-8601'}, + 'is_auto_update': {'key': 'isAutoUpdate', 'type': 'bool'}, + 'is_early_access': {'key': 'isEarlyAccess', 'type': 'bool'}, + 'is_default': {'key': 'isDefault', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(FunctionAppRuntimeSettings, self).__init__(**kwargs) + self.runtime_version = None + self.remote_debugging_supported = None + self.app_insights_settings = None + self.git_hub_action_settings = None + self.app_settings_dictionary = None + self.site_config_properties_dictionary = None + self.supported_functions_extension_versions = None + self.is_preview = None + self.is_deprecated = None + self.is_hidden = None + self.end_of_life_date = None + self.is_auto_update = None + self.is_early_access = None + self.is_default = None + + +class FunctionAppStack(ProxyOnlyResource): + """Function App Stack. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar location: Function App stack location. + :vartype location: str + :ivar display_text: Function App stack (display only). + :vartype display_text: str + :ivar value: Function App stack name. + :vartype value: str + :ivar major_versions: List of major versions available. + :vartype major_versions: list[~azure.mgmt.web.v2021_01_15.models.FunctionAppMajorVersion] + :ivar preferred_os: Function App stack preferred OS. Possible values include: "Windows", + "Linux". + :vartype preferred_os: str or ~azure.mgmt.web.v2021_01_15.models.StackPreferredOs + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'readonly': True}, + 'display_text': {'readonly': True}, + 'value': {'readonly': True}, + 'major_versions': {'readonly': True}, + 'preferred_os': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'display_text': {'key': 'properties.displayText', 'type': 'str'}, + 'value': {'key': 'properties.value', 'type': 'str'}, + 'major_versions': {'key': 'properties.majorVersions', 'type': '[FunctionAppMajorVersion]'}, + 'preferred_os': {'key': 'properties.preferredOs', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(FunctionAppStack, self).__init__(kind=kind, **kwargs) + self.location = None + self.display_text = None + self.value = None + self.major_versions = None + self.preferred_os = None + + +class FunctionAppStackCollection(msrest.serialization.Model): + """Collection of Function app Stacks. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.FunctionAppStack] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[FunctionAppStack]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["FunctionAppStack"], + **kwargs + ): + super(FunctionAppStackCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class FunctionEnvelope(ProxyOnlyResource): + """Function information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param function_app_id: Function App ID. + :type function_app_id: str + :param script_root_path_href: Script root path URI. + :type script_root_path_href: str + :param script_href: Script URI. + :type script_href: str + :param config_href: Config URI. + :type config_href: str + :param test_data_href: Test data URI. + :type test_data_href: str + :param secrets_file_href: Secrets file URI. + :type secrets_file_href: str + :param href: Function URI. + :type href: str + :param config: Config information. + :type config: any + :param files: File list. + :type files: dict[str, str] + :param test_data: Test data used when testing via the Azure Portal. + :type test_data: str + :param invoke_url_template: The invocation URL. + :type invoke_url_template: str + :param language: The function language. + :type language: str + :param is_disabled: Gets or sets a value indicating whether the function is disabled. + :type is_disabled: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'function_app_id': {'key': 'properties.function_app_id', 'type': 'str'}, + 'script_root_path_href': {'key': 'properties.script_root_path_href', 'type': 'str'}, + 'script_href': {'key': 'properties.script_href', 'type': 'str'}, + 'config_href': {'key': 'properties.config_href', 'type': 'str'}, + 'test_data_href': {'key': 'properties.test_data_href', 'type': 'str'}, + 'secrets_file_href': {'key': 'properties.secrets_file_href', 'type': 'str'}, + 'href': {'key': 'properties.href', 'type': 'str'}, + 'config': {'key': 'properties.config', 'type': 'object'}, + 'files': {'key': 'properties.files', 'type': '{str}'}, + 'test_data': {'key': 'properties.test_data', 'type': 'str'}, + 'invoke_url_template': {'key': 'properties.invoke_url_template', 'type': 'str'}, + 'language': {'key': 'properties.language', 'type': 'str'}, + 'is_disabled': {'key': 'properties.isDisabled', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + function_app_id: Optional[str] = None, + script_root_path_href: Optional[str] = None, + script_href: Optional[str] = None, + config_href: Optional[str] = None, + test_data_href: Optional[str] = None, + secrets_file_href: Optional[str] = None, + href: Optional[str] = None, + config: Optional[Any] = None, + files: Optional[Dict[str, str]] = None, + test_data: Optional[str] = None, + invoke_url_template: Optional[str] = None, + language: Optional[str] = None, + is_disabled: Optional[bool] = None, + **kwargs + ): + super(FunctionEnvelope, self).__init__(kind=kind, **kwargs) + self.function_app_id = function_app_id + self.script_root_path_href = script_root_path_href + self.script_href = script_href + self.config_href = config_href + self.test_data_href = test_data_href + self.secrets_file_href = secrets_file_href + self.href = href + self.config = config + self.files = files + self.test_data = test_data + self.invoke_url_template = invoke_url_template + self.language = language + self.is_disabled = is_disabled + + +class FunctionEnvelopeCollection(msrest.serialization.Model): + """Collection of Kudu function information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.FunctionEnvelope] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[FunctionEnvelope]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["FunctionEnvelope"], + **kwargs + ): + super(FunctionEnvelopeCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class FunctionSecrets(msrest.serialization.Model): + """Function secrets. + + :param key: Secret key. + :type key: str + :param trigger_url: Trigger URL. + :type trigger_url: str + """ + + _attribute_map = { + 'key': {'key': 'key', 'type': 'str'}, + 'trigger_url': {'key': 'trigger_url', 'type': 'str'}, + } + + def __init__( + self, + *, + key: Optional[str] = None, + trigger_url: Optional[str] = None, + **kwargs + ): + super(FunctionSecrets, self).__init__(**kwargs) + self.key = key + self.trigger_url = trigger_url + + +class GeoRegion(ProxyOnlyResource): + """Geographical region. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar description: Region description. + :vartype description: str + :ivar display_name: Display name for region. + :vartype display_name: str + :ivar org_domain: Display name for region. + :vartype org_domain: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'description': {'readonly': True}, + 'display_name': {'readonly': True}, + 'org_domain': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'display_name': {'key': 'properties.displayName', 'type': 'str'}, + 'org_domain': {'key': 'properties.orgDomain', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(GeoRegion, self).__init__(kind=kind, **kwargs) + self.description = None + self.display_name = None + self.org_domain = None + + +class GeoRegionCollection(msrest.serialization.Model): + """Collection of geographical regions. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.GeoRegion] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[GeoRegion]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["GeoRegion"], + **kwargs + ): + super(GeoRegionCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class GitHub(ProxyOnlyResource): + """The configuration settings of the GitHub provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the GitHub provider should not be enabled despite + the set registration; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the app registration for the GitHub + provider. + :type registration: ~azure.mgmt.web.v2021_01_15.models.ClientRegistration + :param login: The configuration settings of the login flow. + :type login: ~azure.mgmt.web.v2021_01_15.models.LoginScopes + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'ClientRegistration'}, + 'login': {'key': 'properties.login', 'type': 'LoginScopes'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + enabled: Optional[bool] = None, + registration: Optional["ClientRegistration"] = None, + login: Optional["LoginScopes"] = None, + **kwargs + ): + super(GitHub, self).__init__(kind=kind, **kwargs) + self.enabled = enabled + self.registration = registration + self.login = login + + +class GitHubActionCodeConfiguration(msrest.serialization.Model): + """The GitHub action code configuration. + + :param runtime_stack: Runtime stack is used to determine the workflow file content for code + base apps. + :type runtime_stack: str + :param runtime_version: Runtime version is used to determine what build version to set in the + workflow file. + :type runtime_version: str + """ + + _attribute_map = { + 'runtime_stack': {'key': 'runtimeStack', 'type': 'str'}, + 'runtime_version': {'key': 'runtimeVersion', 'type': 'str'}, + } + + def __init__( + self, + *, + runtime_stack: Optional[str] = None, + runtime_version: Optional[str] = None, + **kwargs + ): + super(GitHubActionCodeConfiguration, self).__init__(**kwargs) + self.runtime_stack = runtime_stack + self.runtime_version = runtime_version + + +class GitHubActionConfiguration(msrest.serialization.Model): + """The GitHub action configuration. + + :param code_configuration: GitHub Action code configuration. + :type code_configuration: ~azure.mgmt.web.v2021_01_15.models.GitHubActionCodeConfiguration + :param container_configuration: GitHub Action container configuration. + :type container_configuration: + ~azure.mgmt.web.v2021_01_15.models.GitHubActionContainerConfiguration + :param is_linux: This will help determine the workflow configuration to select. + :type is_linux: bool + :param generate_workflow_file: Workflow option to determine whether the workflow file should be + generated and written to the repository. + :type generate_workflow_file: bool + """ + + _attribute_map = { + 'code_configuration': {'key': 'codeConfiguration', 'type': 'GitHubActionCodeConfiguration'}, + 'container_configuration': {'key': 'containerConfiguration', 'type': 'GitHubActionContainerConfiguration'}, + 'is_linux': {'key': 'isLinux', 'type': 'bool'}, + 'generate_workflow_file': {'key': 'generateWorkflowFile', 'type': 'bool'}, + } + + def __init__( + self, + *, + code_configuration: Optional["GitHubActionCodeConfiguration"] = None, + container_configuration: Optional["GitHubActionContainerConfiguration"] = None, + is_linux: Optional[bool] = None, + generate_workflow_file: Optional[bool] = None, + **kwargs + ): + super(GitHubActionConfiguration, self).__init__(**kwargs) + self.code_configuration = code_configuration + self.container_configuration = container_configuration + self.is_linux = is_linux + self.generate_workflow_file = generate_workflow_file + + +class GitHubActionContainerConfiguration(msrest.serialization.Model): + """The GitHub action container configuration. + + :param server_url: The server URL for the container registry where the build will be hosted. + :type server_url: str + :param image_name: The image name for the build. + :type image_name: str + :param username: The username used to upload the image to the container registry. + :type username: str + :param password: The password used to upload the image to the container registry. + :type password: str + """ + + _attribute_map = { + 'server_url': {'key': 'serverUrl', 'type': 'str'}, + 'image_name': {'key': 'imageName', 'type': 'str'}, + 'username': {'key': 'username', 'type': 'str'}, + 'password': {'key': 'password', 'type': 'str'}, + } + + def __init__( + self, + *, + server_url: Optional[str] = None, + image_name: Optional[str] = None, + username: Optional[str] = None, + password: Optional[str] = None, + **kwargs + ): + super(GitHubActionContainerConfiguration, self).__init__(**kwargs) + self.server_url = server_url + self.image_name = image_name + self.username = username + self.password = password + + +class GitHubActionWebAppStackSettings(msrest.serialization.Model): + """GitHub Actions Web App stack settings. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar is_supported: :code:`true` if GitHub Actions is supported for the stack; + otherwise, :code:`false`. + :vartype is_supported: bool + :ivar supported_version: The minor version that is supported for GitHub Actions. + :vartype supported_version: str + """ + + _validation = { + 'is_supported': {'readonly': True}, + 'supported_version': {'readonly': True}, + } + + _attribute_map = { + 'is_supported': {'key': 'isSupported', 'type': 'bool'}, + 'supported_version': {'key': 'supportedVersion', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(GitHubActionWebAppStackSettings, self).__init__(**kwargs) + self.is_supported = None + self.supported_version = None + + +class GlobalCsmSkuDescription(msrest.serialization.Model): + """A Global SKU Description. + + :param name: Name of the resource SKU. + :type name: str + :param tier: Service Tier of the resource SKU. + :type tier: str + :param size: Size specifier of the resource SKU. + :type size: str + :param family: Family code of the resource SKU. + :type family: str + :param capacity: Min, max, and default scale values of the SKU. + :type capacity: ~azure.mgmt.web.v2021_01_15.models.SkuCapacity + :param locations: Locations of the SKU. + :type locations: list[str] + :param capabilities: Capabilities of the SKU, e.g., is traffic manager enabled?. + :type capabilities: list[~azure.mgmt.web.v2021_01_15.models.Capability] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'tier': {'key': 'tier', 'type': 'str'}, + 'size': {'key': 'size', 'type': 'str'}, + 'family': {'key': 'family', 'type': 'str'}, + 'capacity': {'key': 'capacity', 'type': 'SkuCapacity'}, + 'locations': {'key': 'locations', 'type': '[str]'}, + 'capabilities': {'key': 'capabilities', 'type': '[Capability]'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + tier: Optional[str] = None, + size: Optional[str] = None, + family: Optional[str] = None, + capacity: Optional["SkuCapacity"] = None, + locations: Optional[List[str]] = None, + capabilities: Optional[List["Capability"]] = None, + **kwargs + ): + super(GlobalCsmSkuDescription, self).__init__(**kwargs) + self.name = name + self.tier = tier + self.size = size + self.family = family + self.capacity = capacity + self.locations = locations + self.capabilities = capabilities + + +class GlobalValidation(ProxyOnlyResource): + """The configuration settings that determines the validation flow of users using App Service Authentication/Authorization. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param require_authentication: :code:`true` if the authentication flow is required + any request is made; otherwise, :code:`false`. + :type require_authentication: bool + :param unauthenticated_client_action: The action to take when an unauthenticated client + attempts to access the app. Possible values include: "RedirectToLoginPage", "AllowAnonymous", + "Return401", "Return403". + :type unauthenticated_client_action: str or + ~azure.mgmt.web.v2021_01_15.models.UnauthenticatedClientActionV2 + :param redirect_to_provider: The default authentication provider to use when multiple providers + are configured. + This setting is only needed if multiple providers are configured and the unauthenticated + client + action is set to "RedirectToLoginPage". + :type redirect_to_provider: str + :param excluded_paths: The paths for which unauthenticated flow would not be redirected to the + login page. + :type excluded_paths: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'require_authentication': {'key': 'properties.requireAuthentication', 'type': 'bool'}, + 'unauthenticated_client_action': {'key': 'properties.unauthenticatedClientAction', 'type': 'str'}, + 'redirect_to_provider': {'key': 'properties.redirectToProvider', 'type': 'str'}, + 'excluded_paths': {'key': 'properties.excludedPaths', 'type': '[str]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + require_authentication: Optional[bool] = None, + unauthenticated_client_action: Optional[Union[str, "UnauthenticatedClientActionV2"]] = None, + redirect_to_provider: Optional[str] = None, + excluded_paths: Optional[List[str]] = None, + **kwargs + ): + super(GlobalValidation, self).__init__(kind=kind, **kwargs) + self.require_authentication = require_authentication + self.unauthenticated_client_action = unauthenticated_client_action + self.redirect_to_provider = redirect_to_provider + self.excluded_paths = excluded_paths + + +class Google(ProxyOnlyResource): + """The configuration settings of the Google provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the Google provider should not be enabled despite + the set registration; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the app registration for the Google + provider. + :type registration: ~azure.mgmt.web.v2021_01_15.models.ClientRegistration + :param login: The configuration settings of the login flow. + :type login: ~azure.mgmt.web.v2021_01_15.models.LoginScopes + :param validation: The configuration settings of the Azure Active Directory token validation + flow. + :type validation: ~azure.mgmt.web.v2021_01_15.models.AllowedAudiencesValidation + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'ClientRegistration'}, + 'login': {'key': 'properties.login', 'type': 'LoginScopes'}, + 'validation': {'key': 'properties.validation', 'type': 'AllowedAudiencesValidation'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + enabled: Optional[bool] = None, + registration: Optional["ClientRegistration"] = None, + login: Optional["LoginScopes"] = None, + validation: Optional["AllowedAudiencesValidation"] = None, + **kwargs + ): + super(Google, self).__init__(kind=kind, **kwargs) + self.enabled = enabled + self.registration = registration + self.login = login + self.validation = validation + + +class HandlerMapping(msrest.serialization.Model): + """The IIS handler mappings used to define which handler processes HTTP requests with certain extension. +For example, it is used to configure php-cgi.exe process to handle all HTTP requests with *.php extension. + + :param extension: Requests with this extension will be handled using the specified FastCGI + application. + :type extension: str + :param script_processor: The absolute path to the FastCGI application. + :type script_processor: str + :param arguments: Command-line arguments to be passed to the script processor. + :type arguments: str + """ + + _attribute_map = { + 'extension': {'key': 'extension', 'type': 'str'}, + 'script_processor': {'key': 'scriptProcessor', 'type': 'str'}, + 'arguments': {'key': 'arguments', 'type': 'str'}, + } + + def __init__( + self, + *, + extension: Optional[str] = None, + script_processor: Optional[str] = None, + arguments: Optional[str] = None, + **kwargs + ): + super(HandlerMapping, self).__init__(**kwargs) + self.extension = extension + self.script_processor = script_processor + self.arguments = arguments + + +class HostingEnvironmentDeploymentInfo(msrest.serialization.Model): + """Information needed to create resources on an App Service Environment. + + :param name: Name of the App Service Environment. + :type name: str + :param location: Location of the App Service Environment. + :type location: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + location: Optional[str] = None, + **kwargs + ): + super(HostingEnvironmentDeploymentInfo, self).__init__(**kwargs) + self.name = name + self.location = location + + +class HostingEnvironmentDiagnostics(msrest.serialization.Model): + """Diagnostics for an App Service Environment. + + :param name: Name/identifier of the diagnostics. + :type name: str + :param diagnostics_output: Diagnostics output. + :type diagnostics_output: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'diagnostics_output': {'key': 'diagnosticsOutput', 'type': 'str'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + diagnostics_output: Optional[str] = None, + **kwargs + ): + super(HostingEnvironmentDiagnostics, self).__init__(**kwargs) + self.name = name + self.diagnostics_output = diagnostics_output + + +class HostingEnvironmentProfile(msrest.serialization.Model): + """Specification for an App Service Environment to use for this resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param id: Resource ID of the App Service Environment. + :type id: str + :ivar name: Name of the App Service Environment. + :vartype name: str + :ivar type: Resource type of the App Service Environment. + :vartype type: str + """ + + _validation = { + '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, + *, + id: Optional[str] = None, + **kwargs + ): + super(HostingEnvironmentProfile, self).__init__(**kwargs) + self.id = id + self.name = None + self.type = None + + +class HostKeys(msrest.serialization.Model): + """Functions host level keys. + + :param master_key: Secret key. + :type master_key: str + :param function_keys: Host level function keys. + :type function_keys: dict[str, str] + :param system_keys: System keys. + :type system_keys: dict[str, str] + """ + + _attribute_map = { + 'master_key': {'key': 'masterKey', 'type': 'str'}, + 'function_keys': {'key': 'functionKeys', 'type': '{str}'}, + 'system_keys': {'key': 'systemKeys', 'type': '{str}'}, + } + + def __init__( + self, + *, + master_key: Optional[str] = None, + function_keys: Optional[Dict[str, str]] = None, + system_keys: Optional[Dict[str, str]] = None, + **kwargs + ): + super(HostKeys, self).__init__(**kwargs) + self.master_key = master_key + self.function_keys = function_keys + self.system_keys = system_keys + + +class HostName(msrest.serialization.Model): + """Details of a hostname derived from a domain. + + :param name: Name of the hostname. + :type name: str + :param site_names: List of apps the hostname is assigned to. This list will have more than one + app only if the hostname is pointing to a Traffic Manager. + :type site_names: list[str] + :param azure_resource_name: Name of the Azure resource the hostname is assigned to. If it is + assigned to a Traffic Manager then it will be the Traffic Manager name otherwise it will be the + app name. + :type azure_resource_name: str + :param azure_resource_type: Type of the Azure resource the hostname is assigned to. Possible + values include: "Website", "TrafficManager". + :type azure_resource_type: str or ~azure.mgmt.web.v2021_01_15.models.AzureResourceType + :param custom_host_name_dns_record_type: Type of the DNS record. Possible values include: + "CName", "A". + :type custom_host_name_dns_record_type: str or + ~azure.mgmt.web.v2021_01_15.models.CustomHostNameDnsRecordType + :param host_name_type: Type of the hostname. Possible values include: "Verified", "Managed". + :type host_name_type: str or ~azure.mgmt.web.v2021_01_15.models.HostNameType + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'site_names': {'key': 'siteNames', 'type': '[str]'}, + 'azure_resource_name': {'key': 'azureResourceName', 'type': 'str'}, + 'azure_resource_type': {'key': 'azureResourceType', 'type': 'str'}, + 'custom_host_name_dns_record_type': {'key': 'customHostNameDnsRecordType', 'type': 'str'}, + 'host_name_type': {'key': 'hostNameType', 'type': 'str'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + site_names: Optional[List[str]] = None, + azure_resource_name: Optional[str] = None, + azure_resource_type: Optional[Union[str, "AzureResourceType"]] = None, + custom_host_name_dns_record_type: Optional[Union[str, "CustomHostNameDnsRecordType"]] = None, + host_name_type: Optional[Union[str, "HostNameType"]] = None, + **kwargs + ): + super(HostName, self).__init__(**kwargs) + self.name = name + self.site_names = site_names + self.azure_resource_name = azure_resource_name + self.azure_resource_type = azure_resource_type + self.custom_host_name_dns_record_type = custom_host_name_dns_record_type + self.host_name_type = host_name_type + + +class HostNameBinding(ProxyOnlyResource): + """A hostname binding object. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param site_name: App Service app name. + :type site_name: str + :param domain_id: Fully qualified ARM domain resource URI. + :type domain_id: str + :param azure_resource_name: Azure resource name. + :type azure_resource_name: str + :param azure_resource_type: Azure resource type. Possible values include: "Website", + "TrafficManager". + :type azure_resource_type: str or ~azure.mgmt.web.v2021_01_15.models.AzureResourceType + :param custom_host_name_dns_record_type: Custom DNS record type. Possible values include: + "CName", "A". + :type custom_host_name_dns_record_type: str or + ~azure.mgmt.web.v2021_01_15.models.CustomHostNameDnsRecordType + :param host_name_type: Hostname type. Possible values include: "Verified", "Managed". + :type host_name_type: str or ~azure.mgmt.web.v2021_01_15.models.HostNameType + :param ssl_state: SSL type. Possible values include: "Disabled", "SniEnabled", + "IpBasedEnabled". + :type ssl_state: str or ~azure.mgmt.web.v2021_01_15.models.SslState + :param thumbprint: SSL certificate thumbprint. + :type thumbprint: str + :ivar virtual_ip: Virtual IP address assigned to the hostname if IP based SSL is enabled. + :vartype virtual_ip: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'virtual_ip': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'site_name': {'key': 'properties.siteName', 'type': 'str'}, + 'domain_id': {'key': 'properties.domainId', 'type': 'str'}, + 'azure_resource_name': {'key': 'properties.azureResourceName', 'type': 'str'}, + 'azure_resource_type': {'key': 'properties.azureResourceType', 'type': 'str'}, + 'custom_host_name_dns_record_type': {'key': 'properties.customHostNameDnsRecordType', 'type': 'str'}, + 'host_name_type': {'key': 'properties.hostNameType', 'type': 'str'}, + 'ssl_state': {'key': 'properties.sslState', 'type': 'str'}, + 'thumbprint': {'key': 'properties.thumbprint', 'type': 'str'}, + 'virtual_ip': {'key': 'properties.virtualIP', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + site_name: Optional[str] = None, + domain_id: Optional[str] = None, + azure_resource_name: Optional[str] = None, + azure_resource_type: Optional[Union[str, "AzureResourceType"]] = None, + custom_host_name_dns_record_type: Optional[Union[str, "CustomHostNameDnsRecordType"]] = None, + host_name_type: Optional[Union[str, "HostNameType"]] = None, + ssl_state: Optional[Union[str, "SslState"]] = None, + thumbprint: Optional[str] = None, + **kwargs + ): + super(HostNameBinding, self).__init__(kind=kind, **kwargs) + self.site_name = site_name + self.domain_id = domain_id + self.azure_resource_name = azure_resource_name + self.azure_resource_type = azure_resource_type + self.custom_host_name_dns_record_type = custom_host_name_dns_record_type + self.host_name_type = host_name_type + self.ssl_state = ssl_state + self.thumbprint = thumbprint + self.virtual_ip = None + + +class HostNameBindingCollection(msrest.serialization.Model): + """Collection of hostname bindings. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.HostNameBinding] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[HostNameBinding]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["HostNameBinding"], + **kwargs + ): + super(HostNameBindingCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class HostNameSslState(msrest.serialization.Model): + """SSL-enabled hostname. + + :param name: Hostname. + :type name: str + :param ssl_state: SSL type. Possible values include: "Disabled", "SniEnabled", + "IpBasedEnabled". + :type ssl_state: str or ~azure.mgmt.web.v2021_01_15.models.SslState + :param virtual_ip: Virtual IP address assigned to the hostname if IP based SSL is enabled. + :type virtual_ip: str + :param thumbprint: SSL certificate thumbprint. + :type thumbprint: str + :param to_update: Set to :code:`true` to update existing hostname. + :type to_update: bool + :param host_type: Indicates whether the hostname is a standard or repository hostname. Possible + values include: "Standard", "Repository". + :type host_type: str or ~azure.mgmt.web.v2021_01_15.models.HostType + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'ssl_state': {'key': 'sslState', 'type': 'str'}, + 'virtual_ip': {'key': 'virtualIP', 'type': 'str'}, + 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, + 'to_update': {'key': 'toUpdate', 'type': 'bool'}, + 'host_type': {'key': 'hostType', 'type': 'str'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + ssl_state: Optional[Union[str, "SslState"]] = None, + virtual_ip: Optional[str] = None, + thumbprint: Optional[str] = None, + to_update: Optional[bool] = None, + host_type: Optional[Union[str, "HostType"]] = None, + **kwargs + ): + super(HostNameSslState, self).__init__(**kwargs) + self.name = name + self.ssl_state = ssl_state + self.virtual_ip = virtual_ip + self.thumbprint = thumbprint + self.to_update = to_update + self.host_type = host_type + + +class HttpLogsConfig(msrest.serialization.Model): + """Http logs configuration. + + :param file_system: Http logs to file system configuration. + :type file_system: ~azure.mgmt.web.v2021_01_15.models.FileSystemHttpLogsConfig + :param azure_blob_storage: Http logs to azure blob storage configuration. + :type azure_blob_storage: ~azure.mgmt.web.v2021_01_15.models.AzureBlobStorageHttpLogsConfig + """ + + _attribute_map = { + 'file_system': {'key': 'fileSystem', 'type': 'FileSystemHttpLogsConfig'}, + 'azure_blob_storage': {'key': 'azureBlobStorage', 'type': 'AzureBlobStorageHttpLogsConfig'}, + } + + def __init__( + self, + *, + file_system: Optional["FileSystemHttpLogsConfig"] = None, + azure_blob_storage: Optional["AzureBlobStorageHttpLogsConfig"] = None, + **kwargs + ): + super(HttpLogsConfig, self).__init__(**kwargs) + self.file_system = file_system + self.azure_blob_storage = azure_blob_storage + + +class HttpSettings(ProxyOnlyResource): + """The configuration settings of the HTTP requests for authentication and authorization requests made against App Service Authentication/Authorization. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param require_https: :code:`false` if the authentication/authorization responses + not having the HTTPS scheme are permissible; otherwise, :code:`true`. + :type require_https: bool + :param routes: The configuration settings of the paths HTTP requests. + :type routes: ~azure.mgmt.web.v2021_01_15.models.HttpSettingsRoutes + :param forward_proxy: The configuration settings of a forward proxy used to make the requests. + :type forward_proxy: ~azure.mgmt.web.v2021_01_15.models.ForwardProxy + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'require_https': {'key': 'properties.requireHttps', 'type': 'bool'}, + 'routes': {'key': 'properties.routes', 'type': 'HttpSettingsRoutes'}, + 'forward_proxy': {'key': 'properties.forwardProxy', 'type': 'ForwardProxy'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + require_https: Optional[bool] = None, + routes: Optional["HttpSettingsRoutes"] = None, + forward_proxy: Optional["ForwardProxy"] = None, + **kwargs + ): + super(HttpSettings, self).__init__(kind=kind, **kwargs) + self.require_https = require_https + self.routes = routes + self.forward_proxy = forward_proxy + + +class HttpSettingsRoutes(ProxyOnlyResource): + """The configuration settings of the paths HTTP requests. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param api_prefix: The prefix that should precede all the authentication/authorization paths. + :type api_prefix: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'api_prefix': {'key': 'properties.apiPrefix', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + api_prefix: Optional[str] = None, + **kwargs + ): + super(HttpSettingsRoutes, self).__init__(kind=kind, **kwargs) + self.api_prefix = api_prefix + + +class HybridConnection(ProxyOnlyResource): + """Hybrid Connection contract. This is used to configure a Hybrid Connection. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param service_bus_namespace: The name of the Service Bus namespace. + :type service_bus_namespace: str + :param relay_name: The name of the Service Bus relay. + :type relay_name: str + :param relay_arm_uri: The ARM URI to the Service Bus relay. + :type relay_arm_uri: str + :param hostname: The hostname of the endpoint. + :type hostname: str + :param port: The port of the endpoint. + :type port: int + :param send_key_name: The name of the Service Bus key which has Send permissions. This is used + to authenticate to Service Bus. + :type send_key_name: str + :param send_key_value: The value of the Service Bus key. This is used to authenticate to + Service Bus. In ARM this key will not be returned + normally, use the POST /listKeys API instead. + :type send_key_value: str + :param service_bus_suffix: The suffix for the service bus endpoint. By default this is + .servicebus.windows.net. + :type service_bus_suffix: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'service_bus_namespace': {'key': 'properties.serviceBusNamespace', 'type': 'str'}, + 'relay_name': {'key': 'properties.relayName', 'type': 'str'}, + 'relay_arm_uri': {'key': 'properties.relayArmUri', 'type': 'str'}, + 'hostname': {'key': 'properties.hostname', 'type': 'str'}, + 'port': {'key': 'properties.port', 'type': 'int'}, + 'send_key_name': {'key': 'properties.sendKeyName', 'type': 'str'}, + 'send_key_value': {'key': 'properties.sendKeyValue', 'type': 'str'}, + 'service_bus_suffix': {'key': 'properties.serviceBusSuffix', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + service_bus_namespace: Optional[str] = None, + relay_name: Optional[str] = None, + relay_arm_uri: Optional[str] = None, + hostname: Optional[str] = None, + port: Optional[int] = None, + send_key_name: Optional[str] = None, + send_key_value: Optional[str] = None, + service_bus_suffix: Optional[str] = None, + **kwargs + ): + super(HybridConnection, self).__init__(kind=kind, **kwargs) + self.service_bus_namespace = service_bus_namespace + self.relay_name = relay_name + self.relay_arm_uri = relay_arm_uri + self.hostname = hostname + self.port = port + self.send_key_name = send_key_name + self.send_key_value = send_key_value + self.service_bus_suffix = service_bus_suffix + + +class HybridConnectionCollection(msrest.serialization.Model): + """Collection of hostname bindings. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.HybridConnection] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[HybridConnection]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["HybridConnection"], + **kwargs + ): + super(HybridConnectionCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class HybridConnectionKey(ProxyOnlyResource): + """Hybrid Connection key contract. This has the send key name and value for a Hybrid Connection. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar send_key_name: The name of the send key. + :vartype send_key_name: str + :ivar send_key_value: The value of the send key. + :vartype send_key_value: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'send_key_name': {'readonly': True}, + 'send_key_value': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'send_key_name': {'key': 'properties.sendKeyName', 'type': 'str'}, + 'send_key_value': {'key': 'properties.sendKeyValue', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(HybridConnectionKey, self).__init__(kind=kind, **kwargs) + self.send_key_name = None + self.send_key_value = None + + +class HybridConnectionLimits(ProxyOnlyResource): + """Hybrid Connection limits contract. This is used to return the plan limits of Hybrid Connections. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar current: The current number of Hybrid Connections. + :vartype current: int + :ivar maximum: The maximum number of Hybrid Connections allowed. + :vartype maximum: int + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'current': {'readonly': True}, + 'maximum': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'current': {'key': 'properties.current', 'type': 'int'}, + 'maximum': {'key': 'properties.maximum', 'type': 'int'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(HybridConnectionLimits, self).__init__(kind=kind, **kwargs) + self.current = None + self.maximum = None + + +class Identifier(ProxyOnlyResource): + """A domain specific resource identifier. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param value: String representation of the identity. + :type value: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'value': {'key': 'properties.id', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + value: Optional[str] = None, + **kwargs + ): + super(Identifier, self).__init__(kind=kind, **kwargs) + self.value = value + + +class IdentifierCollection(msrest.serialization.Model): + """Collection of identifiers. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.Identifier] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Identifier]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["Identifier"], + **kwargs + ): + super(IdentifierCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class IdentityProviders(ProxyOnlyResource): + """The configuration settings of each of the identity providers used to configure App Service Authentication/Authorization. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param azure_active_directory: The configuration settings of the Azure Active directory + provider. + :type azure_active_directory: ~azure.mgmt.web.v2021_01_15.models.AzureActiveDirectory + :param facebook: The configuration settings of the Facebook provider. + :type facebook: ~azure.mgmt.web.v2021_01_15.models.Facebook + :param git_hub: The configuration settings of the GitHub provider. + :type git_hub: ~azure.mgmt.web.v2021_01_15.models.GitHub + :param google: The configuration settings of the Google provider. + :type google: ~azure.mgmt.web.v2021_01_15.models.Google + :param twitter: The configuration settings of the Twitter provider. + :type twitter: ~azure.mgmt.web.v2021_01_15.models.Twitter + :param custom_open_id_connect_providers: The map of the name of the alias of each custom Open + ID Connect provider to the + configuration settings of the custom Open ID Connect provider. + :type custom_open_id_connect_providers: dict[str, + ~azure.mgmt.web.v2021_01_15.models.CustomOpenIdConnectProvider] + :param legacy_microsoft_account: The configuration settings of the legacy Microsoft Account + provider. + :type legacy_microsoft_account: ~azure.mgmt.web.v2021_01_15.models.LegacyMicrosoftAccount + :param apple: The configuration settings of the Apple provider. + :type apple: ~azure.mgmt.web.v2021_01_15.models.Apple + :param azure_static_web_apps: The configuration settings of the Azure Static Web Apps provider. + :type azure_static_web_apps: ~azure.mgmt.web.v2021_01_15.models.AzureStaticWebApps + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'azure_active_directory': {'key': 'properties.azureActiveDirectory', 'type': 'AzureActiveDirectory'}, + 'facebook': {'key': 'properties.facebook', 'type': 'Facebook'}, + 'git_hub': {'key': 'properties.gitHub', 'type': 'GitHub'}, + 'google': {'key': 'properties.google', 'type': 'Google'}, + 'twitter': {'key': 'properties.twitter', 'type': 'Twitter'}, + 'custom_open_id_connect_providers': {'key': 'properties.customOpenIdConnectProviders', 'type': '{CustomOpenIdConnectProvider}'}, + 'legacy_microsoft_account': {'key': 'properties.legacyMicrosoftAccount', 'type': 'LegacyMicrosoftAccount'}, + 'apple': {'key': 'properties.apple', 'type': 'Apple'}, + 'azure_static_web_apps': {'key': 'properties.azureStaticWebApps', 'type': 'AzureStaticWebApps'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + azure_active_directory: Optional["AzureActiveDirectory"] = None, + facebook: Optional["Facebook"] = None, + git_hub: Optional["GitHub"] = None, + google: Optional["Google"] = None, + twitter: Optional["Twitter"] = None, + custom_open_id_connect_providers: Optional[Dict[str, "CustomOpenIdConnectProvider"]] = None, + legacy_microsoft_account: Optional["LegacyMicrosoftAccount"] = None, + apple: Optional["Apple"] = None, + azure_static_web_apps: Optional["AzureStaticWebApps"] = None, + **kwargs + ): + super(IdentityProviders, self).__init__(kind=kind, **kwargs) + self.azure_active_directory = azure_active_directory + self.facebook = facebook + self.git_hub = git_hub + self.google = google + self.twitter = twitter + self.custom_open_id_connect_providers = custom_open_id_connect_providers + self.legacy_microsoft_account = legacy_microsoft_account + self.apple = apple + self.azure_static_web_apps = azure_static_web_apps + + +class InboundEnvironmentEndpoint(msrest.serialization.Model): + """The IP Addresses and Ports that require inbound network access to and within the subnet of the App Service Environment. + + :param description: Short text describing the purpose of the network traffic. + :type description: str + :param endpoints: The IP addresses that network traffic will originate from in cidr notation. + :type endpoints: list[str] + :param ports: The ports that network traffic will arrive to the App Service Environment at. + :type ports: list[str] + """ + + _attribute_map = { + 'description': {'key': 'description', 'type': 'str'}, + 'endpoints': {'key': 'endpoints', 'type': '[str]'}, + 'ports': {'key': 'ports', 'type': '[str]'}, + } + + def __init__( + self, + *, + description: Optional[str] = None, + endpoints: Optional[List[str]] = None, + ports: Optional[List[str]] = None, + **kwargs + ): + super(InboundEnvironmentEndpoint, self).__init__(**kwargs) + self.description = description + self.endpoints = endpoints + self.ports = ports + + +class InboundEnvironmentEndpointCollection(msrest.serialization.Model): + """Collection of Inbound Environment Endpoints. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.InboundEnvironmentEndpoint] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[InboundEnvironmentEndpoint]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["InboundEnvironmentEndpoint"], + **kwargs + ): + super(InboundEnvironmentEndpointCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class IpSecurityRestriction(msrest.serialization.Model): + """IP security restriction on an app. + + :param ip_address: IP address the security restriction is valid for. + It can be in form of pure ipv4 address (required SubnetMask property) or + CIDR notation such as ipv4/mask (leading bit match). For CIDR, + SubnetMask property must not be specified. + :type ip_address: str + :param subnet_mask: Subnet mask for the range of IP addresses the restriction is valid for. + :type subnet_mask: str + :param vnet_subnet_resource_id: Virtual network resource id. + :type vnet_subnet_resource_id: str + :param vnet_traffic_tag: (internal) Vnet traffic tag. + :type vnet_traffic_tag: int + :param subnet_traffic_tag: (internal) Subnet traffic tag. + :type subnet_traffic_tag: int + :param action: Allow or Deny access for this IP range. + :type action: str + :param tag: Defines what this IP filter will be used for. This is to support IP filtering on + proxies. Possible values include: "Default", "XffProxy", "ServiceTag". + :type tag: str or ~azure.mgmt.web.v2021_01_15.models.IpFilterTag + :param priority: Priority of IP restriction rule. + :type priority: int + :param name: IP restriction rule name. + :type name: str + :param description: IP restriction rule description. + :type description: str + :param headers: IP restriction rule headers. + X-Forwarded-Host + (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). + The matching logic is .. + + + * If the property is null or empty (default), all hosts(or lack of) are allowed. + * A value is compared using ordinal-ignore-case (excluding port number). + * Subdomain wildcards are permitted but don't match the root domain. For example, + *.contoso.com matches the subdomain foo.contoso.com + but not the root domain contoso.com or multi-level foo.bar.contoso.com + * Unicode host names are allowed but are converted to Punycode for matching. + + X-Forwarded-For + (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). + The matching logic is .. + + + * If the property is null or empty (default), any forwarded-for chains (or lack of) are + allowed. + * If any address (excluding port number) in the chain (comma separated) matches the CIDR + defined by the property. + + X-Azure-FDID and X-FD-HealthProbe. + The matching logic is exact match. + :type headers: dict[str, list[str]] + """ + + _attribute_map = { + 'ip_address': {'key': 'ipAddress', 'type': 'str'}, + 'subnet_mask': {'key': 'subnetMask', 'type': 'str'}, + 'vnet_subnet_resource_id': {'key': 'vnetSubnetResourceId', 'type': 'str'}, + 'vnet_traffic_tag': {'key': 'vnetTrafficTag', 'type': 'int'}, + 'subnet_traffic_tag': {'key': 'subnetTrafficTag', 'type': 'int'}, + 'action': {'key': 'action', 'type': 'str'}, + 'tag': {'key': 'tag', 'type': 'str'}, + 'priority': {'key': 'priority', 'type': 'int'}, + 'name': {'key': 'name', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'headers': {'key': 'headers', 'type': '{[str]}'}, + } + + def __init__( + self, + *, + ip_address: Optional[str] = None, + subnet_mask: Optional[str] = None, + vnet_subnet_resource_id: Optional[str] = None, + vnet_traffic_tag: Optional[int] = None, + subnet_traffic_tag: Optional[int] = None, + action: Optional[str] = None, + tag: Optional[Union[str, "IpFilterTag"]] = None, + priority: Optional[int] = None, + name: Optional[str] = None, + description: Optional[str] = None, + headers: Optional[Dict[str, List[str]]] = None, + **kwargs + ): + super(IpSecurityRestriction, self).__init__(**kwargs) + self.ip_address = ip_address + self.subnet_mask = subnet_mask + self.vnet_subnet_resource_id = vnet_subnet_resource_id + self.vnet_traffic_tag = vnet_traffic_tag + self.subnet_traffic_tag = subnet_traffic_tag + self.action = action + self.tag = tag + self.priority = priority + self.name = name + self.description = description + self.headers = headers + + +class JwtClaimChecks(ProxyOnlyResource): + """The configuration settings of the checks that should be made while validating the JWT Claims. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param allowed_groups: The list of the allowed groups. + :type allowed_groups: list[str] + :param allowed_client_applications: The list of the allowed client applications. + :type allowed_client_applications: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'allowed_groups': {'key': 'properties.allowedGroups', 'type': '[str]'}, + 'allowed_client_applications': {'key': 'properties.allowedClientApplications', 'type': '[str]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + allowed_groups: Optional[List[str]] = None, + allowed_client_applications: Optional[List[str]] = None, + **kwargs + ): + super(JwtClaimChecks, self).__init__(kind=kind, **kwargs) + self.allowed_groups = allowed_groups + self.allowed_client_applications = allowed_client_applications + + +class KeyInfo(msrest.serialization.Model): + """Function key info. + + :param name: Key name. + :type name: str + :param value: Key value. + :type value: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + value: Optional[str] = None, + **kwargs + ): + super(KeyInfo, self).__init__(**kwargs) + self.name = name + self.value = value + + +class KeyValuePairStringObject(msrest.serialization.Model): + """KeyValuePairStringObject. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar key: + :vartype key: str + :ivar value: Any object. + :vartype value: any + """ + + _validation = { + 'key': {'readonly': True}, + 'value': {'readonly': True}, + } + + _attribute_map = { + 'key': {'key': 'key', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'object'}, + } + + def __init__( + self, + **kwargs + ): + super(KeyValuePairStringObject, self).__init__(**kwargs) + self.key = None + self.value = None + + +class KubeEnvironment(Resource): + """A Kubernetes cluster specialized for web workloads by Azure App Service. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param extended_location: Extended Location. + :type extended_location: ~azure.mgmt.web.v2021_01_15.models.ExtendedLocation + :ivar provisioning_state: Provisioning state of the Kubernetes Environment. Possible values + include: "Succeeded", "Failed", "Canceled", "Waiting", "InitializationInProgress", + "InfrastructureSetupInProgress", "InfrastructureSetupComplete", "ScheduledForDelete", + "UpgradeRequested", "UpgradeFailed". + :vartype provisioning_state: str or + ~azure.mgmt.web.v2021_01_15.models.KubeEnvironmentProvisioningState + :ivar deployment_errors: Any errors that occurred during deployment or deployment validation. + :vartype deployment_errors: str + :param internal_load_balancer_enabled: Only visible within Vnet/Subnet. + :type internal_load_balancer_enabled: bool + :ivar default_domain: Default Domain Name for the cluster. + :vartype default_domain: str + :param static_ip: Static IP of the KubeEnvironment. + :type static_ip: str + :param arc_configuration: Cluster configuration which determines the ARC cluster + components types. Eg: Choosing between BuildService kind, + FrontEnd Service ArtifactsStorageType etc. + :type arc_configuration: ~azure.mgmt.web.v2021_01_15.models.ArcConfiguration + :param app_logs_configuration: Cluster configuration which enables the log daemon to export + app logs to a destination. Currently only "log-analytics" is + supported. + :type app_logs_configuration: ~azure.mgmt.web.v2021_01_15.models.AppLogsConfiguration + :param aks_resource_id: + :type aks_resource_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'deployment_errors': {'readonly': True}, + 'default_domain': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'extended_location': {'key': 'extendedLocation', 'type': 'ExtendedLocation'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'deployment_errors': {'key': 'properties.deploymentErrors', 'type': 'str'}, + 'internal_load_balancer_enabled': {'key': 'properties.internalLoadBalancerEnabled', 'type': 'bool'}, + 'default_domain': {'key': 'properties.defaultDomain', 'type': 'str'}, + 'static_ip': {'key': 'properties.staticIp', 'type': 'str'}, + 'arc_configuration': {'key': 'properties.arcConfiguration', 'type': 'ArcConfiguration'}, + 'app_logs_configuration': {'key': 'properties.appLogsConfiguration', 'type': 'AppLogsConfiguration'}, + 'aks_resource_id': {'key': 'properties.aksResourceID', 'type': 'str'}, + } + + def __init__( + self, + *, + location: str, + kind: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + extended_location: Optional["ExtendedLocation"] = None, + internal_load_balancer_enabled: Optional[bool] = None, + static_ip: Optional[str] = None, + arc_configuration: Optional["ArcConfiguration"] = None, + app_logs_configuration: Optional["AppLogsConfiguration"] = None, + aks_resource_id: Optional[str] = None, + **kwargs + ): + super(KubeEnvironment, self).__init__(kind=kind, location=location, tags=tags, **kwargs) + self.extended_location = extended_location + self.provisioning_state = None + self.deployment_errors = None + self.internal_load_balancer_enabled = internal_load_balancer_enabled + self.default_domain = None + self.static_ip = static_ip + self.arc_configuration = arc_configuration + self.app_logs_configuration = app_logs_configuration + self.aks_resource_id = aks_resource_id + + +class KubeEnvironmentCollection(msrest.serialization.Model): + """Collection of Kubernetes Environments. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.KubeEnvironment] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[KubeEnvironment]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["KubeEnvironment"], + **kwargs + ): + super(KubeEnvironmentCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class KubeEnvironmentPatchResource(ProxyOnlyResource): + """ARM resource for a KubeEnvironment when patching. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar provisioning_state: Provisioning state of the Kubernetes Environment. Possible values + include: "Succeeded", "Failed", "Canceled", "Waiting", "InitializationInProgress", + "InfrastructureSetupInProgress", "InfrastructureSetupComplete", "ScheduledForDelete", + "UpgradeRequested", "UpgradeFailed". + :vartype provisioning_state: str or + ~azure.mgmt.web.v2021_01_15.models.KubeEnvironmentProvisioningState + :ivar deployment_errors: Any errors that occurred during deployment or deployment validation. + :vartype deployment_errors: str + :param internal_load_balancer_enabled: Only visible within Vnet/Subnet. + :type internal_load_balancer_enabled: bool + :ivar default_domain: Default Domain Name for the cluster. + :vartype default_domain: str + :param static_ip: Static IP of the KubeEnvironment. + :type static_ip: str + :param arc_configuration: Cluster configuration which determines the ARC cluster + components types. Eg: Choosing between BuildService kind, + FrontEnd Service ArtifactsStorageType etc. + :type arc_configuration: ~azure.mgmt.web.v2021_01_15.models.ArcConfiguration + :param app_logs_configuration: Cluster configuration which enables the log daemon to export + app logs to a destination. Currently only "log-analytics" is + supported. + :type app_logs_configuration: ~azure.mgmt.web.v2021_01_15.models.AppLogsConfiguration + :param aks_resource_id: + :type aks_resource_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'deployment_errors': {'readonly': True}, + 'default_domain': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'deployment_errors': {'key': 'properties.deploymentErrors', 'type': 'str'}, + 'internal_load_balancer_enabled': {'key': 'properties.internalLoadBalancerEnabled', 'type': 'bool'}, + 'default_domain': {'key': 'properties.defaultDomain', 'type': 'str'}, + 'static_ip': {'key': 'properties.staticIp', 'type': 'str'}, + 'arc_configuration': {'key': 'properties.arcConfiguration', 'type': 'ArcConfiguration'}, + 'app_logs_configuration': {'key': 'properties.appLogsConfiguration', 'type': 'AppLogsConfiguration'}, + 'aks_resource_id': {'key': 'properties.aksResourceID', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + internal_load_balancer_enabled: Optional[bool] = None, + static_ip: Optional[str] = None, + arc_configuration: Optional["ArcConfiguration"] = None, + app_logs_configuration: Optional["AppLogsConfiguration"] = None, + aks_resource_id: Optional[str] = None, + **kwargs + ): + super(KubeEnvironmentPatchResource, self).__init__(kind=kind, **kwargs) + self.provisioning_state = None + self.deployment_errors = None + self.internal_load_balancer_enabled = internal_load_balancer_enabled + self.default_domain = None + self.static_ip = static_ip + self.arc_configuration = arc_configuration + self.app_logs_configuration = app_logs_configuration + self.aks_resource_id = aks_resource_id + + +class KubeEnvironmentProfile(msrest.serialization.Model): + """Specification for a Kubernetes Environment to use for this resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param id: Resource ID of the Kubernetes Environment. + :type id: str + :ivar name: Name of the Kubernetes Environment. + :vartype name: str + :ivar type: Resource type of the Kubernetes Environment. + :vartype type: str + """ + + _validation = { + '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, + *, + id: Optional[str] = None, + **kwargs + ): + super(KubeEnvironmentProfile, self).__init__(**kwargs) + self.id = id + self.name = None + self.type = None + + +class LegacyMicrosoftAccount(ProxyOnlyResource): + """The configuration settings of the legacy Microsoft Account provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the legacy Microsoft Account provider should not + be enabled despite the set registration; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the app registration for the legacy + Microsoft Account provider. + :type registration: ~azure.mgmt.web.v2021_01_15.models.ClientRegistration + :param login: The configuration settings of the login flow. + :type login: ~azure.mgmt.web.v2021_01_15.models.LoginScopes + :param validation: The configuration settings of the legacy Microsoft Account provider token + validation flow. + :type validation: ~azure.mgmt.web.v2021_01_15.models.AllowedAudiencesValidation + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'ClientRegistration'}, + 'login': {'key': 'properties.login', 'type': 'LoginScopes'}, + 'validation': {'key': 'properties.validation', 'type': 'AllowedAudiencesValidation'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + enabled: Optional[bool] = None, + registration: Optional["ClientRegistration"] = None, + login: Optional["LoginScopes"] = None, + validation: Optional["AllowedAudiencesValidation"] = None, + **kwargs + ): + super(LegacyMicrosoftAccount, self).__init__(kind=kind, **kwargs) + self.enabled = enabled + self.registration = registration + self.login = login + self.validation = validation + + +class LinuxJavaContainerSettings(msrest.serialization.Model): + """Linux Java Container settings. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar java11_runtime: Java 11 version (runtime only). + :vartype java11_runtime: str + :ivar java8_runtime: Java 8 version (runtime only). + :vartype java8_runtime: str + :ivar is_preview: :code:`true` if the stack is in preview; otherwise, + :code:`false`. + :vartype is_preview: bool + :ivar is_deprecated: :code:`true` if the stack is deprecated; otherwise, + :code:`false`. + :vartype is_deprecated: bool + :ivar is_hidden: :code:`true` if the stack should be hidden; otherwise, + :code:`false`. + :vartype is_hidden: bool + :ivar end_of_life_date: End-of-life date for the minor version. + :vartype end_of_life_date: ~datetime.datetime + :ivar is_auto_update: :code:`true` if the stack version is auto-updated; + otherwise, :code:`false`. + :vartype is_auto_update: bool + :ivar is_early_access: :code:`true` if the minor version is early-access; + otherwise, :code:`false`. + :vartype is_early_access: bool + """ + + _validation = { + 'java11_runtime': {'readonly': True}, + 'java8_runtime': {'readonly': True}, + 'is_preview': {'readonly': True}, + 'is_deprecated': {'readonly': True}, + 'is_hidden': {'readonly': True}, + 'end_of_life_date': {'readonly': True}, + 'is_auto_update': {'readonly': True}, + 'is_early_access': {'readonly': True}, + } + + _attribute_map = { + 'java11_runtime': {'key': 'java11Runtime', 'type': 'str'}, + 'java8_runtime': {'key': 'java8Runtime', 'type': 'str'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + 'is_deprecated': {'key': 'isDeprecated', 'type': 'bool'}, + 'is_hidden': {'key': 'isHidden', 'type': 'bool'}, + 'end_of_life_date': {'key': 'endOfLifeDate', 'type': 'iso-8601'}, + 'is_auto_update': {'key': 'isAutoUpdate', 'type': 'bool'}, + 'is_early_access': {'key': 'isEarlyAccess', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(LinuxJavaContainerSettings, self).__init__(**kwargs) + self.java11_runtime = None + self.java8_runtime = None + self.is_preview = None + self.is_deprecated = None + self.is_hidden = None + self.end_of_life_date = None + self.is_auto_update = None + self.is_early_access = None + + +class LocalizableString(msrest.serialization.Model): + """Localizable string object containing the name and a localized value. + + :param value: Non-localized name. + :type value: str + :param localized_value: Localized name. + :type localized_value: str + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': 'str'}, + 'localized_value': {'key': 'localizedValue', 'type': 'str'}, + } + + def __init__( + self, + *, + value: Optional[str] = None, + localized_value: Optional[str] = None, + **kwargs + ): + super(LocalizableString, self).__init__(**kwargs) + self.value = value + self.localized_value = localized_value + + +class LogAnalyticsConfiguration(msrest.serialization.Model): + """LogAnalyticsConfiguration. + + :param customer_id: + :type customer_id: str + :param shared_key: + :type shared_key: str + """ + + _attribute_map = { + 'customer_id': {'key': 'customerId', 'type': 'str'}, + 'shared_key': {'key': 'sharedKey', 'type': 'str'}, + } + + def __init__( + self, + *, + customer_id: Optional[str] = None, + shared_key: Optional[str] = None, + **kwargs + ): + super(LogAnalyticsConfiguration, self).__init__(**kwargs) + self.customer_id = customer_id + self.shared_key = shared_key + + +class Login(ProxyOnlyResource): + """The configuration settings of the login flow of users using App Service Authentication/Authorization. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param routes: The routes that specify the endpoints used for login and logout requests. + :type routes: ~azure.mgmt.web.v2021_01_15.models.LoginRoutes + :param token_store: The configuration settings of the token store. + :type token_store: ~azure.mgmt.web.v2021_01_15.models.TokenStore + :param preserve_url_fragments_for_logins: :code:`true` if the fragments from the + request are preserved after the login request is made; otherwise, :code:`false`. + :type preserve_url_fragments_for_logins: bool + :param allowed_external_redirect_urls: External URLs that can be redirected to as part of + logging in or logging out of the app. Note that the query string part of the URL is ignored. + This is an advanced setting typically only needed by Windows Store application backends. + Note that URLs within the current domain are always implicitly allowed. + :type allowed_external_redirect_urls: list[str] + :param cookie_expiration: The configuration settings of the session cookie's expiration. + :type cookie_expiration: ~azure.mgmt.web.v2021_01_15.models.CookieExpiration + :param nonce: The configuration settings of the nonce used in the login flow. + :type nonce: ~azure.mgmt.web.v2021_01_15.models.Nonce + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'routes': {'key': 'properties.routes', 'type': 'LoginRoutes'}, + 'token_store': {'key': 'properties.tokenStore', 'type': 'TokenStore'}, + 'preserve_url_fragments_for_logins': {'key': 'properties.preserveUrlFragmentsForLogins', 'type': 'bool'}, + 'allowed_external_redirect_urls': {'key': 'properties.allowedExternalRedirectUrls', 'type': '[str]'}, + 'cookie_expiration': {'key': 'properties.cookieExpiration', 'type': 'CookieExpiration'}, + 'nonce': {'key': 'properties.nonce', 'type': 'Nonce'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + routes: Optional["LoginRoutes"] = None, + token_store: Optional["TokenStore"] = None, + preserve_url_fragments_for_logins: Optional[bool] = None, + allowed_external_redirect_urls: Optional[List[str]] = None, + cookie_expiration: Optional["CookieExpiration"] = None, + nonce: Optional["Nonce"] = None, + **kwargs + ): + super(Login, self).__init__(kind=kind, **kwargs) + self.routes = routes + self.token_store = token_store + self.preserve_url_fragments_for_logins = preserve_url_fragments_for_logins + self.allowed_external_redirect_urls = allowed_external_redirect_urls + self.cookie_expiration = cookie_expiration + self.nonce = nonce + + +class LoginRoutes(ProxyOnlyResource): + """The routes that specify the endpoints used for login and logout requests. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param logout_endpoint: The endpoint at which a logout request should be made. + :type logout_endpoint: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'logout_endpoint': {'key': 'properties.logoutEndpoint', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + logout_endpoint: Optional[str] = None, + **kwargs + ): + super(LoginRoutes, self).__init__(kind=kind, **kwargs) + self.logout_endpoint = logout_endpoint + + +class LoginScopes(ProxyOnlyResource): + """The configuration settings of the login flow, including the scopes that should be requested. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param scopes: A list of the scopes that should be requested while authenticating. + :type scopes: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'scopes': {'key': 'properties.scopes', 'type': '[str]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + scopes: Optional[List[str]] = None, + **kwargs + ): + super(LoginScopes, self).__init__(kind=kind, **kwargs) + self.scopes = scopes + + +class LogSpecification(msrest.serialization.Model): + """Log Definition of a single resource metric. + + :param name: + :type name: str + :param display_name: + :type display_name: str + :param blob_duration: + :type blob_duration: str + :param log_filter_pattern: + :type log_filter_pattern: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'blob_duration': {'key': 'blobDuration', 'type': 'str'}, + 'log_filter_pattern': {'key': 'logFilterPattern', 'type': 'str'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + display_name: Optional[str] = None, + blob_duration: Optional[str] = None, + log_filter_pattern: Optional[str] = None, + **kwargs + ): + super(LogSpecification, self).__init__(**kwargs) + self.name = name + self.display_name = display_name + self.blob_duration = blob_duration + self.log_filter_pattern = log_filter_pattern + + +class ManagedServiceIdentity(msrest.serialization.Model): + """Managed service identity. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param type: Type of managed service identity. Possible values include: "SystemAssigned", + "UserAssigned", "SystemAssigned, UserAssigned", "None". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.ManagedServiceIdentityType + :ivar tenant_id: Tenant of managed service identity. + :vartype tenant_id: str + :ivar principal_id: Principal Id of managed service identity. + :vartype principal_id: str + :param user_assigned_identities: The list of user assigned identities associated with the + resource. The user identity dictionary key references will be ARM resource ids in the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + :type user_assigned_identities: dict[str, + ~azure.mgmt.web.v2021_01_15.models.UserAssignedIdentity] + """ + + _validation = { + 'tenant_id': {'readonly': True}, + 'principal_id': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'user_assigned_identities': {'key': 'userAssignedIdentities', 'type': '{UserAssignedIdentity}'}, + } + + def __init__( + self, + *, + type: Optional[Union[str, "ManagedServiceIdentityType"]] = None, + user_assigned_identities: Optional[Dict[str, "UserAssignedIdentity"]] = None, + **kwargs + ): + super(ManagedServiceIdentity, self).__init__(**kwargs) + self.type = type + self.tenant_id = None + self.principal_id = None + self.user_assigned_identities = user_assigned_identities + + +class MetricAvailability(msrest.serialization.Model): + """Retention policy of a resource metric. + + :param time_grain: + :type time_grain: str + :param blob_duration: + :type blob_duration: str + """ + + _attribute_map = { + 'time_grain': {'key': 'timeGrain', 'type': 'str'}, + 'blob_duration': {'key': 'blobDuration', 'type': 'str'}, + } + + def __init__( + self, + *, + time_grain: Optional[str] = None, + blob_duration: Optional[str] = None, + **kwargs + ): + super(MetricAvailability, self).__init__(**kwargs) + self.time_grain = time_grain + self.blob_duration = blob_duration + + +class MetricSpecification(msrest.serialization.Model): + """Definition of a single resource metric. + + :param name: + :type name: str + :param display_name: + :type display_name: str + :param display_description: + :type display_description: str + :param unit: + :type unit: str + :param aggregation_type: + :type aggregation_type: str + :param supports_instance_level_aggregation: + :type supports_instance_level_aggregation: bool + :param enable_regional_mdm_account: + :type enable_regional_mdm_account: bool + :param source_mdm_account: + :type source_mdm_account: str + :param source_mdm_namespace: + :type source_mdm_namespace: str + :param metric_filter_pattern: + :type metric_filter_pattern: str + :param fill_gap_with_zero: + :type fill_gap_with_zero: bool + :param is_internal: + :type is_internal: bool + :param dimensions: + :type dimensions: list[~azure.mgmt.web.v2021_01_15.models.Dimension] + :param category: + :type category: str + :param availabilities: + :type availabilities: list[~azure.mgmt.web.v2021_01_15.models.MetricAvailability] + :param supported_time_grain_types: + :type supported_time_grain_types: list[str] + :param supported_aggregation_types: + :type supported_aggregation_types: list[str] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'display_description': {'key': 'displayDescription', 'type': 'str'}, + 'unit': {'key': 'unit', 'type': 'str'}, + 'aggregation_type': {'key': 'aggregationType', 'type': 'str'}, + 'supports_instance_level_aggregation': {'key': 'supportsInstanceLevelAggregation', 'type': 'bool'}, + 'enable_regional_mdm_account': {'key': 'enableRegionalMdmAccount', 'type': 'bool'}, + 'source_mdm_account': {'key': 'sourceMdmAccount', 'type': 'str'}, + 'source_mdm_namespace': {'key': 'sourceMdmNamespace', 'type': 'str'}, + 'metric_filter_pattern': {'key': 'metricFilterPattern', 'type': 'str'}, + 'fill_gap_with_zero': {'key': 'fillGapWithZero', 'type': 'bool'}, + 'is_internal': {'key': 'isInternal', 'type': 'bool'}, + 'dimensions': {'key': 'dimensions', 'type': '[Dimension]'}, + 'category': {'key': 'category', 'type': 'str'}, + 'availabilities': {'key': 'availabilities', 'type': '[MetricAvailability]'}, + 'supported_time_grain_types': {'key': 'supportedTimeGrainTypes', 'type': '[str]'}, + 'supported_aggregation_types': {'key': 'supportedAggregationTypes', 'type': '[str]'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + display_name: Optional[str] = None, + display_description: Optional[str] = None, + unit: Optional[str] = None, + aggregation_type: Optional[str] = None, + supports_instance_level_aggregation: Optional[bool] = None, + enable_regional_mdm_account: Optional[bool] = None, + source_mdm_account: Optional[str] = None, + source_mdm_namespace: Optional[str] = None, + metric_filter_pattern: Optional[str] = None, + fill_gap_with_zero: Optional[bool] = None, + is_internal: Optional[bool] = None, + dimensions: Optional[List["Dimension"]] = None, + category: Optional[str] = None, + availabilities: Optional[List["MetricAvailability"]] = None, + supported_time_grain_types: Optional[List[str]] = None, + supported_aggregation_types: Optional[List[str]] = None, + **kwargs + ): + super(MetricSpecification, self).__init__(**kwargs) + self.name = name + self.display_name = display_name + self.display_description = display_description + self.unit = unit + self.aggregation_type = aggregation_type + self.supports_instance_level_aggregation = supports_instance_level_aggregation + self.enable_regional_mdm_account = enable_regional_mdm_account + self.source_mdm_account = source_mdm_account + self.source_mdm_namespace = source_mdm_namespace + self.metric_filter_pattern = metric_filter_pattern + self.fill_gap_with_zero = fill_gap_with_zero + self.is_internal = is_internal + self.dimensions = dimensions + self.category = category + self.availabilities = availabilities + self.supported_time_grain_types = supported_time_grain_types + self.supported_aggregation_types = supported_aggregation_types + + +class MigrateMySqlRequest(ProxyOnlyResource): + """MySQL migration request. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param connection_string: Connection string to the remote MySQL database. + :type connection_string: str + :param migration_type: The type of migration operation to be done. Possible values include: + "LocalToRemote", "RemoteToLocal". + :type migration_type: str or ~azure.mgmt.web.v2021_01_15.models.MySqlMigrationType + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'connection_string': {'key': 'properties.connectionString', 'type': 'str'}, + 'migration_type': {'key': 'properties.migrationType', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + connection_string: Optional[str] = None, + migration_type: Optional[Union[str, "MySqlMigrationType"]] = None, + **kwargs + ): + super(MigrateMySqlRequest, self).__init__(kind=kind, **kwargs) + self.connection_string = connection_string + self.migration_type = migration_type + + +class MigrateMySqlStatus(ProxyOnlyResource): + """MySQL migration status. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar migration_operation_status: Status of the migration task. Possible values include: + "InProgress", "Failed", "Succeeded", "TimedOut", "Created". + :vartype migration_operation_status: str or ~azure.mgmt.web.v2021_01_15.models.OperationStatus + :ivar operation_id: Operation ID for the migration task. + :vartype operation_id: str + :ivar local_my_sql_enabled: True if the web app has in app MySql enabled. + :vartype local_my_sql_enabled: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'migration_operation_status': {'readonly': True}, + 'operation_id': {'readonly': True}, + 'local_my_sql_enabled': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'migration_operation_status': {'key': 'properties.migrationOperationStatus', 'type': 'str'}, + 'operation_id': {'key': 'properties.operationId', 'type': 'str'}, + 'local_my_sql_enabled': {'key': 'properties.localMySqlEnabled', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(MigrateMySqlStatus, self).__init__(kind=kind, **kwargs) + self.migration_operation_status = None + self.operation_id = None + self.local_my_sql_enabled = None + + +class MSDeploy(ProxyOnlyResource): + """MSDeploy ARM PUT information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param package_uri: Package URI. + :type package_uri: str + :param connection_string: SQL Connection String. + :type connection_string: str + :param db_type: Database Type. + :type db_type: str + :param set_parameters_xml_file_uri: URI of MSDeploy Parameters file. Must not be set if + SetParameters is used. + :type set_parameters_xml_file_uri: str + :param set_parameters: MSDeploy Parameters. Must not be set if SetParametersXmlFileUri is used. + :type set_parameters: dict[str, str] + :param skip_app_data: Controls whether the MSDeploy operation skips the App_Data directory. + If set to :code:`true`, the existing App_Data directory on the destination + will not be deleted, and any App_Data directory in the source will be ignored. + Setting is :code:`false` by default. + :type skip_app_data: bool + :param app_offline: Sets the AppOffline rule while the MSDeploy operation executes. + Setting is :code:`false` by default. + :type app_offline: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'package_uri': {'key': 'properties.packageUri', 'type': 'str'}, + 'connection_string': {'key': 'properties.connectionString', 'type': 'str'}, + 'db_type': {'key': 'properties.dbType', 'type': 'str'}, + 'set_parameters_xml_file_uri': {'key': 'properties.setParametersXmlFileUri', 'type': 'str'}, + 'set_parameters': {'key': 'properties.setParameters', 'type': '{str}'}, + 'skip_app_data': {'key': 'properties.skipAppData', 'type': 'bool'}, + 'app_offline': {'key': 'properties.appOffline', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + package_uri: Optional[str] = None, + connection_string: Optional[str] = None, + db_type: Optional[str] = None, + set_parameters_xml_file_uri: Optional[str] = None, + set_parameters: Optional[Dict[str, str]] = None, + skip_app_data: Optional[bool] = None, + app_offline: Optional[bool] = None, + **kwargs + ): + super(MSDeploy, self).__init__(kind=kind, **kwargs) + self.package_uri = package_uri + self.connection_string = connection_string + self.db_type = db_type + self.set_parameters_xml_file_uri = set_parameters_xml_file_uri + self.set_parameters = set_parameters + self.skip_app_data = skip_app_data + self.app_offline = app_offline + + +class MSDeployLog(ProxyOnlyResource): + """MSDeploy log. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar entries: List of log entry messages. + :vartype entries: list[~azure.mgmt.web.v2021_01_15.models.MSDeployLogEntry] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'entries': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'entries': {'key': 'properties.entries', 'type': '[MSDeployLogEntry]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(MSDeployLog, self).__init__(kind=kind, **kwargs) + self.entries = None + + +class MSDeployLogEntry(msrest.serialization.Model): + """MSDeploy log entry. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar time: Timestamp of log entry. + :vartype time: ~datetime.datetime + :ivar type: Log entry type. Possible values include: "Message", "Warning", "Error". + :vartype type: str or ~azure.mgmt.web.v2021_01_15.models.MSDeployLogEntryType + :ivar message: Log entry message. + :vartype message: str + """ + + _validation = { + 'time': {'readonly': True}, + 'type': {'readonly': True}, + 'message': {'readonly': True}, + } + + _attribute_map = { + 'time': {'key': 'time', 'type': 'iso-8601'}, + 'type': {'key': 'type', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(MSDeployLogEntry, self).__init__(**kwargs) + self.time = None + self.type = None + self.message = None + + +class MSDeployStatus(ProxyOnlyResource): + """MSDeploy ARM response. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar deployer: Username of deployer. + :vartype deployer: str + :ivar provisioning_state: Provisioning state. Possible values include: "accepted", "running", + "succeeded", "failed", "canceled". + :vartype provisioning_state: str or + ~azure.mgmt.web.v2021_01_15.models.MSDeployProvisioningState + :ivar start_time: Start time of deploy operation. + :vartype start_time: ~datetime.datetime + :ivar end_time: End time of deploy operation. + :vartype end_time: ~datetime.datetime + :ivar complete: Whether the deployment operation has completed. + :vartype complete: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'deployer': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'start_time': {'readonly': True}, + 'end_time': {'readonly': True}, + 'complete': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'deployer': {'key': 'properties.deployer', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'start_time': {'key': 'properties.startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'properties.endTime', 'type': 'iso-8601'}, + 'complete': {'key': 'properties.complete', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(MSDeployStatus, self).__init__(kind=kind, **kwargs) + self.deployer = None + self.provisioning_state = None + self.start_time = None + self.end_time = None + self.complete = None + + +class NameIdentifier(msrest.serialization.Model): + """Identifies an object. + + :param name: Name of the object. + :type name: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + **kwargs + ): + super(NameIdentifier, self).__init__(**kwargs) + self.name = name + + +class NameIdentifierCollection(msrest.serialization.Model): + """Collection of domain name identifiers. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.NameIdentifier] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[NameIdentifier]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["NameIdentifier"], + **kwargs + ): + super(NameIdentifierCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class NameValuePair(msrest.serialization.Model): + """Name value pair. + + :param name: Pair name. + :type name: str + :param value: Pair value. + :type value: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + value: Optional[str] = None, + **kwargs + ): + super(NameValuePair, self).__init__(**kwargs) + self.name = name + self.value = value + + +class NetworkFeatures(ProxyOnlyResource): + """Full view of network features for an app (presently VNET integration and Hybrid Connections). + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar virtual_network_name: The Virtual Network name. + :vartype virtual_network_name: str + :ivar virtual_network_connection: The Virtual Network summary view. + :vartype virtual_network_connection: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :ivar hybrid_connections: The Hybrid Connections summary view. + :vartype hybrid_connections: + list[~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity] + :ivar hybrid_connections_v2: The Hybrid Connection V2 (Service Bus) view. + :vartype hybrid_connections_v2: list[~azure.mgmt.web.v2021_01_15.models.HybridConnection] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'virtual_network_name': {'readonly': True}, + 'virtual_network_connection': {'readonly': True}, + 'hybrid_connections': {'readonly': True}, + 'hybrid_connections_v2': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'virtual_network_name': {'key': 'properties.virtualNetworkName', 'type': 'str'}, + 'virtual_network_connection': {'key': 'properties.virtualNetworkConnection', 'type': 'VnetInfo'}, + 'hybrid_connections': {'key': 'properties.hybridConnections', 'type': '[RelayServiceConnectionEntity]'}, + 'hybrid_connections_v2': {'key': 'properties.hybridConnectionsV2', 'type': '[HybridConnection]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(NetworkFeatures, self).__init__(kind=kind, **kwargs) + self.virtual_network_name = None + self.virtual_network_connection = None + self.hybrid_connections = None + self.hybrid_connections_v2 = None + + +class NetworkTrace(msrest.serialization.Model): + """Network trace. + + :param path: Local file path for the captured network trace file. + :type path: str + :param status: Current status of the network trace operation, same as Operation.Status + (InProgress/Succeeded/Failed). + :type status: str + :param message: Detailed message of a network trace operation, e.g. error message in case of + failure. + :type message: str + """ + + _attribute_map = { + 'path': {'key': 'path', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__( + self, + *, + path: Optional[str] = None, + status: Optional[str] = None, + message: Optional[str] = None, + **kwargs + ): + super(NetworkTrace, self).__init__(**kwargs) + self.path = path + self.status = status + self.message = message + + +class Nonce(ProxyOnlyResource): + """The configuration settings of the nonce used in the login flow. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param validate_nonce: :code:`false` if the nonce should not be validated while + completing the login flow; otherwise, :code:`true`. + :type validate_nonce: bool + :param nonce_expiration_interval: The time after the request is made when the nonce should + expire. + :type nonce_expiration_interval: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'validate_nonce': {'key': 'properties.validateNonce', 'type': 'bool'}, + 'nonce_expiration_interval': {'key': 'properties.nonceExpirationInterval', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + validate_nonce: Optional[bool] = None, + nonce_expiration_interval: Optional[str] = None, + **kwargs + ): + super(Nonce, self).__init__(kind=kind, **kwargs) + self.validate_nonce = validate_nonce + self.nonce_expiration_interval = nonce_expiration_interval + + +class OpenIdConnectClientCredential(ProxyOnlyResource): + """The authentication client credentials of the custom Open ID Connect provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param method: The method that should be used to authenticate the user. The only acceptable + values to pass in are None and "ClientSecretPost". The default value is None. + :type method: str + :param client_secret_setting_name: The app setting that contains the client secret for the + custom Open ID Connect provider. + :type client_secret_setting_name: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'method': {'key': 'properties.method', 'type': 'str'}, + 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + method: Optional[str] = None, + client_secret_setting_name: Optional[str] = None, + **kwargs + ): + super(OpenIdConnectClientCredential, self).__init__(kind=kind, **kwargs) + self.method = method + self.client_secret_setting_name = client_secret_setting_name + + +class OpenIdConnectConfig(ProxyOnlyResource): + """The configuration settings of the endpoints used for the custom Open ID Connect provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param authorization_endpoint: The endpoint to be used to make an authorization request. + :type authorization_endpoint: str + :param token_endpoint: The endpoint to be used to request a token. + :type token_endpoint: str + :param issuer: The endpoint that issues the token. + :type issuer: str + :param certification_uri: The endpoint that provides the keys necessary to validate the token. + :type certification_uri: str + :param well_known_open_id_configuration: The endpoint that contains all the configuration + endpoints for the provider. + :type well_known_open_id_configuration: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'authorization_endpoint': {'key': 'properties.authorizationEndpoint', 'type': 'str'}, + 'token_endpoint': {'key': 'properties.tokenEndpoint', 'type': 'str'}, + 'issuer': {'key': 'properties.issuer', 'type': 'str'}, + 'certification_uri': {'key': 'properties.certificationUri', 'type': 'str'}, + 'well_known_open_id_configuration': {'key': 'properties.wellKnownOpenIdConfiguration', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + authorization_endpoint: Optional[str] = None, + token_endpoint: Optional[str] = None, + issuer: Optional[str] = None, + certification_uri: Optional[str] = None, + well_known_open_id_configuration: Optional[str] = None, + **kwargs + ): + super(OpenIdConnectConfig, self).__init__(kind=kind, **kwargs) + self.authorization_endpoint = authorization_endpoint + self.token_endpoint = token_endpoint + self.issuer = issuer + self.certification_uri = certification_uri + self.well_known_open_id_configuration = well_known_open_id_configuration + + +class OpenIdConnectLogin(ProxyOnlyResource): + """The configuration settings of the login flow of the custom Open ID Connect provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param name_claim_type: The name of the claim that contains the users name. + :type name_claim_type: str + :param scopes: A list of the scopes that should be requested while authenticating. + :type scopes: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'name_claim_type': {'key': 'properties.nameClaimType', 'type': 'str'}, + 'scopes': {'key': 'properties.scopes', 'type': '[str]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + name_claim_type: Optional[str] = None, + scopes: Optional[List[str]] = None, + **kwargs + ): + super(OpenIdConnectLogin, self).__init__(kind=kind, **kwargs) + self.name_claim_type = name_claim_type + self.scopes = scopes + + +class OpenIdConnectRegistration(ProxyOnlyResource): + """The configuration settings of the app registration for the custom Open ID Connect provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param client_id: The client id of the custom Open ID Connect provider. + :type client_id: str + :param client_credential: The authentication credentials of the custom Open ID Connect + provider. + :type client_credential: ~azure.mgmt.web.v2021_01_15.models.OpenIdConnectClientCredential + :param open_id_connect_configuration: The configuration settings of the endpoints used for the + custom Open ID Connect provider. + :type open_id_connect_configuration: ~azure.mgmt.web.v2021_01_15.models.OpenIdConnectConfig + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'client_id': {'key': 'properties.clientId', 'type': 'str'}, + 'client_credential': {'key': 'properties.clientCredential', 'type': 'OpenIdConnectClientCredential'}, + 'open_id_connect_configuration': {'key': 'properties.openIdConnectConfiguration', 'type': 'OpenIdConnectConfig'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + client_id: Optional[str] = None, + client_credential: Optional["OpenIdConnectClientCredential"] = None, + open_id_connect_configuration: Optional["OpenIdConnectConfig"] = None, + **kwargs + ): + super(OpenIdConnectRegistration, self).__init__(kind=kind, **kwargs) + self.client_id = client_id + self.client_credential = client_credential + self.open_id_connect_configuration = open_id_connect_configuration + + +class Operation(msrest.serialization.Model): + """An operation on a resource. + + :param id: Operation ID. + :type id: str + :param name: Operation name. + :type name: str + :param status: The current status of the operation. Possible values include: "InProgress", + "Failed", "Succeeded", "TimedOut", "Created". + :type status: str or ~azure.mgmt.web.v2021_01_15.models.OperationStatus + :param errors: Any errors associate with the operation. + :type errors: list[~azure.mgmt.web.v2021_01_15.models.ErrorEntity] + :param created_time: Time when operation has started. + :type created_time: ~datetime.datetime + :param modified_time: Time when operation has been updated. + :type modified_time: ~datetime.datetime + :param expiration_time: Time when operation will expire. + :type expiration_time: ~datetime.datetime + :param geo_master_operation_id: Applicable only for stamp operation ids. + :type geo_master_operation_id: str + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'errors': {'key': 'errors', 'type': '[ErrorEntity]'}, + 'created_time': {'key': 'createdTime', 'type': 'iso-8601'}, + 'modified_time': {'key': 'modifiedTime', 'type': 'iso-8601'}, + 'expiration_time': {'key': 'expirationTime', 'type': 'iso-8601'}, + 'geo_master_operation_id': {'key': 'geoMasterOperationId', 'type': 'str'}, + } + + def __init__( + self, + *, + id: Optional[str] = None, + name: Optional[str] = None, + status: Optional[Union[str, "OperationStatus"]] = None, + errors: Optional[List["ErrorEntity"]] = None, + created_time: Optional[datetime.datetime] = None, + modified_time: Optional[datetime.datetime] = None, + expiration_time: Optional[datetime.datetime] = None, + geo_master_operation_id: Optional[str] = None, + **kwargs + ): + super(Operation, self).__init__(**kwargs) + self.id = id + self.name = name + self.status = status + self.errors = errors + self.created_time = created_time + self.modified_time = modified_time + self.expiration_time = expiration_time + self.geo_master_operation_id = geo_master_operation_id + + +class OutboundEnvironmentEndpoint(msrest.serialization.Model): + """Endpoints accessed for a common purpose that the App Service Environment requires outbound network access to. + + :param category: The type of service accessed by the App Service Environment, e.g., Azure + Storage, Azure SQL Database, and Azure Active Directory. + :type category: str + :param endpoints: The endpoints that the App Service Environment reaches the service at. + :type endpoints: list[~azure.mgmt.web.v2021_01_15.models.EndpointDependency] + """ + + _attribute_map = { + 'category': {'key': 'category', 'type': 'str'}, + 'endpoints': {'key': 'endpoints', 'type': '[EndpointDependency]'}, + } + + def __init__( + self, + *, + category: Optional[str] = None, + endpoints: Optional[List["EndpointDependency"]] = None, + **kwargs + ): + super(OutboundEnvironmentEndpoint, self).__init__(**kwargs) + self.category = category + self.endpoints = endpoints + + +class OutboundEnvironmentEndpointCollection(msrest.serialization.Model): + """Collection of Outbound Environment Endpoints. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.OutboundEnvironmentEndpoint] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[OutboundEnvironmentEndpoint]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["OutboundEnvironmentEndpoint"], + **kwargs + ): + super(OutboundEnvironmentEndpointCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class PerfMonCounterCollection(msrest.serialization.Model): + """Collection of performance monitor counters. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.PerfMonResponse] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PerfMonResponse]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["PerfMonResponse"], + **kwargs + ): + super(PerfMonCounterCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class PerfMonResponse(msrest.serialization.Model): + """Performance monitor API response. + + :param code: The response code. + :type code: str + :param message: The message. + :type message: str + :param data: The performance monitor counters. + :type data: ~azure.mgmt.web.v2021_01_15.models.PerfMonSet + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'data': {'key': 'data', 'type': 'PerfMonSet'}, + } + + def __init__( + self, + *, + code: Optional[str] = None, + message: Optional[str] = None, + data: Optional["PerfMonSet"] = None, + **kwargs + ): + super(PerfMonResponse, self).__init__(**kwargs) + self.code = code + self.message = message + self.data = data + + +class PerfMonSample(msrest.serialization.Model): + """Performance monitor sample in a set. + + :param time: Point in time for which counter was measured. + :type time: ~datetime.datetime + :param instance_name: Name of the server on which the measurement is made. + :type instance_name: str + :param value: Value of counter at a certain time. + :type value: float + """ + + _attribute_map = { + 'time': {'key': 'time', 'type': 'iso-8601'}, + 'instance_name': {'key': 'instanceName', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'float'}, + } + + def __init__( + self, + *, + time: Optional[datetime.datetime] = None, + instance_name: Optional[str] = None, + value: Optional[float] = None, + **kwargs + ): + super(PerfMonSample, self).__init__(**kwargs) + self.time = time + self.instance_name = instance_name + self.value = value + + +class PerfMonSet(msrest.serialization.Model): + """Metric information. + + :param name: Unique key name of the counter. + :type name: str + :param start_time: Start time of the period. + :type start_time: ~datetime.datetime + :param end_time: End time of the period. + :type end_time: ~datetime.datetime + :param time_grain: Presented time grain. + :type time_grain: str + :param values: Collection of workers that are active during this time. + :type values: list[~azure.mgmt.web.v2021_01_15.models.PerfMonSample] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'time_grain': {'key': 'timeGrain', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[PerfMonSample]'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + time_grain: Optional[str] = None, + values: Optional[List["PerfMonSample"]] = None, + **kwargs + ): + super(PerfMonSet, self).__init__(**kwargs) + self.name = name + self.start_time = start_time + self.end_time = end_time + self.time_grain = time_grain + self.values = values + + +class PremierAddOn(Resource): + """Premier add-on. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param sku: Premier add on SKU. + :type sku: str + :param product: Premier add on Product. + :type product: str + :param vendor: Premier add on Vendor. + :type vendor: str + :param marketplace_publisher: Premier add on Marketplace publisher. + :type marketplace_publisher: str + :param marketplace_offer: Premier add on Marketplace offer. + :type marketplace_offer: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'sku': {'key': 'properties.sku', 'type': 'str'}, + 'product': {'key': 'properties.product', 'type': 'str'}, + 'vendor': {'key': 'properties.vendor', 'type': 'str'}, + 'marketplace_publisher': {'key': 'properties.marketplacePublisher', 'type': 'str'}, + 'marketplace_offer': {'key': 'properties.marketplaceOffer', 'type': 'str'}, + } + + def __init__( + self, + *, + location: str, + kind: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + sku: Optional[str] = None, + product: Optional[str] = None, + vendor: Optional[str] = None, + marketplace_publisher: Optional[str] = None, + marketplace_offer: Optional[str] = None, + **kwargs + ): + super(PremierAddOn, self).__init__(kind=kind, location=location, tags=tags, **kwargs) + self.sku = sku + self.product = product + self.vendor = vendor + self.marketplace_publisher = marketplace_publisher + self.marketplace_offer = marketplace_offer + + +class PremierAddOnOffer(ProxyOnlyResource): + """Premier add-on offer. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param sku: Premier add on SKU. + :type sku: str + :param product: Premier add on offer Product. + :type product: str + :param vendor: Premier add on offer Vendor. + :type vendor: str + :param promo_code_required: :code:`true` if promotion code is required; otherwise, + :code:`false`. + :type promo_code_required: bool + :param quota: Premier add on offer Quota. + :type quota: int + :param web_hosting_plan_restrictions: App Service plans this offer is restricted to. Possible + values include: "None", "Free", "Shared", "Basic", "Standard", "Premium". + :type web_hosting_plan_restrictions: str or + ~azure.mgmt.web.v2021_01_15.models.AppServicePlanRestrictions + :param privacy_policy_url: Privacy policy URL. + :type privacy_policy_url: str + :param legal_terms_url: Legal terms URL. + :type legal_terms_url: str + :param marketplace_publisher: Marketplace publisher. + :type marketplace_publisher: str + :param marketplace_offer: Marketplace offer. + :type marketplace_offer: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'sku': {'key': 'properties.sku', 'type': 'str'}, + 'product': {'key': 'properties.product', 'type': 'str'}, + 'vendor': {'key': 'properties.vendor', 'type': 'str'}, + 'promo_code_required': {'key': 'properties.promoCodeRequired', 'type': 'bool'}, + 'quota': {'key': 'properties.quota', 'type': 'int'}, + 'web_hosting_plan_restrictions': {'key': 'properties.webHostingPlanRestrictions', 'type': 'str'}, + 'privacy_policy_url': {'key': 'properties.privacyPolicyUrl', 'type': 'str'}, + 'legal_terms_url': {'key': 'properties.legalTermsUrl', 'type': 'str'}, + 'marketplace_publisher': {'key': 'properties.marketplacePublisher', 'type': 'str'}, + 'marketplace_offer': {'key': 'properties.marketplaceOffer', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + sku: Optional[str] = None, + product: Optional[str] = None, + vendor: Optional[str] = None, + promo_code_required: Optional[bool] = None, + quota: Optional[int] = None, + web_hosting_plan_restrictions: Optional[Union[str, "AppServicePlanRestrictions"]] = None, + privacy_policy_url: Optional[str] = None, + legal_terms_url: Optional[str] = None, + marketplace_publisher: Optional[str] = None, + marketplace_offer: Optional[str] = None, + **kwargs + ): + super(PremierAddOnOffer, self).__init__(kind=kind, **kwargs) + self.sku = sku + self.product = product + self.vendor = vendor + self.promo_code_required = promo_code_required + self.quota = quota + self.web_hosting_plan_restrictions = web_hosting_plan_restrictions + self.privacy_policy_url = privacy_policy_url + self.legal_terms_url = legal_terms_url + self.marketplace_publisher = marketplace_publisher + self.marketplace_offer = marketplace_offer + + +class PremierAddOnOfferCollection(msrest.serialization.Model): + """Collection of premier add-on offers. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.PremierAddOnOffer] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PremierAddOnOffer]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["PremierAddOnOffer"], + **kwargs + ): + super(PremierAddOnOfferCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class PremierAddOnPatchResource(ProxyOnlyResource): + """ARM resource for a PremierAddOn. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param sku: Premier add on SKU. + :type sku: str + :param product: Premier add on Product. + :type product: str + :param vendor: Premier add on Vendor. + :type vendor: str + :param marketplace_publisher: Premier add on Marketplace publisher. + :type marketplace_publisher: str + :param marketplace_offer: Premier add on Marketplace offer. + :type marketplace_offer: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'sku': {'key': 'properties.sku', 'type': 'str'}, + 'product': {'key': 'properties.product', 'type': 'str'}, + 'vendor': {'key': 'properties.vendor', 'type': 'str'}, + 'marketplace_publisher': {'key': 'properties.marketplacePublisher', 'type': 'str'}, + 'marketplace_offer': {'key': 'properties.marketplaceOffer', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + sku: Optional[str] = None, + product: Optional[str] = None, + vendor: Optional[str] = None, + marketplace_publisher: Optional[str] = None, + marketplace_offer: Optional[str] = None, + **kwargs + ): + super(PremierAddOnPatchResource, self).__init__(kind=kind, **kwargs) + self.sku = sku + self.product = product + self.vendor = vendor + self.marketplace_publisher = marketplace_publisher + self.marketplace_offer = marketplace_offer + + +class PrivateAccess(ProxyOnlyResource): + """Description of the parameters of Private Access for a Web Site. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: Whether private access is enabled or not. + :type enabled: bool + :param virtual_networks: The Virtual Networks (and subnets) allowed to access the site + privately. + :type virtual_networks: list[~azure.mgmt.web.v2021_01_15.models.PrivateAccessVirtualNetwork] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'virtual_networks': {'key': 'properties.virtualNetworks', 'type': '[PrivateAccessVirtualNetwork]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + enabled: Optional[bool] = None, + virtual_networks: Optional[List["PrivateAccessVirtualNetwork"]] = None, + **kwargs + ): + super(PrivateAccess, self).__init__(kind=kind, **kwargs) + self.enabled = enabled + self.virtual_networks = virtual_networks + + +class PrivateAccessSubnet(msrest.serialization.Model): + """Description of a Virtual Network subnet that is useable for private site access. + + :param name: The name of the subnet. + :type name: str + :param key: The key (ID) of the subnet. + :type key: int + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'key': {'key': 'key', 'type': 'int'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + key: Optional[int] = None, + **kwargs + ): + super(PrivateAccessSubnet, self).__init__(**kwargs) + self.name = name + self.key = key + + +class PrivateAccessVirtualNetwork(msrest.serialization.Model): + """Description of a Virtual Network that is useable for private site access. + + :param name: The name of the Virtual Network. + :type name: str + :param key: The key (ID) of the Virtual Network. + :type key: int + :param resource_id: The ARM uri of the Virtual Network. + :type resource_id: str + :param subnets: A List of subnets that access is allowed to on this Virtual Network. An empty + array (but not null) is interpreted to mean that all subnets are allowed within this Virtual + Network. + :type subnets: list[~azure.mgmt.web.v2021_01_15.models.PrivateAccessSubnet] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'key': {'key': 'key', 'type': 'int'}, + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + 'subnets': {'key': 'subnets', 'type': '[PrivateAccessSubnet]'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + key: Optional[int] = None, + resource_id: Optional[str] = None, + subnets: Optional[List["PrivateAccessSubnet"]] = None, + **kwargs + ): + super(PrivateAccessVirtualNetwork, self).__init__(**kwargs) + self.name = name + self.key = key + self.resource_id = resource_id + self.subnets = subnets + + +class PrivateEndpointConnectionCollection(msrest.serialization.Model): + """PrivateEndpointConnectionCollection. + + 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 value: Required. Collection of resources. + :type value: + list[~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[RemotePrivateEndpointConnectionARMResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["RemotePrivateEndpointConnectionARMResource"], + **kwargs + ): + super(PrivateEndpointConnectionCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class PrivateLinkConnectionApprovalRequestResource(ProxyOnlyResource): + """Private Endpoint Connection Approval ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param private_link_service_connection_state: The state of a private link connection. + :type private_link_service_connection_state: + ~azure.mgmt.web.v2021_01_15.models.PrivateLinkConnectionState + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'private_link_service_connection_state': {'key': 'properties.privateLinkServiceConnectionState', 'type': 'PrivateLinkConnectionState'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + private_link_service_connection_state: Optional["PrivateLinkConnectionState"] = None, + **kwargs + ): + super(PrivateLinkConnectionApprovalRequestResource, self).__init__(kind=kind, **kwargs) + self.private_link_service_connection_state = private_link_service_connection_state + + +class PrivateLinkConnectionState(msrest.serialization.Model): + """The state of a private link connection. + + :param status: Status of a private link connection. + :type status: str + :param description: Description of a private link connection. + :type description: str + :param actions_required: ActionsRequired for a private link connection. + :type actions_required: str + """ + + _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, + actions_required: Optional[str] = None, + **kwargs + ): + super(PrivateLinkConnectionState, self).__init__(**kwargs) + self.status = status + self.description = description + self.actions_required = actions_required + + +class PrivateLinkResource(msrest.serialization.Model): + """A private link resource. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. + :type id: str + :param name: Required. Name of a private link resource. + :type name: str + :param type: Required. + :type type: str + :param properties: Required. Properties of a private link resource. + :type properties: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkResourceProperties + """ + + _validation = { + 'id': {'required': True}, + 'name': {'required': True}, + 'type': {'required': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'PrivateLinkResourceProperties'}, + } + + def __init__( + self, + *, + id: str, + name: str, + type: str, + properties: "PrivateLinkResourceProperties", + **kwargs + ): + super(PrivateLinkResource, self).__init__(**kwargs) + self.id = id + self.name = name + self.type = type + self.properties = properties + + +class PrivateLinkResourceProperties(msrest.serialization.Model): + """Properties of a private link resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar group_id: GroupId of a private link resource. + :vartype group_id: str + :ivar required_members: RequiredMembers of a private link resource. + :vartype required_members: list[str] + :ivar required_zone_names: RequiredZoneNames of a private link resource. + :vartype required_zone_names: list[str] + """ + + _validation = { + 'group_id': {'readonly': True}, + 'required_members': {'readonly': True}, + 'required_zone_names': {'readonly': True}, + } + + _attribute_map = { + 'group_id': {'key': 'groupId', 'type': 'str'}, + 'required_members': {'key': 'requiredMembers', 'type': '[str]'}, + 'required_zone_names': {'key': 'requiredZoneNames', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(PrivateLinkResourceProperties, self).__init__(**kwargs) + self.group_id = None + self.required_members = None + self.required_zone_names = None + + +class PrivateLinkResourcesWrapper(msrest.serialization.Model): + """Wrapper for a collection of private link resources. + + All required parameters must be populated in order to send to Azure. + + :param value: Required. + :type value: list[~azure.mgmt.web.v2021_01_15.models.PrivateLinkResource] + """ + + _validation = { + 'value': {'required': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PrivateLinkResource]'}, + } + + def __init__( + self, + *, + value: List["PrivateLinkResource"], + **kwargs + ): + super(PrivateLinkResourcesWrapper, self).__init__(**kwargs) + self.value = value + + +class ProcessInfo(ProxyOnlyResource): + """Process Information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar identifier: ARM Identifier for deployment. + :vartype identifier: int + :param deployment_name: Deployment name. + :type deployment_name: str + :param href: HRef URI. + :type href: str + :param minidump: Minidump URI. + :type minidump: str + :param is_profile_running: Is profile running?. + :type is_profile_running: bool + :param is_iis_profile_running: Is the IIS Profile running?. + :type is_iis_profile_running: bool + :param iis_profile_timeout_in_seconds: IIS Profile timeout (seconds). + :type iis_profile_timeout_in_seconds: float + :param parent: Parent process. + :type parent: str + :param children: Child process list. + :type children: list[str] + :param threads: Thread list. + :type threads: list[~azure.mgmt.web.v2021_01_15.models.ProcessThreadInfo] + :param open_file_handles: List of open files. + :type open_file_handles: list[str] + :param modules: List of modules. + :type modules: list[~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfo] + :param file_name: File name of this process. + :type file_name: str + :param command_line: Command line. + :type command_line: str + :param user_name: User name. + :type user_name: str + :param handle_count: Handle count. + :type handle_count: int + :param module_count: Module count. + :type module_count: int + :param thread_count: Thread count. + :type thread_count: int + :param start_time: Start time. + :type start_time: ~datetime.datetime + :param total_cpu_time: Total CPU time. + :type total_cpu_time: str + :param user_cpu_time: User CPU time. + :type user_cpu_time: str + :param privileged_cpu_time: Privileged CPU time. + :type privileged_cpu_time: str + :param working_set: Working set. + :type working_set: long + :param peak_working_set: Peak working set. + :type peak_working_set: long + :param private_memory: Private memory size. + :type private_memory: long + :param virtual_memory: Virtual memory size. + :type virtual_memory: long + :param peak_virtual_memory: Peak virtual memory usage. + :type peak_virtual_memory: long + :param paged_system_memory: Paged system memory. + :type paged_system_memory: long + :param non_paged_system_memory: Non-paged system memory. + :type non_paged_system_memory: long + :param paged_memory: Paged memory. + :type paged_memory: long + :param peak_paged_memory: Peak paged memory. + :type peak_paged_memory: long + :param time_stamp: Time stamp. + :type time_stamp: ~datetime.datetime + :param environment_variables: List of environment variables. + :type environment_variables: dict[str, str] + :param is_scm_site: Is this the SCM site?. + :type is_scm_site: bool + :param is_webjob: Is this a Web Job?. + :type is_webjob: bool + :param description: Description of process. + :type description: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'identifier': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'identifier': {'key': 'properties.identifier', 'type': 'int'}, + 'deployment_name': {'key': 'properties.deployment_name', 'type': 'str'}, + 'href': {'key': 'properties.href', 'type': 'str'}, + 'minidump': {'key': 'properties.minidump', 'type': 'str'}, + 'is_profile_running': {'key': 'properties.is_profile_running', 'type': 'bool'}, + 'is_iis_profile_running': {'key': 'properties.is_iis_profile_running', 'type': 'bool'}, + 'iis_profile_timeout_in_seconds': {'key': 'properties.iis_profile_timeout_in_seconds', 'type': 'float'}, + 'parent': {'key': 'properties.parent', 'type': 'str'}, + 'children': {'key': 'properties.children', 'type': '[str]'}, + 'threads': {'key': 'properties.threads', 'type': '[ProcessThreadInfo]'}, + 'open_file_handles': {'key': 'properties.open_file_handles', 'type': '[str]'}, + 'modules': {'key': 'properties.modules', 'type': '[ProcessModuleInfo]'}, + 'file_name': {'key': 'properties.file_name', 'type': 'str'}, + 'command_line': {'key': 'properties.command_line', 'type': 'str'}, + 'user_name': {'key': 'properties.user_name', 'type': 'str'}, + 'handle_count': {'key': 'properties.handle_count', 'type': 'int'}, + 'module_count': {'key': 'properties.module_count', 'type': 'int'}, + 'thread_count': {'key': 'properties.thread_count', 'type': 'int'}, + 'start_time': {'key': 'properties.start_time', 'type': 'iso-8601'}, + 'total_cpu_time': {'key': 'properties.total_cpu_time', 'type': 'str'}, + 'user_cpu_time': {'key': 'properties.user_cpu_time', 'type': 'str'}, + 'privileged_cpu_time': {'key': 'properties.privileged_cpu_time', 'type': 'str'}, + 'working_set': {'key': 'properties.working_set', 'type': 'long'}, + 'peak_working_set': {'key': 'properties.peak_working_set', 'type': 'long'}, + 'private_memory': {'key': 'properties.private_memory', 'type': 'long'}, + 'virtual_memory': {'key': 'properties.virtual_memory', 'type': 'long'}, + 'peak_virtual_memory': {'key': 'properties.peak_virtual_memory', 'type': 'long'}, + 'paged_system_memory': {'key': 'properties.paged_system_memory', 'type': 'long'}, + 'non_paged_system_memory': {'key': 'properties.non_paged_system_memory', 'type': 'long'}, + 'paged_memory': {'key': 'properties.paged_memory', 'type': 'long'}, + 'peak_paged_memory': {'key': 'properties.peak_paged_memory', 'type': 'long'}, + 'time_stamp': {'key': 'properties.time_stamp', 'type': 'iso-8601'}, + 'environment_variables': {'key': 'properties.environment_variables', 'type': '{str}'}, + 'is_scm_site': {'key': 'properties.is_scm_site', 'type': 'bool'}, + 'is_webjob': {'key': 'properties.is_webjob', 'type': 'bool'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + deployment_name: Optional[str] = None, + href: Optional[str] = None, + minidump: Optional[str] = None, + is_profile_running: Optional[bool] = None, + is_iis_profile_running: Optional[bool] = None, + iis_profile_timeout_in_seconds: Optional[float] = None, + parent: Optional[str] = None, + children: Optional[List[str]] = None, + threads: Optional[List["ProcessThreadInfo"]] = None, + open_file_handles: Optional[List[str]] = None, + modules: Optional[List["ProcessModuleInfo"]] = None, + file_name: Optional[str] = None, + command_line: Optional[str] = None, + user_name: Optional[str] = None, + handle_count: Optional[int] = None, + module_count: Optional[int] = None, + thread_count: Optional[int] = None, + start_time: Optional[datetime.datetime] = None, + total_cpu_time: Optional[str] = None, + user_cpu_time: Optional[str] = None, + privileged_cpu_time: Optional[str] = None, + working_set: Optional[int] = None, + peak_working_set: Optional[int] = None, + private_memory: Optional[int] = None, + virtual_memory: Optional[int] = None, + peak_virtual_memory: Optional[int] = None, + paged_system_memory: Optional[int] = None, + non_paged_system_memory: Optional[int] = None, + paged_memory: Optional[int] = None, + peak_paged_memory: Optional[int] = None, + time_stamp: Optional[datetime.datetime] = None, + environment_variables: Optional[Dict[str, str]] = None, + is_scm_site: Optional[bool] = None, + is_webjob: Optional[bool] = None, + description: Optional[str] = None, + **kwargs + ): + super(ProcessInfo, self).__init__(kind=kind, **kwargs) + self.identifier = None + self.deployment_name = deployment_name + self.href = href + self.minidump = minidump + self.is_profile_running = is_profile_running + self.is_iis_profile_running = is_iis_profile_running + self.iis_profile_timeout_in_seconds = iis_profile_timeout_in_seconds + self.parent = parent + self.children = children + self.threads = threads + self.open_file_handles = open_file_handles + self.modules = modules + self.file_name = file_name + self.command_line = command_line + self.user_name = user_name + self.handle_count = handle_count + self.module_count = module_count + self.thread_count = thread_count + self.start_time = start_time + self.total_cpu_time = total_cpu_time + self.user_cpu_time = user_cpu_time + self.privileged_cpu_time = privileged_cpu_time + self.working_set = working_set + self.peak_working_set = peak_working_set + self.private_memory = private_memory + self.virtual_memory = virtual_memory + self.peak_virtual_memory = peak_virtual_memory + self.paged_system_memory = paged_system_memory + self.non_paged_system_memory = non_paged_system_memory + self.paged_memory = paged_memory + self.peak_paged_memory = peak_paged_memory + self.time_stamp = time_stamp + self.environment_variables = environment_variables + self.is_scm_site = is_scm_site + self.is_webjob = is_webjob + self.description = description + + +class ProcessInfoCollection(msrest.serialization.Model): + """Collection of Kudu process information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.ProcessInfo] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ProcessInfo]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["ProcessInfo"], + **kwargs + ): + super(ProcessInfoCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class ProcessModuleInfo(ProxyOnlyResource): + """Process Module Information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param base_address: Base address. Used as module identifier in ARM resource URI. + :type base_address: str + :param file_name: File name. + :type file_name: str + :param href: HRef URI. + :type href: str + :param file_path: File path. + :type file_path: str + :param module_memory_size: Module memory size. + :type module_memory_size: int + :param file_version: File version. + :type file_version: str + :param file_description: File description. + :type file_description: str + :param product: Product name. + :type product: str + :param product_version: Product version. + :type product_version: str + :param is_debug: Is debug?. + :type is_debug: bool + :param language: Module language (locale). + :type language: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'base_address': {'key': 'properties.base_address', 'type': 'str'}, + 'file_name': {'key': 'properties.file_name', 'type': 'str'}, + 'href': {'key': 'properties.href', 'type': 'str'}, + 'file_path': {'key': 'properties.file_path', 'type': 'str'}, + 'module_memory_size': {'key': 'properties.module_memory_size', 'type': 'int'}, + 'file_version': {'key': 'properties.file_version', 'type': 'str'}, + 'file_description': {'key': 'properties.file_description', 'type': 'str'}, + 'product': {'key': 'properties.product', 'type': 'str'}, + 'product_version': {'key': 'properties.product_version', 'type': 'str'}, + 'is_debug': {'key': 'properties.is_debug', 'type': 'bool'}, + 'language': {'key': 'properties.language', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + base_address: Optional[str] = None, + file_name: Optional[str] = None, + href: Optional[str] = None, + file_path: Optional[str] = None, + module_memory_size: Optional[int] = None, + file_version: Optional[str] = None, + file_description: Optional[str] = None, + product: Optional[str] = None, + product_version: Optional[str] = None, + is_debug: Optional[bool] = None, + language: Optional[str] = None, + **kwargs + ): + super(ProcessModuleInfo, self).__init__(kind=kind, **kwargs) + self.base_address = base_address + self.file_name = file_name + self.href = href + self.file_path = file_path + self.module_memory_size = module_memory_size + self.file_version = file_version + self.file_description = file_description + self.product = product + self.product_version = product_version + self.is_debug = is_debug + self.language = language + + +class ProcessModuleInfoCollection(msrest.serialization.Model): + """Collection of Kudu thread information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfo] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ProcessModuleInfo]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["ProcessModuleInfo"], + **kwargs + ): + super(ProcessModuleInfoCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class ProcessThreadInfo(ProxyOnlyResource): + """Process Thread Information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar identifier: Site extension ID. + :vartype identifier: int + :param href: HRef URI. + :type href: str + :param process: Process URI. + :type process: str + :param start_address: Start address. + :type start_address: str + :param current_priority: Current thread priority. + :type current_priority: int + :param priority_level: Thread priority level. + :type priority_level: str + :param base_priority: Base priority. + :type base_priority: int + :param start_time: Start time. + :type start_time: ~datetime.datetime + :param total_processor_time: Total processor time. + :type total_processor_time: str + :param user_processor_time: User processor time. + :type user_processor_time: str + :param state: Thread state. + :type state: str + :param wait_reason: Wait reason. + :type wait_reason: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'identifier': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'identifier': {'key': 'properties.identifier', 'type': 'int'}, + 'href': {'key': 'properties.href', 'type': 'str'}, + 'process': {'key': 'properties.process', 'type': 'str'}, + 'start_address': {'key': 'properties.start_address', 'type': 'str'}, + 'current_priority': {'key': 'properties.current_priority', 'type': 'int'}, + 'priority_level': {'key': 'properties.priority_level', 'type': 'str'}, + 'base_priority': {'key': 'properties.base_priority', 'type': 'int'}, + 'start_time': {'key': 'properties.start_time', 'type': 'iso-8601'}, + 'total_processor_time': {'key': 'properties.total_processor_time', 'type': 'str'}, + 'user_processor_time': {'key': 'properties.user_processor_time', 'type': 'str'}, + 'state': {'key': 'properties.state', 'type': 'str'}, + 'wait_reason': {'key': 'properties.wait_reason', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + href: Optional[str] = None, + process: Optional[str] = None, + start_address: Optional[str] = None, + current_priority: Optional[int] = None, + priority_level: Optional[str] = None, + base_priority: Optional[int] = None, + start_time: Optional[datetime.datetime] = None, + total_processor_time: Optional[str] = None, + user_processor_time: Optional[str] = None, + state: Optional[str] = None, + wait_reason: Optional[str] = None, + **kwargs + ): + super(ProcessThreadInfo, self).__init__(kind=kind, **kwargs) + self.identifier = None + self.href = href + self.process = process + self.start_address = start_address + self.current_priority = current_priority + self.priority_level = priority_level + self.base_priority = base_priority + self.start_time = start_time + self.total_processor_time = total_processor_time + self.user_processor_time = user_processor_time + self.state = state + self.wait_reason = wait_reason + + +class ProcessThreadInfoCollection(msrest.serialization.Model): + """Collection of Kudu thread information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.ProcessThreadInfo] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ProcessThreadInfo]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["ProcessThreadInfo"], + **kwargs + ): + super(ProcessThreadInfoCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class PublicCertificate(ProxyOnlyResource): + """Public certificate object. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param blob: Public Certificate byte array. + :type blob: bytearray + :param public_certificate_location: Public Certificate Location. Possible values include: + "CurrentUserMy", "LocalMachineMy", "Unknown". + :type public_certificate_location: str or + ~azure.mgmt.web.v2021_01_15.models.PublicCertificateLocation + :ivar thumbprint: Certificate Thumbprint. + :vartype thumbprint: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'thumbprint': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'blob': {'key': 'properties.blob', 'type': 'bytearray'}, + 'public_certificate_location': {'key': 'properties.publicCertificateLocation', 'type': 'str'}, + 'thumbprint': {'key': 'properties.thumbprint', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + blob: Optional[bytearray] = None, + public_certificate_location: Optional[Union[str, "PublicCertificateLocation"]] = None, + **kwargs + ): + super(PublicCertificate, self).__init__(kind=kind, **kwargs) + self.blob = blob + self.public_certificate_location = public_certificate_location + self.thumbprint = None + + +class PublicCertificateCollection(msrest.serialization.Model): + """Collection of public certificates. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.PublicCertificate] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PublicCertificate]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["PublicCertificate"], + **kwargs + ): + super(PublicCertificateCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class PublishingCredentialsPoliciesCollection(msrest.serialization.Model): + """Publishing Credentials Policies entity collection ARM resource. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[CsmPublishingCredentialsPoliciesEntity]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["CsmPublishingCredentialsPoliciesEntity"], + **kwargs + ): + super(PublishingCredentialsPoliciesCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class PushSettings(ProxyOnlyResource): + """Push settings for the App. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param is_push_enabled: Gets or sets a flag indicating whether the Push endpoint is enabled. + :type is_push_enabled: bool + :param tag_whitelist_json: Gets or sets a JSON string containing a list of tags that are + whitelisted for use by the push registration endpoint. + :type tag_whitelist_json: str + :param tags_requiring_auth: Gets or sets a JSON string containing a list of tags that require + user authentication to be used in the push registration endpoint. + Tags can consist of alphanumeric characters and the following: + '_', '@', '#', '.', ':', '-'. + Validation should be performed at the PushRequestHandler. + :type tags_requiring_auth: str + :param dynamic_tags_json: Gets or sets a JSON string containing a list of dynamic tags that + will be evaluated from user claims in the push registration endpoint. + :type dynamic_tags_json: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'is_push_enabled': {'key': 'properties.isPushEnabled', 'type': 'bool'}, + 'tag_whitelist_json': {'key': 'properties.tagWhitelistJson', 'type': 'str'}, + 'tags_requiring_auth': {'key': 'properties.tagsRequiringAuth', 'type': 'str'}, + 'dynamic_tags_json': {'key': 'properties.dynamicTagsJson', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + is_push_enabled: Optional[bool] = None, + tag_whitelist_json: Optional[str] = None, + tags_requiring_auth: Optional[str] = None, + dynamic_tags_json: Optional[str] = None, + **kwargs + ): + super(PushSettings, self).__init__(kind=kind, **kwargs) + self.is_push_enabled = is_push_enabled + self.tag_whitelist_json = tag_whitelist_json + self.tags_requiring_auth = tags_requiring_auth + self.dynamic_tags_json = dynamic_tags_json + + +class QueryUtterancesResult(msrest.serialization.Model): + """Result for utterances query. + + :param sample_utterance: A sample utterance. + :type sample_utterance: ~azure.mgmt.web.v2021_01_15.models.SampleUtterance + :param score: Score of a sample utterance. + :type score: float + """ + + _attribute_map = { + 'sample_utterance': {'key': 'sampleUtterance', 'type': 'SampleUtterance'}, + 'score': {'key': 'score', 'type': 'float'}, + } + + def __init__( + self, + *, + sample_utterance: Optional["SampleUtterance"] = None, + score: Optional[float] = None, + **kwargs + ): + super(QueryUtterancesResult, self).__init__(**kwargs) + self.sample_utterance = sample_utterance + self.score = score + + +class QueryUtterancesResults(msrest.serialization.Model): + """Suggested utterances where the detector can be applicable. + + :param query: Search Query. + :type query: str + :param results: Array of utterance results for search query. + :type results: list[~azure.mgmt.web.v2021_01_15.models.QueryUtterancesResult] + """ + + _attribute_map = { + 'query': {'key': 'query', 'type': 'str'}, + 'results': {'key': 'results', 'type': '[QueryUtterancesResult]'}, + } + + def __init__( + self, + *, + query: Optional[str] = None, + results: Optional[List["QueryUtterancesResult"]] = None, + **kwargs + ): + super(QueryUtterancesResults, self).__init__(**kwargs) + self.query = query + self.results = results + + +class RampUpRule(msrest.serialization.Model): + """Routing rules for ramp up testing. This rule allows to redirect static traffic % to a slot or to gradually change routing % based on performance. + + :param action_host_name: Hostname of a slot to which the traffic will be redirected if decided + to. E.g. myapp-stage.azurewebsites.net. + :type action_host_name: str + :param reroute_percentage: Percentage of the traffic which will be redirected to + :code:`ActionHostName`. + :type reroute_percentage: float + :param change_step: In auto ramp up scenario this is the step to add/remove from + :code:`ReroutePercentage` until it reaches + \n:code:`MinReroutePercentage` or + :code:`MaxReroutePercentage`. Site metrics are checked every N minutes specified + in :code:`ChangeIntervalInMinutes`.\nCustom decision algorithm + can be provided in TiPCallback site extension which URL can be specified in + :code:`ChangeDecisionCallbackUrl`. + :type change_step: float + :param change_interval_in_minutes: Specifies interval in minutes to reevaluate + ReroutePercentage. + :type change_interval_in_minutes: int + :param min_reroute_percentage: Specifies lower boundary above which ReroutePercentage will + stay. + :type min_reroute_percentage: float + :param max_reroute_percentage: Specifies upper boundary below which ReroutePercentage will + stay. + :type max_reroute_percentage: float + :param change_decision_callback_url: Custom decision algorithm can be provided in TiPCallback + site extension which URL can be specified. See TiPCallback site extension for the scaffold and + contracts. + https://www.siteextensions.net/packages/TiPCallback/. + :type change_decision_callback_url: str + :param name: Name of the routing rule. The recommended name would be to point to the slot which + will receive the traffic in the experiment. + :type name: str + """ + + _attribute_map = { + 'action_host_name': {'key': 'actionHostName', 'type': 'str'}, + 'reroute_percentage': {'key': 'reroutePercentage', 'type': 'float'}, + 'change_step': {'key': 'changeStep', 'type': 'float'}, + 'change_interval_in_minutes': {'key': 'changeIntervalInMinutes', 'type': 'int'}, + 'min_reroute_percentage': {'key': 'minReroutePercentage', 'type': 'float'}, + 'max_reroute_percentage': {'key': 'maxReroutePercentage', 'type': 'float'}, + 'change_decision_callback_url': {'key': 'changeDecisionCallbackUrl', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + } + + def __init__( + self, + *, + action_host_name: Optional[str] = None, + reroute_percentage: Optional[float] = None, + change_step: Optional[float] = None, + change_interval_in_minutes: Optional[int] = None, + min_reroute_percentage: Optional[float] = None, + max_reroute_percentage: Optional[float] = None, + change_decision_callback_url: Optional[str] = None, + name: Optional[str] = None, + **kwargs + ): + super(RampUpRule, self).__init__(**kwargs) + self.action_host_name = action_host_name + self.reroute_percentage = reroute_percentage + self.change_step = change_step + self.change_interval_in_minutes = change_interval_in_minutes + self.min_reroute_percentage = min_reroute_percentage + self.max_reroute_percentage = max_reroute_percentage + self.change_decision_callback_url = change_decision_callback_url + self.name = name + + +class Recommendation(ProxyOnlyResource): + """Represents a recommendation result generated by the recommendation engine. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param creation_time: Timestamp when this instance was created. + :type creation_time: ~datetime.datetime + :param recommendation_id: A GUID value that each recommendation object is associated with. + :type recommendation_id: str + :param resource_id: Full ARM resource ID string that this recommendation object is associated + with. + :type resource_id: str + :param resource_scope: Name of a resource type this recommendation applies, e.g. Subscription, + ServerFarm, Site. Possible values include: "ServerFarm", "Subscription", "WebSite". + :type resource_scope: str or ~azure.mgmt.web.v2021_01_15.models.ResourceScopeType + :param rule_name: Unique name of the rule. + :type rule_name: str + :param display_name: UI friendly name of the rule (may not be unique). + :type display_name: str + :param message: Recommendation text. + :type message: str + :param level: Level indicating how critical this recommendation can impact. Possible values + include: "Critical", "Warning", "Information", "NonUrgentSuggestion". + :type level: str or ~azure.mgmt.web.v2021_01_15.models.NotificationLevel + :param channels: List of channels that this recommendation can apply. Possible values include: + "Notification", "Api", "Email", "Webhook", "All". + :type channels: str or ~azure.mgmt.web.v2021_01_15.models.Channels + :ivar category_tags: The list of category tags that this recommendation belongs to. + :vartype category_tags: list[str] + :param action_name: Name of action recommended by this object. + :type action_name: str + :param enabled: True if this recommendation is still valid (i.e. "actionable"). False if it is + invalid. + :type enabled: int + :param states: The list of states of this recommendation. If it's null then it should be + considered "Active". + :type states: list[str] + :param start_time: The beginning time in UTC of a range that the recommendation refers to. + :type start_time: ~datetime.datetime + :param end_time: The end time in UTC of a range that the recommendation refers to. + :type end_time: ~datetime.datetime + :param next_notification_time: When to notify this recommendation next in UTC. Null means that + this will never be notified anymore. + :type next_notification_time: ~datetime.datetime + :param notification_expiration_time: Date and time in UTC when this notification expires. + :type notification_expiration_time: ~datetime.datetime + :param notified_time: Last timestamp in UTC this instance was actually notified. Null means + that this recommendation hasn't been notified yet. + :type notified_time: ~datetime.datetime + :param score: A metric value measured by the rule. + :type score: float + :param is_dynamic: True if this is associated with a dynamically added rule. + :type is_dynamic: bool + :param extension_name: Extension name of the portal if exists. + :type extension_name: str + :param blade_name: Deep link to a blade on the portal. + :type blade_name: str + :param forward_link: Forward link to an external document associated with the rule. + :type forward_link: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'category_tags': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'creation_time': {'key': 'properties.creationTime', 'type': 'iso-8601'}, + 'recommendation_id': {'key': 'properties.recommendationId', 'type': 'str'}, + 'resource_id': {'key': 'properties.resourceId', 'type': 'str'}, + 'resource_scope': {'key': 'properties.resourceScope', 'type': 'str'}, + 'rule_name': {'key': 'properties.ruleName', 'type': 'str'}, + 'display_name': {'key': 'properties.displayName', 'type': 'str'}, + 'message': {'key': 'properties.message', 'type': 'str'}, + 'level': {'key': 'properties.level', 'type': 'str'}, + 'channels': {'key': 'properties.channels', 'type': 'str'}, + 'category_tags': {'key': 'properties.categoryTags', 'type': '[str]'}, + 'action_name': {'key': 'properties.actionName', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'int'}, + 'states': {'key': 'properties.states', 'type': '[str]'}, + 'start_time': {'key': 'properties.startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'properties.endTime', 'type': 'iso-8601'}, + 'next_notification_time': {'key': 'properties.nextNotificationTime', 'type': 'iso-8601'}, + 'notification_expiration_time': {'key': 'properties.notificationExpirationTime', 'type': 'iso-8601'}, + 'notified_time': {'key': 'properties.notifiedTime', 'type': 'iso-8601'}, + 'score': {'key': 'properties.score', 'type': 'float'}, + 'is_dynamic': {'key': 'properties.isDynamic', 'type': 'bool'}, + 'extension_name': {'key': 'properties.extensionName', 'type': 'str'}, + 'blade_name': {'key': 'properties.bladeName', 'type': 'str'}, + 'forward_link': {'key': 'properties.forwardLink', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + creation_time: Optional[datetime.datetime] = None, + recommendation_id: Optional[str] = None, + resource_id: Optional[str] = None, + resource_scope: Optional[Union[str, "ResourceScopeType"]] = None, + rule_name: Optional[str] = None, + display_name: Optional[str] = None, + message: Optional[str] = None, + level: Optional[Union[str, "NotificationLevel"]] = None, + channels: Optional[Union[str, "Channels"]] = None, + action_name: Optional[str] = None, + enabled: Optional[int] = None, + states: Optional[List[str]] = None, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + next_notification_time: Optional[datetime.datetime] = None, + notification_expiration_time: Optional[datetime.datetime] = None, + notified_time: Optional[datetime.datetime] = None, + score: Optional[float] = None, + is_dynamic: Optional[bool] = None, + extension_name: Optional[str] = None, + blade_name: Optional[str] = None, + forward_link: Optional[str] = None, + **kwargs + ): + super(Recommendation, self).__init__(kind=kind, **kwargs) + self.creation_time = creation_time + self.recommendation_id = recommendation_id + self.resource_id = resource_id + self.resource_scope = resource_scope + self.rule_name = rule_name + self.display_name = display_name + self.message = message + self.level = level + self.channels = channels + self.category_tags = None + self.action_name = action_name + self.enabled = enabled + self.states = states + self.start_time = start_time + self.end_time = end_time + self.next_notification_time = next_notification_time + self.notification_expiration_time = notification_expiration_time + self.notified_time = notified_time + self.score = score + self.is_dynamic = is_dynamic + self.extension_name = extension_name + self.blade_name = blade_name + self.forward_link = forward_link + + +class RecommendationCollection(msrest.serialization.Model): + """Collection of recommendations. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.Recommendation] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Recommendation]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["Recommendation"], + **kwargs + ): + super(RecommendationCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class RecommendationRule(ProxyOnlyResource): + """Represents a recommendation rule that the recommendation engine can perform. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param recommendation_name: Unique name of the rule. + :type recommendation_name: str + :param display_name: UI friendly name of the rule. + :type display_name: str + :param message: Localized name of the rule (Good for UI). + :type message: str + :param recommendation_id: Recommendation ID of an associated recommendation object tied to the + rule, if exists. + If such an object doesn't exist, it is set to null. + :type recommendation_id: str + :param description: Localized detailed description of the rule. + :type description: str + :param action_name: Name of action that is recommended by this rule in string. + :type action_name: str + :param level: Level of impact indicating how critical this rule is. Possible values include: + "Critical", "Warning", "Information", "NonUrgentSuggestion". + :type level: str or ~azure.mgmt.web.v2021_01_15.models.NotificationLevel + :param channels: List of available channels that this rule applies. Possible values include: + "Notification", "Api", "Email", "Webhook", "All". + :type channels: str or ~azure.mgmt.web.v2021_01_15.models.Channels + :ivar category_tags: The list of category tags that this recommendation rule belongs to. + :vartype category_tags: list[str] + :param is_dynamic: True if this is associated with a dynamically added rule. + :type is_dynamic: bool + :param extension_name: Extension name of the portal if exists. Applicable to dynamic rule only. + :type extension_name: str + :param blade_name: Deep link to a blade on the portal. Applicable to dynamic rule only. + :type blade_name: str + :param forward_link: Forward link to an external document associated with the rule. Applicable + to dynamic rule only. + :type forward_link: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'category_tags': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'recommendation_name': {'key': 'properties.recommendationName', 'type': 'str'}, + 'display_name': {'key': 'properties.displayName', 'type': 'str'}, + 'message': {'key': 'properties.message', 'type': 'str'}, + 'recommendation_id': {'key': 'properties.recommendationId', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'action_name': {'key': 'properties.actionName', 'type': 'str'}, + 'level': {'key': 'properties.level', 'type': 'str'}, + 'channels': {'key': 'properties.channels', 'type': 'str'}, + 'category_tags': {'key': 'properties.categoryTags', 'type': '[str]'}, + 'is_dynamic': {'key': 'properties.isDynamic', 'type': 'bool'}, + 'extension_name': {'key': 'properties.extensionName', 'type': 'str'}, + 'blade_name': {'key': 'properties.bladeName', 'type': 'str'}, + 'forward_link': {'key': 'properties.forwardLink', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + recommendation_name: Optional[str] = None, + display_name: Optional[str] = None, + message: Optional[str] = None, + recommendation_id: Optional[str] = None, + description: Optional[str] = None, + action_name: Optional[str] = None, + level: Optional[Union[str, "NotificationLevel"]] = None, + channels: Optional[Union[str, "Channels"]] = None, + is_dynamic: Optional[bool] = None, + extension_name: Optional[str] = None, + blade_name: Optional[str] = None, + forward_link: Optional[str] = None, + **kwargs + ): + super(RecommendationRule, self).__init__(kind=kind, **kwargs) + self.recommendation_name = recommendation_name + self.display_name = display_name + self.message = message + self.recommendation_id = recommendation_id + self.description = description + self.action_name = action_name + self.level = level + self.channels = channels + self.category_tags = None + self.is_dynamic = is_dynamic + self.extension_name = extension_name + self.blade_name = blade_name + self.forward_link = forward_link + + +class ReissueCertificateOrderRequest(ProxyOnlyResource): + """Class representing certificate reissue request. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param key_size: Certificate Key Size. + :type key_size: int + :param delay_existing_revoke_in_hours: Delay in hours to revoke existing certificate after the + new certificate is issued. + :type delay_existing_revoke_in_hours: int + :param csr: Csr to be used for re-key operation. + :type csr: str + :param is_private_key_external: Should we change the ASC type (from managed private key to + external private key and vice versa). + :type is_private_key_external: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'key_size': {'key': 'properties.keySize', 'type': 'int'}, + 'delay_existing_revoke_in_hours': {'key': 'properties.delayExistingRevokeInHours', 'type': 'int'}, + 'csr': {'key': 'properties.csr', 'type': 'str'}, + 'is_private_key_external': {'key': 'properties.isPrivateKeyExternal', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + key_size: Optional[int] = None, + delay_existing_revoke_in_hours: Optional[int] = None, + csr: Optional[str] = None, + is_private_key_external: Optional[bool] = None, + **kwargs + ): + super(ReissueCertificateOrderRequest, self).__init__(kind=kind, **kwargs) + self.key_size = key_size + self.delay_existing_revoke_in_hours = delay_existing_revoke_in_hours + self.csr = csr + self.is_private_key_external = is_private_key_external + + +class RelayServiceConnectionEntity(ProxyOnlyResource): + """Hybrid Connection for an App Service app. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param entity_name: + :type entity_name: str + :param entity_connection_string: + :type entity_connection_string: str + :param resource_type: + :type resource_type: str + :param resource_connection_string: + :type resource_connection_string: str + :param hostname: + :type hostname: str + :param port: + :type port: int + :param biztalk_uri: + :type biztalk_uri: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'entity_name': {'key': 'properties.entityName', 'type': 'str'}, + 'entity_connection_string': {'key': 'properties.entityConnectionString', 'type': 'str'}, + 'resource_type': {'key': 'properties.resourceType', 'type': 'str'}, + 'resource_connection_string': {'key': 'properties.resourceConnectionString', 'type': 'str'}, + 'hostname': {'key': 'properties.hostname', 'type': 'str'}, + 'port': {'key': 'properties.port', 'type': 'int'}, + 'biztalk_uri': {'key': 'properties.biztalkUri', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + entity_name: Optional[str] = None, + entity_connection_string: Optional[str] = None, + resource_type: Optional[str] = None, + resource_connection_string: Optional[str] = None, + hostname: Optional[str] = None, + port: Optional[int] = None, + biztalk_uri: Optional[str] = None, + **kwargs + ): + super(RelayServiceConnectionEntity, self).__init__(kind=kind, **kwargs) + self.entity_name = entity_name + self.entity_connection_string = entity_connection_string + self.resource_type = resource_type + self.resource_connection_string = resource_connection_string + self.hostname = hostname + self.port = port + self.biztalk_uri = biztalk_uri + + +class RemotePrivateEndpointConnection(ProxyOnlyResource): + """A remote private endpoint connection. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar provisioning_state: + :vartype provisioning_state: str + :param private_endpoint: PrivateEndpoint of a remote private endpoint connection. + :type private_endpoint: ~azure.mgmt.web.v2021_01_15.models.ArmIdWrapper + :param private_link_service_connection_state: The state of a private link connection. + :type private_link_service_connection_state: + ~azure.mgmt.web.v2021_01_15.models.PrivateLinkConnectionState + :param ip_addresses: Private IPAddresses mapped to the remote private endpoint. + :type ip_addresses: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'private_endpoint': {'key': 'properties.privateEndpoint', 'type': 'ArmIdWrapper'}, + 'private_link_service_connection_state': {'key': 'properties.privateLinkServiceConnectionState', 'type': 'PrivateLinkConnectionState'}, + 'ip_addresses': {'key': 'properties.ipAddresses', 'type': '[str]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + private_endpoint: Optional["ArmIdWrapper"] = None, + private_link_service_connection_state: Optional["PrivateLinkConnectionState"] = None, + ip_addresses: Optional[List[str]] = None, + **kwargs + ): + super(RemotePrivateEndpointConnection, self).__init__(kind=kind, **kwargs) + self.provisioning_state = None + self.private_endpoint = private_endpoint + self.private_link_service_connection_state = private_link_service_connection_state + self.ip_addresses = ip_addresses + + +class RemotePrivateEndpointConnectionARMResource(ProxyOnlyResource): + """Remote Private Endpoint Connection ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar provisioning_state: + :vartype provisioning_state: str + :param private_endpoint: PrivateEndpoint of a remote private endpoint connection. + :type private_endpoint: ~azure.mgmt.web.v2021_01_15.models.ArmIdWrapper + :param private_link_service_connection_state: The state of a private link connection. + :type private_link_service_connection_state: + ~azure.mgmt.web.v2021_01_15.models.PrivateLinkConnectionState + :param ip_addresses: Private IPAddresses mapped to the remote private endpoint. + :type ip_addresses: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'private_endpoint': {'key': 'properties.privateEndpoint', 'type': 'ArmIdWrapper'}, + 'private_link_service_connection_state': {'key': 'properties.privateLinkServiceConnectionState', 'type': 'PrivateLinkConnectionState'}, + 'ip_addresses': {'key': 'properties.ipAddresses', 'type': '[str]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + private_endpoint: Optional["ArmIdWrapper"] = None, + private_link_service_connection_state: Optional["PrivateLinkConnectionState"] = None, + ip_addresses: Optional[List[str]] = None, + **kwargs + ): + super(RemotePrivateEndpointConnectionARMResource, self).__init__(kind=kind, **kwargs) + self.provisioning_state = None + self.private_endpoint = private_endpoint + self.private_link_service_connection_state = private_link_service_connection_state + self.ip_addresses = ip_addresses + + +class Rendering(msrest.serialization.Model): + """Instructions for rendering the data. + + :param type: Rendering Type. Possible values include: "NoGraph", "Table", "TimeSeries", + "TimeSeriesPerInstance", "PieChart", "DataSummary", "Email", "Insights", "DynamicInsight", + "Markdown", "Detector", "DropDown", "Card", "Solution", "Guage", "Form", "ChangeSets", + "ChangeAnalysisOnboarding", "ChangesView", "AppInsight", "DependencyGraph", "DownTime", + "SummaryCard", "SearchComponent", "AppInsightEnablement". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.RenderingType + :param title: Title of data. + :type title: str + :param description: Description of the data that will help it be interpreted. + :type description: str + """ + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'title': {'key': 'title', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__( + self, + *, + type: Optional[Union[str, "RenderingType"]] = None, + title: Optional[str] = None, + description: Optional[str] = None, + **kwargs + ): + super(Rendering, self).__init__(**kwargs) + self.type = type + self.title = title + self.description = description + + +class RenewCertificateOrderRequest(ProxyOnlyResource): + """Class representing certificate renew request. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param key_size: Certificate Key Size. + :type key_size: int + :param csr: Csr to be used for re-key operation. + :type csr: str + :param is_private_key_external: Should we change the ASC type (from managed private key to + external private key and vice versa). + :type is_private_key_external: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'key_size': {'key': 'properties.keySize', 'type': 'int'}, + 'csr': {'key': 'properties.csr', 'type': 'str'}, + 'is_private_key_external': {'key': 'properties.isPrivateKeyExternal', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + key_size: Optional[int] = None, + csr: Optional[str] = None, + is_private_key_external: Optional[bool] = None, + **kwargs + ): + super(RenewCertificateOrderRequest, self).__init__(kind=kind, **kwargs) + self.key_size = key_size + self.csr = csr + self.is_private_key_external = is_private_key_external + + +class RequestsBasedTrigger(msrest.serialization.Model): + """Trigger based on total requests. + + :param count: Request Count. + :type count: int + :param time_interval: Time interval. + :type time_interval: str + """ + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + 'time_interval': {'key': 'timeInterval', 'type': 'str'}, + } + + def __init__( + self, + *, + count: Optional[int] = None, + time_interval: Optional[str] = None, + **kwargs + ): + super(RequestsBasedTrigger, self).__init__(**kwargs) + self.count = count + self.time_interval = time_interval + + +class ResourceCollection(msrest.serialization.Model): + """Collection of resources. + + 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 value: Required. Collection of resources. + :type value: list[str] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[str]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List[str], + **kwargs + ): + super(ResourceCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class ResourceHealthMetadata(ProxyOnlyResource): + """Used for getting ResourceHealthCheck settings. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param category: The category that the resource matches in the RHC Policy File. + :type category: str + :param signal_availability: Is there a health signal for the resource. + :type signal_availability: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'category': {'key': 'properties.category', 'type': 'str'}, + 'signal_availability': {'key': 'properties.signalAvailability', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + category: Optional[str] = None, + signal_availability: Optional[bool] = None, + **kwargs + ): + super(ResourceHealthMetadata, self).__init__(kind=kind, **kwargs) + self.category = category + self.signal_availability = signal_availability + + +class ResourceHealthMetadataCollection(msrest.serialization.Model): + """Collection of resource health metadata. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.ResourceHealthMetadata] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ResourceHealthMetadata]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["ResourceHealthMetadata"], + **kwargs + ): + super(ResourceHealthMetadataCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class ResourceMetricAvailability(msrest.serialization.Model): + """Metrics availability and retention. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar time_grain: Time grain . + :vartype time_grain: str + :ivar retention: Retention period for the current time grain. + :vartype retention: str + """ + + _validation = { + 'time_grain': {'readonly': True}, + 'retention': {'readonly': True}, + } + + _attribute_map = { + 'time_grain': {'key': 'timeGrain', 'type': 'str'}, + 'retention': {'key': 'retention', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ResourceMetricAvailability, self).__init__(**kwargs) + self.time_grain = None + self.retention = None + + +class ResourceMetricDefinition(ProxyOnlyResource): + """Metadata for the metrics. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar unit: Unit of the metric. + :vartype unit: str + :ivar primary_aggregation_type: Primary aggregation type. + :vartype primary_aggregation_type: str + :ivar metric_availabilities: List of time grains supported for the metric together with + retention period. + :vartype metric_availabilities: + list[~azure.mgmt.web.v2021_01_15.models.ResourceMetricAvailability] + :ivar resource_uri: Resource URI. + :vartype resource_uri: str + :ivar properties: Resource metric definition properties. + :vartype properties: dict[str, str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'unit': {'readonly': True}, + 'primary_aggregation_type': {'readonly': True}, + 'metric_availabilities': {'readonly': True}, + 'resource_uri': {'readonly': True}, + 'properties': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'unit': {'key': 'properties.unit', 'type': 'str'}, + 'primary_aggregation_type': {'key': 'properties.primaryAggregationType', 'type': 'str'}, + 'metric_availabilities': {'key': 'properties.metricAvailabilities', 'type': '[ResourceMetricAvailability]'}, + 'resource_uri': {'key': 'properties.resourceUri', 'type': 'str'}, + 'properties': {'key': 'properties.properties', 'type': '{str}'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(ResourceMetricDefinition, self).__init__(kind=kind, **kwargs) + self.unit = None + self.primary_aggregation_type = None + self.metric_availabilities = None + self.resource_uri = None + self.properties = None + + +class ResourceMetricDefinitionCollection(msrest.serialization.Model): + """Collection of metric definitions. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.ResourceMetricDefinition] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ResourceMetricDefinition]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["ResourceMetricDefinition"], + **kwargs + ): + super(ResourceMetricDefinitionCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class ResourceNameAvailability(msrest.serialization.Model): + """Information regarding availability of a resource name. + + :param name_available: :code:`true` indicates name is valid and available. + :code:`false` indicates the name is invalid, unavailable, or both. + :type name_available: bool + :param reason: :code:`Invalid` indicates the name provided does not match Azure + App Service naming requirements. :code:`AlreadyExists` indicates that the name is + already in use and is therefore unavailable. Possible values include: "Invalid", + "AlreadyExists". + :type reason: str or ~azure.mgmt.web.v2021_01_15.models.InAvailabilityReasonType + :param message: If reason == invalid, provide the user with the reason why the given name is + invalid, and provide the resource naming requirements so that the user can select a valid name. + If reason == AlreadyExists, explain that resource name is already in use, and direct them to + select a different name. + :type message: str + """ + + _attribute_map = { + 'name_available': {'key': 'nameAvailable', 'type': 'bool'}, + 'reason': {'key': 'reason', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__( + self, + *, + name_available: Optional[bool] = None, + reason: Optional[Union[str, "InAvailabilityReasonType"]] = None, + message: Optional[str] = None, + **kwargs + ): + super(ResourceNameAvailability, self).__init__(**kwargs) + self.name_available = name_available + self.reason = reason + self.message = message + + +class ResourceNameAvailabilityRequest(msrest.serialization.Model): + """Resource name availability request content. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. Resource name to verify. + :type name: str + :param type: Required. Resource type used for verification. Possible values include: "Site", + "Slot", "HostingEnvironment", "PublishingUser", "Microsoft.Web/sites", + "Microsoft.Web/sites/slots", "Microsoft.Web/hostingEnvironments", + "Microsoft.Web/publishingUsers". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.CheckNameResourceTypes + :param is_fqdn: Is fully qualified domain name. + :type is_fqdn: bool + """ + + _validation = { + 'name': {'required': True}, + 'type': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'is_fqdn': {'key': 'isFqdn', 'type': 'bool'}, + } + + def __init__( + self, + *, + name: str, + type: Union[str, "CheckNameResourceTypes"], + is_fqdn: Optional[bool] = None, + **kwargs + ): + super(ResourceNameAvailabilityRequest, self).__init__(**kwargs) + self.name = name + self.type = type + self.is_fqdn = is_fqdn + + +class ResponseMessageEnvelopeRemotePrivateEndpointConnection(msrest.serialization.Model): + """Message envelope that contains the common Azure resource manager properties and the resource provider specific content. + + :param id: Resource Id. Typically ID is populated only for responses to GET requests. Caller is + responsible for passing in this + value for GET requests only. + For example: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupId}/providers/Microsoft.Web/sites/{sitename}. + :type id: str + :param name: Name of resource. + :type name: str + :param type: Type of resource e.g "Microsoft.Web/sites". + :type type: str + :param location: Geographical region resource belongs to e.g. SouthCentralUS, SouthEastAsia. + :type location: str + :param tags: A set of tags. Tags associated with resource. + :type tags: dict[str, str] + :param plan: Azure resource manager plan. + :type plan: ~azure.mgmt.web.v2021_01_15.models.ArmPlan + :param properties: Resource specific properties. + :type properties: ~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnection + :param sku: SKU description of the resource. + :type sku: ~azure.mgmt.web.v2021_01_15.models.SkuDescription + :param status: Azure-AsyncOperation Status info. + :type status: str + :param error: Azure-AsyncOperation Error info. + :type error: ~azure.mgmt.web.v2021_01_15.models.ErrorEntity + :param identity: MSI resource. + :type identity: ~azure.mgmt.web.v2021_01_15.models.ManagedServiceIdentity + :param zones: Logical Availability Zones the service is hosted in. + :type zones: list[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}'}, + 'plan': {'key': 'plan', 'type': 'ArmPlan'}, + 'properties': {'key': 'properties', 'type': 'RemotePrivateEndpointConnection'}, + 'sku': {'key': 'sku', 'type': 'SkuDescription'}, + 'status': {'key': 'status', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'ErrorEntity'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, + 'zones': {'key': 'zones', 'type': '[str]'}, + } + + def __init__( + self, + *, + id: Optional[str] = None, + name: Optional[str] = None, + type: Optional[str] = None, + location: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + plan: Optional["ArmPlan"] = None, + properties: Optional["RemotePrivateEndpointConnection"] = None, + sku: Optional["SkuDescription"] = None, + status: Optional[str] = None, + error: Optional["ErrorEntity"] = None, + identity: Optional["ManagedServiceIdentity"] = None, + zones: Optional[List[str]] = None, + **kwargs + ): + super(ResponseMessageEnvelopeRemotePrivateEndpointConnection, self).__init__(**kwargs) + self.id = id + self.name = name + self.type = type + self.location = location + self.tags = tags + self.plan = plan + self.properties = properties + self.sku = sku + self.status = status + self.error = error + self.identity = identity + self.zones = zones + + +class ResponseMetaData(msrest.serialization.Model): + """ResponseMetaData. + + :param data_source: Source of the Data. + :type data_source: ~azure.mgmt.web.v2021_01_15.models.DataSource + """ + + _attribute_map = { + 'data_source': {'key': 'dataSource', 'type': 'DataSource'}, + } + + def __init__( + self, + *, + data_source: Optional["DataSource"] = None, + **kwargs + ): + super(ResponseMetaData, self).__init__(**kwargs) + self.data_source = data_source + + +class RestoreRequest(ProxyOnlyResource): + """Description of a restore request. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param storage_account_url: SAS URL to the container. + :type storage_account_url: str + :param blob_name: Name of a blob which contains the backup. + :type blob_name: str + :param overwrite: :code:`true` if the restore operation can overwrite target app; + otherwise, :code:`false`. :code:`true` is needed if trying to restore + over an existing app. + :type overwrite: bool + :param site_name: Name of an app. + :type site_name: str + :param databases: Collection of databases which should be restored. This list has to match the + list of databases included in the backup. + :type databases: list[~azure.mgmt.web.v2021_01_15.models.DatabaseBackupSetting] + :param ignore_conflicting_host_names: Changes a logic when restoring an app with custom + domains. :code:`true` to remove custom domains automatically. If + :code:`false`, custom domains are added to + the app's object when it is being restored, but that might fail due to conflicts during the + operation. + :type ignore_conflicting_host_names: bool + :param ignore_databases: Ignore the databases and only restore the site content. + :type ignore_databases: bool + :param app_service_plan: Specify app service plan that will own restored site. + :type app_service_plan: str + :param operation_type: Operation type. Possible values include: "Default", "Clone", + "Relocation", "Snapshot", "CloudFS". Default value: "Default". + :type operation_type: str or ~azure.mgmt.web.v2021_01_15.models.BackupRestoreOperationType + :param adjust_connection_strings: :code:`true` if SiteConfig.ConnectionStrings + should be set in new app; otherwise, :code:`false`. + :type adjust_connection_strings: bool + :param hosting_environment: App Service Environment name, if needed (only when restoring an app + to an App Service Environment). + :type hosting_environment: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'storage_account_url': {'key': 'properties.storageAccountUrl', 'type': 'str'}, + 'blob_name': {'key': 'properties.blobName', 'type': 'str'}, + 'overwrite': {'key': 'properties.overwrite', 'type': 'bool'}, + 'site_name': {'key': 'properties.siteName', 'type': 'str'}, + 'databases': {'key': 'properties.databases', 'type': '[DatabaseBackupSetting]'}, + 'ignore_conflicting_host_names': {'key': 'properties.ignoreConflictingHostNames', 'type': 'bool'}, + 'ignore_databases': {'key': 'properties.ignoreDatabases', 'type': 'bool'}, + 'app_service_plan': {'key': 'properties.appServicePlan', 'type': 'str'}, + 'operation_type': {'key': 'properties.operationType', 'type': 'str'}, + 'adjust_connection_strings': {'key': 'properties.adjustConnectionStrings', 'type': 'bool'}, + 'hosting_environment': {'key': 'properties.hostingEnvironment', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + storage_account_url: Optional[str] = None, + blob_name: Optional[str] = None, + overwrite: Optional[bool] = None, + site_name: Optional[str] = None, + databases: Optional[List["DatabaseBackupSetting"]] = None, + ignore_conflicting_host_names: Optional[bool] = False, + ignore_databases: Optional[bool] = False, + app_service_plan: Optional[str] = None, + operation_type: Optional[Union[str, "BackupRestoreOperationType"]] = "Default", + adjust_connection_strings: Optional[bool] = None, + hosting_environment: Optional[str] = None, + **kwargs + ): + super(RestoreRequest, self).__init__(kind=kind, **kwargs) + self.storage_account_url = storage_account_url + self.blob_name = blob_name + self.overwrite = overwrite + self.site_name = site_name + self.databases = databases + self.ignore_conflicting_host_names = ignore_conflicting_host_names + self.ignore_databases = ignore_databases + self.app_service_plan = app_service_plan + self.operation_type = operation_type + self.adjust_connection_strings = adjust_connection_strings + self.hosting_environment = hosting_environment + + +class SampleUtterance(msrest.serialization.Model): + """Sample utterance. + + :param text: Text attribute of sample utterance. + :type text: str + :param links: Links attribute of sample utterance. + :type links: list[str] + :param qid: Question id of sample utterance (for stackoverflow questions titles). + :type qid: str + """ + + _attribute_map = { + 'text': {'key': 'text', 'type': 'str'}, + 'links': {'key': 'links', 'type': '[str]'}, + 'qid': {'key': 'qid', 'type': 'str'}, + } + + def __init__( + self, + *, + text: Optional[str] = None, + links: Optional[List[str]] = None, + qid: Optional[str] = None, + **kwargs + ): + super(SampleUtterance, self).__init__(**kwargs) + self.text = text + self.links = links + self.qid = qid + + +class ServiceSpecification(msrest.serialization.Model): + """Resource metrics service provided by Microsoft.Insights resource provider. + + :param metric_specifications: + :type metric_specifications: list[~azure.mgmt.web.v2021_01_15.models.MetricSpecification] + :param log_specifications: + :type log_specifications: list[~azure.mgmt.web.v2021_01_15.models.LogSpecification] + """ + + _attribute_map = { + 'metric_specifications': {'key': 'metricSpecifications', 'type': '[MetricSpecification]'}, + 'log_specifications': {'key': 'logSpecifications', 'type': '[LogSpecification]'}, + } + + def __init__( + self, + *, + metric_specifications: Optional[List["MetricSpecification"]] = None, + log_specifications: Optional[List["LogSpecification"]] = None, + **kwargs + ): + super(ServiceSpecification, self).__init__(**kwargs) + self.metric_specifications = metric_specifications + self.log_specifications = log_specifications + + +class Site(Resource): + """A web app, a mobile app backend, or an API app. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param identity: Managed service identity. + :type identity: ~azure.mgmt.web.v2021_01_15.models.ManagedServiceIdentity + :param extended_location: Extended Location. + :type extended_location: ~azure.mgmt.web.v2021_01_15.models.ExtendedLocation + :ivar state: Current state of the app. + :vartype state: str + :ivar host_names: Hostnames associated with the app. + :vartype host_names: list[str] + :ivar repository_site_name: Name of the repository site. + :vartype repository_site_name: str + :ivar usage_state: State indicating whether the app has exceeded its quota usage. Read-only. + Possible values include: "Normal", "Exceeded". + :vartype usage_state: str or ~azure.mgmt.web.v2021_01_15.models.UsageState + :param enabled: :code:`true` if the app is enabled; otherwise, + :code:`false`. Setting this value to false disables the app (takes the app + offline). + :type enabled: bool + :ivar enabled_host_names: Enabled hostnames for the app.Hostnames need to be assigned (see + HostNames) AND enabled. Otherwise, + the app is not served on those hostnames. + :vartype enabled_host_names: list[str] + :ivar availability_state: Management information availability state for the app. Possible + values include: "Normal", "Limited", "DisasterRecoveryMode". + :vartype availability_state: str or ~azure.mgmt.web.v2021_01_15.models.SiteAvailabilityState + :param host_name_ssl_states: Hostname SSL states are used to manage the SSL bindings for app's + hostnames. + :type host_name_ssl_states: list[~azure.mgmt.web.v2021_01_15.models.HostNameSslState] + :param server_farm_id: Resource ID of the associated App Service plan, formatted as: + "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". + :type server_farm_id: str + :param reserved: :code:`true` if reserved; otherwise, :code:`false`. + :type reserved: bool + :param is_xenon: Obsolete: Hyper-V sandbox. + :type is_xenon: bool + :param hyper_v: Hyper-V sandbox. + :type hyper_v: bool + :ivar last_modified_time_utc: Last time the app was modified, in UTC. Read-only. + :vartype last_modified_time_utc: ~datetime.datetime + :param site_config: Configuration of the app. + :type site_config: ~azure.mgmt.web.v2021_01_15.models.SiteConfig + :ivar traffic_manager_host_names: Azure Traffic Manager hostnames associated with the app. + Read-only. + :vartype traffic_manager_host_names: list[str] + :param scm_site_also_stopped: :code:`true` to stop SCM (KUDU) site when the app is + stopped; otherwise, :code:`false`. The default is :code:`false`. + :type scm_site_also_stopped: bool + :ivar target_swap_slot: Specifies which deployment slot this app will swap into. Read-only. + :vartype target_swap_slot: str + :param hosting_environment_profile: App Service Environment to use for the app. + :type hosting_environment_profile: ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentProfile + :param client_affinity_enabled: :code:`true` to enable client affinity; + :code:`false` to stop sending session affinity cookies, which route client + requests in the same session to the same instance. Default is :code:`true`. + :type client_affinity_enabled: bool + :param client_cert_enabled: :code:`true` to enable client certificate + authentication (TLS mutual authentication); otherwise, :code:`false`. Default is + :code:`false`. + :type client_cert_enabled: bool + :param client_cert_mode: This composes with ClientCertEnabled setting. + + + * ClientCertEnabled: false means ClientCert is ignored. + * ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. + * ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or + accepted. Possible values include: "Required", "Optional", "OptionalInteractiveUser". + :type client_cert_mode: str or ~azure.mgmt.web.v2021_01_15.models.ClientCertMode + :param client_cert_exclusion_paths: client certificate authentication comma-separated exclusion + paths. + :type client_cert_exclusion_paths: str + :param host_names_disabled: :code:`true` to disable the public hostnames of the + app; otherwise, :code:`false`. + If :code:`true`, the app is only accessible via API management process. + :type host_names_disabled: bool + :param custom_domain_verification_id: Unique identifier that verifies the custom domains + assigned to the app. Customer will add this id to a txt record for verification. + :type custom_domain_verification_id: str + :ivar outbound_ip_addresses: List of IP addresses that the app uses for outbound connections + (e.g. database access). Includes VIPs from tenants that site can be hosted with current + settings. Read-only. + :vartype outbound_ip_addresses: str + :ivar possible_outbound_ip_addresses: List of IP addresses that the app uses for outbound + connections (e.g. database access). Includes VIPs from all tenants except dataComponent. + Read-only. + :vartype possible_outbound_ip_addresses: str + :param container_size: Size of the function container. + :type container_size: int + :param daily_memory_time_quota: Maximum allowed daily memory-time quota (applicable on dynamic + apps only). + :type daily_memory_time_quota: int + :ivar suspended_till: App suspended till in case memory-time quota is exceeded. + :vartype suspended_till: ~datetime.datetime + :ivar max_number_of_workers: Maximum number of workers. + This only applies to Functions container. + :vartype max_number_of_workers: int + :param cloning_info: If specified during app creation, the app is cloned from a source app. + :type cloning_info: ~azure.mgmt.web.v2021_01_15.models.CloningInfo + :ivar resource_group: Name of the resource group the app belongs to. Read-only. + :vartype resource_group: str + :ivar is_default_container: :code:`true` if the app is a default container; + otherwise, :code:`false`. + :vartype is_default_container: bool + :ivar default_host_name: Default hostname of the app. Read-only. + :vartype default_host_name: str + :ivar slot_swap_status: Status of the last deployment slot swap operation. + :vartype slot_swap_status: ~azure.mgmt.web.v2021_01_15.models.SlotSwapStatus + :param https_only: HttpsOnly: configures a web site to accept only https requests. Issues + redirect for + http requests. + :type https_only: bool + :param redundancy_mode: Site redundancy mode. Possible values include: "None", "Manual", + "Failover", "ActiveActive", "GeoRedundant". + :type redundancy_mode: str or ~azure.mgmt.web.v2021_01_15.models.RedundancyMode + :ivar in_progress_operation_id: Specifies an operation id if this site has a pending operation. + :vartype in_progress_operation_id: str + :param storage_account_required: Checks if Customer provided storage account is required. + :type storage_account_required: bool + :param key_vault_reference_identity: Identity to use for Key Vault Reference authentication. + :type key_vault_reference_identity: str + :param virtual_network_subnet_id: Azure Resource Manager ID of the Virtual network and subnet + to be joined by Regional VNET Integration. + This must be of the form + /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}. + :type virtual_network_subnet_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'state': {'readonly': True}, + 'host_names': {'readonly': True}, + 'repository_site_name': {'readonly': True}, + 'usage_state': {'readonly': True}, + 'enabled_host_names': {'readonly': True}, + 'availability_state': {'readonly': True}, + 'last_modified_time_utc': {'readonly': True}, + 'traffic_manager_host_names': {'readonly': True}, + 'target_swap_slot': {'readonly': True}, + 'outbound_ip_addresses': {'readonly': True}, + 'possible_outbound_ip_addresses': {'readonly': True}, + 'suspended_till': {'readonly': True}, + 'max_number_of_workers': {'readonly': True}, + 'resource_group': {'readonly': True}, + 'is_default_container': {'readonly': True}, + 'default_host_name': {'readonly': True}, + 'slot_swap_status': {'readonly': True}, + 'in_progress_operation_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, + 'extended_location': {'key': 'extendedLocation', 'type': 'ExtendedLocation'}, + 'state': {'key': 'properties.state', 'type': 'str'}, + 'host_names': {'key': 'properties.hostNames', 'type': '[str]'}, + 'repository_site_name': {'key': 'properties.repositorySiteName', 'type': 'str'}, + 'usage_state': {'key': 'properties.usageState', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'enabled_host_names': {'key': 'properties.enabledHostNames', 'type': '[str]'}, + 'availability_state': {'key': 'properties.availabilityState', 'type': 'str'}, + 'host_name_ssl_states': {'key': 'properties.hostNameSslStates', 'type': '[HostNameSslState]'}, + 'server_farm_id': {'key': 'properties.serverFarmId', 'type': 'str'}, + 'reserved': {'key': 'properties.reserved', 'type': 'bool'}, + 'is_xenon': {'key': 'properties.isXenon', 'type': 'bool'}, + 'hyper_v': {'key': 'properties.hyperV', 'type': 'bool'}, + 'last_modified_time_utc': {'key': 'properties.lastModifiedTimeUtc', 'type': 'iso-8601'}, + 'site_config': {'key': 'properties.siteConfig', 'type': 'SiteConfig'}, + 'traffic_manager_host_names': {'key': 'properties.trafficManagerHostNames', 'type': '[str]'}, + 'scm_site_also_stopped': {'key': 'properties.scmSiteAlsoStopped', 'type': 'bool'}, + 'target_swap_slot': {'key': 'properties.targetSwapSlot', 'type': 'str'}, + 'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'}, + 'client_affinity_enabled': {'key': 'properties.clientAffinityEnabled', 'type': 'bool'}, + 'client_cert_enabled': {'key': 'properties.clientCertEnabled', 'type': 'bool'}, + 'client_cert_mode': {'key': 'properties.clientCertMode', 'type': 'str'}, + 'client_cert_exclusion_paths': {'key': 'properties.clientCertExclusionPaths', 'type': 'str'}, + 'host_names_disabled': {'key': 'properties.hostNamesDisabled', 'type': 'bool'}, + 'custom_domain_verification_id': {'key': 'properties.customDomainVerificationId', 'type': 'str'}, + 'outbound_ip_addresses': {'key': 'properties.outboundIpAddresses', 'type': 'str'}, + 'possible_outbound_ip_addresses': {'key': 'properties.possibleOutboundIpAddresses', 'type': 'str'}, + 'container_size': {'key': 'properties.containerSize', 'type': 'int'}, + 'daily_memory_time_quota': {'key': 'properties.dailyMemoryTimeQuota', 'type': 'int'}, + 'suspended_till': {'key': 'properties.suspendedTill', 'type': 'iso-8601'}, + 'max_number_of_workers': {'key': 'properties.maxNumberOfWorkers', 'type': 'int'}, + 'cloning_info': {'key': 'properties.cloningInfo', 'type': 'CloningInfo'}, + 'resource_group': {'key': 'properties.resourceGroup', 'type': 'str'}, + 'is_default_container': {'key': 'properties.isDefaultContainer', 'type': 'bool'}, + 'default_host_name': {'key': 'properties.defaultHostName', 'type': 'str'}, + 'slot_swap_status': {'key': 'properties.slotSwapStatus', 'type': 'SlotSwapStatus'}, + 'https_only': {'key': 'properties.httpsOnly', 'type': 'bool'}, + 'redundancy_mode': {'key': 'properties.redundancyMode', 'type': 'str'}, + 'in_progress_operation_id': {'key': 'properties.inProgressOperationId', 'type': 'str'}, + 'storage_account_required': {'key': 'properties.storageAccountRequired', 'type': 'bool'}, + 'key_vault_reference_identity': {'key': 'properties.keyVaultReferenceIdentity', 'type': 'str'}, + 'virtual_network_subnet_id': {'key': 'properties.virtualNetworkSubnetId', 'type': 'str'}, + } + + def __init__( + self, + *, + location: str, + kind: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, + extended_location: Optional["ExtendedLocation"] = None, + enabled: Optional[bool] = None, + host_name_ssl_states: Optional[List["HostNameSslState"]] = None, + server_farm_id: Optional[str] = None, + reserved: Optional[bool] = False, + is_xenon: Optional[bool] = False, + hyper_v: Optional[bool] = False, + site_config: Optional["SiteConfig"] = None, + scm_site_also_stopped: Optional[bool] = False, + hosting_environment_profile: Optional["HostingEnvironmentProfile"] = None, + client_affinity_enabled: Optional[bool] = None, + client_cert_enabled: Optional[bool] = None, + client_cert_mode: Optional[Union[str, "ClientCertMode"]] = None, + client_cert_exclusion_paths: Optional[str] = None, + host_names_disabled: Optional[bool] = None, + custom_domain_verification_id: Optional[str] = None, + container_size: Optional[int] = None, + daily_memory_time_quota: Optional[int] = None, + cloning_info: Optional["CloningInfo"] = None, + https_only: Optional[bool] = None, + redundancy_mode: Optional[Union[str, "RedundancyMode"]] = None, + storage_account_required: Optional[bool] = None, + key_vault_reference_identity: Optional[str] = None, + virtual_network_subnet_id: Optional[str] = None, + **kwargs + ): + super(Site, self).__init__(kind=kind, location=location, tags=tags, **kwargs) + self.identity = identity + self.extended_location = extended_location + self.state = None + self.host_names = None + self.repository_site_name = None + self.usage_state = None + self.enabled = enabled + self.enabled_host_names = None + self.availability_state = None + self.host_name_ssl_states = host_name_ssl_states + self.server_farm_id = server_farm_id + self.reserved = reserved + self.is_xenon = is_xenon + self.hyper_v = hyper_v + self.last_modified_time_utc = None + self.site_config = site_config + self.traffic_manager_host_names = None + self.scm_site_also_stopped = scm_site_also_stopped + self.target_swap_slot = None + self.hosting_environment_profile = hosting_environment_profile + self.client_affinity_enabled = client_affinity_enabled + self.client_cert_enabled = client_cert_enabled + self.client_cert_mode = client_cert_mode + self.client_cert_exclusion_paths = client_cert_exclusion_paths + self.host_names_disabled = host_names_disabled + self.custom_domain_verification_id = custom_domain_verification_id + self.outbound_ip_addresses = None + self.possible_outbound_ip_addresses = None + self.container_size = container_size + self.daily_memory_time_quota = daily_memory_time_quota + self.suspended_till = None + self.max_number_of_workers = None + self.cloning_info = cloning_info + self.resource_group = None + self.is_default_container = None + self.default_host_name = None + self.slot_swap_status = None + self.https_only = https_only + self.redundancy_mode = redundancy_mode + self.in_progress_operation_id = None + self.storage_account_required = storage_account_required + self.key_vault_reference_identity = key_vault_reference_identity + self.virtual_network_subnet_id = virtual_network_subnet_id + + +class SiteAuthSettings(ProxyOnlyResource): + """Configuration settings for the Azure App Service Authentication / Authorization feature. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`true` if the Authentication / Authorization feature is + enabled for the current app; otherwise, :code:`false`. + :type enabled: bool + :param runtime_version: The RuntimeVersion of the Authentication / Authorization feature in use + for the current app. + The setting in this value can control the behavior of certain features in the Authentication / + Authorization module. + :type runtime_version: str + :param unauthenticated_client_action: The action to take when an unauthenticated client + attempts to access the app. Possible values include: "RedirectToLoginPage", "AllowAnonymous". + :type unauthenticated_client_action: str or + ~azure.mgmt.web.v2021_01_15.models.UnauthenticatedClientAction + :param token_store_enabled: :code:`true` to durably store platform-specific + security tokens that are obtained during login flows; otherwise, :code:`false`. + The default is :code:`false`. + :type token_store_enabled: bool + :param allowed_external_redirect_urls: External URLs that can be redirected to as part of + logging in or logging out of the app. Note that the query string part of the URL is ignored. + This is an advanced setting typically only needed by Windows Store application backends. + Note that URLs within the current domain are always implicitly allowed. + :type allowed_external_redirect_urls: list[str] + :param default_provider: The default authentication provider to use when multiple providers are + configured. + This setting is only needed if multiple providers are configured and the unauthenticated + client + action is set to "RedirectToLoginPage". Possible values include: "AzureActiveDirectory", + "Facebook", "Google", "MicrosoftAccount", "Twitter", "Github". + :type default_provider: str or ~azure.mgmt.web.v2021_01_15.models.BuiltInAuthenticationProvider + :param token_refresh_extension_hours: The number of hours after session token expiration that a + session token can be used to + call the token refresh API. The default is 72 hours. + :type token_refresh_extension_hours: float + :param client_id: The Client ID of this relying party application, known as the client_id. + This setting is required for enabling OpenID Connection authentication with Azure Active + Directory or + other 3rd party OpenID Connect providers. + More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html. + :type client_id: str + :param client_secret: The Client Secret of this relying party application (in Azure Active + Directory, this is also referred to as the Key). + This setting is optional. If no client secret is configured, the OpenID Connect implicit auth + flow is used to authenticate end users. + Otherwise, the OpenID Connect Authorization Code Flow is used to authenticate end users. + More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html. + :type client_secret: str + :param client_secret_setting_name: The app setting name that contains the client secret of the + relying party application. + :type client_secret_setting_name: str + :param client_secret_certificate_thumbprint: An alternative to the client secret, that is the + thumbprint of a certificate used for signing purposes. This property acts as + a replacement for the Client Secret. It is also optional. + :type client_secret_certificate_thumbprint: str + :param issuer: The OpenID Connect Issuer URI that represents the entity which issues access + tokens for this application. + When using Azure Active Directory, this value is the URI of the directory tenant, e.g. + https://sts.windows.net/{tenant-guid}/. + This URI is a case-sensitive identifier for the token issuer. + More information on OpenID Connect Discovery: + http://openid.net/specs/openid-connect-discovery-1_0.html. + :type issuer: str + :param validate_issuer: Gets a value indicating whether the issuer should be a valid HTTPS url + and be validated as such. + :type validate_issuer: bool + :param allowed_audiences: Allowed audience values to consider when validating JWTs issued by + Azure Active Directory. Note that the :code:`ClientID` value is always considered + an + allowed audience, regardless of this setting. + :type allowed_audiences: list[str] + :param additional_login_params: Login parameters to send to the OpenID Connect authorization + endpoint when + a user logs in. Each parameter must be in the form "key=value". + :type additional_login_params: list[str] + :param aad_claims_authorization: Gets a JSON string containing the Azure AD Acl settings. + :type aad_claims_authorization: str + :param google_client_id: The OpenID Connect Client ID for the Google web application. + This setting is required for enabling Google Sign-In. + Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/. + :type google_client_id: str + :param google_client_secret: The client secret associated with the Google web application. + This setting is required for enabling Google Sign-In. + Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/. + :type google_client_secret: str + :param google_client_secret_setting_name: The app setting name that contains the client secret + associated with + the Google web application. + :type google_client_secret_setting_name: str + :param google_o_auth_scopes: The OAuth 2.0 scopes that will be requested as part of Google + Sign-In authentication. + This setting is optional. If not specified, "openid", "profile", and "email" are used as + default scopes. + Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/. + :type google_o_auth_scopes: list[str] + :param facebook_app_id: The App ID of the Facebook app used for login. + This setting is required for enabling Facebook Login. + Facebook Login documentation: https://developers.facebook.com/docs/facebook-login. + :type facebook_app_id: str + :param facebook_app_secret: The App Secret of the Facebook app used for Facebook Login. + This setting is required for enabling Facebook Login. + Facebook Login documentation: https://developers.facebook.com/docs/facebook-login. + :type facebook_app_secret: str + :param facebook_app_secret_setting_name: The app setting name that contains the app secret used + for Facebook Login. + :type facebook_app_secret_setting_name: str + :param facebook_o_auth_scopes: The OAuth 2.0 scopes that will be requested as part of Facebook + Login authentication. + This setting is optional. + Facebook Login documentation: https://developers.facebook.com/docs/facebook-login. + :type facebook_o_auth_scopes: list[str] + :param git_hub_client_id: The Client Id of the GitHub app used for login. + This setting is required for enabling Github login. + :type git_hub_client_id: str + :param git_hub_client_secret: The Client Secret of the GitHub app used for Github Login. + This setting is required for enabling Github login. + :type git_hub_client_secret: str + :param git_hub_client_secret_setting_name: The app setting name that contains the client secret + of the Github + app used for GitHub Login. + :type git_hub_client_secret_setting_name: str + :param git_hub_o_auth_scopes: The OAuth 2.0 scopes that will be requested as part of GitHub + Login authentication. + This setting is optional. + :type git_hub_o_auth_scopes: list[str] + :param twitter_consumer_key: The OAuth 1.0a consumer key of the Twitter application used for + sign-in. + This setting is required for enabling Twitter Sign-In. + Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in. + :type twitter_consumer_key: str + :param twitter_consumer_secret: The OAuth 1.0a consumer secret of the Twitter application used + for sign-in. + This setting is required for enabling Twitter Sign-In. + Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in. + :type twitter_consumer_secret: str + :param twitter_consumer_secret_setting_name: The app setting name that contains the OAuth 1.0a + consumer secret of the Twitter + application used for sign-in. + :type twitter_consumer_secret_setting_name: str + :param microsoft_account_client_id: The OAuth 2.0 client ID that was created for the app used + for authentication. + This setting is required for enabling Microsoft Account authentication. + Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm. + :type microsoft_account_client_id: str + :param microsoft_account_client_secret: The OAuth 2.0 client secret that was created for the + app used for authentication. + This setting is required for enabling Microsoft Account authentication. + Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm. + :type microsoft_account_client_secret: str + :param microsoft_account_client_secret_setting_name: The app setting name containing the OAuth + 2.0 client secret that was created for the + app used for authentication. + :type microsoft_account_client_secret_setting_name: str + :param microsoft_account_o_auth_scopes: The OAuth 2.0 scopes that will be requested as part of + Microsoft Account authentication. + This setting is optional. If not specified, "wl.basic" is used as the default scope. + Microsoft Account Scopes and permissions documentation: + https://msdn.microsoft.com/en-us/library/dn631845.aspx. + :type microsoft_account_o_auth_scopes: list[str] + :param is_auth_from_file: "true" if the auth config settings should be read from a file, + "false" otherwise. + :type is_auth_from_file: str + :param auth_file_path: The path of the config file containing auth settings. + If the path is relative, base will the site's root directory. + :type auth_file_path: str + :param config_version: The ConfigVersion of the Authentication / Authorization feature in use + for the current app. + The setting in this value can control the behavior of the control plane for Authentication / + Authorization. + :type config_version: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'runtime_version': {'key': 'properties.runtimeVersion', 'type': 'str'}, + 'unauthenticated_client_action': {'key': 'properties.unauthenticatedClientAction', 'type': 'str'}, + 'token_store_enabled': {'key': 'properties.tokenStoreEnabled', 'type': 'bool'}, + 'allowed_external_redirect_urls': {'key': 'properties.allowedExternalRedirectUrls', 'type': '[str]'}, + 'default_provider': {'key': 'properties.defaultProvider', 'type': 'str'}, + 'token_refresh_extension_hours': {'key': 'properties.tokenRefreshExtensionHours', 'type': 'float'}, + 'client_id': {'key': 'properties.clientId', 'type': 'str'}, + 'client_secret': {'key': 'properties.clientSecret', 'type': 'str'}, + 'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'}, + 'client_secret_certificate_thumbprint': {'key': 'properties.clientSecretCertificateThumbprint', 'type': 'str'}, + 'issuer': {'key': 'properties.issuer', 'type': 'str'}, + 'validate_issuer': {'key': 'properties.validateIssuer', 'type': 'bool'}, + 'allowed_audiences': {'key': 'properties.allowedAudiences', 'type': '[str]'}, + 'additional_login_params': {'key': 'properties.additionalLoginParams', 'type': '[str]'}, + 'aad_claims_authorization': {'key': 'properties.aadClaimsAuthorization', 'type': 'str'}, + 'google_client_id': {'key': 'properties.googleClientId', 'type': 'str'}, + 'google_client_secret': {'key': 'properties.googleClientSecret', 'type': 'str'}, + 'google_client_secret_setting_name': {'key': 'properties.googleClientSecretSettingName', 'type': 'str'}, + 'google_o_auth_scopes': {'key': 'properties.googleOAuthScopes', 'type': '[str]'}, + 'facebook_app_id': {'key': 'properties.facebookAppId', 'type': 'str'}, + 'facebook_app_secret': {'key': 'properties.facebookAppSecret', 'type': 'str'}, + 'facebook_app_secret_setting_name': {'key': 'properties.facebookAppSecretSettingName', 'type': 'str'}, + 'facebook_o_auth_scopes': {'key': 'properties.facebookOAuthScopes', 'type': '[str]'}, + 'git_hub_client_id': {'key': 'properties.gitHubClientId', 'type': 'str'}, + 'git_hub_client_secret': {'key': 'properties.gitHubClientSecret', 'type': 'str'}, + 'git_hub_client_secret_setting_name': {'key': 'properties.gitHubClientSecretSettingName', 'type': 'str'}, + 'git_hub_o_auth_scopes': {'key': 'properties.gitHubOAuthScopes', 'type': '[str]'}, + 'twitter_consumer_key': {'key': 'properties.twitterConsumerKey', 'type': 'str'}, + 'twitter_consumer_secret': {'key': 'properties.twitterConsumerSecret', 'type': 'str'}, + 'twitter_consumer_secret_setting_name': {'key': 'properties.twitterConsumerSecretSettingName', 'type': 'str'}, + 'microsoft_account_client_id': {'key': 'properties.microsoftAccountClientId', 'type': 'str'}, + 'microsoft_account_client_secret': {'key': 'properties.microsoftAccountClientSecret', 'type': 'str'}, + 'microsoft_account_client_secret_setting_name': {'key': 'properties.microsoftAccountClientSecretSettingName', 'type': 'str'}, + 'microsoft_account_o_auth_scopes': {'key': 'properties.microsoftAccountOAuthScopes', 'type': '[str]'}, + 'is_auth_from_file': {'key': 'properties.isAuthFromFile', 'type': 'str'}, + 'auth_file_path': {'key': 'properties.authFilePath', 'type': 'str'}, + 'config_version': {'key': 'properties.configVersion', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + enabled: Optional[bool] = None, + runtime_version: Optional[str] = None, + unauthenticated_client_action: Optional[Union[str, "UnauthenticatedClientAction"]] = None, + token_store_enabled: Optional[bool] = None, + allowed_external_redirect_urls: Optional[List[str]] = None, + default_provider: Optional[Union[str, "BuiltInAuthenticationProvider"]] = None, + token_refresh_extension_hours: Optional[float] = None, + client_id: Optional[str] = None, + client_secret: Optional[str] = None, + client_secret_setting_name: Optional[str] = None, + client_secret_certificate_thumbprint: Optional[str] = None, + issuer: Optional[str] = None, + validate_issuer: Optional[bool] = None, + allowed_audiences: Optional[List[str]] = None, + additional_login_params: Optional[List[str]] = None, + aad_claims_authorization: Optional[str] = None, + google_client_id: Optional[str] = None, + google_client_secret: Optional[str] = None, + google_client_secret_setting_name: Optional[str] = None, + google_o_auth_scopes: Optional[List[str]] = None, + facebook_app_id: Optional[str] = None, + facebook_app_secret: Optional[str] = None, + facebook_app_secret_setting_name: Optional[str] = None, + facebook_o_auth_scopes: Optional[List[str]] = None, + git_hub_client_id: Optional[str] = None, + git_hub_client_secret: Optional[str] = None, + git_hub_client_secret_setting_name: Optional[str] = None, + git_hub_o_auth_scopes: Optional[List[str]] = None, + twitter_consumer_key: Optional[str] = None, + twitter_consumer_secret: Optional[str] = None, + twitter_consumer_secret_setting_name: Optional[str] = None, + microsoft_account_client_id: Optional[str] = None, + microsoft_account_client_secret: Optional[str] = None, + microsoft_account_client_secret_setting_name: Optional[str] = None, + microsoft_account_o_auth_scopes: Optional[List[str]] = None, + is_auth_from_file: Optional[str] = None, + auth_file_path: Optional[str] = None, + config_version: Optional[str] = None, + **kwargs + ): + super(SiteAuthSettings, self).__init__(kind=kind, **kwargs) + self.enabled = enabled + self.runtime_version = runtime_version + self.unauthenticated_client_action = unauthenticated_client_action + self.token_store_enabled = token_store_enabled + self.allowed_external_redirect_urls = allowed_external_redirect_urls + self.default_provider = default_provider + self.token_refresh_extension_hours = token_refresh_extension_hours + self.client_id = client_id + self.client_secret = client_secret + self.client_secret_setting_name = client_secret_setting_name + self.client_secret_certificate_thumbprint = client_secret_certificate_thumbprint + self.issuer = issuer + self.validate_issuer = validate_issuer + self.allowed_audiences = allowed_audiences + self.additional_login_params = additional_login_params + self.aad_claims_authorization = aad_claims_authorization + self.google_client_id = google_client_id + self.google_client_secret = google_client_secret + self.google_client_secret_setting_name = google_client_secret_setting_name + self.google_o_auth_scopes = google_o_auth_scopes + self.facebook_app_id = facebook_app_id + self.facebook_app_secret = facebook_app_secret + self.facebook_app_secret_setting_name = facebook_app_secret_setting_name + self.facebook_o_auth_scopes = facebook_o_auth_scopes + self.git_hub_client_id = git_hub_client_id + self.git_hub_client_secret = git_hub_client_secret + self.git_hub_client_secret_setting_name = git_hub_client_secret_setting_name + self.git_hub_o_auth_scopes = git_hub_o_auth_scopes + self.twitter_consumer_key = twitter_consumer_key + self.twitter_consumer_secret = twitter_consumer_secret + self.twitter_consumer_secret_setting_name = twitter_consumer_secret_setting_name + self.microsoft_account_client_id = microsoft_account_client_id + self.microsoft_account_client_secret = microsoft_account_client_secret + self.microsoft_account_client_secret_setting_name = microsoft_account_client_secret_setting_name + self.microsoft_account_o_auth_scopes = microsoft_account_o_auth_scopes + self.is_auth_from_file = is_auth_from_file + self.auth_file_path = auth_file_path + self.config_version = config_version + + +class SiteAuthSettingsV2(ProxyOnlyResource): + """Configuration settings for the Azure App Service Authentication / Authorization V2 feature. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param platform: The configuration settings of the platform of App Service + Authentication/Authorization. + :type platform: ~azure.mgmt.web.v2021_01_15.models.AuthPlatform + :param global_validation: The configuration settings that determines the validation flow of + users using App Service Authentication/Authorization. + :type global_validation: ~azure.mgmt.web.v2021_01_15.models.GlobalValidation + :param identity_providers: The configuration settings of each of the identity providers used to + configure App Service Authentication/Authorization. + :type identity_providers: ~azure.mgmt.web.v2021_01_15.models.IdentityProviders + :param login: The configuration settings of the login flow of users using App Service + Authentication/Authorization. + :type login: ~azure.mgmt.web.v2021_01_15.models.Login + :param http_settings: The configuration settings of the HTTP requests for authentication and + authorization requests made against App Service Authentication/Authorization. + :type http_settings: ~azure.mgmt.web.v2021_01_15.models.HttpSettings + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'platform': {'key': 'properties.platform', 'type': 'AuthPlatform'}, + 'global_validation': {'key': 'properties.globalValidation', 'type': 'GlobalValidation'}, + 'identity_providers': {'key': 'properties.identityProviders', 'type': 'IdentityProviders'}, + 'login': {'key': 'properties.login', 'type': 'Login'}, + 'http_settings': {'key': 'properties.httpSettings', 'type': 'HttpSettings'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + platform: Optional["AuthPlatform"] = None, + global_validation: Optional["GlobalValidation"] = None, + identity_providers: Optional["IdentityProviders"] = None, + login: Optional["Login"] = None, + http_settings: Optional["HttpSettings"] = None, + **kwargs + ): + super(SiteAuthSettingsV2, self).__init__(kind=kind, **kwargs) + self.platform = platform + self.global_validation = global_validation + self.identity_providers = identity_providers + self.login = login + self.http_settings = http_settings + + +class SiteCloneability(msrest.serialization.Model): + """Represents whether or not an app is cloneable. + + :param result: Name of app. Possible values include: "Cloneable", "PartiallyCloneable", + "NotCloneable". + :type result: str or ~azure.mgmt.web.v2021_01_15.models.CloneAbilityResult + :param blocking_features: List of features enabled on app that prevent cloning. + :type blocking_features: list[~azure.mgmt.web.v2021_01_15.models.SiteCloneabilityCriterion] + :param unsupported_features: List of features enabled on app that are non-blocking but cannot + be cloned. The app can still be cloned + but the features in this list will not be set up on cloned app. + :type unsupported_features: list[~azure.mgmt.web.v2021_01_15.models.SiteCloneabilityCriterion] + :param blocking_characteristics: List of blocking application characteristics. + :type blocking_characteristics: + list[~azure.mgmt.web.v2021_01_15.models.SiteCloneabilityCriterion] + """ + + _attribute_map = { + 'result': {'key': 'result', 'type': 'str'}, + 'blocking_features': {'key': 'blockingFeatures', 'type': '[SiteCloneabilityCriterion]'}, + 'unsupported_features': {'key': 'unsupportedFeatures', 'type': '[SiteCloneabilityCriterion]'}, + 'blocking_characteristics': {'key': 'blockingCharacteristics', 'type': '[SiteCloneabilityCriterion]'}, + } + + def __init__( + self, + *, + result: Optional[Union[str, "CloneAbilityResult"]] = None, + blocking_features: Optional[List["SiteCloneabilityCriterion"]] = None, + unsupported_features: Optional[List["SiteCloneabilityCriterion"]] = None, + blocking_characteristics: Optional[List["SiteCloneabilityCriterion"]] = None, + **kwargs + ): + super(SiteCloneability, self).__init__(**kwargs) + self.result = result + self.blocking_features = blocking_features + self.unsupported_features = unsupported_features + self.blocking_characteristics = blocking_characteristics + + +class SiteCloneabilityCriterion(msrest.serialization.Model): + """An app cloneability criterion. + + :param name: Name of criterion. + :type name: str + :param description: Description of criterion. + :type description: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + description: Optional[str] = None, + **kwargs + ): + super(SiteCloneabilityCriterion, self).__init__(**kwargs) + self.name = name + self.description = description + + +class SiteConfig(msrest.serialization.Model): + """Configuration of an App Service app. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param number_of_workers: Number of workers. + :type number_of_workers: int + :param default_documents: Default documents. + :type default_documents: list[str] + :param net_framework_version: .NET Framework version. + :type net_framework_version: str + :param php_version: Version of PHP. + :type php_version: str + :param python_version: Version of Python. + :type python_version: str + :param node_version: Version of Node.js. + :type node_version: str + :param power_shell_version: Version of PowerShell. + :type power_shell_version: str + :param linux_fx_version: Linux App Framework and version. + :type linux_fx_version: str + :param windows_fx_version: Xenon App Framework and version. + :type windows_fx_version: str + :param request_tracing_enabled: :code:`true` if request tracing is enabled; + otherwise, :code:`false`. + :type request_tracing_enabled: bool + :param request_tracing_expiration_time: Request tracing expiration time. + :type request_tracing_expiration_time: ~datetime.datetime + :param remote_debugging_enabled: :code:`true` if remote debugging is enabled; + otherwise, :code:`false`. + :type remote_debugging_enabled: bool + :param remote_debugging_version: Remote debugging version. + :type remote_debugging_version: str + :param http_logging_enabled: :code:`true` if HTTP logging is enabled; otherwise, + :code:`false`. + :type http_logging_enabled: bool + :param acr_use_managed_identity_creds: Flag to use Managed Identity Creds for ACR pull. + :type acr_use_managed_identity_creds: bool + :param acr_user_managed_identity_id: If using user managed identity, the user managed identity + ClientId. + :type acr_user_managed_identity_id: str + :param logs_directory_size_limit: HTTP logs directory size limit. + :type logs_directory_size_limit: int + :param detailed_error_logging_enabled: :code:`true` if detailed error logging is + enabled; otherwise, :code:`false`. + :type detailed_error_logging_enabled: bool + :param publishing_username: Publishing user name. + :type publishing_username: str + :param app_settings: Application settings. + :type app_settings: list[~azure.mgmt.web.v2021_01_15.models.NameValuePair] + :param connection_strings: Connection strings. + :type connection_strings: list[~azure.mgmt.web.v2021_01_15.models.ConnStringInfo] + :ivar machine_key: Site MachineKey. + :vartype machine_key: ~azure.mgmt.web.v2021_01_15.models.SiteMachineKey + :param handler_mappings: Handler mappings. + :type handler_mappings: list[~azure.mgmt.web.v2021_01_15.models.HandlerMapping] + :param document_root: Document root. + :type document_root: str + :param scm_type: SCM type. Possible values include: "None", "Dropbox", "Tfs", "LocalGit", + "GitHub", "CodePlexGit", "CodePlexHg", "BitbucketGit", "BitbucketHg", "ExternalGit", + "ExternalHg", "OneDrive", "VSO", "VSTSRM". + :type scm_type: str or ~azure.mgmt.web.v2021_01_15.models.ScmType + :param use32_bit_worker_process: :code:`true` to use 32-bit worker process; + otherwise, :code:`false`. + :type use32_bit_worker_process: bool + :param web_sockets_enabled: :code:`true` if WebSocket is enabled; otherwise, + :code:`false`. + :type web_sockets_enabled: bool + :param always_on: :code:`true` if Always On is enabled; otherwise, + :code:`false`. + :type always_on: bool + :param java_version: Java version. + :type java_version: str + :param java_container: Java container. + :type java_container: str + :param java_container_version: Java container version. + :type java_container_version: str + :param app_command_line: App command line to launch. + :type app_command_line: str + :param managed_pipeline_mode: Managed pipeline mode. Possible values include: "Integrated", + "Classic". + :type managed_pipeline_mode: str or ~azure.mgmt.web.v2021_01_15.models.ManagedPipelineMode + :param virtual_applications: Virtual applications. + :type virtual_applications: list[~azure.mgmt.web.v2021_01_15.models.VirtualApplication] + :param load_balancing: Site load balancing. Possible values include: "WeightedRoundRobin", + "LeastRequests", "LeastResponseTime", "WeightedTotalTraffic", "RequestHash", + "PerSiteRoundRobin". + :type load_balancing: str or ~azure.mgmt.web.v2021_01_15.models.SiteLoadBalancing + :param experiments: This is work around for polymorphic types. + :type experiments: ~azure.mgmt.web.v2021_01_15.models.Experiments + :param limits: Site limits. + :type limits: ~azure.mgmt.web.v2021_01_15.models.SiteLimits + :param auto_heal_enabled: :code:`true` if Auto Heal is enabled; otherwise, + :code:`false`. + :type auto_heal_enabled: bool + :param auto_heal_rules: Auto Heal rules. + :type auto_heal_rules: ~azure.mgmt.web.v2021_01_15.models.AutoHealRules + :param tracing_options: Tracing options. + :type tracing_options: str + :param vnet_name: Virtual Network name. + :type vnet_name: str + :param vnet_route_all_enabled: Virtual Network Route All enabled. This causes all outbound + traffic to have Virtual Network Security Groups and User Defined Routes applied. + :type vnet_route_all_enabled: bool + :param vnet_private_ports_count: The number of private ports assigned to this app. These will + be assigned dynamically on runtime. + :type vnet_private_ports_count: int + :param cors: Cross-Origin Resource Sharing (CORS) settings. + :type cors: ~azure.mgmt.web.v2021_01_15.models.CorsSettings + :param push: Push endpoint settings. + :type push: ~azure.mgmt.web.v2021_01_15.models.PushSettings + :param api_definition: Information about the formal API definition for the app. + :type api_definition: ~azure.mgmt.web.v2021_01_15.models.ApiDefinitionInfo + :param api_management_config: Azure API management settings linked to the app. + :type api_management_config: ~azure.mgmt.web.v2021_01_15.models.ApiManagementConfig + :param auto_swap_slot_name: Auto-swap slot name. + :type auto_swap_slot_name: str + :param local_my_sql_enabled: :code:`true` to enable local MySQL; otherwise, + :code:`false`. + :type local_my_sql_enabled: bool + :param managed_service_identity_id: Managed Service Identity Id. + :type managed_service_identity_id: int + :param x_managed_service_identity_id: Explicit Managed Service Identity Id. + :type x_managed_service_identity_id: int + :param key_vault_reference_identity: Identity to use for Key Vault Reference authentication. + :type key_vault_reference_identity: str + :param ip_security_restrictions: IP security restrictions for main. + :type ip_security_restrictions: list[~azure.mgmt.web.v2021_01_15.models.IpSecurityRestriction] + :param scm_ip_security_restrictions: IP security restrictions for scm. + :type scm_ip_security_restrictions: + list[~azure.mgmt.web.v2021_01_15.models.IpSecurityRestriction] + :param scm_ip_security_restrictions_use_main: IP security restrictions for scm to use main. + :type scm_ip_security_restrictions_use_main: bool + :param http20_enabled: Http20Enabled: configures a web site to allow clients to connect over + http2.0. + :type http20_enabled: bool + :param min_tls_version: MinTlsVersion: configures the minimum version of TLS required for SSL + requests. Possible values include: "1.0", "1.1", "1.2". + :type min_tls_version: str or ~azure.mgmt.web.v2021_01_15.models.SupportedTlsVersions + :param scm_min_tls_version: ScmMinTlsVersion: configures the minimum version of TLS required + for SSL requests for SCM site. Possible values include: "1.0", "1.1", "1.2". + :type scm_min_tls_version: str or ~azure.mgmt.web.v2021_01_15.models.SupportedTlsVersions + :param ftps_state: State of FTP / FTPS service. Possible values include: "AllAllowed", + "FtpsOnly", "Disabled". + :type ftps_state: str or ~azure.mgmt.web.v2021_01_15.models.FtpsState + :param pre_warmed_instance_count: Number of preWarmed instances. + This setting only applies to the Consumption and Elastic Plans. + :type pre_warmed_instance_count: int + :param function_app_scale_limit: Maximum number of workers that a site can scale out to. + This setting only applies to the Consumption and Elastic Premium Plans. + :type function_app_scale_limit: int + :param health_check_path: Health check path. + :type health_check_path: str + :param functions_runtime_scale_monitoring_enabled: Gets or sets a value indicating whether + functions runtime scale monitoring is enabled. When enabled, + the ScaleController will not monitor event sources directly, but will instead call to the + runtime to get scale status. + :type functions_runtime_scale_monitoring_enabled: bool + :param website_time_zone: Sets the time zone a site uses for generating timestamps. Compatible + with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence + over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a + quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, + expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows + NT\CurrentVersion\Time Zones. + :type website_time_zone: str + :param minimum_elastic_instance_count: Number of minimum instance count for a site + This setting only applies to the Elastic Plans. + :type minimum_elastic_instance_count: int + :param azure_storage_accounts: List of Azure Storage Accounts. + :type azure_storage_accounts: dict[str, + ~azure.mgmt.web.v2021_01_15.models.AzureStorageInfoValue] + :param public_network_access: Property to allow or block all public traffic. + :type public_network_access: str + """ + + _validation = { + 'machine_key': {'readonly': True}, + 'pre_warmed_instance_count': {'maximum': 10, 'minimum': 0}, + 'function_app_scale_limit': {'minimum': 0}, + 'minimum_elastic_instance_count': {'maximum': 20, 'minimum': 0}, + } + + _attribute_map = { + 'number_of_workers': {'key': 'numberOfWorkers', 'type': 'int'}, + 'default_documents': {'key': 'defaultDocuments', 'type': '[str]'}, + 'net_framework_version': {'key': 'netFrameworkVersion', 'type': 'str'}, + 'php_version': {'key': 'phpVersion', 'type': 'str'}, + 'python_version': {'key': 'pythonVersion', 'type': 'str'}, + 'node_version': {'key': 'nodeVersion', 'type': 'str'}, + 'power_shell_version': {'key': 'powerShellVersion', 'type': 'str'}, + 'linux_fx_version': {'key': 'linuxFxVersion', 'type': 'str'}, + 'windows_fx_version': {'key': 'windowsFxVersion', 'type': 'str'}, + 'request_tracing_enabled': {'key': 'requestTracingEnabled', 'type': 'bool'}, + 'request_tracing_expiration_time': {'key': 'requestTracingExpirationTime', 'type': 'iso-8601'}, + 'remote_debugging_enabled': {'key': 'remoteDebuggingEnabled', 'type': 'bool'}, + 'remote_debugging_version': {'key': 'remoteDebuggingVersion', 'type': 'str'}, + 'http_logging_enabled': {'key': 'httpLoggingEnabled', 'type': 'bool'}, + 'acr_use_managed_identity_creds': {'key': 'acrUseManagedIdentityCreds', 'type': 'bool'}, + 'acr_user_managed_identity_id': {'key': 'acrUserManagedIdentityID', 'type': 'str'}, + 'logs_directory_size_limit': {'key': 'logsDirectorySizeLimit', 'type': 'int'}, + 'detailed_error_logging_enabled': {'key': 'detailedErrorLoggingEnabled', 'type': 'bool'}, + 'publishing_username': {'key': 'publishingUsername', 'type': 'str'}, + 'app_settings': {'key': 'appSettings', 'type': '[NameValuePair]'}, + 'connection_strings': {'key': 'connectionStrings', 'type': '[ConnStringInfo]'}, + 'machine_key': {'key': 'machineKey', 'type': 'SiteMachineKey'}, + 'handler_mappings': {'key': 'handlerMappings', 'type': '[HandlerMapping]'}, + 'document_root': {'key': 'documentRoot', 'type': 'str'}, + 'scm_type': {'key': 'scmType', 'type': 'str'}, + 'use32_bit_worker_process': {'key': 'use32BitWorkerProcess', 'type': 'bool'}, + 'web_sockets_enabled': {'key': 'webSocketsEnabled', 'type': 'bool'}, + 'always_on': {'key': 'alwaysOn', 'type': 'bool'}, + 'java_version': {'key': 'javaVersion', 'type': 'str'}, + 'java_container': {'key': 'javaContainer', 'type': 'str'}, + 'java_container_version': {'key': 'javaContainerVersion', 'type': 'str'}, + 'app_command_line': {'key': 'appCommandLine', 'type': 'str'}, + 'managed_pipeline_mode': {'key': 'managedPipelineMode', 'type': 'str'}, + 'virtual_applications': {'key': 'virtualApplications', 'type': '[VirtualApplication]'}, + 'load_balancing': {'key': 'loadBalancing', 'type': 'str'}, + 'experiments': {'key': 'experiments', 'type': 'Experiments'}, + 'limits': {'key': 'limits', 'type': 'SiteLimits'}, + 'auto_heal_enabled': {'key': 'autoHealEnabled', 'type': 'bool'}, + 'auto_heal_rules': {'key': 'autoHealRules', 'type': 'AutoHealRules'}, + 'tracing_options': {'key': 'tracingOptions', 'type': 'str'}, + 'vnet_name': {'key': 'vnetName', 'type': 'str'}, + 'vnet_route_all_enabled': {'key': 'vnetRouteAllEnabled', 'type': 'bool'}, + 'vnet_private_ports_count': {'key': 'vnetPrivatePortsCount', 'type': 'int'}, + 'cors': {'key': 'cors', 'type': 'CorsSettings'}, + 'push': {'key': 'push', 'type': 'PushSettings'}, + 'api_definition': {'key': 'apiDefinition', 'type': 'ApiDefinitionInfo'}, + 'api_management_config': {'key': 'apiManagementConfig', 'type': 'ApiManagementConfig'}, + 'auto_swap_slot_name': {'key': 'autoSwapSlotName', 'type': 'str'}, + 'local_my_sql_enabled': {'key': 'localMySqlEnabled', 'type': 'bool'}, + 'managed_service_identity_id': {'key': 'managedServiceIdentityId', 'type': 'int'}, + 'x_managed_service_identity_id': {'key': 'xManagedServiceIdentityId', 'type': 'int'}, + 'key_vault_reference_identity': {'key': 'keyVaultReferenceIdentity', 'type': 'str'}, + 'ip_security_restrictions': {'key': 'ipSecurityRestrictions', 'type': '[IpSecurityRestriction]'}, + 'scm_ip_security_restrictions': {'key': 'scmIpSecurityRestrictions', 'type': '[IpSecurityRestriction]'}, + 'scm_ip_security_restrictions_use_main': {'key': 'scmIpSecurityRestrictionsUseMain', 'type': 'bool'}, + 'http20_enabled': {'key': 'http20Enabled', 'type': 'bool'}, + 'min_tls_version': {'key': 'minTlsVersion', 'type': 'str'}, + 'scm_min_tls_version': {'key': 'scmMinTlsVersion', 'type': 'str'}, + 'ftps_state': {'key': 'ftpsState', 'type': 'str'}, + 'pre_warmed_instance_count': {'key': 'preWarmedInstanceCount', 'type': 'int'}, + 'function_app_scale_limit': {'key': 'functionAppScaleLimit', 'type': 'int'}, + 'health_check_path': {'key': 'healthCheckPath', 'type': 'str'}, + 'functions_runtime_scale_monitoring_enabled': {'key': 'functionsRuntimeScaleMonitoringEnabled', 'type': 'bool'}, + 'website_time_zone': {'key': 'websiteTimeZone', 'type': 'str'}, + 'minimum_elastic_instance_count': {'key': 'minimumElasticInstanceCount', 'type': 'int'}, + 'azure_storage_accounts': {'key': 'azureStorageAccounts', 'type': '{AzureStorageInfoValue}'}, + 'public_network_access': {'key': 'publicNetworkAccess', 'type': 'str'}, + } + + def __init__( + self, + *, + number_of_workers: Optional[int] = None, + default_documents: Optional[List[str]] = None, + net_framework_version: Optional[str] = "v4.6", + php_version: Optional[str] = None, + python_version: Optional[str] = None, + node_version: Optional[str] = None, + power_shell_version: Optional[str] = None, + linux_fx_version: Optional[str] = None, + windows_fx_version: Optional[str] = None, + request_tracing_enabled: Optional[bool] = None, + request_tracing_expiration_time: Optional[datetime.datetime] = None, + remote_debugging_enabled: Optional[bool] = None, + remote_debugging_version: Optional[str] = None, + http_logging_enabled: Optional[bool] = None, + acr_use_managed_identity_creds: Optional[bool] = None, + acr_user_managed_identity_id: Optional[str] = None, + logs_directory_size_limit: Optional[int] = None, + detailed_error_logging_enabled: Optional[bool] = None, + publishing_username: Optional[str] = None, + app_settings: Optional[List["NameValuePair"]] = None, + connection_strings: Optional[List["ConnStringInfo"]] = None, + handler_mappings: Optional[List["HandlerMapping"]] = None, + document_root: Optional[str] = None, + scm_type: Optional[Union[str, "ScmType"]] = None, + use32_bit_worker_process: Optional[bool] = None, + web_sockets_enabled: Optional[bool] = None, + always_on: Optional[bool] = None, + java_version: Optional[str] = None, + java_container: Optional[str] = None, + java_container_version: Optional[str] = None, + app_command_line: Optional[str] = None, + managed_pipeline_mode: Optional[Union[str, "ManagedPipelineMode"]] = None, + virtual_applications: Optional[List["VirtualApplication"]] = None, + load_balancing: Optional[Union[str, "SiteLoadBalancing"]] = None, + experiments: Optional["Experiments"] = None, + limits: Optional["SiteLimits"] = None, + auto_heal_enabled: Optional[bool] = None, + auto_heal_rules: Optional["AutoHealRules"] = None, + tracing_options: Optional[str] = None, + vnet_name: Optional[str] = None, + vnet_route_all_enabled: Optional[bool] = None, + vnet_private_ports_count: Optional[int] = None, + cors: Optional["CorsSettings"] = None, + push: Optional["PushSettings"] = None, + api_definition: Optional["ApiDefinitionInfo"] = None, + api_management_config: Optional["ApiManagementConfig"] = None, + auto_swap_slot_name: Optional[str] = None, + local_my_sql_enabled: Optional[bool] = False, + managed_service_identity_id: Optional[int] = None, + x_managed_service_identity_id: Optional[int] = None, + key_vault_reference_identity: Optional[str] = None, + ip_security_restrictions: Optional[List["IpSecurityRestriction"]] = None, + scm_ip_security_restrictions: Optional[List["IpSecurityRestriction"]] = None, + scm_ip_security_restrictions_use_main: Optional[bool] = None, + http20_enabled: Optional[bool] = True, + min_tls_version: Optional[Union[str, "SupportedTlsVersions"]] = None, + scm_min_tls_version: Optional[Union[str, "SupportedTlsVersions"]] = None, + ftps_state: Optional[Union[str, "FtpsState"]] = None, + pre_warmed_instance_count: Optional[int] = None, + function_app_scale_limit: Optional[int] = None, + health_check_path: Optional[str] = None, + functions_runtime_scale_monitoring_enabled: Optional[bool] = None, + website_time_zone: Optional[str] = None, + minimum_elastic_instance_count: Optional[int] = None, + azure_storage_accounts: Optional[Dict[str, "AzureStorageInfoValue"]] = None, + public_network_access: Optional[str] = None, + **kwargs + ): + super(SiteConfig, self).__init__(**kwargs) + self.number_of_workers = number_of_workers + self.default_documents = default_documents + self.net_framework_version = net_framework_version + self.php_version = php_version + self.python_version = python_version + self.node_version = node_version + self.power_shell_version = power_shell_version + self.linux_fx_version = linux_fx_version + self.windows_fx_version = windows_fx_version + self.request_tracing_enabled = request_tracing_enabled + self.request_tracing_expiration_time = request_tracing_expiration_time + self.remote_debugging_enabled = remote_debugging_enabled + self.remote_debugging_version = remote_debugging_version + self.http_logging_enabled = http_logging_enabled + self.acr_use_managed_identity_creds = acr_use_managed_identity_creds + self.acr_user_managed_identity_id = acr_user_managed_identity_id + self.logs_directory_size_limit = logs_directory_size_limit + self.detailed_error_logging_enabled = detailed_error_logging_enabled + self.publishing_username = publishing_username + self.app_settings = app_settings + self.connection_strings = connection_strings + self.machine_key = None + self.handler_mappings = handler_mappings + self.document_root = document_root + self.scm_type = scm_type + self.use32_bit_worker_process = use32_bit_worker_process + self.web_sockets_enabled = web_sockets_enabled + self.always_on = always_on + self.java_version = java_version + self.java_container = java_container + self.java_container_version = java_container_version + self.app_command_line = app_command_line + self.managed_pipeline_mode = managed_pipeline_mode + self.virtual_applications = virtual_applications + self.load_balancing = load_balancing + self.experiments = experiments + self.limits = limits + self.auto_heal_enabled = auto_heal_enabled + self.auto_heal_rules = auto_heal_rules + self.tracing_options = tracing_options + self.vnet_name = vnet_name + self.vnet_route_all_enabled = vnet_route_all_enabled + self.vnet_private_ports_count = vnet_private_ports_count + self.cors = cors + self.push = push + self.api_definition = api_definition + self.api_management_config = api_management_config + self.auto_swap_slot_name = auto_swap_slot_name + self.local_my_sql_enabled = local_my_sql_enabled + self.managed_service_identity_id = managed_service_identity_id + self.x_managed_service_identity_id = x_managed_service_identity_id + self.key_vault_reference_identity = key_vault_reference_identity + self.ip_security_restrictions = ip_security_restrictions + self.scm_ip_security_restrictions = scm_ip_security_restrictions + self.scm_ip_security_restrictions_use_main = scm_ip_security_restrictions_use_main + self.http20_enabled = http20_enabled + self.min_tls_version = min_tls_version + self.scm_min_tls_version = scm_min_tls_version + self.ftps_state = ftps_state + self.pre_warmed_instance_count = pre_warmed_instance_count + self.function_app_scale_limit = function_app_scale_limit + self.health_check_path = health_check_path + self.functions_runtime_scale_monitoring_enabled = functions_runtime_scale_monitoring_enabled + self.website_time_zone = website_time_zone + self.minimum_elastic_instance_count = minimum_elastic_instance_count + self.azure_storage_accounts = azure_storage_accounts + self.public_network_access = public_network_access + + +class SiteConfigPropertiesDictionary(msrest.serialization.Model): + """Site config properties dictionary. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar use32_bit_worker_process: :code:`true` if use32BitWorkerProcess should be + set to true for the stack; otherwise, :code:`false`. + :vartype use32_bit_worker_process: bool + :ivar linux_fx_version: LinuxFxVersion configuration setting. + :vartype linux_fx_version: str + :ivar java_version: JavaVersion configuration setting. + :vartype java_version: str + :ivar power_shell_version: PowerShellVersion configuration setting. + :vartype power_shell_version: str + """ + + _validation = { + 'use32_bit_worker_process': {'readonly': True}, + 'linux_fx_version': {'readonly': True}, + 'java_version': {'readonly': True}, + 'power_shell_version': {'readonly': True}, + } + + _attribute_map = { + 'use32_bit_worker_process': {'key': 'use32BitWorkerProcess', 'type': 'bool'}, + 'linux_fx_version': {'key': 'linuxFxVersion', 'type': 'str'}, + 'java_version': {'key': 'javaVersion', 'type': 'str'}, + 'power_shell_version': {'key': 'powerShellVersion', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SiteConfigPropertiesDictionary, self).__init__(**kwargs) + self.use32_bit_worker_process = None + self.linux_fx_version = None + self.java_version = None + self.power_shell_version = None + + +class SiteConfigResource(ProxyOnlyResource): + """Web app configuration ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param number_of_workers: Number of workers. + :type number_of_workers: int + :param default_documents: Default documents. + :type default_documents: list[str] + :param net_framework_version: .NET Framework version. + :type net_framework_version: str + :param php_version: Version of PHP. + :type php_version: str + :param python_version: Version of Python. + :type python_version: str + :param node_version: Version of Node.js. + :type node_version: str + :param power_shell_version: Version of PowerShell. + :type power_shell_version: str + :param linux_fx_version: Linux App Framework and version. + :type linux_fx_version: str + :param windows_fx_version: Xenon App Framework and version. + :type windows_fx_version: str + :param request_tracing_enabled: :code:`true` if request tracing is enabled; + otherwise, :code:`false`. + :type request_tracing_enabled: bool + :param request_tracing_expiration_time: Request tracing expiration time. + :type request_tracing_expiration_time: ~datetime.datetime + :param remote_debugging_enabled: :code:`true` if remote debugging is enabled; + otherwise, :code:`false`. + :type remote_debugging_enabled: bool + :param remote_debugging_version: Remote debugging version. + :type remote_debugging_version: str + :param http_logging_enabled: :code:`true` if HTTP logging is enabled; otherwise, + :code:`false`. + :type http_logging_enabled: bool + :param acr_use_managed_identity_creds: Flag to use Managed Identity Creds for ACR pull. + :type acr_use_managed_identity_creds: bool + :param acr_user_managed_identity_id: If using user managed identity, the user managed identity + ClientId. + :type acr_user_managed_identity_id: str + :param logs_directory_size_limit: HTTP logs directory size limit. + :type logs_directory_size_limit: int + :param detailed_error_logging_enabled: :code:`true` if detailed error logging is + enabled; otherwise, :code:`false`. + :type detailed_error_logging_enabled: bool + :param publishing_username: Publishing user name. + :type publishing_username: str + :param app_settings: Application settings. + :type app_settings: list[~azure.mgmt.web.v2021_01_15.models.NameValuePair] + :param connection_strings: Connection strings. + :type connection_strings: list[~azure.mgmt.web.v2021_01_15.models.ConnStringInfo] + :ivar machine_key: Site MachineKey. + :vartype machine_key: ~azure.mgmt.web.v2021_01_15.models.SiteMachineKey + :param handler_mappings: Handler mappings. + :type handler_mappings: list[~azure.mgmt.web.v2021_01_15.models.HandlerMapping] + :param document_root: Document root. + :type document_root: str + :param scm_type: SCM type. Possible values include: "None", "Dropbox", "Tfs", "LocalGit", + "GitHub", "CodePlexGit", "CodePlexHg", "BitbucketGit", "BitbucketHg", "ExternalGit", + "ExternalHg", "OneDrive", "VSO", "VSTSRM". + :type scm_type: str or ~azure.mgmt.web.v2021_01_15.models.ScmType + :param use32_bit_worker_process: :code:`true` to use 32-bit worker process; + otherwise, :code:`false`. + :type use32_bit_worker_process: bool + :param web_sockets_enabled: :code:`true` if WebSocket is enabled; otherwise, + :code:`false`. + :type web_sockets_enabled: bool + :param always_on: :code:`true` if Always On is enabled; otherwise, + :code:`false`. + :type always_on: bool + :param java_version: Java version. + :type java_version: str + :param java_container: Java container. + :type java_container: str + :param java_container_version: Java container version. + :type java_container_version: str + :param app_command_line: App command line to launch. + :type app_command_line: str + :param managed_pipeline_mode: Managed pipeline mode. Possible values include: "Integrated", + "Classic". + :type managed_pipeline_mode: str or ~azure.mgmt.web.v2021_01_15.models.ManagedPipelineMode + :param virtual_applications: Virtual applications. + :type virtual_applications: list[~azure.mgmt.web.v2021_01_15.models.VirtualApplication] + :param load_balancing: Site load balancing. Possible values include: "WeightedRoundRobin", + "LeastRequests", "LeastResponseTime", "WeightedTotalTraffic", "RequestHash", + "PerSiteRoundRobin". + :type load_balancing: str or ~azure.mgmt.web.v2021_01_15.models.SiteLoadBalancing + :param experiments: This is work around for polymorphic types. + :type experiments: ~azure.mgmt.web.v2021_01_15.models.Experiments + :param limits: Site limits. + :type limits: ~azure.mgmt.web.v2021_01_15.models.SiteLimits + :param auto_heal_enabled: :code:`true` if Auto Heal is enabled; otherwise, + :code:`false`. + :type auto_heal_enabled: bool + :param auto_heal_rules: Auto Heal rules. + :type auto_heal_rules: ~azure.mgmt.web.v2021_01_15.models.AutoHealRules + :param tracing_options: Tracing options. + :type tracing_options: str + :param vnet_name: Virtual Network name. + :type vnet_name: str + :param vnet_route_all_enabled: Virtual Network Route All enabled. This causes all outbound + traffic to have Virtual Network Security Groups and User Defined Routes applied. + :type vnet_route_all_enabled: bool + :param vnet_private_ports_count: The number of private ports assigned to this app. These will + be assigned dynamically on runtime. + :type vnet_private_ports_count: int + :param cors: Cross-Origin Resource Sharing (CORS) settings. + :type cors: ~azure.mgmt.web.v2021_01_15.models.CorsSettings + :param push: Push endpoint settings. + :type push: ~azure.mgmt.web.v2021_01_15.models.PushSettings + :param api_definition: Information about the formal API definition for the app. + :type api_definition: ~azure.mgmt.web.v2021_01_15.models.ApiDefinitionInfo + :param api_management_config: Azure API management settings linked to the app. + :type api_management_config: ~azure.mgmt.web.v2021_01_15.models.ApiManagementConfig + :param auto_swap_slot_name: Auto-swap slot name. + :type auto_swap_slot_name: str + :param local_my_sql_enabled: :code:`true` to enable local MySQL; otherwise, + :code:`false`. + :type local_my_sql_enabled: bool + :param managed_service_identity_id: Managed Service Identity Id. + :type managed_service_identity_id: int + :param x_managed_service_identity_id: Explicit Managed Service Identity Id. + :type x_managed_service_identity_id: int + :param key_vault_reference_identity: Identity to use for Key Vault Reference authentication. + :type key_vault_reference_identity: str + :param ip_security_restrictions: IP security restrictions for main. + :type ip_security_restrictions: list[~azure.mgmt.web.v2021_01_15.models.IpSecurityRestriction] + :param scm_ip_security_restrictions: IP security restrictions for scm. + :type scm_ip_security_restrictions: + list[~azure.mgmt.web.v2021_01_15.models.IpSecurityRestriction] + :param scm_ip_security_restrictions_use_main: IP security restrictions for scm to use main. + :type scm_ip_security_restrictions_use_main: bool + :param http20_enabled: Http20Enabled: configures a web site to allow clients to connect over + http2.0. + :type http20_enabled: bool + :param min_tls_version: MinTlsVersion: configures the minimum version of TLS required for SSL + requests. Possible values include: "1.0", "1.1", "1.2". + :type min_tls_version: str or ~azure.mgmt.web.v2021_01_15.models.SupportedTlsVersions + :param scm_min_tls_version: ScmMinTlsVersion: configures the minimum version of TLS required + for SSL requests for SCM site. Possible values include: "1.0", "1.1", "1.2". + :type scm_min_tls_version: str or ~azure.mgmt.web.v2021_01_15.models.SupportedTlsVersions + :param ftps_state: State of FTP / FTPS service. Possible values include: "AllAllowed", + "FtpsOnly", "Disabled". + :type ftps_state: str or ~azure.mgmt.web.v2021_01_15.models.FtpsState + :param pre_warmed_instance_count: Number of preWarmed instances. + This setting only applies to the Consumption and Elastic Plans. + :type pre_warmed_instance_count: int + :param function_app_scale_limit: Maximum number of workers that a site can scale out to. + This setting only applies to the Consumption and Elastic Premium Plans. + :type function_app_scale_limit: int + :param health_check_path: Health check path. + :type health_check_path: str + :param functions_runtime_scale_monitoring_enabled: Gets or sets a value indicating whether + functions runtime scale monitoring is enabled. When enabled, + the ScaleController will not monitor event sources directly, but will instead call to the + runtime to get scale status. + :type functions_runtime_scale_monitoring_enabled: bool + :param website_time_zone: Sets the time zone a site uses for generating timestamps. Compatible + with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence + over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a + quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, + expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows + NT\CurrentVersion\Time Zones. + :type website_time_zone: str + :param minimum_elastic_instance_count: Number of minimum instance count for a site + This setting only applies to the Elastic Plans. + :type minimum_elastic_instance_count: int + :param azure_storage_accounts: List of Azure Storage Accounts. + :type azure_storage_accounts: dict[str, + ~azure.mgmt.web.v2021_01_15.models.AzureStorageInfoValue] + :param public_network_access: Property to allow or block all public traffic. + :type public_network_access: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'machine_key': {'readonly': True}, + 'pre_warmed_instance_count': {'maximum': 10, 'minimum': 0}, + 'function_app_scale_limit': {'minimum': 0}, + 'minimum_elastic_instance_count': {'maximum': 20, 'minimum': 0}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'number_of_workers': {'key': 'properties.numberOfWorkers', 'type': 'int'}, + 'default_documents': {'key': 'properties.defaultDocuments', 'type': '[str]'}, + 'net_framework_version': {'key': 'properties.netFrameworkVersion', 'type': 'str'}, + 'php_version': {'key': 'properties.phpVersion', 'type': 'str'}, + 'python_version': {'key': 'properties.pythonVersion', 'type': 'str'}, + 'node_version': {'key': 'properties.nodeVersion', 'type': 'str'}, + 'power_shell_version': {'key': 'properties.powerShellVersion', 'type': 'str'}, + 'linux_fx_version': {'key': 'properties.linuxFxVersion', 'type': 'str'}, + 'windows_fx_version': {'key': 'properties.windowsFxVersion', 'type': 'str'}, + 'request_tracing_enabled': {'key': 'properties.requestTracingEnabled', 'type': 'bool'}, + 'request_tracing_expiration_time': {'key': 'properties.requestTracingExpirationTime', 'type': 'iso-8601'}, + 'remote_debugging_enabled': {'key': 'properties.remoteDebuggingEnabled', 'type': 'bool'}, + 'remote_debugging_version': {'key': 'properties.remoteDebuggingVersion', 'type': 'str'}, + 'http_logging_enabled': {'key': 'properties.httpLoggingEnabled', 'type': 'bool'}, + 'acr_use_managed_identity_creds': {'key': 'properties.acrUseManagedIdentityCreds', 'type': 'bool'}, + 'acr_user_managed_identity_id': {'key': 'properties.acrUserManagedIdentityID', 'type': 'str'}, + 'logs_directory_size_limit': {'key': 'properties.logsDirectorySizeLimit', 'type': 'int'}, + 'detailed_error_logging_enabled': {'key': 'properties.detailedErrorLoggingEnabled', 'type': 'bool'}, + 'publishing_username': {'key': 'properties.publishingUsername', 'type': 'str'}, + 'app_settings': {'key': 'properties.appSettings', 'type': '[NameValuePair]'}, + 'connection_strings': {'key': 'properties.connectionStrings', 'type': '[ConnStringInfo]'}, + 'machine_key': {'key': 'properties.machineKey', 'type': 'SiteMachineKey'}, + 'handler_mappings': {'key': 'properties.handlerMappings', 'type': '[HandlerMapping]'}, + 'document_root': {'key': 'properties.documentRoot', 'type': 'str'}, + 'scm_type': {'key': 'properties.scmType', 'type': 'str'}, + 'use32_bit_worker_process': {'key': 'properties.use32BitWorkerProcess', 'type': 'bool'}, + 'web_sockets_enabled': {'key': 'properties.webSocketsEnabled', 'type': 'bool'}, + 'always_on': {'key': 'properties.alwaysOn', 'type': 'bool'}, + 'java_version': {'key': 'properties.javaVersion', 'type': 'str'}, + 'java_container': {'key': 'properties.javaContainer', 'type': 'str'}, + 'java_container_version': {'key': 'properties.javaContainerVersion', 'type': 'str'}, + 'app_command_line': {'key': 'properties.appCommandLine', 'type': 'str'}, + 'managed_pipeline_mode': {'key': 'properties.managedPipelineMode', 'type': 'str'}, + 'virtual_applications': {'key': 'properties.virtualApplications', 'type': '[VirtualApplication]'}, + 'load_balancing': {'key': 'properties.loadBalancing', 'type': 'str'}, + 'experiments': {'key': 'properties.experiments', 'type': 'Experiments'}, + 'limits': {'key': 'properties.limits', 'type': 'SiteLimits'}, + 'auto_heal_enabled': {'key': 'properties.autoHealEnabled', 'type': 'bool'}, + 'auto_heal_rules': {'key': 'properties.autoHealRules', 'type': 'AutoHealRules'}, + 'tracing_options': {'key': 'properties.tracingOptions', 'type': 'str'}, + 'vnet_name': {'key': 'properties.vnetName', 'type': 'str'}, + 'vnet_route_all_enabled': {'key': 'properties.vnetRouteAllEnabled', 'type': 'bool'}, + 'vnet_private_ports_count': {'key': 'properties.vnetPrivatePortsCount', 'type': 'int'}, + 'cors': {'key': 'properties.cors', 'type': 'CorsSettings'}, + 'push': {'key': 'properties.push', 'type': 'PushSettings'}, + 'api_definition': {'key': 'properties.apiDefinition', 'type': 'ApiDefinitionInfo'}, + 'api_management_config': {'key': 'properties.apiManagementConfig', 'type': 'ApiManagementConfig'}, + 'auto_swap_slot_name': {'key': 'properties.autoSwapSlotName', 'type': 'str'}, + 'local_my_sql_enabled': {'key': 'properties.localMySqlEnabled', 'type': 'bool'}, + 'managed_service_identity_id': {'key': 'properties.managedServiceIdentityId', 'type': 'int'}, + 'x_managed_service_identity_id': {'key': 'properties.xManagedServiceIdentityId', 'type': 'int'}, + 'key_vault_reference_identity': {'key': 'properties.keyVaultReferenceIdentity', 'type': 'str'}, + 'ip_security_restrictions': {'key': 'properties.ipSecurityRestrictions', 'type': '[IpSecurityRestriction]'}, + 'scm_ip_security_restrictions': {'key': 'properties.scmIpSecurityRestrictions', 'type': '[IpSecurityRestriction]'}, + 'scm_ip_security_restrictions_use_main': {'key': 'properties.scmIpSecurityRestrictionsUseMain', 'type': 'bool'}, + 'http20_enabled': {'key': 'properties.http20Enabled', 'type': 'bool'}, + 'min_tls_version': {'key': 'properties.minTlsVersion', 'type': 'str'}, + 'scm_min_tls_version': {'key': 'properties.scmMinTlsVersion', 'type': 'str'}, + 'ftps_state': {'key': 'properties.ftpsState', 'type': 'str'}, + 'pre_warmed_instance_count': {'key': 'properties.preWarmedInstanceCount', 'type': 'int'}, + 'function_app_scale_limit': {'key': 'properties.functionAppScaleLimit', 'type': 'int'}, + 'health_check_path': {'key': 'properties.healthCheckPath', 'type': 'str'}, + 'functions_runtime_scale_monitoring_enabled': {'key': 'properties.functionsRuntimeScaleMonitoringEnabled', 'type': 'bool'}, + 'website_time_zone': {'key': 'properties.websiteTimeZone', 'type': 'str'}, + 'minimum_elastic_instance_count': {'key': 'properties.minimumElasticInstanceCount', 'type': 'int'}, + 'azure_storage_accounts': {'key': 'properties.azureStorageAccounts', 'type': '{AzureStorageInfoValue}'}, + 'public_network_access': {'key': 'properties.publicNetworkAccess', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + number_of_workers: Optional[int] = None, + default_documents: Optional[List[str]] = None, + net_framework_version: Optional[str] = "v4.6", + php_version: Optional[str] = None, + python_version: Optional[str] = None, + node_version: Optional[str] = None, + power_shell_version: Optional[str] = None, + linux_fx_version: Optional[str] = None, + windows_fx_version: Optional[str] = None, + request_tracing_enabled: Optional[bool] = None, + request_tracing_expiration_time: Optional[datetime.datetime] = None, + remote_debugging_enabled: Optional[bool] = None, + remote_debugging_version: Optional[str] = None, + http_logging_enabled: Optional[bool] = None, + acr_use_managed_identity_creds: Optional[bool] = None, + acr_user_managed_identity_id: Optional[str] = None, + logs_directory_size_limit: Optional[int] = None, + detailed_error_logging_enabled: Optional[bool] = None, + publishing_username: Optional[str] = None, + app_settings: Optional[List["NameValuePair"]] = None, + connection_strings: Optional[List["ConnStringInfo"]] = None, + handler_mappings: Optional[List["HandlerMapping"]] = None, + document_root: Optional[str] = None, + scm_type: Optional[Union[str, "ScmType"]] = None, + use32_bit_worker_process: Optional[bool] = None, + web_sockets_enabled: Optional[bool] = None, + always_on: Optional[bool] = None, + java_version: Optional[str] = None, + java_container: Optional[str] = None, + java_container_version: Optional[str] = None, + app_command_line: Optional[str] = None, + managed_pipeline_mode: Optional[Union[str, "ManagedPipelineMode"]] = None, + virtual_applications: Optional[List["VirtualApplication"]] = None, + load_balancing: Optional[Union[str, "SiteLoadBalancing"]] = None, + experiments: Optional["Experiments"] = None, + limits: Optional["SiteLimits"] = None, + auto_heal_enabled: Optional[bool] = None, + auto_heal_rules: Optional["AutoHealRules"] = None, + tracing_options: Optional[str] = None, + vnet_name: Optional[str] = None, + vnet_route_all_enabled: Optional[bool] = None, + vnet_private_ports_count: Optional[int] = None, + cors: Optional["CorsSettings"] = None, + push: Optional["PushSettings"] = None, + api_definition: Optional["ApiDefinitionInfo"] = None, + api_management_config: Optional["ApiManagementConfig"] = None, + auto_swap_slot_name: Optional[str] = None, + local_my_sql_enabled: Optional[bool] = False, + managed_service_identity_id: Optional[int] = None, + x_managed_service_identity_id: Optional[int] = None, + key_vault_reference_identity: Optional[str] = None, + ip_security_restrictions: Optional[List["IpSecurityRestriction"]] = None, + scm_ip_security_restrictions: Optional[List["IpSecurityRestriction"]] = None, + scm_ip_security_restrictions_use_main: Optional[bool] = None, + http20_enabled: Optional[bool] = True, + min_tls_version: Optional[Union[str, "SupportedTlsVersions"]] = None, + scm_min_tls_version: Optional[Union[str, "SupportedTlsVersions"]] = None, + ftps_state: Optional[Union[str, "FtpsState"]] = None, + pre_warmed_instance_count: Optional[int] = None, + function_app_scale_limit: Optional[int] = None, + health_check_path: Optional[str] = None, + functions_runtime_scale_monitoring_enabled: Optional[bool] = None, + website_time_zone: Optional[str] = None, + minimum_elastic_instance_count: Optional[int] = None, + azure_storage_accounts: Optional[Dict[str, "AzureStorageInfoValue"]] = None, + public_network_access: Optional[str] = None, + **kwargs + ): + super(SiteConfigResource, self).__init__(kind=kind, **kwargs) + self.number_of_workers = number_of_workers + self.default_documents = default_documents + self.net_framework_version = net_framework_version + self.php_version = php_version + self.python_version = python_version + self.node_version = node_version + self.power_shell_version = power_shell_version + self.linux_fx_version = linux_fx_version + self.windows_fx_version = windows_fx_version + self.request_tracing_enabled = request_tracing_enabled + self.request_tracing_expiration_time = request_tracing_expiration_time + self.remote_debugging_enabled = remote_debugging_enabled + self.remote_debugging_version = remote_debugging_version + self.http_logging_enabled = http_logging_enabled + self.acr_use_managed_identity_creds = acr_use_managed_identity_creds + self.acr_user_managed_identity_id = acr_user_managed_identity_id + self.logs_directory_size_limit = logs_directory_size_limit + self.detailed_error_logging_enabled = detailed_error_logging_enabled + self.publishing_username = publishing_username + self.app_settings = app_settings + self.connection_strings = connection_strings + self.machine_key = None + self.handler_mappings = handler_mappings + self.document_root = document_root + self.scm_type = scm_type + self.use32_bit_worker_process = use32_bit_worker_process + self.web_sockets_enabled = web_sockets_enabled + self.always_on = always_on + self.java_version = java_version + self.java_container = java_container + self.java_container_version = java_container_version + self.app_command_line = app_command_line + self.managed_pipeline_mode = managed_pipeline_mode + self.virtual_applications = virtual_applications + self.load_balancing = load_balancing + self.experiments = experiments + self.limits = limits + self.auto_heal_enabled = auto_heal_enabled + self.auto_heal_rules = auto_heal_rules + self.tracing_options = tracing_options + self.vnet_name = vnet_name + self.vnet_route_all_enabled = vnet_route_all_enabled + self.vnet_private_ports_count = vnet_private_ports_count + self.cors = cors + self.push = push + self.api_definition = api_definition + self.api_management_config = api_management_config + self.auto_swap_slot_name = auto_swap_slot_name + self.local_my_sql_enabled = local_my_sql_enabled + self.managed_service_identity_id = managed_service_identity_id + self.x_managed_service_identity_id = x_managed_service_identity_id + self.key_vault_reference_identity = key_vault_reference_identity + self.ip_security_restrictions = ip_security_restrictions + self.scm_ip_security_restrictions = scm_ip_security_restrictions + self.scm_ip_security_restrictions_use_main = scm_ip_security_restrictions_use_main + self.http20_enabled = http20_enabled + self.min_tls_version = min_tls_version + self.scm_min_tls_version = scm_min_tls_version + self.ftps_state = ftps_state + self.pre_warmed_instance_count = pre_warmed_instance_count + self.function_app_scale_limit = function_app_scale_limit + self.health_check_path = health_check_path + self.functions_runtime_scale_monitoring_enabled = functions_runtime_scale_monitoring_enabled + self.website_time_zone = website_time_zone + self.minimum_elastic_instance_count = minimum_elastic_instance_count + self.azure_storage_accounts = azure_storage_accounts + self.public_network_access = public_network_access + + +class SiteConfigResourceCollection(msrest.serialization.Model): + """Collection of site configurations. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.SiteConfigResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SiteConfigResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["SiteConfigResource"], + **kwargs + ): + super(SiteConfigResourceCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class SiteConfigurationSnapshotInfo(ProxyOnlyResource): + """A snapshot of a web app configuration. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar time: The time the snapshot was taken. + :vartype time: ~datetime.datetime + :ivar snapshot_id: The id of the snapshot. + :vartype snapshot_id: int + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'time': {'readonly': True}, + 'snapshot_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'time': {'key': 'properties.time', 'type': 'iso-8601'}, + 'snapshot_id': {'key': 'properties.snapshotId', 'type': 'int'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(SiteConfigurationSnapshotInfo, self).__init__(kind=kind, **kwargs) + self.time = None + self.snapshot_id = None + + +class SiteConfigurationSnapshotInfoCollection(msrest.serialization.Model): + """Collection of metadata for the app configuration snapshots that can be restored. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.SiteConfigurationSnapshotInfo] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SiteConfigurationSnapshotInfo]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["SiteConfigurationSnapshotInfo"], + **kwargs + ): + super(SiteConfigurationSnapshotInfoCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class SiteExtensionInfo(ProxyOnlyResource): + """Site Extension Information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param extension_id: Site extension ID. + :type extension_id: str + :param title: + :type title: str + :param extension_type: Site extension type. Possible values include: "Gallery", "WebRoot". + :type extension_type: str or ~azure.mgmt.web.v2021_01_15.models.SiteExtensionType + :param summary: Summary description. + :type summary: str + :param description: Detailed description. + :type description: str + :param version: Version information. + :type version: str + :param extension_url: Extension URL. + :type extension_url: str + :param project_url: Project URL. + :type project_url: str + :param icon_url: Icon URL. + :type icon_url: str + :param license_url: License URL. + :type license_url: str + :param feed_url: Feed URL. + :type feed_url: str + :param authors: List of authors. + :type authors: list[str] + :param installer_command_line_params: Installer command line parameters. + :type installer_command_line_params: str + :param published_date_time: Published timestamp. + :type published_date_time: ~datetime.datetime + :param download_count: Count of downloads. + :type download_count: int + :param local_is_latest_version: :code:`true` if the local version is the latest + version; :code:`false` otherwise. + :type local_is_latest_version: bool + :param local_path: Local path. + :type local_path: str + :param installed_date_time: Installed timestamp. + :type installed_date_time: ~datetime.datetime + :param provisioning_state: Provisioning state. + :type provisioning_state: str + :param comment: Site Extension comment. + :type comment: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'extension_id': {'key': 'properties.extension_id', 'type': 'str'}, + 'title': {'key': 'properties.title', 'type': 'str'}, + 'extension_type': {'key': 'properties.extension_type', 'type': 'str'}, + 'summary': {'key': 'properties.summary', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'version': {'key': 'properties.version', 'type': 'str'}, + 'extension_url': {'key': 'properties.extension_url', 'type': 'str'}, + 'project_url': {'key': 'properties.project_url', 'type': 'str'}, + 'icon_url': {'key': 'properties.icon_url', 'type': 'str'}, + 'license_url': {'key': 'properties.license_url', 'type': 'str'}, + 'feed_url': {'key': 'properties.feed_url', 'type': 'str'}, + 'authors': {'key': 'properties.authors', 'type': '[str]'}, + 'installer_command_line_params': {'key': 'properties.installer_command_line_params', 'type': 'str'}, + 'published_date_time': {'key': 'properties.published_date_time', 'type': 'iso-8601'}, + 'download_count': {'key': 'properties.download_count', 'type': 'int'}, + 'local_is_latest_version': {'key': 'properties.local_is_latest_version', 'type': 'bool'}, + 'local_path': {'key': 'properties.local_path', 'type': 'str'}, + 'installed_date_time': {'key': 'properties.installed_date_time', 'type': 'iso-8601'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'comment': {'key': 'properties.comment', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + extension_id: Optional[str] = None, + title: Optional[str] = None, + extension_type: Optional[Union[str, "SiteExtensionType"]] = None, + summary: Optional[str] = None, + description: Optional[str] = None, + version: Optional[str] = None, + extension_url: Optional[str] = None, + project_url: Optional[str] = None, + icon_url: Optional[str] = None, + license_url: Optional[str] = None, + feed_url: Optional[str] = None, + authors: Optional[List[str]] = None, + installer_command_line_params: Optional[str] = None, + published_date_time: Optional[datetime.datetime] = None, + download_count: Optional[int] = None, + local_is_latest_version: Optional[bool] = None, + local_path: Optional[str] = None, + installed_date_time: Optional[datetime.datetime] = None, + provisioning_state: Optional[str] = None, + comment: Optional[str] = None, + **kwargs + ): + super(SiteExtensionInfo, self).__init__(kind=kind, **kwargs) + self.extension_id = extension_id + self.title = title + self.extension_type = extension_type + self.summary = summary + self.description = description + self.version = version + self.extension_url = extension_url + self.project_url = project_url + self.icon_url = icon_url + self.license_url = license_url + self.feed_url = feed_url + self.authors = authors + self.installer_command_line_params = installer_command_line_params + self.published_date_time = published_date_time + self.download_count = download_count + self.local_is_latest_version = local_is_latest_version + self.local_path = local_path + self.installed_date_time = installed_date_time + self.provisioning_state = provisioning_state + self.comment = comment + + +class SiteExtensionInfoCollection(msrest.serialization.Model): + """Collection of Kudu site extension information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.SiteExtensionInfo] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SiteExtensionInfo]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["SiteExtensionInfo"], + **kwargs + ): + super(SiteExtensionInfoCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class SiteLimits(msrest.serialization.Model): + """Metric limits set on an app. + + :param max_percentage_cpu: Maximum allowed CPU usage percentage. + :type max_percentage_cpu: float + :param max_memory_in_mb: Maximum allowed memory usage in MB. + :type max_memory_in_mb: long + :param max_disk_size_in_mb: Maximum allowed disk size usage in MB. + :type max_disk_size_in_mb: long + """ + + _attribute_map = { + 'max_percentage_cpu': {'key': 'maxPercentageCpu', 'type': 'float'}, + 'max_memory_in_mb': {'key': 'maxMemoryInMb', 'type': 'long'}, + 'max_disk_size_in_mb': {'key': 'maxDiskSizeInMb', 'type': 'long'}, + } + + def __init__( + self, + *, + max_percentage_cpu: Optional[float] = None, + max_memory_in_mb: Optional[int] = None, + max_disk_size_in_mb: Optional[int] = None, + **kwargs + ): + super(SiteLimits, self).__init__(**kwargs) + self.max_percentage_cpu = max_percentage_cpu + self.max_memory_in_mb = max_memory_in_mb + self.max_disk_size_in_mb = max_disk_size_in_mb + + +class SiteLogsConfig(ProxyOnlyResource): + """Configuration of App Service site logs. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param application_logs: Application logs configuration. + :type application_logs: ~azure.mgmt.web.v2021_01_15.models.ApplicationLogsConfig + :param http_logs: HTTP logs configuration. + :type http_logs: ~azure.mgmt.web.v2021_01_15.models.HttpLogsConfig + :param failed_requests_tracing: Failed requests tracing configuration. + :type failed_requests_tracing: ~azure.mgmt.web.v2021_01_15.models.EnabledConfig + :param detailed_error_messages: Detailed error messages configuration. + :type detailed_error_messages: ~azure.mgmt.web.v2021_01_15.models.EnabledConfig + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'application_logs': {'key': 'properties.applicationLogs', 'type': 'ApplicationLogsConfig'}, + 'http_logs': {'key': 'properties.httpLogs', 'type': 'HttpLogsConfig'}, + 'failed_requests_tracing': {'key': 'properties.failedRequestsTracing', 'type': 'EnabledConfig'}, + 'detailed_error_messages': {'key': 'properties.detailedErrorMessages', 'type': 'EnabledConfig'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + application_logs: Optional["ApplicationLogsConfig"] = None, + http_logs: Optional["HttpLogsConfig"] = None, + failed_requests_tracing: Optional["EnabledConfig"] = None, + detailed_error_messages: Optional["EnabledConfig"] = None, + **kwargs + ): + super(SiteLogsConfig, self).__init__(kind=kind, **kwargs) + self.application_logs = application_logs + self.http_logs = http_logs + self.failed_requests_tracing = failed_requests_tracing + self.detailed_error_messages = detailed_error_messages + + +class SiteMachineKey(msrest.serialization.Model): + """MachineKey of an app. + + :param validation: MachineKey validation. + :type validation: str + :param validation_key: Validation key. + :type validation_key: str + :param decryption: Algorithm used for decryption. + :type decryption: str + :param decryption_key: Decryption key. + :type decryption_key: str + """ + + _attribute_map = { + 'validation': {'key': 'validation', 'type': 'str'}, + 'validation_key': {'key': 'validationKey', 'type': 'str'}, + 'decryption': {'key': 'decryption', 'type': 'str'}, + 'decryption_key': {'key': 'decryptionKey', 'type': 'str'}, + } + + def __init__( + self, + *, + validation: Optional[str] = None, + validation_key: Optional[str] = None, + decryption: Optional[str] = None, + decryption_key: Optional[str] = None, + **kwargs + ): + super(SiteMachineKey, self).__init__(**kwargs) + self.validation = validation + self.validation_key = validation_key + self.decryption = decryption + self.decryption_key = decryption_key + + +class SitePatchResource(ProxyOnlyResource): + """ARM resource for a site. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param identity: Managed service identity. + :type identity: ~azure.mgmt.web.v2021_01_15.models.ManagedServiceIdentity + :ivar state: Current state of the app. + :vartype state: str + :ivar host_names: Hostnames associated with the app. + :vartype host_names: list[str] + :ivar repository_site_name: Name of the repository site. + :vartype repository_site_name: str + :ivar usage_state: State indicating whether the app has exceeded its quota usage. Read-only. + Possible values include: "Normal", "Exceeded". + :vartype usage_state: str or ~azure.mgmt.web.v2021_01_15.models.UsageState + :param enabled: :code:`true` if the app is enabled; otherwise, + :code:`false`. Setting this value to false disables the app (takes the app + offline). + :type enabled: bool + :ivar enabled_host_names: Enabled hostnames for the app.Hostnames need to be assigned (see + HostNames) AND enabled. Otherwise, + the app is not served on those hostnames. + :vartype enabled_host_names: list[str] + :ivar availability_state: Management information availability state for the app. Possible + values include: "Normal", "Limited", "DisasterRecoveryMode". + :vartype availability_state: str or ~azure.mgmt.web.v2021_01_15.models.SiteAvailabilityState + :param host_name_ssl_states: Hostname SSL states are used to manage the SSL bindings for app's + hostnames. + :type host_name_ssl_states: list[~azure.mgmt.web.v2021_01_15.models.HostNameSslState] + :param server_farm_id: Resource ID of the associated App Service plan, formatted as: + "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". + :type server_farm_id: str + :param reserved: :code:`true` if reserved; otherwise, :code:`false`. + :type reserved: bool + :param is_xenon: Obsolete: Hyper-V sandbox. + :type is_xenon: bool + :param hyper_v: Hyper-V sandbox. + :type hyper_v: bool + :ivar last_modified_time_utc: Last time the app was modified, in UTC. Read-only. + :vartype last_modified_time_utc: ~datetime.datetime + :param site_config: Configuration of the app. + :type site_config: ~azure.mgmt.web.v2021_01_15.models.SiteConfig + :ivar traffic_manager_host_names: Azure Traffic Manager hostnames associated with the app. + Read-only. + :vartype traffic_manager_host_names: list[str] + :param scm_site_also_stopped: :code:`true` to stop SCM (KUDU) site when the app is + stopped; otherwise, :code:`false`. The default is :code:`false`. + :type scm_site_also_stopped: bool + :ivar target_swap_slot: Specifies which deployment slot this app will swap into. Read-only. + :vartype target_swap_slot: str + :param hosting_environment_profile: App Service Environment to use for the app. + :type hosting_environment_profile: ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentProfile + :param client_affinity_enabled: :code:`true` to enable client affinity; + :code:`false` to stop sending session affinity cookies, which route client + requests in the same session to the same instance. Default is :code:`true`. + :type client_affinity_enabled: bool + :param client_cert_enabled: :code:`true` to enable client certificate + authentication (TLS mutual authentication); otherwise, :code:`false`. Default is + :code:`false`. + :type client_cert_enabled: bool + :param client_cert_mode: This composes with ClientCertEnabled setting. + + + * ClientCertEnabled: false means ClientCert is ignored. + * ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. + * ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or + accepted. Possible values include: "Required", "Optional", "OptionalInteractiveUser". + :type client_cert_mode: str or ~azure.mgmt.web.v2021_01_15.models.ClientCertMode + :param client_cert_exclusion_paths: client certificate authentication comma-separated exclusion + paths. + :type client_cert_exclusion_paths: str + :param host_names_disabled: :code:`true` to disable the public hostnames of the + app; otherwise, :code:`false`. + If :code:`true`, the app is only accessible via API management process. + :type host_names_disabled: bool + :param custom_domain_verification_id: Unique identifier that verifies the custom domains + assigned to the app. Customer will add this id to a txt record for verification. + :type custom_domain_verification_id: str + :ivar outbound_ip_addresses: List of IP addresses that the app uses for outbound connections + (e.g. database access). Includes VIPs from tenants that site can be hosted with current + settings. Read-only. + :vartype outbound_ip_addresses: str + :ivar possible_outbound_ip_addresses: List of IP addresses that the app uses for outbound + connections (e.g. database access). Includes VIPs from all tenants except dataComponent. + Read-only. + :vartype possible_outbound_ip_addresses: str + :param container_size: Size of the function container. + :type container_size: int + :param daily_memory_time_quota: Maximum allowed daily memory-time quota (applicable on dynamic + apps only). + :type daily_memory_time_quota: int + :ivar suspended_till: App suspended till in case memory-time quota is exceeded. + :vartype suspended_till: ~datetime.datetime + :ivar max_number_of_workers: Maximum number of workers. + This only applies to Functions container. + :vartype max_number_of_workers: int + :param cloning_info: If specified during app creation, the app is cloned from a source app. + :type cloning_info: ~azure.mgmt.web.v2021_01_15.models.CloningInfo + :ivar resource_group: Name of the resource group the app belongs to. Read-only. + :vartype resource_group: str + :ivar is_default_container: :code:`true` if the app is a default container; + otherwise, :code:`false`. + :vartype is_default_container: bool + :ivar default_host_name: Default hostname of the app. Read-only. + :vartype default_host_name: str + :ivar slot_swap_status: Status of the last deployment slot swap operation. + :vartype slot_swap_status: ~azure.mgmt.web.v2021_01_15.models.SlotSwapStatus + :param https_only: HttpsOnly: configures a web site to accept only https requests. Issues + redirect for + http requests. + :type https_only: bool + :param redundancy_mode: Site redundancy mode. Possible values include: "None", "Manual", + "Failover", "ActiveActive", "GeoRedundant". + :type redundancy_mode: str or ~azure.mgmt.web.v2021_01_15.models.RedundancyMode + :ivar in_progress_operation_id: Specifies an operation id if this site has a pending operation. + :vartype in_progress_operation_id: str + :param storage_account_required: Checks if Customer provided storage account is required. + :type storage_account_required: bool + :param key_vault_reference_identity: Identity to use for Key Vault Reference authentication. + :type key_vault_reference_identity: str + :param virtual_network_subnet_id: Azure Resource Manager ID of the Virtual network and subnet + to be joined by Regional VNET Integration. + This must be of the form + /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}. + :type virtual_network_subnet_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'state': {'readonly': True}, + 'host_names': {'readonly': True}, + 'repository_site_name': {'readonly': True}, + 'usage_state': {'readonly': True}, + 'enabled_host_names': {'readonly': True}, + 'availability_state': {'readonly': True}, + 'last_modified_time_utc': {'readonly': True}, + 'traffic_manager_host_names': {'readonly': True}, + 'target_swap_slot': {'readonly': True}, + 'outbound_ip_addresses': {'readonly': True}, + 'possible_outbound_ip_addresses': {'readonly': True}, + 'suspended_till': {'readonly': True}, + 'max_number_of_workers': {'readonly': True}, + 'resource_group': {'readonly': True}, + 'is_default_container': {'readonly': True}, + 'default_host_name': {'readonly': True}, + 'slot_swap_status': {'readonly': True}, + 'in_progress_operation_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, + 'state': {'key': 'properties.state', 'type': 'str'}, + 'host_names': {'key': 'properties.hostNames', 'type': '[str]'}, + 'repository_site_name': {'key': 'properties.repositorySiteName', 'type': 'str'}, + 'usage_state': {'key': 'properties.usageState', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'enabled_host_names': {'key': 'properties.enabledHostNames', 'type': '[str]'}, + 'availability_state': {'key': 'properties.availabilityState', 'type': 'str'}, + 'host_name_ssl_states': {'key': 'properties.hostNameSslStates', 'type': '[HostNameSslState]'}, + 'server_farm_id': {'key': 'properties.serverFarmId', 'type': 'str'}, + 'reserved': {'key': 'properties.reserved', 'type': 'bool'}, + 'is_xenon': {'key': 'properties.isXenon', 'type': 'bool'}, + 'hyper_v': {'key': 'properties.hyperV', 'type': 'bool'}, + 'last_modified_time_utc': {'key': 'properties.lastModifiedTimeUtc', 'type': 'iso-8601'}, + 'site_config': {'key': 'properties.siteConfig', 'type': 'SiteConfig'}, + 'traffic_manager_host_names': {'key': 'properties.trafficManagerHostNames', 'type': '[str]'}, + 'scm_site_also_stopped': {'key': 'properties.scmSiteAlsoStopped', 'type': 'bool'}, + 'target_swap_slot': {'key': 'properties.targetSwapSlot', 'type': 'str'}, + 'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'}, + 'client_affinity_enabled': {'key': 'properties.clientAffinityEnabled', 'type': 'bool'}, + 'client_cert_enabled': {'key': 'properties.clientCertEnabled', 'type': 'bool'}, + 'client_cert_mode': {'key': 'properties.clientCertMode', 'type': 'str'}, + 'client_cert_exclusion_paths': {'key': 'properties.clientCertExclusionPaths', 'type': 'str'}, + 'host_names_disabled': {'key': 'properties.hostNamesDisabled', 'type': 'bool'}, + 'custom_domain_verification_id': {'key': 'properties.customDomainVerificationId', 'type': 'str'}, + 'outbound_ip_addresses': {'key': 'properties.outboundIpAddresses', 'type': 'str'}, + 'possible_outbound_ip_addresses': {'key': 'properties.possibleOutboundIpAddresses', 'type': 'str'}, + 'container_size': {'key': 'properties.containerSize', 'type': 'int'}, + 'daily_memory_time_quota': {'key': 'properties.dailyMemoryTimeQuota', 'type': 'int'}, + 'suspended_till': {'key': 'properties.suspendedTill', 'type': 'iso-8601'}, + 'max_number_of_workers': {'key': 'properties.maxNumberOfWorkers', 'type': 'int'}, + 'cloning_info': {'key': 'properties.cloningInfo', 'type': 'CloningInfo'}, + 'resource_group': {'key': 'properties.resourceGroup', 'type': 'str'}, + 'is_default_container': {'key': 'properties.isDefaultContainer', 'type': 'bool'}, + 'default_host_name': {'key': 'properties.defaultHostName', 'type': 'str'}, + 'slot_swap_status': {'key': 'properties.slotSwapStatus', 'type': 'SlotSwapStatus'}, + 'https_only': {'key': 'properties.httpsOnly', 'type': 'bool'}, + 'redundancy_mode': {'key': 'properties.redundancyMode', 'type': 'str'}, + 'in_progress_operation_id': {'key': 'properties.inProgressOperationId', 'type': 'str'}, + 'storage_account_required': {'key': 'properties.storageAccountRequired', 'type': 'bool'}, + 'key_vault_reference_identity': {'key': 'properties.keyVaultReferenceIdentity', 'type': 'str'}, + 'virtual_network_subnet_id': {'key': 'properties.virtualNetworkSubnetId', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + identity: Optional["ManagedServiceIdentity"] = None, + enabled: Optional[bool] = None, + host_name_ssl_states: Optional[List["HostNameSslState"]] = None, + server_farm_id: Optional[str] = None, + reserved: Optional[bool] = False, + is_xenon: Optional[bool] = False, + hyper_v: Optional[bool] = False, + site_config: Optional["SiteConfig"] = None, + scm_site_also_stopped: Optional[bool] = False, + hosting_environment_profile: Optional["HostingEnvironmentProfile"] = None, + client_affinity_enabled: Optional[bool] = None, + client_cert_enabled: Optional[bool] = None, + client_cert_mode: Optional[Union[str, "ClientCertMode"]] = None, + client_cert_exclusion_paths: Optional[str] = None, + host_names_disabled: Optional[bool] = None, + custom_domain_verification_id: Optional[str] = None, + container_size: Optional[int] = None, + daily_memory_time_quota: Optional[int] = None, + cloning_info: Optional["CloningInfo"] = None, + https_only: Optional[bool] = None, + redundancy_mode: Optional[Union[str, "RedundancyMode"]] = None, + storage_account_required: Optional[bool] = None, + key_vault_reference_identity: Optional[str] = None, + virtual_network_subnet_id: Optional[str] = None, + **kwargs + ): + super(SitePatchResource, self).__init__(kind=kind, **kwargs) + self.identity = identity + self.state = None + self.host_names = None + self.repository_site_name = None + self.usage_state = None + self.enabled = enabled + self.enabled_host_names = None + self.availability_state = None + self.host_name_ssl_states = host_name_ssl_states + self.server_farm_id = server_farm_id + self.reserved = reserved + self.is_xenon = is_xenon + self.hyper_v = hyper_v + self.last_modified_time_utc = None + self.site_config = site_config + self.traffic_manager_host_names = None + self.scm_site_also_stopped = scm_site_also_stopped + self.target_swap_slot = None + self.hosting_environment_profile = hosting_environment_profile + self.client_affinity_enabled = client_affinity_enabled + self.client_cert_enabled = client_cert_enabled + self.client_cert_mode = client_cert_mode + self.client_cert_exclusion_paths = client_cert_exclusion_paths + self.host_names_disabled = host_names_disabled + self.custom_domain_verification_id = custom_domain_verification_id + self.outbound_ip_addresses = None + self.possible_outbound_ip_addresses = None + self.container_size = container_size + self.daily_memory_time_quota = daily_memory_time_quota + self.suspended_till = None + self.max_number_of_workers = None + self.cloning_info = cloning_info + self.resource_group = None + self.is_default_container = None + self.default_host_name = None + self.slot_swap_status = None + self.https_only = https_only + self.redundancy_mode = redundancy_mode + self.in_progress_operation_id = None + self.storage_account_required = storage_account_required + self.key_vault_reference_identity = key_vault_reference_identity + self.virtual_network_subnet_id = virtual_network_subnet_id + + +class SitePhpErrorLogFlag(ProxyOnlyResource): + """Used for getting PHP error logging flag. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param local_log_errors: Local log_errors setting. + :type local_log_errors: str + :param master_log_errors: Master log_errors setting. + :type master_log_errors: str + :param local_log_errors_max_length: Local log_errors_max_len setting. + :type local_log_errors_max_length: str + :param master_log_errors_max_length: Master log_errors_max_len setting. + :type master_log_errors_max_length: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'local_log_errors': {'key': 'properties.localLogErrors', 'type': 'str'}, + 'master_log_errors': {'key': 'properties.masterLogErrors', 'type': 'str'}, + 'local_log_errors_max_length': {'key': 'properties.localLogErrorsMaxLength', 'type': 'str'}, + 'master_log_errors_max_length': {'key': 'properties.masterLogErrorsMaxLength', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + local_log_errors: Optional[str] = None, + master_log_errors: Optional[str] = None, + local_log_errors_max_length: Optional[str] = None, + master_log_errors_max_length: Optional[str] = None, + **kwargs + ): + super(SitePhpErrorLogFlag, self).__init__(kind=kind, **kwargs) + self.local_log_errors = local_log_errors + self.master_log_errors = master_log_errors + self.local_log_errors_max_length = local_log_errors_max_length + self.master_log_errors_max_length = master_log_errors_max_length + + +class SiteSeal(msrest.serialization.Model): + """Site seal. + + All required parameters must be populated in order to send to Azure. + + :param html: Required. HTML snippet. + :type html: str + """ + + _validation = { + 'html': {'required': True}, + } + + _attribute_map = { + 'html': {'key': 'html', 'type': 'str'}, + } + + def __init__( + self, + *, + html: str, + **kwargs + ): + super(SiteSeal, self).__init__(**kwargs) + self.html = html + + +class SiteSealRequest(msrest.serialization.Model): + """Site seal request. + + :param light_theme: If :code:`true` use the light color theme for site seal; + otherwise, use the default color theme. + :type light_theme: bool + :param locale: Locale of site seal. + :type locale: str + """ + + _attribute_map = { + 'light_theme': {'key': 'lightTheme', 'type': 'bool'}, + 'locale': {'key': 'locale', 'type': 'str'}, + } + + def __init__( + self, + *, + light_theme: Optional[bool] = None, + locale: Optional[str] = None, + **kwargs + ): + super(SiteSealRequest, self).__init__(**kwargs) + self.light_theme = light_theme + self.locale = locale + + +class SiteSourceControl(ProxyOnlyResource): + """Source control configuration for an app. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param repo_url: Repository or source control URL. + :type repo_url: str + :param branch: Name of branch to use for deployment. + :type branch: str + :param is_manual_integration: :code:`true` to limit to manual integration; + :code:`false` to enable continuous integration (which configures webhooks into + online repos like GitHub). + :type is_manual_integration: bool + :param is_git_hub_action: :code:`true` if this is deployed via GitHub action. + :type is_git_hub_action: bool + :param deployment_rollback_enabled: :code:`true` to enable deployment rollback; + otherwise, :code:`false`. + :type deployment_rollback_enabled: bool + :param is_mercurial: :code:`true` for a Mercurial repository; + :code:`false` for a Git repository. + :type is_mercurial: bool + :param git_hub_action_configuration: If GitHub Action is selected, than the associated + configuration. + :type git_hub_action_configuration: + ~azure.mgmt.web.v2021_01_15.models.GitHubActionConfiguration + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'repo_url': {'key': 'properties.repoUrl', 'type': 'str'}, + 'branch': {'key': 'properties.branch', 'type': 'str'}, + 'is_manual_integration': {'key': 'properties.isManualIntegration', 'type': 'bool'}, + 'is_git_hub_action': {'key': 'properties.isGitHubAction', 'type': 'bool'}, + 'deployment_rollback_enabled': {'key': 'properties.deploymentRollbackEnabled', 'type': 'bool'}, + 'is_mercurial': {'key': 'properties.isMercurial', 'type': 'bool'}, + 'git_hub_action_configuration': {'key': 'properties.gitHubActionConfiguration', 'type': 'GitHubActionConfiguration'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + repo_url: Optional[str] = None, + branch: Optional[str] = None, + is_manual_integration: Optional[bool] = None, + is_git_hub_action: Optional[bool] = None, + deployment_rollback_enabled: Optional[bool] = None, + is_mercurial: Optional[bool] = None, + git_hub_action_configuration: Optional["GitHubActionConfiguration"] = None, + **kwargs + ): + super(SiteSourceControl, self).__init__(kind=kind, **kwargs) + self.repo_url = repo_url + self.branch = branch + self.is_manual_integration = is_manual_integration + self.is_git_hub_action = is_git_hub_action + self.deployment_rollback_enabled = deployment_rollback_enabled + self.is_mercurial = is_mercurial + self.git_hub_action_configuration = git_hub_action_configuration + + +class SkuCapacity(msrest.serialization.Model): + """Description of the App Service plan scale options. + + :param minimum: Minimum number of workers for this App Service plan SKU. + :type minimum: int + :param maximum: Maximum number of workers for this App Service plan SKU. + :type maximum: int + :param elastic_maximum: Maximum number of Elastic workers for this App Service plan SKU. + :type elastic_maximum: int + :param default: Default number of workers for this App Service plan SKU. + :type default: int + :param scale_type: Available scale configurations for an App Service plan. + :type scale_type: str + """ + + _attribute_map = { + 'minimum': {'key': 'minimum', 'type': 'int'}, + 'maximum': {'key': 'maximum', 'type': 'int'}, + 'elastic_maximum': {'key': 'elasticMaximum', 'type': 'int'}, + 'default': {'key': 'default', 'type': 'int'}, + 'scale_type': {'key': 'scaleType', 'type': 'str'}, + } + + def __init__( + self, + *, + minimum: Optional[int] = None, + maximum: Optional[int] = None, + elastic_maximum: Optional[int] = None, + default: Optional[int] = None, + scale_type: Optional[str] = None, + **kwargs + ): + super(SkuCapacity, self).__init__(**kwargs) + self.minimum = minimum + self.maximum = maximum + self.elastic_maximum = elastic_maximum + self.default = default + self.scale_type = scale_type + + +class SkuDescription(msrest.serialization.Model): + """Description of a SKU for a scalable resource. + + :param name: Name of the resource SKU. + :type name: str + :param tier: Service tier of the resource SKU. + :type tier: str + :param size: Size specifier of the resource SKU. + :type size: str + :param family: Family code of the resource SKU. + :type family: str + :param capacity: Current number of instances assigned to the resource. + :type capacity: int + :param sku_capacity: Min, max, and default scale values of the SKU. + :type sku_capacity: ~azure.mgmt.web.v2021_01_15.models.SkuCapacity + :param locations: Locations of the SKU. + :type locations: list[str] + :param capabilities: Capabilities of the SKU, e.g., is traffic manager enabled?. + :type capabilities: list[~azure.mgmt.web.v2021_01_15.models.Capability] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'tier': {'key': 'tier', 'type': 'str'}, + 'size': {'key': 'size', 'type': 'str'}, + 'family': {'key': 'family', 'type': 'str'}, + 'capacity': {'key': 'capacity', 'type': 'int'}, + 'sku_capacity': {'key': 'skuCapacity', 'type': 'SkuCapacity'}, + 'locations': {'key': 'locations', 'type': '[str]'}, + 'capabilities': {'key': 'capabilities', 'type': '[Capability]'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + tier: Optional[str] = None, + size: Optional[str] = None, + family: Optional[str] = None, + capacity: Optional[int] = None, + sku_capacity: Optional["SkuCapacity"] = None, + locations: Optional[List[str]] = None, + capabilities: Optional[List["Capability"]] = None, + **kwargs + ): + super(SkuDescription, self).__init__(**kwargs) + self.name = name + self.tier = tier + self.size = size + self.family = family + self.capacity = capacity + self.sku_capacity = sku_capacity + self.locations = locations + self.capabilities = capabilities + + +class SkuInfo(msrest.serialization.Model): + """SKU discovery information. + + :param resource_type: Resource type that this SKU applies to. + :type resource_type: str + :param sku: Name and tier of the SKU. + :type sku: ~azure.mgmt.web.v2021_01_15.models.SkuDescription + :param capacity: Min, max, and default scale values of the SKU. + :type capacity: ~azure.mgmt.web.v2021_01_15.models.SkuCapacity + """ + + _attribute_map = { + 'resource_type': {'key': 'resourceType', 'type': 'str'}, + 'sku': {'key': 'sku', 'type': 'SkuDescription'}, + 'capacity': {'key': 'capacity', 'type': 'SkuCapacity'}, + } + + def __init__( + self, + *, + resource_type: Optional[str] = None, + sku: Optional["SkuDescription"] = None, + capacity: Optional["SkuCapacity"] = None, + **kwargs + ): + super(SkuInfo, self).__init__(**kwargs) + self.resource_type = resource_type + self.sku = sku + self.capacity = capacity + + +class SkuInfoCollection(msrest.serialization.Model): + """Collection of SKU information. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.SkuInfo] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SkuInfo]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["SkuInfo"], + **kwargs + ): + super(SkuInfoCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class SkuInfos(msrest.serialization.Model): + """Collection of SKU information. + + :param resource_type: Resource type that this SKU applies to. + :type resource_type: str + :param skus: List of SKUs the subscription is able to use. + :type skus: list[~azure.mgmt.web.v2021_01_15.models.GlobalCsmSkuDescription] + """ + + _attribute_map = { + 'resource_type': {'key': 'resourceType', 'type': 'str'}, + 'skus': {'key': 'skus', 'type': '[GlobalCsmSkuDescription]'}, + } + + def __init__( + self, + *, + resource_type: Optional[str] = None, + skus: Optional[List["GlobalCsmSkuDescription"]] = None, + **kwargs + ): + super(SkuInfos, self).__init__(**kwargs) + self.resource_type = resource_type + self.skus = skus + + +class SlotConfigNamesResource(ProxyOnlyResource): + """Slot Config names azure resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param connection_string_names: List of connection string names. + :type connection_string_names: list[str] + :param app_setting_names: List of application settings names. + :type app_setting_names: list[str] + :param azure_storage_config_names: List of external Azure storage account identifiers. + :type azure_storage_config_names: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'connection_string_names': {'key': 'properties.connectionStringNames', 'type': '[str]'}, + 'app_setting_names': {'key': 'properties.appSettingNames', 'type': '[str]'}, + 'azure_storage_config_names': {'key': 'properties.azureStorageConfigNames', 'type': '[str]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + connection_string_names: Optional[List[str]] = None, + app_setting_names: Optional[List[str]] = None, + azure_storage_config_names: Optional[List[str]] = None, + **kwargs + ): + super(SlotConfigNamesResource, self).__init__(kind=kind, **kwargs) + self.connection_string_names = connection_string_names + self.app_setting_names = app_setting_names + self.azure_storage_config_names = azure_storage_config_names + + +class SlotDifference(ProxyOnlyResource): + """A setting difference between two deployment slots of an app. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar level: Level of the difference: Information, Warning or Error. + :vartype level: str + :ivar setting_type: The type of the setting: General, AppSetting or ConnectionString. + :vartype setting_type: str + :ivar diff_rule: Rule that describes how to process the setting difference during a slot swap. + :vartype diff_rule: str + :ivar setting_name: Name of the setting. + :vartype setting_name: str + :ivar value_in_current_slot: Value of the setting in the current slot. + :vartype value_in_current_slot: str + :ivar value_in_target_slot: Value of the setting in the target slot. + :vartype value_in_target_slot: str + :ivar description: Description of the setting difference. + :vartype description: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'level': {'readonly': True}, + 'setting_type': {'readonly': True}, + 'diff_rule': {'readonly': True}, + 'setting_name': {'readonly': True}, + 'value_in_current_slot': {'readonly': True}, + 'value_in_target_slot': {'readonly': True}, + 'description': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'level': {'key': 'properties.level', 'type': 'str'}, + 'setting_type': {'key': 'properties.settingType', 'type': 'str'}, + 'diff_rule': {'key': 'properties.diffRule', 'type': 'str'}, + 'setting_name': {'key': 'properties.settingName', 'type': 'str'}, + 'value_in_current_slot': {'key': 'properties.valueInCurrentSlot', 'type': 'str'}, + 'value_in_target_slot': {'key': 'properties.valueInTargetSlot', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(SlotDifference, self).__init__(kind=kind, **kwargs) + self.level = None + self.setting_type = None + self.diff_rule = None + self.setting_name = None + self.value_in_current_slot = None + self.value_in_target_slot = None + self.description = None + + +class SlotDifferenceCollection(msrest.serialization.Model): + """Collection of slot differences. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.SlotDifference] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SlotDifference]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["SlotDifference"], + **kwargs + ): + super(SlotDifferenceCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class SlotSwapStatus(msrest.serialization.Model): + """The status of the last successful slot swap operation. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar timestamp_utc: The time the last successful slot swap completed. + :vartype timestamp_utc: ~datetime.datetime + :ivar source_slot_name: The source slot of the last swap operation. + :vartype source_slot_name: str + :ivar destination_slot_name: The destination slot of the last swap operation. + :vartype destination_slot_name: str + """ + + _validation = { + 'timestamp_utc': {'readonly': True}, + 'source_slot_name': {'readonly': True}, + 'destination_slot_name': {'readonly': True}, + } + + _attribute_map = { + 'timestamp_utc': {'key': 'timestampUtc', 'type': 'iso-8601'}, + 'source_slot_name': {'key': 'sourceSlotName', 'type': 'str'}, + 'destination_slot_name': {'key': 'destinationSlotName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SlotSwapStatus, self).__init__(**kwargs) + self.timestamp_utc = None + self.source_slot_name = None + self.destination_slot_name = None + + +class SlowRequestsBasedTrigger(msrest.serialization.Model): + """Trigger based on request execution time. + + :param time_taken: Time taken. + :type time_taken: str + :param path: Request Path. + :type path: str + :param count: Request Count. + :type count: int + :param time_interval: Time interval. + :type time_interval: str + """ + + _attribute_map = { + 'time_taken': {'key': 'timeTaken', 'type': 'str'}, + 'path': {'key': 'path', 'type': 'str'}, + 'count': {'key': 'count', 'type': 'int'}, + 'time_interval': {'key': 'timeInterval', 'type': 'str'}, + } + + def __init__( + self, + *, + time_taken: Optional[str] = None, + path: Optional[str] = None, + count: Optional[int] = None, + time_interval: Optional[str] = None, + **kwargs + ): + super(SlowRequestsBasedTrigger, self).__init__(**kwargs) + self.time_taken = time_taken + self.path = path + self.count = count + self.time_interval = time_interval + + +class Snapshot(ProxyOnlyResource): + """A snapshot of an app. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar time: The time the snapshot was taken. + :vartype time: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'time': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'time': {'key': 'properties.time', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(Snapshot, self).__init__(kind=kind, **kwargs) + self.time = None + + +class SnapshotCollection(msrest.serialization.Model): + """Collection of snapshots which can be used to revert an app to a previous time. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.Snapshot] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Snapshot]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["Snapshot"], + **kwargs + ): + super(SnapshotCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class SnapshotRecoverySource(msrest.serialization.Model): + """Specifies the web app that snapshot contents will be retrieved from. + + :param location: Geographical location of the source web app, e.g. SouthEastAsia, + SouthCentralUS. + :type location: str + :param id: ARM resource ID of the source app. + /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} + for production slots and + /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} + for other slots. + :type id: str + """ + + _attribute_map = { + 'location': {'key': 'location', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__( + self, + *, + location: Optional[str] = None, + id: Optional[str] = None, + **kwargs + ): + super(SnapshotRecoverySource, self).__init__(**kwargs) + self.location = location + self.id = id + + +class SnapshotRestoreRequest(ProxyOnlyResource): + """Details about app recovery operation. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param snapshot_time: Point in time in which the app restore should be done, formatted as a + DateTime string. + :type snapshot_time: str + :param recovery_source: Optional. Specifies the web app that snapshot contents will be + retrieved from. + If empty, the targeted web app will be used as the source. + :type recovery_source: ~azure.mgmt.web.v2021_01_15.models.SnapshotRecoverySource + :param overwrite: If :code:`true` the restore operation can overwrite source app; + otherwise, :code:`false`. + :type overwrite: bool + :param recover_configuration: If true, site configuration, in addition to content, will be + reverted. + :type recover_configuration: bool + :param ignore_conflicting_host_names: If true, custom hostname conflicts will be ignored when + recovering to a target web app. + This setting is only necessary when RecoverConfiguration is enabled. + :type ignore_conflicting_host_names: bool + :param use_dr_secondary: If true, the snapshot is retrieved from DRSecondary endpoint. + :type use_dr_secondary: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'snapshot_time': {'key': 'properties.snapshotTime', 'type': 'str'}, + 'recovery_source': {'key': 'properties.recoverySource', 'type': 'SnapshotRecoverySource'}, + 'overwrite': {'key': 'properties.overwrite', 'type': 'bool'}, + 'recover_configuration': {'key': 'properties.recoverConfiguration', 'type': 'bool'}, + 'ignore_conflicting_host_names': {'key': 'properties.ignoreConflictingHostNames', 'type': 'bool'}, + 'use_dr_secondary': {'key': 'properties.useDRSecondary', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + snapshot_time: Optional[str] = None, + recovery_source: Optional["SnapshotRecoverySource"] = None, + overwrite: Optional[bool] = None, + recover_configuration: Optional[bool] = None, + ignore_conflicting_host_names: Optional[bool] = None, + use_dr_secondary: Optional[bool] = None, + **kwargs + ): + super(SnapshotRestoreRequest, self).__init__(kind=kind, **kwargs) + self.snapshot_time = snapshot_time + self.recovery_source = recovery_source + self.overwrite = overwrite + self.recover_configuration = recover_configuration + self.ignore_conflicting_host_names = ignore_conflicting_host_names + self.use_dr_secondary = use_dr_secondary + + +class Solution(msrest.serialization.Model): + """Class Representing Solution for problems detected. + + :param id: Solution Id. + :type id: float + :param display_name: Display Name of the solution. + :type display_name: str + :param order: Order of the solution. + :type order: float + :param description: Description of the solution. + :type description: str + :param type: Type of Solution. Possible values include: "QuickSolution", "DeepInvestigation", + "BestPractices". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.SolutionType + :param data: Solution Data. + :type data: list[list[~azure.mgmt.web.v2021_01_15.models.NameValuePair]] + :param metadata: Solution Metadata. + :type metadata: list[list[~azure.mgmt.web.v2021_01_15.models.NameValuePair]] + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'float'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'order': {'key': 'order', 'type': 'float'}, + 'description': {'key': 'description', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'data': {'key': 'data', 'type': '[[NameValuePair]]'}, + 'metadata': {'key': 'metadata', 'type': '[[NameValuePair]]'}, + } + + def __init__( + self, + *, + id: Optional[float] = None, + display_name: Optional[str] = None, + order: Optional[float] = None, + description: Optional[str] = None, + type: Optional[Union[str, "SolutionType"]] = None, + data: Optional[List[List["NameValuePair"]]] = None, + metadata: Optional[List[List["NameValuePair"]]] = None, + **kwargs + ): + super(Solution, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.order = order + self.description = description + self.type = type + self.data = data + self.metadata = metadata + + +class SourceControl(ProxyOnlyResource): + """The source control OAuth token. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param token: OAuth access token. + :type token: str + :param token_secret: OAuth access token secret. + :type token_secret: str + :param refresh_token: OAuth refresh token. + :type refresh_token: str + :param expiration_time: OAuth token expiration. + :type expiration_time: ~datetime.datetime + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'token': {'key': 'properties.token', 'type': 'str'}, + 'token_secret': {'key': 'properties.tokenSecret', 'type': 'str'}, + 'refresh_token': {'key': 'properties.refreshToken', 'type': 'str'}, + 'expiration_time': {'key': 'properties.expirationTime', 'type': 'iso-8601'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + token: Optional[str] = None, + token_secret: Optional[str] = None, + refresh_token: Optional[str] = None, + expiration_time: Optional[datetime.datetime] = None, + **kwargs + ): + super(SourceControl, self).__init__(kind=kind, **kwargs) + self.token = token + self.token_secret = token_secret + self.refresh_token = refresh_token + self.expiration_time = expiration_time + + +class SourceControlCollection(msrest.serialization.Model): + """Collection of source controls. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.SourceControl] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SourceControl]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["SourceControl"], + **kwargs + ): + super(SourceControlCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class StackMajorVersion(msrest.serialization.Model): + """Application stack major version. + + :param display_version: Application stack major version (display only). + :type display_version: str + :param runtime_version: Application stack major version (runtime only). + :type runtime_version: str + :param is_default: :code:`true` if this is the default major version; otherwise, + :code:`false`. + :type is_default: bool + :param minor_versions: Minor versions associated with the major version. + :type minor_versions: list[~azure.mgmt.web.v2021_01_15.models.StackMinorVersion] + :param application_insights: :code:`true` if this supports Application Insights; + otherwise, :code:`false`. + :type application_insights: bool + :param is_preview: :code:`true` if this stack is in Preview, otherwise + :code:`false`. + :type is_preview: bool + :param is_deprecated: :code:`true` if this stack has been deprecated, otherwise + :code:`false`. + :type is_deprecated: bool + :param is_hidden: :code:`true` if this stack should be hidden for new customers on + portal, otherwise :code:`false`. + :type is_hidden: bool + :param app_settings_dictionary: :code:` + + ` + Example: All the function apps need AppSetting: "FUNCTIONS_WORKER_RUNTIME" to be set stack + name. + :type app_settings_dictionary: dict[str, any] + :param site_config_properties_dictionary: :code:` + + ` + Example: All Linux Function Apps, need Use32BitWorkerProcess to be set to 0. + :type site_config_properties_dictionary: dict[str, any] + """ + + _attribute_map = { + 'display_version': {'key': 'displayVersion', 'type': 'str'}, + 'runtime_version': {'key': 'runtimeVersion', 'type': 'str'}, + 'is_default': {'key': 'isDefault', 'type': 'bool'}, + 'minor_versions': {'key': 'minorVersions', 'type': '[StackMinorVersion]'}, + 'application_insights': {'key': 'applicationInsights', 'type': 'bool'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + 'is_deprecated': {'key': 'isDeprecated', 'type': 'bool'}, + 'is_hidden': {'key': 'isHidden', 'type': 'bool'}, + 'app_settings_dictionary': {'key': 'appSettingsDictionary', 'type': '{object}'}, + 'site_config_properties_dictionary': {'key': 'siteConfigPropertiesDictionary', 'type': '{object}'}, + } + + def __init__( + self, + *, + display_version: Optional[str] = None, + runtime_version: Optional[str] = None, + is_default: Optional[bool] = None, + minor_versions: Optional[List["StackMinorVersion"]] = None, + application_insights: Optional[bool] = None, + is_preview: Optional[bool] = None, + is_deprecated: Optional[bool] = None, + is_hidden: Optional[bool] = None, + app_settings_dictionary: Optional[Dict[str, Any]] = None, + site_config_properties_dictionary: Optional[Dict[str, Any]] = None, + **kwargs + ): + super(StackMajorVersion, self).__init__(**kwargs) + self.display_version = display_version + self.runtime_version = runtime_version + self.is_default = is_default + self.minor_versions = minor_versions + self.application_insights = application_insights + self.is_preview = is_preview + self.is_deprecated = is_deprecated + self.is_hidden = is_hidden + self.app_settings_dictionary = app_settings_dictionary + self.site_config_properties_dictionary = site_config_properties_dictionary + + +class StackMinorVersion(msrest.serialization.Model): + """Application stack minor version. + + :param display_version: Application stack minor version (display only). + :type display_version: str + :param runtime_version: Application stack minor version (runtime only). + :type runtime_version: str + :param is_default: :code:`true` if this is the default minor version; otherwise, + :code:`false`. + :type is_default: bool + :param is_remote_debugging_enabled: :code:`true` if this supports Remote + Debugging, otherwise :code:`false`. + :type is_remote_debugging_enabled: bool + """ + + _attribute_map = { + 'display_version': {'key': 'displayVersion', 'type': 'str'}, + 'runtime_version': {'key': 'runtimeVersion', 'type': 'str'}, + 'is_default': {'key': 'isDefault', 'type': 'bool'}, + 'is_remote_debugging_enabled': {'key': 'isRemoteDebuggingEnabled', 'type': 'bool'}, + } + + def __init__( + self, + *, + display_version: Optional[str] = None, + runtime_version: Optional[str] = None, + is_default: Optional[bool] = None, + is_remote_debugging_enabled: Optional[bool] = None, + **kwargs + ): + super(StackMinorVersion, self).__init__(**kwargs) + self.display_version = display_version + self.runtime_version = runtime_version + self.is_default = is_default + self.is_remote_debugging_enabled = is_remote_debugging_enabled + + +class StampCapacity(msrest.serialization.Model): + """Stamp capacity information. + + :param name: Name of the stamp. + :type name: str + :param available_capacity: Available capacity (# of machines, bytes of storage etc...). + :type available_capacity: long + :param total_capacity: Total capacity (# of machines, bytes of storage etc...). + :type total_capacity: long + :param unit: Name of the unit. + :type unit: str + :param compute_mode: Shared/dedicated workers. Possible values include: "Shared", "Dedicated", + "Dynamic". + :type compute_mode: str or ~azure.mgmt.web.v2021_01_15.models.ComputeModeOptions + :param worker_size: Size of the machines. Possible values include: "Small", "Medium", "Large", + "D1", "D2", "D3", "SmallV3", "MediumV3", "LargeV3", "NestedSmall", "NestedSmallLinux", + "Default". + :type worker_size: str or ~azure.mgmt.web.v2021_01_15.models.WorkerSizeOptions + :param worker_size_id: Size ID of machines: + 0 - Small + 1 - Medium + 2 - Large. + :type worker_size_id: int + :param exclude_from_capacity_allocation: If :code:`true`, it includes basic apps. + Basic apps are not used for capacity allocation. + :type exclude_from_capacity_allocation: bool + :param is_applicable_for_all_compute_modes: :code:`true` if capacity is applicable + for all apps; otherwise, :code:`false`. + :type is_applicable_for_all_compute_modes: bool + :param site_mode: Shared or Dedicated. + :type site_mode: str + :param is_linux: Is this a linux stamp capacity. + :type is_linux: bool + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'available_capacity': {'key': 'availableCapacity', 'type': 'long'}, + 'total_capacity': {'key': 'totalCapacity', 'type': 'long'}, + 'unit': {'key': 'unit', 'type': 'str'}, + 'compute_mode': {'key': 'computeMode', 'type': 'str'}, + 'worker_size': {'key': 'workerSize', 'type': 'str'}, + 'worker_size_id': {'key': 'workerSizeId', 'type': 'int'}, + 'exclude_from_capacity_allocation': {'key': 'excludeFromCapacityAllocation', 'type': 'bool'}, + 'is_applicable_for_all_compute_modes': {'key': 'isApplicableForAllComputeModes', 'type': 'bool'}, + 'site_mode': {'key': 'siteMode', 'type': 'str'}, + 'is_linux': {'key': 'isLinux', 'type': 'bool'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + available_capacity: Optional[int] = None, + total_capacity: Optional[int] = None, + unit: Optional[str] = None, + compute_mode: Optional[Union[str, "ComputeModeOptions"]] = None, + worker_size: Optional[Union[str, "WorkerSizeOptions"]] = None, + worker_size_id: Optional[int] = None, + exclude_from_capacity_allocation: Optional[bool] = None, + is_applicable_for_all_compute_modes: Optional[bool] = None, + site_mode: Optional[str] = None, + is_linux: Optional[bool] = None, + **kwargs + ): + super(StampCapacity, self).__init__(**kwargs) + self.name = name + self.available_capacity = available_capacity + self.total_capacity = total_capacity + self.unit = unit + self.compute_mode = compute_mode + self.worker_size = worker_size + self.worker_size_id = worker_size_id + self.exclude_from_capacity_allocation = exclude_from_capacity_allocation + self.is_applicable_for_all_compute_modes = is_applicable_for_all_compute_modes + self.site_mode = site_mode + self.is_linux = is_linux + + +class StampCapacityCollection(msrest.serialization.Model): + """Collection of stamp capacities. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.StampCapacity] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[StampCapacity]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["StampCapacity"], + **kwargs + ): + super(StampCapacityCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class StaticSiteARMResource(Resource): + """Static Site ARM resource. + + 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: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :param location: Required. Resource Location. + :type location: str + :ivar type: Resource type. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param sku: Description of a SKU for a scalable resource. + :type sku: ~azure.mgmt.web.v2021_01_15.models.SkuDescription + :param identity: Managed service identity. + :type identity: ~azure.mgmt.web.v2021_01_15.models.ManagedServiceIdentity + :ivar default_hostname: The default autogenerated hostname for the static site. + :vartype default_hostname: str + :param repository_url: URL for the repository of the static site. + :type repository_url: str + :param branch: The target branch in the repository. + :type branch: str + :ivar custom_domains: The custom domains associated with this static site. + :vartype custom_domains: list[str] + :param repository_token: A user's github repository token. This is used to setup the Github + Actions workflow file and API secrets. + :type repository_token: str + :param build_properties: Build properties to configure on the repository. + :type build_properties: ~azure.mgmt.web.v2021_01_15.models.StaticSiteBuildProperties + :ivar private_endpoint_connections: Private endpoint connections. + :vartype private_endpoint_connections: + list[~azure.mgmt.web.v2021_01_15.models.ResponseMessageEnvelopeRemotePrivateEndpointConnection] + :param staging_environment_policy: State indicating whether staging environments are allowed or + not allowed for a static web app. Possible values include: "Enabled", "Disabled". + :type staging_environment_policy: str or + ~azure.mgmt.web.v2021_01_15.models.StagingEnvironmentPolicy + :param allow_config_file_updates: :code:`false` if config file is locked for this + static web app; otherwise, :code:`true`. + :type allow_config_file_updates: bool + :param template_properties: Template options for generating a new repository. + :type template_properties: ~azure.mgmt.web.v2021_01_15.models.StaticSiteTemplateOptions + :ivar content_distribution_endpoint: The content distribution endpoint for the static site. + :vartype content_distribution_endpoint: str + :ivar key_vault_reference_identity: Identity to use for Key Vault Reference authentication. + :vartype key_vault_reference_identity: str + :ivar user_provided_function_apps: User provided function apps registered with the static site. + :vartype user_provided_function_apps: + list[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionApp] + :ivar provider: The provider that submitted the last deployment to the primary environment of + the static site. + :vartype provider: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'default_hostname': {'readonly': True}, + 'custom_domains': {'readonly': True}, + 'private_endpoint_connections': {'readonly': True}, + 'content_distribution_endpoint': {'readonly': True}, + 'key_vault_reference_identity': {'readonly': True}, + 'user_provided_function_apps': {'readonly': True}, + 'provider': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'sku': {'key': 'sku', 'type': 'SkuDescription'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, + 'default_hostname': {'key': 'properties.defaultHostname', 'type': 'str'}, + 'repository_url': {'key': 'properties.repositoryUrl', 'type': 'str'}, + 'branch': {'key': 'properties.branch', 'type': 'str'}, + 'custom_domains': {'key': 'properties.customDomains', 'type': '[str]'}, + 'repository_token': {'key': 'properties.repositoryToken', 'type': 'str'}, + 'build_properties': {'key': 'properties.buildProperties', 'type': 'StaticSiteBuildProperties'}, + 'private_endpoint_connections': {'key': 'properties.privateEndpointConnections', 'type': '[ResponseMessageEnvelopeRemotePrivateEndpointConnection]'}, + 'staging_environment_policy': {'key': 'properties.stagingEnvironmentPolicy', 'type': 'str'}, + 'allow_config_file_updates': {'key': 'properties.allowConfigFileUpdates', 'type': 'bool'}, + 'template_properties': {'key': 'properties.templateProperties', 'type': 'StaticSiteTemplateOptions'}, + 'content_distribution_endpoint': {'key': 'properties.contentDistributionEndpoint', 'type': 'str'}, + 'key_vault_reference_identity': {'key': 'properties.keyVaultReferenceIdentity', 'type': 'str'}, + 'user_provided_function_apps': {'key': 'properties.userProvidedFunctionApps', 'type': '[StaticSiteUserProvidedFunctionApp]'}, + 'provider': {'key': 'properties.provider', 'type': 'str'}, + } + + def __init__( + self, + *, + location: str, + kind: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + sku: Optional["SkuDescription"] = None, + identity: Optional["ManagedServiceIdentity"] = None, + repository_url: Optional[str] = None, + branch: Optional[str] = None, + repository_token: Optional[str] = None, + build_properties: Optional["StaticSiteBuildProperties"] = None, + staging_environment_policy: Optional[Union[str, "StagingEnvironmentPolicy"]] = None, + allow_config_file_updates: Optional[bool] = None, + template_properties: Optional["StaticSiteTemplateOptions"] = None, + **kwargs + ): + super(StaticSiteARMResource, self).__init__(kind=kind, location=location, tags=tags, **kwargs) + self.sku = sku + self.identity = identity + self.default_hostname = None + self.repository_url = repository_url + self.branch = branch + self.custom_domains = None + self.repository_token = repository_token + self.build_properties = build_properties + self.private_endpoint_connections = None + self.staging_environment_policy = staging_environment_policy + self.allow_config_file_updates = allow_config_file_updates + self.template_properties = template_properties + self.content_distribution_endpoint = None + self.key_vault_reference_identity = None + self.user_provided_function_apps = None + self.provider = None + + +class StaticSiteBuildARMResource(ProxyOnlyResource): + """Static Site Build ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar build_id: An identifier for the static site build. + :vartype build_id: str + :ivar source_branch: The source branch. + :vartype source_branch: str + :ivar pull_request_title: The title of a pull request that a static site build is related to. + :vartype pull_request_title: str + :ivar hostname: The hostname for a static site build. + :vartype hostname: str + :ivar created_time_utc: When this build was created. + :vartype created_time_utc: ~datetime.datetime + :ivar last_updated_on: When this build was updated. + :vartype last_updated_on: ~datetime.datetime + :ivar status: The status of the static site build. Possible values include: + "WaitingForDeployment", "Uploading", "Deploying", "Ready", "Failed", "Deleting", "Detached". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.BuildStatus + :ivar user_provided_function_apps: User provided function apps registered with the static site + build. + :vartype user_provided_function_apps: + list[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionApp] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'build_id': {'readonly': True}, + 'source_branch': {'readonly': True}, + 'pull_request_title': {'readonly': True}, + 'hostname': {'readonly': True}, + 'created_time_utc': {'readonly': True}, + 'last_updated_on': {'readonly': True}, + 'status': {'readonly': True}, + 'user_provided_function_apps': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'build_id': {'key': 'properties.buildId', 'type': 'str'}, + 'source_branch': {'key': 'properties.sourceBranch', 'type': 'str'}, + 'pull_request_title': {'key': 'properties.pullRequestTitle', 'type': 'str'}, + 'hostname': {'key': 'properties.hostname', 'type': 'str'}, + 'created_time_utc': {'key': 'properties.createdTimeUtc', 'type': 'iso-8601'}, + 'last_updated_on': {'key': 'properties.lastUpdatedOn', 'type': 'iso-8601'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'user_provided_function_apps': {'key': 'properties.userProvidedFunctionApps', 'type': '[StaticSiteUserProvidedFunctionApp]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(StaticSiteBuildARMResource, self).__init__(kind=kind, **kwargs) + self.build_id = None + self.source_branch = None + self.pull_request_title = None + self.hostname = None + self.created_time_utc = None + self.last_updated_on = None + self.status = None + self.user_provided_function_apps = None + + +class StaticSiteBuildCollection(msrest.serialization.Model): + """Collection of static site builds. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.StaticSiteBuildARMResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[StaticSiteBuildARMResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["StaticSiteBuildARMResource"], + **kwargs + ): + super(StaticSiteBuildCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class StaticSiteBuildProperties(msrest.serialization.Model): + """Build properties for the static site. + + :param app_location: The path to the app code within the repository. + :type app_location: str + :param api_location: The path to the api code within the repository. + :type api_location: str + :param app_artifact_location: Deprecated: The path of the app artifacts after building + (deprecated in favor of OutputLocation). + :type app_artifact_location: str + :param output_location: The output path of the app after building. + :type output_location: str + :param app_build_command: A custom command to run during deployment of the static content + application. + :type app_build_command: str + :param api_build_command: A custom command to run during deployment of the Azure Functions API + application. + :type api_build_command: str + :param skip_github_action_workflow_generation: Skip Github Action workflow generation. + :type skip_github_action_workflow_generation: bool + :param github_action_secret_name_override: Github Action secret name override. + :type github_action_secret_name_override: str + """ + + _attribute_map = { + 'app_location': {'key': 'appLocation', 'type': 'str'}, + 'api_location': {'key': 'apiLocation', 'type': 'str'}, + 'app_artifact_location': {'key': 'appArtifactLocation', 'type': 'str'}, + 'output_location': {'key': 'outputLocation', 'type': 'str'}, + 'app_build_command': {'key': 'appBuildCommand', 'type': 'str'}, + 'api_build_command': {'key': 'apiBuildCommand', 'type': 'str'}, + 'skip_github_action_workflow_generation': {'key': 'skipGithubActionWorkflowGeneration', 'type': 'bool'}, + 'github_action_secret_name_override': {'key': 'githubActionSecretNameOverride', 'type': 'str'}, + } + + def __init__( + self, + *, + app_location: Optional[str] = None, + api_location: Optional[str] = None, + app_artifact_location: Optional[str] = None, + output_location: Optional[str] = None, + app_build_command: Optional[str] = None, + api_build_command: Optional[str] = None, + skip_github_action_workflow_generation: Optional[bool] = None, + github_action_secret_name_override: Optional[str] = None, + **kwargs + ): + super(StaticSiteBuildProperties, self).__init__(**kwargs) + self.app_location = app_location + self.api_location = api_location + self.app_artifact_location = app_artifact_location + self.output_location = output_location + self.app_build_command = app_build_command + self.api_build_command = api_build_command + self.skip_github_action_workflow_generation = skip_github_action_workflow_generation + self.github_action_secret_name_override = github_action_secret_name_override + + +class StaticSiteCollection(msrest.serialization.Model): + """Collection of static sites. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.StaticSiteARMResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[StaticSiteARMResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["StaticSiteARMResource"], + **kwargs + ): + super(StaticSiteCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class StaticSiteCustomDomainOverviewARMResource(ProxyOnlyResource): + """Static Site Custom Domain Overview ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar domain_name: The domain name for the static site custom domain. + :vartype domain_name: str + :ivar created_on: The date and time on which the custom domain was created for the static site. + :vartype created_on: ~datetime.datetime + :ivar status: The status of the custom domain. Possible values include: + "RetrievingValidationToken", "Validating", "Adding", "Ready", "Failed", "Deleting". + :vartype status: str or ~azure.mgmt.web.v2021_01_15.models.CustomDomainStatus + :ivar validation_token: The TXT record validation token. + :vartype validation_token: str + :ivar error_message: + :vartype error_message: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'domain_name': {'readonly': True}, + 'created_on': {'readonly': True}, + 'status': {'readonly': True}, + 'validation_token': {'readonly': True}, + 'error_message': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'domain_name': {'key': 'properties.domainName', 'type': 'str'}, + 'created_on': {'key': 'properties.createdOn', 'type': 'iso-8601'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'validation_token': {'key': 'properties.validationToken', 'type': 'str'}, + 'error_message': {'key': 'properties.errorMessage', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(StaticSiteCustomDomainOverviewARMResource, self).__init__(kind=kind, **kwargs) + self.domain_name = None + self.created_on = None + self.status = None + self.validation_token = None + self.error_message = None + + +class StaticSiteCustomDomainOverviewCollection(msrest.serialization.Model): + """Collection of static site custom domains. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.StaticSiteCustomDomainOverviewARMResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[StaticSiteCustomDomainOverviewARMResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["StaticSiteCustomDomainOverviewARMResource"], + **kwargs + ): + super(StaticSiteCustomDomainOverviewCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class StaticSiteCustomDomainRequestPropertiesARMResource(ProxyOnlyResource): + """Static Site Custom Domain Request Properties ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param validation_method: Validation method for adding a custom domain. + :type validation_method: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'validation_method': {'key': 'properties.validationMethod', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + validation_method: Optional[str] = "cname-delegation", + **kwargs + ): + super(StaticSiteCustomDomainRequestPropertiesARMResource, self).__init__(kind=kind, **kwargs) + self.validation_method = validation_method + + +class StaticSiteFunctionOverviewARMResource(ProxyOnlyResource): + """Static Site Function Overview ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar function_name: The name for the function. + :vartype function_name: str + :ivar trigger_type: The trigger type of the function. Possible values include: "HttpTrigger", + "Unknown". + :vartype trigger_type: str or ~azure.mgmt.web.v2021_01_15.models.TriggerTypes + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'function_name': {'readonly': True}, + 'trigger_type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'function_name': {'key': 'properties.functionName', 'type': 'str'}, + 'trigger_type': {'key': 'properties.triggerType', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(StaticSiteFunctionOverviewARMResource, self).__init__(kind=kind, **kwargs) + self.function_name = None + self.trigger_type = None + + +class StaticSiteFunctionOverviewCollection(msrest.serialization.Model): + """Collection of static site functions. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.StaticSiteFunctionOverviewARMResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[StaticSiteFunctionOverviewARMResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["StaticSiteFunctionOverviewARMResource"], + **kwargs + ): + super(StaticSiteFunctionOverviewCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class StaticSitePatchResource(ProxyOnlyResource): + """ARM resource for a static site when patching. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar default_hostname: The default autogenerated hostname for the static site. + :vartype default_hostname: str + :param repository_url: URL for the repository of the static site. + :type repository_url: str + :param branch: The target branch in the repository. + :type branch: str + :ivar custom_domains: The custom domains associated with this static site. + :vartype custom_domains: list[str] + :param repository_token: A user's github repository token. This is used to setup the Github + Actions workflow file and API secrets. + :type repository_token: str + :param build_properties: Build properties to configure on the repository. + :type build_properties: ~azure.mgmt.web.v2021_01_15.models.StaticSiteBuildProperties + :ivar private_endpoint_connections: Private endpoint connections. + :vartype private_endpoint_connections: + list[~azure.mgmt.web.v2021_01_15.models.ResponseMessageEnvelopeRemotePrivateEndpointConnection] + :param staging_environment_policy: State indicating whether staging environments are allowed or + not allowed for a static web app. Possible values include: "Enabled", "Disabled". + :type staging_environment_policy: str or + ~azure.mgmt.web.v2021_01_15.models.StagingEnvironmentPolicy + :param allow_config_file_updates: :code:`false` if config file is locked for this + static web app; otherwise, :code:`true`. + :type allow_config_file_updates: bool + :param template_properties: Template options for generating a new repository. + :type template_properties: ~azure.mgmt.web.v2021_01_15.models.StaticSiteTemplateOptions + :ivar content_distribution_endpoint: The content distribution endpoint for the static site. + :vartype content_distribution_endpoint: str + :ivar key_vault_reference_identity: Identity to use for Key Vault Reference authentication. + :vartype key_vault_reference_identity: str + :ivar user_provided_function_apps: User provided function apps registered with the static site. + :vartype user_provided_function_apps: + list[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionApp] + :ivar provider: The provider that submitted the last deployment to the primary environment of + the static site. + :vartype provider: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'default_hostname': {'readonly': True}, + 'custom_domains': {'readonly': True}, + 'private_endpoint_connections': {'readonly': True}, + 'content_distribution_endpoint': {'readonly': True}, + 'key_vault_reference_identity': {'readonly': True}, + 'user_provided_function_apps': {'readonly': True}, + 'provider': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'default_hostname': {'key': 'properties.defaultHostname', 'type': 'str'}, + 'repository_url': {'key': 'properties.repositoryUrl', 'type': 'str'}, + 'branch': {'key': 'properties.branch', 'type': 'str'}, + 'custom_domains': {'key': 'properties.customDomains', 'type': '[str]'}, + 'repository_token': {'key': 'properties.repositoryToken', 'type': 'str'}, + 'build_properties': {'key': 'properties.buildProperties', 'type': 'StaticSiteBuildProperties'}, + 'private_endpoint_connections': {'key': 'properties.privateEndpointConnections', 'type': '[ResponseMessageEnvelopeRemotePrivateEndpointConnection]'}, + 'staging_environment_policy': {'key': 'properties.stagingEnvironmentPolicy', 'type': 'str'}, + 'allow_config_file_updates': {'key': 'properties.allowConfigFileUpdates', 'type': 'bool'}, + 'template_properties': {'key': 'properties.templateProperties', 'type': 'StaticSiteTemplateOptions'}, + 'content_distribution_endpoint': {'key': 'properties.contentDistributionEndpoint', 'type': 'str'}, + 'key_vault_reference_identity': {'key': 'properties.keyVaultReferenceIdentity', 'type': 'str'}, + 'user_provided_function_apps': {'key': 'properties.userProvidedFunctionApps', 'type': '[StaticSiteUserProvidedFunctionApp]'}, + 'provider': {'key': 'properties.provider', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + repository_url: Optional[str] = None, + branch: Optional[str] = None, + repository_token: Optional[str] = None, + build_properties: Optional["StaticSiteBuildProperties"] = None, + staging_environment_policy: Optional[Union[str, "StagingEnvironmentPolicy"]] = None, + allow_config_file_updates: Optional[bool] = None, + template_properties: Optional["StaticSiteTemplateOptions"] = None, + **kwargs + ): + super(StaticSitePatchResource, self).__init__(kind=kind, **kwargs) + self.default_hostname = None + self.repository_url = repository_url + self.branch = branch + self.custom_domains = None + self.repository_token = repository_token + self.build_properties = build_properties + self.private_endpoint_connections = None + self.staging_environment_policy = staging_environment_policy + self.allow_config_file_updates = allow_config_file_updates + self.template_properties = template_properties + self.content_distribution_endpoint = None + self.key_vault_reference_identity = None + self.user_provided_function_apps = None + self.provider = None + + +class StaticSiteResetPropertiesARMResource(ProxyOnlyResource): + """Static Site Reset Properties ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param repository_token: The token which proves admin privileges to the repository. + :type repository_token: str + :param should_update_repository: Determines whether the repository should be updated with the + new properties. + :type should_update_repository: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'repository_token': {'key': 'properties.repositoryToken', 'type': 'str'}, + 'should_update_repository': {'key': 'properties.shouldUpdateRepository', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + repository_token: Optional[str] = None, + should_update_repository: Optional[bool] = None, + **kwargs + ): + super(StaticSiteResetPropertiesARMResource, self).__init__(kind=kind, **kwargs) + self.repository_token = repository_token + self.should_update_repository = should_update_repository + + +class StaticSitesWorkflowPreview(ProxyOnlyResource): + """Preview for the Static Site Workflow to be generated. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar path: The path for the workflow file to be generated. + :vartype path: str + :ivar contents: The contents for the workflow file to be generated. + :vartype contents: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'path': {'readonly': True}, + 'contents': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'path': {'key': 'properties.path', 'type': 'str'}, + 'contents': {'key': 'properties.contents', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(StaticSitesWorkflowPreview, self).__init__(kind=kind, **kwargs) + self.path = None + self.contents = None + + +class StaticSitesWorkflowPreviewRequest(ProxyOnlyResource): + """Request entity for previewing the Static Site workflow. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param repository_url: URL for the repository of the static site. + :type repository_url: str + :param branch: The target branch in the repository. + :type branch: str + :param build_properties: Build properties to configure on the repository. + :type build_properties: ~azure.mgmt.web.v2021_01_15.models.StaticSiteBuildProperties + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'repository_url': {'key': 'properties.repositoryUrl', 'type': 'str'}, + 'branch': {'key': 'properties.branch', 'type': 'str'}, + 'build_properties': {'key': 'properties.buildProperties', 'type': 'StaticSiteBuildProperties'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + repository_url: Optional[str] = None, + branch: Optional[str] = None, + build_properties: Optional["StaticSiteBuildProperties"] = None, + **kwargs + ): + super(StaticSitesWorkflowPreviewRequest, self).__init__(kind=kind, **kwargs) + self.repository_url = repository_url + self.branch = branch + self.build_properties = build_properties + + +class StaticSiteTemplateOptions(msrest.serialization.Model): + """Template Options for the static site. + + :param template_repository_url: URL of the template repository. The newly generated repository + will be based on this one. + :type template_repository_url: str + :param owner: Owner of the newly generated repository. + :type owner: str + :param repository_name: Name of the newly generated repository. + :type repository_name: str + :param description: Description of the newly generated repository. + :type description: str + :param is_private: Whether or not the newly generated repository is a private repository. + Defaults to false (i.e. public). + :type is_private: bool + """ + + _attribute_map = { + 'template_repository_url': {'key': 'templateRepositoryUrl', 'type': 'str'}, + 'owner': {'key': 'owner', 'type': 'str'}, + 'repository_name': {'key': 'repositoryName', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'is_private': {'key': 'isPrivate', 'type': 'bool'}, + } + + def __init__( + self, + *, + template_repository_url: Optional[str] = None, + owner: Optional[str] = None, + repository_name: Optional[str] = None, + description: Optional[str] = None, + is_private: Optional[bool] = None, + **kwargs + ): + super(StaticSiteTemplateOptions, self).__init__(**kwargs) + self.template_repository_url = template_repository_url + self.owner = owner + self.repository_name = repository_name + self.description = description + self.is_private = is_private + + +class StaticSiteUserARMResource(ProxyOnlyResource): + """Static Site User ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar provider: The identity provider for the static site user. + :vartype provider: str + :ivar user_id: The user id for the static site user. + :vartype user_id: str + :ivar display_name: The display name for the static site user. + :vartype display_name: str + :param roles: The roles for the static site user, in free-form string format. + :type roles: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'provider': {'readonly': True}, + 'user_id': {'readonly': True}, + 'display_name': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'provider': {'key': 'properties.provider', 'type': 'str'}, + 'user_id': {'key': 'properties.userId', 'type': 'str'}, + 'display_name': {'key': 'properties.displayName', 'type': 'str'}, + 'roles': {'key': 'properties.roles', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + roles: Optional[str] = None, + **kwargs + ): + super(StaticSiteUserARMResource, self).__init__(kind=kind, **kwargs) + self.provider = None + self.user_id = None + self.display_name = None + self.roles = roles + + +class StaticSiteUserCollection(msrest.serialization.Model): + """Collection of static site custom users. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserARMResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[StaticSiteUserARMResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["StaticSiteUserARMResource"], + **kwargs + ): + super(StaticSiteUserCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class StaticSiteUserInvitationRequestResource(ProxyOnlyResource): + """Static sites user roles invitation resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param domain: The domain name for the static site custom domain. + :type domain: str + :param provider: The identity provider for the static site user. + :type provider: str + :param user_details: The user id for the static site user. + :type user_details: str + :param roles: The roles for the static site user, in free-form string format. + :type roles: str + :param num_hours_to_expiration: The number of hours the sas token stays valid. + :type num_hours_to_expiration: int + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'domain': {'key': 'properties.domain', 'type': 'str'}, + 'provider': {'key': 'properties.provider', 'type': 'str'}, + 'user_details': {'key': 'properties.userDetails', 'type': 'str'}, + 'roles': {'key': 'properties.roles', 'type': 'str'}, + 'num_hours_to_expiration': {'key': 'properties.numHoursToExpiration', 'type': 'int'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + domain: Optional[str] = None, + provider: Optional[str] = None, + user_details: Optional[str] = None, + roles: Optional[str] = None, + num_hours_to_expiration: Optional[int] = None, + **kwargs + ): + super(StaticSiteUserInvitationRequestResource, self).__init__(kind=kind, **kwargs) + self.domain = domain + self.provider = provider + self.user_details = user_details + self.roles = roles + self.num_hours_to_expiration = num_hours_to_expiration + + +class StaticSiteUserInvitationResponseResource(ProxyOnlyResource): + """Static sites user roles invitation link resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar expires_on: The expiration time of the invitation. + :vartype expires_on: ~datetime.datetime + :ivar invitation_url: The url for the invitation link. + :vartype invitation_url: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'expires_on': {'readonly': True}, + 'invitation_url': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'expires_on': {'key': 'properties.expiresOn', 'type': 'iso-8601'}, + 'invitation_url': {'key': 'properties.invitationUrl', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(StaticSiteUserInvitationResponseResource, self).__init__(kind=kind, **kwargs) + self.expires_on = None + self.invitation_url = None + + +class StaticSiteUserProvidedFunctionApp(ProxyOnlyResource): + """A static site user provided function. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param function_app_resource_id: The resource id of the function app registered with the static + site. + :type function_app_resource_id: str + :param function_app_region: The region of the function app registered with the static site. + :type function_app_region: str + :ivar created_on: The date and time on which the function app was registered with the static + site. + :vartype created_on: ~datetime.datetime + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'created_on': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'function_app_resource_id': {'key': 'properties.functionAppResourceId', 'type': 'str'}, + 'function_app_region': {'key': 'properties.functionAppRegion', 'type': 'str'}, + 'created_on': {'key': 'properties.createdOn', 'type': 'iso-8601'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + function_app_resource_id: Optional[str] = None, + function_app_region: Optional[str] = None, + **kwargs + ): + super(StaticSiteUserProvidedFunctionApp, self).__init__(kind=kind, **kwargs) + self.function_app_resource_id = function_app_resource_id + self.function_app_region = function_app_region + self.created_on = None + + +class StaticSiteUserProvidedFunctionAppARMResource(ProxyOnlyResource): + """Static Site User Provided Function App ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param function_app_resource_id: The resource id of the function app registered with the static + site. + :type function_app_resource_id: str + :param function_app_region: The region of the function app registered with the static site. + :type function_app_region: str + :ivar created_on: The date and time on which the function app was registered with the static + site. + :vartype created_on: ~datetime.datetime + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'created_on': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'function_app_resource_id': {'key': 'properties.functionAppResourceId', 'type': 'str'}, + 'function_app_region': {'key': 'properties.functionAppRegion', 'type': 'str'}, + 'created_on': {'key': 'properties.createdOn', 'type': 'iso-8601'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + function_app_resource_id: Optional[str] = None, + function_app_region: Optional[str] = None, + **kwargs + ): + super(StaticSiteUserProvidedFunctionAppARMResource, self).__init__(kind=kind, **kwargs) + self.function_app_resource_id = function_app_resource_id + self.function_app_region = function_app_region + self.created_on = None + + +class StaticSiteUserProvidedFunctionAppsCollection(msrest.serialization.Model): + """Collection of static site user provided function apps. + + 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 value: Required. Collection of resources. + :type value: + list[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppARMResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[StaticSiteUserProvidedFunctionAppARMResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["StaticSiteUserProvidedFunctionAppARMResource"], + **kwargs + ): + super(StaticSiteUserProvidedFunctionAppsCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class StaticSiteZipDeploymentARMResource(ProxyOnlyResource): + """Static site zip deployment ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param app_zip_url: URL for the zipped app content. + :type app_zip_url: str + :param api_zip_url: URL for the zipped api content. + :type api_zip_url: str + :param deployment_title: A title to label the deployment. + :type deployment_title: str + :param provider: The provider submitting this deployment. + :type provider: str + :param function_language: The language of the api content, if it exists. + :type function_language: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'app_zip_url': {'key': 'properties.appZipUrl', 'type': 'str'}, + 'api_zip_url': {'key': 'properties.apiZipUrl', 'type': 'str'}, + 'deployment_title': {'key': 'properties.deploymentTitle', 'type': 'str'}, + 'provider': {'key': 'properties.provider', 'type': 'str'}, + 'function_language': {'key': 'properties.functionLanguage', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + app_zip_url: Optional[str] = None, + api_zip_url: Optional[str] = None, + deployment_title: Optional[str] = None, + provider: Optional[str] = None, + function_language: Optional[str] = None, + **kwargs + ): + super(StaticSiteZipDeploymentARMResource, self).__init__(kind=kind, **kwargs) + self.app_zip_url = app_zip_url + self.api_zip_url = api_zip_url + self.deployment_title = deployment_title + self.provider = provider + self.function_language = function_language + + +class Status(msrest.serialization.Model): + """Identify the status of the most severe insight generated by the detector. + + :param message: Descriptive message. + :type message: str + :param status_id: Level of the most severe insight generated by the detector. Possible values + include: "Critical", "Warning", "Info", "Success", "None". + :type status_id: str or ~azure.mgmt.web.v2021_01_15.models.InsightStatus + """ + + _attribute_map = { + 'message': {'key': 'message', 'type': 'str'}, + 'status_id': {'key': 'statusId', 'type': 'str'}, + } + + def __init__( + self, + *, + message: Optional[str] = None, + status_id: Optional[Union[str, "InsightStatus"]] = None, + **kwargs + ): + super(Status, self).__init__(**kwargs) + self.message = message + self.status_id = status_id + + +class StatusCodesBasedTrigger(msrest.serialization.Model): + """Trigger based on status code. + + :param status: HTTP status code. + :type status: int + :param sub_status: Request Sub Status. + :type sub_status: int + :param win32_status: Win32 error code. + :type win32_status: int + :param count: Request Count. + :type count: int + :param time_interval: Time interval. + :type time_interval: str + :param path: Request Path. + :type path: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'int'}, + 'sub_status': {'key': 'subStatus', 'type': 'int'}, + 'win32_status': {'key': 'win32Status', 'type': 'int'}, + 'count': {'key': 'count', 'type': 'int'}, + 'time_interval': {'key': 'timeInterval', 'type': 'str'}, + 'path': {'key': 'path', 'type': 'str'}, + } + + def __init__( + self, + *, + status: Optional[int] = None, + sub_status: Optional[int] = None, + win32_status: Optional[int] = None, + count: Optional[int] = None, + time_interval: Optional[str] = None, + path: Optional[str] = None, + **kwargs + ): + super(StatusCodesBasedTrigger, self).__init__(**kwargs) + self.status = status + self.sub_status = sub_status + self.win32_status = win32_status + self.count = count + self.time_interval = time_interval + self.path = path + + +class StatusCodesRangeBasedTrigger(msrest.serialization.Model): + """Trigger based on range of status codes. + + :param status_codes: HTTP status code. + :type status_codes: str + :param path: + :type path: str + :param count: Request Count. + :type count: int + :param time_interval: Time interval. + :type time_interval: str + """ + + _attribute_map = { + 'status_codes': {'key': 'statusCodes', 'type': 'str'}, + 'path': {'key': 'path', 'type': 'str'}, + 'count': {'key': 'count', 'type': 'int'}, + 'time_interval': {'key': 'timeInterval', 'type': 'str'}, + } + + def __init__( + self, + *, + status_codes: Optional[str] = None, + path: Optional[str] = None, + count: Optional[int] = None, + time_interval: Optional[str] = None, + **kwargs + ): + super(StatusCodesRangeBasedTrigger, self).__init__(**kwargs) + self.status_codes = status_codes + self.path = path + self.count = count + self.time_interval = time_interval + + +class StorageMigrationOptions(ProxyOnlyResource): + """Options for app content migration. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param azurefiles_connection_string: AzureFiles connection string. + :type azurefiles_connection_string: str + :param azurefiles_share: AzureFiles share. + :type azurefiles_share: str + :param switch_site_after_migration: :code:`true`if the app should be switched + over; otherwise, :code:`false`. + :type switch_site_after_migration: bool + :param block_write_access_to_site: :code:`true` if the app should be read only + during copy operation; otherwise, :code:`false`. + :type block_write_access_to_site: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'azurefiles_connection_string': {'key': 'properties.azurefilesConnectionString', 'type': 'str'}, + 'azurefiles_share': {'key': 'properties.azurefilesShare', 'type': 'str'}, + 'switch_site_after_migration': {'key': 'properties.switchSiteAfterMigration', 'type': 'bool'}, + 'block_write_access_to_site': {'key': 'properties.blockWriteAccessToSite', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + azurefiles_connection_string: Optional[str] = None, + azurefiles_share: Optional[str] = None, + switch_site_after_migration: Optional[bool] = False, + block_write_access_to_site: Optional[bool] = False, + **kwargs + ): + super(StorageMigrationOptions, self).__init__(kind=kind, **kwargs) + self.azurefiles_connection_string = azurefiles_connection_string + self.azurefiles_share = azurefiles_share + self.switch_site_after_migration = switch_site_after_migration + self.block_write_access_to_site = block_write_access_to_site + + +class StorageMigrationResponse(ProxyOnlyResource): + """Response for a migration of app content request. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar operation_id: When server starts the migration process, it will return an operation ID + identifying that particular migration operation. + :vartype operation_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'operation_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'operation_id': {'key': 'properties.operationId', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(StorageMigrationResponse, self).__init__(kind=kind, **kwargs) + self.operation_id = None + + +class StringDictionary(ProxyOnlyResource): + """String dictionary resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param properties: Settings. + :type properties: dict[str, str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': '{str}'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + properties: Optional[Dict[str, str]] = None, + **kwargs + ): + super(StringDictionary, self).__init__(kind=kind, **kwargs) + self.properties = properties + + +class StringList(ProxyOnlyResource): + """String list resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param properties: List of string resources. + :type properties: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': '[str]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + properties: Optional[List[str]] = None, + **kwargs + ): + super(StringList, self).__init__(kind=kind, **kwargs) + self.properties = properties + + +class SupportTopic(msrest.serialization.Model): + """Defines a unique Support Topic. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Support Topic Id. + :vartype id: str + :ivar pes_id: Unique resource Id. + :vartype pes_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'pes_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'pes_id': {'key': 'pesId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SupportTopic, self).__init__(**kwargs) + self.id = None + self.pes_id = None + + +class SwiftVirtualNetwork(ProxyOnlyResource): + """Swift Virtual Network Contract. This is used to enable the new Swift way of doing virtual network integration. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param subnet_resource_id: The Virtual Network subnet's resource ID. This is the subnet that + this Web App will join. This subnet must have a delegation to Microsoft.Web/serverFarms defined + first. + :type subnet_resource_id: str + :param swift_supported: A flag that specifies if the scale unit this Web App is on supports + Swift integration. + :type swift_supported: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'subnet_resource_id': {'key': 'properties.subnetResourceId', 'type': 'str'}, + 'swift_supported': {'key': 'properties.swiftSupported', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + subnet_resource_id: Optional[str] = None, + swift_supported: Optional[bool] = None, + **kwargs + ): + super(SwiftVirtualNetwork, self).__init__(kind=kind, **kwargs) + self.subnet_resource_id = subnet_resource_id + self.swift_supported = swift_supported + + +class TldLegalAgreement(msrest.serialization.Model): + """Legal agreement for a top level domain. + + All required parameters must be populated in order to send to Azure. + + :param agreement_key: Required. Unique identifier for the agreement. + :type agreement_key: str + :param title: Required. Agreement title. + :type title: str + :param content: Required. Agreement details. + :type content: str + :param url: URL where a copy of the agreement details is hosted. + :type url: str + """ + + _validation = { + 'agreement_key': {'required': True}, + 'title': {'required': True}, + 'content': {'required': True}, + } + + _attribute_map = { + 'agreement_key': {'key': 'agreementKey', 'type': 'str'}, + 'title': {'key': 'title', 'type': 'str'}, + 'content': {'key': 'content', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + } + + def __init__( + self, + *, + agreement_key: str, + title: str, + content: str, + url: Optional[str] = None, + **kwargs + ): + super(TldLegalAgreement, self).__init__(**kwargs) + self.agreement_key = agreement_key + self.title = title + self.content = content + self.url = url + + +class TldLegalAgreementCollection(msrest.serialization.Model): + """Collection of top-level domain legal agreements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.TldLegalAgreement] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TldLegalAgreement]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["TldLegalAgreement"], + **kwargs + ): + super(TldLegalAgreementCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class TokenStore(ProxyOnlyResource): + """The configuration settings of the token store. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`true` to durably store platform-specific security tokens + that are obtained during login flows; otherwise, :code:`false`. + The default is :code:`false`. + :type enabled: bool + :param token_refresh_extension_hours: The number of hours after session token expiration that a + session token can be used to + call the token refresh API. The default is 72 hours. + :type token_refresh_extension_hours: float + :param file_system: The configuration settings of the storage of the tokens if a file system is + used. + :type file_system: ~azure.mgmt.web.v2021_01_15.models.FileSystemTokenStore + :param azure_blob_storage: The configuration settings of the storage of the tokens if blob + storage is used. + :type azure_blob_storage: ~azure.mgmt.web.v2021_01_15.models.BlobStorageTokenStore + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'token_refresh_extension_hours': {'key': 'properties.tokenRefreshExtensionHours', 'type': 'float'}, + 'file_system': {'key': 'properties.fileSystem', 'type': 'FileSystemTokenStore'}, + 'azure_blob_storage': {'key': 'properties.azureBlobStorage', 'type': 'BlobStorageTokenStore'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + enabled: Optional[bool] = None, + token_refresh_extension_hours: Optional[float] = None, + file_system: Optional["FileSystemTokenStore"] = None, + azure_blob_storage: Optional["BlobStorageTokenStore"] = None, + **kwargs + ): + super(TokenStore, self).__init__(kind=kind, **kwargs) + self.enabled = enabled + self.token_refresh_extension_hours = token_refresh_extension_hours + self.file_system = file_system + self.azure_blob_storage = azure_blob_storage + + +class TopLevelDomain(ProxyOnlyResource): + """A top level domain object. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param privacy: If :code:`true`, then the top level domain supports domain + privacy; otherwise, :code:`false`. + :type privacy: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'privacy': {'key': 'properties.privacy', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + privacy: Optional[bool] = None, + **kwargs + ): + super(TopLevelDomain, self).__init__(kind=kind, **kwargs) + self.privacy = privacy + + +class TopLevelDomainAgreementOption(msrest.serialization.Model): + """Options for retrieving the list of top level domain legal agreements. + + :param include_privacy: If :code:`true`, then the list of agreements will include + agreements for domain privacy as well; otherwise, :code:`false`. + :type include_privacy: bool + :param for_transfer: If :code:`true`, then the list of agreements will include + agreements for domain transfer as well; otherwise, :code:`false`. + :type for_transfer: bool + """ + + _attribute_map = { + 'include_privacy': {'key': 'includePrivacy', 'type': 'bool'}, + 'for_transfer': {'key': 'forTransfer', 'type': 'bool'}, + } + + def __init__( + self, + *, + include_privacy: Optional[bool] = None, + for_transfer: Optional[bool] = None, + **kwargs + ): + super(TopLevelDomainAgreementOption, self).__init__(**kwargs) + self.include_privacy = include_privacy + self.for_transfer = for_transfer + + +class TopLevelDomainCollection(msrest.serialization.Model): + """Collection of Top-level domains. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.TopLevelDomain] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TopLevelDomain]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["TopLevelDomain"], + **kwargs + ): + super(TopLevelDomainCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class TriggeredJobHistory(ProxyOnlyResource): + """Triggered Web Job History. List of Triggered Web Job Run Information elements. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param runs: List of triggered web job runs. + :type runs: list[~azure.mgmt.web.v2021_01_15.models.TriggeredJobRun] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'runs': {'key': 'properties.runs', 'type': '[TriggeredJobRun]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + runs: Optional[List["TriggeredJobRun"]] = None, + **kwargs + ): + super(TriggeredJobHistory, self).__init__(kind=kind, **kwargs) + self.runs = runs + + +class TriggeredJobHistoryCollection(msrest.serialization.Model): + """Collection of Kudu continuous web job information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.TriggeredJobHistory] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TriggeredJobHistory]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["TriggeredJobHistory"], + **kwargs + ): + super(TriggeredJobHistoryCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class TriggeredJobRun(ProxyOnlyResource): + """Triggered Web Job Run Information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param web_job_id: Job ID. + :type web_job_id: str + :param web_job_name: Job name. + :type web_job_name: str + :param status: Job status. Possible values include: "Success", "Failed", "Error". + :type status: str or ~azure.mgmt.web.v2021_01_15.models.TriggeredWebJobStatus + :param start_time: Start time. + :type start_time: ~datetime.datetime + :param end_time: End time. + :type end_time: ~datetime.datetime + :param duration: Job duration. + :type duration: str + :param output_url: Output URL. + :type output_url: str + :param error_url: Error URL. + :type error_url: str + :param url: Job URL. + :type url: str + :param job_name: Job name. + :type job_name: str + :param trigger: Job trigger. + :type trigger: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'web_job_id': {'key': 'properties.web_job_id', 'type': 'str'}, + 'web_job_name': {'key': 'properties.web_job_name', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'start_time': {'key': 'properties.start_time', 'type': 'iso-8601'}, + 'end_time': {'key': 'properties.end_time', 'type': 'iso-8601'}, + 'duration': {'key': 'properties.duration', 'type': 'str'}, + 'output_url': {'key': 'properties.output_url', 'type': 'str'}, + 'error_url': {'key': 'properties.error_url', 'type': 'str'}, + 'url': {'key': 'properties.url', 'type': 'str'}, + 'job_name': {'key': 'properties.job_name', 'type': 'str'}, + 'trigger': {'key': 'properties.trigger', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + web_job_id: Optional[str] = None, + web_job_name: Optional[str] = None, + status: Optional[Union[str, "TriggeredWebJobStatus"]] = None, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + duration: Optional[str] = None, + output_url: Optional[str] = None, + error_url: Optional[str] = None, + url: Optional[str] = None, + job_name: Optional[str] = None, + trigger: Optional[str] = None, + **kwargs + ): + super(TriggeredJobRun, self).__init__(kind=kind, **kwargs) + self.web_job_id = web_job_id + self.web_job_name = web_job_name + self.status = status + self.start_time = start_time + self.end_time = end_time + self.duration = duration + self.output_url = output_url + self.error_url = error_url + self.url = url + self.job_name = job_name + self.trigger = trigger + + +class TriggeredWebJob(ProxyOnlyResource): + """Triggered Web Job Information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param latest_run: Latest job run information. + :type latest_run: ~azure.mgmt.web.v2021_01_15.models.TriggeredJobRun + :param history_url: History URL. + :type history_url: str + :param scheduler_logs_url: Scheduler Logs URL. + :type scheduler_logs_url: str + :param run_command: Run command. + :type run_command: str + :param url: Job URL. + :type url: str + :param extra_info_url: Extra Info URL. + :type extra_info_url: str + :param web_job_type: Job type. Possible values include: "Continuous", "Triggered". + :type web_job_type: str or ~azure.mgmt.web.v2021_01_15.models.WebJobType + :param error: Error information. + :type error: str + :param using_sdk: Using SDK?. + :type using_sdk: bool + :param settings: Job settings. + :type settings: dict[str, any] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'latest_run': {'key': 'properties.latest_run', 'type': 'TriggeredJobRun'}, + 'history_url': {'key': 'properties.history_url', 'type': 'str'}, + 'scheduler_logs_url': {'key': 'properties.scheduler_logs_url', 'type': 'str'}, + 'run_command': {'key': 'properties.run_command', 'type': 'str'}, + 'url': {'key': 'properties.url', 'type': 'str'}, + 'extra_info_url': {'key': 'properties.extra_info_url', 'type': 'str'}, + 'web_job_type': {'key': 'properties.web_job_type', 'type': 'str'}, + 'error': {'key': 'properties.error', 'type': 'str'}, + 'using_sdk': {'key': 'properties.using_sdk', 'type': 'bool'}, + 'settings': {'key': 'properties.settings', 'type': '{object}'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + latest_run: Optional["TriggeredJobRun"] = None, + history_url: Optional[str] = None, + scheduler_logs_url: Optional[str] = None, + run_command: Optional[str] = None, + url: Optional[str] = None, + extra_info_url: Optional[str] = None, + web_job_type: Optional[Union[str, "WebJobType"]] = None, + error: Optional[str] = None, + using_sdk: Optional[bool] = None, + settings: Optional[Dict[str, Any]] = None, + **kwargs + ): + super(TriggeredWebJob, self).__init__(kind=kind, **kwargs) + self.latest_run = latest_run + self.history_url = history_url + self.scheduler_logs_url = scheduler_logs_url + self.run_command = run_command + self.url = url + self.extra_info_url = extra_info_url + self.web_job_type = web_job_type + self.error = error + self.using_sdk = using_sdk + self.settings = settings + + +class TriggeredWebJobCollection(msrest.serialization.Model): + """Collection of Kudu continuous web job information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.TriggeredWebJob] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TriggeredWebJob]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["TriggeredWebJob"], + **kwargs + ): + super(TriggeredWebJobCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class Twitter(ProxyOnlyResource): + """The configuration settings of the Twitter provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param enabled: :code:`false` if the Twitter provider should not be enabled + despite the set registration; otherwise, :code:`true`. + :type enabled: bool + :param registration: The configuration settings of the app registration for the Twitter + provider. + :type registration: ~azure.mgmt.web.v2021_01_15.models.TwitterRegistration + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'registration': {'key': 'properties.registration', 'type': 'TwitterRegistration'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + enabled: Optional[bool] = None, + registration: Optional["TwitterRegistration"] = None, + **kwargs + ): + super(Twitter, self).__init__(kind=kind, **kwargs) + self.enabled = enabled + self.registration = registration + + +class TwitterRegistration(ProxyOnlyResource): + """The configuration settings of the app registration for the Twitter provider. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param consumer_key: The OAuth 1.0a consumer key of the Twitter application used for sign-in. + This setting is required for enabling Twitter Sign-In. + Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in. + :type consumer_key: str + :param consumer_secret_setting_name: The app setting name that contains the OAuth 1.0a consumer + secret of the Twitter + application used for sign-in. + :type consumer_secret_setting_name: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'consumer_key': {'key': 'properties.consumerKey', 'type': 'str'}, + 'consumer_secret_setting_name': {'key': 'properties.consumerSecretSettingName', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + consumer_key: Optional[str] = None, + consumer_secret_setting_name: Optional[str] = None, + **kwargs + ): + super(TwitterRegistration, self).__init__(kind=kind, **kwargs) + self.consumer_key = consumer_key + self.consumer_secret_setting_name = consumer_secret_setting_name + + +class Usage(ProxyOnlyResource): + """Usage of the quota resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar display_name: Friendly name shown in the UI. + :vartype display_name: str + :ivar resource_name: Name of the quota resource. + :vartype resource_name: str + :ivar unit: Units of measurement for the quota resource. + :vartype unit: str + :ivar current_value: The current value of the resource counter. + :vartype current_value: long + :ivar limit: The resource limit. + :vartype limit: long + :ivar next_reset_time: Next reset time for the resource counter. + :vartype next_reset_time: ~datetime.datetime + :ivar compute_mode: Compute mode used for this usage. Possible values include: "Shared", + "Dedicated", "Dynamic". + :vartype compute_mode: str or ~azure.mgmt.web.v2021_01_15.models.ComputeModeOptions + :ivar site_mode: Site mode used for this usage. + :vartype site_mode: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'display_name': {'readonly': True}, + 'resource_name': {'readonly': True}, + 'unit': {'readonly': True}, + 'current_value': {'readonly': True}, + 'limit': {'readonly': True}, + 'next_reset_time': {'readonly': True}, + 'compute_mode': {'readonly': True}, + 'site_mode': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'display_name': {'key': 'properties.displayName', 'type': 'str'}, + 'resource_name': {'key': 'properties.resourceName', 'type': 'str'}, + 'unit': {'key': 'properties.unit', 'type': 'str'}, + 'current_value': {'key': 'properties.currentValue', 'type': 'long'}, + 'limit': {'key': 'properties.limit', 'type': 'long'}, + 'next_reset_time': {'key': 'properties.nextResetTime', 'type': 'iso-8601'}, + 'compute_mode': {'key': 'properties.computeMode', 'type': 'str'}, + 'site_mode': {'key': 'properties.siteMode', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(Usage, self).__init__(kind=kind, **kwargs) + self.display_name = None + self.resource_name = None + self.unit = None + self.current_value = None + self.limit = None + self.next_reset_time = None + self.compute_mode = None + self.site_mode = None + + +class UsageCollection(msrest.serialization.Model): + """Collection of usages. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.Usage] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Usage]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["Usage"], + **kwargs + ): + super(UsageCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class User(ProxyOnlyResource): + """User credentials used for publishing activity. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param publishing_user_name: Username used for publishing. + :type publishing_user_name: str + :param publishing_password: Password used for publishing. + :type publishing_password: str + :param publishing_password_hash: Password hash used for publishing. + :type publishing_password_hash: str + :param publishing_password_hash_salt: Password hash salt used for publishing. + :type publishing_password_hash_salt: str + :param scm_uri: Url of SCM site. + :type scm_uri: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'publishing_user_name': {'key': 'properties.publishingUserName', 'type': 'str'}, + 'publishing_password': {'key': 'properties.publishingPassword', 'type': 'str'}, + 'publishing_password_hash': {'key': 'properties.publishingPasswordHash', 'type': 'str'}, + 'publishing_password_hash_salt': {'key': 'properties.publishingPasswordHashSalt', 'type': 'str'}, + 'scm_uri': {'key': 'properties.scmUri', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + publishing_user_name: Optional[str] = None, + publishing_password: Optional[str] = None, + publishing_password_hash: Optional[str] = None, + publishing_password_hash_salt: Optional[str] = None, + scm_uri: Optional[str] = None, + **kwargs + ): + super(User, self).__init__(kind=kind, **kwargs) + self.publishing_user_name = publishing_user_name + self.publishing_password = publishing_password + self.publishing_password_hash = publishing_password_hash + self.publishing_password_hash_salt = publishing_password_hash_salt + self.scm_uri = scm_uri + + +class UserAssignedIdentity(msrest.serialization.Model): + """User Assigned identity. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar principal_id: Principal Id of user assigned identity. + :vartype principal_id: str + :ivar client_id: Client Id of user assigned identity. + :vartype client_id: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'client_id': {'readonly': True}, + } + + _attribute_map = { + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'client_id': {'key': 'clientId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(UserAssignedIdentity, self).__init__(**kwargs) + self.principal_id = None + self.client_id = None + + +class ValidateRequest(msrest.serialization.Model): + """Resource validation request content. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. Resource name to verify. + :type name: str + :param type: Required. Resource type used for verification. Possible values include: + "ServerFarm", "Site", "Microsoft.Web/hostingEnvironments". + :type type: str or ~azure.mgmt.web.v2021_01_15.models.ValidateResourceTypes + :param location: Required. Expected location of the resource. + :type location: str + :param server_farm_id: ARM resource ID of an App Service plan that would host the app. + :type server_farm_id: str + :param sku_name: Name of the target SKU for the App Service plan. + :type sku_name: str + :param need_linux_workers: :code:`true` if App Service plan is for Linux workers; + otherwise, :code:`false`. + :type need_linux_workers: bool + :param is_spot: :code:`true` if App Service plan is for Spot instances; otherwise, + :code:`false`. + :type is_spot: bool + :param capacity: Target capacity of the App Service plan (number of VMs). + :type capacity: int + :param hosting_environment: Name of App Service Environment where app or App Service plan + should be created. + :type hosting_environment: str + :param is_xenon: :code:`true` if App Service plan is running as a windows + container. + :type is_xenon: bool + :param container_registry_base_url: Base URL of the container registry. + :type container_registry_base_url: str + :param container_registry_username: Username for to access the container registry. + :type container_registry_username: str + :param container_registry_password: Password for to access the container registry. + :type container_registry_password: str + :param container_image_repository: Repository name (image name). + :type container_image_repository: str + :param container_image_tag: Image tag. + :type container_image_tag: str + :param container_image_platform: Platform (windows or linux). + :type container_image_platform: str + :param app_service_environment: App Service Environment Properties. + :type app_service_environment: ~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironment + """ + + _validation = { + 'name': {'required': True}, + 'type': {'required': True}, + 'location': {'required': True}, + 'capacity': {'minimum': 1}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'server_farm_id': {'key': 'properties.serverFarmId', 'type': 'str'}, + 'sku_name': {'key': 'properties.skuName', 'type': 'str'}, + 'need_linux_workers': {'key': 'properties.needLinuxWorkers', 'type': 'bool'}, + 'is_spot': {'key': 'properties.isSpot', 'type': 'bool'}, + 'capacity': {'key': 'properties.capacity', 'type': 'int'}, + 'hosting_environment': {'key': 'properties.hostingEnvironment', 'type': 'str'}, + 'is_xenon': {'key': 'properties.isXenon', 'type': 'bool'}, + 'container_registry_base_url': {'key': 'properties.containerRegistryBaseUrl', 'type': 'str'}, + 'container_registry_username': {'key': 'properties.containerRegistryUsername', 'type': 'str'}, + 'container_registry_password': {'key': 'properties.containerRegistryPassword', 'type': 'str'}, + 'container_image_repository': {'key': 'properties.containerImageRepository', 'type': 'str'}, + 'container_image_tag': {'key': 'properties.containerImageTag', 'type': 'str'}, + 'container_image_platform': {'key': 'properties.containerImagePlatform', 'type': 'str'}, + 'app_service_environment': {'key': 'properties.appServiceEnvironment', 'type': 'AppServiceEnvironment'}, + } + + def __init__( + self, + *, + name: str, + type: Union[str, "ValidateResourceTypes"], + location: str, + server_farm_id: Optional[str] = None, + sku_name: Optional[str] = None, + need_linux_workers: Optional[bool] = None, + is_spot: Optional[bool] = None, + capacity: Optional[int] = None, + hosting_environment: Optional[str] = None, + is_xenon: Optional[bool] = None, + container_registry_base_url: Optional[str] = None, + container_registry_username: Optional[str] = None, + container_registry_password: Optional[str] = None, + container_image_repository: Optional[str] = None, + container_image_tag: Optional[str] = None, + container_image_platform: Optional[str] = None, + app_service_environment: Optional["AppServiceEnvironment"] = None, + **kwargs + ): + super(ValidateRequest, self).__init__(**kwargs) + self.name = name + self.type = type + self.location = location + self.server_farm_id = server_farm_id + self.sku_name = sku_name + self.need_linux_workers = need_linux_workers + self.is_spot = is_spot + self.capacity = capacity + self.hosting_environment = hosting_environment + self.is_xenon = is_xenon + self.container_registry_base_url = container_registry_base_url + self.container_registry_username = container_registry_username + self.container_registry_password = container_registry_password + self.container_image_repository = container_image_repository + self.container_image_tag = container_image_tag + self.container_image_platform = container_image_platform + self.app_service_environment = app_service_environment + + +class ValidateResponse(msrest.serialization.Model): + """Describes the result of resource validation. + + :param status: Result of validation. + :type status: str + :param error: Error details for the case when validation fails. + :type error: ~azure.mgmt.web.v2021_01_15.models.ValidateResponseError + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'ValidateResponseError'}, + } + + def __init__( + self, + *, + status: Optional[str] = None, + error: Optional["ValidateResponseError"] = None, + **kwargs + ): + super(ValidateResponse, self).__init__(**kwargs) + self.status = status + self.error = error + + +class ValidateResponseError(msrest.serialization.Model): + """Error details for when validation fails. + + :param code: Validation error code. + :type code: str + :param message: Validation error message. + :type message: str + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__( + self, + *, + code: Optional[str] = None, + message: Optional[str] = None, + **kwargs + ): + super(ValidateResponseError, self).__init__(**kwargs) + self.code = code + self.message = message + + +class VirtualApplication(msrest.serialization.Model): + """Virtual application in an app. + + :param virtual_path: Virtual path. + :type virtual_path: str + :param physical_path: Physical path. + :type physical_path: str + :param preload_enabled: :code:`true` if preloading is enabled; otherwise, + :code:`false`. + :type preload_enabled: bool + :param virtual_directories: Virtual directories for virtual application. + :type virtual_directories: list[~azure.mgmt.web.v2021_01_15.models.VirtualDirectory] + """ + + _attribute_map = { + 'virtual_path': {'key': 'virtualPath', 'type': 'str'}, + 'physical_path': {'key': 'physicalPath', 'type': 'str'}, + 'preload_enabled': {'key': 'preloadEnabled', 'type': 'bool'}, + 'virtual_directories': {'key': 'virtualDirectories', 'type': '[VirtualDirectory]'}, + } + + def __init__( + self, + *, + virtual_path: Optional[str] = None, + physical_path: Optional[str] = None, + preload_enabled: Optional[bool] = None, + virtual_directories: Optional[List["VirtualDirectory"]] = None, + **kwargs + ): + super(VirtualApplication, self).__init__(**kwargs) + self.virtual_path = virtual_path + self.physical_path = physical_path + self.preload_enabled = preload_enabled + self.virtual_directories = virtual_directories + + +class VirtualDirectory(msrest.serialization.Model): + """Directory for virtual application. + + :param virtual_path: Path to virtual application. + :type virtual_path: str + :param physical_path: Physical path. + :type physical_path: str + """ + + _attribute_map = { + 'virtual_path': {'key': 'virtualPath', 'type': 'str'}, + 'physical_path': {'key': 'physicalPath', 'type': 'str'}, + } + + def __init__( + self, + *, + virtual_path: Optional[str] = None, + physical_path: Optional[str] = None, + **kwargs + ): + super(VirtualDirectory, self).__init__(**kwargs) + self.virtual_path = virtual_path + self.physical_path = physical_path + + +class VirtualIPMapping(msrest.serialization.Model): + """Virtual IP mapping. + + :param virtual_ip: Virtual IP address. + :type virtual_ip: str + :param internal_http_port: Internal HTTP port. + :type internal_http_port: int + :param internal_https_port: Internal HTTPS port. + :type internal_https_port: int + :param in_use: Is virtual IP mapping in use. + :type in_use: bool + :param service_name: name of the service that virtual IP is assigned to. + :type service_name: str + """ + + _attribute_map = { + 'virtual_ip': {'key': 'virtualIP', 'type': 'str'}, + 'internal_http_port': {'key': 'internalHttpPort', 'type': 'int'}, + 'internal_https_port': {'key': 'internalHttpsPort', 'type': 'int'}, + 'in_use': {'key': 'inUse', 'type': 'bool'}, + 'service_name': {'key': 'serviceName', 'type': 'str'}, + } + + def __init__( + self, + *, + virtual_ip: Optional[str] = None, + internal_http_port: Optional[int] = None, + internal_https_port: Optional[int] = None, + in_use: Optional[bool] = None, + service_name: Optional[str] = None, + **kwargs + ): + super(VirtualIPMapping, self).__init__(**kwargs) + self.virtual_ip = virtual_ip + self.internal_http_port = internal_http_port + self.internal_https_port = internal_https_port + self.in_use = in_use + self.service_name = service_name + + +class VirtualNetworkProfile(msrest.serialization.Model): + """Specification for using a Virtual Network. + + 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. Resource id of the Virtual Network. + :type id: str + :ivar name: Name of the Virtual Network (read-only). + :vartype name: str + :ivar type: Resource type of the Virtual Network (read-only). + :vartype type: str + :param subnet: Subnet within the Virtual Network. + :type subnet: str + """ + + _validation = { + 'id': {'required': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'subnet': {'key': 'subnet', 'type': 'str'}, + } + + def __init__( + self, + *, + id: str, + subnet: Optional[str] = None, + **kwargs + ): + super(VirtualNetworkProfile, self).__init__(**kwargs) + self.id = id + self.name = None + self.type = None + self.subnet = subnet + + +class VnetGateway(ProxyOnlyResource): + """The Virtual Network gateway contract. This is used to give the Virtual Network gateway access to the VPN package. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param vnet_name: The Virtual Network name. + :type vnet_name: str + :param vpn_package_uri: The URI where the VPN package can be downloaded. + :type vpn_package_uri: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'vnet_name': {'key': 'properties.vnetName', 'type': 'str'}, + 'vpn_package_uri': {'key': 'properties.vpnPackageUri', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + vnet_name: Optional[str] = None, + vpn_package_uri: Optional[str] = None, + **kwargs + ): + super(VnetGateway, self).__init__(kind=kind, **kwargs) + self.vnet_name = vnet_name + self.vpn_package_uri = vpn_package_uri + + +class VnetInfo(ProxyOnlyResource): + """Virtual Network information contract. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param vnet_resource_id: The Virtual Network's resource ID. + :type vnet_resource_id: str + :ivar cert_thumbprint: The client certificate thumbprint. + :vartype cert_thumbprint: str + :param cert_blob: A certificate file (.cer) blob containing the public key of the private key + used to authenticate a + Point-To-Site VPN connection. + :type cert_blob: str + :ivar routes: The routes that this Virtual Network connection uses. + :vartype routes: list[~azure.mgmt.web.v2021_01_15.models.VnetRoute] + :ivar resync_required: :code:`true` if a resync is required; otherwise, + :code:`false`. + :vartype resync_required: bool + :param dns_servers: DNS servers to be used by this Virtual Network. This should be a + comma-separated list of IP addresses. + :type dns_servers: str + :param is_swift: Flag that is used to denote if this is VNET injection. + :type is_swift: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'cert_thumbprint': {'readonly': True}, + 'routes': {'readonly': True}, + 'resync_required': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'vnet_resource_id': {'key': 'properties.vnetResourceId', 'type': 'str'}, + 'cert_thumbprint': {'key': 'properties.certThumbprint', 'type': 'str'}, + 'cert_blob': {'key': 'properties.certBlob', 'type': 'str'}, + 'routes': {'key': 'properties.routes', 'type': '[VnetRoute]'}, + 'resync_required': {'key': 'properties.resyncRequired', 'type': 'bool'}, + 'dns_servers': {'key': 'properties.dnsServers', 'type': 'str'}, + 'is_swift': {'key': 'properties.isSwift', 'type': 'bool'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + vnet_resource_id: Optional[str] = None, + cert_blob: Optional[str] = None, + dns_servers: Optional[str] = None, + is_swift: Optional[bool] = None, + **kwargs + ): + super(VnetInfo, self).__init__(kind=kind, **kwargs) + self.vnet_resource_id = vnet_resource_id + self.cert_thumbprint = None + self.cert_blob = cert_blob + self.routes = None + self.resync_required = None + self.dns_servers = dns_servers + self.is_swift = is_swift + + +class VnetParameters(ProxyOnlyResource): + """The required set of inputs to validate a VNET. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param vnet_resource_group: The Resource Group of the VNET to be validated. + :type vnet_resource_group: str + :param vnet_name: The name of the VNET to be validated. + :type vnet_name: str + :param vnet_subnet_name: The subnet name to be validated. + :type vnet_subnet_name: str + :param subnet_resource_id: The ARM Resource ID of the subnet to validate. + :type subnet_resource_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'vnet_resource_group': {'key': 'properties.vnetResourceGroup', 'type': 'str'}, + 'vnet_name': {'key': 'properties.vnetName', 'type': 'str'}, + 'vnet_subnet_name': {'key': 'properties.vnetSubnetName', 'type': 'str'}, + 'subnet_resource_id': {'key': 'properties.subnetResourceId', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + vnet_resource_group: Optional[str] = None, + vnet_name: Optional[str] = None, + vnet_subnet_name: Optional[str] = None, + subnet_resource_id: Optional[str] = None, + **kwargs + ): + super(VnetParameters, self).__init__(kind=kind, **kwargs) + self.vnet_resource_group = vnet_resource_group + self.vnet_name = vnet_name + self.vnet_subnet_name = vnet_subnet_name + self.subnet_resource_id = subnet_resource_id + + +class VnetRoute(ProxyOnlyResource): + """Virtual Network route contract used to pass routing information for a Virtual Network. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param start_address: The starting address for this route. This may also include a CIDR + notation, in which case the end address must not be specified. + :type start_address: str + :param end_address: The ending address for this route. If the start address is specified in + CIDR notation, this must be omitted. + :type end_address: str + :param route_type: The type of route this is: + DEFAULT - By default, every app has routes to the local address ranges specified by RFC1918 + INHERITED - Routes inherited from the real Virtual Network routes + STATIC - Static route set on the app only + + These values will be used for syncing an app's routes with those from a Virtual Network. + Possible values include: "DEFAULT", "INHERITED", "STATIC". + :type route_type: str or ~azure.mgmt.web.v2021_01_15.models.RouteType + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'start_address': {'key': 'properties.startAddress', 'type': 'str'}, + 'end_address': {'key': 'properties.endAddress', 'type': 'str'}, + 'route_type': {'key': 'properties.routeType', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + start_address: Optional[str] = None, + end_address: Optional[str] = None, + route_type: Optional[Union[str, "RouteType"]] = None, + **kwargs + ): + super(VnetRoute, self).__init__(kind=kind, **kwargs) + self.start_address = start_address + self.end_address = end_address + self.route_type = route_type + + +class VnetValidationFailureDetails(ProxyOnlyResource): + """A class that describes the reason for a validation failure. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param message: Text describing the validation outcome. + :type message: str + :param failed: A flag describing whether or not validation failed. + :type failed: bool + :param failed_tests: A list of tests that failed in the validation. + :type failed_tests: list[~azure.mgmt.web.v2021_01_15.models.VnetValidationTestFailure] + :param warnings: A list of warnings generated during validation. + :type warnings: list[~azure.mgmt.web.v2021_01_15.models.VnetValidationTestFailure] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'message': {'key': 'properties.message', 'type': 'str'}, + 'failed': {'key': 'properties.failed', 'type': 'bool'}, + 'failed_tests': {'key': 'properties.failedTests', 'type': '[VnetValidationTestFailure]'}, + 'warnings': {'key': 'properties.warnings', 'type': '[VnetValidationTestFailure]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + message: Optional[str] = None, + failed: Optional[bool] = None, + failed_tests: Optional[List["VnetValidationTestFailure"]] = None, + warnings: Optional[List["VnetValidationTestFailure"]] = None, + **kwargs + ): + super(VnetValidationFailureDetails, self).__init__(kind=kind, **kwargs) + self.message = message + self.failed = failed + self.failed_tests = failed_tests + self.warnings = warnings + + +class VnetValidationTestFailure(ProxyOnlyResource): + """A class that describes a test that failed during NSG and UDR validation. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param test_name: The name of the test that failed. + :type test_name: str + :param details: The details of what caused the failure, e.g. the blocking rule name, etc. + :type details: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'test_name': {'key': 'properties.testName', 'type': 'str'}, + 'details': {'key': 'properties.details', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + test_name: Optional[str] = None, + details: Optional[str] = None, + **kwargs + ): + super(VnetValidationTestFailure, self).__init__(kind=kind, **kwargs) + self.test_name = test_name + self.details = details + + +class WebAppCollection(msrest.serialization.Model): + """Collection of App Service apps. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.Site] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Site]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["Site"], + **kwargs + ): + super(WebAppCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class WebAppInstanceStatusCollection(msrest.serialization.Model): + """Collection of app instances. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.WebSiteInstanceStatus] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[WebSiteInstanceStatus]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["WebSiteInstanceStatus"], + **kwargs + ): + super(WebAppInstanceStatusCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class WebAppMajorVersion(msrest.serialization.Model): + """Web App stack major version. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar display_text: Web App stack major version (display only). + :vartype display_text: str + :ivar value: Web App stack major version name. + :vartype value: str + :ivar minor_versions: Minor versions associated with the major version. + :vartype minor_versions: list[~azure.mgmt.web.v2021_01_15.models.WebAppMinorVersion] + """ + + _validation = { + 'display_text': {'readonly': True}, + 'value': {'readonly': True}, + 'minor_versions': {'readonly': True}, + } + + _attribute_map = { + 'display_text': {'key': 'displayText', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + 'minor_versions': {'key': 'minorVersions', 'type': '[WebAppMinorVersion]'}, + } + + def __init__( + self, + **kwargs + ): + super(WebAppMajorVersion, self).__init__(**kwargs) + self.display_text = None + self.value = None + self.minor_versions = None + + +class WebAppMinorVersion(msrest.serialization.Model): + """Web App stack minor version. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar display_text: Web App stack minor version (display only). + :vartype display_text: str + :ivar value: Web App stack major version name. + :vartype value: str + :ivar stack_settings: Settings associated with the minor version. + :vartype stack_settings: ~azure.mgmt.web.v2021_01_15.models.WebAppRuntimes + """ + + _validation = { + 'display_text': {'readonly': True}, + 'value': {'readonly': True}, + 'stack_settings': {'readonly': True}, + } + + _attribute_map = { + 'display_text': {'key': 'displayText', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + 'stack_settings': {'key': 'stackSettings', 'type': 'WebAppRuntimes'}, + } + + def __init__( + self, + **kwargs + ): + super(WebAppMinorVersion, self).__init__(**kwargs) + self.display_text = None + self.value = None + self.stack_settings = None + + +class WebAppRuntimes(msrest.serialization.Model): + """Web App stack runtimes. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar linux_runtime_settings: Linux-specific settings associated with the minor version. + :vartype linux_runtime_settings: ~azure.mgmt.web.v2021_01_15.models.WebAppRuntimeSettings + :ivar windows_runtime_settings: Windows-specific settings associated with the minor version. + :vartype windows_runtime_settings: ~azure.mgmt.web.v2021_01_15.models.WebAppRuntimeSettings + :ivar linux_container_settings: Linux-specific settings associated with the Java container + minor version. + :vartype linux_container_settings: + ~azure.mgmt.web.v2021_01_15.models.LinuxJavaContainerSettings + :ivar windows_container_settings: Windows-specific settings associated with the Java container + minor version. + :vartype windows_container_settings: + ~azure.mgmt.web.v2021_01_15.models.WindowsJavaContainerSettings + """ + + _validation = { + 'linux_runtime_settings': {'readonly': True}, + 'windows_runtime_settings': {'readonly': True}, + 'linux_container_settings': {'readonly': True}, + 'windows_container_settings': {'readonly': True}, + } + + _attribute_map = { + 'linux_runtime_settings': {'key': 'linuxRuntimeSettings', 'type': 'WebAppRuntimeSettings'}, + 'windows_runtime_settings': {'key': 'windowsRuntimeSettings', 'type': 'WebAppRuntimeSettings'}, + 'linux_container_settings': {'key': 'linuxContainerSettings', 'type': 'LinuxJavaContainerSettings'}, + 'windows_container_settings': {'key': 'windowsContainerSettings', 'type': 'WindowsJavaContainerSettings'}, + } + + def __init__( + self, + **kwargs + ): + super(WebAppRuntimes, self).__init__(**kwargs) + self.linux_runtime_settings = None + self.windows_runtime_settings = None + self.linux_container_settings = None + self.windows_container_settings = None + + +class WebAppRuntimeSettings(msrest.serialization.Model): + """Web App runtime settings. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar runtime_version: Web App stack minor version (runtime only). + :vartype runtime_version: str + :ivar remote_debugging_supported: :code:`true` if remote debugging is supported + for the stack; otherwise, :code:`false`. + :vartype remote_debugging_supported: bool + :ivar app_insights_settings: Application Insights settings associated with the minor version. + :vartype app_insights_settings: + ~azure.mgmt.web.v2021_01_15.models.AppInsightsWebAppStackSettings + :ivar git_hub_action_settings: GitHub Actions settings associated with the minor version. + :vartype git_hub_action_settings: + ~azure.mgmt.web.v2021_01_15.models.GitHubActionWebAppStackSettings + :ivar is_preview: :code:`true` if the stack is in preview; otherwise, + :code:`false`. + :vartype is_preview: bool + :ivar is_deprecated: :code:`true` if the stack is deprecated; otherwise, + :code:`false`. + :vartype is_deprecated: bool + :ivar is_hidden: :code:`true` if the stack should be hidden; otherwise, + :code:`false`. + :vartype is_hidden: bool + :ivar end_of_life_date: End-of-life date for the minor version. + :vartype end_of_life_date: ~datetime.datetime + :ivar is_auto_update: :code:`true` if the stack version is auto-updated; + otherwise, :code:`false`. + :vartype is_auto_update: bool + :ivar is_early_access: :code:`true` if the minor version is early-access; + otherwise, :code:`false`. + :vartype is_early_access: bool + """ + + _validation = { + 'runtime_version': {'readonly': True}, + 'remote_debugging_supported': {'readonly': True}, + 'app_insights_settings': {'readonly': True}, + 'git_hub_action_settings': {'readonly': True}, + 'is_preview': {'readonly': True}, + 'is_deprecated': {'readonly': True}, + 'is_hidden': {'readonly': True}, + 'end_of_life_date': {'readonly': True}, + 'is_auto_update': {'readonly': True}, + 'is_early_access': {'readonly': True}, + } + + _attribute_map = { + 'runtime_version': {'key': 'runtimeVersion', 'type': 'str'}, + 'remote_debugging_supported': {'key': 'remoteDebuggingSupported', 'type': 'bool'}, + 'app_insights_settings': {'key': 'appInsightsSettings', 'type': 'AppInsightsWebAppStackSettings'}, + 'git_hub_action_settings': {'key': 'gitHubActionSettings', 'type': 'GitHubActionWebAppStackSettings'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + 'is_deprecated': {'key': 'isDeprecated', 'type': 'bool'}, + 'is_hidden': {'key': 'isHidden', 'type': 'bool'}, + 'end_of_life_date': {'key': 'endOfLifeDate', 'type': 'iso-8601'}, + 'is_auto_update': {'key': 'isAutoUpdate', 'type': 'bool'}, + 'is_early_access': {'key': 'isEarlyAccess', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(WebAppRuntimeSettings, self).__init__(**kwargs) + self.runtime_version = None + self.remote_debugging_supported = None + self.app_insights_settings = None + self.git_hub_action_settings = None + self.is_preview = None + self.is_deprecated = None + self.is_hidden = None + self.end_of_life_date = None + self.is_auto_update = None + self.is_early_access = None + + +class WebAppStack(ProxyOnlyResource): + """Web App stack. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :ivar location: Web App stack location. + :vartype location: str + :ivar display_text: Web App stack (display only). + :vartype display_text: str + :ivar value: Web App stack name. + :vartype value: str + :ivar major_versions: List of major versions available. + :vartype major_versions: list[~azure.mgmt.web.v2021_01_15.models.WebAppMajorVersion] + :ivar preferred_os: Web App stack preferred OS. Possible values include: "Windows", "Linux". + :vartype preferred_os: str or ~azure.mgmt.web.v2021_01_15.models.StackPreferredOs + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'readonly': True}, + 'display_text': {'readonly': True}, + 'value': {'readonly': True}, + 'major_versions': {'readonly': True}, + 'preferred_os': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'display_text': {'key': 'properties.displayText', 'type': 'str'}, + 'value': {'key': 'properties.value', 'type': 'str'}, + 'major_versions': {'key': 'properties.majorVersions', 'type': '[WebAppMajorVersion]'}, + 'preferred_os': {'key': 'properties.preferredOs', 'type': 'str'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + **kwargs + ): + super(WebAppStack, self).__init__(kind=kind, **kwargs) + self.location = None + self.display_text = None + self.value = None + self.major_versions = None + self.preferred_os = None + + +class WebAppStackCollection(msrest.serialization.Model): + """Collection of Web app Stacks. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.WebAppStack] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[WebAppStack]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["WebAppStack"], + **kwargs + ): + super(WebAppStackCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class WebJob(ProxyOnlyResource): + """Web Job Information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param run_command: Run command. + :type run_command: str + :param url: Job URL. + :type url: str + :param extra_info_url: Extra Info URL. + :type extra_info_url: str + :param web_job_type: Job type. Possible values include: "Continuous", "Triggered". + :type web_job_type: str or ~azure.mgmt.web.v2021_01_15.models.WebJobType + :param error: Error information. + :type error: str + :param using_sdk: Using SDK?. + :type using_sdk: bool + :param settings: Job settings. + :type settings: dict[str, any] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'run_command': {'key': 'properties.run_command', 'type': 'str'}, + 'url': {'key': 'properties.url', 'type': 'str'}, + 'extra_info_url': {'key': 'properties.extra_info_url', 'type': 'str'}, + 'web_job_type': {'key': 'properties.web_job_type', 'type': 'str'}, + 'error': {'key': 'properties.error', 'type': 'str'}, + 'using_sdk': {'key': 'properties.using_sdk', 'type': 'bool'}, + 'settings': {'key': 'properties.settings', 'type': '{object}'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + run_command: Optional[str] = None, + url: Optional[str] = None, + extra_info_url: Optional[str] = None, + web_job_type: Optional[Union[str, "WebJobType"]] = None, + error: Optional[str] = None, + using_sdk: Optional[bool] = None, + settings: Optional[Dict[str, Any]] = None, + **kwargs + ): + super(WebJob, self).__init__(kind=kind, **kwargs) + self.run_command = run_command + self.url = url + self.extra_info_url = extra_info_url + self.web_job_type = web_job_type + self.error = error + self.using_sdk = using_sdk + self.settings = settings + + +class WebJobCollection(msrest.serialization.Model): + """Collection of Kudu web job information elements. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.WebJob] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[WebJob]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["WebJob"], + **kwargs + ): + super(WebJobCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class WebSiteInstanceStatus(ProxyOnlyResource): + """WebSiteInstanceStatus. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param state: Possible values include: "READY", "STOPPED", "UNKNOWN". + :type state: str or ~azure.mgmt.web.v2021_01_15.models.SiteRuntimeState + :param status_url: Link to the GetStatusApi in Kudu. + :type status_url: str + :param detector_url: Link to the Diagnose and Solve Portal. + :type detector_url: str + :param console_url: Link to the console to web app instance. + :type console_url: str + :param health_check_url: Link to the console to web app instance. + :type health_check_url: str + :param containers: Dictionary of :code:``. + :type containers: dict[str, ~azure.mgmt.web.v2021_01_15.models.ContainerInfo] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'state': {'key': 'properties.state', 'type': 'str'}, + 'status_url': {'key': 'properties.statusUrl', 'type': 'str'}, + 'detector_url': {'key': 'properties.detectorUrl', 'type': 'str'}, + 'console_url': {'key': 'properties.consoleUrl', 'type': 'str'}, + 'health_check_url': {'key': 'properties.healthCheckUrl', 'type': 'str'}, + 'containers': {'key': 'properties.containers', 'type': '{ContainerInfo}'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + state: Optional[Union[str, "SiteRuntimeState"]] = None, + status_url: Optional[str] = None, + detector_url: Optional[str] = None, + console_url: Optional[str] = None, + health_check_url: Optional[str] = None, + containers: Optional[Dict[str, "ContainerInfo"]] = None, + **kwargs + ): + super(WebSiteInstanceStatus, self).__init__(kind=kind, **kwargs) + self.state = state + self.status_url = status_url + self.detector_url = detector_url + self.console_url = console_url + self.health_check_url = health_check_url + self.containers = containers + + +class WindowsJavaContainerSettings(msrest.serialization.Model): + """Windows Java Container settings. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar java_container: Java container (runtime only). + :vartype java_container: str + :ivar java_container_version: Java container version (runtime only). + :vartype java_container_version: str + :ivar is_preview: :code:`true` if the stack is in preview; otherwise, + :code:`false`. + :vartype is_preview: bool + :ivar is_deprecated: :code:`true` if the stack is deprecated; otherwise, + :code:`false`. + :vartype is_deprecated: bool + :ivar is_hidden: :code:`true` if the stack should be hidden; otherwise, + :code:`false`. + :vartype is_hidden: bool + :ivar end_of_life_date: End-of-life date for the minor version. + :vartype end_of_life_date: ~datetime.datetime + :ivar is_auto_update: :code:`true` if the stack version is auto-updated; + otherwise, :code:`false`. + :vartype is_auto_update: bool + :ivar is_early_access: :code:`true` if the minor version is early-access; + otherwise, :code:`false`. + :vartype is_early_access: bool + """ + + _validation = { + 'java_container': {'readonly': True}, + 'java_container_version': {'readonly': True}, + 'is_preview': {'readonly': True}, + 'is_deprecated': {'readonly': True}, + 'is_hidden': {'readonly': True}, + 'end_of_life_date': {'readonly': True}, + 'is_auto_update': {'readonly': True}, + 'is_early_access': {'readonly': True}, + } + + _attribute_map = { + 'java_container': {'key': 'javaContainer', 'type': 'str'}, + 'java_container_version': {'key': 'javaContainerVersion', 'type': 'str'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + 'is_deprecated': {'key': 'isDeprecated', 'type': 'bool'}, + 'is_hidden': {'key': 'isHidden', 'type': 'bool'}, + 'end_of_life_date': {'key': 'endOfLifeDate', 'type': 'iso-8601'}, + 'is_auto_update': {'key': 'isAutoUpdate', 'type': 'bool'}, + 'is_early_access': {'key': 'isEarlyAccess', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + super(WindowsJavaContainerSettings, self).__init__(**kwargs) + self.java_container = None + self.java_container_version = None + self.is_preview = None + self.is_deprecated = None + self.is_hidden = None + self.end_of_life_date = None + self.is_auto_update = None + self.is_early_access = None + + +class WorkerPoolCollection(msrest.serialization.Model): + """Collection of worker pools. + + 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 value: Required. Collection of resources. + :type value: list[~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + 'value': {'required': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[WorkerPoolResource]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["WorkerPoolResource"], + **kwargs + ): + super(WorkerPoolCollection, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class WorkerPoolResource(ProxyOnlyResource): + """Worker pool of an App Service Environment ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :param kind: Kind of resource. + :type kind: str + :ivar type: Resource type. + :vartype type: str + :param sku: Description of a SKU for a scalable resource. + :type sku: ~azure.mgmt.web.v2021_01_15.models.SkuDescription + :param worker_size_id: Worker size ID for referencing this worker pool. + :type worker_size_id: int + :param compute_mode: Shared or dedicated app hosting. Possible values include: "Shared", + "Dedicated", "Dynamic". + :type compute_mode: str or ~azure.mgmt.web.v2021_01_15.models.ComputeModeOptions + :param worker_size: VM size of the worker pool instances. + :type worker_size: str + :param worker_count: Number of instances in the worker pool. + :type worker_count: int + :ivar instance_names: Names of all instances in the worker pool (read only). + :vartype instance_names: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'instance_names': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'sku': {'key': 'sku', 'type': 'SkuDescription'}, + 'worker_size_id': {'key': 'properties.workerSizeId', 'type': 'int'}, + 'compute_mode': {'key': 'properties.computeMode', 'type': 'str'}, + 'worker_size': {'key': 'properties.workerSize', 'type': 'str'}, + 'worker_count': {'key': 'properties.workerCount', 'type': 'int'}, + 'instance_names': {'key': 'properties.instanceNames', 'type': '[str]'}, + } + + def __init__( + self, + *, + kind: Optional[str] = None, + sku: Optional["SkuDescription"] = None, + worker_size_id: Optional[int] = None, + compute_mode: Optional[Union[str, "ComputeModeOptions"]] = None, + worker_size: Optional[str] = None, + worker_count: Optional[int] = None, + **kwargs + ): + super(WorkerPoolResource, self).__init__(kind=kind, **kwargs) + self.sku = sku + self.worker_size_id = worker_size_id + self.compute_mode = compute_mode + self.worker_size = worker_size + self.worker_count = worker_count + self.instance_names = None diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/models/_web_site_management_client_enums.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/models/_web_site_management_client_enums.py new file mode 100644 index 000000000000..14723bd71fec --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/models/_web_site_management_client_enums.py @@ -0,0 +1,890 @@ +# 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 enum import Enum, EnumMeta +from six import with_metaclass + +class _CaseInsensitiveEnumMeta(EnumMeta): + def __getitem__(self, name): + return super().__getitem__(name.upper()) + + def __getattr__(cls, name): + """Return the enum member matching `name` + We use __getattr__ instead of descriptors or inserting into the enum + class' __dict__ in order to support `name` and `value` being both + properties for enum members (which live in the class' __dict__) and + enum members themselves. + """ + try: + return cls._member_map_[name.upper()] + except KeyError: + raise AttributeError(name) + + +class AppServiceCertificateOrderPatchResourcePropertiesAppServiceCertificateNotRenewableReasonsItem(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + REGISTRATION_STATUS_NOT_SUPPORTED_FOR_RENEWAL = "RegistrationStatusNotSupportedForRenewal" + EXPIRATION_NOT_IN_RENEWAL_TIME_RANGE = "ExpirationNotInRenewalTimeRange" + SUBSCRIPTION_NOT_ACTIVE = "SubscriptionNotActive" + +class AppServiceCertificateOrderPropertiesAppServiceCertificateNotRenewableReasonsItem(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + REGISTRATION_STATUS_NOT_SUPPORTED_FOR_RENEWAL = "RegistrationStatusNotSupportedForRenewal" + EXPIRATION_NOT_IN_RENEWAL_TIME_RANGE = "ExpirationNotInRenewalTimeRange" + SUBSCRIPTION_NOT_ACTIVE = "SubscriptionNotActive" + +class AppServicePlanRestrictions(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """App Service plans this offer is restricted to. + """ + + NONE = "None" + FREE = "Free" + SHARED = "Shared" + BASIC = "Basic" + STANDARD = "Standard" + PREMIUM = "Premium" + +class AutoHealActionType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Predefined action to be taken. + """ + + RECYCLE = "Recycle" + LOG_EVENT = "LogEvent" + CUSTOM_ACTION = "CustomAction" + +class AzureResourceType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Type of the Azure resource the hostname is assigned to. + """ + + WEBSITE = "Website" + TRAFFIC_MANAGER = "TrafficManager" + +class AzureStorageState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """State of the storage account. + """ + + OK = "Ok" + INVALID_CREDENTIALS = "InvalidCredentials" + INVALID_SHARE = "InvalidShare" + NOT_VALIDATED = "NotValidated" + +class AzureStorageType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Type of storage. + """ + + AZURE_FILES = "AzureFiles" + AZURE_BLOB = "AzureBlob" + +class BackupItemStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Backup status. + """ + + IN_PROGRESS = "InProgress" + FAILED = "Failed" + SUCCEEDED = "Succeeded" + TIMED_OUT = "TimedOut" + CREATED = "Created" + SKIPPED = "Skipped" + PARTIALLY_SUCCEEDED = "PartiallySucceeded" + DELETE_IN_PROGRESS = "DeleteInProgress" + DELETE_FAILED = "DeleteFailed" + DELETED = "Deleted" + +class BackupRestoreOperationType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Operation type. + """ + + DEFAULT = "Default" + CLONE = "Clone" + RELOCATION = "Relocation" + SNAPSHOT = "Snapshot" + CLOUD_FS = "CloudFS" + +class BuildStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The status of the static site build. + """ + + WAITING_FOR_DEPLOYMENT = "WaitingForDeployment" + UPLOADING = "Uploading" + DEPLOYING = "Deploying" + READY = "Ready" + FAILED = "Failed" + DELETING = "Deleting" + DETACHED = "Detached" + +class BuiltInAuthenticationProvider(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The default authentication provider to use when multiple providers are configured. + This setting is only needed if multiple providers are configured and the unauthenticated client + action is set to "RedirectToLoginPage". + """ + + AZURE_ACTIVE_DIRECTORY = "AzureActiveDirectory" + FACEBOOK = "Facebook" + GOOGLE = "Google" + MICROSOFT_ACCOUNT = "MicrosoftAccount" + TWITTER = "Twitter" + GITHUB = "Github" + +class CertificateOrderActionType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Action type. + """ + + CERTIFICATE_ISSUED = "CertificateIssued" + CERTIFICATE_ORDER_CANCELED = "CertificateOrderCanceled" + CERTIFICATE_ORDER_CREATED = "CertificateOrderCreated" + CERTIFICATE_REVOKED = "CertificateRevoked" + DOMAIN_VALIDATION_COMPLETE = "DomainValidationComplete" + FRAUD_DETECTED = "FraudDetected" + ORG_NAME_CHANGE = "OrgNameChange" + ORG_VALIDATION_COMPLETE = "OrgValidationComplete" + SAN_DROP = "SanDrop" + FRAUD_CLEARED = "FraudCleared" + CERTIFICATE_EXPIRED = "CertificateExpired" + CERTIFICATE_EXPIRATION_WARNING = "CertificateExpirationWarning" + FRAUD_DOCUMENTATION_REQUIRED = "FraudDocumentationRequired" + UNKNOWN = "Unknown" + +class CertificateOrderStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Current order status. + """ + + PENDINGISSUANCE = "Pendingissuance" + ISSUED = "Issued" + REVOKED = "Revoked" + CANCELED = "Canceled" + DENIED = "Denied" + PENDINGREVOCATION = "Pendingrevocation" + PENDING_REKEY = "PendingRekey" + UNUSED = "Unused" + EXPIRED = "Expired" + NOT_SUBMITTED = "NotSubmitted" + +class CertificateProductType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Certificate product type. + """ + + STANDARD_DOMAIN_VALIDATED_SSL = "StandardDomainValidatedSsl" + STANDARD_DOMAIN_VALIDATED_WILD_CARD_SSL = "StandardDomainValidatedWildCardSsl" + +class Channels(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """List of channels that this recommendation can apply. + """ + + NOTIFICATION = "Notification" + API = "Api" + EMAIL = "Email" + WEBHOOK = "Webhook" + ALL = "All" + +class CheckNameResourceTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Resource type used for verification. + """ + + SITE = "Site" + SLOT = "Slot" + HOSTING_ENVIRONMENT = "HostingEnvironment" + PUBLISHING_USER = "PublishingUser" + MICROSOFT_WEB_SITES = "Microsoft.Web/sites" + MICROSOFT_WEB_SITES_SLOTS = "Microsoft.Web/sites/slots" + MICROSOFT_WEB_HOSTING_ENVIRONMENTS = "Microsoft.Web/hostingEnvironments" + MICROSOFT_WEB_PUBLISHING_USERS = "Microsoft.Web/publishingUsers" + +class ClientCertMode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """This composes with ClientCertEnabled setting. + + + * ClientCertEnabled: false means ClientCert is ignored. + * ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. + * ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or + accepted. + """ + + REQUIRED = "Required" + OPTIONAL = "Optional" + OPTIONAL_INTERACTIVE_USER = "OptionalInteractiveUser" + +class CloneAbilityResult(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Name of app. + """ + + CLONEABLE = "Cloneable" + PARTIALLY_CLONEABLE = "PartiallyCloneable" + NOT_CLONEABLE = "NotCloneable" + +class ComputeModeOptions(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Shared/dedicated workers. + """ + + SHARED = "Shared" + DEDICATED = "Dedicated" + DYNAMIC = "Dynamic" + +class ConnectionStringType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Type of database. + """ + + MY_SQL = "MySql" + SQL_SERVER = "SQLServer" + SQL_AZURE = "SQLAzure" + CUSTOM = "Custom" + NOTIFICATION_HUB = "NotificationHub" + SERVICE_BUS = "ServiceBus" + EVENT_HUB = "EventHub" + API_HUB = "ApiHub" + DOC_DB = "DocDb" + REDIS_CACHE = "RedisCache" + POSTGRE_SQL = "PostgreSQL" + +class ContinuousWebJobStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Job status. + """ + + INITIALIZING = "Initializing" + STARTING = "Starting" + RUNNING = "Running" + PENDING_RESTART = "PendingRestart" + STOPPED = "Stopped" + +class CookieExpirationConvention(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The convention used when determining the session cookie's expiration. + """ + + FIXED_TIME = "FixedTime" + IDENTITY_PROVIDER_DERIVED = "IdentityProviderDerived" + +class CustomDomainStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The status of the custom domain + """ + + RETRIEVING_VALIDATION_TOKEN = "RetrievingValidationToken" + VALIDATING = "Validating" + ADDING = "Adding" + READY = "Ready" + FAILED = "Failed" + DELETING = "Deleting" + +class CustomHostNameDnsRecordType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Type of the DNS record. + """ + + C_NAME = "CName" + A = "A" + +class DatabaseType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Database type (e.g. SqlAzure / MySql). + """ + + SQL_AZURE = "SqlAzure" + MY_SQL = "MySql" + LOCAL_MY_SQL = "LocalMySql" + POSTGRE_SQL = "PostgreSql" + +class DetectorType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Whether this detector is an Analysis Detector or not. + """ + + DETECTOR = "Detector" + ANALYSIS = "Analysis" + CATEGORY_OVERVIEW = "CategoryOverview" + +class DnsType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Current DNS type + """ + + AZURE_DNS = "AzureDns" + DEFAULT_DOMAIN_REGISTRAR_DNS = "DefaultDomainRegistrarDns" + +class DnsVerificationTestResult(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """DNS verification test result. + """ + + PASSED = "Passed" + FAILED = "Failed" + SKIPPED = "Skipped" + +class DomainPatchResourcePropertiesDomainNotRenewableReasonsItem(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + REGISTRATION_STATUS_NOT_SUPPORTED_FOR_RENEWAL = "RegistrationStatusNotSupportedForRenewal" + EXPIRATION_NOT_IN_RENEWAL_TIME_RANGE = "ExpirationNotInRenewalTimeRange" + SUBSCRIPTION_NOT_ACTIVE = "SubscriptionNotActive" + +class DomainPropertiesDomainNotRenewableReasonsItem(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + REGISTRATION_STATUS_NOT_SUPPORTED_FOR_RENEWAL = "RegistrationStatusNotSupportedForRenewal" + EXPIRATION_NOT_IN_RENEWAL_TIME_RANGE = "ExpirationNotInRenewalTimeRange" + SUBSCRIPTION_NOT_ACTIVE = "SubscriptionNotActive" + +class DomainStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Domain registration status. + """ + + ACTIVE = "Active" + AWAITING = "Awaiting" + CANCELLED = "Cancelled" + CONFISCATED = "Confiscated" + DISABLED = "Disabled" + EXCLUDED = "Excluded" + EXPIRED = "Expired" + FAILED = "Failed" + HELD = "Held" + LOCKED = "Locked" + PARKED = "Parked" + PENDING = "Pending" + RESERVED = "Reserved" + REVERTED = "Reverted" + SUSPENDED = "Suspended" + TRANSFERRED = "Transferred" + UNKNOWN = "Unknown" + UNLOCKED = "Unlocked" + UNPARKED = "Unparked" + UPDATED = "Updated" + JSON_CONVERTER_FAILED = "JsonConverterFailed" + +class DomainType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Valid values are Regular domain: Azure will charge the full price of domain registration, + SoftDeleted: Purchasing this domain will simply restore it and this operation will not cost + anything. + """ + + REGULAR = "Regular" + SOFT_DELETED = "SoftDeleted" + +class Enum10(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + WINDOWS = "Windows" + LINUX = "Linux" + WINDOWS_FUNCTIONS = "WindowsFunctions" + LINUX_FUNCTIONS = "LinuxFunctions" + ALL = "All" + +class Enum11(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + WINDOWS = "Windows" + LINUX = "Linux" + ALL = "All" + +class Enum12(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + WINDOWS = "Windows" + LINUX = "Linux" + ALL = "All" + +class Enum13(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + WINDOWS = "Windows" + LINUX = "Linux" + ALL = "All" + +class Enum14(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + WINDOWS = "Windows" + LINUX = "Linux" + ALL = "All" + +class Enum15(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + WINDOWS = "Windows" + LINUX = "Linux" + WINDOWS_FUNCTIONS = "WindowsFunctions" + LINUX_FUNCTIONS = "LinuxFunctions" + ALL = "All" + +class ForwardProxyConvention(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The convention used to determine the url of the request made. + """ + + NO_PROXY = "NoProxy" + STANDARD = "Standard" + CUSTOM = "Custom" + +class FrequencyUnit(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The unit of time for how often the backup should be executed (e.g. for weekly backup, this + should be set to Day and FrequencyInterval should be set to 7) + """ + + DAY = "Day" + HOUR = "Hour" + +class FrontEndServiceType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + NODE_PORT = "NodePort" + LOAD_BALANCER = "LoadBalancer" + +class FtpsState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """State of FTP / FTPS service + """ + + ALL_ALLOWED = "AllAllowed" + FTPS_ONLY = "FtpsOnly" + DISABLED = "Disabled" + +class HostingEnvironmentStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Current status of the App Service Environment. + """ + + PREPARING = "Preparing" + READY = "Ready" + SCALING = "Scaling" + DELETING = "Deleting" + +class HostNameType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Type of the hostname. + """ + + VERIFIED = "Verified" + MANAGED = "Managed" + +class HostType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Indicates whether the hostname is a standard or repository hostname. + """ + + STANDARD = "Standard" + REPOSITORY = "Repository" + +class InAvailabilityReasonType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """:code:`Invalid` indicates the name provided does not match Azure App Service + naming requirements. :code:`AlreadyExists` indicates that the name is already in + use and is therefore unavailable. + """ + + INVALID = "Invalid" + ALREADY_EXISTS = "AlreadyExists" + +class InsightStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Level of the most severe insight generated by the detector. + """ + + CRITICAL = "Critical" + WARNING = "Warning" + INFO = "Info" + SUCCESS = "Success" + NONE = "None" + +class IpFilterTag(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Defines what this IP filter will be used for. This is to support IP filtering on proxies. + """ + + DEFAULT = "Default" + XFF_PROXY = "XffProxy" + SERVICE_TAG = "ServiceTag" + +class IssueType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Represents the type of the Detector + """ + + SERVICE_INCIDENT = "ServiceIncident" + APP_DEPLOYMENT = "AppDeployment" + APP_CRASH = "AppCrash" + RUNTIME_ISSUE_DETECTED = "RuntimeIssueDetected" + ASE_DEPLOYMENT = "AseDeployment" + USER_ISSUE = "UserIssue" + PLATFORM_ISSUE = "PlatformIssue" + OTHER = "Other" + +class KeyVaultSecretStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Status of the Key Vault secret. + """ + + INITIALIZED = "Initialized" + WAITING_ON_CERTIFICATE_ORDER = "WaitingOnCertificateOrder" + SUCCEEDED = "Succeeded" + CERTIFICATE_ORDER_FAILED = "CertificateOrderFailed" + OPERATION_NOT_PERMITTED_ON_KEY_VAULT = "OperationNotPermittedOnKeyVault" + AZURE_SERVICE_UNAUTHORIZED_TO_ACCESS_KEY_VAULT = "AzureServiceUnauthorizedToAccessKeyVault" + KEY_VAULT_DOES_NOT_EXIST = "KeyVaultDoesNotExist" + KEY_VAULT_SECRET_DOES_NOT_EXIST = "KeyVaultSecretDoesNotExist" + UNKNOWN_ERROR = "UnknownError" + EXTERNAL_PRIVATE_KEY = "ExternalPrivateKey" + UNKNOWN = "Unknown" + +class KubeEnvironmentProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Provisioning state of the Kubernetes Environment. + """ + + SUCCEEDED = "Succeeded" + FAILED = "Failed" + CANCELED = "Canceled" + WAITING = "Waiting" + INITIALIZATION_IN_PROGRESS = "InitializationInProgress" + INFRASTRUCTURE_SETUP_IN_PROGRESS = "InfrastructureSetupInProgress" + INFRASTRUCTURE_SETUP_COMPLETE = "InfrastructureSetupComplete" + SCHEDULED_FOR_DELETE = "ScheduledForDelete" + UPGRADE_REQUESTED = "UpgradeRequested" + UPGRADE_FAILED = "UpgradeFailed" + +class LoadBalancingMode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Specifies which endpoints to serve internally in the Virtual Network for the App Service + Environment. + """ + + NONE = "None" + WEB = "Web" + PUBLISHING = "Publishing" + WEB_PUBLISHING = "Web, Publishing" + +class LogLevel(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Log level. + """ + + OFF = "Off" + VERBOSE = "Verbose" + INFORMATION = "Information" + WARNING = "Warning" + ERROR = "Error" + +class ManagedPipelineMode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Managed pipeline mode. + """ + + INTEGRATED = "Integrated" + CLASSIC = "Classic" + +class ManagedServiceIdentityType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Type of managed service identity. + """ + + SYSTEM_ASSIGNED = "SystemAssigned" + USER_ASSIGNED = "UserAssigned" + SYSTEM_ASSIGNED_USER_ASSIGNED = "SystemAssigned, UserAssigned" + NONE = "None" + +class MSDeployLogEntryType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Log entry type + """ + + MESSAGE = "Message" + WARNING = "Warning" + ERROR = "Error" + +class MSDeployProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Provisioning state + """ + + ACCEPTED = "accepted" + RUNNING = "running" + SUCCEEDED = "succeeded" + FAILED = "failed" + CANCELED = "canceled" + +class MySqlMigrationType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The type of migration operation to be done + """ + + LOCAL_TO_REMOTE = "LocalToRemote" + REMOTE_TO_LOCAL = "RemoteToLocal" + +class NotificationLevel(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Level indicating how critical this recommendation can impact. + """ + + CRITICAL = "Critical" + WARNING = "Warning" + INFORMATION = "Information" + NON_URGENT_SUGGESTION = "NonUrgentSuggestion" + +class OperationStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The current status of the operation. + """ + + IN_PROGRESS = "InProgress" + FAILED = "Failed" + SUCCEEDED = "Succeeded" + TIMED_OUT = "TimedOut" + CREATED = "Created" + +class ProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Status of certificate order. + """ + + SUCCEEDED = "Succeeded" + FAILED = "Failed" + CANCELED = "Canceled" + IN_PROGRESS = "InProgress" + DELETING = "Deleting" + +class PublicCertificateLocation(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Public Certificate Location + """ + + CURRENT_USER_MY = "CurrentUserMy" + LOCAL_MACHINE_MY = "LocalMachineMy" + UNKNOWN = "Unknown" + +class PublishingProfileFormat(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Name of the format. Valid values are: + FileZilla3 + WebDeploy -- default + Ftp + """ + + FILE_ZILLA3 = "FileZilla3" + WEB_DEPLOY = "WebDeploy" + FTP = "Ftp" + +class RedundancyMode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Site redundancy mode + """ + + NONE = "None" + MANUAL = "Manual" + FAILOVER = "Failover" + ACTIVE_ACTIVE = "ActiveActive" + GEO_REDUNDANT = "GeoRedundant" + +class RenderingType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Rendering Type + """ + + NO_GRAPH = "NoGraph" + TABLE = "Table" + TIME_SERIES = "TimeSeries" + TIME_SERIES_PER_INSTANCE = "TimeSeriesPerInstance" + PIE_CHART = "PieChart" + DATA_SUMMARY = "DataSummary" + EMAIL = "Email" + INSIGHTS = "Insights" + DYNAMIC_INSIGHT = "DynamicInsight" + MARKDOWN = "Markdown" + DETECTOR = "Detector" + DROP_DOWN = "DropDown" + CARD = "Card" + SOLUTION = "Solution" + GUAGE = "Guage" + FORM = "Form" + CHANGE_SETS = "ChangeSets" + CHANGE_ANALYSIS_ONBOARDING = "ChangeAnalysisOnboarding" + CHANGES_VIEW = "ChangesView" + APP_INSIGHT = "AppInsight" + DEPENDENCY_GRAPH = "DependencyGraph" + DOWN_TIME = "DownTime" + SUMMARY_CARD = "SummaryCard" + SEARCH_COMPONENT = "SearchComponent" + APP_INSIGHT_ENABLEMENT = "AppInsightEnablement" + +class ResolveStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + INITIALIZED = "Initialized" + RESOLVED = "Resolved" + INVALID_SYNTAX = "InvalidSyntax" + MSI_NOT_ENABLED = "MSINotEnabled" + VAULT_NOT_FOUND = "VaultNotFound" + SECRET_NOT_FOUND = "SecretNotFound" + SECRET_VERSION_NOT_FOUND = "SecretVersionNotFound" + ACCESS_TO_KEY_VAULT_DENIED = "AccessToKeyVaultDenied" + OTHER_REASONS = "OtherReasons" + FETCH_TIMED_OUT = "FetchTimedOut" + UNAUTHORIZED_CLIENT = "UnauthorizedClient" + +class ResourceScopeType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Name of a resource type this recommendation applies, e.g. Subscription, ServerFarm, Site. + """ + + SERVER_FARM = "ServerFarm" + SUBSCRIPTION = "Subscription" + WEB_SITE = "WebSite" + +class RouteType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The type of route this is: + DEFAULT - By default, every app has routes to the local address ranges specified by RFC1918 + INHERITED - Routes inherited from the real Virtual Network routes + STATIC - Static route set on the app only + + These values will be used for syncing an app's routes with those from a Virtual Network. + """ + + DEFAULT = "DEFAULT" + INHERITED = "INHERITED" + STATIC = "STATIC" + +class ScmType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """SCM type. + """ + + NONE = "None" + DROPBOX = "Dropbox" + TFS = "Tfs" + LOCAL_GIT = "LocalGit" + GIT_HUB = "GitHub" + CODE_PLEX_GIT = "CodePlexGit" + CODE_PLEX_HG = "CodePlexHg" + BITBUCKET_GIT = "BitbucketGit" + BITBUCKET_HG = "BitbucketHg" + EXTERNAL_GIT = "ExternalGit" + EXTERNAL_HG = "ExternalHg" + ONE_DRIVE = "OneDrive" + VSO = "VSO" + VSTSRM = "VSTSRM" + +class SiteAvailabilityState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Management information availability state for the app. + """ + + NORMAL = "Normal" + LIMITED = "Limited" + DISASTER_RECOVERY_MODE = "DisasterRecoveryMode" + +class SiteExtensionType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Site extension type. + """ + + GALLERY = "Gallery" + WEB_ROOT = "WebRoot" + +class SiteLoadBalancing(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Site load balancing. + """ + + WEIGHTED_ROUND_ROBIN = "WeightedRoundRobin" + LEAST_REQUESTS = "LeastRequests" + LEAST_RESPONSE_TIME = "LeastResponseTime" + WEIGHTED_TOTAL_TRAFFIC = "WeightedTotalTraffic" + REQUEST_HASH = "RequestHash" + PER_SITE_ROUND_ROBIN = "PerSiteRoundRobin" + +class SiteRuntimeState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + READY = "READY" + STOPPED = "STOPPED" + UNKNOWN = "UNKNOWN" + +class SkuName(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + FREE = "Free" + SHARED = "Shared" + BASIC = "Basic" + STANDARD = "Standard" + PREMIUM = "Premium" + DYNAMIC = "Dynamic" + ISOLATED = "Isolated" + ISOLATED_V2 = "IsolatedV2" + PREMIUM_V2 = "PremiumV2" + PREMIUM_V3 = "PremiumV3" + PREMIUM_CONTAINER = "PremiumContainer" + ELASTIC_PREMIUM = "ElasticPremium" + ELASTIC_ISOLATED = "ElasticIsolated" + +class SolutionType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Type of Solution + """ + + QUICK_SOLUTION = "QuickSolution" + DEEP_INVESTIGATION = "DeepInvestigation" + BEST_PRACTICES = "BestPractices" + +class SslState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """SSL type. + """ + + DISABLED = "Disabled" + SNI_ENABLED = "SniEnabled" + IP_BASED_ENABLED = "IpBasedEnabled" + +class StackPreferredOs(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Function App stack preferred OS. + """ + + WINDOWS = "Windows" + LINUX = "Linux" + +class StagingEnvironmentPolicy(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """State indicating whether staging environments are allowed or not allowed for a static web app. + """ + + ENABLED = "Enabled" + DISABLED = "Disabled" + +class StatusOptions(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """App Service plan status. + """ + + READY = "Ready" + PENDING = "Pending" + CREATING = "Creating" + +class StorageType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + LOCAL_NODE = "LocalNode" + NETWORK_FILE_SYSTEM = "NetworkFileSystem" + +class SupportedTlsVersions(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """MinTlsVersion: configures the minimum version of TLS required for SSL requests + """ + + ONE0 = "1.0" + ONE1 = "1.1" + ONE2 = "1.2" + +class TriggeredWebJobStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Job status. + """ + + SUCCESS = "Success" + FAILED = "Failed" + ERROR = "Error" + +class TriggerTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The trigger type of the function + """ + + HTTP_TRIGGER = "HttpTrigger" + UNKNOWN = "Unknown" + +class UnauthenticatedClientAction(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The action to take when an unauthenticated client attempts to access the app. + """ + + REDIRECT_TO_LOGIN_PAGE = "RedirectToLoginPage" + ALLOW_ANONYMOUS = "AllowAnonymous" + +class UnauthenticatedClientActionV2(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The action to take when an unauthenticated client attempts to access the app. + """ + + REDIRECT_TO_LOGIN_PAGE = "RedirectToLoginPage" + ALLOW_ANONYMOUS = "AllowAnonymous" + RETURN401 = "Return401" + RETURN403 = "Return403" + +class UsageState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """State indicating whether the app has exceeded its quota usage. Read-only. + """ + + NORMAL = "Normal" + EXCEEDED = "Exceeded" + +class ValidateResourceTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Resource type used for verification. + """ + + SERVER_FARM = "ServerFarm" + SITE = "Site" + MICROSOFT_WEB_HOSTING_ENVIRONMENTS = "Microsoft.Web/hostingEnvironments" + +class WebJobType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Job type. + """ + + CONTINUOUS = "Continuous" + TRIGGERED = "Triggered" + +class WorkerSizeOptions(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Size of the machines. + """ + + SMALL = "Small" + MEDIUM = "Medium" + LARGE = "Large" + D1 = "D1" + D2 = "D2" + D3 = "D3" + SMALL_V3 = "SmallV3" + MEDIUM_V3 = "MediumV3" + LARGE_V3 = "LargeV3" + NESTED_SMALL = "NestedSmall" + NESTED_SMALL_LINUX = "NestedSmallLinux" + DEFAULT = "Default" diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/__init__.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/__init__.py new file mode 100644 index 000000000000..5c7f8e46e95e --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/__init__.py @@ -0,0 +1,49 @@ +# 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 ._app_service_certificate_orders_operations import AppServiceCertificateOrdersOperations +from ._certificate_orders_diagnostics_operations import CertificateOrdersDiagnosticsOperations +from ._certificate_registration_provider_operations import CertificateRegistrationProviderOperations +from ._domains_operations import DomainsOperations +from ._top_level_domains_operations import TopLevelDomainsOperations +from ._domain_registration_provider_operations import DomainRegistrationProviderOperations +from ._app_service_environments_operations import AppServiceEnvironmentsOperations +from ._app_service_plans_operations import AppServicePlansOperations +from ._certificates_operations import CertificatesOperations +from ._deleted_web_apps_operations import DeletedWebAppsOperations +from ._diagnostics_operations import DiagnosticsOperations +from ._global_model_operations import GlobalOperations +from ._kube_environments_operations import KubeEnvironmentsOperations +from ._provider_operations import ProviderOperations +from ._recommendations_operations import RecommendationsOperations +from ._resource_health_metadata_operations import ResourceHealthMetadataOperations +from ._web_site_management_client_operations import WebSiteManagementClientOperationsMixin +from ._static_sites_operations import StaticSitesOperations +from ._web_apps_operations import WebAppsOperations + +__all__ = [ + 'AppServiceCertificateOrdersOperations', + 'CertificateOrdersDiagnosticsOperations', + 'CertificateRegistrationProviderOperations', + 'DomainsOperations', + 'TopLevelDomainsOperations', + 'DomainRegistrationProviderOperations', + 'AppServiceEnvironmentsOperations', + 'AppServicePlansOperations', + 'CertificatesOperations', + 'DeletedWebAppsOperations', + 'DiagnosticsOperations', + 'GlobalOperations', + 'KubeEnvironmentsOperations', + 'ProviderOperations', + 'RecommendationsOperations', + 'ResourceHealthMetadataOperations', + 'WebSiteManagementClientOperationsMixin', + 'StaticSitesOperations', + 'WebAppsOperations', +] diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_app_service_certificate_orders_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_app_service_certificate_orders_operations.py new file mode 100644 index 000000000000..0ebe94cf0b1b --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_app_service_certificate_orders_operations.py @@ -0,0 +1,1517 @@ +# 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, List, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class AppServiceCertificateOrdersOperations(object): + """AppServiceCertificateOrdersOperations 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.web.v2021_01_15.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, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.AppServiceCertificateOrderCollection"] + """List all certificate orders in a subscription. + + Description for List all certificate orders in a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either AppServiceCertificateOrderCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrderCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateOrderCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('AppServiceCertificateOrderCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.CertificateRegistration/certificateOrders'} # type: ignore + + def validate_purchase_information( + self, + app_service_certificate_order, # type: "_models.AppServiceCertificateOrder" + **kwargs # type: Any + ): + # type: (...) -> None + """Validate information for a certificate order. + + Description for Validate information for a certificate order. + + :param app_service_certificate_order: Information for a certificate order. + :type app_service_certificate_order: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrder + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.validate_purchase_information.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_service_certificate_order, 'AppServiceCertificateOrder') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + validate_purchase_information.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.CertificateRegistration/validateCertificateRegistrationInformation'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.AppServiceCertificateOrderCollection"] + """Get certificate orders in a resource group. + + Description for Get certificate orders in a resource group. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :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 AppServiceCertificateOrderCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrderCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateOrderCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('AppServiceCertificateOrderCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders'} # type: ignore + + def get( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.AppServiceCertificateOrder" + """Get a certificate order. + + Description for Get a certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order.. + :type certificate_order_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppServiceCertificateOrder, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrder + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateOrder"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AppServiceCertificateOrder', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}'} # type: ignore + + def _create_or_update_initial( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + certificate_distinguished_name, # type: "_models.AppServiceCertificateOrder" + **kwargs # type: Any + ): + # type: (...) -> "_models.AppServiceCertificateOrder" + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateOrder"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(certificate_distinguished_name, 'AppServiceCertificateOrder') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('AppServiceCertificateOrder', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('AppServiceCertificateOrder', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}'} # type: ignore + + def begin_create_or_update( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + certificate_distinguished_name, # type: "_models.AppServiceCertificateOrder" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.AppServiceCertificateOrder"] + """Create or update a certificate purchase order. + + Description for Create or update a certificate purchase order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param certificate_distinguished_name: Distinguished name to use for the certificate order. + :type certificate_distinguished_name: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrder + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 AppServiceCertificateOrder or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrder] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateOrder"] + 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_or_update_initial( + resource_group_name=resource_group_name, + certificate_order_name=certificate_order_name, + certificate_distinguished_name=certificate_distinguished_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('AppServiceCertificateOrder', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}'} # type: ignore + + def delete( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete an existing certificate order. + + Description for Delete an existing certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}'} # type: ignore + + def update( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + certificate_distinguished_name, # type: "_models.AppServiceCertificateOrderPatchResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.AppServiceCertificateOrder" + """Create or update a certificate purchase order. + + Description for Create or update a certificate purchase order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param certificate_distinguished_name: Distinguished name to use for the certificate order. + :type certificate_distinguished_name: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrderPatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppServiceCertificateOrder, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateOrder + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateOrder"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(certificate_distinguished_name, 'AppServiceCertificateOrderPatchResource') + 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, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('AppServiceCertificateOrder', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('AppServiceCertificateOrder', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}'} # type: ignore + + def list_certificates( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.AppServiceCertificateCollection"] + """List all certificates associated with a certificate order. + + Description for List all certificates associated with a certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either AppServiceCertificateCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_certificates.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('AppServiceCertificateCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_certificates.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/certificates'} # type: ignore + + def get_certificate( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.AppServiceCertificateResource" + """Get the certificate associated with a certificate order. + + Description for Get the certificate associated with a certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param name: Name of the certificate. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppServiceCertificateResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_certificate.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AppServiceCertificateResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_certificate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/certificates/{name}'} # type: ignore + + def _create_or_update_certificate_initial( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + name, # type: str + key_vault_certificate, # type: "_models.AppServiceCertificateResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.AppServiceCertificateResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_certificate_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(key_vault_certificate, 'AppServiceCertificateResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('AppServiceCertificateResource', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('AppServiceCertificateResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_certificate_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/certificates/{name}'} # type: ignore + + def begin_create_or_update_certificate( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + name, # type: str + key_vault_certificate, # type: "_models.AppServiceCertificateResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.AppServiceCertificateResource"] + """Creates or updates a certificate and associates with key vault secret. + + Description for Creates or updates a certificate and associates with key vault secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param name: Name of the certificate. + :type name: str + :param key_vault_certificate: Key vault certificate resource Id. + :type key_vault_certificate: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateResource + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 AppServiceCertificateResource or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateResource"] + 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_or_update_certificate_initial( + resource_group_name=resource_group_name, + certificate_order_name=certificate_order_name, + name=name, + key_vault_certificate=key_vault_certificate, + 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('AppServiceCertificateResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update_certificate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/certificates/{name}'} # type: ignore + + def delete_certificate( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete the certificate associated with a certificate order. + + Description for Delete the certificate associated with a certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param name: Name of the certificate. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_certificate.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_certificate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/certificates/{name}'} # type: ignore + + def update_certificate( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + name, # type: str + key_vault_certificate, # type: "_models.AppServiceCertificatePatchResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.AppServiceCertificateResource" + """Creates or updates a certificate and associates with key vault secret. + + Description for Creates or updates a certificate and associates with key vault secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param name: Name of the certificate. + :type name: str + :param key_vault_certificate: Key vault certificate resource Id. + :type key_vault_certificate: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificatePatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppServiceCertificateResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppServiceCertificateResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceCertificateResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_certificate.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(key_vault_certificate, 'AppServiceCertificatePatchResource') + 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, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('AppServiceCertificateResource', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('AppServiceCertificateResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_certificate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/certificates/{name}'} # type: ignore + + def reissue( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + reissue_certificate_order_request, # type: "_models.ReissueCertificateOrderRequest" + **kwargs # type: Any + ): + # type: (...) -> None + """Reissue an existing certificate order. + + Description for Reissue an existing certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param reissue_certificate_order_request: Parameters for the reissue. + :type reissue_certificate_order_request: ~azure.mgmt.web.v2021_01_15.models.ReissueCertificateOrderRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.reissue.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(reissue_certificate_order_request, 'ReissueCertificateOrderRequest') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reissue.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/reissue'} # type: ignore + + def renew( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + renew_certificate_order_request, # type: "_models.RenewCertificateOrderRequest" + **kwargs # type: Any + ): + # type: (...) -> None + """Renew an existing certificate order. + + Description for Renew an existing certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param renew_certificate_order_request: Renew parameters. + :type renew_certificate_order_request: ~azure.mgmt.web.v2021_01_15.models.RenewCertificateOrderRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.renew.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(renew_certificate_order_request, 'RenewCertificateOrderRequest') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + renew.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/renew'} # type: ignore + + def resend_email( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Resend certificate email. + + Description for Resend certificate email. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.resend_email.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + resend_email.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/resendEmail'} # type: ignore + + def resend_request_emails( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + name_identifier, # type: "_models.NameIdentifier" + **kwargs # type: Any + ): + # type: (...) -> None + """Verify domain ownership for this certificate order. + + Description for Verify domain ownership for this certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param name_identifier: Email address. + :type name_identifier: ~azure.mgmt.web.v2021_01_15.models.NameIdentifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.resend_request_emails.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(name_identifier, 'NameIdentifier') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + resend_request_emails.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/resendRequestEmails'} # type: ignore + + def retrieve_site_seal( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + site_seal_request, # type: "_models.SiteSealRequest" + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteSeal" + """Verify domain ownership for this certificate order. + + Description for Verify domain ownership for this certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :param site_seal_request: Site seal request. + :type site_seal_request: ~azure.mgmt.web.v2021_01_15.models.SiteSealRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteSeal, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteSeal + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSeal"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.retrieve_site_seal.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_seal_request, 'SiteSealRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteSeal', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + retrieve_site_seal.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/retrieveSiteSeal'} # type: ignore + + def verify_domain_ownership( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Verify domain ownership for this certificate order. + + Description for Verify domain ownership for this certificate order. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: Name of the certificate order. + :type certificate_order_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.verify_domain_ownership.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + verify_domain_ownership.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/verifyDomainOwnership'} # type: ignore + + def retrieve_certificate_actions( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.CertificateOrderAction"] + """Retrieve the list of certificate actions. + + Description for Retrieve the list of certificate actions. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the certificate order. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of CertificateOrderAction, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.CertificateOrderAction] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.CertificateOrderAction"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.retrieve_certificate_actions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[CertificateOrderAction]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + retrieve_certificate_actions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{name}/retrieveCertificateActions'} # type: ignore + + def retrieve_certificate_email_history( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.CertificateEmail"] + """Retrieve email history. + + Description for Retrieve email history. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the certificate order. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of CertificateEmail, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.CertificateEmail] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.CertificateEmail"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.retrieve_certificate_email_history.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[CertificateEmail]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + retrieve_certificate_email_history.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{name}/retrieveEmailHistory'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_app_service_environments_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_app_service_environments_operations.py new file mode 100644 index 000000000000..0f27a2464d56 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_app_service_environments_operations.py @@ -0,0 +1,3904 @@ +# 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, List, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class AppServiceEnvironmentsOperations(object): + """AppServiceEnvironmentsOperations 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.web.v2021_01_15.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, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.AppServiceEnvironmentCollection"] + """Get all App Service Environments for a subscription. + + Description for Get all App Service Environments for a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either AppServiceEnvironmentCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironmentCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceEnvironmentCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('AppServiceEnvironmentCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/hostingEnvironments'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.AppServiceEnvironmentCollection"] + """Get all App Service Environments in a resource group. + + Description for Get all App Service Environments in a resource group. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :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 AppServiceEnvironmentCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironmentCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceEnvironmentCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('AppServiceEnvironmentCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments'} # type: ignore + + def get( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.AppServiceEnvironmentResource" + """Get the properties of an App Service Environment. + + Description for Get the properties of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppServiceEnvironmentResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironmentResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceEnvironmentResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AppServiceEnvironmentResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}'} # type: ignore + + def _create_or_update_initial( + self, + resource_group_name, # type: str + name, # type: str + hosting_environment_envelope, # type: "_models.AppServiceEnvironmentResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.AppServiceEnvironmentResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceEnvironmentResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(hosting_environment_envelope, 'AppServiceEnvironmentResource') + 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, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('AppServiceEnvironmentResource', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('AppServiceEnvironmentResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('AppServiceEnvironmentResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}'} # type: ignore + + def begin_create_or_update( + self, + resource_group_name, # type: str + name, # type: str + hosting_environment_envelope, # type: "_models.AppServiceEnvironmentResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.AppServiceEnvironmentResource"] + """Create or update an App Service Environment. + + Description for Create or update an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param hosting_environment_envelope: Configuration details of the App Service Environment. + :type hosting_environment_envelope: ~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironmentResource + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 AppServiceEnvironmentResource or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironmentResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceEnvironmentResource"] + 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_or_update_initial( + resource_group_name=resource_group_name, + name=name, + hosting_environment_envelope=hosting_environment_envelope, + 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('AppServiceEnvironmentResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}'} # type: ignore + + def _delete_initial( + self, + resource_group_name, # type: str + name, # type: str + force_delete=None, # type: Optional[bool] + **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-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if force_delete is not None: + query_parameters['forceDelete'] = self._serialize.query("force_delete", force_delete, 'bool') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}'} # type: ignore + + def begin_delete( + self, + resource_group_name, # type: str + name, # type: str + force_delete=None, # type: Optional[bool] + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Delete an App Service Environment. + + Description for Delete an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param force_delete: Specify :code:`true` to force the deletion even if the App + Service Environment contains resources. The default is :code:`false`. + :type force_delete: bool + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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, + name=name, + force_delete=force_delete, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}'} # type: ignore + + def update( + self, + resource_group_name, # type: str + name, # type: str + hosting_environment_envelope, # type: "_models.AppServiceEnvironmentPatchResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.AppServiceEnvironmentResource" + """Create or update an App Service Environment. + + Description for Create or update an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param hosting_environment_envelope: Configuration details of the App Service Environment. + :type hosting_environment_envelope: ~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironmentPatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppServiceEnvironmentResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppServiceEnvironmentResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServiceEnvironmentResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(hosting_environment_envelope, 'AppServiceEnvironmentPatchResource') + 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, 201, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('AppServiceEnvironmentResource', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('AppServiceEnvironmentResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('AppServiceEnvironmentResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}'} # type: ignore + + def list_capacities( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.StampCapacityCollection"] + """Get the used, available, and total worker capacity an App Service Environment. + + Description for Get the used, available, and total worker capacity an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StampCapacityCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.StampCapacityCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StampCapacityCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_capacities.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('StampCapacityCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_capacities.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/capacities/compute'} # type: ignore + + def get_vip_info( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.AddressResponse" + """Get IP addresses assigned to an App Service Environment. + + Description for Get IP addresses assigned to an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AddressResponse, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AddressResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AddressResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_vip_info.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AddressResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_vip_info.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/capacities/virtualip'} # type: ignore + + def _change_vnet_initial( + self, + resource_group_name, # type: str + name, # type: str + vnet_info, # type: "_models.VirtualNetworkProfile" + **kwargs # type: Any + ): + # type: (...) -> "_models.WebAppCollection" + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._change_vnet_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(vnet_info, 'VirtualNetworkProfile') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('WebAppCollection', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('WebAppCollection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _change_vnet_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/changeVirtualNetwork'} # type: ignore + + def begin_change_vnet( + self, + resource_group_name, # type: str + name, # type: str + vnet_info, # type: "_models.VirtualNetworkProfile" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[ItemPaged["_models.WebAppCollection"]] + """Move an App Service Environment to a different VNET. + + Description for Move an App Service Environment to a different VNET. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param vnet_info: Details for the new virtual network. + :type vnet_info: ~azure.mgmt.web.v2021_01_15.models.VirtualNetworkProfile + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 an iterator like instance of either WebAppCollection or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppCollection]] + :raises ~azure.core.exceptions.HttpResponseError: + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = "application/json" + accept = "application/json" + + def prepare_request(next_link=None): + # 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') + + if not next_link: + # Construct URL + url = self.change_vnet.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(vnet_info, 'VirtualNetworkProfile') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(vnet_info, 'VirtualNetworkProfile') + body_content_kwargs['content'] = body_content + request = self._client.get(url, query_parameters, header_parameters, **body_content_kwargs) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('WebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + 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._change_vnet_initial( + resource_group_name=resource_group_name, + name=name, + vnet_info=vnet_info, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + def get_long_running_output(pipeline_response): + def internal_get_next(next_link=None): + if next_link is None: + return pipeline_response + else: + return get_next(next_link) + + return ItemPaged( + internal_get_next, extract_data + ) + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_change_vnet.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/changeVirtualNetwork'} # type: ignore + + def get_ase_v3_networking_configuration( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.AseV3NetworkingConfiguration" + """Get networking configuration of an App Service Environment. + + Description for Get networking configuration of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AseV3NetworkingConfiguration, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AseV3NetworkingConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AseV3NetworkingConfiguration"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_ase_v3_networking_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AseV3NetworkingConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_ase_v3_networking_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/configurations/networking'} # type: ignore + + def update_ase_networking_configuration( + self, + resource_group_name, # type: str + name, # type: str + ase_networking_configuration, # type: "_models.AseV3NetworkingConfiguration" + **kwargs # type: Any + ): + # type: (...) -> "_models.AseV3NetworkingConfiguration" + """Update networking configuration of an App Service Environment. + + Description for Update networking configuration of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param ase_networking_configuration: + :type ase_networking_configuration: ~azure.mgmt.web.v2021_01_15.models.AseV3NetworkingConfiguration + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AseV3NetworkingConfiguration, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AseV3NetworkingConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AseV3NetworkingConfiguration"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_ase_networking_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(ase_networking_configuration, 'AseV3NetworkingConfiguration') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AseV3NetworkingConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_ase_networking_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/configurations/networking'} # type: ignore + + def list_diagnostics( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.HostingEnvironmentDiagnostics"] + """Get diagnostic information for an App Service Environment. + + Description for Get diagnostic information for an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of HostingEnvironmentDiagnostics, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentDiagnostics] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.HostingEnvironmentDiagnostics"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_diagnostics.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[HostingEnvironmentDiagnostics]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_diagnostics.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/diagnostics'} # type: ignore + + def get_diagnostics_item( + self, + resource_group_name, # type: str + name, # type: str + diagnostics_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.HostingEnvironmentDiagnostics" + """Get a diagnostics item for an App Service Environment. + + Description for Get a diagnostics item for an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param diagnostics_name: Name of the diagnostics item. + :type diagnostics_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HostingEnvironmentDiagnostics, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HostingEnvironmentDiagnostics + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostingEnvironmentDiagnostics"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_diagnostics_item.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'diagnosticsName': self._serialize.url("diagnostics_name", diagnostics_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HostingEnvironmentDiagnostics', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_diagnostics_item.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/diagnostics/{diagnosticsName}'} # type: ignore + + def get_inbound_network_dependencies_endpoints( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.InboundEnvironmentEndpointCollection"] + """Get the network endpoints of all inbound dependencies of an App Service Environment. + + Description for Get the network endpoints of all inbound dependencies of an App Service + Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either InboundEnvironmentEndpointCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.InboundEnvironmentEndpointCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.InboundEnvironmentEndpointCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_inbound_network_dependencies_endpoints.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('InboundEnvironmentEndpointCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_inbound_network_dependencies_endpoints.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/inboundNetworkDependenciesEndpoints'} # type: ignore + + def list_multi_role_pools( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.WorkerPoolCollection"] + """Get all multi-role pools. + + Description for Get all multi-role pools. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WorkerPoolCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.WorkerPoolCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_multi_role_pools.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('WorkerPoolCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_multi_role_pools.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools'} # type: ignore + + def get_multi_role_pool( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.WorkerPoolResource" + """Get properties of a multi-role pool. + + Description for Get properties of a multi-role pool. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: WorkerPoolResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_multi_role_pool.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_multi_role_pool.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default'} # type: ignore + + def _create_or_update_multi_role_pool_initial( + self, + resource_group_name, # type: str + name, # type: str + multi_role_pool_envelope, # type: "_models.WorkerPoolResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.WorkerPoolResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_multi_role_pool_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(multi_role_pool_envelope, 'WorkerPoolResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_multi_role_pool_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default'} # type: ignore + + def begin_create_or_update_multi_role_pool( + self, + resource_group_name, # type: str + name, # type: str + multi_role_pool_envelope, # type: "_models.WorkerPoolResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.WorkerPoolResource"] + """Create or update a multi-role pool. + + Description for Create or update a multi-role pool. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param multi_role_pool_envelope: Properties of the multi-role pool. + :type multi_role_pool_envelope: ~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 WorkerPoolResource or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolResource"] + 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_or_update_multi_role_pool_initial( + resource_group_name=resource_group_name, + name=name, + multi_role_pool_envelope=multi_role_pool_envelope, + 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('WorkerPoolResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update_multi_role_pool.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default'} # type: ignore + + def update_multi_role_pool( + self, + resource_group_name, # type: str + name, # type: str + multi_role_pool_envelope, # type: "_models.WorkerPoolResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.WorkerPoolResource" + """Create or update a multi-role pool. + + Description for Create or update a multi-role pool. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param multi_role_pool_envelope: Properties of the multi-role pool. + :type multi_role_pool_envelope: ~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: WorkerPoolResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_multi_role_pool.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(multi_role_pool_envelope, 'WorkerPoolResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_multi_role_pool.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default'} # type: ignore + + def list_multi_role_pool_instance_metric_definitions( + self, + resource_group_name, # type: str + name, # type: str + instance, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ResourceMetricDefinitionCollection"] + """Get metric definitions for a specific instance of a multi-role pool of an App Service Environment. + + Description for Get metric definitions for a specific instance of a multi-role pool of an App + Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param instance: Name of the instance in the multi-role pool. + :type instance: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ResourceMetricDefinitionCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceMetricDefinitionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceMetricDefinitionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_multi_role_pool_instance_metric_definitions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'instance': self._serialize.url("instance", instance, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ResourceMetricDefinitionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_multi_role_pool_instance_metric_definitions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default/instances/{instance}/metricdefinitions'} # type: ignore + + def list_multi_role_metric_definitions( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ResourceMetricDefinitionCollection"] + """Get metric definitions for a multi-role pool of an App Service Environment. + + Description for Get metric definitions for a multi-role pool of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ResourceMetricDefinitionCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceMetricDefinitionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceMetricDefinitionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_multi_role_metric_definitions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ResourceMetricDefinitionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_multi_role_metric_definitions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default/metricdefinitions'} # type: ignore + + def list_multi_role_pool_skus( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.SkuInfoCollection"] + """Get available SKUs for scaling a multi-role pool. + + Description for Get available SKUs for scaling a multi-role pool. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SkuInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.SkuInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SkuInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_multi_role_pool_skus.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SkuInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_multi_role_pool_skus.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default/skus'} # type: ignore + + def list_multi_role_usages( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.UsageCollection"] + """Get usage metrics for a multi-role pool of an App Service Environment. + + Description for Get usage metrics for a multi-role pool of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either UsageCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.UsageCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.UsageCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_multi_role_usages.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('UsageCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_multi_role_usages.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/multiRolePools/default/usages'} # type: ignore + + def list_operations( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.Operation"] + """List all currently running operations on the App Service Environment. + + Description for List all currently running operations on the App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of Operation, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.Operation] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.Operation"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_operations.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[Operation]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_operations.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/operations'} # type: ignore + + def get_outbound_network_dependencies_endpoints( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.OutboundEnvironmentEndpointCollection"] + """Get the network endpoints of all outbound dependencies of an App Service Environment. + + Description for Get the network endpoints of all outbound dependencies of an App Service + Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either OutboundEnvironmentEndpointCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.OutboundEnvironmentEndpointCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.OutboundEnvironmentEndpointCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_outbound_network_dependencies_endpoints.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('OutboundEnvironmentEndpointCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_outbound_network_dependencies_endpoints.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/outboundNetworkDependenciesEndpoints'} # type: ignore + + def get_private_endpoint_connection_list( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.PrivateEndpointConnectionCollection"] + """Gets the list of private endpoints associated with a hosting environment. + + Description for Gets the list of private endpoints associated with a hosting environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PrivateEndpointConnectionCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.PrivateEndpointConnectionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_private_endpoint_connection_list.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PrivateEndpointConnectionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_private_endpoint_connection_list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/privateEndpointConnections'} # type: ignore + + def get_private_endpoint_connection( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.RemotePrivateEndpointConnectionARMResource" + """Gets a private endpoint connection. + + Description for Gets a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param private_endpoint_connection_name: Name of the private endpoint connection. + :type private_endpoint_connection_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RemotePrivateEndpointConnectionARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_endpoint_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def _approve_or_reject_private_endpoint_connection_initial( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + private_endpoint_wrapper, # type: "_models.PrivateLinkConnectionApprovalRequestResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.RemotePrivateEndpointConnectionARMResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._approve_or_reject_private_endpoint_connection_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(private_endpoint_wrapper, 'PrivateLinkConnectionApprovalRequestResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _approve_or_reject_private_endpoint_connection_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def begin_approve_or_reject_private_endpoint_connection( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + private_endpoint_wrapper, # type: "_models.PrivateLinkConnectionApprovalRequestResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.RemotePrivateEndpointConnectionARMResource"] + """Approves or rejects a private endpoint connection. + + Description for Approves or rejects a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param private_endpoint_connection_name: + :type private_endpoint_connection_name: str + :param private_endpoint_wrapper: + :type private_endpoint_wrapper: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkConnectionApprovalRequestResource + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 RemotePrivateEndpointConnectionARMResource or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + 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._approve_or_reject_private_endpoint_connection_initial( + resource_group_name=resource_group_name, + name=name, + private_endpoint_connection_name=private_endpoint_connection_name, + private_endpoint_wrapper=private_endpoint_wrapper, + 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('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_approve_or_reject_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def _delete_private_endpoint_connection_initial( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Any + cls = kwargs.pop('cls', None) # type: ClsType[Any] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_private_endpoint_connection_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('object', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('object', pipeline_response) + + if response.status_code == 204: + deserialized = self._deserialize('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _delete_private_endpoint_connection_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def begin_delete_private_endpoint_connection( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[Any] + """Deletes a private endpoint connection. + + Description for Deletes a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param private_endpoint_connection_name: + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 any or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[any] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[Any] + 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_private_endpoint_connection_initial( + resource_group_name=resource_group_name, + name=name, + private_endpoint_connection_name=private_endpoint_connection_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('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def get_private_link_resources( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PrivateLinkResourcesWrapper" + """Gets the private link resources. + + Description for Gets the private link resources. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateLinkResourcesWrapper, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkResourcesWrapper + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourcesWrapper"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_link_resources.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateLinkResourcesWrapper', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_link_resources.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/privateLinkResources'} # type: ignore + + def reboot( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Reboot all machines in an App Service Environment. + + Description for Reboot all machines in an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.reboot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reboot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/reboot'} # type: ignore + + def _resume_initial( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.WebAppCollection" + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._resume_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('WebAppCollection', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('WebAppCollection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _resume_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/resume'} # type: ignore + + def begin_resume( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[ItemPaged["_models.WebAppCollection"]] + """Resume an App Service Environment. + + Description for Resume an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type 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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 an iterator like instance of either WebAppCollection or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppCollection]] + :raises ~azure.core.exceptions.HttpResponseError: + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.resume.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(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('WebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + 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._resume_initial( + resource_group_name=resource_group_name, + name=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): + def internal_get_next(next_link=None): + if next_link is None: + return pipeline_response + else: + return get_next(next_link) + + return ItemPaged( + internal_get_next, extract_data + ) + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_resume.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/resume'} # type: ignore + + def list_app_service_plans( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.AppServicePlanCollection"] + """Get all App Service plans in an App Service Environment. + + Description for Get all App Service plans in an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either AppServicePlanCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.AppServicePlanCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServicePlanCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_app_service_plans.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('AppServicePlanCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_app_service_plans.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/serverfarms'} # type: ignore + + def list_web_apps( + self, + resource_group_name, # type: str + name, # type: str + properties_to_include=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.WebAppCollection"] + """Get all apps in an App Service Environment. + + Description for Get all apps in an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param properties_to_include: Comma separated list of app properties to include. + :type properties_to_include: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_web_apps.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if properties_to_include is not None: + query_parameters['propertiesToInclude'] = self._serialize.query("properties_to_include", properties_to_include, 'str') + 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('WebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_web_apps.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/sites'} # type: ignore + + def _suspend_initial( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.WebAppCollection" + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._suspend_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('WebAppCollection', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('WebAppCollection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _suspend_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/suspend'} # type: ignore + + def begin_suspend( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[ItemPaged["_models.WebAppCollection"]] + """Suspend an App Service Environment. + + Description for Suspend an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type 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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 an iterator like instance of either WebAppCollection or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppCollection]] + :raises ~azure.core.exceptions.HttpResponseError: + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.suspend.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(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('WebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + 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._suspend_initial( + resource_group_name=resource_group_name, + name=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): + def internal_get_next(next_link=None): + if next_link is None: + return pipeline_response + else: + return get_next(next_link) + + return ItemPaged( + internal_get_next, extract_data + ) + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_suspend.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/suspend'} # type: ignore + + def list_usages( + self, + resource_group_name, # type: str + name, # type: str + filter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.CsmUsageQuotaCollection"] + """Get global usage metrics of an App Service Environment. + + Description for Get global usage metrics of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param filter: Return only usages/metrics specified in the filter. Filter conforms to odata + syntax. Example: $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq + 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq + duration'[Hour|Minute|Day]'. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either CsmUsageQuotaCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.CsmUsageQuotaCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmUsageQuotaCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_usages.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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 filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('CsmUsageQuotaCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_usages.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/usages'} # type: ignore + + def list_worker_pools( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.WorkerPoolCollection"] + """Get all worker pools of an App Service Environment. + + Description for Get all worker pools of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WorkerPoolCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.WorkerPoolCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_worker_pools.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('WorkerPoolCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_worker_pools.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools'} # type: ignore + + def get_worker_pool( + self, + resource_group_name, # type: str + name, # type: str + worker_pool_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.WorkerPoolResource" + """Get properties of a worker pool. + + Description for Get properties of a worker pool. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param worker_pool_name: Name of the worker pool. + :type worker_pool_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: WorkerPoolResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_worker_pool.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerPoolName': self._serialize.url("worker_pool_name", worker_pool_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_worker_pool.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}'} # type: ignore + + def _create_or_update_worker_pool_initial( + self, + resource_group_name, # type: str + name, # type: str + worker_pool_name, # type: str + worker_pool_envelope, # type: "_models.WorkerPoolResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.WorkerPoolResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_worker_pool_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerPoolName': self._serialize.url("worker_pool_name", worker_pool_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(worker_pool_envelope, 'WorkerPoolResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_worker_pool_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}'} # type: ignore + + def begin_create_or_update_worker_pool( + self, + resource_group_name, # type: str + name, # type: str + worker_pool_name, # type: str + worker_pool_envelope, # type: "_models.WorkerPoolResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.WorkerPoolResource"] + """Create or update a worker pool. + + Description for Create or update a worker pool. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param worker_pool_name: Name of the worker pool. + :type worker_pool_name: str + :param worker_pool_envelope: Properties of the worker pool. + :type worker_pool_envelope: ~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 WorkerPoolResource or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolResource"] + 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_or_update_worker_pool_initial( + resource_group_name=resource_group_name, + name=name, + worker_pool_name=worker_pool_name, + worker_pool_envelope=worker_pool_envelope, + 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('WorkerPoolResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerPoolName': self._serialize.url("worker_pool_name", worker_pool_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update_worker_pool.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}'} # type: ignore + + def update_worker_pool( + self, + resource_group_name, # type: str + name, # type: str + worker_pool_name, # type: str + worker_pool_envelope, # type: "_models.WorkerPoolResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.WorkerPoolResource" + """Create or update a worker pool. + + Description for Create or update a worker pool. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param worker_pool_name: Name of the worker pool. + :type worker_pool_name: str + :param worker_pool_envelope: Properties of the worker pool. + :type worker_pool_envelope: ~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: WorkerPoolResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.WorkerPoolResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WorkerPoolResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_worker_pool.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerPoolName': self._serialize.url("worker_pool_name", worker_pool_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(worker_pool_envelope, 'WorkerPoolResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('WorkerPoolResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_worker_pool.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}'} # type: ignore + + def list_worker_pool_instance_metric_definitions( + self, + resource_group_name, # type: str + name, # type: str + worker_pool_name, # type: str + instance, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ResourceMetricDefinitionCollection"] + """Get metric definitions for a specific instance of a worker pool of an App Service Environment. + + Description for Get metric definitions for a specific instance of a worker pool of an App + Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param worker_pool_name: Name of the worker pool. + :type worker_pool_name: str + :param instance: Name of the instance in the worker pool. + :type instance: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ResourceMetricDefinitionCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceMetricDefinitionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceMetricDefinitionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_worker_pool_instance_metric_definitions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerPoolName': self._serialize.url("worker_pool_name", worker_pool_name, 'str'), + 'instance': self._serialize.url("instance", instance, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ResourceMetricDefinitionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_worker_pool_instance_metric_definitions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}/instances/{instance}/metricdefinitions'} # type: ignore + + def list_web_worker_metric_definitions( + self, + resource_group_name, # type: str + name, # type: str + worker_pool_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ResourceMetricDefinitionCollection"] + """Get metric definitions for a worker pool of an App Service Environment. + + Description for Get metric definitions for a worker pool of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param worker_pool_name: Name of the worker pool. + :type worker_pool_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ResourceMetricDefinitionCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceMetricDefinitionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceMetricDefinitionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_web_worker_metric_definitions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerPoolName': self._serialize.url("worker_pool_name", worker_pool_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ResourceMetricDefinitionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_web_worker_metric_definitions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}/metricdefinitions'} # type: ignore + + def list_worker_pool_skus( + self, + resource_group_name, # type: str + name, # type: str + worker_pool_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.SkuInfoCollection"] + """Get available SKUs for scaling a worker pool. + + Description for Get available SKUs for scaling a worker pool. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param worker_pool_name: Name of the worker pool. + :type worker_pool_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SkuInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.SkuInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SkuInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_worker_pool_skus.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerPoolName': self._serialize.url("worker_pool_name", worker_pool_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SkuInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_worker_pool_skus.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}/skus'} # type: ignore + + def list_web_worker_usages( + self, + resource_group_name, # type: str + name, # type: str + worker_pool_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.UsageCollection"] + """Get usage metrics for a worker pool of an App Service Environment. + + Description for Get usage metrics for a worker pool of an App Service Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service Environment. + :type name: str + :param worker_pool_name: Name of the worker pool. + :type worker_pool_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either UsageCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.UsageCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.UsageCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_web_worker_usages.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerPoolName': self._serialize.url("worker_pool_name", worker_pool_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('UsageCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_web_worker_usages.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/workerPools/{workerPoolName}/usages'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_app_service_plans_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_app_service_plans_operations.py new file mode 100644 index 000000000000..8b6bc386b45a --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_app_service_plans_operations.py @@ -0,0 +1,2029 @@ +# 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, List, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class AppServicePlansOperations(object): + """AppServicePlansOperations 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.web.v2021_01_15.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, + detailed=None, # type: Optional[bool] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.AppServicePlanCollection"] + """Get all App Service plans for a subscription. + + Description for Get all App Service plans for a subscription. + + :param detailed: Specify :code:`true` to return all App Service plan properties. + The default is :code:`false`, which returns a subset of the properties. + Retrieval of all properties may increase the API latency. + :type detailed: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either AppServicePlanCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.AppServicePlanCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServicePlanCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if detailed is not None: + query_parameters['detailed'] = self._serialize.query("detailed", detailed, 'bool') + 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('AppServicePlanCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/serverfarms'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.AppServicePlanCollection"] + """Get all App Service plans in a resource group. + + Description for Get all App Service plans in a resource group. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :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 AppServicePlanCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.AppServicePlanCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServicePlanCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('AppServicePlanCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms'} # type: ignore + + def get( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.AppServicePlan" + """Get an App Service plan. + + Description for Get an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppServicePlan, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppServicePlan + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServicePlan"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AppServicePlan', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}'} # type: ignore + + def _create_or_update_initial( + self, + resource_group_name, # type: str + name, # type: str + app_service_plan, # type: "_models.AppServicePlan" + **kwargs # type: Any + ): + # type: (...) -> "_models.AppServicePlan" + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServicePlan"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_service_plan, 'AppServicePlan') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('AppServicePlan', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('AppServicePlan', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}'} # type: ignore + + def begin_create_or_update( + self, + resource_group_name, # type: str + name, # type: str + app_service_plan, # type: "_models.AppServicePlan" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.AppServicePlan"] + """Creates or updates an App Service Plan. + + Description for Creates or updates an App Service Plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param app_service_plan: Details of the App Service plan. + :type app_service_plan: ~azure.mgmt.web.v2021_01_15.models.AppServicePlan + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 AppServicePlan or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.AppServicePlan] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServicePlan"] + 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_or_update_initial( + resource_group_name=resource_group_name, + name=name, + app_service_plan=app_service_plan, + 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('AppServicePlan', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}'} # type: ignore + + def delete( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete an App Service plan. + + Description for Delete an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}'} # type: ignore + + def update( + self, + resource_group_name, # type: str + name, # type: str + app_service_plan, # type: "_models.AppServicePlanPatchResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.AppServicePlan" + """Creates or updates an App Service Plan. + + Description for Creates or updates an App Service Plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param app_service_plan: Details of the App Service plan. + :type app_service_plan: ~azure.mgmt.web.v2021_01_15.models.AppServicePlanPatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppServicePlan, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppServicePlan + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppServicePlan"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_service_plan, 'AppServicePlanPatchResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('AppServicePlan', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('AppServicePlan', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}'} # type: ignore + + def list_capabilities( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.Capability"] + """List all capabilities of an App Service plan. + + Description for List all capabilities of an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of Capability, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.Capability] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.Capability"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_capabilities.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[Capability]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_capabilities.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/capabilities'} # type: ignore + + def get_hybrid_connection( + self, + resource_group_name, # type: str + name, # type: str + namespace_name, # type: str + relay_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.HybridConnection" + """Retrieve a Hybrid Connection in use in an App Service plan. + + Description for Retrieve a Hybrid Connection in use in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param namespace_name: Name of the Service Bus namespace. + :type namespace_name: str + :param relay_name: Name of the Service Bus relay. + :type relay_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_hybrid_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_hybrid_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + def delete_hybrid_connection( + self, + resource_group_name, # type: str + name, # type: str + namespace_name, # type: str + relay_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a Hybrid Connection in use in an App Service plan. + + Description for Delete a Hybrid Connection in use in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param namespace_name: Name of the Service Bus namespace. + :type namespace_name: str + :param relay_name: Name of the Service Bus relay. + :type relay_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_hybrid_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_hybrid_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + def list_hybrid_connection_keys( + self, + resource_group_name, # type: str + name, # type: str + namespace_name, # type: str + relay_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.HybridConnectionKey" + """Get the send key name and value of a Hybrid Connection. + + Description for Get the send key name and value of a Hybrid Connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param namespace_name: The name of the Service Bus namespace. + :type namespace_name: str + :param relay_name: The name of the Service Bus relay. + :type relay_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnectionKey, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnectionKey + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnectionKey"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_hybrid_connection_keys.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnectionKey', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_hybrid_connection_keys.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}/listKeys'} # type: ignore + + def list_web_apps_by_hybrid_connection( + self, + resource_group_name, # type: str + name, # type: str + namespace_name, # type: str + relay_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ResourceCollection"] + """Get all apps that use a Hybrid Connection in an App Service Plan. + + Description for Get all apps that use a Hybrid Connection in an App Service Plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param namespace_name: Name of the Hybrid Connection namespace. + :type namespace_name: str + :param relay_name: Name of the Hybrid Connection relay. + :type relay_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ResourceCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_web_apps_by_hybrid_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ResourceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_web_apps_by_hybrid_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}/sites'} # type: ignore + + def get_hybrid_connection_plan_limit( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.HybridConnectionLimits" + """Get the maximum number of Hybrid Connections allowed in an App Service plan. + + Description for Get the maximum number of Hybrid Connections allowed in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnectionLimits, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnectionLimits + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnectionLimits"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_hybrid_connection_plan_limit.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnectionLimits', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_hybrid_connection_plan_limit.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/hybridConnectionPlanLimits/limit'} # type: ignore + + def list_hybrid_connections( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.HybridConnectionCollection"] + """Retrieve all Hybrid Connections in use in an App Service plan. + + Description for Retrieve all Hybrid Connections in use in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either HybridConnectionCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.HybridConnectionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnectionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_hybrid_connections.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('HybridConnectionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_hybrid_connections.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/hybridConnectionRelays'} # type: ignore + + def restart_web_apps( + self, + resource_group_name, # type: str + name, # type: str + soft_restart=None, # type: Optional[bool] + **kwargs # type: Any + ): + # type: (...) -> None + """Restart all apps in an App Service plan. + + Description for Restart all apps in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param soft_restart: Specify :code:`true` to perform a soft restart, applies the + configuration settings and restarts the apps if necessary. The default is + :code:`false`, which always restarts and reprovisions the apps. + :type soft_restart: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.restart_web_apps.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if soft_restart is not None: + query_parameters['softRestart'] = self._serialize.query("soft_restart", soft_restart, 'bool') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + restart_web_apps.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/restartSites'} # type: ignore + + def list_web_apps( + self, + resource_group_name, # type: str + name, # type: str + skip_token=None, # type: Optional[str] + filter=None, # type: Optional[str] + top=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.WebAppCollection"] + """Get all apps associated with an App Service plan. + + Description for Get all apps associated with an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param skip_token: Skip to a web app in the list of webapps associated with app service plan. + If specified, the resulting list will contain web apps starting from (including) the skipToken. + Otherwise, the resulting list contains web apps from the start of the list. + :type skip_token: str + :param filter: Supported filter: $filter=state eq running. Returns only web apps that are + currently running. + :type filter: str + :param top: List page size. If specified, results are paged. + :type top: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_web_apps.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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 skip_token is not None: + query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, 'str') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + if top is not None: + query_parameters['$top'] = self._serialize.query("top", top, '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('WebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_web_apps.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/sites'} # type: ignore + + def get_server_farm_skus( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Any + """Gets all selectable SKUs for a given App Service Plan. + + Description for Gets all selectable SKUs for a given App Service Plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of App Service Plan. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: any, or the result of cls(response) + :rtype: any + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Any] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_server_farm_skus.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_server_farm_skus.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/skus'} # type: ignore + + def list_usages( + self, + resource_group_name, # type: str + name, # type: str + filter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.CsmUsageQuotaCollection"] + """Gets server farm usage information. + + Description for Gets server farm usage information. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of App Service Plan. + :type name: str + :param filter: Return only usages/metrics specified in the filter. Filter conforms to odata + syntax. Example: $filter=(name.value eq 'Metric1' or name.value eq 'Metric2'). + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either CsmUsageQuotaCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.CsmUsageQuotaCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmUsageQuotaCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_usages.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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 filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('CsmUsageQuotaCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_usages.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/usages'} # type: ignore + + def list_vnets( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.VnetInfo"] + """Get all Virtual Networks associated with an App Service plan. + + Description for Get all Virtual Networks associated with an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of VnetInfo, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.VnetInfo] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.VnetInfo"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_vnets.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[VnetInfo]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_vnets.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections'} # type: ignore + + def get_vnet_from_server_farm( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetInfo" + """Get a Virtual Network associated with an App Service plan. + + Description for Get a Virtual Network associated with an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_vnet_from_server_farm.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_vnet_from_server_farm.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections/{vnetName}'} # type: ignore + + def get_vnet_gateway( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + gateway_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetGateway" + """Get a Virtual Network gateway. + + Description for Get a Virtual Network gateway. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param gateway_name: Name of the gateway. Only the 'primary' gateway is supported. + :type gateway_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetGateway, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetGateway"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_vnet_gateway.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'gatewayName': self._serialize.url("gateway_name", gateway_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetGateway', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_vnet_gateway.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections/{vnetName}/gateways/{gatewayName}'} # type: ignore + + def update_vnet_gateway( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + gateway_name, # type: str + connection_envelope, # type: "_models.VnetGateway" + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetGateway" + """Update a Virtual Network gateway. + + Description for Update a Virtual Network gateway. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param gateway_name: Name of the gateway. Only the 'primary' gateway is supported. + :type gateway_name: str + :param connection_envelope: Definition of the gateway. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetGateway, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetGateway"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_vnet_gateway.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'gatewayName': self._serialize.url("gateway_name", gateway_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetGateway') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetGateway', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_vnet_gateway.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections/{vnetName}/gateways/{gatewayName}'} # type: ignore + + def list_routes_for_vnet( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.VnetRoute"] + """Get all routes that are associated with a Virtual Network in an App Service plan. + + Description for Get all routes that are associated with a Virtual Network in an App Service + plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of VnetRoute, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.VnetRoute] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.VnetRoute"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_routes_for_vnet.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[VnetRoute]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_routes_for_vnet.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections/{vnetName}/routes'} # type: ignore + + def get_route_for_vnet( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + route_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.VnetRoute"] + """Get a Virtual Network route in an App Service plan. + + Description for Get a Virtual Network route in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param route_name: Name of the Virtual Network route. + :type route_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of VnetRoute, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.VnetRoute] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.VnetRoute"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_route_for_vnet.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'routeName': self._serialize.url("route_name", route_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[VnetRoute]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_route_for_vnet.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections/{vnetName}/routes/{routeName}'} # type: ignore + + def create_or_update_vnet_route( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + route_name, # type: str + route, # type: "_models.VnetRoute" + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetRoute" + """Create or update a Virtual Network route in an App Service plan. + + Description for Create or update a Virtual Network route in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param route_name: Name of the Virtual Network route. + :type route_name: str + :param route: Definition of the Virtual Network route. + :type route: ~azure.mgmt.web.v2021_01_15.models.VnetRoute + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetRoute, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetRoute + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetRoute"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_vnet_route.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'routeName': self._serialize.url("route_name", route_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(route, 'VnetRoute') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetRoute', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_vnet_route.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections/{vnetName}/routes/{routeName}'} # type: ignore + + def delete_vnet_route( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + route_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a Virtual Network route in an App Service plan. + + Description for Delete a Virtual Network route in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param route_name: Name of the Virtual Network route. + :type route_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_vnet_route.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'routeName': self._serialize.url("route_name", route_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_vnet_route.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections/{vnetName}/routes/{routeName}'} # type: ignore + + def update_vnet_route( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + route_name, # type: str + route, # type: "_models.VnetRoute" + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetRoute" + """Create or update a Virtual Network route in an App Service plan. + + Description for Create or update a Virtual Network route in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param route_name: Name of the Virtual Network route. + :type route_name: str + :param route: Definition of the Virtual Network route. + :type route: ~azure.mgmt.web.v2021_01_15.models.VnetRoute + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetRoute, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetRoute + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetRoute"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_vnet_route.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'routeName': self._serialize.url("route_name", route_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(route, 'VnetRoute') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetRoute', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_vnet_route.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/virtualNetworkConnections/{vnetName}/routes/{routeName}'} # type: ignore + + def reboot_worker( + self, + resource_group_name, # type: str + name, # type: str + worker_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Reboot a worker machine in an App Service plan. + + Description for Reboot a worker machine in an App Service plan. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the App Service plan. + :type name: str + :param worker_name: Name of worker machine, which typically starts with RD. + :type worker_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.reboot_worker.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'workerName': self._serialize.url("worker_name", worker_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reboot_worker.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/workers/{workerName}/reboot'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_certificate_orders_diagnostics_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_certificate_orders_diagnostics_operations.py new file mode 100644 index 000000000000..2ce230fce397 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_certificate_orders_diagnostics_operations.py @@ -0,0 +1,207 @@ +# 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. +# -------------------------------------------------------------------------- +import datetime +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 CertificateOrdersDiagnosticsOperations(object): + """CertificateOrdersDiagnosticsOperations 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.web.v2021_01_15.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_app_service_certificate_order_detector_response( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DetectorResponseCollection"] + """Microsoft.CertificateRegistration to get the list of detectors for this RP. + + Description for Microsoft.CertificateRegistration to get the list of detectors for this RP. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: The certificate order name for which the response is needed. + :type certificate_order_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DetectorResponseCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.DetectorResponseCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorResponseCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_app_service_certificate_order_detector_response.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DetectorResponseCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_app_service_certificate_order_detector_response.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/detectors'} # type: ignore + + def get_app_service_certificate_order_detector_response( + self, + resource_group_name, # type: str + certificate_order_name, # type: str + detector_name, # type: str + start_time=None, # type: Optional[datetime.datetime] + end_time=None, # type: Optional[datetime.datetime] + time_grain=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.DetectorResponse" + """Microsoft.CertificateRegistration call to get a detector response from App Lens. + + Description for Microsoft.CertificateRegistration call to get a detector response from App + Lens. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param certificate_order_name: The certificate order name for which the response is needed. + :type certificate_order_name: str + :param detector_name: The detector name which needs to be run. + :type detector_name: str + :param start_time: The start time for detector response. + :type start_time: ~datetime.datetime + :param end_time: The end time for the detector response. + :type end_time: ~datetime.datetime + :param time_grain: The time grain for the detector response. + :type time_grain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DetectorResponse, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DetectorResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_app_service_certificate_order_detector_response.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'certificateOrderName': self._serialize.url("certificate_order_name", certificate_order_name, 'str'), + 'detectorName': self._serialize.url("detector_name", detector_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'iso-8601') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'iso-8601') + if time_grain is not None: + query_parameters['timeGrain'] = self._serialize.query("time_grain", time_grain, 'str', pattern=r'PT[1-9][0-9]+[SMH]') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DetectorResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_app_service_certificate_order_detector_response.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/detectors/{detectorName}'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_certificate_registration_provider_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_certificate_registration_provider_operations.py new file mode 100644 index 000000000000..d1a23c82e1f0 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_certificate_registration_provider_operations.py @@ -0,0 +1,113 @@ +# 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 CertificateRegistrationProviderOperations(object): + """CertificateRegistrationProviderOperations 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.web.v2021_01_15.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_operations( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.CsmOperationCollection"] + """Implements Csm operations Api to exposes the list of available Csm Apis under the resource provider. + + Description for Implements Csm operations Api to exposes the list of available Csm Apis under + the resource provider. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either CsmOperationCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.CsmOperationCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmOperationCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_operations.metadata['url'] # type: ignore + # 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('CsmOperationCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_operations.metadata = {'url': '/providers/Microsoft.CertificateRegistration/operations'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_certificates_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_certificates_operations.py new file mode 100644 index 000000000000..9573fea59412 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_certificates_operations.py @@ -0,0 +1,457 @@ +# 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 CertificatesOperations(object): + """CertificatesOperations 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.web.v2021_01_15.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, + filter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.CertificateCollection"] + """Get all certificates for a subscription. + + Description for Get all certificates for a subscription. + + :param filter: Return only information specified in the filter (using OData syntax). For + example: $filter=KeyVaultId eq 'KeyVaultId'. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either CertificateCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.CertificateCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CertificateCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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 filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('CertificateCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/certificates'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.CertificateCollection"] + """Get all certificates in a resource group. + + Description for Get all certificates in a resource group. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :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 CertificateCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.CertificateCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CertificateCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('CertificateCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/certificates'} # type: ignore + + def get( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.Certificate" + """Get a certificate. + + Description for Get a certificate. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the certificate. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Certificate, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Certificate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Certificate"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Certificate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/certificates/{name}'} # type: ignore + + def create_or_update( + self, + resource_group_name, # type: str + name, # type: str + certificate_envelope, # type: "_models.Certificate" + **kwargs # type: Any + ): + # type: (...) -> "_models.Certificate" + """Create or update a certificate. + + Description for Create or update a certificate. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the certificate. + :type name: str + :param certificate_envelope: Details of certificate, if it exists already. + :type certificate_envelope: ~azure.mgmt.web.v2021_01_15.models.Certificate + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Certificate, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Certificate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Certificate"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(certificate_envelope, 'Certificate') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Certificate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/certificates/{name}'} # type: ignore + + def delete( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a certificate. + + Description for Delete a certificate. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the certificate. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/certificates/{name}'} # type: ignore + + def update( + self, + resource_group_name, # type: str + name, # type: str + certificate_envelope, # type: "_models.CertificatePatchResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.Certificate" + """Create or update a certificate. + + Description for Create or update a certificate. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the certificate. + :type name: str + :param certificate_envelope: Details of certificate, if it exists already. + :type certificate_envelope: ~azure.mgmt.web.v2021_01_15.models.CertificatePatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Certificate, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Certificate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Certificate"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(certificate_envelope, 'CertificatePatchResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Certificate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/certificates/{name}'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_deleted_web_apps_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_deleted_web_apps_operations.py new file mode 100644 index 000000000000..f4b988bebbdd --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_deleted_web_apps_operations.py @@ -0,0 +1,252 @@ +# 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 DeletedWebAppsOperations(object): + """DeletedWebAppsOperations 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.web.v2021_01_15.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, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DeletedWebAppCollection"] + """Get all deleted apps for a subscription. + + Description for Get all deleted apps for a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DeletedWebAppCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.DeletedWebAppCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DeletedWebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('DeletedWebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/deletedSites'} # type: ignore + + def list_by_location( + self, + location, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DeletedWebAppCollection"] + """Get all deleted apps for a subscription at location. + + Description for Get all deleted apps for a subscription at location. + + :param location: + :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 DeletedWebAppCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.DeletedWebAppCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DeletedWebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'location': self._serialize.url("location", location, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DeletedWebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_location.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/locations/{location}/deletedSites'} # type: ignore + + def get_deleted_web_app_by_location( + self, + location, # type: str + deleted_site_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.DeletedSite" + """Get deleted app for a subscription at location. + + Description for Get deleted app for a subscription at location. + + :param location: + :type location: str + :param deleted_site_id: The numeric ID of the deleted app, e.g. 12345. + :type deleted_site_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DeletedSite, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DeletedSite + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DeletedSite"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_deleted_web_app_by_location.metadata['url'] # type: ignore + path_format_arguments = { + 'location': self._serialize.url("location", location, 'str'), + 'deletedSiteId': self._serialize.url("deleted_site_id", deleted_site_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DeletedSite', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_deleted_web_app_by_location.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/locations/{location}/deletedSites/{deletedSiteId}'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_diagnostics_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_diagnostics_operations.py new file mode 100644 index 000000000000..467568e41081 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_diagnostics_operations.py @@ -0,0 +1,1800 @@ +# 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. +# -------------------------------------------------------------------------- +import datetime +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 DiagnosticsOperations(object): + """DiagnosticsOperations 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.web.v2021_01_15.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_hosting_environment_detector_responses( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DetectorResponseCollection"] + """List Hosting Environment Detector Responses. + + Description for List Hosting Environment Detector Responses. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site Name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DetectorResponseCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.DetectorResponseCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorResponseCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_hosting_environment_detector_responses.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DetectorResponseCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_hosting_environment_detector_responses.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/detectors'} # type: ignore + + def get_hosting_environment_detector_response( + self, + resource_group_name, # type: str + name, # type: str + detector_name, # type: str + start_time=None, # type: Optional[datetime.datetime] + end_time=None, # type: Optional[datetime.datetime] + time_grain=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.DetectorResponse" + """Get Hosting Environment Detector Response. + + Description for Get Hosting Environment Detector Response. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: App Service Environment Name. + :type name: str + :param detector_name: Detector Resource Name. + :type detector_name: str + :param start_time: Start Time. + :type start_time: ~datetime.datetime + :param end_time: End Time. + :type end_time: ~datetime.datetime + :param time_grain: Time Grain. + :type time_grain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DetectorResponse, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DetectorResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_hosting_environment_detector_response.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'detectorName': self._serialize.url("detector_name", detector_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'iso-8601') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'iso-8601') + if time_grain is not None: + query_parameters['timeGrain'] = self._serialize.query("time_grain", time_grain, 'str', pattern=r'PT[1-9][0-9]+[SMH]') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DetectorResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_hosting_environment_detector_response.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{name}/detectors/{detectorName}'} # type: ignore + + def list_site_detector_responses( + self, + resource_group_name, # type: str + site_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DetectorResponseCollection"] + """List Site Detector Responses. + + Description for List Site Detector Responses. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DetectorResponseCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.DetectorResponseCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorResponseCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_detector_responses.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DetectorResponseCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_site_detector_responses.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/detectors'} # type: ignore + + def get_site_detector_response( + self, + resource_group_name, # type: str + site_name, # type: str + detector_name, # type: str + start_time=None, # type: Optional[datetime.datetime] + end_time=None, # type: Optional[datetime.datetime] + time_grain=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.DetectorResponse" + """Get site detector response. + + Description for Get site detector response. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param detector_name: Detector Resource Name. + :type detector_name: str + :param start_time: Start Time. + :type start_time: ~datetime.datetime + :param end_time: End Time. + :type end_time: ~datetime.datetime + :param time_grain: Time Grain. + :type time_grain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DetectorResponse, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DetectorResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_detector_response.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'detectorName': self._serialize.url("detector_name", detector_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'iso-8601') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'iso-8601') + if time_grain is not None: + query_parameters['timeGrain'] = self._serialize.query("time_grain", time_grain, 'str', pattern=r'PT[1-9][0-9]+[SMH]') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DetectorResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_detector_response.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/detectors/{detectorName}'} # type: ignore + + def list_site_diagnostic_categories( + self, + resource_group_name, # type: str + site_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DiagnosticCategoryCollection"] + """Get Diagnostics Categories. + + Description for Get Diagnostics Categories. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DiagnosticCategoryCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.DiagnosticCategoryCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticCategoryCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_diagnostic_categories.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DiagnosticCategoryCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_site_diagnostic_categories.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/diagnostics'} # type: ignore + + def get_site_diagnostic_category( + self, + resource_group_name, # type: str + site_name, # type: str + diagnostic_category, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.DiagnosticCategory" + """Get Diagnostics Category. + + Description for Get Diagnostics Category. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DiagnosticCategory, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DiagnosticCategory + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticCategory"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_diagnostic_category.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DiagnosticCategory', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_diagnostic_category.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/diagnostics/{diagnosticCategory}'} # type: ignore + + def list_site_analyses( + self, + resource_group_name, # type: str + site_name, # type: str + diagnostic_category, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DiagnosticAnalysisCollection"] + """Get Site Analyses. + + Description for Get Site Analyses. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DiagnosticAnalysisCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.DiagnosticAnalysisCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticAnalysisCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_analyses.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DiagnosticAnalysisCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_site_analyses.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/diagnostics/{diagnosticCategory}/analyses'} # type: ignore + + def get_site_analysis( + self, + resource_group_name, # type: str + site_name, # type: str + diagnostic_category, # type: str + analysis_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.AnalysisDefinition" + """Get Site Analysis. + + Description for Get Site Analysis. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :param analysis_name: Analysis Name. + :type analysis_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AnalysisDefinition, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AnalysisDefinition + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AnalysisDefinition"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_analysis.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'analysisName': self._serialize.url("analysis_name", analysis_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AnalysisDefinition', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_analysis.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/diagnostics/{diagnosticCategory}/analyses/{analysisName}'} # type: ignore + + def execute_site_analysis( + self, + resource_group_name, # type: str + site_name, # type: str + diagnostic_category, # type: str + analysis_name, # type: str + start_time=None, # type: Optional[datetime.datetime] + end_time=None, # type: Optional[datetime.datetime] + time_grain=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.DiagnosticAnalysis" + """Execute Analysis. + + Description for Execute Analysis. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Category Name. + :type diagnostic_category: str + :param analysis_name: Analysis Resource Name. + :type analysis_name: str + :param start_time: Start Time. + :type start_time: ~datetime.datetime + :param end_time: End Time. + :type end_time: ~datetime.datetime + :param time_grain: Time Grain. + :type time_grain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DiagnosticAnalysis, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DiagnosticAnalysis + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticAnalysis"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.execute_site_analysis.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'analysisName': self._serialize.url("analysis_name", analysis_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'iso-8601') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'iso-8601') + if time_grain is not None: + query_parameters['timeGrain'] = self._serialize.query("time_grain", time_grain, 'str', pattern=r'PT[1-9][0-9]+[SMH]') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DiagnosticAnalysis', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + execute_site_analysis.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/diagnostics/{diagnosticCategory}/analyses/{analysisName}/execute'} # type: ignore + + def list_site_detectors( + self, + resource_group_name, # type: str + site_name, # type: str + diagnostic_category, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DiagnosticDetectorCollection"] + """Get Detectors. + + Description for Get Detectors. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DiagnosticDetectorCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.DiagnosticDetectorCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticDetectorCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_detectors.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DiagnosticDetectorCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_site_detectors.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/diagnostics/{diagnosticCategory}/detectors'} # type: ignore + + def get_site_detector( + self, + resource_group_name, # type: str + site_name, # type: str + diagnostic_category, # type: str + detector_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.DetectorDefinition" + """Get Detector. + + Description for Get Detector. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :param detector_name: Detector Name. + :type detector_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DetectorDefinition, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DetectorDefinition + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorDefinition"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_detector.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'detectorName': self._serialize.url("detector_name", detector_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DetectorDefinition', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_detector.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/diagnostics/{diagnosticCategory}/detectors/{detectorName}'} # type: ignore + + def execute_site_detector( + self, + resource_group_name, # type: str + site_name, # type: str + detector_name, # type: str + diagnostic_category, # type: str + start_time=None, # type: Optional[datetime.datetime] + end_time=None, # type: Optional[datetime.datetime] + time_grain=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.DiagnosticDetectorResponse" + """Execute Detector. + + Description for Execute Detector. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param detector_name: Detector Resource Name. + :type detector_name: str + :param diagnostic_category: Category Name. + :type diagnostic_category: str + :param start_time: Start Time. + :type start_time: ~datetime.datetime + :param end_time: End Time. + :type end_time: ~datetime.datetime + :param time_grain: Time Grain. + :type time_grain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DiagnosticDetectorResponse, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DiagnosticDetectorResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticDetectorResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.execute_site_detector.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'detectorName': self._serialize.url("detector_name", detector_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'iso-8601') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'iso-8601') + if time_grain is not None: + query_parameters['timeGrain'] = self._serialize.query("time_grain", time_grain, 'str', pattern=r'PT[1-9][0-9]+[SMH]') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DiagnosticDetectorResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + execute_site_detector.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/diagnostics/{diagnosticCategory}/detectors/{detectorName}/execute'} # type: ignore + + def list_site_detector_responses_slot( + self, + resource_group_name, # type: str + site_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DetectorResponseCollection"] + """List Site Detector Responses. + + Description for List Site Detector Responses. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param slot: Slot Name. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DetectorResponseCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.DetectorResponseCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorResponseCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_detector_responses_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DetectorResponseCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_site_detector_responses_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/detectors'} # type: ignore + + def get_site_detector_response_slot( + self, + resource_group_name, # type: str + site_name, # type: str + detector_name, # type: str + slot, # type: str + start_time=None, # type: Optional[datetime.datetime] + end_time=None, # type: Optional[datetime.datetime] + time_grain=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.DetectorResponse" + """Get site detector response. + + Description for Get site detector response. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param detector_name: Detector Resource Name. + :type detector_name: str + :param slot: Slot Name. + :type slot: str + :param start_time: Start Time. + :type start_time: ~datetime.datetime + :param end_time: End Time. + :type end_time: ~datetime.datetime + :param time_grain: Time Grain. + :type time_grain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DetectorResponse, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DetectorResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_detector_response_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'detectorName': self._serialize.url("detector_name", detector_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'iso-8601') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'iso-8601') + if time_grain is not None: + query_parameters['timeGrain'] = self._serialize.query("time_grain", time_grain, 'str', pattern=r'PT[1-9][0-9]+[SMH]') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DetectorResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_detector_response_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/detectors/{detectorName}'} # type: ignore + + def list_site_diagnostic_categories_slot( + self, + resource_group_name, # type: str + site_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DiagnosticCategoryCollection"] + """Get Diagnostics Categories. + + Description for Get Diagnostics Categories. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param slot: Slot Name. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DiagnosticCategoryCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.DiagnosticCategoryCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticCategoryCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_diagnostic_categories_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DiagnosticCategoryCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_site_diagnostic_categories_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/diagnostics'} # type: ignore + + def get_site_diagnostic_category_slot( + self, + resource_group_name, # type: str + site_name, # type: str + diagnostic_category, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.DiagnosticCategory" + """Get Diagnostics Category. + + Description for Get Diagnostics Category. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :param slot: Slot Name. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DiagnosticCategory, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DiagnosticCategory + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticCategory"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_diagnostic_category_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DiagnosticCategory', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_diagnostic_category_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/diagnostics/{diagnosticCategory}'} # type: ignore + + def list_site_analyses_slot( + self, + resource_group_name, # type: str + site_name, # type: str + diagnostic_category, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DiagnosticAnalysisCollection"] + """Get Site Analyses. + + Description for Get Site Analyses. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :param slot: Slot Name. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DiagnosticAnalysisCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.DiagnosticAnalysisCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticAnalysisCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_analyses_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DiagnosticAnalysisCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_site_analyses_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/diagnostics/{diagnosticCategory}/analyses'} # type: ignore + + def get_site_analysis_slot( + self, + resource_group_name, # type: str + site_name, # type: str + diagnostic_category, # type: str + analysis_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.AnalysisDefinition" + """Get Site Analysis. + + Description for Get Site Analysis. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :param analysis_name: Analysis Name. + :type analysis_name: str + :param slot: Slot - optional. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AnalysisDefinition, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AnalysisDefinition + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AnalysisDefinition"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_analysis_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'analysisName': self._serialize.url("analysis_name", analysis_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AnalysisDefinition', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_analysis_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/diagnostics/{diagnosticCategory}/analyses/{analysisName}'} # type: ignore + + def execute_site_analysis_slot( + self, + resource_group_name, # type: str + site_name, # type: str + diagnostic_category, # type: str + analysis_name, # type: str + slot, # type: str + start_time=None, # type: Optional[datetime.datetime] + end_time=None, # type: Optional[datetime.datetime] + time_grain=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.DiagnosticAnalysis" + """Execute Analysis. + + Description for Execute Analysis. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Category Name. + :type diagnostic_category: str + :param analysis_name: Analysis Resource Name. + :type analysis_name: str + :param slot: Slot Name. + :type slot: str + :param start_time: Start Time. + :type start_time: ~datetime.datetime + :param end_time: End Time. + :type end_time: ~datetime.datetime + :param time_grain: Time Grain. + :type time_grain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DiagnosticAnalysis, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DiagnosticAnalysis + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticAnalysis"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.execute_site_analysis_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'analysisName': self._serialize.url("analysis_name", analysis_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'iso-8601') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'iso-8601') + if time_grain is not None: + query_parameters['timeGrain'] = self._serialize.query("time_grain", time_grain, 'str', pattern=r'PT[1-9][0-9]+[SMH]') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DiagnosticAnalysis', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + execute_site_analysis_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/diagnostics/{diagnosticCategory}/analyses/{analysisName}/execute'} # type: ignore + + def list_site_detectors_slot( + self, + resource_group_name, # type: str + site_name, # type: str + diagnostic_category, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DiagnosticDetectorCollection"] + """Get Detectors. + + Description for Get Detectors. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :param slot: Slot Name. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DiagnosticDetectorCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.DiagnosticDetectorCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticDetectorCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_detectors_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DiagnosticDetectorCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_site_detectors_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/diagnostics/{diagnosticCategory}/detectors'} # type: ignore + + def get_site_detector_slot( + self, + resource_group_name, # type: str + site_name, # type: str + diagnostic_category, # type: str + detector_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.DetectorDefinition" + """Get Detector. + + Description for Get Detector. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param diagnostic_category: Diagnostic Category. + :type diagnostic_category: str + :param detector_name: Detector Name. + :type detector_name: str + :param slot: Slot Name. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DetectorDefinition, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DetectorDefinition + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DetectorDefinition"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_detector_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'detectorName': self._serialize.url("detector_name", detector_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DetectorDefinition', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_detector_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/diagnostics/{diagnosticCategory}/detectors/{detectorName}'} # type: ignore + + def execute_site_detector_slot( + self, + resource_group_name, # type: str + site_name, # type: str + detector_name, # type: str + diagnostic_category, # type: str + slot, # type: str + start_time=None, # type: Optional[datetime.datetime] + end_time=None, # type: Optional[datetime.datetime] + time_grain=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.DiagnosticDetectorResponse" + """Execute Detector. + + Description for Execute Detector. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site Name. + :type site_name: str + :param detector_name: Detector Resource Name. + :type detector_name: str + :param diagnostic_category: Category Name. + :type diagnostic_category: str + :param slot: Slot Name. + :type slot: str + :param start_time: Start Time. + :type start_time: ~datetime.datetime + :param end_time: End Time. + :type end_time: ~datetime.datetime + :param time_grain: Time Grain. + :type time_grain: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DiagnosticDetectorResponse, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DiagnosticDetectorResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DiagnosticDetectorResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.execute_site_detector_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'detectorName': self._serialize.url("detector_name", detector_name, 'str'), + 'diagnosticCategory': self._serialize.url("diagnostic_category", diagnostic_category, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'iso-8601') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'iso-8601') + if time_grain is not None: + query_parameters['timeGrain'] = self._serialize.query("time_grain", time_grain, 'str', pattern=r'PT[1-9][0-9]+[SMH]') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DiagnosticDetectorResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + execute_site_detector_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slot}/diagnostics/{diagnosticCategory}/detectors/{detectorName}/execute'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_domain_registration_provider_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_domain_registration_provider_operations.py new file mode 100644 index 000000000000..60a50e1c0f4f --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_domain_registration_provider_operations.py @@ -0,0 +1,113 @@ +# 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 DomainRegistrationProviderOperations(object): + """DomainRegistrationProviderOperations 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.web.v2021_01_15.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_operations( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.CsmOperationCollection"] + """Implements Csm operations Api to exposes the list of available Csm Apis under the resource provider. + + Description for Implements Csm operations Api to exposes the list of available Csm Apis under + the resource provider. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either CsmOperationCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.CsmOperationCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmOperationCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_operations.metadata['url'] # type: ignore + # 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('CsmOperationCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_operations.metadata = {'url': '/providers/Microsoft.DomainRegistration/operations'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_domains_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_domains_operations.py new file mode 100644 index 000000000000..71f144242d46 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_domains_operations.py @@ -0,0 +1,1139 @@ +# 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 DomainsOperations(object): + """DomainsOperations 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.web.v2021_01_15.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 check_availability( + self, + identifier, # type: "_models.NameIdentifier" + **kwargs # type: Any + ): + # type: (...) -> "_models.DomainAvailabilityCheckResult" + """Check if a domain is available for registration. + + Description for Check if a domain is available for registration. + + :param identifier: Name of the domain. + :type identifier: ~azure.mgmt.web.v2021_01_15.models.NameIdentifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DomainAvailabilityCheckResult, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DomainAvailabilityCheckResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DomainAvailabilityCheckResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.check_availability.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(identifier, 'NameIdentifier') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DomainAvailabilityCheckResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + check_availability.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/checkDomainAvailability'} # type: ignore + + def list( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DomainCollection"] + """Get all domains in a subscription. + + Description for Get all domains in a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DomainCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.DomainCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DomainCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('DomainCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/domains'} # type: ignore + + def get_control_center_sso_request( + self, + **kwargs # type: Any + ): + # type: (...) -> "_models.DomainControlCenterSsoRequest" + """Generate a single sign-on request for the domain management portal. + + Description for Generate a single sign-on request for the domain management portal. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DomainControlCenterSsoRequest, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DomainControlCenterSsoRequest + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DomainControlCenterSsoRequest"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_control_center_sso_request.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DomainControlCenterSsoRequest', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_control_center_sso_request.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/generateSsoRequest'} # type: ignore + + def list_recommendations( + self, + parameters, # type: "_models.DomainRecommendationSearchParameters" + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.NameIdentifierCollection"] + """Get domain name recommendations based on keywords. + + Description for Get domain name recommendations based on keywords. + + :param parameters: Search parameters for domain name recommendations. + :type parameters: ~azure.mgmt.web.v2021_01_15.models.DomainRecommendationSearchParameters + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either NameIdentifierCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.NameIdentifierCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.NameIdentifierCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = "application/json" + accept = "application/json" + + def prepare_request(next_link=None): + # 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') + + if not next_link: + # Construct URL + url = self.list_recommendations.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(parameters, 'DomainRecommendationSearchParameters') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(parameters, 'DomainRecommendationSearchParameters') + body_content_kwargs['content'] = body_content + request = self._client.get(url, query_parameters, header_parameters, **body_content_kwargs) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('NameIdentifierCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_recommendations.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/listDomainRecommendations'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DomainCollection"] + """Get all domains in a resource group. + + Description for Get all domains in a resource group. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :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 DomainCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.DomainCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DomainCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DomainCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains'} # type: ignore + + def get( + self, + resource_group_name, # type: str + domain_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.Domain" + """Get a domain. + + Description for Get a domain. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of the domain. + :type domain_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Domain, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Domain + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Domain"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Domain', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}'} # type: ignore + + def _create_or_update_initial( + self, + resource_group_name, # type: str + domain_name, # type: str + domain, # type: "_models.Domain" + **kwargs # type: Any + ): + # type: (...) -> "_models.Domain" + cls = kwargs.pop('cls', None) # type: ClsType["_models.Domain"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str', pattern=r'[a-zA-Z0-9][a-zA-Z0-9\.-]+'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(domain, 'Domain') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('Domain', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('Domain', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}'} # type: ignore + + def begin_create_or_update( + self, + resource_group_name, # type: str + domain_name, # type: str + domain, # type: "_models.Domain" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.Domain"] + """Creates or updates a domain. + + Description for Creates or updates a domain. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of the domain. + :type domain_name: str + :param domain: Domain registration information. + :type domain: ~azure.mgmt.web.v2021_01_15.models.Domain + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 Domain or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.Domain] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Domain"] + 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_or_update_initial( + resource_group_name=resource_group_name, + domain_name=domain_name, + domain=domain, + 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('Domain', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str', pattern=r'[a-zA-Z0-9][a-zA-Z0-9\.-]+'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}'} # type: ignore + + def delete( + self, + resource_group_name, # type: str + domain_name, # type: str + force_hard_delete_domain=None, # type: Optional[bool] + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a domain. + + Description for Delete a domain. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of the domain. + :type domain_name: str + :param force_hard_delete_domain: Specify :code:`true` to delete the domain + immediately. The default is :code:`false` which deletes the domain after 24 hours. + :type force_hard_delete_domain: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if force_hard_delete_domain is not None: + query_parameters['forceHardDeleteDomain'] = self._serialize.query("force_hard_delete_domain", force_hard_delete_domain, 'bool') + 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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}'} # type: ignore + + def update( + self, + resource_group_name, # type: str + domain_name, # type: str + domain, # type: "_models.DomainPatchResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.Domain" + """Creates or updates a domain. + + Description for Creates or updates a domain. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of the domain. + :type domain_name: str + :param domain: Domain registration information. + :type domain: ~azure.mgmt.web.v2021_01_15.models.DomainPatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Domain, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Domain + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Domain"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str', pattern=r'[a-zA-Z0-9][a-zA-Z0-9\.-]+'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(domain, 'DomainPatchResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('Domain', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('Domain', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}'} # type: ignore + + def list_ownership_identifiers( + self, + resource_group_name, # type: str + domain_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DomainOwnershipIdentifierCollection"] + """Lists domain ownership identifiers. + + Description for Lists domain ownership identifiers. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of domain. + :type domain_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DomainOwnershipIdentifierCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.DomainOwnershipIdentifierCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DomainOwnershipIdentifierCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_ownership_identifiers.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DomainOwnershipIdentifierCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_ownership_identifiers.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}/domainOwnershipIdentifiers'} # type: ignore + + def get_ownership_identifier( + self, + resource_group_name, # type: str + domain_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.DomainOwnershipIdentifier" + """Get ownership identifier for domain. + + Description for Get ownership identifier for domain. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of domain. + :type domain_name: str + :param name: Name of identifier. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DomainOwnershipIdentifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DomainOwnershipIdentifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DomainOwnershipIdentifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_ownership_identifier.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DomainOwnershipIdentifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_ownership_identifier.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}/domainOwnershipIdentifiers/{name}'} # type: ignore + + def create_or_update_ownership_identifier( + self, + resource_group_name, # type: str + domain_name, # type: str + name, # type: str + domain_ownership_identifier, # type: "_models.DomainOwnershipIdentifier" + **kwargs # type: Any + ): + # type: (...) -> "_models.DomainOwnershipIdentifier" + """Creates an ownership identifier for a domain or updates identifier details for an existing identifier. + + Description for Creates an ownership identifier for a domain or updates identifier details for + an existing identifier. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of domain. + :type domain_name: str + :param name: Name of identifier. + :type name: str + :param domain_ownership_identifier: A JSON representation of the domain ownership properties. + :type domain_ownership_identifier: ~azure.mgmt.web.v2021_01_15.models.DomainOwnershipIdentifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DomainOwnershipIdentifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DomainOwnershipIdentifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DomainOwnershipIdentifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_ownership_identifier.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(domain_ownership_identifier, 'DomainOwnershipIdentifier') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DomainOwnershipIdentifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_ownership_identifier.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}/domainOwnershipIdentifiers/{name}'} # type: ignore + + def delete_ownership_identifier( + self, + resource_group_name, # type: str + domain_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete ownership identifier for domain. + + Description for Delete ownership identifier for domain. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of domain. + :type domain_name: str + :param name: Name of identifier. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_ownership_identifier.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_ownership_identifier.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}/domainOwnershipIdentifiers/{name}'} # type: ignore + + def update_ownership_identifier( + self, + resource_group_name, # type: str + domain_name, # type: str + name, # type: str + domain_ownership_identifier, # type: "_models.DomainOwnershipIdentifier" + **kwargs # type: Any + ): + # type: (...) -> "_models.DomainOwnershipIdentifier" + """Creates an ownership identifier for a domain or updates identifier details for an existing identifier. + + Description for Creates an ownership identifier for a domain or updates identifier details for + an existing identifier. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of domain. + :type domain_name: str + :param name: Name of identifier. + :type name: str + :param domain_ownership_identifier: A JSON representation of the domain ownership properties. + :type domain_ownership_identifier: ~azure.mgmt.web.v2021_01_15.models.DomainOwnershipIdentifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DomainOwnershipIdentifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DomainOwnershipIdentifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DomainOwnershipIdentifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_ownership_identifier.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(domain_ownership_identifier, 'DomainOwnershipIdentifier') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DomainOwnershipIdentifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_ownership_identifier.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}/domainOwnershipIdentifiers/{name}'} # type: ignore + + def renew( + self, + resource_group_name, # type: str + domain_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Renew a domain. + + Description for Renew a domain. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param domain_name: Name of the domain. + :type domain_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.renew.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + renew.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}/renew'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_global_model_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_global_model_operations.py new file mode 100644 index 000000000000..8a24b86aea1d --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_global_model_operations.py @@ -0,0 +1,220 @@ +# 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.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, List, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class GlobalOperations(object): + """GlobalOperations 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.web.v2021_01_15.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 get_deleted_web_app( + self, + deleted_site_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.DeletedSite" + """Get deleted app for a subscription. + + Description for Get deleted app for a subscription. + + :param deleted_site_id: The numeric ID of the deleted app, e.g. 12345. + :type deleted_site_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DeletedSite, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DeletedSite + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DeletedSite"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_deleted_web_app.metadata['url'] # type: ignore + path_format_arguments = { + 'deletedSiteId': self._serialize.url("deleted_site_id", deleted_site_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DeletedSite', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_deleted_web_app.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/deletedSites/{deletedSiteId}'} # type: ignore + + def get_deleted_web_app_snapshots( + self, + deleted_site_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.Snapshot"] + """Get all deleted apps for a subscription. + + Description for Get all deleted apps for a subscription. + + :param deleted_site_id: The numeric ID of the deleted app, e.g. 12345. + :type deleted_site_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of Snapshot, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.Snapshot] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.Snapshot"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_deleted_web_app_snapshots.metadata['url'] # type: ignore + path_format_arguments = { + 'deletedSiteId': self._serialize.url("deleted_site_id", deleted_site_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[Snapshot]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_deleted_web_app_snapshots.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/deletedSites/{deletedSiteId}/snapshots'} # type: ignore + + def get_subscription_operation_with_async_response( + self, + location, # type: str + operation_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Gets an operation in a subscription and given region. + + Description for Gets an operation in a subscription and given region. + + :param location: Location name. + :type location: str + :param operation_id: Operation Id. + :type operation_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.get_subscription_operation_with_async_response.metadata['url'] # type: ignore + path_format_arguments = { + 'location': self._serialize.url("location", location, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + get_subscription_operation_with_async_response.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/locations/{location}/operations/{operationId}'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_kube_environments_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_kube_environments_operations.py new file mode 100644 index 000000000000..70add8f2229f --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_kube_environments_operations.py @@ -0,0 +1,574 @@ +# 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 KubeEnvironmentsOperations(object): + """KubeEnvironmentsOperations 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.web.v2021_01_15.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.KubeEnvironmentCollection"] + """Get all Kubernetes Environments for a subscription. + + Description for Get all Kubernetes Environments for a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either KubeEnvironmentCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.KubeEnvironmentCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.KubeEnvironmentCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('KubeEnvironmentCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/kubeEnvironments'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.KubeEnvironmentCollection"] + """Get all the Kubernetes Environments in a resource group. + + Description for Get all the Kubernetes Environments in a resource group. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :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 KubeEnvironmentCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.KubeEnvironmentCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.KubeEnvironmentCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('KubeEnvironmentCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments'} # type: ignore + + def get( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.KubeEnvironment" + """Get the properties of a Kubernetes Environment. + + Description for Get the properties of a Kubernetes Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the Kubernetes Environment. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: KubeEnvironment, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.KubeEnvironment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.KubeEnvironment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('KubeEnvironment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments/{name}'} # type: ignore + + def _create_or_update_initial( + self, + resource_group_name, # type: str + name, # type: str + kube_environment_envelope, # type: "_models.KubeEnvironment" + **kwargs # type: Any + ): + # type: (...) -> "_models.KubeEnvironment" + cls = kwargs.pop('cls', None) # type: ClsType["_models.KubeEnvironment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(kube_environment_envelope, 'KubeEnvironment') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('KubeEnvironment', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('KubeEnvironment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments/{name}'} # type: ignore + + def begin_create_or_update( + self, + resource_group_name, # type: str + name, # type: str + kube_environment_envelope, # type: "_models.KubeEnvironment" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.KubeEnvironment"] + """Creates or updates a Kubernetes Environment. + + Description for Creates or updates a Kubernetes Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the Kubernetes Environment. + :type name: str + :param kube_environment_envelope: Configuration details of the Kubernetes Environment. + :type kube_environment_envelope: ~azure.mgmt.web.v2021_01_15.models.KubeEnvironment + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 KubeEnvironment or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.KubeEnvironment] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.KubeEnvironment"] + 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_or_update_initial( + resource_group_name=resource_group_name, + name=name, + kube_environment_envelope=kube_environment_envelope, + 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('KubeEnvironment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments/{name}'} # type: ignore + + def _delete_initial( + self, + resource_group_name, # type: str + 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-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments/{name}'} # type: ignore + + def begin_delete( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Delete a Kubernetes Environment. + + Description for Delete a Kubernetes Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the Kubernetes Environment. + :type 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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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, + name=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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments/{name}'} # type: ignore + + def update( + self, + resource_group_name, # type: str + name, # type: str + kube_environment_envelope, # type: "_models.KubeEnvironmentPatchResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.KubeEnvironment" + """Creates or updates a Kubernetes Environment. + + Description for Creates or updates a Kubernetes Environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the Kubernetes Environment. + :type name: str + :param kube_environment_envelope: Configuration details of the Kubernetes Environment. + :type kube_environment_envelope: ~azure.mgmt.web.v2021_01_15.models.KubeEnvironmentPatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: KubeEnvironment, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.KubeEnvironment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.KubeEnvironment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(kube_environment_envelope, 'KubeEnvironmentPatchResource') + 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, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('KubeEnvironment', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('KubeEnvironment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/kubeEnvironments/{name}'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_provider_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_provider_operations.py new file mode 100644 index 000000000000..718352acd5db --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_provider_operations.py @@ -0,0 +1,557 @@ +# 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, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class ProviderOperations(object): + """ProviderOperations 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.web.v2021_01_15.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 get_available_stacks( + self, + os_type_selected=None, # type: Optional[Union[str, "_models.Enum10"]] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ApplicationStackCollection"] + """Get available application frameworks and their versions. + + Description for Get available application frameworks and their versions. + + :param os_type_selected: + :type os_type_selected: str or ~azure.mgmt.web.v2021_01_15.models.Enum10 + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ApplicationStackCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ApplicationStackCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApplicationStackCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_available_stacks.metadata['url'] # type: ignore + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if os_type_selected is not None: + query_parameters['osTypeSelected'] = self._serialize.query("os_type_selected", os_type_selected, 'str') + 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('ApplicationStackCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_available_stacks.metadata = {'url': '/providers/Microsoft.Web/availableStacks'} # type: ignore + + def get_function_app_stacks( + self, + stack_os_type=None, # type: Optional[Union[str, "_models.Enum11"]] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.FunctionAppStackCollection"] + """Get available Function app frameworks and their versions. + + Description for Get available Function app frameworks and their versions. + + :param stack_os_type: Stack OS Type. + :type stack_os_type: str or ~azure.mgmt.web.v2021_01_15.models.Enum11 + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either FunctionAppStackCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.FunctionAppStackCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionAppStackCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_function_app_stacks.metadata['url'] # type: ignore + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if stack_os_type is not None: + query_parameters['stackOsType'] = self._serialize.query("stack_os_type", stack_os_type, 'str') + 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('FunctionAppStackCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_function_app_stacks.metadata = {'url': '/providers/Microsoft.Web/functionAppStacks'} # type: ignore + + def get_function_app_stacks_for_location( + self, + location, # type: str + stack_os_type=None, # type: Optional[Union[str, "_models.Enum12"]] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.FunctionAppStackCollection"] + """Get available Function app frameworks and their versions for location. + + Description for Get available Function app frameworks and their versions for location. + + :param location: Function App stack location. + :type location: str + :param stack_os_type: Stack OS Type. + :type stack_os_type: str or ~azure.mgmt.web.v2021_01_15.models.Enum12 + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either FunctionAppStackCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.FunctionAppStackCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionAppStackCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_function_app_stacks_for_location.metadata['url'] # type: ignore + path_format_arguments = { + 'location': self._serialize.url("location", location, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if stack_os_type is not None: + query_parameters['stackOsType'] = self._serialize.query("stack_os_type", stack_os_type, 'str') + 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('FunctionAppStackCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_function_app_stacks_for_location.metadata = {'url': '/providers/Microsoft.Web/locations/{location}/functionAppStacks'} # type: ignore + + def get_web_app_stacks_for_location( + self, + location, # type: str + stack_os_type=None, # type: Optional[Union[str, "_models.Enum13"]] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.WebAppStackCollection"] + """Get available Web app frameworks and their versions for location. + + Description for Get available Web app frameworks and their versions for location. + + :param location: Web App stack location. + :type location: str + :param stack_os_type: Stack OS Type. + :type stack_os_type: str or ~azure.mgmt.web.v2021_01_15.models.Enum13 + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppStackCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppStackCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppStackCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_web_app_stacks_for_location.metadata['url'] # type: ignore + path_format_arguments = { + 'location': self._serialize.url("location", location, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if stack_os_type is not None: + query_parameters['stackOsType'] = self._serialize.query("stack_os_type", stack_os_type, 'str') + 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('WebAppStackCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_web_app_stacks_for_location.metadata = {'url': '/providers/Microsoft.Web/locations/{location}/webAppStacks'} # type: ignore + + def list_operations( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.CsmOperationCollection"] + """Gets all available operations for the Microsoft.Web resource provider. Also exposes resource metric definitions. + + Description for Gets all available operations for the Microsoft.Web resource provider. Also + exposes resource metric definitions. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either CsmOperationCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.CsmOperationCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmOperationCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_operations.metadata['url'] # type: ignore + # 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('CsmOperationCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_operations.metadata = {'url': '/providers/Microsoft.Web/operations'} # type: ignore + + def get_web_app_stacks( + self, + stack_os_type=None, # type: Optional[Union[str, "_models.Enum14"]] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.WebAppStackCollection"] + """Get available Web app frameworks and their versions. + + Description for Get available Web app frameworks and their versions. + + :param stack_os_type: Stack OS Type. + :type stack_os_type: str or ~azure.mgmt.web.v2021_01_15.models.Enum14 + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppStackCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppStackCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppStackCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_web_app_stacks.metadata['url'] # type: ignore + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if stack_os_type is not None: + query_parameters['stackOsType'] = self._serialize.query("stack_os_type", stack_os_type, 'str') + 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('WebAppStackCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_web_app_stacks.metadata = {'url': '/providers/Microsoft.Web/webAppStacks'} # type: ignore + + def get_available_stacks_on_prem( + self, + os_type_selected=None, # type: Optional[Union[str, "_models.Enum15"]] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ApplicationStackCollection"] + """Get available application frameworks and their versions. + + Description for Get available application frameworks and their versions. + + :param os_type_selected: + :type os_type_selected: str or ~azure.mgmt.web.v2021_01_15.models.Enum15 + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ApplicationStackCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ApplicationStackCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApplicationStackCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_available_stacks_on_prem.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if os_type_selected is not None: + query_parameters['osTypeSelected'] = self._serialize.query("os_type_selected", os_type_selected, 'str') + 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('ApplicationStackCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_available_stacks_on_prem.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/availableStacks'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_recommendations_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_recommendations_operations.py new file mode 100644 index 000000000000..4dec5fb7eb23 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_recommendations_operations.py @@ -0,0 +1,1128 @@ +# 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 RecommendationsOperations(object): + """RecommendationsOperations 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.web.v2021_01_15.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, + featured=None, # type: Optional[bool] + filter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.RecommendationCollection"] + """List all recommendations for a subscription. + + Description for List all recommendations for a subscription. + + :param featured: Specify :code:`true` to return only the most critical + recommendations. The default is :code:`false`, which returns all recommendations. + :type featured: bool + :param filter: Filter is specified by using OData syntax. Example: $filter=channel eq 'Api' or + channel eq 'Notification' and startTime eq 2014-01-01T00:00:00Z and endTime eq + 2014-12-31T23:59:59Z and timeGrain eq duration'[PT1H|PT1M|P1D]. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RecommendationCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.RecommendationCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if featured is not None: + query_parameters['featured'] = self._serialize.query("featured", featured, 'bool') + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('RecommendationCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/recommendations'} # type: ignore + + def reset_all_filters( + self, + **kwargs # type: Any + ): + # type: (...) -> None + """Reset all recommendation opt-out settings for a subscription. + + Description for Reset all recommendation opt-out settings for a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.reset_all_filters.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reset_all_filters.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/recommendations/reset'} # type: ignore + + def disable_recommendation_for_subscription( + self, + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Disables the specified rule so it will not apply to a subscription in the future. + + Description for Disables the specified rule so it will not apply to a subscription in the + future. + + :param name: Rule name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.disable_recommendation_for_subscription.metadata['url'] # type: ignore + path_format_arguments = { + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + disable_recommendation_for_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/recommendations/{name}/disable'} # type: ignore + + def list_history_for_hosting_environment( + self, + resource_group_name, # type: str + hosting_environment_name, # type: str + expired_only=None, # type: Optional[bool] + filter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.RecommendationCollection"] + """Get past recommendations for an app, optionally specified by the time range. + + Description for Get past recommendations for an app, optionally specified by the time range. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param hosting_environment_name: Name of the hosting environment. + :type hosting_environment_name: str + :param expired_only: Specify :code:`false` to return all recommendations. The + default is :code:`true`, which returns only expired recommendations. + :type expired_only: bool + :param filter: Filter is specified by using OData syntax. Example: $filter=channel eq 'Api' or + channel eq 'Notification' and startTime eq 2014-01-01T00:00:00Z and endTime eq + 2014-12-31T23:59:59Z and timeGrain eq duration'[PT1H|PT1M|P1D]. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RecommendationCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.RecommendationCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_history_for_hosting_environment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'hostingEnvironmentName': self._serialize.url("hosting_environment_name", hosting_environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if expired_only is not None: + query_parameters['expiredOnly'] = self._serialize.query("expired_only", expired_only, 'bool') + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('RecommendationCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_history_for_hosting_environment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendationHistory'} # type: ignore + + def list_recommended_rules_for_hosting_environment( + self, + resource_group_name, # type: str + hosting_environment_name, # type: str + featured=None, # type: Optional[bool] + filter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.RecommendationCollection"] + """Get all recommendations for a hosting environment. + + Description for Get all recommendations for a hosting environment. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param hosting_environment_name: Name of the app. + :type hosting_environment_name: str + :param featured: Specify :code:`true` to return only the most critical + recommendations. The default is :code:`false`, which returns all recommendations. + :type featured: bool + :param filter: Return only channels specified in the filter. Filter is specified by using OData + syntax. Example: $filter=channel eq 'Api' or channel eq 'Notification'. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RecommendationCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.RecommendationCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_recommended_rules_for_hosting_environment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'hostingEnvironmentName': self._serialize.url("hosting_environment_name", hosting_environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if featured is not None: + query_parameters['featured'] = self._serialize.query("featured", featured, 'bool') + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('RecommendationCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_recommended_rules_for_hosting_environment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendations'} # type: ignore + + def disable_all_for_hosting_environment( + self, + resource_group_name, # type: str + environment_name, # type: str + hosting_environment_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Disable all recommendations for an app. + + Description for Disable all recommendations for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param environment_name: Name of the app. + :type environment_name: str + :param hosting_environment_name: + :type hosting_environment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.disable_all_for_hosting_environment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'hostingEnvironmentName': self._serialize.url("hosting_environment_name", hosting_environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['environmentName'] = self._serialize.query("environment_name", environment_name, 'str') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + disable_all_for_hosting_environment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendations/disable'} # type: ignore + + def reset_all_filters_for_hosting_environment( + self, + resource_group_name, # type: str + environment_name, # type: str + hosting_environment_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Reset all recommendation opt-out settings for an app. + + Description for Reset all recommendation opt-out settings for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param environment_name: Name of the app. + :type environment_name: str + :param hosting_environment_name: + :type hosting_environment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.reset_all_filters_for_hosting_environment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'hostingEnvironmentName': self._serialize.url("hosting_environment_name", hosting_environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['environmentName'] = self._serialize.query("environment_name", environment_name, 'str') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reset_all_filters_for_hosting_environment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendations/reset'} # type: ignore + + def get_rule_details_by_hosting_environment( + self, + resource_group_name, # type: str + hosting_environment_name, # type: str + name, # type: str + update_seen=None, # type: Optional[bool] + recommendation_id=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.RecommendationRule" + """Get a recommendation rule for an app. + + Description for Get a recommendation rule for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param hosting_environment_name: Name of the hosting environment. + :type hosting_environment_name: str + :param name: Name of the recommendation. + :type name: str + :param update_seen: Specify :code:`true` to update the last-seen timestamp of the + recommendation object. + :type update_seen: bool + :param recommendation_id: The GUID of the recommendation object if you query an expired one. + You don't need to specify it to query an active entry. + :type recommendation_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RecommendationRule, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RecommendationRule + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationRule"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_rule_details_by_hosting_environment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'hostingEnvironmentName': self._serialize.url("hosting_environment_name", hosting_environment_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if update_seen is not None: + query_parameters['updateSeen'] = self._serialize.query("update_seen", update_seen, 'bool') + if recommendation_id is not None: + query_parameters['recommendationId'] = self._serialize.query("recommendation_id", recommendation_id, 'str') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RecommendationRule', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_rule_details_by_hosting_environment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendations/{name}'} # type: ignore + + def disable_recommendation_for_hosting_environment( + self, + resource_group_name, # type: str + environment_name, # type: str + name, # type: str + hosting_environment_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Disables the specific rule for a web site permanently. + + Description for Disables the specific rule for a web site permanently. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param environment_name: Site name. + :type environment_name: str + :param name: Rule name. + :type name: str + :param hosting_environment_name: + :type hosting_environment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.disable_recommendation_for_hosting_environment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'hostingEnvironmentName': self._serialize.url("hosting_environment_name", hosting_environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['environmentName'] = self._serialize.query("environment_name", environment_name, 'str') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + disable_recommendation_for_hosting_environment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendations/{name}/disable'} # type: ignore + + def list_history_for_web_app( + self, + resource_group_name, # type: str + site_name, # type: str + expired_only=None, # type: Optional[bool] + filter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.RecommendationCollection"] + """Get past recommendations for an app, optionally specified by the time range. + + Description for Get past recommendations for an app, optionally specified by the time range. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Name of the app. + :type site_name: str + :param expired_only: Specify :code:`false` to return all recommendations. The + default is :code:`true`, which returns only expired recommendations. + :type expired_only: bool + :param filter: Filter is specified by using OData syntax. Example: $filter=channel eq 'Api' or + channel eq 'Notification' and startTime eq 2014-01-01T00:00:00Z and endTime eq + 2014-12-31T23:59:59Z and timeGrain eq duration'[PT1H|PT1M|P1D]. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RecommendationCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.RecommendationCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_history_for_web_app.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if expired_only is not None: + query_parameters['expiredOnly'] = self._serialize.query("expired_only", expired_only, 'bool') + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('RecommendationCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_history_for_web_app.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendationHistory'} # type: ignore + + def list_recommended_rules_for_web_app( + self, + resource_group_name, # type: str + site_name, # type: str + featured=None, # type: Optional[bool] + filter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.RecommendationCollection"] + """Get all recommendations for an app. + + Description for Get all recommendations for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Name of the app. + :type site_name: str + :param featured: Specify :code:`true` to return only the most critical + recommendations. The default is :code:`false`, which returns all recommendations. + :type featured: bool + :param filter: Return only channels specified in the filter. Filter is specified by using OData + syntax. Example: $filter=channel eq 'Api' or channel eq 'Notification'. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RecommendationCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.RecommendationCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_recommended_rules_for_web_app.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if featured is not None: + query_parameters['featured'] = self._serialize.query("featured", featured, 'bool') + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('RecommendationCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_recommended_rules_for_web_app.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations'} # type: ignore + + def disable_all_for_web_app( + self, + resource_group_name, # type: str + site_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Disable all recommendations for an app. + + Description for Disable all recommendations for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Name of the app. + :type site_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.disable_all_for_web_app.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + disable_all_for_web_app.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations/disable'} # type: ignore + + def reset_all_filters_for_web_app( + self, + resource_group_name, # type: str + site_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Reset all recommendation opt-out settings for an app. + + Description for Reset all recommendation opt-out settings for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Name of the app. + :type site_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.reset_all_filters_for_web_app.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reset_all_filters_for_web_app.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations/reset'} # type: ignore + + def get_rule_details_by_web_app( + self, + resource_group_name, # type: str + site_name, # type: str + name, # type: str + update_seen=None, # type: Optional[bool] + recommendation_id=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.RecommendationRule" + """Get a recommendation rule for an app. + + Description for Get a recommendation rule for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Name of the app. + :type site_name: str + :param name: Name of the recommendation. + :type name: str + :param update_seen: Specify :code:`true` to update the last-seen timestamp of the + recommendation object. + :type update_seen: bool + :param recommendation_id: The GUID of the recommendation object if you query an expired one. + You don't need to specify it to query an active entry. + :type recommendation_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RecommendationRule, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RecommendationRule + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RecommendationRule"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_rule_details_by_web_app.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if update_seen is not None: + query_parameters['updateSeen'] = self._serialize.query("update_seen", update_seen, 'bool') + if recommendation_id is not None: + query_parameters['recommendationId'] = self._serialize.query("recommendation_id", recommendation_id, 'str') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RecommendationRule', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_rule_details_by_web_app.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations/{name}'} # type: ignore + + def disable_recommendation_for_site( + self, + resource_group_name, # type: str + site_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Disables the specific rule for a web site permanently. + + Description for Disables the specific rule for a web site permanently. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param site_name: Site name. + :type site_name: str + :param name: Rule name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.disable_recommendation_for_site.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'siteName': self._serialize.url("site_name", site_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + disable_recommendation_for_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations/{name}/disable'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_resource_health_metadata_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_resource_health_metadata_operations.py new file mode 100644 index 000000000000..328caedc2872 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_resource_health_metadata_operations.py @@ -0,0 +1,481 @@ +# 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 ResourceHealthMetadataOperations(object): + """ResourceHealthMetadataOperations 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.web.v2021_01_15.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, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ResourceHealthMetadataCollection"] + """List all ResourceHealthMetadata for all sites in the subscription. + + Description for List all ResourceHealthMetadata for all sites in the subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ResourceHealthMetadataCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceHealthMetadataCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceHealthMetadataCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('ResourceHealthMetadataCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/resourceHealthMetadata'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ResourceHealthMetadataCollection"] + """List all ResourceHealthMetadata for all sites in the resource group in the subscription. + + Description for List all ResourceHealthMetadata for all sites in the resource group in the + subscription. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :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 ResourceHealthMetadataCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceHealthMetadataCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceHealthMetadataCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ResourceHealthMetadataCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/resourceHealthMetadata'} # type: ignore + + def list_by_site( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ResourceHealthMetadataCollection"] + """Gets the category of ResourceHealthMetadata to use for the given site as a collection. + + Description for Gets the category of ResourceHealthMetadata to use for the given site as a + collection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ResourceHealthMetadataCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceHealthMetadataCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceHealthMetadataCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ResourceHealthMetadataCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/resourceHealthMetadata'} # type: ignore + + def get_by_site( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ResourceHealthMetadata" + """Gets the category of ResourceHealthMetadata to use for the given site. + + Description for Gets the category of ResourceHealthMetadata to use for the given site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ResourceHealthMetadata, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ResourceHealthMetadata + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceHealthMetadata"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_by_site.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ResourceHealthMetadata', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_by_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/resourceHealthMetadata/default'} # type: ignore + + def list_by_site_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ResourceHealthMetadataCollection"] + """Gets the category of ResourceHealthMetadata to use for the given site as a collection. + + Description for Gets the category of ResourceHealthMetadata to use for the given site as a + collection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ResourceHealthMetadataCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ResourceHealthMetadataCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceHealthMetadataCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ResourceHealthMetadataCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_site_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/resourceHealthMetadata'} # type: ignore + + def get_by_site_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ResourceHealthMetadata" + """Gets the category of ResourceHealthMetadata to use for the given site. + + Description for Gets the category of ResourceHealthMetadata to use for the given site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ResourceHealthMetadata, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ResourceHealthMetadata + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceHealthMetadata"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_by_site_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ResourceHealthMetadata', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_by_site_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/resourceHealthMetadata/default'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_static_sites_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_static_sites_operations.py new file mode 100644 index 000000000000..bcf57ff48b2a --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_static_sites_operations.py @@ -0,0 +1,4221 @@ +# 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 StaticSitesOperations(object): + """StaticSitesOperations 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.web.v2021_01_15.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 preview_workflow( + self, + location, # type: str + static_sites_workflow_preview_request, # type: "_models.StaticSitesWorkflowPreviewRequest" + **kwargs # type: Any + ): + # type: (...) -> "_models.StaticSitesWorkflowPreview" + """Generates a preview workflow file for the static site. + + Description for Generates a preview workflow file for the static site. + + :param location: Location where you plan to create the static site. + :type location: str + :param static_sites_workflow_preview_request: A JSON representation of the + StaticSitesWorkflowPreviewRequest properties. See example. + :type static_sites_workflow_preview_request: ~azure.mgmt.web.v2021_01_15.models.StaticSitesWorkflowPreviewRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSitesWorkflowPreview, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSitesWorkflowPreview + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSitesWorkflowPreview"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.preview_workflow.metadata['url'] # type: ignore + path_format_arguments = { + 'location': self._serialize.url("location", location, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_sites_workflow_preview_request, 'StaticSitesWorkflowPreviewRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StaticSitesWorkflowPreview', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + preview_workflow.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/locations/{location}/previewStaticSiteWorkflowFile'} # type: ignore + + def list( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.StaticSiteCollection"] + """Get all Static Sites for a subscription. + + Description for Get all Static Sites for a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StaticSiteCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('StaticSiteCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/staticSites'} # type: ignore + + def get_static_sites_by_resource_group( + self, + resource_group_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.StaticSiteCollection"] + """Gets all static sites in the specified resource group. + + Description for Gets all static sites in the specified resource group. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :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 StaticSiteCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_static_sites_by_resource_group.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('StaticSiteCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_static_sites_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites'} # type: ignore + + def get_static_site( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.StaticSiteARMResource" + """Gets the details of a static site. + + Description for Gets the details of a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSiteARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSiteARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_static_site.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StaticSiteARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}'} # type: ignore + + def _create_or_update_static_site_initial( + self, + resource_group_name, # type: str + name, # type: str + static_site_envelope, # type: "_models.StaticSiteARMResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.StaticSiteARMResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_static_site_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_site_envelope, 'StaticSiteARMResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('StaticSiteARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('StaticSiteARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_static_site_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}'} # type: ignore + + def begin_create_or_update_static_site( + self, + resource_group_name, # type: str + name, # type: str + static_site_envelope, # type: "_models.StaticSiteARMResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.StaticSiteARMResource"] + """Creates a new static site in an existing resource group, or updates an existing static site. + + Description for Creates a new static site in an existing resource group, or updates an existing + static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site to create or update. + :type name: str + :param static_site_envelope: A JSON representation of the staticsite properties. See example. + :type static_site_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteARMResource + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 StaticSiteARMResource or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.StaticSiteARMResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteARMResource"] + 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_or_update_static_site_initial( + resource_group_name=resource_group_name, + name=name, + static_site_envelope=static_site_envelope, + 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('StaticSiteARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}'} # type: ignore + + def _delete_static_site_initial( + self, + resource_group_name, # type: str + 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-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_static_site_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_static_site_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}'} # type: ignore + + def begin_delete_static_site( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Deletes a static site. + + Description for Deletes a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site to delete. + :type 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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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_static_site_initial( + resource_group_name=resource_group_name, + name=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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}'} # type: ignore + + def update_static_site( + self, + resource_group_name, # type: str + name, # type: str + static_site_envelope, # type: "_models.StaticSitePatchResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.StaticSiteARMResource" + """Creates a new static site in an existing resource group, or updates an existing static site. + + Description for Creates a new static site in an existing resource group, or updates an existing + static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site to create or update. + :type name: str + :param static_site_envelope: A JSON representation of the staticsite properties. See example. + :type static_site_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSitePatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSiteARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSiteARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_static_site.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_site_envelope, 'StaticSitePatchResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('StaticSiteARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('StaticSiteARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}'} # type: ignore + + def list_static_site_users( + self, + resource_group_name, # type: str + name, # type: str + authprovider, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.StaticSiteUserCollection"] + """Gets the list of users of a static site. + + Description for Gets the list of users of a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param authprovider: The auth provider for the users. + :type authprovider: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StaticSiteUserCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_static_site_users.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'authprovider': self._serialize.url("authprovider", authprovider, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(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('StaticSiteUserCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_static_site_users.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/authproviders/{authprovider}/listUsers'} # type: ignore + + def delete_static_site_user( + self, + resource_group_name, # type: str + name, # type: str + authprovider, # type: str + userid, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes the user entry from the static site. + + Description for Deletes the user entry from the static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the staticsite. + :type name: str + :param authprovider: The auth provider for this user. + :type authprovider: str + :param userid: The user id of the user. + :type userid: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_static_site_user.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'authprovider': self._serialize.url("authprovider", authprovider, 'str'), + 'userid': self._serialize.url("userid", userid, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_static_site_user.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/authproviders/{authprovider}/users/{userid}'} # type: ignore + + def update_static_site_user( + self, + resource_group_name, # type: str + name, # type: str + authprovider, # type: str + userid, # type: str + static_site_user_envelope, # type: "_models.StaticSiteUserARMResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.StaticSiteUserARMResource" + """Updates a user entry with the listed roles. + + Description for Updates a user entry with the listed roles. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param authprovider: The auth provider for this user. + :type authprovider: str + :param userid: The user id of the user. + :type userid: str + :param static_site_user_envelope: A JSON representation of the StaticSiteUser properties. See + example. + :type static_site_user_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteUserARMResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSiteUserARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSiteUserARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_static_site_user.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'authprovider': self._serialize.url("authprovider", authprovider, 'str'), + 'userid': self._serialize.url("userid", userid, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_site_user_envelope, 'StaticSiteUserARMResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StaticSiteUserARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_static_site_user.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/authproviders/{authprovider}/users/{userid}'} # type: ignore + + def get_static_site_builds( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.StaticSiteBuildCollection"] + """Gets all static site builds for a particular static site. + + Description for Gets all static site builds for a particular static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StaticSiteBuildCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteBuildCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteBuildCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_static_site_builds.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('StaticSiteBuildCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_static_site_builds.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds'} # type: ignore + + def get_static_site_build( + self, + resource_group_name, # type: str + name, # type: str + environment_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.StaticSiteBuildARMResource" + """Gets the details of a static site build. + + Description for Gets the details of a static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSiteBuildARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSiteBuildARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteBuildARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_static_site_build.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StaticSiteBuildARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_static_site_build.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}'} # type: ignore + + def _delete_static_site_build_initial( + self, + resource_group_name, # type: str + name, # type: str + environment_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-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_static_site_build_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_static_site_build_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}'} # type: ignore + + def begin_delete_static_site_build( + self, + resource_group_name, # type: str + name, # type: str + environment_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Deletes a static site build. + + Description for Deletes a static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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_static_site_build_initial( + resource_group_name=resource_group_name, + name=name, + environment_name=environment_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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete_static_site_build.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}'} # type: ignore + + def create_or_update_static_site_build_app_settings( + self, + resource_group_name, # type: str + name, # type: str + environment_name, # type: str + app_settings, # type: "_models.StringDictionary" + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Creates or updates the app settings of a static site build. + + Description for Creates or updates the app settings of a static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :param app_settings: The dictionary containing the static site app settings to update. + :type app_settings: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_static_site_build_app_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_settings, 'StringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_static_site_build_app_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/config/appsettings'} # type: ignore + + def create_or_update_static_site_build_function_app_settings( + self, + resource_group_name, # type: str + name, # type: str + environment_name, # type: str + app_settings, # type: "_models.StringDictionary" + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Creates or updates the function app settings of a static site build. + + Description for Creates or updates the function app settings of a static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :param app_settings: The dictionary containing the static site function app settings to update. + :type app_settings: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_static_site_build_function_app_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_settings, 'StringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_static_site_build_function_app_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/config/functionappsettings'} # type: ignore + + def list_static_site_build_functions( + self, + resource_group_name, # type: str + name, # type: str + environment_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.StaticSiteFunctionOverviewCollection"] + """Gets the functions of a particular static site build. + + Description for Gets the functions of a particular static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StaticSiteFunctionOverviewCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteFunctionOverviewCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteFunctionOverviewCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_static_site_build_functions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('StaticSiteFunctionOverviewCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_static_site_build_functions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/functions'} # type: ignore + + def list_static_site_build_app_settings( + self, + resource_group_name, # type: str + name, # type: str + environment_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Gets the application settings of a static site build. + + Description for Gets the application settings of a static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_static_site_build_app_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_static_site_build_app_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/listAppSettings'} # type: ignore + + def list_static_site_build_function_app_settings( + self, + resource_group_name, # type: str + name, # type: str + environment_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Gets the application settings of a static site build. + + Description for Gets the application settings of a static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_static_site_build_function_app_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_static_site_build_function_app_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/listFunctionAppSettings'} # type: ignore + + def get_user_provided_function_apps_for_static_site_build( + self, + resource_group_name, # type: str + name, # type: str + environment_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.StaticSiteUserProvidedFunctionAppsCollection"] + """Gets the details of the user provided function apps registered with a static site build. + + Description for Gets the details of the user provided function apps registered with a static + site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StaticSiteUserProvidedFunctionAppsCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppsCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserProvidedFunctionAppsCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_user_provided_function_apps_for_static_site_build.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('StaticSiteUserProvidedFunctionAppsCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_user_provided_function_apps_for_static_site_build.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/userProvidedFunctionApps'} # type: ignore + + def get_user_provided_function_app_for_static_site_build( + self, + resource_group_name, # type: str + name, # type: str + environment_name, # type: str + function_app_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.StaticSiteUserProvidedFunctionAppARMResource" + """Gets the details of the user provided function app registered with a static site build. + + Description for Gets the details of the user provided function app registered with a static + site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :param function_app_name: Name of the function app registered with the static site build. + :type function_app_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSiteUserProvidedFunctionAppARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserProvidedFunctionAppARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_user_provided_function_app_for_static_site_build.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'functionAppName': self._serialize.url("function_app_name", function_app_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StaticSiteUserProvidedFunctionAppARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_user_provided_function_app_for_static_site_build.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/userProvidedFunctionApps/{functionAppName}'} # type: ignore + + def _register_user_provided_function_app_with_static_site_build_initial( + self, + resource_group_name, # type: str + name, # type: str + environment_name, # type: str + function_app_name, # type: str + static_site_user_provided_function_envelope, # type: "_models.StaticSiteUserProvidedFunctionAppARMResource" + is_forced=None, # type: Optional[bool] + **kwargs # type: Any + ): + # type: (...) -> "_models.StaticSiteUserProvidedFunctionAppARMResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserProvidedFunctionAppARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._register_user_provided_function_app_with_static_site_build_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'functionAppName': self._serialize.url("function_app_name", function_app_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if is_forced is not None: + query_parameters['isForced'] = self._serialize.query("is_forced", is_forced, 'bool') + 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(static_site_user_provided_function_envelope, 'StaticSiteUserProvidedFunctionAppARMResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('StaticSiteUserProvidedFunctionAppARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('StaticSiteUserProvidedFunctionAppARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _register_user_provided_function_app_with_static_site_build_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/userProvidedFunctionApps/{functionAppName}'} # type: ignore + + def begin_register_user_provided_function_app_with_static_site_build( + self, + resource_group_name, # type: str + name, # type: str + environment_name, # type: str + function_app_name, # type: str + static_site_user_provided_function_envelope, # type: "_models.StaticSiteUserProvidedFunctionAppARMResource" + is_forced=None, # type: Optional[bool] + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.StaticSiteUserProvidedFunctionAppARMResource"] + """Register a user provided function app with a static site build. + + Description for Register a user provided function app with a static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :param function_app_name: Name of the function app to register with the static site build. + :type function_app_name: str + :param static_site_user_provided_function_envelope: A JSON representation of the user provided + function app properties. See example. + :type static_site_user_provided_function_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppARMResource + :param is_forced: Specify :code:`true` to force the update of the auth + configuration on the function app even if an AzureStaticWebApps provider is already configured + on the function app. The default is :code:`false`. + :type is_forced: bool + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 StaticSiteUserProvidedFunctionAppARMResource or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppARMResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserProvidedFunctionAppARMResource"] + 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._register_user_provided_function_app_with_static_site_build_initial( + resource_group_name=resource_group_name, + name=name, + environment_name=environment_name, + function_app_name=function_app_name, + static_site_user_provided_function_envelope=static_site_user_provided_function_envelope, + is_forced=is_forced, + 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('StaticSiteUserProvidedFunctionAppARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'functionAppName': self._serialize.url("function_app_name", function_app_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_register_user_provided_function_app_with_static_site_build.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/userProvidedFunctionApps/{functionAppName}'} # type: ignore + + def detach_user_provided_function_app_from_static_site_build( + self, + resource_group_name, # type: str + name, # type: str + environment_name, # type: str + function_app_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Detach the user provided function app from the static site build. + + Description for Detach the user provided function app from the static site build. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: The stage site identifier. + :type environment_name: str + :param function_app_name: Name of the function app registered with the static site build. + :type function_app_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.detach_user_provided_function_app_from_static_site_build.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'functionAppName': self._serialize.url("function_app_name", function_app_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + detach_user_provided_function_app_from_static_site_build.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/userProvidedFunctionApps/{functionAppName}'} # type: ignore + + def _create_zip_deployment_for_static_site_build_initial( + self, + resource_group_name, # type: str + name, # type: str + environment_name, # type: str + static_site_zip_deployment_envelope, # type: "_models.StaticSiteZipDeploymentARMResource" + **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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_zip_deployment_for_static_site_build_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_site_zip_deployment_envelope, 'StaticSiteZipDeploymentARMResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _create_zip_deployment_for_static_site_build_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/zipdeploy'} # type: ignore + + def begin_create_zip_deployment_for_static_site_build( + self, + resource_group_name, # type: str + name, # type: str + environment_name, # type: str + static_site_zip_deployment_envelope, # type: "_models.StaticSiteZipDeploymentARMResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Deploys zipped content to a specific environment of a static site. + + Description for Deploys zipped content to a specific environment of a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param environment_name: Name of the environment. + :type environment_name: str + :param static_site_zip_deployment_envelope: A JSON representation of the + StaticSiteZipDeployment properties. See example. + :type static_site_zip_deployment_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteZipDeploymentARMResource + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._create_zip_deployment_for_static_site_build_initial( + resource_group_name=resource_group_name, + name=name, + environment_name=environment_name, + static_site_zip_deployment_envelope=static_site_zip_deployment_envelope, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'environmentName': self._serialize.url("environment_name", environment_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_zip_deployment_for_static_site_build.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/builds/{environmentName}/zipdeploy'} # type: ignore + + def create_or_update_static_site_app_settings( + self, + resource_group_name, # type: str + name, # type: str + app_settings, # type: "_models.StringDictionary" + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Creates or updates the app settings of a static site. + + Description for Creates or updates the app settings of a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param app_settings: The dictionary containing the static site app settings to update. + :type app_settings: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_static_site_app_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_settings, 'StringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_static_site_app_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/config/appsettings'} # type: ignore + + def create_or_update_static_site_function_app_settings( + self, + resource_group_name, # type: str + name, # type: str + app_settings, # type: "_models.StringDictionary" + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Creates or updates the function app settings of a static site. + + Description for Creates or updates the function app settings of a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param app_settings: The dictionary containing the static site function app settings to update. + :type app_settings: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_static_site_function_app_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_settings, 'StringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_static_site_function_app_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/config/functionappsettings'} # type: ignore + + def create_user_roles_invitation_link( + self, + resource_group_name, # type: str + name, # type: str + static_site_user_roles_invitation_envelope, # type: "_models.StaticSiteUserInvitationRequestResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.StaticSiteUserInvitationResponseResource" + """Creates an invitation link for a user with the role. + + Description for Creates an invitation link for a user with the role. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param static_site_user_roles_invitation_envelope: + :type static_site_user_roles_invitation_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteUserInvitationRequestResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSiteUserInvitationResponseResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSiteUserInvitationResponseResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserInvitationResponseResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_user_roles_invitation_link.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_site_user_roles_invitation_envelope, 'StaticSiteUserInvitationRequestResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StaticSiteUserInvitationResponseResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_user_roles_invitation_link.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/createUserInvitation'} # type: ignore + + def list_static_site_custom_domains( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.StaticSiteCustomDomainOverviewCollection"] + """Gets all static site custom domains for a particular static site. + + Description for Gets all static site custom domains for a particular static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site resource to search in. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StaticSiteCustomDomainOverviewCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteCustomDomainOverviewCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteCustomDomainOverviewCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_static_site_custom_domains.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('StaticSiteCustomDomainOverviewCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_static_site_custom_domains.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/customDomains'} # type: ignore + + def get_static_site_custom_domain( + self, + resource_group_name, # type: str + name, # type: str + domain_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.StaticSiteCustomDomainOverviewARMResource" + """Gets an existing custom domain for a particular static site. + + Description for Gets an existing custom domain for a particular static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site resource to search in. + :type name: str + :param domain_name: The custom domain name. + :type domain_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSiteCustomDomainOverviewARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSiteCustomDomainOverviewARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteCustomDomainOverviewARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_static_site_custom_domain.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StaticSiteCustomDomainOverviewARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_static_site_custom_domain.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/customDomains/{domainName}'} # type: ignore + + def _create_or_update_static_site_custom_domain_initial( + self, + resource_group_name, # type: str + name, # type: str + domain_name, # type: str + static_site_custom_domain_request_properties_envelope, # type: "_models.StaticSiteCustomDomainRequestPropertiesARMResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.StaticSiteCustomDomainOverviewARMResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteCustomDomainOverviewARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_static_site_custom_domain_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_site_custom_domain_request_properties_envelope, 'StaticSiteCustomDomainRequestPropertiesARMResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('StaticSiteCustomDomainOverviewARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('StaticSiteCustomDomainOverviewARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_static_site_custom_domain_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/customDomains/{domainName}'} # type: ignore + + def begin_create_or_update_static_site_custom_domain( + self, + resource_group_name, # type: str + name, # type: str + domain_name, # type: str + static_site_custom_domain_request_properties_envelope, # type: "_models.StaticSiteCustomDomainRequestPropertiesARMResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.StaticSiteCustomDomainOverviewARMResource"] + """Creates a new static site custom domain in an existing resource group and static site. + + Description for Creates a new static site custom domain in an existing resource group and + static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param domain_name: The custom domain to create. + :type domain_name: str + :param static_site_custom_domain_request_properties_envelope: A JSON representation of the + static site custom domain request properties. See example. + :type static_site_custom_domain_request_properties_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteCustomDomainRequestPropertiesARMResource + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 StaticSiteCustomDomainOverviewARMResource or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.StaticSiteCustomDomainOverviewARMResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteCustomDomainOverviewARMResource"] + 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_or_update_static_site_custom_domain_initial( + resource_group_name=resource_group_name, + name=name, + domain_name=domain_name, + static_site_custom_domain_request_properties_envelope=static_site_custom_domain_request_properties_envelope, + 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('StaticSiteCustomDomainOverviewARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update_static_site_custom_domain.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/customDomains/{domainName}'} # type: ignore + + def _delete_static_site_custom_domain_initial( + self, + resource_group_name, # type: str + name, # type: str + domain_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-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_static_site_custom_domain_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_static_site_custom_domain_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/customDomains/{domainName}'} # type: ignore + + def begin_delete_static_site_custom_domain( + self, + resource_group_name, # type: str + name, # type: str + domain_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Deletes a custom domain. + + Description for Deletes a custom domain. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param domain_name: The custom domain to delete. + :type domain_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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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_static_site_custom_domain_initial( + resource_group_name=resource_group_name, + name=name, + domain_name=domain_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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete_static_site_custom_domain.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/customDomains/{domainName}'} # type: ignore + + def _validate_custom_domain_can_be_added_to_static_site_initial( + self, + resource_group_name, # type: str + name, # type: str + domain_name, # type: str + static_site_custom_domain_request_properties_envelope, # type: "_models.StaticSiteCustomDomainRequestPropertiesARMResource" + **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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._validate_custom_domain_can_be_added_to_static_site_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_site_custom_domain_request_properties_envelope, 'StaticSiteCustomDomainRequestPropertiesARMResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _validate_custom_domain_can_be_added_to_static_site_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/customDomains/{domainName}/validate'} # type: ignore + + def begin_validate_custom_domain_can_be_added_to_static_site( + self, + resource_group_name, # type: str + name, # type: str + domain_name, # type: str + static_site_custom_domain_request_properties_envelope, # type: "_models.StaticSiteCustomDomainRequestPropertiesARMResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Validates a particular custom domain can be added to a static site. + + Description for Validates a particular custom domain can be added to a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param domain_name: The custom domain to validate. + :type domain_name: str + :param static_site_custom_domain_request_properties_envelope: A JSON representation of the + static site custom domain request properties. See example. + :type static_site_custom_domain_request_properties_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteCustomDomainRequestPropertiesARMResource + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._validate_custom_domain_can_be_added_to_static_site_initial( + resource_group_name=resource_group_name, + name=name, + domain_name=domain_name, + static_site_custom_domain_request_properties_envelope=static_site_custom_domain_request_properties_envelope, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainName': self._serialize.url("domain_name", domain_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_validate_custom_domain_can_be_added_to_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/customDomains/{domainName}/validate'} # type: ignore + + def _detach_static_site_initial( + self, + resource_group_name, # type: str + 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-01-15" + accept = "application/json" + + # Construct URL + url = self._detach_static_site_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _detach_static_site_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/detach'} # type: ignore + + def begin_detach_static_site( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Detaches a static site. + + Description for Detaches a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site to detach. + :type 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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._detach_static_site_initial( + resource_group_name=resource_group_name, + name=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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_detach_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/detach'} # type: ignore + + def list_static_site_functions( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.StaticSiteFunctionOverviewCollection"] + """Gets the functions of a static site. + + Description for Gets the functions of a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StaticSiteFunctionOverviewCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteFunctionOverviewCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteFunctionOverviewCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_static_site_functions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('StaticSiteFunctionOverviewCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_static_site_functions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/functions'} # type: ignore + + def list_static_site_app_settings( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Gets the application settings of a static site. + + Description for Gets the application settings of a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_static_site_app_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_static_site_app_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/listAppSettings'} # type: ignore + + def list_static_site_configured_roles( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.StringList" + """Lists the roles configured for the static site. + + Description for Lists the roles configured for the static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringList, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringList + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringList"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_static_site_configured_roles.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringList', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_static_site_configured_roles.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/listConfiguredRoles'} # type: ignore + + def list_static_site_function_app_settings( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Gets the application settings of a static site. + + Description for Gets the application settings of a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_static_site_function_app_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_static_site_function_app_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/listFunctionAppSettings'} # type: ignore + + def list_static_site_secrets( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Lists the secrets for an existing static site. + + Description for Lists the secrets for an existing static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_static_site_secrets.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_static_site_secrets.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/listSecrets'} # type: ignore + + def get_private_endpoint_connection_list( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.PrivateEndpointConnectionCollection"] + """Gets the list of private endpoint connections associated with a static site. + + Description for Gets the list of private endpoint connections associated with a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PrivateEndpointConnectionCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.PrivateEndpointConnectionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_private_endpoint_connection_list.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PrivateEndpointConnectionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_private_endpoint_connection_list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/privateEndpointConnections'} # type: ignore + + def get_private_endpoint_connection( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.RemotePrivateEndpointConnectionARMResource" + """Gets a private endpoint connection. + + Description for Gets a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param private_endpoint_connection_name: Name of the private endpoint connection. + :type private_endpoint_connection_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RemotePrivateEndpointConnectionARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_endpoint_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def _approve_or_reject_private_endpoint_connection_initial( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + private_endpoint_wrapper, # type: "_models.PrivateLinkConnectionApprovalRequestResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.RemotePrivateEndpointConnectionARMResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._approve_or_reject_private_endpoint_connection_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(private_endpoint_wrapper, 'PrivateLinkConnectionApprovalRequestResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _approve_or_reject_private_endpoint_connection_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def begin_approve_or_reject_private_endpoint_connection( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + private_endpoint_wrapper, # type: "_models.PrivateLinkConnectionApprovalRequestResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.RemotePrivateEndpointConnectionARMResource"] + """Approves or rejects a private endpoint connection. + + Description for Approves or rejects a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param private_endpoint_connection_name: Name of the private endpoint connection. + :type private_endpoint_connection_name: str + :param private_endpoint_wrapper: Request body. + :type private_endpoint_wrapper: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkConnectionApprovalRequestResource + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 RemotePrivateEndpointConnectionARMResource or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + 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._approve_or_reject_private_endpoint_connection_initial( + resource_group_name=resource_group_name, + name=name, + private_endpoint_connection_name=private_endpoint_connection_name, + private_endpoint_wrapper=private_endpoint_wrapper, + 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('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_approve_or_reject_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def _delete_private_endpoint_connection_initial( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Any + cls = kwargs.pop('cls', None) # type: ClsType[Any] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_private_endpoint_connection_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('object', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('object', pipeline_response) + + if response.status_code == 204: + deserialized = self._deserialize('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _delete_private_endpoint_connection_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def begin_delete_private_endpoint_connection( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[Any] + """Deletes a private endpoint connection. + + Description for Deletes a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param private_endpoint_connection_name: Name of the private endpoint connection. + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 any or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[any] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[Any] + 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_private_endpoint_connection_initial( + resource_group_name=resource_group_name, + name=name, + private_endpoint_connection_name=private_endpoint_connection_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('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def get_private_link_resources( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PrivateLinkResourcesWrapper" + """Gets the private link resources. + + Description for Gets the private link resources. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateLinkResourcesWrapper, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkResourcesWrapper + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourcesWrapper"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_link_resources.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateLinkResourcesWrapper', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_link_resources.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/privateLinkResources'} # type: ignore + + def reset_static_site_api_key( + self, + resource_group_name, # type: str + name, # type: str + reset_properties_envelope, # type: "_models.StaticSiteResetPropertiesARMResource" + **kwargs # type: Any + ): + # type: (...) -> None + """Resets the api key for an existing static site. + + Description for Resets the api key for an existing static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param reset_properties_envelope: + :type reset_properties_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteResetPropertiesARMResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.reset_static_site_api_key.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(reset_properties_envelope, 'StaticSiteResetPropertiesARMResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reset_static_site_api_key.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/resetapikey'} # type: ignore + + def get_user_provided_function_apps_for_static_site( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.StaticSiteUserProvidedFunctionAppsCollection"] + """Gets the details of the user provided function apps registered with a static site. + + Description for Gets the details of the user provided function apps registered with a static + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either StaticSiteUserProvidedFunctionAppsCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppsCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserProvidedFunctionAppsCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_user_provided_function_apps_for_static_site.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('StaticSiteUserProvidedFunctionAppsCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_user_provided_function_apps_for_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/userProvidedFunctionApps'} # type: ignore + + def get_user_provided_function_app_for_static_site( + self, + resource_group_name, # type: str + name, # type: str + function_app_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.StaticSiteUserProvidedFunctionAppARMResource" + """Gets the details of the user provided function app registered with a static site. + + Description for Gets the details of the user provided function app registered with a static + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param function_app_name: Name of the function app registered with the static site. + :type function_app_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StaticSiteUserProvidedFunctionAppARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserProvidedFunctionAppARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_user_provided_function_app_for_static_site.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionAppName': self._serialize.url("function_app_name", function_app_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StaticSiteUserProvidedFunctionAppARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_user_provided_function_app_for_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/userProvidedFunctionApps/{functionAppName}'} # type: ignore + + def _register_user_provided_function_app_with_static_site_initial( + self, + resource_group_name, # type: str + name, # type: str + function_app_name, # type: str + static_site_user_provided_function_envelope, # type: "_models.StaticSiteUserProvidedFunctionAppARMResource" + is_forced=None, # type: Optional[bool] + **kwargs # type: Any + ): + # type: (...) -> "_models.StaticSiteUserProvidedFunctionAppARMResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserProvidedFunctionAppARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._register_user_provided_function_app_with_static_site_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionAppName': self._serialize.url("function_app_name", function_app_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if is_forced is not None: + query_parameters['isForced'] = self._serialize.query("is_forced", is_forced, 'bool') + 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(static_site_user_provided_function_envelope, 'StaticSiteUserProvidedFunctionAppARMResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('StaticSiteUserProvidedFunctionAppARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('StaticSiteUserProvidedFunctionAppARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _register_user_provided_function_app_with_static_site_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/userProvidedFunctionApps/{functionAppName}'} # type: ignore + + def begin_register_user_provided_function_app_with_static_site( + self, + resource_group_name, # type: str + name, # type: str + function_app_name, # type: str + static_site_user_provided_function_envelope, # type: "_models.StaticSiteUserProvidedFunctionAppARMResource" + is_forced=None, # type: Optional[bool] + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.StaticSiteUserProvidedFunctionAppARMResource"] + """Register a user provided function app with a static site. + + Description for Register a user provided function app with a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param function_app_name: Name of the function app to register with the static site. + :type function_app_name: str + :param static_site_user_provided_function_envelope: A JSON representation of the user provided + function app properties. See example. + :type static_site_user_provided_function_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppARMResource + :param is_forced: Specify :code:`true` to force the update of the auth + configuration on the function app even if an AzureStaticWebApps provider is already configured + on the function app. The default is :code:`false`. + :type is_forced: bool + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 StaticSiteUserProvidedFunctionAppARMResource or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.StaticSiteUserProvidedFunctionAppARMResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.StaticSiteUserProvidedFunctionAppARMResource"] + 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._register_user_provided_function_app_with_static_site_initial( + resource_group_name=resource_group_name, + name=name, + function_app_name=function_app_name, + static_site_user_provided_function_envelope=static_site_user_provided_function_envelope, + is_forced=is_forced, + 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('StaticSiteUserProvidedFunctionAppARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionAppName': self._serialize.url("function_app_name", function_app_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_register_user_provided_function_app_with_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/userProvidedFunctionApps/{functionAppName}'} # type: ignore + + def detach_user_provided_function_app_from_static_site( + self, + resource_group_name, # type: str + name, # type: str + function_app_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Detach the user provided function app from the static site. + + Description for Detach the user provided function app from the static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param function_app_name: Name of the function app registered with the static site. + :type function_app_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.detach_user_provided_function_app_from_static_site.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionAppName': self._serialize.url("function_app_name", function_app_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + detach_user_provided_function_app_from_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/userProvidedFunctionApps/{functionAppName}'} # type: ignore + + def _create_zip_deployment_for_static_site_initial( + self, + resource_group_name, # type: str + name, # type: str + static_site_zip_deployment_envelope, # type: "_models.StaticSiteZipDeploymentARMResource" + **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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_zip_deployment_for_static_site_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(static_site_zip_deployment_envelope, 'StaticSiteZipDeploymentARMResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _create_zip_deployment_for_static_site_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/zipdeploy'} # type: ignore + + def begin_create_zip_deployment_for_static_site( + self, + resource_group_name, # type: str + name, # type: str + static_site_zip_deployment_envelope, # type: "_models.StaticSiteZipDeploymentARMResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Deploys zipped content to a static site. + + Description for Deploys zipped content to a static site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the static site. + :type name: str + :param static_site_zip_deployment_envelope: A JSON representation of the + StaticSiteZipDeployment properties. See example. + :type static_site_zip_deployment_envelope: ~azure.mgmt.web.v2021_01_15.models.StaticSiteZipDeploymentARMResource + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._create_zip_deployment_for_static_site_initial( + resource_group_name=resource_group_name, + name=name, + static_site_zip_deployment_envelope=static_site_zip_deployment_envelope, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_zip_deployment_for_static_site.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/staticSites/{name}/zipdeploy'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_top_level_domains_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_top_level_domains_operations.py new file mode 100644 index 000000000000..c17de87f91e5 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_top_level_domains_operations.py @@ -0,0 +1,259 @@ +# 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 TopLevelDomainsOperations(object): + """TopLevelDomainsOperations 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.web.v2021_01_15.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, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.TopLevelDomainCollection"] + """Get all top-level domains supported for registration. + + Description for Get all top-level domains supported for registration. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either TopLevelDomainCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.TopLevelDomainCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TopLevelDomainCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('TopLevelDomainCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/topLevelDomains'} # type: ignore + + def get( + self, + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.TopLevelDomain" + """Get details of a top-level domain. + + Description for Get details of a top-level domain. + + :param name: Name of the top-level domain. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TopLevelDomain, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.TopLevelDomain + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TopLevelDomain"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('TopLevelDomain', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/topLevelDomains/{name}'} # type: ignore + + def list_agreements( + self, + name, # type: str + agreement_option, # type: "_models.TopLevelDomainAgreementOption" + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.TldLegalAgreementCollection"] + """Gets all legal agreements that user needs to accept before purchasing a domain. + + Description for Gets all legal agreements that user needs to accept before purchasing a domain. + + :param name: Name of the top-level domain. + :type name: str + :param agreement_option: Domain agreement options. + :type agreement_option: ~azure.mgmt.web.v2021_01_15.models.TopLevelDomainAgreementOption + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either TldLegalAgreementCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.TldLegalAgreementCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TldLegalAgreementCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = "application/json" + accept = "application/json" + + def prepare_request(next_link=None): + # 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') + + if not next_link: + # Construct URL + url = self.list_agreements.metadata['url'] # type: ignore + path_format_arguments = { + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(agreement_option, 'TopLevelDomainAgreementOption') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(agreement_option, 'TopLevelDomainAgreementOption') + body_content_kwargs['content'] = body_content + request = self._client.get(url, query_parameters, header_parameters, **body_content_kwargs) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('TldLegalAgreementCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_agreements.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/topLevelDomains/{name}/listAgreements'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_web_apps_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_web_apps_operations.py new file mode 100644 index 000000000000..e9cc5d24ed2d --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_web_apps_operations.py @@ -0,0 +1,30191 @@ +# 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, IO, Iterable, List, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class WebAppsOperations(object): + """WebAppsOperations 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.web.v2021_01_15.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, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.WebAppCollection"] + """Get all apps for a subscription. + + Description for Get all apps for a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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'), + } + 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('WebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/sites'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name, # type: str + include_slots=None, # type: Optional[bool] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.WebAppCollection"] + """Gets all web, mobile, and API apps in the specified resource group. + + Description for Gets all web, mobile, and API apps in the specified resource group. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param include_slots: Specify :code:`true` to include deployment slots in + results. The default is false, which only gives you the production slot of all apps. + :type include_slots: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if include_slots is not None: + query_parameters['includeSlots'] = self._serialize.query("include_slots", include_slots, 'bool') + 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('WebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites'} # type: ignore + + def get( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.Site" + """Gets the details of a web, mobile, or API app. + + Description for Gets the details of a web, mobile, or API app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Site, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Site + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Site"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Site', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}'} # type: ignore + + def _create_or_update_initial( + self, + resource_group_name, # type: str + name, # type: str + site_envelope, # type: "_models.Site" + **kwargs # type: Any + ): + # type: (...) -> "_models.Site" + cls = kwargs.pop('cls', None) # type: ClsType["_models.Site"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_envelope, 'Site') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('Site', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('Site', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}'} # type: ignore + + def begin_create_or_update( + self, + resource_group_name, # type: str + name, # type: str + site_envelope, # type: "_models.Site" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.Site"] + """Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. + + Description for Creates a new web, mobile, or API app in an existing resource group, or updates + an existing app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Unique name of the app to create or update. To create or update a deployment slot, + use the {slot} parameter. + :type name: str + :param site_envelope: A JSON representation of the app properties. See example. + :type site_envelope: ~azure.mgmt.web.v2021_01_15.models.Site + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 Site or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.Site] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Site"] + 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_or_update_initial( + resource_group_name=resource_group_name, + name=name, + site_envelope=site_envelope, + 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('Site', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}'} # type: ignore + + def delete( + self, + resource_group_name, # type: str + name, # type: str + delete_metrics=None, # type: Optional[bool] + delete_empty_server_farm=None, # type: Optional[bool] + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a web, mobile, or API app, or one of the deployment slots. + + Description for Deletes a web, mobile, or API app, or one of the deployment slots. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app to delete. + :type name: str + :param delete_metrics: If true, web app metrics are also deleted. + :type delete_metrics: bool + :param delete_empty_server_farm: Specify false if you want to keep empty App Service plan. By + default, empty App Service plan is deleted. + :type delete_empty_server_farm: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if delete_metrics is not None: + query_parameters['deleteMetrics'] = self._serialize.query("delete_metrics", delete_metrics, 'bool') + if delete_empty_server_farm is not None: + query_parameters['deleteEmptyServerFarm'] = self._serialize.query("delete_empty_server_farm", delete_empty_server_farm, 'bool') + 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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}'} # type: ignore + + def update( + self, + resource_group_name, # type: str + name, # type: str + site_envelope, # type: "_models.SitePatchResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.Site" + """Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. + + Description for Creates a new web, mobile, or API app in an existing resource group, or updates + an existing app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Unique name of the app to create or update. To create or update a deployment slot, + use the {slot} parameter. + :type name: str + :param site_envelope: A JSON representation of the app properties. See example. + :type site_envelope: ~azure.mgmt.web.v2021_01_15.models.SitePatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Site, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Site + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Site"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_envelope, 'SitePatchResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('Site', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('Site', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}'} # type: ignore + + def analyze_custom_hostname( + self, + resource_group_name, # type: str + name, # type: str + host_name=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.CustomHostnameAnalysisResult" + """Analyze a custom hostname. + + Description for Analyze a custom hostname. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param host_name: Custom hostname. + :type host_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CustomHostnameAnalysisResult, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CustomHostnameAnalysisResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CustomHostnameAnalysisResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.analyze_custom_hostname.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if host_name is not None: + query_parameters['hostName'] = self._serialize.query("host_name", host_name, 'str') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CustomHostnameAnalysisResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + analyze_custom_hostname.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/analyzeCustomHostname'} # type: ignore + + def apply_slot_config_to_production( + self, + resource_group_name, # type: str + name, # type: str + slot_swap_entity, # type: "_models.CsmSlotEntity" + **kwargs # type: Any + ): + # type: (...) -> None + """Applies the configuration settings from the target slot onto the current slot. + + Description for Applies the configuration settings from the target slot onto the current slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot_swap_entity: JSON object that contains the target slot name. See example. + :type slot_swap_entity: ~azure.mgmt.web.v2021_01_15.models.CsmSlotEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.apply_slot_config_to_production.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(slot_swap_entity, 'CsmSlotEntity') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + apply_slot_config_to_production.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/applySlotConfig'} # type: ignore + + def backup( + self, + resource_group_name, # type: str + name, # type: str + request, # type: "_models.BackupRequest" + **kwargs # type: Any + ): + # type: (...) -> "_models.BackupItem" + """Creates a backup of an app. + + Description for Creates a backup of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param request: Backup configuration. You can use the JSON response from the POST action as + input here. + :type request: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupItem, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupItem + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItem"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.backup.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'BackupRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupItem', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + backup.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/backup'} # type: ignore + + def list_backups( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.BackupItemCollection"] + """Gets existing backups of an app. + + Description for Gets existing backups of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either BackupItemCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.BackupItemCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItemCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('BackupItemCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_backups.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/backups'} # type: ignore + + def get_backup_status( + self, + resource_group_name, # type: str + name, # type: str + backup_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.BackupItem" + """Gets a backup of an app by its ID. + + Description for Gets a backup of an app by its ID. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param backup_id: ID of the backup. + :type backup_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupItem, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupItem + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItem"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_backup_status.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupItem', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_backup_status.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/backups/{backupId}'} # type: ignore + + def delete_backup( + self, + resource_group_name, # type: str + name, # type: str + backup_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a backup of an app by its ID. + + Description for Deletes a backup of an app by its ID. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param backup_id: ID of the backup. + :type backup_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_backup.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_backup.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/backups/{backupId}'} # type: ignore + + def list_backup_status_secrets( + self, + resource_group_name, # type: str + name, # type: str + backup_id, # type: str + request, # type: "_models.BackupRequest" + **kwargs # type: Any + ): + # type: (...) -> "_models.BackupItem" + """Gets status of a web app backup that may be in progress, including secrets associated with the backup, such as the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is passed in the request body. + + Description for Gets status of a web app backup that may be in progress, including secrets + associated with the backup, such as the Azure Storage SAS URL. Also can be used to update the + SAS URL for the backup if a new URL is passed in the request body. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param backup_id: ID of backup. + :type backup_id: str + :param request: Information on backup request. + :type request: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupItem, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupItem + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItem"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.list_backup_status_secrets.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'BackupRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupItem', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_backup_status_secrets.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/backups/{backupId}/list'} # type: ignore + + def _restore_initial( + self, + resource_group_name, # type: str + name, # type: str + backup_id, # type: str + request, # type: "_models.RestoreRequest" + **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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._restore_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'RestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _restore_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/backups/{backupId}/restore'} # type: ignore + + def begin_restore( + self, + resource_group_name, # type: str + name, # type: str + backup_id, # type: str + request, # type: "_models.RestoreRequest" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Restores a specific backup to another app (or deployment slot, if specified). + + Description for Restores a specific backup to another app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param backup_id: ID of the backup. + :type backup_id: str + :param request: Information on restore request . + :type request: ~azure.mgmt.web.v2021_01_15.models.RestoreRequest + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._restore_initial( + resource_group_name=resource_group_name, + name=name, + backup_id=backup_id, + request=request, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_restore.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/backups/{backupId}/restore'} # type: ignore + + def list_basic_publishing_credentials_policies( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.PublishingCredentialsPoliciesCollection"] + """Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site. + + Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a + given site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PublishingCredentialsPoliciesCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.PublishingCredentialsPoliciesCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PublishingCredentialsPoliciesCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_basic_publishing_credentials_policies.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PublishingCredentialsPoliciesCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_basic_publishing_credentials_policies.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/basicPublishingCredentialsPolicies'} # type: ignore + + def get_ftp_allowed( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.CsmPublishingCredentialsPoliciesEntity" + """Returns whether FTP is allowed on the site or not. + + Description for Returns whether FTP is allowed on the site or not. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CsmPublishingCredentialsPoliciesEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmPublishingCredentialsPoliciesEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_ftp_allowed.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CsmPublishingCredentialsPoliciesEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_ftp_allowed.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/basicPublishingCredentialsPolicies/ftp'} # type: ignore + + def update_ftp_allowed( + self, + resource_group_name, # type: str + name, # type: str + csm_publishing_access_policies_entity, # type: "_models.CsmPublishingCredentialsPoliciesEntity" + **kwargs # type: Any + ): + # type: (...) -> "_models.CsmPublishingCredentialsPoliciesEntity" + """Updates whether FTP is allowed on the site or not. + + Description for Updates whether FTP is allowed on the site or not. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param csm_publishing_access_policies_entity: + :type csm_publishing_access_policies_entity: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CsmPublishingCredentialsPoliciesEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmPublishingCredentialsPoliciesEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_ftp_allowed.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(csm_publishing_access_policies_entity, 'CsmPublishingCredentialsPoliciesEntity') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CsmPublishingCredentialsPoliciesEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_ftp_allowed.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/basicPublishingCredentialsPolicies/ftp'} # type: ignore + + def get_scm_allowed( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.CsmPublishingCredentialsPoliciesEntity" + """Returns whether Scm basic auth is allowed on the site or not. + + Description for Returns whether Scm basic auth is allowed on the site or not. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CsmPublishingCredentialsPoliciesEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmPublishingCredentialsPoliciesEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_scm_allowed.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CsmPublishingCredentialsPoliciesEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_scm_allowed.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/basicPublishingCredentialsPolicies/scm'} # type: ignore + + def update_scm_allowed( + self, + resource_group_name, # type: str + name, # type: str + csm_publishing_access_policies_entity, # type: "_models.CsmPublishingCredentialsPoliciesEntity" + **kwargs # type: Any + ): + # type: (...) -> "_models.CsmPublishingCredentialsPoliciesEntity" + """Updates whether user publishing credentials are allowed on the site or not. + + Description for Updates whether user publishing credentials are allowed on the site or not. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param csm_publishing_access_policies_entity: + :type csm_publishing_access_policies_entity: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CsmPublishingCredentialsPoliciesEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmPublishingCredentialsPoliciesEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_scm_allowed.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(csm_publishing_access_policies_entity, 'CsmPublishingCredentialsPoliciesEntity') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CsmPublishingCredentialsPoliciesEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_scm_allowed.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/basicPublishingCredentialsPolicies/scm'} # type: ignore + + def list_configurations( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.SiteConfigResourceCollection"] + """List the configurations of an app. + + Description for List the configurations of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SiteConfigResourceCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.SiteConfigResourceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResourceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_configurations.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SiteConfigResourceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_configurations.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config'} # type: ignore + + def update_application_settings( + self, + resource_group_name, # type: str + name, # type: str + app_settings, # type: "_models.StringDictionary" + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Replaces the application settings of an app. + + Description for Replaces the application settings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param app_settings: Application settings of the app. + :type app_settings: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_application_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_settings, 'StringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_application_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/appsettings'} # type: ignore + + def list_application_settings( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Gets the application settings of an app. + + Description for Gets the application settings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_application_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_application_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/appsettings/list'} # type: ignore + + def update_auth_settings( + self, + resource_group_name, # type: str + name, # type: str + site_auth_settings, # type: "_models.SiteAuthSettings" + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteAuthSettings" + """Updates the Authentication / Authorization settings associated with web app. + + Description for Updates the Authentication / Authorization settings associated with web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param site_auth_settings: Auth settings associated with web app. + :type site_auth_settings: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettings + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteAuthSettings, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettings + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteAuthSettings"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_auth_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_auth_settings, 'SiteAuthSettings') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteAuthSettings', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_auth_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/authsettings'} # type: ignore + + def get_auth_settings( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteAuthSettings" + """Gets the Authentication/Authorization settings of an app. + + Description for Gets the Authentication/Authorization settings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteAuthSettings, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettings + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteAuthSettings"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_auth_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteAuthSettings', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_auth_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/authsettings/list'} # type: ignore + + def update_auth_settings_v2( + self, + resource_group_name, # type: str + name, # type: str + site_auth_settings_v2, # type: "_models.SiteAuthSettingsV2" + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteAuthSettingsV2" + """Updates site's Authentication / Authorization settings for apps via the V2 format. + + Description for Updates site's Authentication / Authorization settings for apps via the V2 + format. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param site_auth_settings_v2: Auth settings associated with web app. + :type site_auth_settings_v2: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettingsV2 + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteAuthSettingsV2, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettingsV2 + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteAuthSettingsV2"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_auth_settings_v2.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_auth_settings_v2, 'SiteAuthSettingsV2') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteAuthSettingsV2', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_auth_settings_v2.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/authsettingsV2'} # type: ignore + + def get_auth_settings_v2( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteAuthSettingsV2" + """Gets site's Authentication / Authorization settings for apps via the V2 format. + + Description for Gets site's Authentication / Authorization settings for apps via the V2 format. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteAuthSettingsV2, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettingsV2 + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteAuthSettingsV2"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_auth_settings_v2.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteAuthSettingsV2', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_auth_settings_v2.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/authsettingsV2/list'} # type: ignore + + def update_azure_storage_accounts( + self, + resource_group_name, # type: str + name, # type: str + azure_storage_accounts, # type: "_models.AzureStoragePropertyDictionaryResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.AzureStoragePropertyDictionaryResource" + """Updates the Azure storage account configurations of an app. + + Description for Updates the Azure storage account configurations of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param azure_storage_accounts: Azure storage accounts of the app. + :type azure_storage_accounts: ~azure.mgmt.web.v2021_01_15.models.AzureStoragePropertyDictionaryResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AzureStoragePropertyDictionaryResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AzureStoragePropertyDictionaryResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AzureStoragePropertyDictionaryResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_azure_storage_accounts.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(azure_storage_accounts, 'AzureStoragePropertyDictionaryResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AzureStoragePropertyDictionaryResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_azure_storage_accounts.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/azurestorageaccounts'} # type: ignore + + def list_azure_storage_accounts( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.AzureStoragePropertyDictionaryResource" + """Gets the Azure storage account configurations of an app. + + Description for Gets the Azure storage account configurations of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AzureStoragePropertyDictionaryResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AzureStoragePropertyDictionaryResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AzureStoragePropertyDictionaryResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_azure_storage_accounts.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AzureStoragePropertyDictionaryResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_azure_storage_accounts.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/azurestorageaccounts/list'} # type: ignore + + def update_backup_configuration( + self, + resource_group_name, # type: str + name, # type: str + request, # type: "_models.BackupRequest" + **kwargs # type: Any + ): + # type: (...) -> "_models.BackupRequest" + """Updates the backup configuration of an app. + + Description for Updates the backup configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param request: Edited backup configuration. + :type request: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupRequest, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupRequest"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_backup_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'BackupRequest') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupRequest', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_backup_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/backup'} # type: ignore + + def delete_backup_configuration( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes the backup configuration of an app. + + Description for Deletes the backup configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_backup_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_backup_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/backup'} # type: ignore + + def get_backup_configuration( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.BackupRequest" + """Gets the backup configuration of an app. + + Description for Gets the backup configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupRequest, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupRequest"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_backup_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupRequest', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_backup_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/backup/list'} # type: ignore + + def get_app_settings_key_vault_references( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ApiKVReferenceCollection"] + """Gets the config reference app settings and status of an app. + + Description for Gets the config reference app settings and status of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ApiKVReferenceCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ApiKVReferenceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApiKVReferenceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_app_settings_key_vault_references.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ApiKVReferenceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_app_settings_key_vault_references.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/configreferences/appsettings'} # type: ignore + + def get_app_setting_key_vault_reference( + self, + resource_group_name, # type: str + name, # type: str + app_setting_key, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ApiKVReference" + """Gets the config reference and status of an app. + + Description for Gets the config reference and status of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param app_setting_key: App Setting key name. + :type app_setting_key: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ApiKVReference, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ApiKVReference + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApiKVReference"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_app_setting_key_vault_reference.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'appSettingKey': self._serialize.url("app_setting_key", app_setting_key, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ApiKVReference', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_app_setting_key_vault_reference.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/configreferences/appsettings/{appSettingKey}'} # type: ignore + + def get_site_connection_string_key_vault_references( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ApiKVReferenceCollection"] + """Gets the config reference app settings and status of an app. + + Description for Gets the config reference app settings and status of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ApiKVReferenceCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ApiKVReferenceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApiKVReferenceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_site_connection_string_key_vault_references.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ApiKVReferenceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_site_connection_string_key_vault_references.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/configreferences/connectionstrings'} # type: ignore + + def get_site_connection_string_key_vault_reference( + self, + resource_group_name, # type: str + name, # type: str + connection_string_key, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ApiKVReference" + """Gets the config reference and status of an app. + + Description for Gets the config reference and status of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param connection_string_key: + :type connection_string_key: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ApiKVReference, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ApiKVReference + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApiKVReference"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_connection_string_key_vault_reference.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'connectionStringKey': self._serialize.url("connection_string_key", connection_string_key, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ApiKVReference', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_connection_string_key_vault_reference.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/configreferences/connectionstrings/{connectionStringKey}'} # type: ignore + + def update_connection_strings( + self, + resource_group_name, # type: str + name, # type: str + connection_strings, # type: "_models.ConnectionStringDictionary" + **kwargs # type: Any + ): + # type: (...) -> "_models.ConnectionStringDictionary" + """Replaces the connection strings of an app. + + Description for Replaces the connection strings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param connection_strings: Connection strings of the app or deployment slot. See example. + :type connection_strings: ~azure.mgmt.web.v2021_01_15.models.ConnectionStringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ConnectionStringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ConnectionStringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConnectionStringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_connection_strings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_strings, 'ConnectionStringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ConnectionStringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_connection_strings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/connectionstrings'} # type: ignore + + def list_connection_strings( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ConnectionStringDictionary" + """Gets the connection strings of an app. + + Description for Gets the connection strings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ConnectionStringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ConnectionStringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConnectionStringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_connection_strings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ConnectionStringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_connection_strings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/connectionstrings/list'} # type: ignore + + def get_diagnostic_logs_configuration( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteLogsConfig" + """Gets the logging configuration of an app. + + Description for Gets the logging configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteLogsConfig, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteLogsConfig + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteLogsConfig"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_diagnostic_logs_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteLogsConfig', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_diagnostic_logs_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/logs'} # type: ignore + + def update_diagnostic_logs_config( + self, + resource_group_name, # type: str + name, # type: str + site_logs_config, # type: "_models.SiteLogsConfig" + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteLogsConfig" + """Updates the logging configuration of an app. + + Description for Updates the logging configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param site_logs_config: A SiteLogsConfig JSON object that contains the logging configuration + to change in the "properties" property. + :type site_logs_config: ~azure.mgmt.web.v2021_01_15.models.SiteLogsConfig + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteLogsConfig, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteLogsConfig + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteLogsConfig"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_diagnostic_logs_config.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_logs_config, 'SiteLogsConfig') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteLogsConfig', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_diagnostic_logs_config.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/logs'} # type: ignore + + def update_metadata( + self, + resource_group_name, # type: str + name, # type: str + metadata, # type: "_models.StringDictionary" + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Replaces the metadata of an app. + + Description for Replaces the metadata of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param metadata: Edited metadata of the app or deployment slot. See example. + :type metadata: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_metadata.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(metadata, 'StringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_metadata.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/metadata'} # type: ignore + + def list_metadata( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Gets the metadata of an app. + + Description for Gets the metadata of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_metadata.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_metadata.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/metadata/list'} # type: ignore + + def _list_publishing_credentials_initial( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.User" + cls = kwargs.pop('cls', None) # type: ClsType["_models.User"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._list_publishing_credentials_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('User', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _list_publishing_credentials_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/publishingcredentials/list'} # type: ignore + + def begin_list_publishing_credentials( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.User"] + """Gets the Git/FTP publishing credentials of an app. + + Description for Gets the Git/FTP publishing credentials of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type 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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 User or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.User] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.User"] + 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._list_publishing_credentials_initial( + resource_group_name=resource_group_name, + name=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('User', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_list_publishing_credentials.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/publishingcredentials/list'} # type: ignore + + def update_site_push_settings( + self, + resource_group_name, # type: str + name, # type: str + push_settings, # type: "_models.PushSettings" + **kwargs # type: Any + ): + # type: (...) -> "_models.PushSettings" + """Updates the Push settings associated with web app. + + Description for Updates the Push settings associated with web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param push_settings: Push settings associated with web app. + :type push_settings: ~azure.mgmt.web.v2021_01_15.models.PushSettings + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PushSettings, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PushSettings + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PushSettings"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_site_push_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(push_settings, 'PushSettings') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PushSettings', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_site_push_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/pushsettings'} # type: ignore + + def list_site_push_settings( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PushSettings" + """Gets the Push settings associated with web app. + + Description for Gets the Push settings associated with web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PushSettings, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PushSettings + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PushSettings"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_site_push_settings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PushSettings', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_site_push_settings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/pushsettings/list'} # type: ignore + + def list_slot_configuration_names( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SlotConfigNamesResource" + """Gets the names of app settings and connection strings that stick to the slot (not swapped). + + Description for Gets the names of app settings and connection strings that stick to the slot + (not swapped). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SlotConfigNamesResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SlotConfigNamesResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SlotConfigNamesResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_slot_configuration_names.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SlotConfigNamesResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_slot_configuration_names.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/slotConfigNames'} # type: ignore + + def update_slot_configuration_names( + self, + resource_group_name, # type: str + name, # type: str + slot_config_names, # type: "_models.SlotConfigNamesResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.SlotConfigNamesResource" + """Updates the names of application settings and connection string that remain with the slot during swap operation. + + Description for Updates the names of application settings and connection string that remain + with the slot during swap operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot_config_names: Names of application settings and connection strings. See example. + :type slot_config_names: ~azure.mgmt.web.v2021_01_15.models.SlotConfigNamesResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SlotConfigNamesResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SlotConfigNamesResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SlotConfigNamesResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_slot_configuration_names.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(slot_config_names, 'SlotConfigNamesResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SlotConfigNamesResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_slot_configuration_names.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/slotConfigNames'} # type: ignore + + def get_configuration( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteConfigResource" + """Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications, Always On, etc. + + Description for Gets the configuration of an app, such as platform version and bitness, default + documents, virtual applications, Always On, etc. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteConfigResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteConfigResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web'} # type: ignore + + def create_or_update_configuration( + self, + resource_group_name, # type: str + name, # type: str + site_config, # type: "_models.SiteConfigResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteConfigResource" + """Updates the configuration of an app. + + Description for Updates the configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param site_config: JSON representation of a SiteConfig object. See example. + :type site_config: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteConfigResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_config, 'SiteConfigResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteConfigResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web'} # type: ignore + + def update_configuration( + self, + resource_group_name, # type: str + name, # type: str + site_config, # type: "_models.SiteConfigResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteConfigResource" + """Updates the configuration of an app. + + Description for Updates the configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param site_config: JSON representation of a SiteConfig object. See example. + :type site_config: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteConfigResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_configuration.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_config, 'SiteConfigResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteConfigResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_configuration.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web'} # type: ignore + + def list_configuration_snapshot_info( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.SiteConfigurationSnapshotInfoCollection"] + """Gets a list of web app configuration snapshots identifiers. Each element of the list contains a timestamp and the ID of the snapshot. + + Description for Gets a list of web app configuration snapshots identifiers. Each element of the + list contains a timestamp and the ID of the snapshot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SiteConfigurationSnapshotInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.SiteConfigurationSnapshotInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigurationSnapshotInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_configuration_snapshot_info.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SiteConfigurationSnapshotInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_configuration_snapshot_info.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web/snapshots'} # type: ignore + + def get_configuration_snapshot( + self, + resource_group_name, # type: str + name, # type: str + snapshot_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteConfigResource" + """Gets a snapshot of the configuration of an app at a previous point in time. + + Description for Gets a snapshot of the configuration of an app at a previous point in time. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param snapshot_id: The ID of the snapshot to read. + :type snapshot_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteConfigResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_configuration_snapshot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'snapshotId': self._serialize.url("snapshot_id", snapshot_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteConfigResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_configuration_snapshot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web/snapshots/{snapshotId}'} # type: ignore + + def recover_site_configuration_snapshot( + self, + resource_group_name, # type: str + name, # type: str + snapshot_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Reverts the configuration of an app to a previous snapshot. + + Description for Reverts the configuration of an app to a previous snapshot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param snapshot_id: The ID of the snapshot to read. + :type snapshot_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.recover_site_configuration_snapshot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'snapshotId': self._serialize.url("snapshot_id", snapshot_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + recover_site_configuration_snapshot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web/snapshots/{snapshotId}/recover'} # type: ignore + + def get_web_site_container_logs( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Optional[IO] + """Gets the last lines of docker logs for the given site. + + Description for Gets the last lines of docker logs for the given site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO or None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Optional[IO]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/octet-stream" + + # Construct URL + url = self.get_web_site_container_logs.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + 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 = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_web_site_container_logs.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/containerlogs'} # type: ignore + + def get_container_logs_zip( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Optional[IO] + """Gets the ZIP archived docker log files for the given site. + + Description for Gets the ZIP archived docker log files for the given site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO or None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Optional[IO]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/zip" + + # Construct URL + url = self.get_container_logs_zip.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + 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 = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_container_logs_zip.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/containerlogs/zip/download'} # type: ignore + + def list_continuous_web_jobs( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ContinuousWebJobCollection"] + """List continuous web jobs for an app, or a deployment slot. + + Description for List continuous web jobs for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ContinuousWebJobCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ContinuousWebJobCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ContinuousWebJobCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_continuous_web_jobs.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ContinuousWebJobCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_continuous_web_jobs.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/continuouswebjobs'} # type: ignore + + def get_continuous_web_job( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ContinuousWebJob" + """Gets a continuous web job by its ID for an app, or a deployment slot. + + Description for Gets a continuous web job by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ContinuousWebJob, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ContinuousWebJob + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ContinuousWebJob"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_continuous_web_job.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ContinuousWebJob', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_continuous_web_job.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/continuouswebjobs/{webJobName}'} # type: ignore + + def delete_continuous_web_job( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a continuous web job by its ID for an app, or a deployment slot. + + Description for Delete a continuous web job by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_continuous_web_job.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_continuous_web_job.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/continuouswebjobs/{webJobName}'} # type: ignore + + def start_continuous_web_job( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Start a continuous web job for an app, or a deployment slot. + + Description for Start a continuous web job for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.start_continuous_web_job.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + start_continuous_web_job.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/continuouswebjobs/{webJobName}/start'} # type: ignore + + def stop_continuous_web_job( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Stop a continuous web job for an app, or a deployment slot. + + Description for Stop a continuous web job for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.stop_continuous_web_job.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + stop_continuous_web_job.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/continuouswebjobs/{webJobName}/stop'} # type: ignore + + def list_deployments( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DeploymentCollection"] + """List deployments for an app, or a deployment slot. + + Description for List deployments for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DeploymentCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.DeploymentCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DeploymentCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_deployments.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DeploymentCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_deployments.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/deployments'} # type: ignore + + def get_deployment( + self, + resource_group_name, # type: str + name, # type: str + id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.Deployment" + """Get a deployment by its ID for an app, or a deployment slot. + + Description for Get a deployment by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param id: Deployment ID. + :type id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Deployment, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Deployment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Deployment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_deployment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Deployment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_deployment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/deployments/{id}'} # type: ignore + + def create_deployment( + self, + resource_group_name, # type: str + name, # type: str + id, # type: str + deployment, # type: "_models.Deployment" + **kwargs # type: Any + ): + # type: (...) -> "_models.Deployment" + """Create a deployment for an app, or a deployment slot. + + Description for Create a deployment for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param id: ID of an existing deployment. + :type id: str + :param deployment: Deployment details. + :type deployment: ~azure.mgmt.web.v2021_01_15.models.Deployment + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Deployment, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Deployment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Deployment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_deployment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(deployment, 'Deployment') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Deployment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_deployment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/deployments/{id}'} # type: ignore + + def delete_deployment( + self, + resource_group_name, # type: str + name, # type: str + id, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a deployment by its ID for an app, or a deployment slot. + + Description for Delete a deployment by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param id: Deployment ID. + :type id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_deployment.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_deployment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/deployments/{id}'} # type: ignore + + def list_deployment_log( + self, + resource_group_name, # type: str + name, # type: str + id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.Deployment" + """List deployment log for specific deployment for an app, or a deployment slot. + + Description for List deployment log for specific deployment for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param id: The ID of a specific deployment. This is the value of the name property in the JSON + response from "GET /api/sites/{siteName}/deployments". + :type id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Deployment, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Deployment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Deployment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_deployment_log.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Deployment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_deployment_log.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/deployments/{id}/log'} # type: ignore + + def discover_backup( + self, + resource_group_name, # type: str + name, # type: str + request, # type: "_models.RestoreRequest" + **kwargs # type: Any + ): + # type: (...) -> "_models.RestoreRequest" + """Discovers an existing app backup that can be restored from a blob in Azure storage. Use this to get information about the databases stored in a backup. + + Description for Discovers an existing app backup that can be restored from a blob in Azure + storage. Use this to get information about the databases stored in a backup. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param request: A RestoreRequest object that includes Azure storage URL and blog name for + discovery of backup. + :type request: ~azure.mgmt.web.v2021_01_15.models.RestoreRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RestoreRequest, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RestoreRequest + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestoreRequest"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.discover_backup.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'RestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RestoreRequest', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + discover_backup.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/discoverbackup'} # type: ignore + + def list_domain_ownership_identifiers( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.IdentifierCollection"] + """Lists ownership identifiers for domain associated with web app. + + Description for Lists ownership identifiers for domain associated with web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either IdentifierCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.IdentifierCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.IdentifierCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_domain_ownership_identifiers.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('IdentifierCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_domain_ownership_identifiers.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/domainOwnershipIdentifiers'} # type: ignore + + def get_domain_ownership_identifier( + self, + resource_group_name, # type: str + name, # type: str + domain_ownership_identifier_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.Identifier" + """Get domain ownership identifier for web app. + + Description for Get domain ownership identifier for web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param domain_ownership_identifier_name: Name of domain ownership identifier. + :type domain_ownership_identifier_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Identifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Identifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Identifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_domain_ownership_identifier.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainOwnershipIdentifierName': self._serialize.url("domain_ownership_identifier_name", domain_ownership_identifier_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Identifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_domain_ownership_identifier.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/domainOwnershipIdentifiers/{domainOwnershipIdentifierName}'} # type: ignore + + def create_or_update_domain_ownership_identifier( + self, + resource_group_name, # type: str + name, # type: str + domain_ownership_identifier_name, # type: str + domain_ownership_identifier, # type: "_models.Identifier" + **kwargs # type: Any + ): + # type: (...) -> "_models.Identifier" + """Creates a domain ownership identifier for web app, or updates an existing ownership identifier. + + Description for Creates a domain ownership identifier for web app, or updates an existing + ownership identifier. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param domain_ownership_identifier_name: Name of domain ownership identifier. + :type domain_ownership_identifier_name: str + :param domain_ownership_identifier: A JSON representation of the domain ownership properties. + :type domain_ownership_identifier: ~azure.mgmt.web.v2021_01_15.models.Identifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Identifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Identifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Identifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_domain_ownership_identifier.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainOwnershipIdentifierName': self._serialize.url("domain_ownership_identifier_name", domain_ownership_identifier_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(domain_ownership_identifier, 'Identifier') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Identifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_domain_ownership_identifier.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/domainOwnershipIdentifiers/{domainOwnershipIdentifierName}'} # type: ignore + + def delete_domain_ownership_identifier( + self, + resource_group_name, # type: str + name, # type: str + domain_ownership_identifier_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a domain ownership identifier for a web app. + + Description for Deletes a domain ownership identifier for a web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param domain_ownership_identifier_name: Name of domain ownership identifier. + :type domain_ownership_identifier_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_domain_ownership_identifier.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainOwnershipIdentifierName': self._serialize.url("domain_ownership_identifier_name", domain_ownership_identifier_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_domain_ownership_identifier.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/domainOwnershipIdentifiers/{domainOwnershipIdentifierName}'} # type: ignore + + def update_domain_ownership_identifier( + self, + resource_group_name, # type: str + name, # type: str + domain_ownership_identifier_name, # type: str + domain_ownership_identifier, # type: "_models.Identifier" + **kwargs # type: Any + ): + # type: (...) -> "_models.Identifier" + """Creates a domain ownership identifier for web app, or updates an existing ownership identifier. + + Description for Creates a domain ownership identifier for web app, or updates an existing + ownership identifier. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param domain_ownership_identifier_name: Name of domain ownership identifier. + :type domain_ownership_identifier_name: str + :param domain_ownership_identifier: A JSON representation of the domain ownership properties. + :type domain_ownership_identifier: ~azure.mgmt.web.v2021_01_15.models.Identifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Identifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Identifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Identifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_domain_ownership_identifier.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainOwnershipIdentifierName': self._serialize.url("domain_ownership_identifier_name", domain_ownership_identifier_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(domain_ownership_identifier, 'Identifier') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Identifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_domain_ownership_identifier.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/domainOwnershipIdentifiers/{domainOwnershipIdentifierName}'} # type: ignore + + def get_ms_deploy_status( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.MSDeployStatus" + """Get the status of the last MSDeploy operation. + + Description for Get the status of the last MSDeploy operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MSDeployStatus, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MSDeployStatus + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_ms_deploy_status.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_ms_deploy_status.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/extensions/MSDeploy'} # type: ignore + + def _create_ms_deploy_operation_initial( + self, + resource_group_name, # type: str + name, # type: str + ms_deploy, # type: "_models.MSDeploy" + **kwargs # type: Any + ): + # type: (...) -> "_models.MSDeployStatus" + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_ms_deploy_operation_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(ms_deploy, 'MSDeploy') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_ms_deploy_operation_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/extensions/MSDeploy'} # type: ignore + + def begin_create_ms_deploy_operation( + self, + resource_group_name, # type: str + name, # type: str + ms_deploy, # type: "_models.MSDeploy" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.MSDeployStatus"] + """Invoke the MSDeploy web app extension. + + Description for Invoke the MSDeploy web app extension. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param ms_deploy: Details of MSDeploy operation. + :type ms_deploy: ~azure.mgmt.web.v2021_01_15.models.MSDeploy + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 MSDeployStatus or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.MSDeployStatus] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + 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_ms_deploy_operation_initial( + resource_group_name=resource_group_name, + name=name, + ms_deploy=ms_deploy, + 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('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_ms_deploy_operation.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/extensions/MSDeploy'} # type: ignore + + def get_ms_deploy_log( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.MSDeployLog" + """Get the MSDeploy Log for the last MSDeploy operation. + + Description for Get the MSDeploy Log for the last MSDeploy operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MSDeployLog, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MSDeployLog + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployLog"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_ms_deploy_log.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployLog', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_ms_deploy_log.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/extensions/MSDeploy/log'} # type: ignore + + def list_functions( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.FunctionEnvelopeCollection"] + """List the functions for a web site, or a deployment slot. + + Description for List the functions for a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either FunctionEnvelopeCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.FunctionEnvelopeCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionEnvelopeCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_functions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('FunctionEnvelopeCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_functions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions'} # type: ignore + + def get_functions_admin_token( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> str + """Fetch a short lived token that can be exchanged for a master key. + + Description for Fetch a short lived token that can be exchanged for a master key. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: str, or the result of cls(response) + :rtype: str + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[str] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_functions_admin_token.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('str', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_functions_admin_token.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/admin/token'} # type: ignore + + def get_function( + self, + resource_group_name, # type: str + name, # type: str + function_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.FunctionEnvelope" + """Get function information by its ID for web site, or a deployment slot. + + Description for Get function information by its ID for web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: FunctionEnvelope, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.FunctionEnvelope + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionEnvelope"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_function.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('FunctionEnvelope', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_function.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/{functionName}'} # type: ignore + + def _create_function_initial( + self, + resource_group_name, # type: str + name, # type: str + function_name, # type: str + function_envelope, # type: "_models.FunctionEnvelope" + **kwargs # type: Any + ): + # type: (...) -> "_models.FunctionEnvelope" + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionEnvelope"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_function_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(function_envelope, 'FunctionEnvelope') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('FunctionEnvelope', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_function_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/{functionName}'} # type: ignore + + def begin_create_function( + self, + resource_group_name, # type: str + name, # type: str + function_name, # type: str + function_envelope, # type: "_models.FunctionEnvelope" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.FunctionEnvelope"] + """Create function for web site, or a deployment slot. + + Description for Create function for web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :param function_envelope: Function details. + :type function_envelope: ~azure.mgmt.web.v2021_01_15.models.FunctionEnvelope + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 FunctionEnvelope or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.FunctionEnvelope] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionEnvelope"] + 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_function_initial( + resource_group_name=resource_group_name, + name=name, + function_name=function_name, + function_envelope=function_envelope, + 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('FunctionEnvelope', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_function.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/{functionName}'} # type: ignore + + def delete_function( + self, + resource_group_name, # type: str + name, # type: str + function_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a function for web site, or a deployment slot. + + Description for Delete a function for web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_function.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_function.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/{functionName}'} # type: ignore + + def create_or_update_function_secret( + self, + resource_group_name, # type: str + name, # type: str + function_name, # type: str + key_name, # type: str + key, # type: "_models.KeyInfo" + **kwargs # type: Any + ): + # type: (...) -> "_models.KeyInfo" + """Add or update a function secret. + + Description for Add or update a function secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: The name of the function. + :type function_name: str + :param key_name: The name of the key. + :type key_name: str + :param key: The key to create or update. + :type key: ~azure.mgmt.web.v2021_01_15.models.KeyInfo + :keyword callable cls: A custom type or function that will be passed the direct response + :return: KeyInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.KeyInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.KeyInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_function_secret.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(key, 'KeyInfo') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('KeyInfo', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('KeyInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_function_secret.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/{functionName}/keys/{keyName}'} # type: ignore + + def delete_function_secret( + self, + resource_group_name, # type: str + name, # type: str + function_name, # type: str + key_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a function secret. + + Description for Delete a function secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: The name of the function. + :type function_name: str + :param key_name: The name of the key. + :type key_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_function_secret.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_function_secret.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/{functionName}/keys/{keyName}'} # type: ignore + + def list_function_keys( + self, + resource_group_name, # type: str + name, # type: str + function_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Get function keys for a function in a web site, or a deployment slot. + + Description for Get function keys for a function in a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_function_keys.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_function_keys.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/{functionName}/listkeys'} # type: ignore + + def list_function_secrets( + self, + resource_group_name, # type: str + name, # type: str + function_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.FunctionSecrets" + """Get function secrets for a function in a web site, or a deployment slot. + + Description for Get function secrets for a function in a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: FunctionSecrets, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.FunctionSecrets + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionSecrets"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_function_secrets.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('FunctionSecrets', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_function_secrets.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/{functionName}/listsecrets'} # type: ignore + + def list_host_keys( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.HostKeys" + """Get host secrets for a function app. + + Description for Get host secrets for a function app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HostKeys, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HostKeys + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostKeys"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_host_keys.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HostKeys', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_host_keys.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/host/default/listkeys'} # type: ignore + + def list_sync_status( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """This is to allow calling via powershell and ARM template. + + Description for This is to allow calling via powershell and ARM template. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.list_sync_status.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + list_sync_status.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/host/default/listsyncstatus'} # type: ignore + + def sync_functions( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Syncs function trigger metadata to the management database. + + Description for Syncs function trigger metadata to the management database. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.sync_functions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + sync_functions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/host/default/sync'} # type: ignore + + def create_or_update_host_secret( + self, + resource_group_name, # type: str + name, # type: str + key_type, # type: str + key_name, # type: str + key, # type: "_models.KeyInfo" + **kwargs # type: Any + ): + # type: (...) -> "_models.KeyInfo" + """Add or update a host level secret. + + Description for Add or update a host level secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param key_type: The type of host key. + :type key_type: str + :param key_name: The name of the key. + :type key_name: str + :param key: The key to create or update. + :type key: ~azure.mgmt.web.v2021_01_15.models.KeyInfo + :keyword callable cls: A custom type or function that will be passed the direct response + :return: KeyInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.KeyInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.KeyInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_host_secret.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'keyType': self._serialize.url("key_type", key_type, 'str'), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(key, 'KeyInfo') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('KeyInfo', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('KeyInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_host_secret.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/host/default/{keyType}/{keyName}'} # type: ignore + + def delete_host_secret( + self, + resource_group_name, # type: str + name, # type: str + key_type, # type: str + key_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a host level secret. + + Description for Delete a host level secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param key_type: The type of host key. + :type key_type: str + :param key_name: The name of the key. + :type key_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_host_secret.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'keyType': self._serialize.url("key_type", key_type, 'str'), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_host_secret.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/host/default/{keyType}/{keyName}'} # type: ignore + + def list_host_name_bindings( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.HostNameBindingCollection"] + """Get hostname bindings for an app or a deployment slot. + + Description for Get hostname bindings for an app or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either HostNameBindingCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.HostNameBindingCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostNameBindingCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_host_name_bindings.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('HostNameBindingCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_host_name_bindings.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hostNameBindings'} # type: ignore + + def get_host_name_binding( + self, + resource_group_name, # type: str + name, # type: str + host_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.HostNameBinding" + """Get the named hostname binding for an app (or deployment slot, if specified). + + Description for Get the named hostname binding for an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param host_name: Hostname in the hostname binding. + :type host_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HostNameBinding, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HostNameBinding + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostNameBinding"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_host_name_binding.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'hostName': self._serialize.url("host_name", host_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HostNameBinding', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_host_name_binding.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hostNameBindings/{hostName}'} # type: ignore + + def create_or_update_host_name_binding( + self, + resource_group_name, # type: str + name, # type: str + host_name, # type: str + host_name_binding, # type: "_models.HostNameBinding" + **kwargs # type: Any + ): + # type: (...) -> "_models.HostNameBinding" + """Creates a hostname binding for an app. + + Description for Creates a hostname binding for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param host_name: Hostname in the hostname binding. + :type host_name: str + :param host_name_binding: Binding details. This is the JSON representation of a HostNameBinding + object. + :type host_name_binding: ~azure.mgmt.web.v2021_01_15.models.HostNameBinding + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HostNameBinding, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HostNameBinding + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostNameBinding"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_host_name_binding.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'hostName': self._serialize.url("host_name", host_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(host_name_binding, 'HostNameBinding') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HostNameBinding', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_host_name_binding.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hostNameBindings/{hostName}'} # type: ignore + + def delete_host_name_binding( + self, + resource_group_name, # type: str + name, # type: str + host_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a hostname binding for an app. + + Description for Deletes a hostname binding for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param host_name: Hostname in the hostname binding. + :type host_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_host_name_binding.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'hostName': self._serialize.url("host_name", host_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_host_name_binding.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hostNameBindings/{hostName}'} # type: ignore + + def get_hybrid_connection( + self, + resource_group_name, # type: str + name, # type: str + namespace_name, # type: str + relay_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.HybridConnection" + """Retrieves a specific Service Bus Hybrid Connection used by this Web App. + + Description for Retrieves a specific Service Bus Hybrid Connection used by this Web App. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param namespace_name: The namespace for this hybrid connection. + :type namespace_name: str + :param relay_name: The relay name for this hybrid connection. + :type relay_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_hybrid_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_hybrid_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + def create_or_update_hybrid_connection( + self, + resource_group_name, # type: str + name, # type: str + namespace_name, # type: str + relay_name, # type: str + connection_envelope, # type: "_models.HybridConnection" + **kwargs # type: Any + ): + # type: (...) -> "_models.HybridConnection" + """Creates a new Hybrid Connection using a Service Bus relay. + + Description for Creates a new Hybrid Connection using a Service Bus relay. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param namespace_name: The namespace for this hybrid connection. + :type namespace_name: str + :param relay_name: The relay name for this hybrid connection. + :type relay_name: str + :param connection_envelope: The details of the hybrid connection. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_hybrid_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'HybridConnection') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_hybrid_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + def delete_hybrid_connection( + self, + resource_group_name, # type: str + name, # type: str + namespace_name, # type: str + relay_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Removes a Hybrid Connection from this site. + + Description for Removes a Hybrid Connection from this site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param namespace_name: The namespace for this hybrid connection. + :type namespace_name: str + :param relay_name: The relay name for this hybrid connection. + :type relay_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_hybrid_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_hybrid_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + def update_hybrid_connection( + self, + resource_group_name, # type: str + name, # type: str + namespace_name, # type: str + relay_name, # type: str + connection_envelope, # type: "_models.HybridConnection" + **kwargs # type: Any + ): + # type: (...) -> "_models.HybridConnection" + """Creates a new Hybrid Connection using a Service Bus relay. + + Description for Creates a new Hybrid Connection using a Service Bus relay. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param namespace_name: The namespace for this hybrid connection. + :type namespace_name: str + :param relay_name: The relay name for this hybrid connection. + :type relay_name: str + :param connection_envelope: The details of the hybrid connection. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_hybrid_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'HybridConnection') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_hybrid_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + def list_hybrid_connections( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.HybridConnection" + """Retrieves all Service Bus Hybrid Connections used by this Web App. + + Description for Retrieves all Service Bus Hybrid Connections used by this Web App. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_hybrid_connections.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_hybrid_connections.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridConnectionRelays'} # type: ignore + + def list_relay_service_connections( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.RelayServiceConnectionEntity" + """Gets hybrid connections configured for an app (or deployment slot, if specified). + + Description for Gets hybrid connections configured for an app (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RelayServiceConnectionEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RelayServiceConnectionEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_relay_service_connections.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RelayServiceConnectionEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_relay_service_connections.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridconnection'} # type: ignore + + def get_relay_service_connection( + self, + resource_group_name, # type: str + name, # type: str + entity_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.RelayServiceConnectionEntity" + """Gets a hybrid connection configuration by its name. + + Description for Gets a hybrid connection configuration by its name. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param entity_name: Name of the hybrid connection. + :type entity_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RelayServiceConnectionEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RelayServiceConnectionEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_relay_service_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'entityName': self._serialize.url("entity_name", entity_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RelayServiceConnectionEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_relay_service_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridconnection/{entityName}'} # type: ignore + + def create_or_update_relay_service_connection( + self, + resource_group_name, # type: str + name, # type: str + entity_name, # type: str + connection_envelope, # type: "_models.RelayServiceConnectionEntity" + **kwargs # type: Any + ): + # type: (...) -> "_models.RelayServiceConnectionEntity" + """Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH). + + Description for Creates a new hybrid connection configuration (PUT), or updates an existing one + (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param entity_name: Name of the hybrid connection configuration. + :type entity_name: str + :param connection_envelope: Details of the hybrid connection configuration. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RelayServiceConnectionEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RelayServiceConnectionEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_relay_service_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'entityName': self._serialize.url("entity_name", entity_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'RelayServiceConnectionEntity') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RelayServiceConnectionEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_relay_service_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridconnection/{entityName}'} # type: ignore + + def delete_relay_service_connection( + self, + resource_group_name, # type: str + name, # type: str + entity_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a relay service connection by its name. + + Description for Deletes a relay service connection by its name. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param entity_name: Name of the hybrid connection configuration. + :type entity_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_relay_service_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'entityName': self._serialize.url("entity_name", entity_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_relay_service_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridconnection/{entityName}'} # type: ignore + + def update_relay_service_connection( + self, + resource_group_name, # type: str + name, # type: str + entity_name, # type: str + connection_envelope, # type: "_models.RelayServiceConnectionEntity" + **kwargs # type: Any + ): + # type: (...) -> "_models.RelayServiceConnectionEntity" + """Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH). + + Description for Creates a new hybrid connection configuration (PUT), or updates an existing one + (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param entity_name: Name of the hybrid connection configuration. + :type entity_name: str + :param connection_envelope: Details of the hybrid connection configuration. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RelayServiceConnectionEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RelayServiceConnectionEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_relay_service_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'entityName': self._serialize.url("entity_name", entity_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'RelayServiceConnectionEntity') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RelayServiceConnectionEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_relay_service_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hybridconnection/{entityName}'} # type: ignore + + def list_instance_identifiers( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.WebAppInstanceStatusCollection"] + """Gets all scale-out instances of an app. + + Description for Gets all scale-out instances of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppInstanceStatusCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppInstanceStatusCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppInstanceStatusCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_identifiers.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('WebAppInstanceStatusCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_instance_identifiers.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances'} # type: ignore + + def get_instance_info( + self, + resource_group_name, # type: str + name, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.WebSiteInstanceStatus" + """Gets all scale-out instances of an app. + + Description for Gets all scale-out instances of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param instance_id: + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: WebSiteInstanceStatus, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.WebSiteInstanceStatus + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebSiteInstanceStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_info.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('WebSiteInstanceStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_info.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}'} # type: ignore + + def get_instance_ms_deploy_status( + self, + resource_group_name, # type: str + name, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.MSDeployStatus" + """Get the status of the last MSDeploy operation. + + Description for Get the status of the last MSDeploy operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param instance_id: ID of web app instance. + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MSDeployStatus, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MSDeployStatus + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_ms_deploy_status.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_ms_deploy_status.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/extensions/MSDeploy'} # type: ignore + + def _create_instance_ms_deploy_operation_initial( + self, + resource_group_name, # type: str + name, # type: str + instance_id, # type: str + ms_deploy, # type: "_models.MSDeploy" + **kwargs # type: Any + ): + # type: (...) -> "_models.MSDeployStatus" + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_instance_ms_deploy_operation_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(ms_deploy, 'MSDeploy') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_instance_ms_deploy_operation_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/extensions/MSDeploy'} # type: ignore + + def begin_create_instance_ms_deploy_operation( + self, + resource_group_name, # type: str + name, # type: str + instance_id, # type: str + ms_deploy, # type: "_models.MSDeploy" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.MSDeployStatus"] + """Invoke the MSDeploy web app extension. + + Description for Invoke the MSDeploy web app extension. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param instance_id: ID of web app instance. + :type instance_id: str + :param ms_deploy: Details of MSDeploy operation. + :type ms_deploy: ~azure.mgmt.web.v2021_01_15.models.MSDeploy + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 MSDeployStatus or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.MSDeployStatus] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + 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_instance_ms_deploy_operation_initial( + resource_group_name=resource_group_name, + name=name, + instance_id=instance_id, + ms_deploy=ms_deploy, + 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('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_instance_ms_deploy_operation.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/extensions/MSDeploy'} # type: ignore + + def get_instance_ms_deploy_log( + self, + resource_group_name, # type: str + name, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.MSDeployLog" + """Get the MSDeploy Log for the last MSDeploy operation. + + Description for Get the MSDeploy Log for the last MSDeploy operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param instance_id: ID of web app instance. + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MSDeployLog, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MSDeployLog + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployLog"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_ms_deploy_log.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployLog', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_ms_deploy_log.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/extensions/MSDeploy/log'} # type: ignore + + def list_instance_processes( + self, + resource_group_name, # type: str + name, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ProcessInfoCollection"] + """Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site. + + Description for Get list of processes for a web site, or a deployment slot, or for a specific + scaled-out instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :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 ProcessInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_processes.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_instance_processes.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/processes'} # type: ignore + + def get_instance_process( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ProcessInfo" + """Get process information by its ID for a specific scaled-out instance in a web site. + + Description for Get process information by its ID for a specific scaled-out instance in a web + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ProcessInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ProcessInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_process.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ProcessInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_process.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/processes/{processId}'} # type: ignore + + def delete_instance_process( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web site. + + Description for Terminate a process by its ID for a web site, or a deployment slot, or specific + scaled-out instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_instance_process.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_instance_process.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/processes/{processId}'} # type: ignore + + def get_instance_process_dump( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> IO + """Get a memory dump of a process by its ID for a specific scaled-out instance in a web site. + + Description for Get a memory dump of a process by its ID for a specific scaled-out instance in + a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[IO] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_process_dump.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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=True, **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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_process_dump.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/processes/{processId}/dump'} # type: ignore + + def list_instance_process_modules( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ProcessModuleInfoCollection"] + """List module information for a process by its ID for a specific scaled-out instance in a web site. + + Description for List module information for a process by its ID for a specific scaled-out + instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :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 ProcessModuleInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessModuleInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_process_modules.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessModuleInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_instance_process_modules.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/processes/{processId}/modules'} # type: ignore + + def get_instance_process_module( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + base_address, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ProcessModuleInfo" + """Get process information by its ID for a specific scaled-out instance in a web site. + + Description for Get process information by its ID for a specific scaled-out instance in a web + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param base_address: Module base address. + :type base_address: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ProcessModuleInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessModuleInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_process_module.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'baseAddress': self._serialize.url("base_address", base_address, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ProcessModuleInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_process_module.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/processes/{processId}/modules/{baseAddress}'} # type: ignore + + def list_instance_process_threads( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ProcessThreadInfoCollection"] + """List the threads in a process by its ID for a specific scaled-out instance in a web site. + + Description for List the threads in a process by its ID for a specific scaled-out instance in a + web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :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 ProcessThreadInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessThreadInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessThreadInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_process_threads.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessThreadInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_instance_process_threads.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/processes/{processId}/threads'} # type: ignore + + def is_cloneable( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteCloneability" + """Shows whether an app can be cloned to another resource group or subscription. + + Description for Shows whether an app can be cloned to another resource group or subscription. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteCloneability, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteCloneability + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteCloneability"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.is_cloneable.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteCloneability', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + is_cloneable.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/iscloneable'} # type: ignore + + def list_site_backups( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.BackupItemCollection"] + """Gets existing backups of an app. + + Description for Gets existing backups of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either BackupItemCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.BackupItemCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItemCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_backups.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(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('BackupItemCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_site_backups.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/listbackups'} # type: ignore + + def list_sync_function_triggers( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.FunctionSecrets" + """This is to allow calling via powershell and ARM template. + + Description for This is to allow calling via powershell and ARM template. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: FunctionSecrets, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.FunctionSecrets + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionSecrets"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_sync_function_triggers.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('FunctionSecrets', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_sync_function_triggers.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/listsyncfunctiontriggerstatus'} # type: ignore + + def _migrate_storage_initial( + self, + subscription_name, # type: str + resource_group_name, # type: str + name, # type: str + migration_options, # type: "_models.StorageMigrationOptions" + **kwargs # type: Any + ): + # type: (...) -> "_models.StorageMigrationResponse" + cls = kwargs.pop('cls', None) # type: ClsType["_models.StorageMigrationResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._migrate_storage_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['subscriptionName'] = self._serialize.query("subscription_name", subscription_name, 'str') + 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(migration_options, 'StorageMigrationOptions') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StorageMigrationResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _migrate_storage_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/migrate'} # type: ignore + + def begin_migrate_storage( + self, + subscription_name, # type: str + resource_group_name, # type: str + name, # type: str + migration_options, # type: "_models.StorageMigrationOptions" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.StorageMigrationResponse"] + """Restores a web app. + + Description for Restores a web app. + + :param subscription_name: Azure subscription. + :type subscription_name: str + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param migration_options: Migration migrationOptions. + :type migration_options: ~azure.mgmt.web.v2021_01_15.models.StorageMigrationOptions + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 StorageMigrationResponse or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.StorageMigrationResponse] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.StorageMigrationResponse"] + 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._migrate_storage_initial( + subscription_name=subscription_name, + resource_group_name=resource_group_name, + name=name, + migration_options=migration_options, + 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('StorageMigrationResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_migrate_storage.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/migrate'} # type: ignore + + def _migrate_my_sql_initial( + self, + resource_group_name, # type: str + name, # type: str + migration_request_envelope, # type: "_models.MigrateMySqlRequest" + **kwargs # type: Any + ): + # type: (...) -> "_models.Operation" + cls = kwargs.pop('cls', None) # type: ClsType["_models.Operation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._migrate_my_sql_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(migration_request_envelope, 'MigrateMySqlRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Operation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _migrate_my_sql_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/migratemysql'} # type: ignore + + def begin_migrate_my_sql( + self, + resource_group_name, # type: str + name, # type: str + migration_request_envelope, # type: "_models.MigrateMySqlRequest" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.Operation"] + """Migrates a local (in-app) MySql database to a remote MySql database. + + Description for Migrates a local (in-app) MySql database to a remote MySql database. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param migration_request_envelope: MySql migration options. + :type migration_request_envelope: ~azure.mgmt.web.v2021_01_15.models.MigrateMySqlRequest + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 Operation or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.Operation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Operation"] + 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._migrate_my_sql_initial( + resource_group_name=resource_group_name, + name=name, + migration_request_envelope=migration_request_envelope, + 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('Operation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_migrate_my_sql.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/migratemysql'} # type: ignore + + def get_migrate_my_sql_status( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.MigrateMySqlStatus" + """Returns the status of MySql in app migration, if one is active, and whether or not MySql in app is enabled. + + Description for Returns the status of MySql in app migration, if one is active, and whether or + not MySql in app is enabled. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MigrateMySqlStatus, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MigrateMySqlStatus + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MigrateMySqlStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_migrate_my_sql_status.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MigrateMySqlStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_migrate_my_sql_status.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/migratemysql/status'} # type: ignore + + def get_swift_virtual_network_connection( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SwiftVirtualNetwork" + """Gets a Swift Virtual Network connection. + + Description for Gets a Swift Virtual Network connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SwiftVirtualNetwork, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SwiftVirtualNetwork"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_swift_virtual_network_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SwiftVirtualNetwork', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_swift_virtual_network_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkConfig/virtualNetwork'} # type: ignore + + def create_or_update_swift_virtual_network_connection_with_check( + self, + resource_group_name, # type: str + name, # type: str + connection_envelope, # type: "_models.SwiftVirtualNetwork" + **kwargs # type: Any + ): + # type: (...) -> "_models.SwiftVirtualNetwork" + """Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not + in use by another App Service Plan other than the one this App is in. + + Description for Integrates this Web App with a Virtual Network. This requires that 1) + "swiftSupported" is true when doing a GET against this resource, and 2) that the target Subnet + has already been delegated, and is not + in use by another App Service Plan other than the one this App is in. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param connection_envelope: Properties of the Virtual Network connection. See example. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SwiftVirtualNetwork, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SwiftVirtualNetwork"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_swift_virtual_network_connection_with_check.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'SwiftVirtualNetwork') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SwiftVirtualNetwork', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_swift_virtual_network_connection_with_check.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkConfig/virtualNetwork'} # type: ignore + + def delete_swift_virtual_network( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a Swift Virtual Network connection from an app (or deployment slot). + + Description for Deletes a Swift Virtual Network connection from an app (or deployment slot). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_swift_virtual_network.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_swift_virtual_network.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkConfig/virtualNetwork'} # type: ignore + + def update_swift_virtual_network_connection_with_check( + self, + resource_group_name, # type: str + name, # type: str + connection_envelope, # type: "_models.SwiftVirtualNetwork" + **kwargs # type: Any + ): + # type: (...) -> "_models.SwiftVirtualNetwork" + """Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not + in use by another App Service Plan other than the one this App is in. + + Description for Integrates this Web App with a Virtual Network. This requires that 1) + "swiftSupported" is true when doing a GET against this resource, and 2) that the target Subnet + has already been delegated, and is not + in use by another App Service Plan other than the one this App is in. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param connection_envelope: Properties of the Virtual Network connection. See example. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SwiftVirtualNetwork, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SwiftVirtualNetwork"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_swift_virtual_network_connection_with_check.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'SwiftVirtualNetwork') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SwiftVirtualNetwork', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_swift_virtual_network_connection_with_check.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkConfig/virtualNetwork'} # type: ignore + + def list_network_features( + self, + resource_group_name, # type: str + name, # type: str + view, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.NetworkFeatures" + """Gets all network features used by the app (or deployment slot, if specified). + + Description for Gets all network features used by the app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param view: The type of view. Only "summary" is supported at this time. + :type view: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkFeatures, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.NetworkFeatures + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.NetworkFeatures"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_network_features.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'view': self._serialize.url("view", view, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('NetworkFeatures', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_network_features.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkFeatures/{view}'} # type: ignore + + def get_network_trace_operation( + self, + resource_group_name, # type: str + name, # type: str + operation_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.NetworkTrace"] + """Gets a named operation for a network trace capturing (or deployment slot, if specified). + + Description for Gets a named operation for a network trace capturing (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param operation_id: GUID of the operation. + :type operation_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of NetworkTrace, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_network_trace_operation.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_network_trace_operation.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkTrace/operationresults/{operationId}'} # type: ignore + + def start_web_site_network_trace( + self, + resource_group_name, # type: str + name, # type: str + duration_in_seconds=None, # type: Optional[int] + max_frame_length=None, # type: Optional[int] + sas_url=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> str + """Start capturing network packets for the site (To be deprecated). + + Description for Start capturing network packets for the site (To be deprecated). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param duration_in_seconds: The duration to keep capturing in seconds. + :type duration_in_seconds: int + :param max_frame_length: The maximum frame length in bytes (Optional). + :type max_frame_length: int + :param sas_url: The Blob URL to store capture file. + :type sas_url: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: str, or the result of cls(response) + :rtype: str + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[str] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.start_web_site_network_trace.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if duration_in_seconds is not None: + query_parameters['durationInSeconds'] = self._serialize.query("duration_in_seconds", duration_in_seconds, 'int') + if max_frame_length is not None: + query_parameters['maxFrameLength'] = self._serialize.query("max_frame_length", max_frame_length, 'int') + if sas_url is not None: + query_parameters['sasUrl'] = self._serialize.query("sas_url", sas_url, 'str') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('str', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + start_web_site_network_trace.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkTrace/start'} # type: ignore + + def _start_web_site_network_trace_operation_initial( + self, + resource_group_name, # type: str + name, # type: str + duration_in_seconds=None, # type: Optional[int] + max_frame_length=None, # type: Optional[int] + sas_url=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> List["_models.NetworkTrace"] + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._start_web_site_network_trace_operation_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if duration_in_seconds is not None: + query_parameters['durationInSeconds'] = self._serialize.query("duration_in_seconds", duration_in_seconds, 'int') + if max_frame_length is not None: + query_parameters['maxFrameLength'] = self._serialize.query("max_frame_length", max_frame_length, 'int') + if sas_url is not None: + query_parameters['sasUrl'] = self._serialize.query("sas_url", sas_url, 'str') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _start_web_site_network_trace_operation_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkTrace/startOperation'} # type: ignore + + def begin_start_web_site_network_trace_operation( + self, + resource_group_name, # type: str + name, # type: str + duration_in_seconds=None, # type: Optional[int] + max_frame_length=None, # type: Optional[int] + sas_url=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> LROPoller[List["_models.NetworkTrace"]] + """Start capturing network packets for the site. + + Description for Start capturing network packets for the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param duration_in_seconds: The duration to keep capturing in seconds. + :type duration_in_seconds: int + :param max_frame_length: The maximum frame length in bytes (Optional). + :type max_frame_length: int + :param sas_url: The Blob URL to store capture file. + :type sas_url: 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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 list of NetworkTrace or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace]] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + 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._start_web_site_network_trace_operation_initial( + resource_group_name=resource_group_name, + name=name, + duration_in_seconds=duration_in_seconds, + max_frame_length=max_frame_length, + sas_url=sas_url, + 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('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_start_web_site_network_trace_operation.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkTrace/startOperation'} # type: ignore + + def stop_web_site_network_trace( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Stop ongoing capturing network packets for the site. + + Description for Stop ongoing capturing network packets for the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.stop_web_site_network_trace.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + stop_web_site_network_trace.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkTrace/stop'} # type: ignore + + def get_network_traces( + self, + resource_group_name, # type: str + name, # type: str + operation_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.NetworkTrace"] + """Gets a named operation for a network trace capturing (or deployment slot, if specified). + + Description for Gets a named operation for a network trace capturing (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param operation_id: GUID of the operation. + :type operation_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of NetworkTrace, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_network_traces.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_network_traces.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkTrace/{operationId}'} # type: ignore + + def get_network_trace_operation_v2( + self, + resource_group_name, # type: str + name, # type: str + operation_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.NetworkTrace"] + """Gets a named operation for a network trace capturing (or deployment slot, if specified). + + Description for Gets a named operation for a network trace capturing (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param operation_id: GUID of the operation. + :type operation_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of NetworkTrace, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_network_trace_operation_v2.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_network_trace_operation_v2.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkTraces/current/operationresults/{operationId}'} # type: ignore + + def get_network_traces_v2( + self, + resource_group_name, # type: str + name, # type: str + operation_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.NetworkTrace"] + """Gets a named operation for a network trace capturing (or deployment slot, if specified). + + Description for Gets a named operation for a network trace capturing (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param operation_id: GUID of the operation. + :type operation_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of NetworkTrace, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_network_traces_v2.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_network_traces_v2.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkTraces/{operationId}'} # type: ignore + + def generate_new_site_publishing_password( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Generates a new publishing password for an app (or deployment slot, if specified). + + Description for Generates a new publishing password for an app (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.generate_new_site_publishing_password.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + generate_new_site_publishing_password.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/newpassword'} # type: ignore + + def list_perf_mon_counters( + self, + resource_group_name, # type: str + name, # type: str + filter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.PerfMonCounterCollection"] + """Gets perfmon counters for web app. + + Description for Gets perfmon counters for web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param filter: Return only usages/metrics specified in the filter. Filter conforms to odata + syntax. Example: $filter=(startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z + and timeGrain eq duration'[Hour|Minute|Day]'. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PerfMonCounterCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.PerfMonCounterCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PerfMonCounterCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_perf_mon_counters.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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 filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('PerfMonCounterCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_perf_mon_counters.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/perfcounters'} # type: ignore + + def get_site_php_error_log_flag( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SitePhpErrorLogFlag" + """Gets web app's event logs. + + Description for Gets web app's event logs. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SitePhpErrorLogFlag, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SitePhpErrorLogFlag + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SitePhpErrorLogFlag"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_php_error_log_flag.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SitePhpErrorLogFlag', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_php_error_log_flag.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/phplogging'} # type: ignore + + def list_premier_add_ons( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PremierAddOn" + """Gets the premier add-ons of an app. + + Description for Gets the premier add-ons of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PremierAddOn, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOn"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_premier_add_ons.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PremierAddOn', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_premier_add_ons.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/premieraddons'} # type: ignore + + def get_premier_add_on( + self, + resource_group_name, # type: str + name, # type: str + premier_add_on_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PremierAddOn" + """Gets a named add-on of an app. + + Description for Gets a named add-on of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param premier_add_on_name: Add-on name. + :type premier_add_on_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PremierAddOn, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOn"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_premier_add_on.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'premierAddOnName': self._serialize.url("premier_add_on_name", premier_add_on_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PremierAddOn', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_premier_add_on.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/premieraddons/{premierAddOnName}'} # type: ignore + + def add_premier_add_on( + self, + resource_group_name, # type: str + name, # type: str + premier_add_on_name, # type: str + premier_add_on, # type: "_models.PremierAddOn" + **kwargs # type: Any + ): + # type: (...) -> "_models.PremierAddOn" + """Updates a named add-on of an app. + + Description for Updates a named add-on of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param premier_add_on_name: Add-on name. + :type premier_add_on_name: str + :param premier_add_on: A JSON representation of the edited premier add-on. + :type premier_add_on: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PremierAddOn, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOn"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.add_premier_add_on.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'premierAddOnName': self._serialize.url("premier_add_on_name", premier_add_on_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(premier_add_on, 'PremierAddOn') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PremierAddOn', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + add_premier_add_on.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/premieraddons/{premierAddOnName}'} # type: ignore + + def delete_premier_add_on( + self, + resource_group_name, # type: str + name, # type: str + premier_add_on_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a premier add-on from an app. + + Description for Delete a premier add-on from an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param premier_add_on_name: Add-on name. + :type premier_add_on_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_premier_add_on.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'premierAddOnName': self._serialize.url("premier_add_on_name", premier_add_on_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_premier_add_on.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/premieraddons/{premierAddOnName}'} # type: ignore + + def update_premier_add_on( + self, + resource_group_name, # type: str + name, # type: str + premier_add_on_name, # type: str + premier_add_on, # type: "_models.PremierAddOnPatchResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.PremierAddOn" + """Updates a named add-on of an app. + + Description for Updates a named add-on of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param premier_add_on_name: Add-on name. + :type premier_add_on_name: str + :param premier_add_on: A JSON representation of the edited premier add-on. + :type premier_add_on: ~azure.mgmt.web.v2021_01_15.models.PremierAddOnPatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PremierAddOn, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOn"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_premier_add_on.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'premierAddOnName': self._serialize.url("premier_add_on_name", premier_add_on_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(premier_add_on, 'PremierAddOnPatchResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PremierAddOn', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_premier_add_on.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/premieraddons/{premierAddOnName}'} # type: ignore + + def get_private_access( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PrivateAccess" + """Gets data around private site access enablement and authorized Virtual Networks that can access the site. + + Description for Gets data around private site access enablement and authorized Virtual Networks + that can access the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateAccess, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PrivateAccess + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateAccess"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_access.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateAccess', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_access.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateAccess/virtualNetworks'} # type: ignore + + def put_private_access_vnet( + self, + resource_group_name, # type: str + name, # type: str + access, # type: "_models.PrivateAccess" + **kwargs # type: Any + ): + # type: (...) -> "_models.PrivateAccess" + """Sets data around private site access enablement and authorized Virtual Networks that can access the site. + + Description for Sets data around private site access enablement and authorized Virtual Networks + that can access the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param access: The information for the private access. + :type access: ~azure.mgmt.web.v2021_01_15.models.PrivateAccess + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateAccess, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PrivateAccess + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateAccess"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.put_private_access_vnet.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(access, 'PrivateAccess') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateAccess', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + put_private_access_vnet.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateAccess/virtualNetworks'} # type: ignore + + def get_private_endpoint_connection_list( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.PrivateEndpointConnectionCollection"] + """Gets the list of private endpoint connections associated with a site. + + Description for Gets the list of private endpoint connections associated with a site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PrivateEndpointConnectionCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.PrivateEndpointConnectionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_private_endpoint_connection_list.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PrivateEndpointConnectionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_private_endpoint_connection_list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateEndpointConnections'} # type: ignore + + def get_private_endpoint_connection( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.RemotePrivateEndpointConnectionARMResource" + """Gets a private endpoint connection. + + Description for Gets a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :param private_endpoint_connection_name: Name of the private endpoint connection. + :type private_endpoint_connection_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RemotePrivateEndpointConnectionARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_endpoint_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def _approve_or_reject_private_endpoint_connection_initial( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + private_endpoint_wrapper, # type: "_models.PrivateLinkConnectionApprovalRequestResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.RemotePrivateEndpointConnectionARMResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._approve_or_reject_private_endpoint_connection_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(private_endpoint_wrapper, 'PrivateLinkConnectionApprovalRequestResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _approve_or_reject_private_endpoint_connection_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def begin_approve_or_reject_private_endpoint_connection( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + private_endpoint_wrapper, # type: "_models.PrivateLinkConnectionApprovalRequestResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.RemotePrivateEndpointConnectionARMResource"] + """Approves or rejects a private endpoint connection. + + Description for Approves or rejects a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :param private_endpoint_connection_name: + :type private_endpoint_connection_name: str + :param private_endpoint_wrapper: + :type private_endpoint_wrapper: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkConnectionApprovalRequestResource + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 RemotePrivateEndpointConnectionARMResource or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + 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._approve_or_reject_private_endpoint_connection_initial( + resource_group_name=resource_group_name, + name=name, + private_endpoint_connection_name=private_endpoint_connection_name, + private_endpoint_wrapper=private_endpoint_wrapper, + 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('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_approve_or_reject_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def _delete_private_endpoint_connection_initial( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Any + cls = kwargs.pop('cls', None) # type: ClsType[Any] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_private_endpoint_connection_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('object', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('object', pipeline_response) + + if response.status_code == 204: + deserialized = self._deserialize('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _delete_private_endpoint_connection_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def begin_delete_private_endpoint_connection( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[Any] + """Deletes a private endpoint connection. + + Description for Deletes a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :param private_endpoint_connection_name: + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 any or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[any] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[Any] + 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_private_endpoint_connection_initial( + resource_group_name=resource_group_name, + name=name, + private_endpoint_connection_name=private_endpoint_connection_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('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete_private_endpoint_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def get_private_link_resources( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PrivateLinkResourcesWrapper" + """Gets the private link resources. + + Description for Gets the private link resources. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateLinkResourcesWrapper, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkResourcesWrapper + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourcesWrapper"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_link_resources.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateLinkResourcesWrapper', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_link_resources.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/privateLinkResources'} # type: ignore + + def list_processes( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ProcessInfoCollection"] + """Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site. + + Description for Get list of processes for a web site, or a deployment slot, or for a specific + scaled-out instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ProcessInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_processes.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_processes.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/processes'} # type: ignore + + def get_process( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ProcessInfo" + """Get process information by its ID for a specific scaled-out instance in a web site. + + Description for Get process information by its ID for a specific scaled-out instance in a web + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ProcessInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ProcessInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_process.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ProcessInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_process.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/processes/{processId}'} # type: ignore + + def delete_process( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web site. + + Description for Terminate a process by its ID for a web site, or a deployment slot, or specific + scaled-out instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_process.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_process.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/processes/{processId}'} # type: ignore + + def get_process_dump( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> IO + """Get a memory dump of a process by its ID for a specific scaled-out instance in a web site. + + Description for Get a memory dump of a process by its ID for a specific scaled-out instance in + a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[IO] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_process_dump.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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=True, **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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_process_dump.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/processes/{processId}/dump'} # type: ignore + + def list_process_modules( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ProcessModuleInfoCollection"] + """List module information for a process by its ID for a specific scaled-out instance in a web site. + + Description for List module information for a process by its ID for a specific scaled-out + instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ProcessModuleInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessModuleInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_process_modules.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessModuleInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_process_modules.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/processes/{processId}/modules'} # type: ignore + + def get_process_module( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + base_address, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ProcessModuleInfo" + """Get process information by its ID for a specific scaled-out instance in a web site. + + Description for Get process information by its ID for a specific scaled-out instance in a web + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param base_address: Module base address. + :type base_address: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ProcessModuleInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessModuleInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_process_module.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'baseAddress': self._serialize.url("base_address", base_address, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ProcessModuleInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_process_module.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/processes/{processId}/modules/{baseAddress}'} # type: ignore + + def list_process_threads( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ProcessThreadInfoCollection"] + """List the threads in a process by its ID for a specific scaled-out instance in a web site. + + Description for List the threads in a process by its ID for a specific scaled-out instance in a + web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ProcessThreadInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessThreadInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessThreadInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_process_threads.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessThreadInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_process_threads.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/processes/{processId}/threads'} # type: ignore + + def list_public_certificates( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.PublicCertificateCollection"] + """Get public certificates for an app or a deployment slot. + + Description for Get public certificates for an app or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PublicCertificateCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.PublicCertificateCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PublicCertificateCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_public_certificates.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PublicCertificateCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_public_certificates.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/publicCertificates'} # type: ignore + + def get_public_certificate( + self, + resource_group_name, # type: str + name, # type: str + public_certificate_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PublicCertificate" + """Get the named public certificate for an app (or deployment slot, if specified). + + Description for Get the named public certificate for an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param public_certificate_name: Public certificate name. + :type public_certificate_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PublicCertificate, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PublicCertificate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PublicCertificate"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_public_certificate.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'publicCertificateName': self._serialize.url("public_certificate_name", public_certificate_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PublicCertificate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_public_certificate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/publicCertificates/{publicCertificateName}'} # type: ignore + + def create_or_update_public_certificate( + self, + resource_group_name, # type: str + name, # type: str + public_certificate_name, # type: str + public_certificate, # type: "_models.PublicCertificate" + **kwargs # type: Any + ): + # type: (...) -> "_models.PublicCertificate" + """Creates a hostname binding for an app. + + Description for Creates a hostname binding for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param public_certificate_name: Public certificate name. + :type public_certificate_name: str + :param public_certificate: Public certificate details. This is the JSON representation of a + PublicCertificate object. + :type public_certificate: ~azure.mgmt.web.v2021_01_15.models.PublicCertificate + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PublicCertificate, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PublicCertificate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PublicCertificate"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_public_certificate.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'publicCertificateName': self._serialize.url("public_certificate_name", public_certificate_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(public_certificate, 'PublicCertificate') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PublicCertificate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_public_certificate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/publicCertificates/{publicCertificateName}'} # type: ignore + + def delete_public_certificate( + self, + resource_group_name, # type: str + name, # type: str + public_certificate_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a hostname binding for an app. + + Description for Deletes a hostname binding for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param public_certificate_name: Public certificate name. + :type public_certificate_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_public_certificate.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'publicCertificateName': self._serialize.url("public_certificate_name", public_certificate_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_public_certificate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/publicCertificates/{publicCertificateName}'} # type: ignore + + def list_publishing_profile_xml_with_secrets( + self, + resource_group_name, # type: str + name, # type: str + publishing_profile_options, # type: "_models.CsmPublishingProfileOptions" + **kwargs # type: Any + ): + # type: (...) -> IO + """Gets the publishing profile for an app (or deployment slot, if specified). + + Description for Gets the publishing profile for an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param publishing_profile_options: Specifies publishingProfileOptions for publishing profile. + For example, use {"format": "FileZilla3"} to get a FileZilla publishing profile. + :type publishing_profile_options: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingProfileOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[IO] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/xml" + + # Construct URL + url = self.list_publishing_profile_xml_with_secrets.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(publishing_profile_options, 'CsmPublishingProfileOptions') + 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=True, **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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_publishing_profile_xml_with_secrets.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/publishxml'} # type: ignore + + def reset_production_slot_config( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Resets the configuration settings of the current slot if they were previously modified by calling the API with POST. + + Description for Resets the configuration settings of the current slot if they were previously + modified by calling the API with POST. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.reset_production_slot_config.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reset_production_slot_config.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/resetSlotConfig'} # type: ignore + + def restart( + self, + resource_group_name, # type: str + name, # type: str + soft_restart=None, # type: Optional[bool] + synchronous=None, # type: Optional[bool] + **kwargs # type: Any + ): + # type: (...) -> None + """Restarts an app (or deployment slot, if specified). + + Description for Restarts an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param soft_restart: Specify true to apply the configuration settings and restarts the app only + if necessary. By default, the API always restarts and reprovisions the app. + :type soft_restart: bool + :param synchronous: Specify true to block until the app is restarted. By default, it is set to + false, and the API responds immediately (asynchronous). + :type synchronous: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.restart.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if soft_restart is not None: + query_parameters['softRestart'] = self._serialize.query("soft_restart", soft_restart, 'bool') + if synchronous is not None: + query_parameters['synchronous'] = self._serialize.query("synchronous", synchronous, 'bool') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + restart.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restart'} # type: ignore + + def _restore_from_backup_blob_initial( + self, + resource_group_name, # type: str + name, # type: str + request, # type: "_models.RestoreRequest" + **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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._restore_from_backup_blob_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'RestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _restore_from_backup_blob_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restoreFromBackupBlob'} # type: ignore + + def begin_restore_from_backup_blob( + self, + resource_group_name, # type: str + name, # type: str + request, # type: "_models.RestoreRequest" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Restores an app from a backup blob in Azure Storage. + + Description for Restores an app from a backup blob in Azure Storage. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param request: Information on restore request . + :type request: ~azure.mgmt.web.v2021_01_15.models.RestoreRequest + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._restore_from_backup_blob_initial( + resource_group_name=resource_group_name, + name=name, + request=request, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_restore_from_backup_blob.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restoreFromBackupBlob'} # type: ignore + + def _restore_from_deleted_app_initial( + self, + resource_group_name, # type: str + name, # type: str + restore_request, # type: "_models.DeletedAppRestoreRequest" + **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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._restore_from_deleted_app_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(restore_request, 'DeletedAppRestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _restore_from_deleted_app_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restoreFromDeletedApp'} # type: ignore + + def begin_restore_from_deleted_app( + self, + resource_group_name, # type: str + name, # type: str + restore_request, # type: "_models.DeletedAppRestoreRequest" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Restores a deleted web app to this web app. + + Description for Restores a deleted web app to this web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param restore_request: Deleted web app restore information. + :type restore_request: ~azure.mgmt.web.v2021_01_15.models.DeletedAppRestoreRequest + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._restore_from_deleted_app_initial( + resource_group_name=resource_group_name, + name=name, + restore_request=restore_request, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_restore_from_deleted_app.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restoreFromDeletedApp'} # type: ignore + + def _restore_snapshot_initial( + self, + resource_group_name, # type: str + name, # type: str + restore_request, # type: "_models.SnapshotRestoreRequest" + **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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._restore_snapshot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(restore_request, 'SnapshotRestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _restore_snapshot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restoreSnapshot'} # type: ignore + + def begin_restore_snapshot( + self, + resource_group_name, # type: str + name, # type: str + restore_request, # type: "_models.SnapshotRestoreRequest" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Restores a web app from a snapshot. + + Description for Restores a web app from a snapshot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param restore_request: Snapshot restore settings. Snapshot information can be obtained by + calling GetDeletedSites or GetSiteSnapshots API. + :type restore_request: ~azure.mgmt.web.v2021_01_15.models.SnapshotRestoreRequest + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._restore_snapshot_initial( + resource_group_name=resource_group_name, + name=name, + restore_request=restore_request, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_restore_snapshot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restoreSnapshot'} # type: ignore + + def list_site_extensions( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.SiteExtensionInfoCollection"] + """Get list of siteextensions for a web site, or a deployment slot. + + Description for Get list of siteextensions for a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SiteExtensionInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.SiteExtensionInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteExtensionInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_extensions.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SiteExtensionInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_site_extensions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/siteextensions'} # type: ignore + + def get_site_extension( + self, + resource_group_name, # type: str + name, # type: str + site_extension_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteExtensionInfo" + """Get site extension information by its ID for a web site, or a deployment slot. + + Description for Get site extension information by its ID for a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param site_extension_id: Site extension name. + :type site_extension_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteExtensionInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteExtensionInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteExtensionInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_extension.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'siteExtensionId': self._serialize.url("site_extension_id", site_extension_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteExtensionInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_extension.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/siteextensions/{siteExtensionId}'} # type: ignore + + def _install_site_extension_initial( + self, + resource_group_name, # type: str + name, # type: str + site_extension_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteExtensionInfo" + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteExtensionInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._install_site_extension_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'siteExtensionId': self._serialize.url("site_extension_id", site_extension_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.put(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, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('SiteExtensionInfo', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('SiteExtensionInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _install_site_extension_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/siteextensions/{siteExtensionId}'} # type: ignore + + def begin_install_site_extension( + self, + resource_group_name, # type: str + name, # type: str + site_extension_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.SiteExtensionInfo"] + """Install site extension on a web site, or a deployment slot. + + Description for Install site extension on a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param site_extension_id: Site extension name. + :type site_extension_id: 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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 SiteExtensionInfo or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.SiteExtensionInfo] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteExtensionInfo"] + 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._install_site_extension_initial( + resource_group_name=resource_group_name, + name=name, + site_extension_id=site_extension_id, + 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('SiteExtensionInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'siteExtensionId': self._serialize.url("site_extension_id", site_extension_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_install_site_extension.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/siteextensions/{siteExtensionId}'} # type: ignore + + def delete_site_extension( + self, + resource_group_name, # type: str + name, # type: str + site_extension_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Remove a site extension from a web site, or a deployment slot. + + Description for Remove a site extension from a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param site_extension_id: Site extension name. + :type site_extension_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_site_extension.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'siteExtensionId': self._serialize.url("site_extension_id", site_extension_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_site_extension.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/siteextensions/{siteExtensionId}'} # type: ignore + + def list_slots( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.WebAppCollection"] + """Gets an app's deployment slots. + + Description for Gets an app's deployment slots. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_slots.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('WebAppCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_slots.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots'} # type: ignore + + def get_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.Site" + """Gets the details of a web, mobile, or API app. + + Description for Gets the details of a web, mobile, or API app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. By default, this API returns the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Site, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Site + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Site"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Site', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}'} # type: ignore + + def _create_or_update_slot_initial( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + site_envelope, # type: "_models.Site" + **kwargs # type: Any + ): + # type: (...) -> "_models.Site" + cls = kwargs.pop('cls', None) # type: ClsType["_models.Site"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_envelope, 'Site') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('Site', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('Site', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}'} # type: ignore + + def begin_create_or_update_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + site_envelope, # type: "_models.Site" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.Site"] + """Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. + + Description for Creates a new web, mobile, or API app in an existing resource group, or updates + an existing app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Unique name of the app to create or update. To create or update a deployment slot, + use the {slot} parameter. + :type name: str + :param slot: Name of the deployment slot to create or update. By default, this API attempts to + create or modify the production slot. + :type slot: str + :param site_envelope: A JSON representation of the app properties. See example. + :type site_envelope: ~azure.mgmt.web.v2021_01_15.models.Site + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 Site or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.Site] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.Site"] + 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_or_update_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + site_envelope=site_envelope, + 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('Site', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}'} # type: ignore + + def delete_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + delete_metrics=None, # type: Optional[bool] + delete_empty_server_farm=None, # type: Optional[bool] + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a web, mobile, or API app, or one of the deployment slots. + + Description for Deletes a web, mobile, or API app, or one of the deployment slots. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app to delete. + :type name: str + :param slot: Name of the deployment slot to delete. By default, the API deletes the production + slot. + :type slot: str + :param delete_metrics: If true, web app metrics are also deleted. + :type delete_metrics: bool + :param delete_empty_server_farm: Specify false if you want to keep empty App Service plan. By + default, empty App Service plan is deleted. + :type delete_empty_server_farm: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if delete_metrics is not None: + query_parameters['deleteMetrics'] = self._serialize.query("delete_metrics", delete_metrics, 'bool') + if delete_empty_server_farm is not None: + query_parameters['deleteEmptyServerFarm'] = self._serialize.query("delete_empty_server_farm", delete_empty_server_farm, 'bool') + 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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}'} # type: ignore + + def update_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + site_envelope, # type: "_models.SitePatchResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.Site" + """Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. + + Description for Creates a new web, mobile, or API app in an existing resource group, or updates + an existing app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Unique name of the app to create or update. To create or update a deployment slot, + use the {slot} parameter. + :type name: str + :param slot: Name of the deployment slot to create or update. By default, this API attempts to + create or modify the production slot. + :type slot: str + :param site_envelope: A JSON representation of the app properties. See example. + :type site_envelope: ~azure.mgmt.web.v2021_01_15.models.SitePatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Site, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Site + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Site"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_envelope, 'SitePatchResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('Site', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('Site', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}'} # type: ignore + + def analyze_custom_hostname_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + host_name=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "_models.CustomHostnameAnalysisResult" + """Analyze a custom hostname. + + Description for Analyze a custom hostname. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param host_name: Custom hostname. + :type host_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CustomHostnameAnalysisResult, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CustomHostnameAnalysisResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CustomHostnameAnalysisResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.analyze_custom_hostname_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if host_name is not None: + query_parameters['hostName'] = self._serialize.query("host_name", host_name, 'str') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CustomHostnameAnalysisResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + analyze_custom_hostname_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/analyzeCustomHostname'} # type: ignore + + def apply_slot_configuration_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + slot_swap_entity, # type: "_models.CsmSlotEntity" + **kwargs # type: Any + ): + # type: (...) -> None + """Applies the configuration settings from the target slot onto the current slot. + + Description for Applies the configuration settings from the target slot onto the current slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the source slot. If a slot is not specified, the production slot is used + as the source slot. + :type slot: str + :param slot_swap_entity: JSON object that contains the target slot name. See example. + :type slot_swap_entity: ~azure.mgmt.web.v2021_01_15.models.CsmSlotEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.apply_slot_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(slot_swap_entity, 'CsmSlotEntity') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + apply_slot_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/applySlotConfig'} # type: ignore + + def backup_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + request, # type: "_models.BackupRequest" + **kwargs # type: Any + ): + # type: (...) -> "_models.BackupItem" + """Creates a backup of an app. + + Description for Creates a backup of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will create a + backup for the production slot. + :type slot: str + :param request: Backup configuration. You can use the JSON response from the POST action as + input here. + :type request: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupItem, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupItem + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItem"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.backup_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'BackupRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupItem', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + backup_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/backup'} # type: ignore + + def list_backups_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.BackupItemCollection"] + """Gets existing backups of an app. + + Description for Gets existing backups of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get backups + of the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either BackupItemCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.BackupItemCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItemCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('BackupItemCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_backups_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/backups'} # type: ignore + + def get_backup_status_slot( + self, + resource_group_name, # type: str + name, # type: str + backup_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.BackupItem" + """Gets a backup of an app by its ID. + + Description for Gets a backup of an app by its ID. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param backup_id: ID of the backup. + :type backup_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get a backup + of the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupItem, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupItem + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItem"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_backup_status_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupItem', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_backup_status_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/backups/{backupId}'} # type: ignore + + def delete_backup_slot( + self, + resource_group_name, # type: str + name, # type: str + backup_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a backup of an app by its ID. + + Description for Deletes a backup of an app by its ID. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param backup_id: ID of the backup. + :type backup_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete a + backup of the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_backup_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_backup_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/backups/{backupId}'} # type: ignore + + def list_backup_status_secrets_slot( + self, + resource_group_name, # type: str + name, # type: str + backup_id, # type: str + slot, # type: str + request, # type: "_models.BackupRequest" + **kwargs # type: Any + ): + # type: (...) -> "_models.BackupItem" + """Gets status of a web app backup that may be in progress, including secrets associated with the backup, such as the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is passed in the request body. + + Description for Gets status of a web app backup that may be in progress, including secrets + associated with the backup, such as the Azure Storage SAS URL. Also can be used to update the + SAS URL for the backup if a new URL is passed in the request body. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param backup_id: ID of backup. + :type backup_id: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param request: Information on backup request. + :type request: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupItem, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupItem + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItem"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.list_backup_status_secrets_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'BackupRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupItem', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_backup_status_secrets_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/backups/{backupId}/list'} # type: ignore + + def _restore_slot_initial( + self, + resource_group_name, # type: str + name, # type: str + backup_id, # type: str + slot, # type: str + request, # type: "_models.RestoreRequest" + **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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._restore_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'RestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _restore_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/backups/{backupId}/restore'} # type: ignore + + def begin_restore_slot( + self, + resource_group_name, # type: str + name, # type: str + backup_id, # type: str + slot, # type: str + request, # type: "_models.RestoreRequest" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Restores a specific backup to another app (or deployment slot, if specified). + + Description for Restores a specific backup to another app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param backup_id: ID of the backup. + :type backup_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will restore a + backup of the production slot. + :type slot: str + :param request: Information on restore request . + :type request: ~azure.mgmt.web.v2021_01_15.models.RestoreRequest + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._restore_slot_initial( + resource_group_name=resource_group_name, + name=name, + backup_id=backup_id, + slot=slot, + request=request, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_restore_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/backups/{backupId}/restore'} # type: ignore + + def list_basic_publishing_credentials_policies_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.PublishingCredentialsPoliciesCollection"] + """Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site. + + Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a + given site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PublishingCredentialsPoliciesCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.PublishingCredentialsPoliciesCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PublishingCredentialsPoliciesCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_basic_publishing_credentials_policies_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PublishingCredentialsPoliciesCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_basic_publishing_credentials_policies_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/basicPublishingCredentialsPolicies'} # type: ignore + + def get_ftp_allowed_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.CsmPublishingCredentialsPoliciesEntity" + """Returns whether FTP is allowed on the site or not. + + Description for Returns whether FTP is allowed on the site or not. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CsmPublishingCredentialsPoliciesEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmPublishingCredentialsPoliciesEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_ftp_allowed_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CsmPublishingCredentialsPoliciesEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_ftp_allowed_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/basicPublishingCredentialsPolicies/ftp'} # type: ignore + + def update_ftp_allowed_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + csm_publishing_access_policies_entity, # type: "_models.CsmPublishingCredentialsPoliciesEntity" + **kwargs # type: Any + ): + # type: (...) -> "_models.CsmPublishingCredentialsPoliciesEntity" + """Updates whether FTP is allowed on the site or not. + + Description for Updates whether FTP is allowed on the site or not. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: + :type slot: str + :param csm_publishing_access_policies_entity: + :type csm_publishing_access_policies_entity: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CsmPublishingCredentialsPoliciesEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmPublishingCredentialsPoliciesEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_ftp_allowed_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(csm_publishing_access_policies_entity, 'CsmPublishingCredentialsPoliciesEntity') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CsmPublishingCredentialsPoliciesEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_ftp_allowed_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/basicPublishingCredentialsPolicies/ftp'} # type: ignore + + def get_scm_allowed_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.CsmPublishingCredentialsPoliciesEntity" + """Returns whether Scm basic auth is allowed on the site or not. + + Description for Returns whether Scm basic auth is allowed on the site or not. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CsmPublishingCredentialsPoliciesEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmPublishingCredentialsPoliciesEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_scm_allowed_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CsmPublishingCredentialsPoliciesEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_scm_allowed_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/basicPublishingCredentialsPolicies/scm'} # type: ignore + + def update_scm_allowed_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + csm_publishing_access_policies_entity, # type: "_models.CsmPublishingCredentialsPoliciesEntity" + **kwargs # type: Any + ): + # type: (...) -> "_models.CsmPublishingCredentialsPoliciesEntity" + """Updates whether user publishing credentials are allowed on the site or not. + + Description for Updates whether user publishing credentials are allowed on the site or not. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: + :type slot: str + :param csm_publishing_access_policies_entity: + :type csm_publishing_access_policies_entity: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CsmPublishingCredentialsPoliciesEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingCredentialsPoliciesEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmPublishingCredentialsPoliciesEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_scm_allowed_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(csm_publishing_access_policies_entity, 'CsmPublishingCredentialsPoliciesEntity') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CsmPublishingCredentialsPoliciesEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_scm_allowed_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/basicPublishingCredentialsPolicies/scm'} # type: ignore + + def list_configurations_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.SiteConfigResourceCollection"] + """List the configurations of an app. + + Description for List the configurations of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will return + configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SiteConfigResourceCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.SiteConfigResourceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResourceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_configurations_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SiteConfigResourceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_configurations_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config'} # type: ignore + + def update_application_settings_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + app_settings, # type: "_models.StringDictionary" + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Replaces the application settings of an app. + + Description for Replaces the application settings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + application settings for the production slot. + :type slot: str + :param app_settings: Application settings of the app. + :type app_settings: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_application_settings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(app_settings, 'StringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_application_settings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/appsettings'} # type: ignore + + def list_application_settings_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Gets the application settings of an app. + + Description for Gets the application settings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + application settings for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_application_settings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_application_settings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/appsettings/list'} # type: ignore + + def update_auth_settings_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + site_auth_settings, # type: "_models.SiteAuthSettings" + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteAuthSettings" + """Updates the Authentication / Authorization settings associated with web app. + + Description for Updates the Authentication / Authorization settings associated with web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param site_auth_settings: Auth settings associated with web app. + :type site_auth_settings: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettings + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteAuthSettings, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettings + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteAuthSettings"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_auth_settings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_auth_settings, 'SiteAuthSettings') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteAuthSettings', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_auth_settings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/authsettings'} # type: ignore + + def get_auth_settings_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteAuthSettings" + """Gets the Authentication/Authorization settings of an app. + + Description for Gets the Authentication/Authorization settings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + settings for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteAuthSettings, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettings + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteAuthSettings"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_auth_settings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteAuthSettings', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_auth_settings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/authsettings/list'} # type: ignore + + def update_auth_settings_v2_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + site_auth_settings_v2, # type: "_models.SiteAuthSettingsV2" + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteAuthSettingsV2" + """Updates site's Authentication / Authorization settings for apps via the V2 format. + + Description for Updates site's Authentication / Authorization settings for apps via the V2 + format. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param site_auth_settings_v2: Auth settings associated with web app. + :type site_auth_settings_v2: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettingsV2 + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteAuthSettingsV2, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettingsV2 + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteAuthSettingsV2"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_auth_settings_v2_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_auth_settings_v2, 'SiteAuthSettingsV2') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteAuthSettingsV2', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_auth_settings_v2_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/authsettingsV2'} # type: ignore + + def get_auth_settings_v2_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteAuthSettingsV2" + """Gets site's Authentication / Authorization settings for apps via the V2 format. + + Description for Gets site's Authentication / Authorization settings for apps via the V2 format. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + settings for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteAuthSettingsV2, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteAuthSettingsV2 + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteAuthSettingsV2"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_auth_settings_v2_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteAuthSettingsV2', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_auth_settings_v2_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/authsettingsV2/list'} # type: ignore + + def update_azure_storage_accounts_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + azure_storage_accounts, # type: "_models.AzureStoragePropertyDictionaryResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.AzureStoragePropertyDictionaryResource" + """Updates the Azure storage account configurations of an app. + + Description for Updates the Azure storage account configurations of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + Azure storage account configurations for the production slot. + :type slot: str + :param azure_storage_accounts: Azure storage accounts of the app. + :type azure_storage_accounts: ~azure.mgmt.web.v2021_01_15.models.AzureStoragePropertyDictionaryResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AzureStoragePropertyDictionaryResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AzureStoragePropertyDictionaryResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AzureStoragePropertyDictionaryResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_azure_storage_accounts_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(azure_storage_accounts, 'AzureStoragePropertyDictionaryResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AzureStoragePropertyDictionaryResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_azure_storage_accounts_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/azurestorageaccounts'} # type: ignore + + def list_azure_storage_accounts_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.AzureStoragePropertyDictionaryResource" + """Gets the Azure storage account configurations of an app. + + Description for Gets the Azure storage account configurations of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + Azure storage account configurations for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AzureStoragePropertyDictionaryResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AzureStoragePropertyDictionaryResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AzureStoragePropertyDictionaryResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_azure_storage_accounts_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AzureStoragePropertyDictionaryResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_azure_storage_accounts_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/azurestorageaccounts/list'} # type: ignore + + def update_backup_configuration_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + request, # type: "_models.BackupRequest" + **kwargs # type: Any + ): + # type: (...) -> "_models.BackupRequest" + """Updates the backup configuration of an app. + + Description for Updates the backup configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + backup configuration for the production slot. + :type slot: str + :param request: Edited backup configuration. + :type request: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupRequest, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupRequest"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_backup_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'BackupRequest') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupRequest', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_backup_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/backup'} # type: ignore + + def delete_backup_configuration_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes the backup configuration of an app. + + Description for Deletes the backup configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + backup configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_backup_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_backup_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/backup'} # type: ignore + + def get_backup_configuration_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.BackupRequest" + """Gets the backup configuration of an app. + + Description for Gets the backup configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + backup configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupRequest, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.BackupRequest + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupRequest"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_backup_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupRequest', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_backup_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/backup/list'} # type: ignore + + def get_app_settings_key_vault_references_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ApiKVReferenceCollection"] + """Gets the config reference app settings and status of an app. + + Description for Gets the config reference app settings and status of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ApiKVReferenceCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ApiKVReferenceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApiKVReferenceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_app_settings_key_vault_references_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ApiKVReferenceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_app_settings_key_vault_references_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/configreferences/appsettings'} # type: ignore + + def get_app_setting_key_vault_reference_slot( + self, + resource_group_name, # type: str + name, # type: str + app_setting_key, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ApiKVReference" + """Gets the config reference and status of an app. + + Description for Gets the config reference and status of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param app_setting_key: App Setting key name. + :type app_setting_key: str + :param slot: + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ApiKVReference, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ApiKVReference + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApiKVReference"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_app_setting_key_vault_reference_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'appSettingKey': self._serialize.url("app_setting_key", app_setting_key, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ApiKVReference', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_app_setting_key_vault_reference_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/configreferences/appsettings/{appSettingKey}'} # type: ignore + + def get_site_connection_string_key_vault_references_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ApiKVReferenceCollection"] + """Gets the config reference app settings and status of an app. + + Description for Gets the config reference app settings and status of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ApiKVReferenceCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ApiKVReferenceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApiKVReferenceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_site_connection_string_key_vault_references_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ApiKVReferenceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_site_connection_string_key_vault_references_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/configreferences/connectionstrings'} # type: ignore + + def get_site_connection_string_key_vault_reference_slot( + self, + resource_group_name, # type: str + name, # type: str + connection_string_key, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ApiKVReference" + """Gets the config reference and status of an app. + + Description for Gets the config reference and status of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param connection_string_key: + :type connection_string_key: str + :param slot: + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ApiKVReference, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ApiKVReference + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ApiKVReference"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_connection_string_key_vault_reference_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'connectionStringKey': self._serialize.url("connection_string_key", connection_string_key, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ApiKVReference', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_connection_string_key_vault_reference_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/configreferences/connectionstrings/{connectionStringKey}'} # type: ignore + + def update_connection_strings_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + connection_strings, # type: "_models.ConnectionStringDictionary" + **kwargs # type: Any + ): + # type: (...) -> "_models.ConnectionStringDictionary" + """Replaces the connection strings of an app. + + Description for Replaces the connection strings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + connection settings for the production slot. + :type slot: str + :param connection_strings: Connection strings of the app or deployment slot. See example. + :type connection_strings: ~azure.mgmt.web.v2021_01_15.models.ConnectionStringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ConnectionStringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ConnectionStringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConnectionStringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_connection_strings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_strings, 'ConnectionStringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ConnectionStringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_connection_strings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/connectionstrings'} # type: ignore + + def list_connection_strings_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ConnectionStringDictionary" + """Gets the connection strings of an app. + + Description for Gets the connection strings of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + connection settings for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ConnectionStringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ConnectionStringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ConnectionStringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_connection_strings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ConnectionStringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_connection_strings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/connectionstrings/list'} # type: ignore + + def get_diagnostic_logs_configuration_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteLogsConfig" + """Gets the logging configuration of an app. + + Description for Gets the logging configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + logging configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteLogsConfig, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteLogsConfig + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteLogsConfig"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_diagnostic_logs_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteLogsConfig', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_diagnostic_logs_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/logs'} # type: ignore + + def update_diagnostic_logs_config_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + site_logs_config, # type: "_models.SiteLogsConfig" + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteLogsConfig" + """Updates the logging configuration of an app. + + Description for Updates the logging configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + logging configuration for the production slot. + :type slot: str + :param site_logs_config: A SiteLogsConfig JSON object that contains the logging configuration + to change in the "properties" property. + :type site_logs_config: ~azure.mgmt.web.v2021_01_15.models.SiteLogsConfig + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteLogsConfig, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteLogsConfig + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteLogsConfig"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_diagnostic_logs_config_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_logs_config, 'SiteLogsConfig') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteLogsConfig', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_diagnostic_logs_config_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/logs'} # type: ignore + + def update_metadata_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + metadata, # type: "_models.StringDictionary" + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Replaces the metadata of an app. + + Description for Replaces the metadata of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + metadata for the production slot. + :type slot: str + :param metadata: Edited metadata of the app or deployment slot. See example. + :type metadata: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_metadata_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(metadata, 'StringDictionary') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_metadata_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/metadata'} # type: ignore + + def list_metadata_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Gets the metadata of an app. + + Description for Gets the metadata of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + metadata for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_metadata_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_metadata_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/metadata/list'} # type: ignore + + def _list_publishing_credentials_slot_initial( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.User" + cls = kwargs.pop('cls', None) # type: ClsType["_models.User"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._list_publishing_credentials_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('User', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _list_publishing_credentials_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/publishingcredentials/list'} # type: ignore + + def begin_list_publishing_credentials_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.User"] + """Gets the Git/FTP publishing credentials of an app. + + Description for Gets the Git/FTP publishing credentials of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + publishing credentials for the production slot. + :type slot: 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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 User or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.User] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.User"] + 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._list_publishing_credentials_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + 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('User', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_list_publishing_credentials_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/publishingcredentials/list'} # type: ignore + + def update_site_push_settings_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + push_settings, # type: "_models.PushSettings" + **kwargs # type: Any + ): + # type: (...) -> "_models.PushSettings" + """Updates the Push settings associated with web app. + + Description for Updates the Push settings associated with web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param push_settings: Push settings associated with web app. + :type push_settings: ~azure.mgmt.web.v2021_01_15.models.PushSettings + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PushSettings, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PushSettings + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PushSettings"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_site_push_settings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(push_settings, 'PushSettings') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PushSettings', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_site_push_settings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/pushsettings'} # type: ignore + + def list_site_push_settings_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PushSettings" + """Gets the Push settings associated with web app. + + Description for Gets the Push settings associated with web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PushSettings, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PushSettings + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PushSettings"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_site_push_settings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PushSettings', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_site_push_settings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/pushsettings/list'} # type: ignore + + def get_configuration_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteConfigResource" + """Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications, Always On, etc. + + Description for Gets the configuration of an app, such as platform version and bitness, default + documents, virtual applications, Always On, etc. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will return + configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteConfigResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteConfigResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/web'} # type: ignore + + def create_or_update_configuration_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + site_config, # type: "_models.SiteConfigResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteConfigResource" + """Updates the configuration of an app. + + Description for Updates the configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update + configuration for the production slot. + :type slot: str + :param site_config: JSON representation of a SiteConfig object. See example. + :type site_config: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteConfigResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_config, 'SiteConfigResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteConfigResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/web'} # type: ignore + + def update_configuration_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + site_config, # type: "_models.SiteConfigResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteConfigResource" + """Updates the configuration of an app. + + Description for Updates the configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update + configuration for the production slot. + :type slot: str + :param site_config: JSON representation of a SiteConfig object. See example. + :type site_config: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteConfigResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_config, 'SiteConfigResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteConfigResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/web'} # type: ignore + + def list_configuration_snapshot_info_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.SiteConfigurationSnapshotInfoCollection"] + """Gets a list of web app configuration snapshots identifiers. Each element of the list contains a timestamp and the ID of the snapshot. + + Description for Gets a list of web app configuration snapshots identifiers. Each element of the + list contains a timestamp and the ID of the snapshot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will return + configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SiteConfigurationSnapshotInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.SiteConfigurationSnapshotInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigurationSnapshotInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_configuration_snapshot_info_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SiteConfigurationSnapshotInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_configuration_snapshot_info_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/web/snapshots'} # type: ignore + + def get_configuration_snapshot_slot( + self, + resource_group_name, # type: str + name, # type: str + snapshot_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteConfigResource" + """Gets a snapshot of the configuration of an app at a previous point in time. + + Description for Gets a snapshot of the configuration of an app at a previous point in time. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param snapshot_id: The ID of the snapshot to read. + :type snapshot_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will return + configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteConfigResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteConfigResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteConfigResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_configuration_snapshot_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'snapshotId': self._serialize.url("snapshot_id", snapshot_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteConfigResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_configuration_snapshot_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/web/snapshots/{snapshotId}'} # type: ignore + + def recover_site_configuration_snapshot_slot( + self, + resource_group_name, # type: str + name, # type: str + snapshot_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Reverts the configuration of an app to a previous snapshot. + + Description for Reverts the configuration of an app to a previous snapshot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param snapshot_id: The ID of the snapshot to read. + :type snapshot_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will return + configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.recover_site_configuration_snapshot_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'snapshotId': self._serialize.url("snapshot_id", snapshot_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + recover_site_configuration_snapshot_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/web/snapshots/{snapshotId}/recover'} # type: ignore + + def get_web_site_container_logs_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Optional[IO] + """Gets the last lines of docker logs for the given site. + + Description for Gets the last lines of docker logs for the given site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO or None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Optional[IO]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/octet-stream" + + # Construct URL + url = self.get_web_site_container_logs_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + 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 = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_web_site_container_logs_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/containerlogs'} # type: ignore + + def get_container_logs_zip_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Optional[IO] + """Gets the ZIP archived docker log files for the given site. + + Description for Gets the ZIP archived docker log files for the given site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO or None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[Optional[IO]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/zip" + + # Construct URL + url = self.get_container_logs_zip_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + 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 = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_container_logs_zip_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/containerlogs/zip/download'} # type: ignore + + def list_continuous_web_jobs_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ContinuousWebJobCollection"] + """List continuous web jobs for an app, or a deployment slot. + + Description for List continuous web jobs for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes a + deployment for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ContinuousWebJobCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ContinuousWebJobCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ContinuousWebJobCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_continuous_web_jobs_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ContinuousWebJobCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_continuous_web_jobs_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/continuouswebjobs'} # type: ignore + + def get_continuous_web_job_slot( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ContinuousWebJob" + """Gets a continuous web job by its ID for an app, or a deployment slot. + + Description for Gets a continuous web job by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes a + deployment for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ContinuousWebJob, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ContinuousWebJob + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ContinuousWebJob"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_continuous_web_job_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ContinuousWebJob', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_continuous_web_job_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/continuouswebjobs/{webJobName}'} # type: ignore + + def delete_continuous_web_job_slot( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a continuous web job by its ID for an app, or a deployment slot. + + Description for Delete a continuous web job by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes a + deployment for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_continuous_web_job_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_continuous_web_job_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/continuouswebjobs/{webJobName}'} # type: ignore + + def start_continuous_web_job_slot( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Start a continuous web job for an app, or a deployment slot. + + Description for Start a continuous web job for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes a + deployment for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.start_continuous_web_job_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + start_continuous_web_job_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/continuouswebjobs/{webJobName}/start'} # type: ignore + + def stop_continuous_web_job_slot( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Stop a continuous web job for an app, or a deployment slot. + + Description for Stop a continuous web job for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes a + deployment for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.stop_continuous_web_job_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + stop_continuous_web_job_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/continuouswebjobs/{webJobName}/stop'} # type: ignore + + def list_deployments_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.DeploymentCollection"] + """List deployments for an app, or a deployment slot. + + Description for List deployments for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either DeploymentCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.DeploymentCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DeploymentCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_deployments_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('DeploymentCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_deployments_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/deployments'} # type: ignore + + def get_deployment_slot( + self, + resource_group_name, # type: str + name, # type: str + id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.Deployment" + """Get a deployment by its ID for an app, or a deployment slot. + + Description for Get a deployment by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param id: Deployment ID. + :type id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API gets a deployment + for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Deployment, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Deployment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Deployment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_deployment_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Deployment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_deployment_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/deployments/{id}'} # type: ignore + + def create_deployment_slot( + self, + resource_group_name, # type: str + name, # type: str + id, # type: str + slot, # type: str + deployment, # type: "_models.Deployment" + **kwargs # type: Any + ): + # type: (...) -> "_models.Deployment" + """Create a deployment for an app, or a deployment slot. + + Description for Create a deployment for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param id: ID of an existing deployment. + :type id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API creates a + deployment for the production slot. + :type slot: str + :param deployment: Deployment details. + :type deployment: ~azure.mgmt.web.v2021_01_15.models.Deployment + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Deployment, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Deployment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Deployment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_deployment_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(deployment, 'Deployment') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Deployment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_deployment_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/deployments/{id}'} # type: ignore + + def delete_deployment_slot( + self, + resource_group_name, # type: str + name, # type: str + id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a deployment by its ID for an app, or a deployment slot. + + Description for Delete a deployment by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param id: Deployment ID. + :type id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes a + deployment for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_deployment_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_deployment_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/deployments/{id}'} # type: ignore + + def list_deployment_log_slot( + self, + resource_group_name, # type: str + name, # type: str + id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.Deployment" + """List deployment log for specific deployment for an app, or a deployment slot. + + Description for List deployment log for specific deployment for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param id: The ID of a specific deployment. This is the value of the name property in the JSON + response from "GET /api/sites/{siteName}/deployments". + :type id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Deployment, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Deployment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Deployment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_deployment_log_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Deployment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_deployment_log_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/deployments/{id}/log'} # type: ignore + + def discover_backup_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + request, # type: "_models.RestoreRequest" + **kwargs # type: Any + ): + # type: (...) -> "_models.RestoreRequest" + """Discovers an existing app backup that can be restored from a blob in Azure storage. Use this to get information about the databases stored in a backup. + + Description for Discovers an existing app backup that can be restored from a blob in Azure + storage. Use this to get information about the databases stored in a backup. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will perform + discovery for the production slot. + :type slot: str + :param request: A RestoreRequest object that includes Azure storage URL and blog name for + discovery of backup. + :type request: ~azure.mgmt.web.v2021_01_15.models.RestoreRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RestoreRequest, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RestoreRequest + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestoreRequest"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.discover_backup_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'RestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RestoreRequest', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + discover_backup_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/discoverbackup'} # type: ignore + + def list_domain_ownership_identifiers_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.IdentifierCollection"] + """Lists ownership identifiers for domain associated with web app. + + Description for Lists ownership identifiers for domain associated with web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + binding for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either IdentifierCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.IdentifierCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.IdentifierCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_domain_ownership_identifiers_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('IdentifierCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_domain_ownership_identifiers_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/domainOwnershipIdentifiers'} # type: ignore + + def get_domain_ownership_identifier_slot( + self, + resource_group_name, # type: str + name, # type: str + domain_ownership_identifier_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.Identifier" + """Get domain ownership identifier for web app. + + Description for Get domain ownership identifier for web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param domain_ownership_identifier_name: Name of domain ownership identifier. + :type domain_ownership_identifier_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + binding for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Identifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Identifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Identifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_domain_ownership_identifier_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainOwnershipIdentifierName': self._serialize.url("domain_ownership_identifier_name", domain_ownership_identifier_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Identifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_domain_ownership_identifier_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/domainOwnershipIdentifiers/{domainOwnershipIdentifierName}'} # type: ignore + + def create_or_update_domain_ownership_identifier_slot( + self, + resource_group_name, # type: str + name, # type: str + domain_ownership_identifier_name, # type: str + slot, # type: str + domain_ownership_identifier, # type: "_models.Identifier" + **kwargs # type: Any + ): + # type: (...) -> "_models.Identifier" + """Creates a domain ownership identifier for web app, or updates an existing ownership identifier. + + Description for Creates a domain ownership identifier for web app, or updates an existing + ownership identifier. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param domain_ownership_identifier_name: Name of domain ownership identifier. + :type domain_ownership_identifier_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + binding for the production slot. + :type slot: str + :param domain_ownership_identifier: A JSON representation of the domain ownership properties. + :type domain_ownership_identifier: ~azure.mgmt.web.v2021_01_15.models.Identifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Identifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Identifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Identifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_domain_ownership_identifier_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainOwnershipIdentifierName': self._serialize.url("domain_ownership_identifier_name", domain_ownership_identifier_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(domain_ownership_identifier, 'Identifier') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Identifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_domain_ownership_identifier_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/domainOwnershipIdentifiers/{domainOwnershipIdentifierName}'} # type: ignore + + def delete_domain_ownership_identifier_slot( + self, + resource_group_name, # type: str + name, # type: str + domain_ownership_identifier_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a domain ownership identifier for a web app. + + Description for Deletes a domain ownership identifier for a web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param domain_ownership_identifier_name: Name of domain ownership identifier. + :type domain_ownership_identifier_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + binding for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_domain_ownership_identifier_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainOwnershipIdentifierName': self._serialize.url("domain_ownership_identifier_name", domain_ownership_identifier_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_domain_ownership_identifier_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/domainOwnershipIdentifiers/{domainOwnershipIdentifierName}'} # type: ignore + + def update_domain_ownership_identifier_slot( + self, + resource_group_name, # type: str + name, # type: str + domain_ownership_identifier_name, # type: str + slot, # type: str + domain_ownership_identifier, # type: "_models.Identifier" + **kwargs # type: Any + ): + # type: (...) -> "_models.Identifier" + """Creates a domain ownership identifier for web app, or updates an existing ownership identifier. + + Description for Creates a domain ownership identifier for web app, or updates an existing + ownership identifier. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param domain_ownership_identifier_name: Name of domain ownership identifier. + :type domain_ownership_identifier_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + binding for the production slot. + :type slot: str + :param domain_ownership_identifier: A JSON representation of the domain ownership properties. + :type domain_ownership_identifier: ~azure.mgmt.web.v2021_01_15.models.Identifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Identifier, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.Identifier + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.Identifier"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_domain_ownership_identifier_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'domainOwnershipIdentifierName': self._serialize.url("domain_ownership_identifier_name", domain_ownership_identifier_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(domain_ownership_identifier, 'Identifier') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Identifier', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_domain_ownership_identifier_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/domainOwnershipIdentifiers/{domainOwnershipIdentifierName}'} # type: ignore + + def get_ms_deploy_status_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.MSDeployStatus" + """Get the status of the last MSDeploy operation. + + Description for Get the status of the last MSDeploy operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MSDeployStatus, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MSDeployStatus + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_ms_deploy_status_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_ms_deploy_status_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/extensions/MSDeploy'} # type: ignore + + def _create_ms_deploy_operation_slot_initial( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + ms_deploy, # type: "_models.MSDeploy" + **kwargs # type: Any + ): + # type: (...) -> "_models.MSDeployStatus" + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_ms_deploy_operation_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(ms_deploy, 'MSDeploy') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_ms_deploy_operation_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/extensions/MSDeploy'} # type: ignore + + def begin_create_ms_deploy_operation_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + ms_deploy, # type: "_models.MSDeploy" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.MSDeployStatus"] + """Invoke the MSDeploy web app extension. + + Description for Invoke the MSDeploy web app extension. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param ms_deploy: Details of MSDeploy operation. + :type ms_deploy: ~azure.mgmt.web.v2021_01_15.models.MSDeploy + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 MSDeployStatus or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.MSDeployStatus] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + 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_ms_deploy_operation_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + ms_deploy=ms_deploy, + 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('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_ms_deploy_operation_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/extensions/MSDeploy'} # type: ignore + + def get_ms_deploy_log_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.MSDeployLog" + """Get the MSDeploy Log for the last MSDeploy operation. + + Description for Get the MSDeploy Log for the last MSDeploy operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MSDeployLog, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MSDeployLog + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployLog"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_ms_deploy_log_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployLog', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_ms_deploy_log_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/extensions/MSDeploy/log'} # type: ignore + + def list_instance_functions_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.FunctionEnvelopeCollection"] + """List the functions for a web site, or a deployment slot. + + Description for List the functions for a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either FunctionEnvelopeCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.FunctionEnvelopeCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionEnvelopeCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_functions_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('FunctionEnvelopeCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_instance_functions_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions'} # type: ignore + + def get_functions_admin_token_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> str + """Fetch a short lived token that can be exchanged for a master key. + + Description for Fetch a short lived token that can be exchanged for a master key. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: str, or the result of cls(response) + :rtype: str + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[str] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_functions_admin_token_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('str', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_functions_admin_token_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/admin/token'} # type: ignore + + def get_instance_function_slot( + self, + resource_group_name, # type: str + name, # type: str + function_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.FunctionEnvelope" + """Get function information by its ID for web site, or a deployment slot. + + Description for Get function information by its ID for web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: FunctionEnvelope, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.FunctionEnvelope + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionEnvelope"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_function_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('FunctionEnvelope', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_function_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/{functionName}'} # type: ignore + + def _create_instance_function_slot_initial( + self, + resource_group_name, # type: str + name, # type: str + function_name, # type: str + slot, # type: str + function_envelope, # type: "_models.FunctionEnvelope" + **kwargs # type: Any + ): + # type: (...) -> "_models.FunctionEnvelope" + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionEnvelope"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_instance_function_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(function_envelope, 'FunctionEnvelope') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('FunctionEnvelope', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_instance_function_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/{functionName}'} # type: ignore + + def begin_create_instance_function_slot( + self, + resource_group_name, # type: str + name, # type: str + function_name, # type: str + slot, # type: str + function_envelope, # type: "_models.FunctionEnvelope" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.FunctionEnvelope"] + """Create function for web site, or a deployment slot. + + Description for Create function for web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :param slot: Name of the deployment slot. + :type slot: str + :param function_envelope: Function details. + :type function_envelope: ~azure.mgmt.web.v2021_01_15.models.FunctionEnvelope + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 FunctionEnvelope or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.FunctionEnvelope] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionEnvelope"] + 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_instance_function_slot_initial( + resource_group_name=resource_group_name, + name=name, + function_name=function_name, + slot=slot, + function_envelope=function_envelope, + 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('FunctionEnvelope', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_instance_function_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/{functionName}'} # type: ignore + + def delete_instance_function_slot( + self, + resource_group_name, # type: str + name, # type: str + function_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a function for web site, or a deployment slot. + + Description for Delete a function for web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_instance_function_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_instance_function_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/{functionName}'} # type: ignore + + def create_or_update_function_secret_slot( + self, + resource_group_name, # type: str + name, # type: str + function_name, # type: str + key_name, # type: str + slot, # type: str + key, # type: "_models.KeyInfo" + **kwargs # type: Any + ): + # type: (...) -> "_models.KeyInfo" + """Add or update a function secret. + + Description for Add or update a function secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: The name of the function. + :type function_name: str + :param key_name: The name of the key. + :type key_name: str + :param slot: Name of the deployment slot. + :type slot: str + :param key: The key to create or update. + :type key: ~azure.mgmt.web.v2021_01_15.models.KeyInfo + :keyword callable cls: A custom type or function that will be passed the direct response + :return: KeyInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.KeyInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.KeyInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_function_secret_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(key, 'KeyInfo') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('KeyInfo', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('KeyInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_function_secret_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/{functionName}/keys/{keyName}'} # type: ignore + + def delete_function_secret_slot( + self, + resource_group_name, # type: str + name, # type: str + function_name, # type: str + key_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a function secret. + + Description for Delete a function secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: The name of the function. + :type function_name: str + :param key_name: The name of the key. + :type key_name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_function_secret_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_function_secret_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/{functionName}/keys/{keyName}'} # type: ignore + + def list_function_keys_slot( + self, + resource_group_name, # type: str + name, # type: str + function_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.StringDictionary" + """Get function keys for a function in a web site, or a deployment slot. + + Description for Get function keys for a function in a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: StringDictionary, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.StringDictionary + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.StringDictionary"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_function_keys_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('StringDictionary', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_function_keys_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/{functionName}/listkeys'} # type: ignore + + def list_function_secrets_slot( + self, + resource_group_name, # type: str + name, # type: str + function_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.FunctionSecrets" + """Get function secrets for a function in a web site, or a deployment slot. + + Description for Get function secrets for a function in a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param function_name: Function name. + :type function_name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: FunctionSecrets, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.FunctionSecrets + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionSecrets"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_function_secrets_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'functionName': self._serialize.url("function_name", function_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('FunctionSecrets', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_function_secrets_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/functions/{functionName}/listsecrets'} # type: ignore + + def list_host_keys_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.HostKeys" + """Get host secrets for a function app. + + Description for Get host secrets for a function app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HostKeys, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HostKeys + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostKeys"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_host_keys_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HostKeys', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_host_keys_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/host/default/listkeys'} # type: ignore + + def list_sync_status_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """This is to allow calling via powershell and ARM template. + + Description for This is to allow calling via powershell and ARM template. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.list_sync_status_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + list_sync_status_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/host/default/listsyncstatus'} # type: ignore + + def sync_functions_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Syncs function trigger metadata to the management database. + + Description for Syncs function trigger metadata to the management database. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.sync_functions_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + sync_functions_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/host/default/sync'} # type: ignore + + def create_or_update_host_secret_slot( + self, + resource_group_name, # type: str + name, # type: str + key_type, # type: str + key_name, # type: str + slot, # type: str + key, # type: "_models.KeyInfo" + **kwargs # type: Any + ): + # type: (...) -> "_models.KeyInfo" + """Add or update a host level secret. + + Description for Add or update a host level secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param key_type: The type of host key. + :type key_type: str + :param key_name: The name of the key. + :type key_name: str + :param slot: Name of the deployment slot. + :type slot: str + :param key: The key to create or update. + :type key: ~azure.mgmt.web.v2021_01_15.models.KeyInfo + :keyword callable cls: A custom type or function that will be passed the direct response + :return: KeyInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.KeyInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.KeyInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_host_secret_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'keyType': self._serialize.url("key_type", key_type, 'str'), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(key, 'KeyInfo') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('KeyInfo', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('KeyInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_host_secret_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/host/default/{keyType}/{keyName}'} # type: ignore + + def delete_host_secret_slot( + self, + resource_group_name, # type: str + name, # type: str + key_type, # type: str + key_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a host level secret. + + Description for Delete a host level secret. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param key_type: The type of host key. + :type key_type: str + :param key_name: The name of the key. + :type key_name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_host_secret_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'keyType': self._serialize.url("key_type", key_type, 'str'), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_host_secret_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/host/default/{keyType}/{keyName}'} # type: ignore + + def list_host_name_bindings_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.HostNameBindingCollection"] + """Get hostname bindings for an app or a deployment slot. + + Description for Get hostname bindings for an app or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API gets hostname + bindings for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either HostNameBindingCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.HostNameBindingCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostNameBindingCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_host_name_bindings_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('HostNameBindingCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_host_name_bindings_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hostNameBindings'} # type: ignore + + def get_host_name_binding_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + host_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.HostNameBinding" + """Get the named hostname binding for an app (or deployment slot, if specified). + + Description for Get the named hostname binding for an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API the named binding + for the production slot. + :type slot: str + :param host_name: Hostname in the hostname binding. + :type host_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HostNameBinding, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HostNameBinding + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostNameBinding"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_host_name_binding_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'hostName': self._serialize.url("host_name", host_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HostNameBinding', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_host_name_binding_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hostNameBindings/{hostName}'} # type: ignore + + def create_or_update_host_name_binding_slot( + self, + resource_group_name, # type: str + name, # type: str + host_name, # type: str + slot, # type: str + host_name_binding, # type: "_models.HostNameBinding" + **kwargs # type: Any + ): + # type: (...) -> "_models.HostNameBinding" + """Creates a hostname binding for an app. + + Description for Creates a hostname binding for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param host_name: Hostname in the hostname binding. + :type host_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will create a + binding for the production slot. + :type slot: str + :param host_name_binding: Binding details. This is the JSON representation of a HostNameBinding + object. + :type host_name_binding: ~azure.mgmt.web.v2021_01_15.models.HostNameBinding + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HostNameBinding, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HostNameBinding + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HostNameBinding"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_host_name_binding_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'hostName': self._serialize.url("host_name", host_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(host_name_binding, 'HostNameBinding') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HostNameBinding', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_host_name_binding_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hostNameBindings/{hostName}'} # type: ignore + + def delete_host_name_binding_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + host_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a hostname binding for an app. + + Description for Deletes a hostname binding for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + binding for the production slot. + :type slot: str + :param host_name: Hostname in the hostname binding. + :type host_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_host_name_binding_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'hostName': self._serialize.url("host_name", host_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_host_name_binding_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hostNameBindings/{hostName}'} # type: ignore + + def get_hybrid_connection_slot( + self, + resource_group_name, # type: str + name, # type: str + namespace_name, # type: str + relay_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.HybridConnection" + """Retrieves a specific Service Bus Hybrid Connection used by this Web App. + + Description for Retrieves a specific Service Bus Hybrid Connection used by this Web App. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param namespace_name: The namespace for this hybrid connection. + :type namespace_name: str + :param relay_name: The relay name for this hybrid connection. + :type relay_name: str + :param slot: The name of the slot for the web app. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_hybrid_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_hybrid_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + def create_or_update_hybrid_connection_slot( + self, + resource_group_name, # type: str + name, # type: str + namespace_name, # type: str + relay_name, # type: str + slot, # type: str + connection_envelope, # type: "_models.HybridConnection" + **kwargs # type: Any + ): + # type: (...) -> "_models.HybridConnection" + """Creates a new Hybrid Connection using a Service Bus relay. + + Description for Creates a new Hybrid Connection using a Service Bus relay. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param namespace_name: The namespace for this hybrid connection. + :type namespace_name: str + :param relay_name: The relay name for this hybrid connection. + :type relay_name: str + :param slot: The name of the slot for the web app. + :type slot: str + :param connection_envelope: The details of the hybrid connection. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_hybrid_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'HybridConnection') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_hybrid_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + def delete_hybrid_connection_slot( + self, + resource_group_name, # type: str + name, # type: str + namespace_name, # type: str + relay_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Removes a Hybrid Connection from this site. + + Description for Removes a Hybrid Connection from this site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param namespace_name: The namespace for this hybrid connection. + :type namespace_name: str + :param relay_name: The relay name for this hybrid connection. + :type relay_name: str + :param slot: The name of the slot for the web app. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_hybrid_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_hybrid_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + def update_hybrid_connection_slot( + self, + resource_group_name, # type: str + name, # type: str + namespace_name, # type: str + relay_name, # type: str + slot, # type: str + connection_envelope, # type: "_models.HybridConnection" + **kwargs # type: Any + ): + # type: (...) -> "_models.HybridConnection" + """Creates a new Hybrid Connection using a Service Bus relay. + + Description for Creates a new Hybrid Connection using a Service Bus relay. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param namespace_name: The namespace for this hybrid connection. + :type namespace_name: str + :param relay_name: The relay name for this hybrid connection. + :type relay_name: str + :param slot: The name of the slot for the web app. + :type slot: str + :param connection_envelope: The details of the hybrid connection. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_hybrid_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'namespaceName': self._serialize.url("namespace_name", namespace_name, 'str'), + 'relayName': self._serialize.url("relay_name", relay_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'HybridConnection') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_hybrid_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}'} # type: ignore + + def list_hybrid_connections_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.HybridConnection" + """Retrieves all Service Bus Hybrid Connections used by this Web App. + + Description for Retrieves all Service Bus Hybrid Connections used by this Web App. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param slot: The name of the slot for the web app. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: HybridConnection, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.HybridConnection + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.HybridConnection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_hybrid_connections_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('HybridConnection', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_hybrid_connections_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridConnectionRelays'} # type: ignore + + def list_relay_service_connections_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.RelayServiceConnectionEntity" + """Gets hybrid connections configured for an app (or deployment slot, if specified). + + Description for Gets hybrid connections configured for an app (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get hybrid + connections for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RelayServiceConnectionEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RelayServiceConnectionEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_relay_service_connections_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RelayServiceConnectionEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_relay_service_connections_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridconnection'} # type: ignore + + def get_relay_service_connection_slot( + self, + resource_group_name, # type: str + name, # type: str + entity_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.RelayServiceConnectionEntity" + """Gets a hybrid connection configuration by its name. + + Description for Gets a hybrid connection configuration by its name. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param entity_name: Name of the hybrid connection. + :type entity_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get a hybrid + connection for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RelayServiceConnectionEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RelayServiceConnectionEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_relay_service_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'entityName': self._serialize.url("entity_name", entity_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RelayServiceConnectionEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_relay_service_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridconnection/{entityName}'} # type: ignore + + def create_or_update_relay_service_connection_slot( + self, + resource_group_name, # type: str + name, # type: str + entity_name, # type: str + slot, # type: str + connection_envelope, # type: "_models.RelayServiceConnectionEntity" + **kwargs # type: Any + ): + # type: (...) -> "_models.RelayServiceConnectionEntity" + """Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH). + + Description for Creates a new hybrid connection configuration (PUT), or updates an existing one + (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param entity_name: Name of the hybrid connection configuration. + :type entity_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will create or + update a hybrid connection for the production slot. + :type slot: str + :param connection_envelope: Details of the hybrid connection configuration. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RelayServiceConnectionEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RelayServiceConnectionEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_relay_service_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'entityName': self._serialize.url("entity_name", entity_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'RelayServiceConnectionEntity') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RelayServiceConnectionEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_relay_service_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridconnection/{entityName}'} # type: ignore + + def delete_relay_service_connection_slot( + self, + resource_group_name, # type: str + name, # type: str + entity_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a relay service connection by its name. + + Description for Deletes a relay service connection by its name. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param entity_name: Name of the hybrid connection configuration. + :type entity_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete a + hybrid connection for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_relay_service_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'entityName': self._serialize.url("entity_name", entity_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_relay_service_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridconnection/{entityName}'} # type: ignore + + def update_relay_service_connection_slot( + self, + resource_group_name, # type: str + name, # type: str + entity_name, # type: str + slot, # type: str + connection_envelope, # type: "_models.RelayServiceConnectionEntity" + **kwargs # type: Any + ): + # type: (...) -> "_models.RelayServiceConnectionEntity" + """Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH). + + Description for Creates a new hybrid connection configuration (PUT), or updates an existing one + (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param entity_name: Name of the hybrid connection configuration. + :type entity_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will create or + update a hybrid connection for the production slot. + :type slot: str + :param connection_envelope: Details of the hybrid connection configuration. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RelayServiceConnectionEntity, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RelayServiceConnectionEntity + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RelayServiceConnectionEntity"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_relay_service_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'entityName': self._serialize.url("entity_name", entity_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'RelayServiceConnectionEntity') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RelayServiceConnectionEntity', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_relay_service_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/hybridconnection/{entityName}'} # type: ignore + + def list_instance_identifiers_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.WebAppInstanceStatusCollection"] + """Gets all scale-out instances of an app. + + Description for Gets all scale-out instances of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API gets the + production slot instances. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebAppInstanceStatusCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.WebAppInstanceStatusCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebAppInstanceStatusCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_identifiers_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('WebAppInstanceStatusCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_instance_identifiers_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances'} # type: ignore + + def get_instance_info_slot( + self, + resource_group_name, # type: str + name, # type: str + instance_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.WebSiteInstanceStatus" + """Gets all scale-out instances of an app. + + Description for Gets all scale-out instances of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param instance_id: + :type instance_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API gets the + production slot instances. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: WebSiteInstanceStatus, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.WebSiteInstanceStatus + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebSiteInstanceStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_info_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('WebSiteInstanceStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_info_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}'} # type: ignore + + def get_instance_ms_deploy_status_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.MSDeployStatus" + """Get the status of the last MSDeploy operation. + + Description for Get the status of the last MSDeploy operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param instance_id: ID of web app instance. + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MSDeployStatus, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MSDeployStatus + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_ms_deploy_status_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_ms_deploy_status_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/extensions/MSDeploy'} # type: ignore + + def _create_instance_ms_deploy_operation_slot_initial( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + instance_id, # type: str + ms_deploy, # type: "_models.MSDeploy" + **kwargs # type: Any + ): + # type: (...) -> "_models.MSDeployStatus" + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_instance_ms_deploy_operation_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(ms_deploy, 'MSDeploy') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_instance_ms_deploy_operation_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/extensions/MSDeploy'} # type: ignore + + def begin_create_instance_ms_deploy_operation_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + instance_id, # type: str + ms_deploy, # type: "_models.MSDeploy" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.MSDeployStatus"] + """Invoke the MSDeploy web app extension. + + Description for Invoke the MSDeploy web app extension. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param instance_id: ID of web app instance. + :type instance_id: str + :param ms_deploy: Details of MSDeploy operation. + :type ms_deploy: ~azure.mgmt.web.v2021_01_15.models.MSDeploy + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 MSDeployStatus or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.MSDeployStatus] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployStatus"] + 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_instance_ms_deploy_operation_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + instance_id=instance_id, + ms_deploy=ms_deploy, + 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('MSDeployStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_instance_ms_deploy_operation_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/extensions/MSDeploy'} # type: ignore + + def get_instance_ms_deploy_log_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.MSDeployLog" + """Get the MSDeploy Log for the last MSDeploy operation. + + Description for Get the MSDeploy Log for the last MSDeploy operation. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param instance_id: ID of web app instance. + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MSDeployLog, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MSDeployLog + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MSDeployLog"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_ms_deploy_log_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MSDeployLog', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_ms_deploy_log_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/extensions/MSDeploy/log'} # type: ignore + + def list_instance_processes_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ProcessInfoCollection"] + """Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site. + + Description for Get list of processes for a web site, or a deployment slot, or for a specific + scaled-out instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :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 ProcessInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_processes_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_instance_processes_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/processes'} # type: ignore + + def get_instance_process_slot( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + slot, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ProcessInfo" + """Get process information by its ID for a specific scaled-out instance in a web site. + + Description for Get process information by its ID for a specific scaled-out instance in a web + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ProcessInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ProcessInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_process_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ProcessInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_process_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/processes/{processId}'} # type: ignore + + def delete_instance_process_slot( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + slot, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web site. + + Description for Terminate a process by its ID for a web site, or a deployment slot, or specific + scaled-out instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_instance_process_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_instance_process_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/processes/{processId}'} # type: ignore + + def get_instance_process_dump_slot( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + slot, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> IO + """Get a memory dump of a process by its ID for a specific scaled-out instance in a web site. + + Description for Get a memory dump of a process by its ID for a specific scaled-out instance in + a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[IO] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_process_dump_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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=True, **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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_process_dump_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/processes/{processId}/dump'} # type: ignore + + def list_instance_process_modules_slot( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + slot, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ProcessModuleInfoCollection"] + """List module information for a process by its ID for a specific scaled-out instance in a web site. + + Description for List module information for a process by its ID for a specific scaled-out + instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :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 ProcessModuleInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessModuleInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_process_modules_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessModuleInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_instance_process_modules_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/processes/{processId}/modules'} # type: ignore + + def get_instance_process_module_slot( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + base_address, # type: str + slot, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ProcessModuleInfo" + """Get process information by its ID for a specific scaled-out instance in a web site. + + Description for Get process information by its ID for a specific scaled-out instance in a web + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param base_address: Module base address. + :type base_address: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ProcessModuleInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessModuleInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_instance_process_module_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'baseAddress': self._serialize.url("base_address", base_address, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ProcessModuleInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_instance_process_module_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/processes/{processId}/modules/{baseAddress}'} # type: ignore + + def list_instance_process_threads_slot( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + slot, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ProcessThreadInfoCollection"] + """List the threads in a process by its ID for a specific scaled-out instance in a web site. + + Description for List the threads in a process by its ID for a specific scaled-out instance in a + web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :param instance_id: ID of a specific scaled-out instance. This is the value of the name + property in the JSON response from "GET api/sites/{siteName}/instances". + :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 ProcessThreadInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessThreadInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessThreadInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_instance_process_threads_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessThreadInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_instance_process_threads_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/processes/{processId}/threads'} # type: ignore + + def is_cloneable_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteCloneability" + """Shows whether an app can be cloned to another resource group or subscription. + + Description for Shows whether an app can be cloned to another resource group or subscription. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. By default, this API returns information on the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteCloneability, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteCloneability + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteCloneability"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.is_cloneable_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteCloneability', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + is_cloneable_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/iscloneable'} # type: ignore + + def list_site_backups_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.BackupItemCollection"] + """Gets existing backups of an app. + + Description for Gets existing backups of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get backups + of the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either BackupItemCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.BackupItemCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupItemCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_backups_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.post(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('BackupItemCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_site_backups_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/listbackups'} # type: ignore + + def list_sync_function_triggers_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.FunctionSecrets" + """This is to allow calling via powershell and ARM template. + + Description for This is to allow calling via powershell and ARM template. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: FunctionSecrets, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.FunctionSecrets + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FunctionSecrets"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_sync_function_triggers_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('FunctionSecrets', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_sync_function_triggers_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/listsyncfunctiontriggerstatus'} # type: ignore + + def get_migrate_my_sql_status_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.MigrateMySqlStatus" + """Returns the status of MySql in app migration, if one is active, and whether or not MySql in app is enabled. + + Description for Returns the status of MySql in app migration, if one is active, and whether or + not MySql in app is enabled. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MigrateMySqlStatus, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.MigrateMySqlStatus + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.MigrateMySqlStatus"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_migrate_my_sql_status_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MigrateMySqlStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_migrate_my_sql_status_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/migratemysql/status'} # type: ignore + + def get_swift_virtual_network_connection_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SwiftVirtualNetwork" + """Gets a Swift Virtual Network connection. + + Description for Gets a Swift Virtual Network connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get a + gateway for the production slot's Virtual Network. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SwiftVirtualNetwork, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SwiftVirtualNetwork"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_swift_virtual_network_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SwiftVirtualNetwork', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_swift_virtual_network_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkConfig/virtualNetwork'} # type: ignore + + def create_or_update_swift_virtual_network_connection_with_check_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + connection_envelope, # type: "_models.SwiftVirtualNetwork" + **kwargs # type: Any + ): + # type: (...) -> "_models.SwiftVirtualNetwork" + """Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not + in use by another App Service Plan other than the one this App is in. + + Description for Integrates this Web App with a Virtual Network. This requires that 1) + "swiftSupported" is true when doing a GET against this resource, and 2) that the target Subnet + has already been delegated, and is not + in use by another App Service Plan other than the one this App is in. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will add or + update connections for the production slot. + :type slot: str + :param connection_envelope: Properties of the Virtual Network connection. See example. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SwiftVirtualNetwork, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SwiftVirtualNetwork"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_swift_virtual_network_connection_with_check_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'SwiftVirtualNetwork') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SwiftVirtualNetwork', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_swift_virtual_network_connection_with_check_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkConfig/virtualNetwork'} # type: ignore + + def delete_swift_virtual_network_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a Swift Virtual Network connection from an app (or deployment slot). + + Description for Deletes a Swift Virtual Network connection from an app (or deployment slot). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + connection for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_swift_virtual_network_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_swift_virtual_network_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkConfig/virtualNetwork'} # type: ignore + + def update_swift_virtual_network_connection_with_check_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + connection_envelope, # type: "_models.SwiftVirtualNetwork" + **kwargs # type: Any + ): + # type: (...) -> "_models.SwiftVirtualNetwork" + """Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not + in use by another App Service Plan other than the one this App is in. + + Description for Integrates this Web App with a Virtual Network. This requires that 1) + "swiftSupported" is true when doing a GET against this resource, and 2) that the target Subnet + has already been delegated, and is not + in use by another App Service Plan other than the one this App is in. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will add or + update connections for the production slot. + :type slot: str + :param connection_envelope: Properties of the Virtual Network connection. See example. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SwiftVirtualNetwork, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SwiftVirtualNetwork + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SwiftVirtualNetwork"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_swift_virtual_network_connection_with_check_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'SwiftVirtualNetwork') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SwiftVirtualNetwork', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_swift_virtual_network_connection_with_check_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkConfig/virtualNetwork'} # type: ignore + + def list_network_features_slot( + self, + resource_group_name, # type: str + name, # type: str + view, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.NetworkFeatures" + """Gets all network features used by the app (or deployment slot, if specified). + + Description for Gets all network features used by the app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param view: The type of view. Only "summary" is supported at this time. + :type view: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get network + features for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkFeatures, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.NetworkFeatures + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.NetworkFeatures"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_network_features_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'view': self._serialize.url("view", view, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('NetworkFeatures', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_network_features_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkFeatures/{view}'} # type: ignore + + def get_network_trace_operation_slot( + self, + resource_group_name, # type: str + name, # type: str + operation_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.NetworkTrace"] + """Gets a named operation for a network trace capturing (or deployment slot, if specified). + + Description for Gets a named operation for a network trace capturing (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param operation_id: GUID of the operation. + :type operation_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get an + operation for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of NetworkTrace, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_network_trace_operation_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_network_trace_operation_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkTrace/operationresults/{operationId}'} # type: ignore + + def start_web_site_network_trace_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + duration_in_seconds=None, # type: Optional[int] + max_frame_length=None, # type: Optional[int] + sas_url=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> str + """Start capturing network packets for the site (To be deprecated). + + Description for Start capturing network packets for the site (To be deprecated). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param slot: The name of the slot for this web app. + :type slot: str + :param duration_in_seconds: The duration to keep capturing in seconds. + :type duration_in_seconds: int + :param max_frame_length: The maximum frame length in bytes (Optional). + :type max_frame_length: int + :param sas_url: The Blob URL to store capture file. + :type sas_url: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: str, or the result of cls(response) + :rtype: str + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[str] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.start_web_site_network_trace_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if duration_in_seconds is not None: + query_parameters['durationInSeconds'] = self._serialize.query("duration_in_seconds", duration_in_seconds, 'int') + if max_frame_length is not None: + query_parameters['maxFrameLength'] = self._serialize.query("max_frame_length", max_frame_length, 'int') + if sas_url is not None: + query_parameters['sasUrl'] = self._serialize.query("sas_url", sas_url, 'str') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('str', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + start_web_site_network_trace_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkTrace/start'} # type: ignore + + def _start_web_site_network_trace_operation_slot_initial( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + duration_in_seconds=None, # type: Optional[int] + max_frame_length=None, # type: Optional[int] + sas_url=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> List["_models.NetworkTrace"] + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._start_web_site_network_trace_operation_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if duration_in_seconds is not None: + query_parameters['durationInSeconds'] = self._serialize.query("duration_in_seconds", duration_in_seconds, 'int') + if max_frame_length is not None: + query_parameters['maxFrameLength'] = self._serialize.query("max_frame_length", max_frame_length, 'int') + if sas_url is not None: + query_parameters['sasUrl'] = self._serialize.query("sas_url", sas_url, 'str') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _start_web_site_network_trace_operation_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkTrace/startOperation'} # type: ignore + + def begin_start_web_site_network_trace_operation_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + duration_in_seconds=None, # type: Optional[int] + max_frame_length=None, # type: Optional[int] + sas_url=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> LROPoller[List["_models.NetworkTrace"]] + """Start capturing network packets for the site. + + Description for Start capturing network packets for the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param slot: The name of the slot for this web app. + :type slot: str + :param duration_in_seconds: The duration to keep capturing in seconds. + :type duration_in_seconds: int + :param max_frame_length: The maximum frame length in bytes (Optional). + :type max_frame_length: int + :param sas_url: The Blob URL to store capture file. + :type sas_url: 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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 list of NetworkTrace or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace]] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + 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._start_web_site_network_trace_operation_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + duration_in_seconds=duration_in_seconds, + max_frame_length=max_frame_length, + sas_url=sas_url, + 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('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_start_web_site_network_trace_operation_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkTrace/startOperation'} # type: ignore + + def stop_web_site_network_trace_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Stop ongoing capturing network packets for the site. + + Description for Stop ongoing capturing network packets for the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param slot: The name of the slot for this web app. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.stop_web_site_network_trace_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + stop_web_site_network_trace_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkTrace/stop'} # type: ignore + + def get_network_traces_slot( + self, + resource_group_name, # type: str + name, # type: str + operation_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.NetworkTrace"] + """Gets a named operation for a network trace capturing (or deployment slot, if specified). + + Description for Gets a named operation for a network trace capturing (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param operation_id: GUID of the operation. + :type operation_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get an + operation for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of NetworkTrace, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_network_traces_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_network_traces_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkTrace/{operationId}'} # type: ignore + + def get_network_trace_operation_slot_v2( + self, + resource_group_name, # type: str + name, # type: str + operation_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.NetworkTrace"] + """Gets a named operation for a network trace capturing (or deployment slot, if specified). + + Description for Gets a named operation for a network trace capturing (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param operation_id: GUID of the operation. + :type operation_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get an + operation for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of NetworkTrace, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_network_trace_operation_slot_v2.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_network_trace_operation_slot_v2.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkTraces/current/operationresults/{operationId}'} # type: ignore + + def get_network_traces_slot_v2( + self, + resource_group_name, # type: str + name, # type: str + operation_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.NetworkTrace"] + """Gets a named operation for a network trace capturing (or deployment slot, if specified). + + Description for Gets a named operation for a network trace capturing (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param operation_id: GUID of the operation. + :type operation_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get an + operation for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of NetworkTrace, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_network_traces_slot_v2.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_network_traces_slot_v2.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/networkTraces/{operationId}'} # type: ignore + + def generate_new_site_publishing_password_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Generates a new publishing password for an app (or deployment slot, if specified). + + Description for Generates a new publishing password for an app (or deployment slot, if + specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API generate a new + publishing password for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.generate_new_site_publishing_password_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + generate_new_site_publishing_password_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/newpassword'} # type: ignore + + def list_perf_mon_counters_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + filter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.PerfMonCounterCollection"] + """Gets perfmon counters for web app. + + Description for Gets perfmon counters for web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param filter: Return only usages/metrics specified in the filter. Filter conforms to odata + syntax. Example: $filter=(startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z + and timeGrain eq duration'[Hour|Minute|Day]'. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PerfMonCounterCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.PerfMonCounterCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PerfMonCounterCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_perf_mon_counters_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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 filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('PerfMonCounterCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_perf_mon_counters_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/perfcounters'} # type: ignore + + def get_site_php_error_log_flag_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SitePhpErrorLogFlag" + """Gets web app's event logs. + + Description for Gets web app's event logs. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SitePhpErrorLogFlag, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SitePhpErrorLogFlag + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SitePhpErrorLogFlag"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_php_error_log_flag_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SitePhpErrorLogFlag', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_php_error_log_flag_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/phplogging'} # type: ignore + + def list_premier_add_ons_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PremierAddOn" + """Gets the premier add-ons of an app. + + Description for Gets the premier add-ons of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + premier add-ons for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PremierAddOn, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOn"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_premier_add_ons_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PremierAddOn', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_premier_add_ons_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/premieraddons'} # type: ignore + + def get_premier_add_on_slot( + self, + resource_group_name, # type: str + name, # type: str + premier_add_on_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PremierAddOn" + """Gets a named add-on of an app. + + Description for Gets a named add-on of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param premier_add_on_name: Add-on name. + :type premier_add_on_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + named add-on for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PremierAddOn, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOn"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_premier_add_on_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'premierAddOnName': self._serialize.url("premier_add_on_name", premier_add_on_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PremierAddOn', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_premier_add_on_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/premieraddons/{premierAddOnName}'} # type: ignore + + def add_premier_add_on_slot( + self, + resource_group_name, # type: str + name, # type: str + premier_add_on_name, # type: str + slot, # type: str + premier_add_on, # type: "_models.PremierAddOn" + **kwargs # type: Any + ): + # type: (...) -> "_models.PremierAddOn" + """Updates a named add-on of an app. + + Description for Updates a named add-on of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param premier_add_on_name: Add-on name. + :type premier_add_on_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + named add-on for the production slot. + :type slot: str + :param premier_add_on: A JSON representation of the edited premier add-on. + :type premier_add_on: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PremierAddOn, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOn"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.add_premier_add_on_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'premierAddOnName': self._serialize.url("premier_add_on_name", premier_add_on_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(premier_add_on, 'PremierAddOn') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PremierAddOn', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + add_premier_add_on_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/premieraddons/{premierAddOnName}'} # type: ignore + + def delete_premier_add_on_slot( + self, + resource_group_name, # type: str + name, # type: str + premier_add_on_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a premier add-on from an app. + + Description for Delete a premier add-on from an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param premier_add_on_name: Add-on name. + :type premier_add_on_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + named add-on for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_premier_add_on_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'premierAddOnName': self._serialize.url("premier_add_on_name", premier_add_on_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_premier_add_on_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/premieraddons/{premierAddOnName}'} # type: ignore + + def update_premier_add_on_slot( + self, + resource_group_name, # type: str + name, # type: str + premier_add_on_name, # type: str + slot, # type: str + premier_add_on, # type: "_models.PremierAddOnPatchResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.PremierAddOn" + """Updates a named add-on of an app. + + Description for Updates a named add-on of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param premier_add_on_name: Add-on name. + :type premier_add_on_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + named add-on for the production slot. + :type slot: str + :param premier_add_on: A JSON representation of the edited premier add-on. + :type premier_add_on: ~azure.mgmt.web.v2021_01_15.models.PremierAddOnPatchResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PremierAddOn, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PremierAddOn + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOn"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_premier_add_on_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'premierAddOnName': self._serialize.url("premier_add_on_name", premier_add_on_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(premier_add_on, 'PremierAddOnPatchResource') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PremierAddOn', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_premier_add_on_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/premieraddons/{premierAddOnName}'} # type: ignore + + def get_private_access_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PrivateAccess" + """Gets data around private site access enablement and authorized Virtual Networks that can access the site. + + Description for Gets data around private site access enablement and authorized Virtual Networks + that can access the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param slot: The name of the slot for the web app. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateAccess, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PrivateAccess + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateAccess"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_access_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateAccess', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_access_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateAccess/virtualNetworks'} # type: ignore + + def put_private_access_vnet_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + access, # type: "_models.PrivateAccess" + **kwargs # type: Any + ): + # type: (...) -> "_models.PrivateAccess" + """Sets data around private site access enablement and authorized Virtual Networks that can access the site. + + Description for Sets data around private site access enablement and authorized Virtual Networks + that can access the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param slot: The name of the slot for the web app. + :type slot: str + :param access: The information for the private access. + :type access: ~azure.mgmt.web.v2021_01_15.models.PrivateAccess + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateAccess, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PrivateAccess + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateAccess"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.put_private_access_vnet_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(access, 'PrivateAccess') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateAccess', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + put_private_access_vnet_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateAccess/virtualNetworks'} # type: ignore + + def get_private_endpoint_connection_list_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.PrivateEndpointConnectionCollection"] + """Gets the list of private endpoint connections associated with a site. + + Description for Gets the list of private endpoint connections associated with a site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :param slot: Name of the site deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PrivateEndpointConnectionCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.PrivateEndpointConnectionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateEndpointConnectionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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.get_private_endpoint_connection_list_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PrivateEndpointConnectionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + get_private_endpoint_connection_list_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateEndpointConnections'} # type: ignore + + def get_private_endpoint_connection_slot( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.RemotePrivateEndpointConnectionARMResource" + """Gets a private endpoint connection. + + Description for Gets a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :param private_endpoint_connection_name: Name of the private endpoint connection. + :type private_endpoint_connection_name: str + :param slot: Name of the site deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RemotePrivateEndpointConnectionARMResource, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_endpoint_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_endpoint_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def _approve_or_reject_private_endpoint_connection_slot_initial( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + slot, # type: str + private_endpoint_wrapper, # type: "_models.PrivateLinkConnectionApprovalRequestResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.RemotePrivateEndpointConnectionARMResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._approve_or_reject_private_endpoint_connection_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(private_endpoint_wrapper, 'PrivateLinkConnectionApprovalRequestResource') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _approve_or_reject_private_endpoint_connection_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def begin_approve_or_reject_private_endpoint_connection_slot( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + slot, # type: str + private_endpoint_wrapper, # type: "_models.PrivateLinkConnectionApprovalRequestResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.RemotePrivateEndpointConnectionARMResource"] + """Approves or rejects a private endpoint connection. + + Description for Approves or rejects a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :param private_endpoint_connection_name: + :type private_endpoint_connection_name: str + :param slot: + :type slot: str + :param private_endpoint_wrapper: + :type private_endpoint_wrapper: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkConnectionApprovalRequestResource + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 RemotePrivateEndpointConnectionARMResource or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.RemotePrivateEndpointConnectionARMResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RemotePrivateEndpointConnectionARMResource"] + 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._approve_or_reject_private_endpoint_connection_slot_initial( + resource_group_name=resource_group_name, + name=name, + private_endpoint_connection_name=private_endpoint_connection_name, + slot=slot, + private_endpoint_wrapper=private_endpoint_wrapper, + 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('RemotePrivateEndpointConnectionARMResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_approve_or_reject_private_endpoint_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def _delete_private_endpoint_connection_slot_initial( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Any + cls = kwargs.pop('cls', None) # type: ClsType[Any] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._delete_private_endpoint_connection_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('object', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('object', pipeline_response) + + if response.status_code == 204: + deserialized = self._deserialize('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _delete_private_endpoint_connection_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def begin_delete_private_endpoint_connection_slot( + self, + resource_group_name, # type: str + name, # type: str + private_endpoint_connection_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[Any] + """Deletes a private endpoint connection. + + Description for Deletes a private endpoint connection. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :param private_endpoint_connection_name: + :type private_endpoint_connection_name: str + :param slot: + :type slot: 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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 any or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[any] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[Any] + 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_private_endpoint_connection_slot_initial( + resource_group_name=resource_group_name, + name=name, + private_endpoint_connection_name=private_endpoint_connection_name, + slot=slot, + 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('object', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_delete_private_endpoint_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateEndpointConnections/{privateEndpointConnectionName}'} # type: ignore + + def get_private_link_resources_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PrivateLinkResourcesWrapper" + """Gets the private link resources. + + Description for Gets the private link resources. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the site. + :type name: str + :param slot: + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PrivateLinkResourcesWrapper, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PrivateLinkResourcesWrapper + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PrivateLinkResourcesWrapper"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_private_link_resources_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PrivateLinkResourcesWrapper', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_private_link_resources_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/privateLinkResources'} # type: ignore + + def list_processes_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ProcessInfoCollection"] + """Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site. + + Description for Get list of processes for a web site, or a deployment slot, or for a specific + scaled-out instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ProcessInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_processes_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_processes_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/processes'} # type: ignore + + def get_process_slot( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ProcessInfo" + """Get process information by its ID for a specific scaled-out instance in a web site. + + Description for Get process information by its ID for a specific scaled-out instance in a web + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ProcessInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ProcessInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_process_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ProcessInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_process_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/processes/{processId}'} # type: ignore + + def delete_process_slot( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web site. + + Description for Terminate a process by its ID for a web site, or a deployment slot, or specific + scaled-out instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_process_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_process_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/processes/{processId}'} # type: ignore + + def get_process_dump_slot( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> IO + """Get a memory dump of a process by its ID for a specific scaled-out instance in a web site. + + Description for Get a memory dump of a process by its ID for a specific scaled-out instance in + a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[IO] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_process_dump_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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=True, **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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_process_dump_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/processes/{processId}/dump'} # type: ignore + + def list_process_modules_slot( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ProcessModuleInfoCollection"] + """List module information for a process by its ID for a specific scaled-out instance in a web site. + + Description for List module information for a process by its ID for a specific scaled-out + instance in a web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ProcessModuleInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessModuleInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_process_modules_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessModuleInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_process_modules_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/processes/{processId}/modules'} # type: ignore + + def get_process_module_slot( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + base_address, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ProcessModuleInfo" + """Get process information by its ID for a specific scaled-out instance in a web site. + + Description for Get process information by its ID for a specific scaled-out instance in a web + site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param base_address: Module base address. + :type base_address: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ProcessModuleInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ProcessModuleInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessModuleInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_process_module_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'baseAddress': self._serialize.url("base_address", base_address, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ProcessModuleInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_process_module_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/processes/{processId}/modules/{baseAddress}'} # type: ignore + + def list_process_threads_slot( + self, + resource_group_name, # type: str + name, # type: str + process_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ProcessThreadInfoCollection"] + """List the threads in a process by its ID for a specific scaled-out instance in a web site. + + Description for List the threads in a process by its ID for a specific scaled-out instance in a + web site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param process_id: PID. + :type process_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ProcessThreadInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.ProcessThreadInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ProcessThreadInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_process_threads_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'processId': self._serialize.url("process_id", process_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('ProcessThreadInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_process_threads_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/processes/{processId}/threads'} # type: ignore + + def list_public_certificates_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.PublicCertificateCollection"] + """Get public certificates for an app or a deployment slot. + + Description for Get public certificates for an app or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API gets hostname + bindings for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PublicCertificateCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.PublicCertificateCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PublicCertificateCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_public_certificates_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PublicCertificateCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_public_certificates_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/publicCertificates'} # type: ignore + + def get_public_certificate_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + public_certificate_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.PublicCertificate" + """Get the named public certificate for an app (or deployment slot, if specified). + + Description for Get the named public certificate for an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API the named binding + for the production slot. + :type slot: str + :param public_certificate_name: Public certificate name. + :type public_certificate_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PublicCertificate, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PublicCertificate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PublicCertificate"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_public_certificate_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'publicCertificateName': self._serialize.url("public_certificate_name", public_certificate_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PublicCertificate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_public_certificate_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/publicCertificates/{publicCertificateName}'} # type: ignore + + def create_or_update_public_certificate_slot( + self, + resource_group_name, # type: str + name, # type: str + public_certificate_name, # type: str + slot, # type: str + public_certificate, # type: "_models.PublicCertificate" + **kwargs # type: Any + ): + # type: (...) -> "_models.PublicCertificate" + """Creates a hostname binding for an app. + + Description for Creates a hostname binding for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param public_certificate_name: Public certificate name. + :type public_certificate_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will create a + binding for the production slot. + :type slot: str + :param public_certificate: Public certificate details. This is the JSON representation of a + PublicCertificate object. + :type public_certificate: ~azure.mgmt.web.v2021_01_15.models.PublicCertificate + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PublicCertificate, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.PublicCertificate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PublicCertificate"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_public_certificate_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'publicCertificateName': self._serialize.url("public_certificate_name", public_certificate_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(public_certificate, 'PublicCertificate') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PublicCertificate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_public_certificate_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/publicCertificates/{publicCertificateName}'} # type: ignore + + def delete_public_certificate_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + public_certificate_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a hostname binding for an app. + + Description for Deletes a hostname binding for an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + binding for the production slot. + :type slot: str + :param public_certificate_name: Public certificate name. + :type public_certificate_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_public_certificate_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'publicCertificateName': self._serialize.url("public_certificate_name", public_certificate_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_public_certificate_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/publicCertificates/{publicCertificateName}'} # type: ignore + + def list_publishing_profile_xml_with_secrets_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + publishing_profile_options, # type: "_models.CsmPublishingProfileOptions" + **kwargs # type: Any + ): + # type: (...) -> IO + """Gets the publishing profile for an app (or deployment slot, if specified). + + Description for Gets the publishing profile for an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + publishing profile for the production slot. + :type slot: str + :param publishing_profile_options: Specifies publishingProfileOptions for publishing profile. + For example, use {"format": "FileZilla3"} to get a FileZilla publishing profile. + :type publishing_profile_options: ~azure.mgmt.web.v2021_01_15.models.CsmPublishingProfileOptions + :keyword callable cls: A custom type or function that will be passed the direct response + :return: IO, or the result of cls(response) + :rtype: IO + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[IO] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/xml" + + # Construct URL + url = self.list_publishing_profile_xml_with_secrets_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(publishing_profile_options, 'CsmPublishingProfileOptions') + 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=True, **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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = response.stream_download(self._client._pipeline) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_publishing_profile_xml_with_secrets_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/publishxml'} # type: ignore + + def reset_slot_configuration_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Resets the configuration settings of the current slot if they were previously modified by calling the API with POST. + + Description for Resets the configuration settings of the current slot if they were previously + modified by calling the API with POST. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API resets + configuration settings for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.reset_slot_configuration_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + reset_slot_configuration_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/resetSlotConfig'} # type: ignore + + def restart_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + soft_restart=None, # type: Optional[bool] + synchronous=None, # type: Optional[bool] + **kwargs # type: Any + ): + # type: (...) -> None + """Restarts an app (or deployment slot, if specified). + + Description for Restarts an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will restart the + production slot. + :type slot: str + :param soft_restart: Specify true to apply the configuration settings and restarts the app only + if necessary. By default, the API always restarts and reprovisions the app. + :type soft_restart: bool + :param synchronous: Specify true to block until the app is restarted. By default, it is set to + false, and the API responds immediately (asynchronous). + :type synchronous: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.restart_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if soft_restart is not None: + query_parameters['softRestart'] = self._serialize.query("soft_restart", soft_restart, 'bool') + if synchronous is not None: + query_parameters['synchronous'] = self._serialize.query("synchronous", synchronous, 'bool') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + restart_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/restart'} # type: ignore + + def _restore_from_backup_blob_slot_initial( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + request, # type: "_models.RestoreRequest" + **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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._restore_from_backup_blob_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(request, 'RestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _restore_from_backup_blob_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/restoreFromBackupBlob'} # type: ignore + + def begin_restore_from_backup_blob_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + request, # type: "_models.RestoreRequest" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Restores an app from a backup blob in Azure Storage. + + Description for Restores an app from a backup blob in Azure Storage. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will restore a + backup of the production slot. + :type slot: str + :param request: Information on restore request . + :type request: ~azure.mgmt.web.v2021_01_15.models.RestoreRequest + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._restore_from_backup_blob_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + request=request, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_restore_from_backup_blob_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/restoreFromBackupBlob'} # type: ignore + + def _restore_from_deleted_app_slot_initial( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + restore_request, # type: "_models.DeletedAppRestoreRequest" + **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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._restore_from_deleted_app_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(restore_request, 'DeletedAppRestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _restore_from_deleted_app_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/restoreFromDeletedApp'} # type: ignore + + def begin_restore_from_deleted_app_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + restore_request, # type: "_models.DeletedAppRestoreRequest" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Restores a deleted web app to this web app. + + Description for Restores a deleted web app to this web app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param restore_request: Deleted web app restore information. + :type restore_request: ~azure.mgmt.web.v2021_01_15.models.DeletedAppRestoreRequest + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._restore_from_deleted_app_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + restore_request=restore_request, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_restore_from_deleted_app_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/restoreFromDeletedApp'} # type: ignore + + def _restore_snapshot_slot_initial( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + restore_request, # type: "_models.SnapshotRestoreRequest" + **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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._restore_snapshot_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(restore_request, 'SnapshotRestoreRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _restore_snapshot_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/restoreSnapshot'} # type: ignore + + def begin_restore_snapshot_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + restore_request, # type: "_models.SnapshotRestoreRequest" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Restores a web app from a snapshot. + + Description for Restores a web app from a snapshot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :param restore_request: Snapshot restore settings. Snapshot information can be obtained by + calling GetDeletedSites or GetSiteSnapshots API. + :type restore_request: ~azure.mgmt.web.v2021_01_15.models.SnapshotRestoreRequest + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._restore_snapshot_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + restore_request=restore_request, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_restore_snapshot_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/restoreSnapshot'} # type: ignore + + def list_site_extensions_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.SiteExtensionInfoCollection"] + """Get list of siteextensions for a web site, or a deployment slot. + + Description for Get list of siteextensions for a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API uses the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SiteExtensionInfoCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.SiteExtensionInfoCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteExtensionInfoCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_site_extensions_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SiteExtensionInfoCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_site_extensions_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/siteextensions'} # type: ignore + + def get_site_extension_slot( + self, + resource_group_name, # type: str + name, # type: str + site_extension_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteExtensionInfo" + """Get site extension information by its ID for a web site, or a deployment slot. + + Description for Get site extension information by its ID for a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param site_extension_id: Site extension name. + :type site_extension_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API uses the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteExtensionInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteExtensionInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteExtensionInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_site_extension_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'siteExtensionId': self._serialize.url("site_extension_id", site_extension_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SiteExtensionInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_site_extension_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/siteextensions/{siteExtensionId}'} # type: ignore + + def _install_site_extension_slot_initial( + self, + resource_group_name, # type: str + name, # type: str + site_extension_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteExtensionInfo" + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteExtensionInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._install_site_extension_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'siteExtensionId': self._serialize.url("site_extension_id", site_extension_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.put(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, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('SiteExtensionInfo', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('SiteExtensionInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _install_site_extension_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/siteextensions/{siteExtensionId}'} # type: ignore + + def begin_install_site_extension_slot( + self, + resource_group_name, # type: str + name, # type: str + site_extension_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.SiteExtensionInfo"] + """Install site extension on a web site, or a deployment slot. + + Description for Install site extension on a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param site_extension_id: Site extension name. + :type site_extension_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API uses the + production slot. + :type slot: 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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 SiteExtensionInfo or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.SiteExtensionInfo] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteExtensionInfo"] + 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._install_site_extension_slot_initial( + resource_group_name=resource_group_name, + name=name, + site_extension_id=site_extension_id, + slot=slot, + 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('SiteExtensionInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'siteExtensionId': self._serialize.url("site_extension_id", site_extension_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_install_site_extension_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/siteextensions/{siteExtensionId}'} # type: ignore + + def delete_site_extension_slot( + self, + resource_group_name, # type: str + name, # type: str + site_extension_id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Remove a site extension from a web site, or a deployment slot. + + Description for Remove a site extension from a web site, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param site_extension_id: Site extension name. + :type site_extension_id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes a + deployment for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_site_extension_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'siteExtensionId': self._serialize.url("site_extension_id", site_extension_id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_site_extension_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/siteextensions/{siteExtensionId}'} # type: ignore + + def list_slot_differences_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + slot_swap_entity, # type: "_models.CsmSlotEntity" + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.SlotDifferenceCollection"] + """Get the difference in configuration settings between two web app slots. + + Description for Get the difference in configuration settings between two web app slots. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the source slot. If a slot is not specified, the production slot is used + as the source slot. + :type slot: str + :param slot_swap_entity: JSON object that contains the target slot name. See example. + :type slot_swap_entity: ~azure.mgmt.web.v2021_01_15.models.CsmSlotEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SlotDifferenceCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.SlotDifferenceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SlotDifferenceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = "application/json" + accept = "application/json" + + def prepare_request(next_link=None): + # 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') + + if not next_link: + # Construct URL + url = self.list_slot_differences_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(slot_swap_entity, 'CsmSlotEntity') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(slot_swap_entity, 'CsmSlotEntity') + body_content_kwargs['content'] = body_content + request = self._client.get(url, query_parameters, header_parameters, **body_content_kwargs) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('SlotDifferenceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_slot_differences_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/slotsdiffs'} # type: ignore + + def _swap_slot_initial( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + slot_swap_entity, # type: "_models.CsmSlotEntity" + **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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._swap_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(slot_swap_entity, 'CsmSlotEntity') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _swap_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/slotsswap'} # type: ignore + + def begin_swap_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + slot_swap_entity, # type: "_models.CsmSlotEntity" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Swaps two deployment slots of an app. + + Description for Swaps two deployment slots of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the source slot. If a slot is not specified, the production slot is used + as the source slot. + :type slot: str + :param slot_swap_entity: JSON object that contains the target slot name. See example. + :type slot_swap_entity: ~azure.mgmt.web.v2021_01_15.models.CsmSlotEntity + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._swap_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + slot_swap_entity=slot_swap_entity, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_swap_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/slotsswap'} # type: ignore + + def list_snapshots_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.SnapshotCollection"] + """Returns all Snapshots to the user. + + Description for Returns all Snapshots to the user. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Website Name. + :type name: str + :param slot: Website Slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SnapshotCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.SnapshotCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SnapshotCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_snapshots_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SnapshotCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_snapshots_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/snapshots'} # type: ignore + + def list_snapshots_from_dr_secondary_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.SnapshotCollection"] + """Returns all Snapshots to the user from DRSecondary endpoint. + + Description for Returns all Snapshots to the user from DRSecondary endpoint. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Website Name. + :type name: str + :param slot: Website Slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SnapshotCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.SnapshotCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SnapshotCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_snapshots_from_dr_secondary_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SnapshotCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_snapshots_from_dr_secondary_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/snapshotsdr'} # type: ignore + + def get_source_control_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteSourceControl" + """Gets the source control configuration of an app. + + Description for Gets the source control configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + source control configuration for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteSourceControl, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteSourceControl + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSourceControl"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_source_control_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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, 201, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_source_control_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/sourcecontrols/web'} # type: ignore + + def _create_or_update_source_control_slot_initial( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + site_source_control, # type: "_models.SiteSourceControl" + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteSourceControl" + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSourceControl"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_source_control_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_source_control, 'SiteSourceControl') + 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, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_source_control_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/sourcecontrols/web'} # type: ignore + + def begin_create_or_update_source_control_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + site_source_control, # type: "_models.SiteSourceControl" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.SiteSourceControl"] + """Updates the source control configuration of an app. + + Description for Updates the source control configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + source control configuration for the production slot. + :type slot: str + :param site_source_control: JSON representation of a SiteSourceControl object. See example. + :type site_source_control: ~azure.mgmt.web.v2021_01_15.models.SiteSourceControl + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 SiteSourceControl or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.SiteSourceControl] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSourceControl"] + 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_or_update_source_control_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + site_source_control=site_source_control, + 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('SiteSourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update_source_control_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/sourcecontrols/web'} # type: ignore + + def delete_source_control_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + additional_flags=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes the source control configuration of an app. + + Description for Deletes the source control configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + source control configuration for the production slot. + :type slot: str + :param additional_flags: + :type additional_flags: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_source_control_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if additional_flags is not None: + query_parameters['additionalFlags'] = self._serialize.query("additional_flags", additional_flags, 'str') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_source_control_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/sourcecontrols/web'} # type: ignore + + def update_source_control_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + site_source_control, # type: "_models.SiteSourceControl" + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteSourceControl" + """Updates the source control configuration of an app. + + Description for Updates the source control configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will update the + source control configuration for the production slot. + :type slot: str + :param site_source_control: JSON representation of a SiteSourceControl object. See example. + :type site_source_control: ~azure.mgmt.web.v2021_01_15.models.SiteSourceControl + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteSourceControl, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteSourceControl + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSourceControl"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_source_control_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_source_control, 'SiteSourceControl') + 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, 201, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_source_control_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/sourcecontrols/web'} # type: ignore + + def start_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Starts an app (or deployment slot, if specified). + + Description for Starts an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will start the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.start_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + start_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/start'} # type: ignore + + def _start_network_trace_slot_initial( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + duration_in_seconds=None, # type: Optional[int] + max_frame_length=None, # type: Optional[int] + sas_url=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> List["_models.NetworkTrace"] + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._start_network_trace_slot_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if duration_in_seconds is not None: + query_parameters['durationInSeconds'] = self._serialize.query("duration_in_seconds", duration_in_seconds, 'int') + if max_frame_length is not None: + query_parameters['maxFrameLength'] = self._serialize.query("max_frame_length", max_frame_length, 'int') + if sas_url is not None: + query_parameters['sasUrl'] = self._serialize.query("sas_url", sas_url, 'str') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _start_network_trace_slot_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/startNetworkTrace'} # type: ignore + + def begin_start_network_trace_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + duration_in_seconds=None, # type: Optional[int] + max_frame_length=None, # type: Optional[int] + sas_url=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> LROPoller[List["_models.NetworkTrace"]] + """Start capturing network packets for the site. + + Description for Start capturing network packets for the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param slot: The name of the slot for this web app. + :type slot: str + :param duration_in_seconds: The duration to keep capturing in seconds. + :type duration_in_seconds: int + :param max_frame_length: The maximum frame length in bytes (Optional). + :type max_frame_length: int + :param sas_url: The Blob URL to store capture file. + :type sas_url: 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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 list of NetworkTrace or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace]] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + 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._start_network_trace_slot_initial( + resource_group_name=resource_group_name, + name=name, + slot=slot, + duration_in_seconds=duration_in_seconds, + max_frame_length=max_frame_length, + sas_url=sas_url, + 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('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_start_network_trace_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/startNetworkTrace'} # type: ignore + + def stop_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Stops an app (or deployment slot, if specified). + + Description for Stops an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will stop the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.stop_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + stop_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/stop'} # type: ignore + + def stop_network_trace_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Stop ongoing capturing network packets for the site. + + Description for Stop ongoing capturing network packets for the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param slot: The name of the slot for this web app. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.stop_network_trace_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + stop_network_trace_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/stopNetworkTrace'} # type: ignore + + def sync_repository_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Sync web app repository. + + Description for Sync web app repository. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :param slot: Name of web app slot. If not specified then will default to production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.sync_repository_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + sync_repository_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/sync'} # type: ignore + + def sync_function_triggers_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Syncs function trigger metadata to the management database. + + Description for Syncs function trigger metadata to the management database. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.sync_function_triggers_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + sync_function_triggers_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/syncfunctiontriggers'} # type: ignore + + def list_triggered_web_jobs_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.TriggeredWebJobCollection"] + """List triggered web jobs for an app, or a deployment slot. + + Description for List triggered web jobs for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes a + deployment for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either TriggeredWebJobCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.TriggeredWebJobCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TriggeredWebJobCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_triggered_web_jobs_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('TriggeredWebJobCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_triggered_web_jobs_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/triggeredwebjobs'} # type: ignore + + def get_triggered_web_job_slot( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.TriggeredWebJob" + """Gets a triggered web job by its ID for an app, or a deployment slot. + + Description for Gets a triggered web job by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API uses the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TriggeredWebJob, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.TriggeredWebJob + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TriggeredWebJob"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_triggered_web_job_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('TriggeredWebJob', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_triggered_web_job_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/triggeredwebjobs/{webJobName}'} # type: ignore + + def delete_triggered_web_job_slot( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a triggered web job by its ID for an app, or a deployment slot. + + Description for Delete a triggered web job by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API deletes web job + for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_triggered_web_job_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_triggered_web_job_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/triggeredwebjobs/{webJobName}'} # type: ignore + + def list_triggered_web_job_history_slot( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.TriggeredJobHistoryCollection"] + """List a triggered web job's history for an app, or a deployment slot. + + Description for List a triggered web job's history for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API uses the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either TriggeredJobHistoryCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.TriggeredJobHistoryCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TriggeredJobHistoryCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_triggered_web_job_history_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('TriggeredJobHistoryCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_triggered_web_job_history_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/triggeredwebjobs/{webJobName}/history'} # type: ignore + + def get_triggered_web_job_history_slot( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + id, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.TriggeredJobHistory" + """Gets a triggered web job's history by its ID for an app, , or a deployment slot. + + Description for Gets a triggered web job's history by its ID for an app, , or a deployment + slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param id: History ID. + :type id: str + :param slot: Name of the deployment slot. If a slot is not specified, the API uses the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TriggeredJobHistory, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.TriggeredJobHistory + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TriggeredJobHistory"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_triggered_web_job_history_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('TriggeredJobHistory', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_triggered_web_job_history_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/triggeredwebjobs/{webJobName}/history/{id}'} # type: ignore + + def run_triggered_web_job_slot( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Run a triggered web job for an app, or a deployment slot. + + Description for Run a triggered web job for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API uses the + production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.run_triggered_web_job_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + run_triggered_web_job_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/triggeredwebjobs/{webJobName}/run'} # type: ignore + + def list_usages_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + filter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.CsmUsageQuotaCollection"] + """Gets the quota usage information of an app (or deployment slot, if specified). + + Description for Gets the quota usage information of an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get quota + information of the production slot. + :type slot: str + :param filter: Return only information specified in the filter (using OData syntax). For + example: $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq + 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq + duration'[Hour|Minute|Day]'. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either CsmUsageQuotaCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.CsmUsageQuotaCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmUsageQuotaCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_usages_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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 filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('CsmUsageQuotaCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_usages_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/usages'} # type: ignore + + def list_vnet_connections_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.VnetInfo"] + """Gets the virtual networks the app (or deployment slot) is connected to. + + Description for Gets the virtual networks the app (or deployment slot) is connected to. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get virtual + network connections for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of VnetInfo, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.VnetInfo] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.VnetInfo"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_vnet_connections_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[VnetInfo]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_vnet_connections_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/virtualNetworkConnections'} # type: ignore + + def get_vnet_connection_slot( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetInfo" + """Gets a virtual network the app (or deployment slot) is connected to by name. + + Description for Gets a virtual network the app (or deployment slot) is connected to by name. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the virtual network. + :type vnet_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get the + named virtual network for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_vnet_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_vnet_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/virtualNetworkConnections/{vnetName}'} # type: ignore + + def create_or_update_vnet_connection_slot( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + slot, # type: str + connection_envelope, # type: "_models.VnetInfo" + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetInfo" + """Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH). + + Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the + connection properties (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of an existing Virtual Network. + :type vnet_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will add or + update connections for the production slot. + :type slot: str + :param connection_envelope: Properties of the Virtual Network connection. See example. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_vnet_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetInfo') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_vnet_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/virtualNetworkConnections/{vnetName}'} # type: ignore + + def delete_vnet_connection_slot( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a connection from an app (or deployment slot to a named virtual network. + + Description for Deletes a connection from an app (or deployment slot to a named virtual + network. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the virtual network. + :type vnet_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will delete the + connection for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_vnet_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_vnet_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/virtualNetworkConnections/{vnetName}'} # type: ignore + + def update_vnet_connection_slot( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + slot, # type: str + connection_envelope, # type: "_models.VnetInfo" + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetInfo" + """Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH). + + Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the + connection properties (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of an existing Virtual Network. + :type vnet_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will add or + update connections for the production slot. + :type slot: str + :param connection_envelope: Properties of the Virtual Network connection. See example. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_vnet_connection_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetInfo') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_vnet_connection_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/virtualNetworkConnections/{vnetName}'} # type: ignore + + def get_vnet_connection_gateway_slot( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + gateway_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetGateway" + """Gets an app's Virtual Network gateway. + + Description for Gets an app's Virtual Network gateway. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param gateway_name: Name of the gateway. Currently, the only supported string is "primary". + :type gateway_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will get a + gateway for the production slot's Virtual Network. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetGateway, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetGateway"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_vnet_connection_gateway_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'gatewayName': self._serialize.url("gateway_name", gateway_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetGateway', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_vnet_connection_gateway_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/virtualNetworkConnections/{vnetName}/gateways/{gatewayName}'} # type: ignore + + def create_or_update_vnet_connection_gateway_slot( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + gateway_name, # type: str + slot, # type: str + connection_envelope, # type: "_models.VnetGateway" + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetGateway" + """Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH). + + Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param gateway_name: Name of the gateway. Currently, the only supported string is "primary". + :type gateway_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will add or + update a gateway for the production slot's Virtual Network. + :type slot: str + :param connection_envelope: The properties to update this gateway with. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetGateway, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetGateway"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_vnet_connection_gateway_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'gatewayName': self._serialize.url("gateway_name", gateway_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetGateway') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetGateway', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_vnet_connection_gateway_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/virtualNetworkConnections/{vnetName}/gateways/{gatewayName}'} # type: ignore + + def update_vnet_connection_gateway_slot( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + gateway_name, # type: str + slot, # type: str + connection_envelope, # type: "_models.VnetGateway" + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetGateway" + """Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH). + + Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param gateway_name: Name of the gateway. Currently, the only supported string is "primary". + :type gateway_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API will add or + update a gateway for the production slot's Virtual Network. + :type slot: str + :param connection_envelope: The properties to update this gateway with. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetGateway, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetGateway"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_vnet_connection_gateway_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'gatewayName': self._serialize.url("gateway_name", gateway_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetGateway') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetGateway', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_vnet_connection_gateway_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/virtualNetworkConnections/{vnetName}/gateways/{gatewayName}'} # type: ignore + + def list_web_jobs_slot( + self, + resource_group_name, # type: str + name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.WebJobCollection"] + """List webjobs for an app, or a deployment slot. + + Description for List webjobs for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebJobCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.WebJobCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebJobCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_web_jobs_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('WebJobCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_web_jobs_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/webjobs'} # type: ignore + + def get_web_job_slot( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + slot, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.WebJob" + """Get webjob information for an app, or a deployment slot. + + Description for Get webjob information for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of the web job. + :type web_job_name: str + :param slot: Name of the deployment slot. If a slot is not specified, the API returns + deployments for the production slot. + :type slot: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: WebJob, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.WebJob + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebJob"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_web_job_slot.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'slot': self._serialize.url("slot", slot, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('WebJob', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_web_job_slot.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/webjobs/{webJobName}'} # type: ignore + + def list_slot_differences_from_production( + self, + resource_group_name, # type: str + name, # type: str + slot_swap_entity, # type: "_models.CsmSlotEntity" + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.SlotDifferenceCollection"] + """Get the difference in configuration settings between two web app slots. + + Description for Get the difference in configuration settings between two web app slots. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot_swap_entity: JSON object that contains the target slot name. See example. + :type slot_swap_entity: ~azure.mgmt.web.v2021_01_15.models.CsmSlotEntity + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SlotDifferenceCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.SlotDifferenceCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SlotDifferenceCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = "application/json" + accept = "application/json" + + def prepare_request(next_link=None): + # 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') + + if not next_link: + # Construct URL + url = self.list_slot_differences_from_production.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(slot_swap_entity, 'CsmSlotEntity') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(slot_swap_entity, 'CsmSlotEntity') + body_content_kwargs['content'] = body_content + request = self._client.get(url, query_parameters, header_parameters, **body_content_kwargs) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('SlotDifferenceCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_slot_differences_from_production.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slotsdiffs'} # type: ignore + + def _swap_slot_with_production_initial( + self, + resource_group_name, # type: str + name, # type: str + slot_swap_entity, # type: "_models.CsmSlotEntity" + **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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._swap_slot_with_production_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(slot_swap_entity, 'CsmSlotEntity') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _swap_slot_with_production_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slotsswap'} # type: ignore + + def begin_swap_slot_with_production( + self, + resource_group_name, # type: str + name, # type: str + slot_swap_entity, # type: "_models.CsmSlotEntity" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Swaps two deployment slots of an app. + + Description for Swaps two deployment slots of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param slot_swap_entity: JSON object that contains the target slot name. See example. + :type slot_swap_entity: ~azure.mgmt.web.v2021_01_15.models.CsmSlotEntity + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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._swap_slot_with_production_initial( + resource_group_name=resource_group_name, + name=name, + slot_swap_entity=slot_swap_entity, + 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 = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_swap_slot_with_production.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slotsswap'} # type: ignore + + def list_snapshots( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.SnapshotCollection"] + """Returns all Snapshots to the user. + + Description for Returns all Snapshots to the user. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Website Name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SnapshotCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.SnapshotCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SnapshotCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_snapshots.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SnapshotCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_snapshots.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/snapshots'} # type: ignore + + def list_snapshots_from_dr_secondary( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.SnapshotCollection"] + """Returns all Snapshots to the user from DRSecondary endpoint. + + Description for Returns all Snapshots to the user from DRSecondary endpoint. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Website Name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SnapshotCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.SnapshotCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SnapshotCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_snapshots_from_dr_secondary.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('SnapshotCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_snapshots_from_dr_secondary.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/snapshotsdr'} # type: ignore + + def get_source_control( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteSourceControl" + """Gets the source control configuration of an app. + + Description for Gets the source control configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteSourceControl, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteSourceControl + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSourceControl"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_source_control.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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, 201, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_source_control.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/sourcecontrols/web'} # type: ignore + + def _create_or_update_source_control_initial( + self, + resource_group_name, # type: str + name, # type: str + site_source_control, # type: "_models.SiteSourceControl" + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteSourceControl" + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSourceControl"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_or_update_source_control_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_source_control, 'SiteSourceControl') + 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, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_source_control_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/sourcecontrols/web'} # type: ignore + + def begin_create_or_update_source_control( + self, + resource_group_name, # type: str + name, # type: str + site_source_control, # type: "_models.SiteSourceControl" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.SiteSourceControl"] + """Updates the source control configuration of an app. + + Description for Updates the source control configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param site_source_control: JSON representation of a SiteSourceControl object. See example. + :type site_source_control: ~azure.mgmt.web.v2021_01_15.models.SiteSourceControl + :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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 SiteSourceControl or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.web.v2021_01_15.models.SiteSourceControl] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSourceControl"] + 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_or_update_source_control_initial( + resource_group_name=resource_group_name, + name=name, + site_source_control=site_source_control, + 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('SiteSourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_create_or_update_source_control.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/sourcecontrols/web'} # type: ignore + + def delete_source_control( + self, + resource_group_name, # type: str + name, # type: str + additional_flags=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes the source control configuration of an app. + + Description for Deletes the source control configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param additional_flags: + :type additional_flags: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_source_control.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if additional_flags is not None: + query_parameters['additionalFlags'] = self._serialize.query("additional_flags", additional_flags, 'str') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_source_control.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/sourcecontrols/web'} # type: ignore + + def update_source_control( + self, + resource_group_name, # type: str + name, # type: str + site_source_control, # type: "_models.SiteSourceControl" + **kwargs # type: Any + ): + # type: (...) -> "_models.SiteSourceControl" + """Updates the source control configuration of an app. + + Description for Updates the source control configuration of an app. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param site_source_control: JSON representation of a SiteSourceControl object. See example. + :type site_source_control: ~azure.mgmt.web.v2021_01_15.models.SiteSourceControl + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SiteSourceControl, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SiteSourceControl + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SiteSourceControl"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_source_control.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(site_source_control, 'SiteSourceControl') + 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, 201, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('SiteSourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_source_control.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/sourcecontrols/web'} # type: ignore + + def start( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Starts an app (or deployment slot, if specified). + + Description for Starts an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.start.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + start.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/start'} # type: ignore + + def _start_network_trace_initial( + self, + resource_group_name, # type: str + name, # type: str + duration_in_seconds=None, # type: Optional[int] + max_frame_length=None, # type: Optional[int] + sas_url=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> List["_models.NetworkTrace"] + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self._start_network_trace_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if duration_in_seconds is not None: + query_parameters['durationInSeconds'] = self._serialize.query("duration_in_seconds", duration_in_seconds, 'int') + if max_frame_length is not None: + query_parameters['maxFrameLength'] = self._serialize.query("max_frame_length", max_frame_length, 'int') + if sas_url is not None: + query_parameters['sasUrl'] = self._serialize.query("sas_url", sas_url, 'str') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _start_network_trace_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/startNetworkTrace'} # type: ignore + + def begin_start_network_trace( + self, + resource_group_name, # type: str + name, # type: str + duration_in_seconds=None, # type: Optional[int] + max_frame_length=None, # type: Optional[int] + sas_url=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> LROPoller[List["_models.NetworkTrace"]] + """Start capturing network packets for the site. + + Description for Start capturing network packets for the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :param duration_in_seconds: The duration to keep capturing in seconds. + :type duration_in_seconds: int + :param max_frame_length: The maximum frame length in bytes (Optional). + :type max_frame_length: int + :param sas_url: The Blob URL to store capture file. + :type sas_url: 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: By default, your polling method will be ARMPolling. + Pass in False for this operation to not poll, or pass in 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 list of NetworkTrace or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[list[~azure.mgmt.web.v2021_01_15.models.NetworkTrace]] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.NetworkTrace"]] + 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._start_network_trace_initial( + resource_group_name=resource_group_name, + name=name, + duration_in_seconds=duration_in_seconds, + max_frame_length=max_frame_length, + sas_url=sas_url, + 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('[NetworkTrace]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, '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_start_network_trace.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/startNetworkTrace'} # type: ignore + + def stop( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Stops an app (or deployment slot, if specified). + + Description for Stops an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.stop.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + stop.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/stop'} # type: ignore + + def stop_network_trace( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Stop ongoing capturing network packets for the site. + + Description for Stop ongoing capturing network packets for the site. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: The name of the web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.stop_network_trace.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + stop_network_trace.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/stopNetworkTrace'} # type: ignore + + def sync_repository( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Sync web app repository. + + Description for Sync web app repository. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of web app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.sync_repository.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + sync_repository.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/sync'} # type: ignore + + def sync_function_triggers( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Syncs function trigger metadata to the management database. + + Description for Syncs function trigger metadata to the management database. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.sync_function_triggers.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + sync_function_triggers.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/syncfunctiontriggers'} # type: ignore + + def list_triggered_web_jobs( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.TriggeredWebJobCollection"] + """List triggered web jobs for an app, or a deployment slot. + + Description for List triggered web jobs for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either TriggeredWebJobCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.TriggeredWebJobCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TriggeredWebJobCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_triggered_web_jobs.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('TriggeredWebJobCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_triggered_web_jobs.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/triggeredwebjobs'} # type: ignore + + def get_triggered_web_job( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.TriggeredWebJob" + """Gets a triggered web job by its ID for an app, or a deployment slot. + + Description for Gets a triggered web job by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TriggeredWebJob, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.TriggeredWebJob + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TriggeredWebJob"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_triggered_web_job.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('TriggeredWebJob', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_triggered_web_job.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/triggeredwebjobs/{webJobName}'} # type: ignore + + def delete_triggered_web_job( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete a triggered web job by its ID for an app, or a deployment slot. + + Description for Delete a triggered web job by its ID for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_triggered_web_job.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_triggered_web_job.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/triggeredwebjobs/{webJobName}'} # type: ignore + + def list_triggered_web_job_history( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.TriggeredJobHistoryCollection"] + """List a triggered web job's history for an app, or a deployment slot. + + Description for List a triggered web job's history for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either TriggeredJobHistoryCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.TriggeredJobHistoryCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TriggeredJobHistoryCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_triggered_web_job_history.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('TriggeredJobHistoryCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_triggered_web_job_history.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/triggeredwebjobs/{webJobName}/history'} # type: ignore + + def get_triggered_web_job_history( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.TriggeredJobHistory" + """Gets a triggered web job's history by its ID for an app, , or a deployment slot. + + Description for Gets a triggered web job's history by its ID for an app, , or a deployment + slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :param id: History ID. + :type id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: TriggeredJobHistory, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.TriggeredJobHistory + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.TriggeredJobHistory"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_triggered_web_job_history.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'id': self._serialize.url("id", id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('TriggeredJobHistory', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_triggered_web_job_history.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/triggeredwebjobs/{webJobName}/history/{id}'} # type: ignore + + def run_triggered_web_job( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Run a triggered web job for an app, or a deployment slot. + + Description for Run a triggered web job for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of Web Job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.run_triggered_web_job.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + run_triggered_web_job.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/triggeredwebjobs/{webJobName}/run'} # type: ignore + + def list_usages( + self, + resource_group_name, # type: str + name, # type: str + filter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.CsmUsageQuotaCollection"] + """Gets the quota usage information of an app (or deployment slot, if specified). + + Description for Gets the quota usage information of an app (or deployment slot, if specified). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param filter: Return only information specified in the filter (using OData syntax). For + example: $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq + 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq + duration'[Hour|Minute|Day]'. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either CsmUsageQuotaCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.CsmUsageQuotaCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.CsmUsageQuotaCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_usages.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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 filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str', skip_quote=True) + + 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('CsmUsageQuotaCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_usages.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/usages'} # type: ignore + + def list_vnet_connections( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> List["_models.VnetInfo"] + """Gets the virtual networks the app (or deployment slot) is connected to. + + Description for Gets the virtual networks the app (or deployment slot) is connected to. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: list of VnetInfo, or the result of cls(response) + :rtype: list[~azure.mgmt.web.v2021_01_15.models.VnetInfo] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[List["_models.VnetInfo"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_vnet_connections.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('[VnetInfo]', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_vnet_connections.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/virtualNetworkConnections'} # type: ignore + + def get_vnet_connection( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetInfo" + """Gets a virtual network the app (or deployment slot) is connected to by name. + + Description for Gets a virtual network the app (or deployment slot) is connected to by name. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the virtual network. + :type vnet_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_vnet_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_vnet_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/virtualNetworkConnections/{vnetName}'} # type: ignore + + def create_or_update_vnet_connection( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + connection_envelope, # type: "_models.VnetInfo" + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetInfo" + """Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH). + + Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the + connection properties (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of an existing Virtual Network. + :type vnet_name: str + :param connection_envelope: Properties of the Virtual Network connection. See example. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_vnet_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetInfo') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_vnet_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/virtualNetworkConnections/{vnetName}'} # type: ignore + + def delete_vnet_connection( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Deletes a connection from an app (or deployment slot to a named virtual network. + + Description for Deletes a connection from an app (or deployment slot to a named virtual + network. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the virtual network. + :type vnet_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + accept = "application/json" + + # Construct URL + url = self.delete_vnet_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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.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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete_vnet_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/virtualNetworkConnections/{vnetName}'} # type: ignore + + def update_vnet_connection( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + connection_envelope, # type: "_models.VnetInfo" + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetInfo" + """Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH). + + Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the + connection properties (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of an existing Virtual Network. + :type vnet_name: str + :param connection_envelope: Properties of the Virtual Network connection. See example. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetInfo, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetInfo + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetInfo"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_vnet_connection.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetInfo') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetInfo', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_vnet_connection.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/virtualNetworkConnections/{vnetName}'} # type: ignore + + def get_vnet_connection_gateway( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + gateway_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetGateway" + """Gets an app's Virtual Network gateway. + + Description for Gets an app's Virtual Network gateway. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param gateway_name: Name of the gateway. Currently, the only supported string is "primary". + :type gateway_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetGateway, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetGateway"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_vnet_connection_gateway.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'gatewayName': self._serialize.url("gateway_name", gateway_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetGateway', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_vnet_connection_gateway.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/virtualNetworkConnections/{vnetName}/gateways/{gatewayName}'} # type: ignore + + def create_or_update_vnet_connection_gateway( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + gateway_name, # type: str + connection_envelope, # type: "_models.VnetGateway" + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetGateway" + """Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH). + + Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param gateway_name: Name of the gateway. Currently, the only supported string is "primary". + :type gateway_name: str + :param connection_envelope: The properties to update this gateway with. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetGateway, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetGateway"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update_vnet_connection_gateway.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'gatewayName': self._serialize.url("gateway_name", gateway_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetGateway') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetGateway', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_vnet_connection_gateway.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/virtualNetworkConnections/{vnetName}/gateways/{gatewayName}'} # type: ignore + + def update_vnet_connection_gateway( + self, + resource_group_name, # type: str + name, # type: str + vnet_name, # type: str + gateway_name, # type: str + connection_envelope, # type: "_models.VnetGateway" + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetGateway" + """Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH). + + Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH). + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Name of the app. + :type name: str + :param vnet_name: Name of the Virtual Network. + :type vnet_name: str + :param gateway_name: Name of the gateway. Currently, the only supported string is "primary". + :type gateway_name: str + :param connection_envelope: The properties to update this gateway with. + :type connection_envelope: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetGateway, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetGateway + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetGateway"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_vnet_connection_gateway.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'vnetName': self._serialize.url("vnet_name", vnet_name, 'str'), + 'gatewayName': self._serialize.url("gateway_name", gateway_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(connection_envelope, 'VnetGateway') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetGateway', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_vnet_connection_gateway.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/virtualNetworkConnections/{vnetName}/gateways/{gatewayName}'} # type: ignore + + def list_web_jobs( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.WebJobCollection"] + """List webjobs for an app, or a deployment slot. + + Description for List webjobs for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either WebJobCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.WebJobCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebJobCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_web_jobs.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('WebJobCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_web_jobs.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/webjobs'} # type: ignore + + def get_web_job( + self, + resource_group_name, # type: str + name, # type: str + web_job_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.WebJob" + """Get webjob information for an app, or a deployment slot. + + Description for Get webjob information for an app, or a deployment slot. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param name: Site name. + :type name: str + :param web_job_name: Name of the web job. + :type web_job_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: WebJob, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.WebJob + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.WebJob"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_web_job.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'name': self._serialize.url("name", name, 'str'), + 'webJobName': self._serialize.url("web_job_name", web_job_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('WebJob', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_web_job.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/webjobs/{webJobName}'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_web_site_management_client_operations.py b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_web_site_management_client_operations.py new file mode 100644 index 000000000000..f1174002c272 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/operations/_web_site_management_client_operations.py @@ -0,0 +1,1142 @@ +# 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, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class WebSiteManagementClientOperationsMixin(object): + + def generate_github_access_token_for_appservice_cli_async( + self, + code, # type: str + state, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.AppserviceGithubToken" + """Exchange code for GitHub access token for AppService CLI. + + Description for Exchange code for GitHub access token for AppService CLI. + + :param code: Code string to exchange for Github Access token. + :type code: str + :param state: State string used for verification. + :type state: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AppserviceGithubToken, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.AppserviceGithubToken + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.AppserviceGithubToken"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _request = _models.AppserviceGithubTokenRequest(code=code, state=state) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.generate_github_access_token_for_appservice_cli_async.metadata['url'] # type: ignore + + # 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(_request, 'AppserviceGithubTokenRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('AppserviceGithubToken', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + generate_github_access_token_for_appservice_cli_async.metadata = {'url': '/providers/Microsoft.Web/generateGithubAccessTokenForAppserviceCLI'} # type: ignore + + def get_publishing_user( + self, + **kwargs # type: Any + ): + # type: (...) -> "_models.User" + """Gets publishing user. + + Description for Gets publishing user. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: User, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.User + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.User"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_publishing_user.metadata['url'] # type: ignore + + # 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('User', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_publishing_user.metadata = {'url': '/providers/Microsoft.Web/publishingUsers/web'} # type: ignore + + def update_publishing_user( + self, + user_details, # type: "_models.User" + **kwargs # type: Any + ): + # type: (...) -> "_models.User" + """Updates publishing user. + + Description for Updates publishing user. + + :param user_details: Details of publishing user. + :type user_details: ~azure.mgmt.web.v2021_01_15.models.User + :keyword callable cls: A custom type or function that will be passed the direct response + :return: User, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.User + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.User"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_publishing_user.metadata['url'] # type: ignore + + # 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(user_details, 'User') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('User', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_publishing_user.metadata = {'url': '/providers/Microsoft.Web/publishingUsers/web'} # type: ignore + + def list_source_controls( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.SourceControlCollection"] + """Gets the source controls available for Azure websites. + + Description for Gets the source controls available for Azure websites. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SourceControlCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.SourceControlCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SourceControlCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_source_controls.metadata['url'] # type: ignore + # 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('SourceControlCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_source_controls.metadata = {'url': '/providers/Microsoft.Web/sourcecontrols'} # type: ignore + + def get_source_control( + self, + source_control_type, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SourceControl" + """Gets source control token. + + Description for Gets source control token. + + :param source_control_type: Type of source control. + :type source_control_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SourceControl, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SourceControl + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SourceControl"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_source_control.metadata['url'] # type: ignore + path_format_arguments = { + 'sourceControlType': self._serialize.url("source_control_type", source_control_type, '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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_source_control.metadata = {'url': '/providers/Microsoft.Web/sourcecontrols/{sourceControlType}'} # type: ignore + + def update_source_control( + self, + source_control_type, # type: str + request_message, # type: "_models.SourceControl" + **kwargs # type: Any + ): + # type: (...) -> "_models.SourceControl" + """Updates source control token. + + Description for Updates source control token. + + :param source_control_type: Type of source control. + :type source_control_type: str + :param request_message: Source control token information. + :type request_message: ~azure.mgmt.web.v2021_01_15.models.SourceControl + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SourceControl, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SourceControl + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SourceControl"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.update_source_control.metadata['url'] # type: ignore + path_format_arguments = { + 'sourceControlType': self._serialize.url("source_control_type", source_control_type, '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(request_message, 'SourceControl') + 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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SourceControl', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update_source_control.metadata = {'url': '/providers/Microsoft.Web/sourcecontrols/{sourceControlType}'} # type: ignore + + def list_billing_meters( + self, + billing_location=None, # type: Optional[str] + os_type=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.BillingMeterCollection"] + """Gets a list of meters for a given location. + + Description for Gets a list of meters for a given location. + + :param billing_location: Azure Location of billable resource. + :type billing_location: str + :param os_type: App Service OS type meters used for. + :type os_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either BillingMeterCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.BillingMeterCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BillingMeterCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_billing_meters.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if billing_location is not None: + query_parameters['billingLocation'] = self._serialize.query("billing_location", billing_location, 'str') + if os_type is not None: + query_parameters['osType'] = self._serialize.query("os_type", os_type, 'str') + 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('BillingMeterCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_billing_meters.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/billingMeters'} # type: ignore + + def check_name_availability( + self, + name, # type: str + type, # type: Union[str, "_models.CheckNameResourceTypes"] + is_fqdn=None, # type: Optional[bool] + **kwargs # type: Any + ): + # type: (...) -> "_models.ResourceNameAvailability" + """Check if a resource name is available. + + Description for Check if a resource name is available. + + :param name: Resource name to verify. + :type name: str + :param type: Resource type used for verification. + :type type: str or ~azure.mgmt.web.v2021_01_15.models.CheckNameResourceTypes + :param is_fqdn: Is fully qualified domain name. + :type is_fqdn: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ResourceNameAvailability, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ResourceNameAvailability + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ResourceNameAvailability"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + _request = _models.ResourceNameAvailabilityRequest(name=name, type=type, is_fqdn=is_fqdn) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.check_name_availability.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(_request, 'ResourceNameAvailabilityRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ResourceNameAvailability', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + check_name_availability.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/checknameavailability'} # type: ignore + + def get_subscription_deployment_locations( + self, + **kwargs # type: Any + ): + # type: (...) -> "_models.DeploymentLocations" + """Gets list of available geo regions plus ministamps. + + Description for Gets list of available geo regions plus ministamps. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DeploymentLocations, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.DeploymentLocations + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DeploymentLocations"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.get_subscription_deployment_locations.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DeploymentLocations', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_subscription_deployment_locations.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/deploymentLocations'} # type: ignore + + def list_geo_regions( + self, + sku=None, # type: Optional[Union[str, "_models.SkuName"]] + linux_workers_enabled=None, # type: Optional[bool] + xenon_workers_enabled=None, # type: Optional[bool] + linux_dynamic_workers_enabled=None, # type: Optional[bool] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.GeoRegionCollection"] + """Get a list of available geographical regions. + + Description for Get a list of available geographical regions. + + :param sku: Name of SKU used to filter the regions. + :type sku: str or ~azure.mgmt.web.v2021_01_15.models.SkuName + :param linux_workers_enabled: Specify :code:`true` if you want to filter to only + regions that support Linux workers. + :type linux_workers_enabled: bool + :param xenon_workers_enabled: Specify :code:`true` if you want to filter to only + regions that support Xenon workers. + :type xenon_workers_enabled: bool + :param linux_dynamic_workers_enabled: Specify :code:`true` if you want to filter + to only regions that support Linux Consumption Workers. + :type linux_dynamic_workers_enabled: bool + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either GeoRegionCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.GeoRegionCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.GeoRegionCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_geo_regions.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if sku is not None: + query_parameters['sku'] = self._serialize.query("sku", sku, 'str') + if linux_workers_enabled is not None: + query_parameters['linuxWorkersEnabled'] = self._serialize.query("linux_workers_enabled", linux_workers_enabled, 'bool') + if xenon_workers_enabled is not None: + query_parameters['xenonWorkersEnabled'] = self._serialize.query("xenon_workers_enabled", xenon_workers_enabled, 'bool') + if linux_dynamic_workers_enabled is not None: + query_parameters['linuxDynamicWorkersEnabled'] = self._serialize.query("linux_dynamic_workers_enabled", linux_dynamic_workers_enabled, 'bool') + 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('GeoRegionCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_geo_regions.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/geoRegions'} # type: ignore + + def list_site_identifiers_assigned_to_host_name( + self, + name_identifier, # type: "_models.NameIdentifier" + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.IdentifierCollection"] + """List all apps that are assigned to a hostname. + + Description for List all apps that are assigned to a hostname. + + :param name_identifier: Hostname information. + :type name_identifier: ~azure.mgmt.web.v2021_01_15.models.NameIdentifier + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either IdentifierCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.IdentifierCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.IdentifierCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = "application/json" + accept = "application/json" + + def prepare_request(next_link=None): + # 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') + + if not next_link: + # Construct URL + url = self.list_site_identifiers_assigned_to_host_name.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(name_identifier, 'NameIdentifier') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(name_identifier, 'NameIdentifier') + body_content_kwargs['content'] = body_content + request = self._client.get(url, query_parameters, header_parameters, **body_content_kwargs) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('IdentifierCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_site_identifiers_assigned_to_host_name.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/listSitesAssignedToHostName'} # type: ignore + + def list_premier_add_on_offers( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.PremierAddOnOfferCollection"] + """List all premier add-on offers. + + Description for List all premier add-on offers. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either PremierAddOnOfferCollection or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.web.v2021_01_15.models.PremierAddOnOfferCollection] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.PremierAddOnOfferCollection"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + 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_premier_add_on_offers.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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('PremierAddOnOfferCollection', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_premier_add_on_offers.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/premieraddonoffers'} # type: ignore + + def list_skus( + self, + **kwargs # type: Any + ): + # type: (...) -> "_models.SkuInfos" + """List all SKUs. + + Description for List all SKUs. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SkuInfos, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.SkuInfos + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SkuInfos"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + accept = "application/json" + + # Construct URL + url = self.list_skus.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SkuInfos', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list_skus.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/skus'} # type: ignore + + def verify_hosting_environment_vnet( + self, + parameters, # type: "_models.VnetParameters" + **kwargs # type: Any + ): + # type: (...) -> "_models.VnetValidationFailureDetails" + """Verifies if this VNET is compatible with an App Service Environment by analyzing the Network Security Group rules. + + Description for Verifies if this VNET is compatible with an App Service Environment by + analyzing the Network Security Group rules. + + :param parameters: VNET information. + :type parameters: ~azure.mgmt.web.v2021_01_15.models.VnetParameters + :keyword callable cls: A custom type or function that will be passed the direct response + :return: VnetValidationFailureDetails, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.VnetValidationFailureDetails + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.VnetValidationFailureDetails"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.verify_hosting_environment_vnet.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(parameters, 'VnetParameters') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('VnetValidationFailureDetails', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + verify_hosting_environment_vnet.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Web/verifyHostingEnvironmentVnet'} # type: ignore + + def move( + self, + resource_group_name, # type: str + move_resource_envelope, # type: "_models.CsmMoveResourceEnvelope" + **kwargs # type: Any + ): + # type: (...) -> None + """Move resources between resource groups. + + Description for Move resources between resource groups. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param move_resource_envelope: Object that represents the resource to move. + :type move_resource_envelope: ~azure.mgmt.web.v2021_01_15.models.CsmMoveResourceEnvelope + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.move.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(move_resource_envelope, 'CsmMoveResourceEnvelope') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + move.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/moveResources'} # type: ignore + + def validate( + self, + resource_group_name, # type: str + validate_request, # type: "_models.ValidateRequest" + **kwargs # type: Any + ): + # type: (...) -> "_models.ValidateResponse" + """Validate if a resource can be created. + + Description for Validate if a resource can be created. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param validate_request: Request with the resources to validate. + :type validate_request: ~azure.mgmt.web.v2021_01_15.models.ValidateRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ValidateResponse, or the result of cls(response) + :rtype: ~azure.mgmt.web.v2021_01_15.models.ValidateResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ValidateResponse"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.validate.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(validate_request, 'ValidateRequest') + 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) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ValidateResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + validate.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/validate'} # type: ignore + + def validate_move( + self, + resource_group_name, # type: str + move_resource_envelope, # type: "_models.CsmMoveResourceEnvelope" + **kwargs # type: Any + ): + # type: (...) -> None + """Validate whether a resource can be moved. + + Description for Validate whether a resource can be moved. + + :param resource_group_name: Name of the resource group to which the resource belongs. + :type resource_group_name: str + :param move_resource_envelope: Object that represents the resource to move. + :type move_resource_envelope: ~azure.mgmt.web.v2021_01_15.models.CsmMoveResourceEnvelope + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + 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-01-15" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.validate_move.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+[^\.]$'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_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['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(move_resource_envelope, 'CsmMoveResourceEnvelope') + 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 [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.DefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + validate_move.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/validateMoveResources'} # type: ignore diff --git a/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/py.typed b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/py.typed new file mode 100644 index 000000000000..e5aff4f83af8 --- /dev/null +++ b/sdk/appservice/azure-mgmt-web/azure/mgmt/web/v2021_01_15/py.typed @@ -0,0 +1 @@ +# Marker file for PEP 561. \ No newline at end of file From 8be999af0da89777cde2c7971e1be2a70473acdb Mon Sep 17 00:00:00 2001 From: iscai-msft <43154838+iscai-msft@users.noreply.github.com> Date: Thu, 19 Aug 2021 13:05:40 -0400 Subject: [PATCH 096/104] bump node version (#20353) --- eng/pipelines/autorest_checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/autorest_checks.yml b/eng/pipelines/autorest_checks.yml index 35158419b1f2..c87079bd03b1 100644 --- a/eng/pipelines/autorest_checks.yml +++ b/eng/pipelines/autorest_checks.yml @@ -14,7 +14,7 @@ pr: - sdk/core/ variables: - NodeVersion: '10.x' + NodeVersion: '12.x' PythonVersion: '3.6' auto_rest_clone_url: 'https://github.com/Azure/autorest.python.git' repo_branch: 'autorestv3' From 232b79b421199b53039134f03b61a2a5167e263e Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Thu, 19 Aug 2021 13:04:01 -0700 Subject: [PATCH 097/104] Remove old unused update changelog script (#20357) Co-authored-by: Wes Haggard --- eng/common/Update-Change-Log.ps1 | 153 ------------------------------- 1 file changed, 153 deletions(-) delete mode 100644 eng/common/Update-Change-Log.ps1 diff --git a/eng/common/Update-Change-Log.ps1 b/eng/common/Update-Change-Log.ps1 deleted file mode 100644 index 3d1497f29863..000000000000 --- a/eng/common/Update-Change-Log.ps1 +++ /dev/null @@ -1,153 +0,0 @@ -# Note: This script will add or replace version title in change log - -# Parameter description -# Version : Version to add or replace in change log -# ChangeLogPath: Path to change log file. If change log path is set to directory then script will probe for change log file in that path -# Unreleased: Default is true. If it is set to false, then today's date will be set in verion title. If it is True then title will show "Unreleased" -# ReplaceVersion: This is useful when replacing current version title with new title.( Helpful to update the title before package release) - -param ( - [Parameter(Mandatory = $true)] - [String]$Version, - [Parameter(Mandatory = $true)] - [String]$ChangeLogPath, - [String]$Unreleased = $True, - [String]$ReplaceVersion = $False, - [String]$ReleaseDate -) - - -$RELEASE_TITLE_REGEX = "(?^\#+.*(?\b\d+\.\d+\.\d+([^0-9\s][^\s:]+)?))" -$UNRELEASED_TAG = "(Unreleased)" -function Version-Matches($line) -{ - return ($line -match $RELEASE_TITLE_REGEX) -} - -function Get-ChangelogPath($Path) -{ - # Check if CHANGELOG.md is present in path - $ChangeLogPath = Join-Path -Path $Path -ChildPath "CHANGELOG.md" - if ((Test-Path -Path $ChangeLogPath) -eq $False) { - # Check if change log exists with name HISTORY.md - $ChangeLogPath = Join-Path -Path $Path -ChildPath "HISTORY.md" - if ((Test-Path -Path $ChangeLogPath) -eq $False) { - Write-Host "Change log is not found in path[$Path]" - exit(1) - } - } - - Write-Host "Change log is found at path [$ChangeLogPath]" - return $ChangeLogPath -} - - -function Get-VersionTitle($Version, $Unreleased) -{ - # Generate version title - $newVersionTitle = "## $Version $UNRELEASED_TAG" - if ($Unreleased -eq $False) { - $actualReleaseDate = $ReleaseDate; - - if (!$actualReleaseDate) { - $actualReleaseDate = Get-Date -Format "yyyy-MM-dd" - } - $newVersionTitle = "## $Version ($actualReleaseDate)" - } - return $newVersionTitle -} - - -function Get-NewChangeLog( [System.Collections.ArrayList]$ChangelogLines, $Version, $Unreleased, $ReplaceVersion) -{ - - # version parameter is to pass new version to add or replace - # Unreleased parameter can be set to False to set today's date instead of "Unreleased in title" - # ReplaceVersion param can be set to true to replace current version title( useful at release time to change title) - - # find index of current version - $Index = 0 - $CurrentTitle = "" - $CurrentIndex = 0 - # Version increment tool passes replaceversion as False and Unreleased as True - $is_version_increment = $ReplaceVersion -eq $False -and $Unreleased -eq $True - - for (; $Index -lt $ChangelogLines.Count; $Index++) { - if (Version-Matches($ChangelogLines[$Index])) { - # Find current title in change log - if( -not $CurrentTitle) { - $CurrentTitle = $ChangelogLines[$Index] - $CurrentIndex = $Index - Write-Host "Current Version title: $CurrentTitle" - } - - # Ensure change log doesn't have new version when incrementing version - # update change log script is triggered for all packages with current version for Java ( or any language where version is maintained in common file) - # and this can cause an issue if someone changes changelog manually to prepare for release without updating actual version in central version file - # Do not add new line or replace existing title when version is already present and script is triggered to add new line - if ($is_version_increment -and $ChangelogLines[$Index].Contains($Version)) { - Write-Host "Version is already present in change log." - exit(0) - } - } - } - - # Generate version title - $newVersionTitle = Get-VersionTitle -Version $Version -Unreleased $Unreleased - - if( $newVersionTitle -eq $CurrentTitle) { - Write-Host "No change is required in change log. Version is already present." - exit(0) - } - - if (($ReplaceVersion -eq $True) -and ($Unreleased -eq $False) -and $CurrentTitle.Contains($version) -and (-not $CurrentTitle.Contains($UNRELEASED_TAG)) -and (-not $ReleaseDate)) { - Write-Host "Version is already present in change log with a release date." - exit(0) - } - - # if current version title already has new version then we should replace title to update it - if ($CurrentTitle.Contains($Version) -and $ReplaceVersion -eq $False) { - Write-Host "Version is already present in title. Updating version title" - $ReplaceVersion = $True - } - - # if version is already found and not replacing then nothing to do - if ($ReplaceVersion -eq $False) { - Write-Host "Adding version title $newVersionTitle" - $ChangelogLines.insert($CurrentIndex, "") - $ChangelogLines.insert($CurrentIndex, "") - $ChangelogLines.insert($CurrentIndex, $newVersionTitle) - } - else{ - # Script is executed to replace an existing version title - Write-Host "Replacing current version title to $newVersionTitle" - $ChangelogLines[$CurrentIndex] = $newVersionTitle - } - - return $ChangelogLines -} - - -# Make sure path is valid -if ((Test-Path -Path $ChangeLogPath) -eq $False) { - Write-Host "Change log path is invalid. [$ChangeLogPath]" - exit(1) -} - -# probe change log path if path is directory -if (Test-Path -Path $ChangeLogPath -PathType Container) { - $ChangeLogPath = Get-ChangelogPath -Path $ChangeLogPath -} - -# Read current change logs and add/update version -$ChangelogLines = [System.Collections.ArrayList](Get-Content -Path $ChangeLogPath) - -if ($null -eq $ChangelogLines) { - $ChangelogLines = @() -} - -$NewContents = Get-NewChangeLog -ChangelogLines $ChangelogLines -Version $Version -Unreleased $Unreleased -ReplaceVersion $ReplaceVersion - -Write-Host "Writing change log to file [$ChangeLogPath]" -Set-Content -Path $ChangeLogPath $NewContents -Write-Host "Version is added/updated in change log" From 78c3fe3c24cd203f31a8f845a49ffc4c556f1f91 Mon Sep 17 00:00:00 2001 From: Rakshith Bhyravabhotla Date: Thu, 19 Aug 2021 15:40:24 -0700 Subject: [PATCH 098/104] Handle value types for results (#20358) * Handle value types for results * update test * lint * comprehension * more precis * fix test --- sdk/monitor/azure-monitor-query/CHANGELOG.md | 1 + .../azure/monitor/query/_helpers.py | 12 ++++++- .../azure/monitor/query/_models.py | 4 +-- .../tests/test_logs_response.py | 31 +++++++++++++++++++ 4 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 sdk/monitor/azure-monitor-query/tests/test_logs_response.py diff --git a/sdk/monitor/azure-monitor-query/CHANGELOG.md b/sdk/monitor/azure-monitor-query/CHANGELOG.md index 11fa24cf682f..6589176e48db 100644 --- a/sdk/monitor/azure-monitor-query/CHANGELOG.md +++ b/sdk/monitor/azure-monitor-query/CHANGELOG.md @@ -16,6 +16,7 @@ - `metric_namespace_name` is renamed to `fully_qualified_namespace` - `is_dimension_required` is renamed to `dimension_required` - `time_grain` is renamed to `granularity` +- `LogsQueryResult` now returns `datetime` objects for a time values. ### Bugs Fixed diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_helpers.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_helpers.py index d1333a4f362c..205239d1816f 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_helpers.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_helpers.py @@ -6,7 +6,7 @@ # -------------------------------------------------------------------------- from datetime import datetime, timedelta from typing import TYPE_CHECKING -from msrest import Serializer +from msrest import Serializer, Deserializer from azure.core.exceptions import HttpResponseError from azure.core.pipeline.policies import BearerTokenCredentialPolicy @@ -81,3 +81,13 @@ def construct_iso8601(timespan=None): else: iso_str = duration return iso_str + +def native_col_type(col_type, value): + if col_type == 'datetime': + value = Deserializer.deserialize_iso(value) + elif col_type in ('timespan', 'guid'): + value = str(value) + return value + +def process_row(col_types, row): + return [native_col_type(col_types[ind].type, val) for ind, val in enumerate(row)] diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py index 400f9f19f04a..fcc22a6ba687 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py @@ -9,7 +9,7 @@ import uuid from typing import Any, Optional, List -from ._helpers import construct_iso8601 +from ._helpers import construct_iso8601, process_row from ._generated.models import ( Column as InternalColumn, BatchQueryRequest as InternalLogQueryRequest, @@ -32,7 +32,7 @@ def __init__(self, name, columns, rows): # type: (str, List[LogsQueryResultColumn], List[List[str]]) -> None self.name = name self.columns = columns - self.rows = rows + self.rows = [process_row(self.columns, row) for row in rows] @classmethod def _from_generated(cls, generated): diff --git a/sdk/monitor/azure-monitor-query/tests/test_logs_response.py b/sdk/monitor/azure-monitor-query/tests/test_logs_response.py new file mode 100644 index 000000000000..3c69e01caa69 --- /dev/null +++ b/sdk/monitor/azure-monitor-query/tests/test_logs_response.py @@ -0,0 +1,31 @@ +from datetime import datetime +import pytest +import six +import os + +from azure.identity import ClientSecretCredential +from azure.monitor.query import LogsQueryClient + +def _credential(): + credential = ClientSecretCredential( + client_id = os.environ['AZURE_CLIENT_ID'], + client_secret = os.environ['AZURE_CLIENT_SECRET'], + tenant_id = os.environ['AZURE_TENANT_ID'] + ) + return credential + +@pytest.mark.live_test_only +def test_query_response_types(): + credential = _credential() + client = LogsQueryClient(credential) + query = """AppRequests | + summarize avgRequestDuration=avg(DurationMs) by bin(TimeGenerated, 10m), _ResourceId, Success, ItemCount, DurationMs""" + + # returns LogsQueryResult + result = client.query(os.environ['LOG_WORKSPACE_ID'], query, timespan=None) + assert isinstance(result.tables[0].rows[0][0], datetime) # TimeGenerated generated is a datetime + assert isinstance(result.tables[0].rows[0][1], six.string_types) # _ResourceId generated is a string + assert isinstance(result.tables[0].rows[0][2], bool) # Success generated is a bool + assert isinstance(result.tables[0].rows[0][3], int) # ItemCount generated is a int + assert isinstance(result.tables[0].rows[0][4], float) # DurationMs generated is a real + From abfb14bb95b47b9e22571f4fdf7e7dc33f243fac Mon Sep 17 00:00:00 2001 From: iscai-msft <43154838+iscai-msft@users.noreply.github.com> Date: Thu, 19 Aug 2021 20:04:36 -0400 Subject: [PATCH 099/104] [rest] change text from a property to a method (#20290) --- sdk/core/azure-core/CHANGELOG.md | 5 +- .../azure-core/azure/core/rest/_helpers.py | 2 + .../azure/core/rest/_requests_basic.py | 30 ---------- sdk/core/azure-core/azure/core/rest/_rest.py | 25 +++++---- .../azure-core/azure/core/rest/_rest_py3.py | 25 ++++----- .../test_rest_context_manager_async.py | 6 +- .../test_rest_http_response_async.py | 55 ++++++++++++------- .../test_rest_stream_responses_async.py | 4 +- .../test_rest_context_manager.py | 6 +- .../test_rest_http_response.py | 49 +++++++++++------ .../test_rest_stream_responses.py | 6 +- 11 files changed, 110 insertions(+), 103 deletions(-) diff --git a/sdk/core/azure-core/CHANGELOG.md b/sdk/core/azure-core/CHANGELOG.md index d9d8db2e1ada..16165e58c6ad 100644 --- a/sdk/core/azure-core/CHANGELOG.md +++ b/sdk/core/azure-core/CHANGELOG.md @@ -4,7 +4,10 @@ ### Features Added -### Breaking Changes +### Breaking Changes in the Provisional `azure.core.rest` package + +- The `text` property on `azure.core.rest.HttpResponse` and `azure.core.rest.AsyncHttpResponse` has changed to a method, which also takes +an `encoding` parameter. ### Bugs Fixed diff --git a/sdk/core/azure-core/azure/core/rest/_helpers.py b/sdk/core/azure-core/azure/core/rest/_helpers.py index 4975d09d655c..a2f8736dcc68 100644 --- a/sdk/core/azure-core/azure/core/rest/_helpers.py +++ b/sdk/core/azure-core/azure/core/rest/_helpers.py @@ -293,6 +293,8 @@ def get_charset_encoding(response): def decode_to_text(encoding, content): # type: (Optional[str], bytes) -> str + if not content: + return "" if encoding == "utf-8": encoding = "utf-8-sig" if encoding: diff --git a/sdk/core/azure-core/azure/core/rest/_requests_basic.py b/sdk/core/azure-core/azure/core/rest/_requests_basic.py index e8ef734e1275..bd83dc29bd39 100644 --- a/sdk/core/azure-core/azure/core/rest/_requests_basic.py +++ b/sdk/core/azure-core/azure/core/rest/_requests_basic.py @@ -61,36 +61,6 @@ def content(self): # requests throws a RuntimeError if the content for a response is already consumed raise ResponseNotReadError(self) - @property - def encoding(self): - # type: () -> Optional[str] - retval = super(_RestRequestsTransportResponseBase, self).encoding - if not retval: - # There is a few situation where "requests" magic doesn't fit us: - # - https://github.com/psf/requests/issues/654 - # - https://github.com/psf/requests/issues/1737 - # - https://github.com/psf/requests/issues/2086 - from codecs import BOM_UTF8 - if self._internal_response.content[:3] == BOM_UTF8: - retval = "utf-8-sig" - if retval: - if retval == "utf-8": - retval = "utf-8-sig" - return retval - - @encoding.setter # type: ignore - def encoding(self, value): - # type: (str) -> None - # ignoring setter bc of known mypy issue https://github.com/python/mypy/issues/1465 - self._encoding = value - self._internal_response.encoding = value - - @property - def text(self): - # this will trigger errors if response is not read in - self.content # pylint: disable=pointless-statement - return self._internal_response.text - def _stream_download_helper(decompress, response): if response.is_stream_consumed: raise StreamConsumedError(response) diff --git a/sdk/core/azure-core/azure/core/rest/_rest.py b/sdk/core/azure-core/azure/core/rest/_rest.py index 295051a83c50..10a8486a2c64 100644 --- a/sdk/core/azure-core/azure/core/rest/_rest.py +++ b/sdk/core/azure-core/azure/core/rest/_rest.py @@ -235,17 +235,19 @@ def encoding(self, value): # type: (str) -> None """Sets the response encoding""" self._encoding = value + self._text = None # clear text cache - @property - def text(self): - # type: (...) -> str - """Returns the response body as a string""" - if self._text is None: - content = self.content - if not content: - self._text = "" - else: - self._text = decode_to_text(self.encoding, self.content) + def text(self, encoding=None): + # type: (Optional[str]) -> str + """Returns the response body as a string + + :param optional[str] encoding: The encoding you want to decode the text with. Can + also be set independently through our encoding property + :return: The response's content decoded as a string. + """ + if self._text is None or encoding: + encoding_to_pass = encoding or self.encoding + self._text = decode_to_text(encoding_to_pass, self.content) return self._text def json(self): @@ -259,7 +261,7 @@ def json(self): # this will trigger errors if response is not read in self.content # pylint: disable=pointless-statement if not self._json: - self._json = loads(self.text) + self._json = loads(self.text()) return self._json def raise_for_status(self): @@ -314,7 +316,6 @@ class HttpResponse(_HttpResponseBase): # pylint: disable=too-many-instance-attr :ivar str text: The response body as a string. :ivar request: The request that resulted in this response. :vartype request: ~azure.core.rest.HttpRequest - :ivar internal_response: The object returned from the HTTP library. :ivar str content_type: The content type of the response :ivar bool is_closed: Whether the network connection has been closed yet :ivar bool is_stream_consumed: When getting a stream response, checks diff --git a/sdk/core/azure-core/azure/core/rest/_rest_py3.py b/sdk/core/azure-core/azure/core/rest/_rest_py3.py index af957f767a39..21e42f46b044 100644 --- a/sdk/core/azure-core/azure/core/rest/_rest_py3.py +++ b/sdk/core/azure-core/azure/core/rest/_rest_py3.py @@ -262,16 +262,18 @@ def encoding(self) -> Optional[str]: def encoding(self, value: str) -> None: """Sets the response encoding""" self._encoding = value + self._text = None # clear text cache - @property - def text(self) -> str: - """Returns the response body as a string""" - if self._text is None: - content = self.content - if not content: - self._text = "" - else: - self._text = decode_to_text(self.encoding, self.content) + def text(self, encoding: Optional[str] = None) -> str: + """Returns the response body as a string + + :param optional[str] encoding: The encoding you want to decode the text with. Can + also be set independently through our encoding property + :return: The response's content decoded as a string. + """ + if self._text is None or encoding: + encoding_to_pass = encoding or self.encoding + self._text = decode_to_text(encoding_to_pass, self.content) return self._text def json(self) -> Any: @@ -284,7 +286,7 @@ def json(self) -> Any: # this will trigger errors if response is not read in self.content # pylint: disable=pointless-statement if not self._json: - self._json = loads(self.text) + self._json = loads(self.text()) return self._json def raise_for_status(self) -> None: @@ -328,7 +330,6 @@ class HttpResponse(_HttpResponseBase): :ivar str text: The response body as a string. :ivar request: The request that resulted in this response. :vartype request: ~azure.core.rest.HttpRequest - :ivar internal_response: The object returned from the HTTP library. :ivar str content_type: The content type of the response :ivar bool is_closed: Whether the network connection has been closed yet :ivar bool is_stream_consumed: When getting a stream response, checks @@ -421,7 +422,6 @@ class AsyncHttpResponse(_HttpResponseBase): :keyword request: The request that resulted in this response. :paramtype request: ~azure.core.rest.HttpRequest - :keyword internal_response: The object returned from the HTTP library. :ivar int status_code: The status code of this response :ivar mapping headers: The response headers :ivar str reason: The reason phrase for this response @@ -432,7 +432,6 @@ class AsyncHttpResponse(_HttpResponseBase): :ivar str text: The response body as a string. :ivar request: The request that resulted in this response. :vartype request: ~azure.core.rest.HttpRequest - :ivar internal_response: The object returned from the HTTP library. :ivar str content_type: The content type of the response :ivar bool is_closed: Whether the network connection has been closed yet :ivar bool is_stream_consumed: When getting a stream response, checks diff --git a/sdk/core/azure-core/tests/testserver_tests/async_tests/test_rest_context_manager_async.py b/sdk/core/azure-core/tests/testserver_tests/async_tests/test_rest_context_manager_async.py index 4afcac42172f..70ca63685b84 100644 --- a/sdk/core/azure-core/tests/testserver_tests/async_tests/test_rest_context_manager_async.py +++ b/sdk/core/azure-core/tests/testserver_tests/async_tests/test_rest_context_manager_async.py @@ -13,7 +13,7 @@ async def test_normal_call(client): async def _raise_and_get_text(response): response.raise_for_status() - assert response.text == "Hello, world!" + assert response.text() == "Hello, world!" assert response.is_closed request = HttpRequest("GET", url="/basic/string") response = await client.send_request(request) @@ -33,9 +33,9 @@ async def _raise_and_get_text(response): response.raise_for_status() assert not response.is_closed with pytest.raises(ResponseNotReadError): - response.text + response.text() await response.read() - assert response.text == "Hello, world!" + assert response.text() == "Hello, world!" assert response.is_closed request = HttpRequest("GET", url="/streams/basic") response = await client.send_request(request, stream=True) diff --git a/sdk/core/azure-core/tests/testserver_tests/async_tests/test_rest_http_response_async.py b/sdk/core/azure-core/tests/testserver_tests/async_tests/test_rest_http_response_async.py index 47286b76254b..40587252a14f 100644 --- a/sdk/core/azure-core/tests/testserver_tests/async_tests/test_rest_http_response_async.py +++ b/sdk/core/azure-core/tests/testserver_tests/async_tests/test_rest_http_response_async.py @@ -14,9 +14,10 @@ @pytest.fixture def send_request(client): async def _send_request(request): - response = await client.send_request(request, stream=False) - response.raise_for_status() - return response + async with client: + response = await client.send_request(request, stream=False) + response.raise_for_status() + return response return _send_request @pytest.mark.asyncio @@ -27,7 +28,7 @@ async def test_response(send_request, port): assert response.status_code == 200 assert response.reason == "OK" assert response.content == b"Hello, world!" - assert response.text == "Hello, world!" + assert response.text() == "Hello, world!" assert response.request.method == "GET" assert response.request.url == "http://localhost:{}/basic/string".format(port) @@ -40,7 +41,7 @@ async def test_response_content(send_request): assert response.reason == "OK" content = await response.read() assert content == b"Hello, world!" - assert response.text == "Hello, world!" + assert response.text() == "Hello, world!" @pytest.mark.asyncio async def test_response_text(send_request): @@ -51,7 +52,7 @@ async def test_response_text(send_request): assert response.reason == "OK" content = await response.read() assert content == b"Hello, world!" - assert response.text == "Hello, world!" + assert response.text() == "Hello, world!" assert response.headers["Content-Length"] == '13' assert response.headers['Content-Type'] == "text/plain; charset=utf-8" @@ -64,7 +65,7 @@ async def test_response_html(send_request): assert response.reason == "OK" content = await response.read() assert content == b"Hello, world!" - assert response.text == "Hello, world!" + assert response.text() == "Hello, world!" @pytest.mark.asyncio async def test_raise_for_status(client): @@ -106,7 +107,7 @@ async def test_response_content_type_encoding(send_request): await response.read() assert response.content_type == "text/plain; charset=latin-1" assert response.content == b'Latin 1: \xff' - assert response.text == "Latin 1: ÿ" + assert response.text() == "Latin 1: ÿ" assert response.encoding == "latin-1" @@ -119,7 +120,7 @@ async def test_response_autodetect_encoding(send_request): request=HttpRequest("GET", "/encoding/latin-1") ) await response.read() - assert response.text == u'Latin 1: ÿ' + assert response.text() == u'Latin 1: ÿ' assert response.encoding == "latin-1" @@ -133,7 +134,7 @@ async def test_response_fallback_to_autodetect(send_request): ) await response.read() assert response.headers["Content-Type"] == "text/plain; charset=invalid-codec-name" - assert response.text == "おはようございます。" + assert response.text() == "おはようございます。" assert response.encoding is None @@ -152,20 +153,20 @@ async def test_response_no_charset_with_ascii_content(send_request): assert response.encoding is None content = await response.read() assert content == b"Hello, world!" - assert response.text == "Hello, world!" + assert response.text() == "Hello, world!" @pytest.mark.asyncio async def test_response_no_charset_with_iso_8859_1_content(send_request): """ - A response with ISO 8859-1 encoded content should decode correctly, - even with no charset specified. + We don't support iso-8859-1 by default following conversations + about endoding flow """ response = await send_request( request=HttpRequest("GET", "/encoding/iso-8859-1"), ) await response.read() - assert response.text == "Accented: �sterreich" # aiohttp is having diff behavior than requests + assert response.text() == "Accented: �sterreich" assert response.encoding is None # NOTE: aiohttp isn't liking this @@ -177,7 +178,7 @@ async def test_response_no_charset_with_iso_8859_1_content(send_request): # assert response.headers["Content-Type"] == "text/plain; charset=utf-8" # response.encoding = "latin-1" # await response.read() -# assert response.text == "Latin 1: ÿ" +# assert response.text() == "Latin 1: ÿ" # assert response.encoding == "latin-1" @pytest.mark.asyncio @@ -204,7 +205,7 @@ async def test_emoji(send_request): request=HttpRequest("GET", "/encoding/emoji"), ) await response.read() - assert response.text == "👩" + assert response.text() == "👩" @pytest.mark.asyncio async def test_emoji_family_with_skin_tone_modifier(send_request): @@ -212,7 +213,7 @@ async def test_emoji_family_with_skin_tone_modifier(send_request): request=HttpRequest("GET", "/encoding/emoji-family-skin-tone-modifier"), ) await response.read() - assert response.text == "👩🏻‍👩🏽‍👧🏾‍👦🏿 SSN: 859-98-0987" + assert response.text() == "👩🏻‍👩🏽‍👧🏾‍👦🏿 SSN: 859-98-0987" @pytest.mark.asyncio async def test_korean_nfc(send_request): @@ -220,7 +221,7 @@ async def test_korean_nfc(send_request): request=HttpRequest("GET", "/encoding/korean"), ) await response.read() - assert response.text == "아가" + assert response.text() == "아가" @pytest.mark.asyncio async def test_urlencoded_content(send_request): @@ -249,9 +250,25 @@ async def test_send_request_return_pipeline_response(client): assert hasattr(response, "http_request") assert hasattr(response, "http_response") assert hasattr(response, "context") - assert response.http_response.text == "Hello, world!" + assert response.http_response.text() == "Hello, world!" assert hasattr(response.http_request, "content") +@pytest.mark.asyncio +async def test_text_and_encoding(send_request): + response = await send_request( + request=HttpRequest("GET", "/encoding/emoji"), + ) + assert response.content == u"👩".encode("utf-8") + assert response.text() == u"👩" + + # try setting encoding as a property + response.encoding = "utf-16" + assert response.text() == u"鿰ꦑ" == response.content.decode(response.encoding) + + # assert latin-1 changes text decoding without changing encoding property + assert response.text("latin-1") == 'ð\x9f\x91©' == response.content.decode("latin-1") + assert response.encoding == "utf-16" + # @pytest.mark.asyncio # async def test_multipart_encode_non_seekable_filelike(send_request): # """ diff --git a/sdk/core/azure-core/tests/testserver_tests/async_tests/test_rest_stream_responses_async.py b/sdk/core/azure-core/tests/testserver_tests/async_tests/test_rest_stream_responses_async.py index 673148749719..19cd093222e1 100644 --- a/sdk/core/azure-core/tests/testserver_tests/async_tests/test_rest_stream_responses_async.py +++ b/sdk/core/azure-core/tests/testserver_tests/async_tests/test_rest_stream_responses_async.py @@ -170,11 +170,11 @@ async def test_iter_read_back_and_forth(client): async for line in response.iter_lines(): assert line with pytest.raises(ResponseNotReadError): - response.text + response.text() with pytest.raises(StreamConsumedError): await response.read() with pytest.raises(ResponseNotReadError): - response.text + response.text() @pytest.mark.asyncio async def test_stream_with_return_pipeline_response(client): diff --git a/sdk/core/azure-core/tests/testserver_tests/test_rest_context_manager.py b/sdk/core/azure-core/tests/testserver_tests/test_rest_context_manager.py index 34f802971537..0531cfe1505c 100644 --- a/sdk/core/azure-core/tests/testserver_tests/test_rest_context_manager.py +++ b/sdk/core/azure-core/tests/testserver_tests/test_rest_context_manager.py @@ -11,7 +11,7 @@ def test_normal_call(client, port): def _raise_and_get_text(response): response.raise_for_status() - assert response.text == "Hello, world!" + assert response.text() == "Hello, world!" assert response.is_closed request = HttpRequest("GET", url="/basic/string") response = client.send_request(request) @@ -30,9 +30,9 @@ def _raise_and_get_text(response): response.raise_for_status() assert not response.is_closed with pytest.raises(ResponseNotReadError): - response.text + response.text() response.read() - assert response.text == "Hello, world!" + assert response.text() == "Hello, world!" assert response.is_closed request = HttpRequest("GET", url="/streams/basic") response = client.send_request(request, stream=True) diff --git a/sdk/core/azure-core/tests/testserver_tests/test_rest_http_response.py b/sdk/core/azure-core/tests/testserver_tests/test_rest_http_response.py index 804a98b8890e..f3abec23a30a 100644 --- a/sdk/core/azure-core/tests/testserver_tests/test_rest_http_response.py +++ b/sdk/core/azure-core/tests/testserver_tests/test_rest_http_response.py @@ -29,7 +29,7 @@ def test_response(send_request, port): ) assert response.status_code == 200 assert response.reason == "OK" - assert response.text == "Hello, world!" + assert response.text() == "Hello, world!" assert response.request.method == "GET" assert response.request.url == "http://localhost:{}/basic/string".format(port) @@ -40,7 +40,7 @@ def test_response_content(send_request): ) assert response.status_code == 200 assert response.reason == "OK" - assert response.text == "Hello, world!" + assert response.text() == "Hello, world!" def test_response_text(send_request): @@ -49,7 +49,7 @@ def test_response_text(send_request): ) assert response.status_code == 200 assert response.reason == "OK" - assert response.text == "Hello, world!" + assert response.text() == "Hello, world!" assert response.headers["Content-Length"] == '13' assert response.headers['Content-Type'] == "text/plain; charset=utf-8" assert response.content_type == "text/plain; charset=utf-8" @@ -60,7 +60,7 @@ def test_response_html(send_request): ) assert response.status_code == 200 assert response.reason == "OK" - assert response.text == "Hello, world!" + assert response.text() == "Hello, world!" def test_raise_for_status(client): response = client.send_request( @@ -97,7 +97,7 @@ def test_response_content_type_encoding(send_request): request=HttpRequest("GET", "/encoding/latin-1") ) assert response.content_type == "text/plain; charset=latin-1" - assert response.text == u"Latin 1: ÿ" + assert response.text() == u"Latin 1: ÿ" assert response.encoding == "latin-1" @@ -109,7 +109,7 @@ def test_response_autodetect_encoding(send_request): request=HttpRequest("GET", "/encoding/latin-1") ) - assert response.text == u'Latin 1: ÿ' + assert response.text() == u'Latin 1: ÿ' assert response.encoding == "latin-1" @pytest.mark.skipif(sys.version_info < (3, 0), @@ -123,7 +123,7 @@ def test_response_fallback_to_autodetect(send_request): ) assert response.headers["Content-Type"] == "text/plain; charset=invalid-codec-name" - assert response.text == u"おはようございます。" + assert response.text() == u"おはようございます。" assert response.encoding is None @@ -139,18 +139,18 @@ def test_response_no_charset_with_ascii_content(send_request): assert response.headers["Content-Type"] == "text/plain" assert response.status_code == 200 assert response.encoding is None - assert response.text == "Hello, world!" + assert response.text() == "Hello, world!" def test_response_no_charset_with_iso_8859_1_content(send_request): """ - A response with ISO 8859-1 encoded content should decode correctly, - even with no charset specified. + We don't support iso-8859-1 by default following conversations + about endoding flow """ response = send_request( request=HttpRequest("GET", "/encoding/iso-8859-1"), ) - assert response.text == u"Accented: Österreich" + assert response.text() == u"Accented: �sterreich" assert response.encoding is None def test_response_set_explicit_encoding(send_request): @@ -160,7 +160,7 @@ def test_response_set_explicit_encoding(send_request): ) assert response.headers["Content-Type"] == "text/plain; charset=utf-8" response.encoding = "latin-1" - assert response.text == u"Latin 1: ÿ" + assert response.text() == u"Latin 1: ÿ" assert response.encoding == "latin-1" def test_json(send_request): @@ -181,19 +181,19 @@ def test_emoji(send_request): response = send_request( request=HttpRequest("GET", "/encoding/emoji"), ) - assert response.text == u"👩" + assert response.text() == u"👩" def test_emoji_family_with_skin_tone_modifier(send_request): response = send_request( request=HttpRequest("GET", "/encoding/emoji-family-skin-tone-modifier"), ) - assert response.text == u"👩🏻‍👩🏽‍👧🏾‍👦🏿 SSN: 859-98-0987" + assert response.text() == u"👩🏻‍👩🏽‍👧🏾‍👦🏿 SSN: 859-98-0987" def test_korean_nfc(send_request): response = send_request( request=HttpRequest("GET", "/encoding/korean"), ) - assert response.text == u"아가" + assert response.text() == u"아가" def test_urlencoded_content(send_request): send_request( @@ -255,7 +255,7 @@ def test_get_xml_basic(send_request): "/xml/basic", ) response = send_request(request) - parsed_xml = ET.fromstring(response.text) + parsed_xml = ET.fromstring(response.text()) assert parsed_xml.tag == 'slideshow' attributes = parsed_xml.attrib assert attributes['title'] == "Sample Slide Show" @@ -294,5 +294,20 @@ def test_send_request_return_pipeline_response(client): assert hasattr(response, "http_request") assert hasattr(response, "http_response") assert hasattr(response, "context") - assert response.http_response.text == "Hello, world!" + assert response.http_response.text() == "Hello, world!" assert hasattr(response.http_request, "content") + +def test_text_and_encoding(send_request): + response = send_request( + request=HttpRequest("GET", "/encoding/emoji"), + ) + assert response.content == u"👩".encode("utf-8") + assert response.text() == u"👩" + + # try setting encoding as a property + response.encoding = "utf-16" + assert response.text() == u"鿰ꦑ" == response.content.decode(response.encoding) + + # assert latin-1 changes text decoding without changing encoding property + assert response.text("latin-1") == u'ð\x9f\x91©' == response.content.decode("latin-1") + assert response.encoding == "utf-16" diff --git a/sdk/core/azure-core/tests/testserver_tests/test_rest_stream_responses.py b/sdk/core/azure-core/tests/testserver_tests/test_rest_stream_responses.py index 61053ca7abb9..cf547d8f750e 100644 --- a/sdk/core/azure-core/tests/testserver_tests/test_rest_stream_responses.py +++ b/sdk/core/azure-core/tests/testserver_tests/test_rest_stream_responses.py @@ -187,7 +187,7 @@ def test_iter_read(client): iterator = response.iter_lines() for line in iterator: assert line - assert response.text + assert response.text() def test_iter_read_back_and_forth(client): # thanks to McCoy Patiño for this test! @@ -202,11 +202,11 @@ def test_iter_read_back_and_forth(client): for line in iterator: assert line with pytest.raises(ResponseNotReadError): - response.text + response.text() with pytest.raises(StreamConsumedError): response.read() with pytest.raises(ResponseNotReadError): - response.text + response.text() def test_stream_with_return_pipeline_response(client): request = HttpRequest("GET", "/basic/lines") From 6f32a1b993a0ab36f344ec1c565f0f8bbc8b9894 Mon Sep 17 00:00:00 2001 From: swathipil <76007337+swathipil@users.noreply.github.com> Date: Thu, 19 Aug 2021 17:32:13 -0700 Subject: [PATCH 100/104] [ServiceBus] update migration guide with message count info (#20360) #20245 --- .../azure-servicebus/migration_guide.md | 17 ++++++++++++++--- .../samples/async_samples/mgmt_queue_async.py | 3 +++ .../samples/sync_samples/mgmt_queue.py | 13 ++++++++----- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/sdk/servicebus/azure-servicebus/migration_guide.md b/sdk/servicebus/azure-servicebus/migration_guide.md index 59b1ffa00a59..04fa8daa53ea 100644 --- a/sdk/servicebus/azure-servicebus/migration_guide.md +++ b/sdk/servicebus/azure-servicebus/migration_guide.md @@ -362,9 +362,8 @@ In V7 of this library, we simplified this as below: ### Working with Administration Client -In v0.50, you could create/get/update/delete/list Service Bus queues/topics/subscriptions/rules using the `control_client`. -In v7, this is replaced by the `ServiceBusAdministrationClient`. -The following code snippets show how to manage queues, similar methods are provided on the `ServiceBusAdministrationClient` to manage topics, subscriptions and rules. +In v0.50, you could create/get/update/delete/list Service Bus queues/topics/subscriptions/rules using the `control_client`. You were also able to retrieve associated metadata, like `message_count`. +In v7, this is replaced by the `ServiceBusAdministrationClient`. The property `total_message_count` on `QueueRuntimeProperties` has now replaced `message_count` on `Queue`. More specific properties about message counts - `active_message_count`, `scheduled_message_count` and `dead_letter_message_count` - are also available. Similar methods are provided on the `ServiceBusAdministrationClient` to manage topics, subscriptions and rules. The following code snippets show how to manage queues and retrieve associated metadata. In V0.50: ```python @@ -374,6 +373,10 @@ queue = service_bus_service.get_queue(queue_name) service_bus_service.create_queue(queue_name) service_bus_service.delete_queue(queue_name) queues = service_bus_service.list_queues() + +# get message count info +for queue in queues: + print(queue.message_count) ``` In V7: @@ -384,6 +387,14 @@ queue = service_bus_administration_client.get_queue(queue_name) service_bus_administration_client.create_queue(queue_name) service_bus_administration_client.delete_queue(queue_name) queues = service_bus_administration_client.list_queues() + +# get total, active, scheduled, dead-letter message count info +for queue in queues: + queue_runtime_properties = service_bus_administration_client.get_queue_runtime_properties(queue.name) + print(queue_runtime_properties.total_message_count) + print(queue_runtime_properties.active_message_count) + print(queue_runtime_properties.scheduled_message_count) + print(queue_runtime_properties.dead_letter_message_count) ``` ### Migration samples diff --git a/sdk/servicebus/azure-servicebus/samples/async_samples/mgmt_queue_async.py b/sdk/servicebus/azure-servicebus/samples/async_samples/mgmt_queue_async.py index 44f941cb8d19..99825d9a7d95 100644 --- a/sdk/servicebus/azure-servicebus/samples/async_samples/mgmt_queue_async.py +++ b/sdk/servicebus/azure-servicebus/samples/async_samples/mgmt_queue_async.py @@ -73,6 +73,9 @@ async def get_queue_runtime_properties(servicebus_mgmt_client): print("Updated at:", queue_runtime_properties.updated_at_utc) print("Size in Bytes:", queue_runtime_properties.size_in_bytes) print("Message Count:", queue_runtime_properties.total_message_count) + print("Active Message Count:", queue_runtime_properties.active_message_count) + print("Scheduled Message Count:", queue_runtime_properties.scheduled_message_count) + print("Dead-letter Message Count:", queue_runtime_properties.dead_letter_message_count) print("Please refer to QueueRuntimeProperties from complete available runtime properties.") print("") diff --git a/sdk/servicebus/azure-servicebus/samples/sync_samples/mgmt_queue.py b/sdk/servicebus/azure-servicebus/samples/sync_samples/mgmt_queue.py index 5090e2f2e519..c65d3063d615 100644 --- a/sdk/servicebus/azure-servicebus/samples/sync_samples/mgmt_queue.py +++ b/sdk/servicebus/azure-servicebus/samples/sync_samples/mgmt_queue.py @@ -66,12 +66,15 @@ def get_and_update_queue(servicebus_mgmt_client): def get_queue_runtime_properties(servicebus_mgmt_client): print("-- Get Queue Runtime Properties") - get_queue_runtime_properties = servicebus_mgmt_client.get_queue_runtime_properties(QUEUE_NAME) - print("Queue Name:", get_queue_runtime_properties.name) + queue_runtime_properties = servicebus_mgmt_client.get_queue_runtime_properties(QUEUE_NAME) + print("Queue Name:", queue_runtime_properties.name) print("Queue Runtime Properties:") - print("Updated at:", get_queue_runtime_properties.updated_at_utc) - print("Size in Bytes:", get_queue_runtime_properties.size_in_bytes) - print("Message Count:", get_queue_runtime_properties.total_message_count) + print("Updated at:", queue_runtime_properties.updated_at_utc) + print("Size in Bytes:", queue_runtime_properties.size_in_bytes) + print("Message Count:", queue_runtime_properties.total_message_count) + print("Active Message Count:", queue_runtime_properties.active_message_count) + print("Scheduled Message Count:", queue_runtime_properties.scheduled_message_count) + print("Dead-letter Message Count:", queue_runtime_properties.dead_letter_message_count) print("Please refer to QueueRuntimeProperties from complete available runtime properties.") print("") From 3d14c479449913ac85b24459bbde16c62647a2f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= <39780829+mccoyp@users.noreply.github.com> Date: Thu, 19 Aug 2021 21:01:51 -0700 Subject: [PATCH 101/104] Update CODEOWNERS (#20366) --- .github/CODEOWNERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b1ff2a9e0396..958111e4fb2d 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -41,7 +41,7 @@ /sdk/communication/ @acsdevx-msft # PRLabel: %KeyVault -/sdk/keyvault/ @schaabs @chlowell @mccoyp +/sdk/keyvault/ @schaabs @chlowell @mccoyp @YalinLi0312 # PRLabel: %Monitor - LogAnalytics /sdk/loganalytics/ @alexeldeib @@ -143,4 +143,4 @@ # Add owners for notifications for specific pipelines /eng/pipelines/templates/jobs/tests-nightly-python.yml @lmazuel @mccoyp -/eng/pipelines/aggregate-reports.yml @lmazuel @mccoyp +/eng/pipelines/aggregate-reports.yml @lmazuel @mccoyp @YalinLi0312 From a4783a4cff6f38c7f50ff5a639a359f6bdcdb74d Mon Sep 17 00:00:00 2001 From: Rakshith Bhyravabhotla Date: Fri, 20 Aug 2021 02:17:20 -0700 Subject: [PATCH 102/104] More Renaming in query (#20303) * More Reanaming in query * changelog * commit 2 * some changes * remove errror * Update sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py * Apply suggestions from code review Co-authored-by: Adam Ling (MSFT) * Update sdk/monitor/azure-monitor-query/CHANGELOG.md Co-authored-by: Adam Ling (MSFT) --- sdk/monitor/azure-monitor-query/CHANGELOG.md | 5 ++++- sdk/monitor/azure-monitor-query/README.md | 4 ++-- .../monitor/query/_metrics_query_client.py | 10 ++++++---- .../azure/monitor/query/_models.py | 14 ++++++++----- .../query/aio/_metrics_query_client_async.py | 10 ++++++---- .../samples/sample_log_query_client.py | 20 +++++++++++++------ .../samples/sample_metric_namespaces.py | 2 +- .../samples/sample_metrics_query_client.py | 5 ++--- .../tests/async/test_metrics_client_async.py | 16 +++++++++++++++ .../tests/test_metrics_client.py | 14 +++++++++++++ 10 files changed, 74 insertions(+), 26 deletions(-) diff --git a/sdk/monitor/azure-monitor-query/CHANGELOG.md b/sdk/monitor/azure-monitor-query/CHANGELOG.md index 6589176e48db..94a92b8cc700 100644 --- a/sdk/monitor/azure-monitor-query/CHANGELOG.md +++ b/sdk/monitor/azure-monitor-query/CHANGELOG.md @@ -4,6 +4,8 @@ ### Features Added +- Added additional `display_description` attribute to the `Metric` type. + ### Breaking Changes - Rename `batch_query` to `query_batch`. @@ -15,7 +17,8 @@ - `top` is renamed to `max_results` in the metric's `query` API. - `metric_namespace_name` is renamed to `fully_qualified_namespace` - `is_dimension_required` is renamed to `dimension_required` -- `time_grain` is renamed to `granularity` +- `interval` and `time_grain` are renamed to `granularity` +- `orderby` is renamed to `order_by` - `LogsQueryResult` now returns `datetime` objects for a time values. ### Bugs Fixed diff --git a/sdk/monitor/azure-monitor-query/README.md b/sdk/monitor/azure-monitor-query/README.md index 336a887da4e5..a87aa1ae263d 100644 --- a/sdk/monitor/azure-monitor-query/README.md +++ b/sdk/monitor/azure-monitor-query/README.md @@ -289,11 +289,11 @@ for metric in response.metrics: ### Handle metrics response -The metrics query API returns a `MetricsResult` object. The `MetricsResult` object contains properties such as a list of `Metric`-typed objects, `interval`, `namespace`, and `timespan`. The `Metric` objects list can be accessed using the `metrics` param. Each `Metric` object in this list contains a list of `TimeSeriesElement` objects. Each `TimeSeriesElement` contains `data` and `metadata_values` properties. In visual form, the object hierarchy of the response resembles the following structure: +The metrics query API returns a `MetricsResult` object. The `MetricsResult` object contains properties such as a list of `Metric`-typed objects, `granularity`, `namespace`, and `timespan`. The `Metric` objects list can be accessed using the `metrics` param. Each `Metric` object in this list contains a list of `TimeSeriesElement` objects. Each `TimeSeriesElement` contains `data` and `metadata_values` properties. In visual form, the object hierarchy of the response resembles the following structure: ``` MetricsResult -|---interval +|---granularity |---timespan |---cost |---namespace diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_metrics_query_client.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_metrics_query_client.py index 0b45d1bc10b3..e63e04832b21 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_metrics_query_client.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_metrics_query_client.py @@ -68,8 +68,8 @@ def query(self, resource_uri, metric_names, **kwargs): a timedelta and a start datetime, or a start datetime/end datetime. :paramtype timespan: ~datetime.timedelta or tuple[~datetime.datetime, ~datetime.timedelta] or tuple[~datetime.datetime, ~datetime.datetime] - :keyword interval: The interval (i.e. timegrain) of the query. - :paramtype interval: ~datetime.timedelta + :keyword granularity: The granularity (i.e. timegrain) of the query. + :paramtype granularity: ~datetime.timedelta :keyword aggregations: The list of aggregation types to retrieve. Use `azure.monitor.query.AggregationType` enum to get each aggregation type. :paramtype aggregations: list[str] @@ -77,10 +77,10 @@ def query(self, resource_uri, metric_names, **kwargs): Valid only if $filter is specified. Defaults to 10. :paramtype max_results: int - :keyword orderby: The aggregation to use for sorting results and the direction of the sort. + :keyword order_by: The aggregation to use for sorting results and the direction of the sort. Only one order can be specified. Examples: sum asc. - :paramtype orderby: str + :paramtype order_by: str :keyword filter: The **$filter** is used to reduce the set of metric data returned.:code:`
`Example::code:`
`Metric contains metadata A, B and C.:code:`
`- Return all time series of C where A = a1 and B = b1 or b2:code:`
`\ **$filter=A eq ‘a1’ and @@ -117,6 +117,8 @@ def query(self, resource_uri, metric_names, **kwargs): kwargs.setdefault("metricnames", ",".join(metric_names)) kwargs.setdefault("timespan", timespan) kwargs.setdefault("top", kwargs.pop("max_results", None)) + kwargs.setdefault("interval", kwargs.pop("granularity", None)) + kwargs.setdefault("orderby", kwargs.pop("order_by", None)) generated = self._metrics_op.list(resource_uri, connection_verify=False, **kwargs) return MetricsResult._from_generated(generated) # pylint: disable=protected-access diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py index fcc22a6ba687..ebdb22a614f2 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_models.py @@ -115,10 +115,10 @@ class MetricsResult(object): two datetimes concatenated, separated by '/'. This may be adjusted in the future and returned back from what was originally requested. :vartype timespan: str - :ivar interval: The interval (window size) for which the metric data was returned in. This + :ivar granularity: The granularity (window size) for which the metric data was returned in. This may be adjusted in the future and returned back from what was originally requested. This is not present if a metadata request was made. - :vartype interval: ~datetime.timedelta + :vartype granularity: ~datetime.timedelta :ivar namespace: The namespace of the metrics that has been queried. :vartype namespace: str :ivar resource_region: The region of the resource that has been queried for metrics. @@ -130,7 +130,7 @@ def __init__(self, **kwargs): # type: (Any) -> None self.cost = kwargs.get("cost", None) self.timespan = kwargs["timespan"] - self.interval = kwargs.get("interval", None) + self.granularity = kwargs.get("granularity", None) self.namespace = kwargs.get("namespace", None) self.resource_region = kwargs.get("resource_region", None) self.metrics = kwargs["metrics"] @@ -142,7 +142,7 @@ def _from_generated(cls, generated): return cls( cost=generated.cost, timespan=generated.timespan, - interval=generated.interval, + granularity=generated.interval, namespace=generated.namespace, resource_region=generated.resourceregion, metrics=[Metric._from_generated(m) for m in generated.value] # pylint: disable=protected-access @@ -459,6 +459,8 @@ class Metric(object): :vartype unit: str :ivar timeseries: Required. The time series returned when a data query is performed. :vartype timeseries: list[~monitor_query_client.models.TimeSeriesElement] + :ivar display_description: Detailed description of this metric. + :vartype display_description: str """ def __init__( self, @@ -470,6 +472,7 @@ def __init__( self.name = kwargs['name'] self.unit = kwargs['unit'] self.timeseries = kwargs['timeseries'] + self.display_description = kwargs['display_description'] @classmethod def _from_generated(cls, generated): @@ -482,7 +485,8 @@ def _from_generated(cls, generated): unit=generated.unit, timeseries=[ TimeSeriesElement._from_generated(t) for t in generated.timeseries # pylint: disable=protected-access - ] + ], + display_description=generated.display_description, ) diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_metrics_query_client_async.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_metrics_query_client_async.py index 69da6544cb8c..f1a772c1df7d 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_metrics_query_client_async.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/aio/_metrics_query_client_async.py @@ -62,8 +62,8 @@ async def query( a timedelta and a start datetime, or a start datetime/end datetime. :paramtype timespan: ~datetime.timedelta or tuple[~datetime.datetime, ~datetime.timedelta] or tuple[~datetime.datetime, ~datetime.datetime] - :keyword interval: The interval (i.e. timegrain) of the query. - :paramtype interval: ~datetime.timedelta + :keyword granularity: The interval (i.e. timegrain) of the query. + :paramtype granularity: ~datetime.timedelta :keyword aggregations: The list of aggregation types to retrieve. Use `azure.monitor.query.AggregationType` enum to get each aggregation type. :paramtype aggregations: list[str] @@ -71,10 +71,10 @@ async def query( Valid only if $filter is specified. Defaults to 10. :paramtype max_results: int - :keyword orderby: The aggregation to use for sorting results and the direction of the sort. + :keyword order_by: The aggregation to use for sorting results and the direction of the sort. Only one order can be specified. Examples: sum asc. - :paramtype orderby: str + :paramtype order_by: str :keyword filter: The **$filter** is used to reduce the set of metric data returned.:code:`
`Example::code:`
`Metric contains metadata A, B and C.:code:`
`- Return all time series of C where A = a1 and B = b1 or b2:code:`
`\ **$filter=A eq ‘a1’ and @@ -98,6 +98,8 @@ async def query( kwargs.setdefault("metricnames", ",".join(metric_names)) kwargs.setdefault("timespan", timespan) kwargs.setdefault("top", kwargs.pop("max_results", None)) + kwargs.setdefault("interval", kwargs.pop("granularity", None)) + kwargs.setdefault("orderby", kwargs.pop("order_by", None)) aggregations = kwargs.pop("aggregations", None) if aggregations: kwargs.setdefault("aggregation", ",".join(aggregations)) diff --git a/sdk/monitor/azure-monitor-query/samples/sample_log_query_client.py b/sdk/monitor/azure-monitor-query/samples/sample_log_query_client.py index d9457b6d4b66..fd2d13a4b891 100644 --- a/sdk/monitor/azure-monitor-query/samples/sample_log_query_client.py +++ b/sdk/monitor/azure-monitor-query/samples/sample_log_query_client.py @@ -20,18 +20,26 @@ query = """AppRequests | summarize avgRequestDuration=avg(DurationMs) by bin(TimeGenerated, 10m), _ResourceId""" +query = """ +AppRequests +| where TimeGenerated > ago(1h) +| fork + ( summarize avgRequestDuration=avg(DurationMs) by bin(TimeGenerated, 10m), _ResourceId ) +""" + # returns LogsQueryResult response = client.query(os.environ['LOG_WORKSPACE_ID'], query, timespan=timedelta(days=1)) if not response.tables: print("No results for the query") -try: - table = response.tables[0] - df = pd.DataFrame(table.rows, columns=[col.name for col in table.columns]) - print(df) -except TypeError: - print(response.error) +for table in response.tables: + try: + print ([col.name for col in table.columns]) + df = pd.DataFrame(table.rows, columns=[col.name for col in table.columns]) + print(df) + except TypeError: + print(response.error) # [END send_logs_query] """ TimeGenerated _ResourceId avgRequestDuration diff --git a/sdk/monitor/azure-monitor-query/samples/sample_metric_namespaces.py b/sdk/monitor/azure-monitor-query/samples/sample_metric_namespaces.py index f5f32ce73996..78b997d0fa7f 100644 --- a/sdk/monitor/azure-monitor-query/samples/sample_metric_namespaces.py +++ b/sdk/monitor/azure-monitor-query/samples/sample_metric_namespaces.py @@ -13,5 +13,5 @@ response = client.list_metric_namespaces(metrics_uri) for item in response: - print(item.metric_namespace_name) + print(item.fully_qualified_namespace) print(item.type) diff --git a/sdk/monitor/azure-monitor-query/samples/sample_metrics_query_client.py b/sdk/monitor/azure-monitor-query/samples/sample_metrics_query_client.py index 7bca1ab1aa24..15c6dcbdf157 100644 --- a/sdk/monitor/azure-monitor-query/samples/sample_metrics_query_client.py +++ b/sdk/monitor/azure-monitor-query/samples/sample_metrics_query_client.py @@ -19,9 +19,8 @@ metrics_uri = os.environ['METRICS_RESOURCE_URI'] response = client.query( metrics_uri, - metric_names=["MatchedEventCount"], - start_time=datetime(2021, 6, 21), - duration=timedelta(days=1), + metric_names=["MatchedEventCount", "DeliverySuccesssCount"], + timespan=timedelta(days=1), aggregations=[AggregationType.COUNT] ) diff --git a/sdk/monitor/azure-monitor-query/tests/async/test_metrics_client_async.py b/sdk/monitor/azure-monitor-query/tests/async/test_metrics_client_async.py index fb76a4f4d7ea..ab796d7d0924 100644 --- a/sdk/monitor/azure-monitor-query/tests/async/test_metrics_client_async.py +++ b/sdk/monitor/azure-monitor-query/tests/async/test_metrics_client_async.py @@ -14,6 +14,7 @@ def _credential(): return credential @pytest.mark.live_test_only +@pytest.mark.asyncio async def test_metrics_auth(): credential = _credential() client = MetricsQueryClient(credential) @@ -26,6 +27,21 @@ async def test_metrics_auth(): assert response assert response.metrics +@pytest.mark.live_test_only +@pytest.mark.asyncio +async def test_metrics_granularity(): + credential = _credential() + client = MetricsQueryClient(credential) + response = await client.query( + os.environ['METRICS_RESOURCE_URI'], + metric_names=["MatchedEventCount"], + timespan=timedelta(days=1), + granularity=timedelta(minutes=5), + aggregations=[AggregationType.COUNT] + ) + assert response + assert response.granularity == timedelta(minutes=5) + @pytest.mark.live_test_only async def test_metrics_namespaces(): client = MetricsQueryClient(_credential()) diff --git a/sdk/monitor/azure-monitor-query/tests/test_metrics_client.py b/sdk/monitor/azure-monitor-query/tests/test_metrics_client.py index 95ee209b6775..082da65c4385 100644 --- a/sdk/monitor/azure-monitor-query/tests/test_metrics_client.py +++ b/sdk/monitor/azure-monitor-query/tests/test_metrics_client.py @@ -25,6 +25,20 @@ def test_metrics_auth(): assert response assert response.metrics +@pytest.mark.live_test_only +def test_metrics_granularity(): + credential = _credential() + client = MetricsQueryClient(credential) + response = client.query( + os.environ['METRICS_RESOURCE_URI'], + metric_names=["MatchedEventCount"], + timespan=timedelta(days=1), + granularity=timedelta(minutes=5), + aggregations=[AggregationType.COUNT] + ) + assert response + assert response.granularity == timedelta(minutes=5) + @pytest.mark.live_test_only def test_metrics_namespaces(): client = MetricsQueryClient(_credential()) From f2933242020ee0d3f800cd6eb5bae2e48b6c03c7 Mon Sep 17 00:00:00 2001 From: "Tong Xu (MSFT)" <57166602+v-xuto@users.noreply.github.com> Date: Sat, 21 Aug 2021 00:38:49 +0800 Subject: [PATCH 103/104] Fix Monitor opentelemetry exporter readme issues (#19038) --- sdk/monitor/azure-monitor-opentelemetry-exporter/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/monitor/azure-monitor-opentelemetry-exporter/README.md b/sdk/monitor/azure-monitor-opentelemetry-exporter/README.md index f137e2731d27..7f3e594ccd44 100644 --- a/sdk/monitor/azure-monitor-opentelemetry-exporter/README.md +++ b/sdk/monitor/azure-monitor-opentelemetry-exporter/README.md @@ -4,7 +4,7 @@ The exporter for Azure Monitor allows you to export tracing data utilizing the OpenTelemetry SDK and send telemetry data to Azure Monitor for applications written in Python. -[Source code](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/monitor/azure-monitor-opentelemetry-exporter) | [Package (PyPi)][pypi] | [API reference documentation][api_docs] | [Product documentation][product_docs] || [Samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/monitor/azure-monitor-opentelemetry-exporter/samples) | [Changelog](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/monitor/azure-monitor-opentelemetry-exporter/CHANGELOG.md) +[Source code](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/monitor/azure-monitor-opentelemetry-exporter) | [Package (PyPi)][pypi] | [API reference documentation][api_docs] | [Product documentation][product_docs] | [Samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/monitor/azure-monitor-opentelemetry-exporter/samples) | [Changelog](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/monitor/azure-monitor-opentelemetry-exporter/CHANGELOG.md) ## Getting started @@ -33,7 +33,7 @@ Please find the samples linked below for demonstration as to how to construct th ```Python from azure.monitor.opentelemetry.exporter import AzureMonitorTraceExporter exporter = AzureMonitorTraceExporter.from_connection_string( - connection_string = os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"] + conn_str = os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"] ) ``` From 521d56d2d11df91a8f93d0024816f52d9c060c13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= <39780829+mccoyp@users.noreply.github.com> Date: Fri, 20 Aug 2021 12:51:52 -0700 Subject: [PATCH 104/104] [Key Vault] Add 7.3-preview support for administration (#20364) --- .../CHANGELOG.md | 3 +- .../azure/keyvault/administration/_enums.py | 10 + .../_generated/_key_vault_client.py | 12 +- .../_generated/_operations_mixin.py | 10 + .../_generated/aio/_key_vault_client.py | 12 +- .../_generated/aio/_operations_mixin.py | 20 +- .../_generated/v7_2/_metadata.json | 16 +- .../_key_vault_client_operations.py | 16 +- .../_role_assignments_operations.py | 8 +- .../_role_definitions_operations.py | 8 +- .../v7_2/models/_key_vault_client_enums.py | 4 + .../_generated/v7_3_preview/__init__.py | 16 + .../_generated/v7_3_preview/_configuration.py | 52 ++ .../v7_3_preview/_key_vault_client.py | 82 ++ .../_generated/v7_3_preview/_metadata.json | 170 ++++ .../_generated/v7_3_preview/aio/__init__.py | 10 + .../v7_3_preview/aio/_configuration.py | 46 ++ .../v7_3_preview/aio/_key_vault_client.py | 72 ++ .../v7_3_preview/aio/operations/__init__.py | 17 + .../_key_vault_client_operations.py | 529 ++++++++++++ .../_role_assignments_operations.py | 322 ++++++++ .../_role_definitions_operations.py | 322 ++++++++ .../v7_3_preview/models/__init__.py | 87 ++ .../models/_key_vault_client_enums.py | 124 +++ .../_generated/v7_3_preview/models/_models.py | 681 ++++++++++++++++ .../v7_3_preview/models/_models_py3.py | 761 ++++++++++++++++++ .../v7_3_preview/operations/__init__.py | 17 + .../_key_vault_client_operations.py | 541 +++++++++++++ .../_role_assignments_operations.py | 330 ++++++++ .../_role_definitions_operations.py | 330 ++++++++ .../_generated/v7_3_preview/py.typed | 1 + .../_internal/async_client_base.py | 2 - .../administration/_internal/client_base.py | 3 +- .../azure/keyvault/administration/_version.py | 2 +- .../azure-keyvault-administration/setup.py | 2 +- ...t_access_control.test_role_assignment.yaml | 72 +- ..._access_control.test_role_definitions.yaml | 103 ++- ...ss_control_async.test_role_assignment.yaml | 84 +- ...s_control_async.test_role_definitions.yaml | 121 ++- ...p_client.test_full_backup_and_restore.yaml | 178 +++- ...kup_client.test_selective_key_restore.yaml | 143 ++-- ...nt_async.test_full_backup_and_restore.yaml | 96 +-- ...ient_async.test_selective_key_restore.yaml | 134 ++- ...ation.test_example_backup_and_restore.yaml | 117 +-- ...on.test_example_selective_key_restore.yaml | 88 +- ...async.test_example_backup_and_restore.yaml | 99 +-- ...nc.test_example_selective_key_restore.yaml | 100 +-- 47 files changed, 5297 insertions(+), 676 deletions(-) create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/__init__.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/_configuration.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/_key_vault_client.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/_metadata.json create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/__init__.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/_configuration.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/_key_vault_client.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/operations/__init__.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/operations/_key_vault_client_operations.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/operations/_role_assignments_operations.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/operations/_role_definitions_operations.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/models/__init__.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/models/_key_vault_client_enums.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/models/_models.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/models/_models_py3.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/operations/__init__.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/operations/_key_vault_client_operations.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/operations/_role_assignments_operations.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/operations/_role_definitions_operations.py create mode 100644 sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/py.typed diff --git a/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md b/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md index ef61adaf58cf..78715d2820e6 100644 --- a/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md +++ b/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md @@ -1,8 +1,9 @@ # Release History -## 4.0.1 (Unreleased) +## 4.1.0b1 (Unreleased) ### Features Added +- Key Vault API version 7.3-preview is the default version ### Breaking Changes diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_enums.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_enums.py index 1109ef610c32..8999a64ed9ec 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_enums.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_enums.py @@ -40,6 +40,10 @@ class KeyVaultDataAction(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): WRITE_ROLE_ASSIGNMENT = "Microsoft.KeyVault/managedHsm/roleAssignments/write/action" #: Get role definition. READ_ROLE_DEFINITION = "Microsoft.KeyVault/managedHsm/roleDefinitions/read/action" + #: Create or update role definition. + WRITE_ROLE_DEFINITION = "Microsoft.KeyVault/managedHsm/roleDefinitions/write/action" + #: Delete role definition. + DELETE_ROLE_DEFINITION = "Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action" #: Encrypt using an HSM key. ENCRYPT_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/encrypt/action" #: Decrypt using an HSM key. @@ -58,12 +62,16 @@ class KeyVaultDataAction(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): DELETE_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/delete" #: Export an HSM key. EXPORT_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/export/action" + #: Release an HSM key using Secure Key Release. + RELEASE_KEY = "Microsoft.KeyVault/managedHsm/keys/release/action" #: Import an HSM key. IMPORT_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/import/action" #: Purge a deleted HSM key. PURGE_DELETED_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete" #: Download an HSM security domain. DOWNLOAD_HSM_SECURITY_DOMAIN = "Microsoft.KeyVault/managedHsm/securitydomain/download/action" + #: Check status of HSM security domain download. + DOWNLOAD_HSM_SECURITY_DOMAIN_STATUS = "Microsoft.KeyVault/managedHsm/securitydomain/download/read" #: Upload an HSM security domain. UPLOAD_HSM_SECURITY_DOMAIN = "Microsoft.KeyVault/managedHsm/securitydomain/upload/action" #: Check the status of the HSM security domain exchange file. @@ -78,3 +86,5 @@ class KeyVaultDataAction(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): READ_HSM_BACKUP_STATUS = "Microsoft.KeyVault/managedHsm/backup/status/action" #: Read an HSM restore status. READ_HSM_RESTORE_STATUS = "Microsoft.KeyVault/managedHsm/restore/status/action" + #: Generate random numbers. + RANDOM_NUMBERS_GENERATE = "Microsoft.KeyVault/managedHsm/rng/action" diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/_key_vault_client.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/_key_vault_client.py index b4ede71da5f9..b74092cd11ca 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/_key_vault_client.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/_key_vault_client.py @@ -64,7 +64,7 @@ def __init__( profile=KnownProfiles.default, # type: KnownProfiles **kwargs # type: Any ): - if api_version == '7.2': + if api_version == '7.2' or api_version == '7.3-preview': base_url = '{vaultBaseUrl}' else: raise ValueError("API version {} is not available".format(api_version)) @@ -84,10 +84,14 @@ def models(cls, api_version=DEFAULT_API_VERSION): """Module depends on the API version: * 7.2: :mod:`v7_2.models` + * 7.3-preview: :mod:`v7_3_preview.models` """ if api_version == '7.2': from .v7_2 import models return models + elif api_version == '7.3-preview': + from .v7_3_preview import models + return models raise ValueError("API version {} is not available".format(api_version)) @property @@ -95,10 +99,13 @@ def role_assignments(self): """Instance depends on the API version: * 7.2: :class:`RoleAssignmentsOperations` + * 7.3-preview: :class:`RoleAssignmentsOperations` """ api_version = self._get_api_version('role_assignments') if api_version == '7.2': from .v7_2.operations import RoleAssignmentsOperations as OperationClass + elif api_version == '7.3-preview': + from .v7_3_preview.operations import RoleAssignmentsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'role_assignments'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -108,10 +115,13 @@ def role_definitions(self): """Instance depends on the API version: * 7.2: :class:`RoleDefinitionsOperations` + * 7.3-preview: :class:`RoleDefinitionsOperations` """ api_version = self._get_api_version('role_definitions') if api_version == '7.2': from .v7_2.operations import RoleDefinitionsOperations as OperationClass + elif api_version == '7.3-preview': + from .v7_3_preview.operations import RoleDefinitionsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'role_definitions'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/_operations_mixin.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/_operations_mixin.py index 48be8d601c1a..d60fc76800ee 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/_operations_mixin.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/_operations_mixin.py @@ -52,6 +52,8 @@ def begin_full_backup( api_version = self._get_api_version('begin_full_backup') if api_version == '7.2': from .v7_2.operations import KeyVaultClientOperationsMixin as OperationClass + elif api_version == '7.3-preview': + from .v7_3_preview.operations import KeyVaultClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'begin_full_backup'".format(api_version)) mixin_instance = OperationClass() @@ -89,6 +91,8 @@ def begin_full_restore_operation( api_version = self._get_api_version('begin_full_restore_operation') if api_version == '7.2': from .v7_2.operations import KeyVaultClientOperationsMixin as OperationClass + elif api_version == '7.3-preview': + from .v7_3_preview.operations import KeyVaultClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'begin_full_restore_operation'".format(api_version)) mixin_instance = OperationClass() @@ -129,6 +133,8 @@ def begin_selective_key_restore_operation( api_version = self._get_api_version('begin_selective_key_restore_operation') if api_version == '7.2': from .v7_2.operations import KeyVaultClientOperationsMixin as OperationClass + elif api_version == '7.3-preview': + from .v7_3_preview.operations import KeyVaultClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'begin_selective_key_restore_operation'".format(api_version)) mixin_instance = OperationClass() @@ -159,6 +165,8 @@ def full_backup_status( api_version = self._get_api_version('full_backup_status') if api_version == '7.2': from .v7_2.operations import KeyVaultClientOperationsMixin as OperationClass + elif api_version == '7.3-preview': + from .v7_3_preview.operations import KeyVaultClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'full_backup_status'".format(api_version)) mixin_instance = OperationClass() @@ -189,6 +197,8 @@ def restore_status( api_version = self._get_api_version('restore_status') if api_version == '7.2': from .v7_2.operations import KeyVaultClientOperationsMixin as OperationClass + elif api_version == '7.3-preview': + from .v7_3_preview.operations import KeyVaultClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'restore_status'".format(api_version)) mixin_instance = OperationClass() diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/aio/_key_vault_client.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/aio/_key_vault_client.py index 29f11dfba995..5ca84b758c59 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/aio/_key_vault_client.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/aio/_key_vault_client.py @@ -59,7 +59,7 @@ def __init__( profile: KnownProfiles = KnownProfiles.default, **kwargs # type: Any ) -> None: - if api_version == '7.2': + if api_version == '7.2' or api_version == '7.3-preview': base_url = '{vaultBaseUrl}' else: raise ValueError("API version {} is not available".format(api_version)) @@ -79,10 +79,14 @@ def models(cls, api_version=DEFAULT_API_VERSION): """Module depends on the API version: * 7.2: :mod:`v7_2.models` + * 7.3-preview: :mod:`v7_3_preview.models` """ if api_version == '7.2': from ..v7_2 import models return models + elif api_version == '7.3-preview': + from ..v7_3_preview import models + return models raise ValueError("API version {} is not available".format(api_version)) @property @@ -90,10 +94,13 @@ def role_assignments(self): """Instance depends on the API version: * 7.2: :class:`RoleAssignmentsOperations` + * 7.3-preview: :class:`RoleAssignmentsOperations` """ api_version = self._get_api_version('role_assignments') if api_version == '7.2': from ..v7_2.aio.operations import RoleAssignmentsOperations as OperationClass + elif api_version == '7.3-preview': + from ..v7_3_preview.aio.operations import RoleAssignmentsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'role_assignments'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -103,10 +110,13 @@ def role_definitions(self): """Instance depends on the API version: * 7.2: :class:`RoleDefinitionsOperations` + * 7.3-preview: :class:`RoleDefinitionsOperations` """ api_version = self._get_api_version('role_definitions') if api_version == '7.2': from ..v7_2.aio.operations import RoleDefinitionsOperations as OperationClass + elif api_version == '7.3-preview': + from ..v7_3_preview.aio.operations import RoleDefinitionsOperations as OperationClass else: raise ValueError("API version {} does not have operation group 'role_definitions'".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/aio/_operations_mixin.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/aio/_operations_mixin.py index 4ce9e8ff4eb2..3b9a3edc0fa8 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/aio/_operations_mixin.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/aio/_operations_mixin.py @@ -25,7 +25,7 @@ async def begin_full_backup( self, vault_base_url: str, azure_storage_blob_container_uri: Optional["_models.SASTokenParameter"] = None, - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.FullBackupOperation"]: """Creates a full backup using a user-provided SAS token to an Azure blob storage container. @@ -48,6 +48,8 @@ async def begin_full_backup( api_version = self._get_api_version('begin_full_backup') if api_version == '7.2': from ..v7_2.aio.operations import KeyVaultClientOperationsMixin as OperationClass + elif api_version == '7.3-preview': + from ..v7_3_preview.aio.operations import KeyVaultClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'begin_full_backup'".format(api_version)) mixin_instance = OperationClass() @@ -62,7 +64,7 @@ async def begin_full_restore_operation( self, vault_base_url: str, restore_blob_details: Optional["_models.RestoreOperationParameters"] = None, - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.RestoreOperation"]: """Restores all key materials using the SAS token pointing to a previously stored Azure Blob storage backup folder. @@ -85,6 +87,8 @@ async def begin_full_restore_operation( api_version = self._get_api_version('begin_full_restore_operation') if api_version == '7.2': from ..v7_2.aio.operations import KeyVaultClientOperationsMixin as OperationClass + elif api_version == '7.3-preview': + from ..v7_3_preview.aio.operations import KeyVaultClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'begin_full_restore_operation'".format(api_version)) mixin_instance = OperationClass() @@ -100,7 +104,7 @@ async def begin_selective_key_restore_operation( vault_base_url: str, key_name: str, restore_blob_details: Optional["_models.SelectiveKeyRestoreOperationParameters"] = None, - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.SelectiveKeyRestoreOperation"]: """Restores all key versions of a given key using user supplied SAS token pointing to a previously stored Azure Blob storage backup folder. @@ -125,6 +129,8 @@ async def begin_selective_key_restore_operation( api_version = self._get_api_version('begin_selective_key_restore_operation') if api_version == '7.2': from ..v7_2.aio.operations import KeyVaultClientOperationsMixin as OperationClass + elif api_version == '7.3-preview': + from ..v7_3_preview.aio.operations import KeyVaultClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'begin_selective_key_restore_operation'".format(api_version)) mixin_instance = OperationClass() @@ -139,7 +145,7 @@ async def full_backup_status( self, vault_base_url: str, job_id: str, - **kwargs + **kwargs: Any ) -> "_models.FullBackupOperation": """Returns the status of full backup operation. @@ -155,6 +161,8 @@ async def full_backup_status( api_version = self._get_api_version('full_backup_status') if api_version == '7.2': from ..v7_2.aio.operations import KeyVaultClientOperationsMixin as OperationClass + elif api_version == '7.3-preview': + from ..v7_3_preview.aio.operations import KeyVaultClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'full_backup_status'".format(api_version)) mixin_instance = OperationClass() @@ -169,7 +177,7 @@ async def restore_status( self, vault_base_url: str, job_id: str, - **kwargs + **kwargs: Any ) -> "_models.RestoreOperation": """Returns the status of restore operation. @@ -185,6 +193,8 @@ async def restore_status( api_version = self._get_api_version('restore_status') if api_version == '7.2': from ..v7_2.aio.operations import KeyVaultClientOperationsMixin as OperationClass + elif api_version == '7.3-preview': + from ..v7_3_preview.aio.operations import KeyVaultClientOperationsMixin as OperationClass else: raise ValueError("API version {} does not have operation 'restore_status'".format(api_version)) mixin_instance = OperationClass() diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/_metadata.json b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/_metadata.json index 08fd3968e967..07aceda88813 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/_metadata.json +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/_metadata.json @@ -76,7 +76,7 @@ }, "async": { "coroutine": true, - "signature": "async def _full_backup_initial(\n self,\n vault_base_url: str,\n azure_storage_blob_container_uri: Optional[\"_models.SASTokenParameter\"] = None,\n **kwargs\n) -\u003e \"_models.FullBackupOperation\":\n", + "signature": "async def _full_backup_initial(\n self,\n vault_base_url: str,\n azure_storage_blob_container_uri: Optional[\"_models.SASTokenParameter\"] = None,\n **kwargs: Any\n) -\u003e \"_models.FullBackupOperation\":\n", "doc": "\"\"\"\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param azure_storage_blob_container_uri: Azure blob shared access signature token pointing to a\n valid Azure blob container where full backup needs to be stored. This token needs to be valid\n for at least next 24 hours from the time of making this call.\n:type azure_storage_blob_container_uri: ~azure.keyvault.v7_2.models.SASTokenParameter\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: FullBackupOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_2.models.FullBackupOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" }, "call": "vault_base_url, azure_storage_blob_container_uri" @@ -88,7 +88,7 @@ }, "async": { "coroutine": true, - "signature": "async def begin_full_backup(\n self,\n vault_base_url: str,\n azure_storage_blob_container_uri: Optional[\"_models.SASTokenParameter\"] = None,\n **kwargs\n) -\u003e AsyncLROPoller[\"_models.FullBackupOperation\"]:\n", + "signature": "async def begin_full_backup(\n self,\n vault_base_url: str,\n azure_storage_blob_container_uri: Optional[\"_models.SASTokenParameter\"] = None,\n **kwargs: Any\n) -\u003e AsyncLROPoller[\"_models.FullBackupOperation\"]:\n", "doc": "\"\"\"Creates a full backup using a user-provided SAS token to an Azure blob storage container.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param azure_storage_blob_container_uri: Azure blob shared access signature token pointing to a\n valid Azure blob container where full backup needs to be stored. This token needs to be valid\n for at least next 24 hours from the time of making this call.\n:type azure_storage_blob_container_uri: ~azure.keyvault.v7_2.models.SASTokenParameter\n:keyword callable cls: A custom type or function that will be passed the direct response\n:keyword str continuation_token: A continuation token to restart a poller from a saved state.\n:keyword polling: By default, your polling method will be AsyncLROBasePolling.\n Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy.\n:paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod\n:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.\n:return: An instance of AsyncLROPoller that returns either FullBackupOperation or the result of cls(response)\n:rtype: ~azure.core.polling.AsyncLROPoller[~azure.keyvault.v7_2.models.FullBackupOperation]\n:raises ~azure.core.exceptions.HttpResponseError:\n\"\"\"" }, "call": "vault_base_url, azure_storage_blob_container_uri" @@ -100,7 +100,7 @@ }, "async": { "coroutine": true, - "signature": "async def full_backup_status(\n self,\n vault_base_url: str,\n job_id: str,\n **kwargs\n) -\u003e \"_models.FullBackupOperation\":\n", + "signature": "async def full_backup_status(\n self,\n vault_base_url: str,\n job_id: str,\n **kwargs: Any\n) -\u003e \"_models.FullBackupOperation\":\n", "doc": "\"\"\"Returns the status of full backup operation.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param job_id: The id returned as part of the backup request.\n:type job_id: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: FullBackupOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_2.models.FullBackupOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" }, "call": "vault_base_url, job_id" @@ -112,7 +112,7 @@ }, "async": { "coroutine": true, - "signature": "async def _full_restore_operation_initial(\n self,\n vault_base_url: str,\n restore_blob_details: Optional[\"_models.RestoreOperationParameters\"] = None,\n **kwargs\n) -\u003e \"_models.RestoreOperation\":\n", + "signature": "async def _full_restore_operation_initial(\n self,\n vault_base_url: str,\n restore_blob_details: Optional[\"_models.RestoreOperationParameters\"] = None,\n **kwargs: Any\n) -\u003e \"_models.RestoreOperation\":\n", "doc": "\"\"\"\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_2.models.RestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: RestoreOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_2.models.RestoreOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" }, "call": "vault_base_url, restore_blob_details" @@ -124,7 +124,7 @@ }, "async": { "coroutine": true, - "signature": "async def begin_full_restore_operation(\n self,\n vault_base_url: str,\n restore_blob_details: Optional[\"_models.RestoreOperationParameters\"] = None,\n **kwargs\n) -\u003e AsyncLROPoller[\"_models.RestoreOperation\"]:\n", + "signature": "async def begin_full_restore_operation(\n self,\n vault_base_url: str,\n restore_blob_details: Optional[\"_models.RestoreOperationParameters\"] = None,\n **kwargs: Any\n) -\u003e AsyncLROPoller[\"_models.RestoreOperation\"]:\n", "doc": "\"\"\"Restores all key materials using the SAS token pointing to a previously stored Azure Blob\nstorage backup folder.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_2.models.RestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:keyword str continuation_token: A continuation token to restart a poller from a saved state.\n:keyword polling: By default, your polling method will be AsyncLROBasePolling.\n Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy.\n:paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod\n:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.\n:return: An instance of AsyncLROPoller that returns either RestoreOperation or the result of cls(response)\n:rtype: ~azure.core.polling.AsyncLROPoller[~azure.keyvault.v7_2.models.RestoreOperation]\n:raises ~azure.core.exceptions.HttpResponseError:\n\"\"\"" }, "call": "vault_base_url, restore_blob_details" @@ -136,7 +136,7 @@ }, "async": { "coroutine": true, - "signature": "async def restore_status(\n self,\n vault_base_url: str,\n job_id: str,\n **kwargs\n) -\u003e \"_models.RestoreOperation\":\n", + "signature": "async def restore_status(\n self,\n vault_base_url: str,\n job_id: str,\n **kwargs: Any\n) -\u003e \"_models.RestoreOperation\":\n", "doc": "\"\"\"Returns the status of restore operation.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param job_id: The Job Id returned part of the restore operation.\n:type job_id: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: RestoreOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_2.models.RestoreOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" }, "call": "vault_base_url, job_id" @@ -148,7 +148,7 @@ }, "async": { "coroutine": true, - "signature": "async def _selective_key_restore_operation_initial(\n self,\n vault_base_url: str,\n key_name: str,\n restore_blob_details: Optional[\"_models.SelectiveKeyRestoreOperationParameters\"] = None,\n **kwargs\n) -\u003e \"_models.SelectiveKeyRestoreOperation\":\n", + "signature": "async def _selective_key_restore_operation_initial(\n self,\n vault_base_url: str,\n key_name: str,\n restore_blob_details: Optional[\"_models.SelectiveKeyRestoreOperationParameters\"] = None,\n **kwargs: Any\n) -\u003e \"_models.SelectiveKeyRestoreOperation\":\n", "doc": "\"\"\"\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param key_name: The name of the key to be restored from the user supplied backup.\n:type key_name: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_2.models.SelectiveKeyRestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: SelectiveKeyRestoreOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_2.models.SelectiveKeyRestoreOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" }, "call": "vault_base_url, key_name, restore_blob_details" @@ -160,7 +160,7 @@ }, "async": { "coroutine": true, - "signature": "async def begin_selective_key_restore_operation(\n self,\n vault_base_url: str,\n key_name: str,\n restore_blob_details: Optional[\"_models.SelectiveKeyRestoreOperationParameters\"] = None,\n **kwargs\n) -\u003e AsyncLROPoller[\"_models.SelectiveKeyRestoreOperation\"]:\n", + "signature": "async def begin_selective_key_restore_operation(\n self,\n vault_base_url: str,\n key_name: str,\n restore_blob_details: Optional[\"_models.SelectiveKeyRestoreOperationParameters\"] = None,\n **kwargs: Any\n) -\u003e AsyncLROPoller[\"_models.SelectiveKeyRestoreOperation\"]:\n", "doc": "\"\"\"Restores all key versions of a given key using user supplied SAS token pointing to a previously\nstored Azure Blob storage backup folder.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param key_name: The name of the key to be restored from the user supplied backup.\n:type key_name: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_2.models.SelectiveKeyRestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:keyword str continuation_token: A continuation token to restart a poller from a saved state.\n:keyword polling: By default, your polling method will be AsyncLROBasePolling.\n Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy.\n:paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod\n:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.\n:return: An instance of AsyncLROPoller that returns either SelectiveKeyRestoreOperation or the result of cls(response)\n:rtype: ~azure.core.polling.AsyncLROPoller[~azure.keyvault.v7_2.models.SelectiveKeyRestoreOperation]\n:raises ~azure.core.exceptions.HttpResponseError:\n\"\"\"" }, "call": "vault_base_url, key_name, restore_blob_details" diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/aio/operations/_key_vault_client_operations.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/aio/operations/_key_vault_client_operations.py index 4e863f1486cb..3f90aa268135 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/aio/operations/_key_vault_client_operations.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/aio/operations/_key_vault_client_operations.py @@ -25,7 +25,7 @@ async def _full_backup_initial( self, vault_base_url: str, azure_storage_blob_container_uri: Optional["_models.SASTokenParameter"] = None, - **kwargs + **kwargs: Any ) -> "_models.FullBackupOperation": cls = kwargs.pop('cls', None) # type: ClsType["_models.FullBackupOperation"] error_map = { @@ -82,7 +82,7 @@ async def begin_full_backup( self, vault_base_url: str, azure_storage_blob_container_uri: Optional["_models.SASTokenParameter"] = None, - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.FullBackupOperation"]: """Creates a full backup using a user-provided SAS token to an Azure blob storage container. @@ -153,7 +153,7 @@ async def full_backup_status( self, vault_base_url: str, job_id: str, - **kwargs + **kwargs: Any ) -> "_models.FullBackupOperation": """Returns the status of full backup operation. @@ -211,7 +211,7 @@ async def _full_restore_operation_initial( self, vault_base_url: str, restore_blob_details: Optional["_models.RestoreOperationParameters"] = None, - **kwargs + **kwargs: Any ) -> "_models.RestoreOperation": cls = kwargs.pop('cls', None) # type: ClsType["_models.RestoreOperation"] error_map = { @@ -268,7 +268,7 @@ async def begin_full_restore_operation( self, vault_base_url: str, restore_blob_details: Optional["_models.RestoreOperationParameters"] = None, - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.RestoreOperation"]: """Restores all key materials using the SAS token pointing to a previously stored Azure Blob storage backup folder. @@ -339,7 +339,7 @@ async def restore_status( self, vault_base_url: str, job_id: str, - **kwargs + **kwargs: Any ) -> "_models.RestoreOperation": """Returns the status of restore operation. @@ -398,7 +398,7 @@ async def _selective_key_restore_operation_initial( vault_base_url: str, key_name: str, restore_blob_details: Optional["_models.SelectiveKeyRestoreOperationParameters"] = None, - **kwargs + **kwargs: Any ) -> "_models.SelectiveKeyRestoreOperation": cls = kwargs.pop('cls', None) # type: ClsType["_models.SelectiveKeyRestoreOperation"] error_map = { @@ -457,7 +457,7 @@ async def begin_selective_key_restore_operation( vault_base_url: str, key_name: str, restore_blob_details: Optional["_models.SelectiveKeyRestoreOperationParameters"] = None, - **kwargs + **kwargs: Any ) -> AsyncLROPoller["_models.SelectiveKeyRestoreOperation"]: """Restores all key versions of a given key using user supplied SAS token pointing to a previously stored Azure Blob storage backup folder. diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/aio/operations/_role_assignments_operations.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/aio/operations/_role_assignments_operations.py index 12c14e9974fc..3e05d51f55df 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/aio/operations/_role_assignments_operations.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/aio/operations/_role_assignments_operations.py @@ -45,7 +45,7 @@ async def delete( vault_base_url: str, scope: str, role_assignment_name: str, - **kwargs + **kwargs: Any ) -> "_models.RoleAssignment": """Deletes a role assignment. @@ -108,7 +108,7 @@ async def create( scope: str, role_assignment_name: str, parameters: "_models.RoleAssignmentCreateParameters", - **kwargs + **kwargs: Any ) -> "_models.RoleAssignment": """Creates a role assignment. @@ -178,7 +178,7 @@ async def get( vault_base_url: str, scope: str, role_assignment_name: str, - **kwargs + **kwargs: Any ) -> "_models.RoleAssignment": """Get the specified role assignment. @@ -240,7 +240,7 @@ def list_for_scope( vault_base_url: str, scope: str, filter: Optional[str] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.RoleAssignmentListResult"]: """Gets role assignments for a scope. diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/aio/operations/_role_definitions_operations.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/aio/operations/_role_definitions_operations.py index 2aafe4044627..5f61e358ceac 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/aio/operations/_role_definitions_operations.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/aio/operations/_role_definitions_operations.py @@ -45,7 +45,7 @@ async def delete( vault_base_url: str, scope: str, role_definition_name: str, - **kwargs + **kwargs: Any ) -> "_models.RoleDefinition": """Deletes a custom role definition. @@ -108,7 +108,7 @@ async def create_or_update( scope: str, role_definition_name: str, parameters: "_models.RoleDefinitionCreateParameters", - **kwargs + **kwargs: Any ) -> "_models.RoleDefinition": """Creates or updates a custom role definition. @@ -179,7 +179,7 @@ async def get( vault_base_url: str, scope: str, role_definition_name: str, - **kwargs + **kwargs: Any ) -> "_models.RoleDefinition": """Get the specified role definition. @@ -241,7 +241,7 @@ def list( vault_base_url: str, scope: str, filter: Optional[str] = None, - **kwargs + **kwargs: Any ) -> AsyncIterable["_models.RoleDefinitionListResult"]: """Get all role definitions that are applicable at scope and above. diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/models/_key_vault_client_enums.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/models/_key_vault_client_enums.py index e114121d7fed..d0d8b38e6858 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/models/_key_vault_client_enums.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2/models/_key_vault_client_enums.py @@ -50,6 +50,10 @@ class DataAction(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): WRITE_ROLE_ASSIGNMENT = "Microsoft.KeyVault/managedHsm/roleAssignments/write/action" #: Get role definition. READ_ROLE_DEFINITION = "Microsoft.KeyVault/managedHsm/roleDefinitions/read/action" + #: Create or update role definition. + WRITE_ROLE_DEFINITION = "Microsoft.KeyVault/managedHsm/roleDefinitions/write/action" + #: Delete role definition. + DELETE_ROLE_DEFINITION = "Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action" #: Encrypt using an HSM key. ENCRYPT_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/encrypt/action" #: Decrypt using an HSM key. diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/__init__.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/__init__.py new file mode 100644 index 000000000000..a6c1f9b7a792 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/__init__.py @@ -0,0 +1,16 @@ +# 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 ._key_vault_client import KeyVaultClient +__all__ = ['KeyVaultClient'] + +try: + from ._patch import patch_sdk # type: ignore + patch_sdk() +except ImportError: + pass diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/_configuration.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/_configuration.py new file mode 100644 index 000000000000..ed775f6e59b4 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/_configuration.py @@ -0,0 +1,52 @@ +# 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 + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any + +VERSION = "unknown" + +class KeyVaultClientConfiguration(Configuration): + """Configuration for KeyVaultClient. + + Note that all parameters used to create this instance are saved as instance + attributes. + + """ + + def __init__( + self, + **kwargs # type: Any + ): + # type: (...) -> None + super(KeyVaultClientConfiguration, self).__init__(**kwargs) + + self.api_version = "7.3-preview" + kwargs.setdefault('sdk_moniker', 'keyvault/{}'.format(VERSION)) + self._configure(**kwargs) + + def _configure( + self, + **kwargs # type: Any + ): + # type: (...) -> None + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or policies.HttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/_key_vault_client.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/_key_vault_client.py new file mode 100644 index 000000000000..85f53e798198 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/_key_vault_client.py @@ -0,0 +1,82 @@ +# 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 + +from azure.core import PipelineClient +from msrest import Deserializer, Serializer + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any + + from azure.core.pipeline.transport import HttpRequest, HttpResponse + +from ._configuration import KeyVaultClientConfiguration +from .operations import KeyVaultClientOperationsMixin +from .operations import RoleDefinitionsOperations +from .operations import RoleAssignmentsOperations +from . import models + + +class KeyVaultClient(KeyVaultClientOperationsMixin): + """The key vault client performs cryptographic key operations and vault operations against the Key Vault service. + + :ivar role_definitions: RoleDefinitionsOperations operations + :vartype role_definitions: azure.keyvault.v7_3_preview.operations.RoleDefinitionsOperations + :ivar role_assignments: RoleAssignmentsOperations operations + :vartype role_assignments: azure.keyvault.v7_3_preview.operations.RoleAssignmentsOperations + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + """ + + def __init__( + self, + **kwargs # type: Any + ): + # type: (...) -> None + base_url = '{vaultBaseUrl}' + self._config = KeyVaultClientConfiguration(**kwargs) + self._client = PipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False + self._deserialize = Deserializer(client_models) + + self.role_definitions = RoleDefinitionsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.role_assignments = RoleAssignmentsOperations( + 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 + """ + http_request.url = self._client.format_url(http_request.url) + 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 + self._client.close() + + def __enter__(self): + # type: () -> KeyVaultClient + self._client.__enter__() + return self + + def __exit__(self, *exc_details): + # type: (Any) -> None + self._client.__exit__(*exc_details) diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/_metadata.json b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/_metadata.json new file mode 100644 index 000000000000..780a0270db6e --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/_metadata.json @@ -0,0 +1,170 @@ +{ + "chosen_version": "7.3-preview", + "total_api_version_list": ["7.3-preview"], + "client": { + "name": "KeyVaultClient", + "filename": "_key_vault_client", + "description": "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.", + "base_url": null, + "custom_base_url": "\u0027{vaultBaseUrl}\u0027", + "azure_arm": false, + "has_lro_operations": true, + "client_side_validation": false, + "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.profiles\": [\"KnownProfiles\", \"ProfileDefinition\"], \"azure.profiles.multiapiclient\": [\"MultiApiClientMixin\"], \"msrest\": [\"Deserializer\", \"Serializer\"], \"azure.core\": [\"PipelineClient\"]}, \"local\": {\"._configuration\": [\"KeyVaultClientConfiguration\"], \"._operations_mixin\": [\"KeyVaultClientOperationsMixin\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Optional\"]}, \"azurecore\": {\"azure.core.pipeline.transport\": [\"HttpRequest\", \"HttpResponse\"]}}}", + "async_imports": "{\"regular\": {\"azurecore\": {\"azure.profiles\": [\"KnownProfiles\", \"ProfileDefinition\"], \"azure.profiles.multiapiclient\": [\"MultiApiClientMixin\"], \"msrest\": [\"Deserializer\", \"Serializer\"], \"azure.core\": [\"AsyncPipelineClient\"]}, \"local\": {\"._configuration\": [\"KeyVaultClientConfiguration\"], \"._operations_mixin\": [\"KeyVaultClientOperationsMixin\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Optional\"]}, \"azurecore\": {\"azure.core.pipeline.transport\": [\"AsyncHttpResponse\", \"HttpRequest\"]}}}" + }, + "global_parameters": { + "sync": { + }, + "async": { + }, + "constant": { + }, + "call": "", + "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 + }, + "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 + }, + "profile": { + "signature": "profile: KnownProfiles = KnownProfiles.default,", + "description": "A profile definition, from KnownProfiles to dict.", + "docstring_type": "azure.profiles.KnownProfiles", + "required": false + } + } + } + }, + "config": { + "credential": false, + "credential_scopes": null, + "credential_default_policy_type": "BearerTokenCredentialPolicy", + "credential_default_policy_type_has_async_version": true, + "credential_key_header_name": null, + "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"]}, \"local\": {\"._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\"]}}}", + "async_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"]}, \"local\": {\".._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\"]}}}" + }, + "operation_groups": { + "role_definitions": "RoleDefinitionsOperations", + "role_assignments": "RoleAssignmentsOperations" + }, + "operation_mixins": { + "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.exceptions\": [\"ClientAuthenticationError\", \"HttpResponseError\", \"ResourceExistsError\", \"ResourceNotFoundError\", \"map_error\"], \"azure.core.pipeline\": [\"PipelineResponse\"], \"azure.core.pipeline.transport\": [\"HttpRequest\", \"HttpResponse\"], \"azure.core.polling\": [\"LROPoller\", \"NoPolling\", \"PollingMethod\"], \"azure.core.polling.base_polling\": [\"LROBasePolling\"]}, \"stdlib\": {\"warnings\": [null]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Callable\", \"Dict\", \"Generic\", \"Optional\", \"TypeVar\", \"Union\"]}}}", + "async_imports": "{\"regular\": {\"azurecore\": {\"azure.core.exceptions\": [\"ClientAuthenticationError\", \"HttpResponseError\", \"ResourceExistsError\", \"ResourceNotFoundError\", \"map_error\"], \"azure.core.pipeline\": [\"PipelineResponse\"], \"azure.core.pipeline.transport\": [\"AsyncHttpResponse\", \"HttpRequest\"], \"azure.core.polling\": [\"AsyncLROPoller\", \"AsyncNoPolling\", \"AsyncPollingMethod\"], \"azure.core.polling.async_base_polling\": [\"AsyncLROBasePolling\"]}, \"stdlib\": {\"warnings\": [null]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Callable\", \"Dict\", \"Generic\", \"Optional\", \"TypeVar\", \"Union\"]}}}", + "operations": { + "_full_backup_initial" : { + "sync": { + "signature": "def _full_backup_initial(\n self,\n vault_base_url, # type: str\n azure_storage_blob_container_uri=None, # type: Optional[\"_models.SASTokenParameter\"]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param azure_storage_blob_container_uri: Azure blob shared access signature token pointing to a\n valid Azure blob container where full backup needs to be stored. This token needs to be valid\n for at least next 24 hours from the time of making this call.\n:type azure_storage_blob_container_uri: ~azure.keyvault.v7_3_preview.models.SASTokenParameter\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: FullBackupOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_3_preview.models.FullBackupOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def _full_backup_initial(\n self,\n vault_base_url: str,\n azure_storage_blob_container_uri: Optional[\"_models.SASTokenParameter\"] = None,\n **kwargs: Any\n) -\u003e \"_models.FullBackupOperation\":\n", + "doc": "\"\"\"\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param azure_storage_blob_container_uri: Azure blob shared access signature token pointing to a\n valid Azure blob container where full backup needs to be stored. This token needs to be valid\n for at least next 24 hours from the time of making this call.\n:type azure_storage_blob_container_uri: ~azure.keyvault.v7_3_preview.models.SASTokenParameter\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: FullBackupOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_3_preview.models.FullBackupOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "vault_base_url, azure_storage_blob_container_uri" + }, + "begin_full_backup" : { + "sync": { + "signature": "def begin_full_backup(\n self,\n vault_base_url, # type: str\n azure_storage_blob_container_uri=None, # type: Optional[\"_models.SASTokenParameter\"]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Creates a full backup using a user-provided SAS token to an Azure blob storage container.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param azure_storage_blob_container_uri: Azure blob shared access signature token pointing to a\n valid Azure blob container where full backup needs to be stored. This token needs to be valid\n for at least next 24 hours from the time of making this call.\n:type azure_storage_blob_container_uri: ~azure.keyvault.v7_3_preview.models.SASTokenParameter\n:keyword callable cls: A custom type or function that will be passed the direct response\n:keyword str continuation_token: A continuation token to restart a poller from a saved state.\n:keyword polling: By default, your polling method will be LROBasePolling.\n Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy.\n:paramtype polling: bool or ~azure.core.polling.PollingMethod\n:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.\n:return: An instance of LROPoller that returns either FullBackupOperation or the result of cls(response)\n:rtype: ~azure.core.polling.LROPoller[~azure.keyvault.v7_3_preview.models.FullBackupOperation]\n:raises ~azure.core.exceptions.HttpResponseError:\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def begin_full_backup(\n self,\n vault_base_url: str,\n azure_storage_blob_container_uri: Optional[\"_models.SASTokenParameter\"] = None,\n **kwargs: Any\n) -\u003e AsyncLROPoller[\"_models.FullBackupOperation\"]:\n", + "doc": "\"\"\"Creates a full backup using a user-provided SAS token to an Azure blob storage container.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param azure_storage_blob_container_uri: Azure blob shared access signature token pointing to a\n valid Azure blob container where full backup needs to be stored. This token needs to be valid\n for at least next 24 hours from the time of making this call.\n:type azure_storage_blob_container_uri: ~azure.keyvault.v7_3_preview.models.SASTokenParameter\n:keyword callable cls: A custom type or function that will be passed the direct response\n:keyword str continuation_token: A continuation token to restart a poller from a saved state.\n:keyword polling: By default, your polling method will be AsyncLROBasePolling.\n Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy.\n:paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod\n:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.\n:return: An instance of AsyncLROPoller that returns either FullBackupOperation or the result of cls(response)\n:rtype: ~azure.core.polling.AsyncLROPoller[~azure.keyvault.v7_3_preview.models.FullBackupOperation]\n:raises ~azure.core.exceptions.HttpResponseError:\n\"\"\"" + }, + "call": "vault_base_url, azure_storage_blob_container_uri" + }, + "full_backup_status" : { + "sync": { + "signature": "def full_backup_status(\n self,\n vault_base_url, # type: str\n job_id, # type: str\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Returns the status of full backup operation.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param job_id: The id returned as part of the backup request.\n:type job_id: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: FullBackupOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_3_preview.models.FullBackupOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def full_backup_status(\n self,\n vault_base_url: str,\n job_id: str,\n **kwargs: Any\n) -\u003e \"_models.FullBackupOperation\":\n", + "doc": "\"\"\"Returns the status of full backup operation.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param job_id: The id returned as part of the backup request.\n:type job_id: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: FullBackupOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_3_preview.models.FullBackupOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "vault_base_url, job_id" + }, + "_full_restore_operation_initial" : { + "sync": { + "signature": "def _full_restore_operation_initial(\n self,\n vault_base_url, # type: str\n restore_blob_details=None, # type: Optional[\"_models.RestoreOperationParameters\"]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_3_preview.models.RestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: RestoreOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_3_preview.models.RestoreOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def _full_restore_operation_initial(\n self,\n vault_base_url: str,\n restore_blob_details: Optional[\"_models.RestoreOperationParameters\"] = None,\n **kwargs: Any\n) -\u003e \"_models.RestoreOperation\":\n", + "doc": "\"\"\"\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_3_preview.models.RestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: RestoreOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_3_preview.models.RestoreOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "vault_base_url, restore_blob_details" + }, + "begin_full_restore_operation" : { + "sync": { + "signature": "def begin_full_restore_operation(\n self,\n vault_base_url, # type: str\n restore_blob_details=None, # type: Optional[\"_models.RestoreOperationParameters\"]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Restores all key materials using the SAS token pointing to a previously stored Azure Blob\nstorage backup folder.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_3_preview.models.RestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:keyword str continuation_token: A continuation token to restart a poller from a saved state.\n:keyword polling: By default, your polling method will be LROBasePolling.\n Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy.\n:paramtype polling: bool or ~azure.core.polling.PollingMethod\n:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.\n:return: An instance of LROPoller that returns either RestoreOperation or the result of cls(response)\n:rtype: ~azure.core.polling.LROPoller[~azure.keyvault.v7_3_preview.models.RestoreOperation]\n:raises ~azure.core.exceptions.HttpResponseError:\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def begin_full_restore_operation(\n self,\n vault_base_url: str,\n restore_blob_details: Optional[\"_models.RestoreOperationParameters\"] = None,\n **kwargs: Any\n) -\u003e AsyncLROPoller[\"_models.RestoreOperation\"]:\n", + "doc": "\"\"\"Restores all key materials using the SAS token pointing to a previously stored Azure Blob\nstorage backup folder.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_3_preview.models.RestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:keyword str continuation_token: A continuation token to restart a poller from a saved state.\n:keyword polling: By default, your polling method will be AsyncLROBasePolling.\n Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy.\n:paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod\n:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.\n:return: An instance of AsyncLROPoller that returns either RestoreOperation or the result of cls(response)\n:rtype: ~azure.core.polling.AsyncLROPoller[~azure.keyvault.v7_3_preview.models.RestoreOperation]\n:raises ~azure.core.exceptions.HttpResponseError:\n\"\"\"" + }, + "call": "vault_base_url, restore_blob_details" + }, + "restore_status" : { + "sync": { + "signature": "def restore_status(\n self,\n vault_base_url, # type: str\n job_id, # type: str\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Returns the status of restore operation.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param job_id: The Job Id returned part of the restore operation.\n:type job_id: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: RestoreOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_3_preview.models.RestoreOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def restore_status(\n self,\n vault_base_url: str,\n job_id: str,\n **kwargs: Any\n) -\u003e \"_models.RestoreOperation\":\n", + "doc": "\"\"\"Returns the status of restore operation.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param job_id: The Job Id returned part of the restore operation.\n:type job_id: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: RestoreOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_3_preview.models.RestoreOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "vault_base_url, job_id" + }, + "_selective_key_restore_operation_initial" : { + "sync": { + "signature": "def _selective_key_restore_operation_initial(\n self,\n vault_base_url, # type: str\n key_name, # type: str\n restore_blob_details=None, # type: Optional[\"_models.SelectiveKeyRestoreOperationParameters\"]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param key_name: The name of the key to be restored from the user supplied backup.\n:type key_name: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_3_preview.models.SelectiveKeyRestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: SelectiveKeyRestoreOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_3_preview.models.SelectiveKeyRestoreOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def _selective_key_restore_operation_initial(\n self,\n vault_base_url: str,\n key_name: str,\n restore_blob_details: Optional[\"_models.SelectiveKeyRestoreOperationParameters\"] = None,\n **kwargs: Any\n) -\u003e \"_models.SelectiveKeyRestoreOperation\":\n", + "doc": "\"\"\"\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param key_name: The name of the key to be restored from the user supplied backup.\n:type key_name: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_3_preview.models.SelectiveKeyRestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: SelectiveKeyRestoreOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_3_preview.models.SelectiveKeyRestoreOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "vault_base_url, key_name, restore_blob_details" + }, + "begin_selective_key_restore_operation" : { + "sync": { + "signature": "def begin_selective_key_restore_operation(\n self,\n vault_base_url, # type: str\n key_name, # type: str\n restore_blob_details=None, # type: Optional[\"_models.SelectiveKeyRestoreOperationParameters\"]\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Restores all key versions of a given key using user supplied SAS token pointing to a previously\nstored Azure Blob storage backup folder.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param key_name: The name of the key to be restored from the user supplied backup.\n:type key_name: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_3_preview.models.SelectiveKeyRestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:keyword str continuation_token: A continuation token to restart a poller from a saved state.\n:keyword polling: By default, your polling method will be LROBasePolling.\n Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy.\n:paramtype polling: bool or ~azure.core.polling.PollingMethod\n:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.\n:return: An instance of LROPoller that returns either SelectiveKeyRestoreOperation or the result of cls(response)\n:rtype: ~azure.core.polling.LROPoller[~azure.keyvault.v7_3_preview.models.SelectiveKeyRestoreOperation]\n:raises ~azure.core.exceptions.HttpResponseError:\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def begin_selective_key_restore_operation(\n self,\n vault_base_url: str,\n key_name: str,\n restore_blob_details: Optional[\"_models.SelectiveKeyRestoreOperationParameters\"] = None,\n **kwargs: Any\n) -\u003e AsyncLROPoller[\"_models.SelectiveKeyRestoreOperation\"]:\n", + "doc": "\"\"\"Restores all key versions of a given key using user supplied SAS token pointing to a previously\nstored Azure Blob storage backup folder.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param key_name: The name of the key to be restored from the user supplied backup.\n:type key_name: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_3_preview.models.SelectiveKeyRestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:keyword str continuation_token: A continuation token to restart a poller from a saved state.\n:keyword polling: By default, your polling method will be AsyncLROBasePolling.\n Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy.\n:paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod\n:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.\n:return: An instance of AsyncLROPoller that returns either SelectiveKeyRestoreOperation or the result of cls(response)\n:rtype: ~azure.core.polling.AsyncLROPoller[~azure.keyvault.v7_3_preview.models.SelectiveKeyRestoreOperation]\n:raises ~azure.core.exceptions.HttpResponseError:\n\"\"\"" + }, + "call": "vault_base_url, key_name, restore_blob_details" + } + } + } +} \ No newline at end of file diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/__init__.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/__init__.py new file mode 100644 index 000000000000..0d937de5d8f5 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/__init__.py @@ -0,0 +1,10 @@ +# 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 ._key_vault_client import KeyVaultClient +__all__ = ['KeyVaultClient'] diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/_configuration.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/_configuration.py new file mode 100644 index 000000000000..80efd3399940 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/_configuration.py @@ -0,0 +1,46 @@ +# 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 + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies + +VERSION = "unknown" + +class KeyVaultClientConfiguration(Configuration): + """Configuration for KeyVaultClient. + + Note that all parameters used to create this instance are saved as instance + attributes. + + """ + + def __init__( + self, + **kwargs: Any + ) -> None: + super(KeyVaultClientConfiguration, self).__init__(**kwargs) + + self.api_version = "7.3-preview" + kwargs.setdefault('sdk_moniker', 'keyvault/{}'.format(VERSION)) + self._configure(**kwargs) + + def _configure( + self, + **kwargs: Any + ) -> None: + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or policies.HttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/_key_vault_client.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/_key_vault_client.py new file mode 100644 index 000000000000..fa0aa9992a38 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/_key_vault_client.py @@ -0,0 +1,72 @@ +# 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 + +from azure.core import AsyncPipelineClient +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from msrest import Deserializer, Serializer + +from ._configuration import KeyVaultClientConfiguration +from .operations import KeyVaultClientOperationsMixin +from .operations import RoleDefinitionsOperations +from .operations import RoleAssignmentsOperations +from .. import models + + +class KeyVaultClient(KeyVaultClientOperationsMixin): + """The key vault client performs cryptographic key operations and vault operations against the Key Vault service. + + :ivar role_definitions: RoleDefinitionsOperations operations + :vartype role_definitions: azure.keyvault.v7_3_preview.aio.operations.RoleDefinitionsOperations + :ivar role_assignments: RoleAssignmentsOperations operations + :vartype role_assignments: azure.keyvault.v7_3_preview.aio.operations.RoleAssignmentsOperations + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + """ + + def __init__( + self, + **kwargs: Any + ) -> None: + base_url = '{vaultBaseUrl}' + self._config = KeyVaultClientConfiguration(**kwargs) + self._client = AsyncPipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False + self._deserialize = Deserializer(client_models) + + self.role_definitions = RoleDefinitionsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.role_assignments = RoleAssignmentsOperations( + 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 + """ + http_request.url = self._client.format_url(http_request.url) + 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() + + async def __aenter__(self) -> "KeyVaultClient": + await self._client.__aenter__() + return self + + async def __aexit__(self, *exc_details) -> None: + await self._client.__aexit__(*exc_details) diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/operations/__init__.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/operations/__init__.py new file mode 100644 index 000000000000..fbdd39654293 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/operations/__init__.py @@ -0,0 +1,17 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._key_vault_client_operations import KeyVaultClientOperationsMixin +from ._role_definitions_operations import RoleDefinitionsOperations +from ._role_assignments_operations import RoleAssignmentsOperations + +__all__ = [ + 'KeyVaultClientOperationsMixin', + 'RoleDefinitionsOperations', + 'RoleAssignmentsOperations', +] diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/operations/_key_vault_client_operations.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/operations/_key_vault_client_operations.py new file mode 100644 index 000000000000..3821284ce7dd --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/operations/_key_vault_client_operations.py @@ -0,0 +1,529 @@ +# 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, Callable, Dict, Generic, Optional, TypeVar, Union +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod +from azure.core.polling.async_base_polling import AsyncLROBasePolling + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class KeyVaultClientOperationsMixin: + + async def _full_backup_initial( + self, + vault_base_url: str, + azure_storage_blob_container_uri: Optional["_models.SASTokenParameter"] = None, + **kwargs: Any + ) -> "_models.FullBackupOperation": + cls = kwargs.pop('cls', None) # type: ClsType["_models.FullBackupOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._full_backup_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + } + 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] + if azure_storage_blob_container_uri is not None: + body_content = self._serialize.body(azure_storage_blob_container_uri, 'SASTokenParameter') + else: + body_content = None + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['Retry-After']=self._deserialize('int', response.headers.get('Retry-After')) + response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('FullBackupOperation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + _full_backup_initial.metadata = {'url': '/backup'} # type: ignore + + async def begin_full_backup( + self, + vault_base_url: str, + azure_storage_blob_container_uri: Optional["_models.SASTokenParameter"] = None, + **kwargs: Any + ) -> AsyncLROPoller["_models.FullBackupOperation"]: + """Creates a full backup using a user-provided SAS token to an Azure blob storage container. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param azure_storage_blob_container_uri: Azure blob shared access signature token pointing to a + valid Azure blob container where full backup needs to be stored. This token needs to be valid + for at least next 24 hours from the time of making this call. + :type azure_storage_blob_container_uri: ~azure.keyvault.v7_3_preview.models.SASTokenParameter + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: By default, your polling method will be AsyncLROBasePolling. + Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy. + :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of AsyncLROPoller that returns either FullBackupOperation or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.keyvault.v7_3_preview.models.FullBackupOperation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FullBackupOperation"] + 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._full_backup_initial( + vault_base_url=vault_base_url, + azure_storage_blob_container_uri=azure_storage_blob_container_uri, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + response_headers = {} + response = pipeline_response.http_response + response_headers['Retry-After']=self._deserialize('int', response.headers.get('Retry-After')) + response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('FullBackupOperation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + return deserialized + + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + } + + if polling is True: polling_method = AsyncLROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + 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_full_backup.metadata = {'url': '/backup'} # type: ignore + + async def full_backup_status( + self, + vault_base_url: str, + job_id: str, + **kwargs: Any + ) -> "_models.FullBackupOperation": + """Returns the status of full backup operation. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param job_id: The id returned as part of the backup request. + :type job_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: FullBackupOperation, or the result of cls(response) + :rtype: ~azure.keyvault.v7_3_preview.models.FullBackupOperation + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FullBackupOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + accept = "application/json" + + # Construct URL + url = self.full_backup_status.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'jobId': self._serialize.url("job_id", job_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) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('FullBackupOperation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + full_backup_status.metadata = {'url': '/backup/{jobId}/pending'} # type: ignore + + async def _full_restore_operation_initial( + self, + vault_base_url: str, + restore_blob_details: Optional["_models.RestoreOperationParameters"] = None, + **kwargs: Any + ) -> "_models.RestoreOperation": + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestoreOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._full_restore_operation_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + } + 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] + if restore_blob_details is not None: + body_content = self._serialize.body(restore_blob_details, 'RestoreOperationParameters') + else: + body_content = None + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['Retry-After']=self._deserialize('int', response.headers.get('Retry-After')) + response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('RestoreOperation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + _full_restore_operation_initial.metadata = {'url': '/restore'} # type: ignore + + async def begin_full_restore_operation( + self, + vault_base_url: str, + restore_blob_details: Optional["_models.RestoreOperationParameters"] = None, + **kwargs: Any + ) -> AsyncLROPoller["_models.RestoreOperation"]: + """Restores all key materials using the SAS token pointing to a previously stored Azure Blob + storage backup folder. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous + successful full backup was stored. + :type restore_blob_details: ~azure.keyvault.v7_3_preview.models.RestoreOperationParameters + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: By default, your polling method will be AsyncLROBasePolling. + Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy. + :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of AsyncLROPoller that returns either RestoreOperation or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.keyvault.v7_3_preview.models.RestoreOperation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestoreOperation"] + 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._full_restore_operation_initial( + vault_base_url=vault_base_url, + restore_blob_details=restore_blob_details, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + response_headers = {} + response = pipeline_response.http_response + response_headers['Retry-After']=self._deserialize('int', response.headers.get('Retry-After')) + response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('RestoreOperation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + return deserialized + + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + } + + if polling is True: polling_method = AsyncLROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + 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_full_restore_operation.metadata = {'url': '/restore'} # type: ignore + + async def restore_status( + self, + vault_base_url: str, + job_id: str, + **kwargs: Any + ) -> "_models.RestoreOperation": + """Returns the status of restore operation. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param job_id: The Job Id returned part of the restore operation. + :type job_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RestoreOperation, or the result of cls(response) + :rtype: ~azure.keyvault.v7_3_preview.models.RestoreOperation + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestoreOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + accept = "application/json" + + # Construct URL + url = self.restore_status.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'jobId': self._serialize.url("job_id", job_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) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('RestoreOperation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + restore_status.metadata = {'url': '/restore/{jobId}/pending'} # type: ignore + + async def _selective_key_restore_operation_initial( + self, + vault_base_url: str, + key_name: str, + restore_blob_details: Optional["_models.SelectiveKeyRestoreOperationParameters"] = None, + **kwargs: Any + ) -> "_models.SelectiveKeyRestoreOperation": + cls = kwargs.pop('cls', None) # type: ClsType["_models.SelectiveKeyRestoreOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._selective_key_restore_operation_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + } + 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] + if restore_blob_details is not None: + body_content = self._serialize.body(restore_blob_details, 'SelectiveKeyRestoreOperationParameters') + else: + body_content = None + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['Retry-After']=self._deserialize('int', response.headers.get('Retry-After')) + response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('SelectiveKeyRestoreOperation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + _selective_key_restore_operation_initial.metadata = {'url': '/keys/{keyName}/restore'} # type: ignore + + async def begin_selective_key_restore_operation( + self, + vault_base_url: str, + key_name: str, + restore_blob_details: Optional["_models.SelectiveKeyRestoreOperationParameters"] = None, + **kwargs: Any + ) -> AsyncLROPoller["_models.SelectiveKeyRestoreOperation"]: + """Restores all key versions of a given key using user supplied SAS token pointing to a previously + stored Azure Blob storage backup folder. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param key_name: The name of the key to be restored from the user supplied backup. + :type key_name: str + :param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous + successful full backup was stored. + :type restore_blob_details: ~azure.keyvault.v7_3_preview.models.SelectiveKeyRestoreOperationParameters + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: By default, your polling method will be AsyncLROBasePolling. + Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy. + :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of AsyncLROPoller that returns either SelectiveKeyRestoreOperation or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.keyvault.v7_3_preview.models.SelectiveKeyRestoreOperation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SelectiveKeyRestoreOperation"] + 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._selective_key_restore_operation_initial( + vault_base_url=vault_base_url, + key_name=key_name, + restore_blob_details=restore_blob_details, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + response_headers = {} + response = pipeline_response.http_response + response_headers['Retry-After']=self._deserialize('int', response.headers.get('Retry-After')) + response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('SelectiveKeyRestoreOperation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + return deserialized + + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + } + + if polling is True: polling_method = AsyncLROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + 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_selective_key_restore_operation.metadata = {'url': '/keys/{keyName}/restore'} # type: ignore diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/operations/_role_assignments_operations.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/operations/_role_assignments_operations.py new file mode 100644 index 000000000000..5a04de4aa433 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/operations/_role_assignments_operations.py @@ -0,0 +1,322 @@ +# 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 ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class RoleAssignmentsOperations: + """RoleAssignmentsOperations 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.keyvault.v7_3_preview.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 + + async def delete( + self, + vault_base_url: str, + scope: str, + role_assignment_name: str, + **kwargs: Any + ) -> "_models.RoleAssignment": + """Deletes a role assignment. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param scope: The scope of the role assignment to delete. + :type scope: str + :param role_assignment_name: The name of the role assignment to delete. + :type role_assignment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RoleAssignment, or the result of cls(response) + :rtype: ~azure.keyvault.v7_3_preview.models.RoleAssignment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleAssignment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + 'roleAssignmentName': self._serialize.url("role_assignment_name", role_assignment_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['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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('RoleAssignment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + delete.metadata = {'url': '/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}'} # type: ignore + + async def create( + self, + vault_base_url: str, + scope: str, + role_assignment_name: str, + parameters: "_models.RoleAssignmentCreateParameters", + **kwargs: Any + ) -> "_models.RoleAssignment": + """Creates a role assignment. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param scope: The scope of the role assignment to create. + :type scope: str + :param role_assignment_name: The name of the role assignment to create. It can be any valid + GUID. + :type role_assignment_name: str + :param parameters: Parameters for the role assignment. + :type parameters: ~azure.keyvault.v7_3_preview.models.RoleAssignmentCreateParameters + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RoleAssignment, or the result of cls(response) + :rtype: ~azure.keyvault.v7_3_preview.models.RoleAssignment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleAssignment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + 'roleAssignmentName': self._serialize.url("role_assignment_name", role_assignment_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(parameters, 'RoleAssignmentCreateParameters') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('RoleAssignment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create.metadata = {'url': '/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}'} # type: ignore + + async def get( + self, + vault_base_url: str, + scope: str, + role_assignment_name: str, + **kwargs: Any + ) -> "_models.RoleAssignment": + """Get the specified role assignment. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param scope: The scope of the role assignment. + :type scope: str + :param role_assignment_name: The name of the role assignment to get. + :type role_assignment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RoleAssignment, or the result of cls(response) + :rtype: ~azure.keyvault.v7_3_preview.models.RoleAssignment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleAssignment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + 'roleAssignmentName': self._serialize.url("role_assignment_name", role_assignment_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['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) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('RoleAssignment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}'} # type: ignore + + def list_for_scope( + self, + vault_base_url: str, + scope: str, + filter: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.RoleAssignmentListResult"]: + """Gets role assignments for a scope. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param scope: The scope of the role assignments. + :type scope: str + :param filter: The filter to apply on the operation. Use $filter=atScope() to return all role + assignments at or above the scope. Use $filter=principalId eq {id} to return all role + assignments at, above or below the scope for the specified principal. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RoleAssignmentListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.keyvault.v7_3_preview.models.RoleAssignmentListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleAssignmentListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-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_for_scope.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + 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] + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('RoleAssignmentListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_for_scope.metadata = {'url': '/{scope}/providers/Microsoft.Authorization/roleAssignments'} # type: ignore diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/operations/_role_definitions_operations.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/operations/_role_definitions_operations.py new file mode 100644 index 000000000000..3ea67168b9b2 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/aio/operations/_role_definitions_operations.py @@ -0,0 +1,322 @@ +# 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 ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class RoleDefinitionsOperations: + """RoleDefinitionsOperations 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.keyvault.v7_3_preview.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 + + async def delete( + self, + vault_base_url: str, + scope: str, + role_definition_name: str, + **kwargs: Any + ) -> "_models.RoleDefinition": + """Deletes a custom role definition. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param scope: The scope of the role definition to delete. Managed HSM only supports '/'. + :type scope: str + :param role_definition_name: The name (GUID) of the role definition to delete. + :type role_definition_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RoleDefinition, or the result of cls(response) + :rtype: ~azure.keyvault.v7_3_preview.models.RoleDefinition + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleDefinition"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + 'roleDefinitionName': self._serialize.url("role_definition_name", role_definition_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['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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('RoleDefinition', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + delete.metadata = {'url': '/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}'} # type: ignore + + async def create_or_update( + self, + vault_base_url: str, + scope: str, + role_definition_name: str, + parameters: "_models.RoleDefinitionCreateParameters", + **kwargs: Any + ) -> "_models.RoleDefinition": + """Creates or updates a custom role definition. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param scope: The scope of the role definition to create or update. Managed HSM only supports + '/'. + :type scope: str + :param role_definition_name: The name of the role definition to create or update. It can be any + valid GUID. + :type role_definition_name: str + :param parameters: Parameters for the role definition. + :type parameters: ~azure.keyvault.v7_3_preview.models.RoleDefinitionCreateParameters + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RoleDefinition, or the result of cls(response) + :rtype: ~azure.keyvault.v7_3_preview.models.RoleDefinition + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleDefinition"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + 'roleDefinitionName': self._serialize.url("role_definition_name", role_definition_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(parameters, 'RoleDefinitionCreateParameters') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('RoleDefinition', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update.metadata = {'url': '/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}'} # type: ignore + + async def get( + self, + vault_base_url: str, + scope: str, + role_definition_name: str, + **kwargs: Any + ) -> "_models.RoleDefinition": + """Get the specified role definition. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param scope: The scope of the role definition to get. Managed HSM only supports '/'. + :type scope: str + :param role_definition_name: The name of the role definition to get. + :type role_definition_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RoleDefinition, or the result of cls(response) + :rtype: ~azure.keyvault.v7_3_preview.models.RoleDefinition + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleDefinition"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + 'roleDefinitionName': self._serialize.url("role_definition_name", role_definition_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['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) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('RoleDefinition', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}'} # type: ignore + + def list( + self, + vault_base_url: str, + scope: str, + filter: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.RoleDefinitionListResult"]: + """Get all role definitions that are applicable at scope and above. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param scope: The scope of the role definition. + :type scope: str + :param filter: The filter to apply on the operation. Use atScopeAndBelow filter to search below + the given scope as well. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RoleDefinitionListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.keyvault.v7_3_preview.models.RoleDefinitionListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleDefinitionListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-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 = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + 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] + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('RoleDefinitionListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/{scope}/providers/Microsoft.Authorization/roleDefinitions'} # type: ignore diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/models/__init__.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/models/__init__.py new file mode 100644 index 000000000000..47bde45ad659 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/models/__init__.py @@ -0,0 +1,87 @@ +# 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. +# -------------------------------------------------------------------------- + +try: + from ._models_py3 import Attributes + from ._models_py3 import Error + from ._models_py3 import FullBackupOperation + from ._models_py3 import KeyVaultError + from ._models_py3 import Permission + from ._models_py3 import RestoreOperation + from ._models_py3 import RestoreOperationParameters + from ._models_py3 import RoleAssignment + from ._models_py3 import RoleAssignmentCreateParameters + from ._models_py3 import RoleAssignmentFilter + from ._models_py3 import RoleAssignmentListResult + from ._models_py3 import RoleAssignmentProperties + from ._models_py3 import RoleAssignmentPropertiesWithScope + from ._models_py3 import RoleDefinition + from ._models_py3 import RoleDefinitionCreateParameters + from ._models_py3 import RoleDefinitionFilter + from ._models_py3 import RoleDefinitionListResult + from ._models_py3 import RoleDefinitionProperties + from ._models_py3 import SASTokenParameter + from ._models_py3 import SelectiveKeyRestoreOperation + from ._models_py3 import SelectiveKeyRestoreOperationParameters +except (SyntaxError, ImportError): + from ._models import Attributes # type: ignore + from ._models import Error # type: ignore + from ._models import FullBackupOperation # type: ignore + from ._models import KeyVaultError # type: ignore + from ._models import Permission # type: ignore + from ._models import RestoreOperation # type: ignore + from ._models import RestoreOperationParameters # type: ignore + from ._models import RoleAssignment # type: ignore + from ._models import RoleAssignmentCreateParameters # type: ignore + from ._models import RoleAssignmentFilter # type: ignore + from ._models import RoleAssignmentListResult # type: ignore + from ._models import RoleAssignmentProperties # type: ignore + from ._models import RoleAssignmentPropertiesWithScope # type: ignore + from ._models import RoleDefinition # type: ignore + from ._models import RoleDefinitionCreateParameters # type: ignore + from ._models import RoleDefinitionFilter # type: ignore + from ._models import RoleDefinitionListResult # type: ignore + from ._models import RoleDefinitionProperties # type: ignore + from ._models import SASTokenParameter # type: ignore + from ._models import SelectiveKeyRestoreOperation # type: ignore + from ._models import SelectiveKeyRestoreOperationParameters # type: ignore + +from ._key_vault_client_enums import ( + DataAction, + RoleDefinitionType, + RoleScope, + RoleType, +) + +__all__ = [ + 'Attributes', + 'Error', + 'FullBackupOperation', + 'KeyVaultError', + 'Permission', + 'RestoreOperation', + 'RestoreOperationParameters', + 'RoleAssignment', + 'RoleAssignmentCreateParameters', + 'RoleAssignmentFilter', + 'RoleAssignmentListResult', + 'RoleAssignmentProperties', + 'RoleAssignmentPropertiesWithScope', + 'RoleDefinition', + 'RoleDefinitionCreateParameters', + 'RoleDefinitionFilter', + 'RoleDefinitionListResult', + 'RoleDefinitionProperties', + 'SASTokenParameter', + 'SelectiveKeyRestoreOperation', + 'SelectiveKeyRestoreOperationParameters', + 'DataAction', + 'RoleDefinitionType', + 'RoleScope', + 'RoleType', +] diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/models/_key_vault_client_enums.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/models/_key_vault_client_enums.py new file mode 100644 index 000000000000..624485460a85 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/models/_key_vault_client_enums.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 enum import Enum, EnumMeta +from six import with_metaclass + +class _CaseInsensitiveEnumMeta(EnumMeta): + def __getitem__(self, name): + return super().__getitem__(name.upper()) + + def __getattr__(cls, name): + """Return the enum member matching `name` + We use __getattr__ instead of descriptors or inserting into the enum + class' __dict__ in order to support `name` and `value` being both + properties for enum members (which live in the class' __dict__) and + enum members themselves. + """ + try: + return cls._member_map_[name.upper()] + except KeyError: + raise AttributeError(name) + + +class DataAction(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Supported permissions for data actions. + """ + + #: Read HSM key metadata. + READ_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/read/action" + #: Update an HSM key. + WRITE_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/write/action" + #: Read deleted HSM key. + READ_DELETED_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action" + #: Recover deleted HSM key. + RECOVER_DELETED_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action" + #: Backup HSM keys. + BACKUP_HSM_KEYS = "Microsoft.KeyVault/managedHsm/keys/backup/action" + #: Restore HSM keys. + RESTORE_HSM_KEYS = "Microsoft.KeyVault/managedHsm/keys/restore/action" + #: Delete role assignment. + DELETE_ROLE_ASSIGNMENT = "Microsoft.KeyVault/managedHsm/roleAssignments/delete/action" + #: Get role assignment. + GET_ROLE_ASSIGNMENT = "Microsoft.KeyVault/managedHsm/roleAssignments/read/action" + #: Create or update role assignment. + WRITE_ROLE_ASSIGNMENT = "Microsoft.KeyVault/managedHsm/roleAssignments/write/action" + #: Get role definition. + READ_ROLE_DEFINITION = "Microsoft.KeyVault/managedHsm/roleDefinitions/read/action" + #: Create or update role definition. + WRITE_ROLE_DEFINITION = "Microsoft.KeyVault/managedHsm/roleDefinitions/write/action" + #: Delete role definition. + DELETE_ROLE_DEFINITION = "Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action" + #: Encrypt using an HSM key. + ENCRYPT_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/encrypt/action" + #: Decrypt using an HSM key. + DECRYPT_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/decrypt/action" + #: Wrap using an HSM key. + WRAP_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/wrap/action" + #: Unwrap using an HSM key. + UNWRAP_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/unwrap/action" + #: Sign using an HSM key. + SIGN_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/sign/action" + #: Verify using an HSM key. + VERIFY_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/verify/action" + #: Create an HSM key. + CREATE_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/create" + #: Delete an HSM key. + DELETE_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/delete" + #: Export an HSM key. + EXPORT_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/export/action" + #: Release an HSM key using Secure Key Release. + RELEASE_KEY = "Microsoft.KeyVault/managedHsm/keys/release/action" + #: Import an HSM key. + IMPORT_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/import/action" + #: Purge a deleted HSM key. + PURGE_DELETED_HSM_KEY = "Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete" + #: Download an HSM security domain. + DOWNLOAD_HSM_SECURITY_DOMAIN = "Microsoft.KeyVault/managedHsm/securitydomain/download/action" + #: Check status of HSM security domain download. + DOWNLOAD_HSM_SECURITY_DOMAIN_STATUS = "Microsoft.KeyVault/managedHsm/securitydomain/download/read" + #: Upload an HSM security domain. + UPLOAD_HSM_SECURITY_DOMAIN = "Microsoft.KeyVault/managedHsm/securitydomain/upload/action" + #: Check the status of the HSM security domain exchange file. + READ_HSM_SECURITY_DOMAIN_STATUS = "Microsoft.KeyVault/managedHsm/securitydomain/upload/read" + #: Download an HSM security domain transfer key. + READ_HSM_SECURITY_DOMAIN_TRANSFER_KEY = "Microsoft.KeyVault/managedHsm/securitydomain/transferkey/read" + #: Start an HSM backup. + START_HSM_BACKUP = "Microsoft.KeyVault/managedHsm/backup/start/action" + #: Start an HSM restore. + START_HSM_RESTORE = "Microsoft.KeyVault/managedHsm/restore/start/action" + #: Read an HSM backup status. + READ_HSM_BACKUP_STATUS = "Microsoft.KeyVault/managedHsm/backup/status/action" + #: Read an HSM restore status. + READ_HSM_RESTORE_STATUS = "Microsoft.KeyVault/managedHsm/restore/status/action" + #: Generate random numbers. + RANDOM_NUMBERS_GENERATE = "Microsoft.KeyVault/managedHsm/rng/action" + +class RoleDefinitionType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The role definition type. + """ + + MICROSOFT_AUTHORIZATION_ROLE_DEFINITIONS = "Microsoft.Authorization/roleDefinitions" + +class RoleScope(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The role scope. + """ + + #: Global scope. + GLOBAL_ENUM = "/" + #: Keys scope. + KEYS = "/keys" + +class RoleType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The role type. + """ + + #: Built in role. + BUILT_IN_ROLE = "AKVBuiltInRole" + #: Custom role. + CUSTOM_ROLE = "CustomRole" diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/models/_models.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/models/_models.py new file mode 100644 index 000000000000..1f603fab01c3 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/models/_models.py @@ -0,0 +1,681 @@ +# 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 azure.core.exceptions import HttpResponseError +import msrest.serialization + + +class Attributes(msrest.serialization.Model): + """The object attributes managed by the KeyVault service. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param enabled: Determines whether the object is enabled. + :type enabled: bool + :param not_before: Not before date in UTC. + :type not_before: ~datetime.datetime + :param expires: Expiry date in UTC. + :type expires: ~datetime.datetime + :ivar created: Creation time in UTC. + :vartype created: ~datetime.datetime + :ivar updated: Last updated time in UTC. + :vartype updated: ~datetime.datetime + """ + + _validation = { + 'created': {'readonly': True}, + 'updated': {'readonly': True}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'not_before': {'key': 'nbf', 'type': 'unix-time'}, + 'expires': {'key': 'exp', 'type': 'unix-time'}, + 'created': {'key': 'created', 'type': 'unix-time'}, + 'updated': {'key': 'updated', 'type': 'unix-time'}, + } + + def __init__( + self, + **kwargs + ): + super(Attributes, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.not_before = kwargs.get('not_before', None) + self.expires = kwargs.get('expires', None) + self.created = None + self.updated = None + + +class Error(msrest.serialization.Model): + """The key vault server error. + + 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 inner_error: The key vault server error. + :vartype inner_error: ~azure.keyvault.v7_3_preview.models.Error + """ + + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + 'inner_error': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'inner_error': {'key': 'innererror', 'type': 'Error'}, + } + + def __init__( + self, + **kwargs + ): + super(Error, self).__init__(**kwargs) + self.code = None + self.message = None + self.inner_error = None + + +class FullBackupOperation(msrest.serialization.Model): + """Full backup operation. + + :param status: Status of the backup operation. + :type status: str + :param status_details: The status details of backup operation. + :type status_details: str + :param error: Error encountered, if any, during the full backup operation. + :type error: ~azure.keyvault.v7_3_preview.models.Error + :param start_time: The start time of the backup operation in UTC. + :type start_time: ~datetime.datetime + :param end_time: The end time of the backup operation in UTC. + :type end_time: ~datetime.datetime + :param job_id: Identifier for the full backup operation. + :type job_id: str + :param azure_storage_blob_container_uri: The Azure blob storage container Uri which contains + the full backup. + :type azure_storage_blob_container_uri: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'status_details': {'key': 'statusDetails', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'Error'}, + 'start_time': {'key': 'startTime', 'type': 'unix-time'}, + 'end_time': {'key': 'endTime', 'type': 'unix-time'}, + 'job_id': {'key': 'jobId', 'type': 'str'}, + 'azure_storage_blob_container_uri': {'key': 'azureStorageBlobContainerUri', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(FullBackupOperation, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.status_details = kwargs.get('status_details', None) + self.error = kwargs.get('error', None) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.job_id = kwargs.get('job_id', None) + self.azure_storage_blob_container_uri = kwargs.get('azure_storage_blob_container_uri', None) + + +class KeyVaultError(msrest.serialization.Model): + """The key vault error exception. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar error: The key vault server error. + :vartype error: ~azure.keyvault.v7_3_preview.models.Error + """ + + _validation = { + 'error': {'readonly': True}, + } + + _attribute_map = { + 'error': {'key': 'error', 'type': 'Error'}, + } + + def __init__( + self, + **kwargs + ): + super(KeyVaultError, self).__init__(**kwargs) + self.error = None + + +class Permission(msrest.serialization.Model): + """Role definition permissions. + + :param actions: Action permissions that are granted. + :type actions: list[str] + :param not_actions: Action permissions that are excluded but not denied. They may be granted by + other role definitions assigned to a principal. + :type not_actions: list[str] + :param data_actions: Data action permissions that are granted. + :type data_actions: list[str or ~azure.keyvault.v7_3_preview.models.DataAction] + :param not_data_actions: Data action permissions that are excluded but not denied. They may be + granted by other role definitions assigned to a principal. + :type not_data_actions: list[str or ~azure.keyvault.v7_3_preview.models.DataAction] + """ + + _attribute_map = { + 'actions': {'key': 'actions', 'type': '[str]'}, + 'not_actions': {'key': 'notActions', 'type': '[str]'}, + 'data_actions': {'key': 'dataActions', 'type': '[str]'}, + 'not_data_actions': {'key': 'notDataActions', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(Permission, self).__init__(**kwargs) + self.actions = kwargs.get('actions', None) + self.not_actions = kwargs.get('not_actions', None) + self.data_actions = kwargs.get('data_actions', None) + self.not_data_actions = kwargs.get('not_data_actions', None) + + +class RestoreOperation(msrest.serialization.Model): + """Restore operation. + + :param status: Status of the restore operation. + :type status: str + :param status_details: The status details of restore operation. + :type status_details: str + :param error: Error encountered, if any, during the restore operation. + :type error: ~azure.keyvault.v7_3_preview.models.Error + :param job_id: Identifier for the restore operation. + :type job_id: str + :param start_time: The start time of the restore operation. + :type start_time: ~datetime.datetime + :param end_time: The end time of the restore operation. + :type end_time: ~datetime.datetime + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'status_details': {'key': 'statusDetails', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'Error'}, + 'job_id': {'key': 'jobId', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'unix-time'}, + 'end_time': {'key': 'endTime', 'type': 'unix-time'}, + } + + def __init__( + self, + **kwargs + ): + super(RestoreOperation, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.status_details = kwargs.get('status_details', None) + self.error = kwargs.get('error', None) + self.job_id = kwargs.get('job_id', None) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + + +class RestoreOperationParameters(msrest.serialization.Model): + """RestoreOperationParameters. + + All required parameters must be populated in order to send to Azure. + + :param sas_token_parameters: Required. + :type sas_token_parameters: ~azure.keyvault.v7_3_preview.models.SASTokenParameter + :param folder_to_restore: Required. The Folder name of the blob where the previous successful + full backup was stored. + :type folder_to_restore: str + """ + + _validation = { + 'sas_token_parameters': {'required': True}, + 'folder_to_restore': {'required': True}, + } + + _attribute_map = { + 'sas_token_parameters': {'key': 'sasTokenParameters', 'type': 'SASTokenParameter'}, + 'folder_to_restore': {'key': 'folderToRestore', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RestoreOperationParameters, self).__init__(**kwargs) + self.sas_token_parameters = kwargs['sas_token_parameters'] + self.folder_to_restore = kwargs['folder_to_restore'] + + +class RoleAssignment(msrest.serialization.Model): + """Role Assignments. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The role assignment ID. + :vartype id: str + :ivar name: The role assignment name. + :vartype name: str + :ivar type: The role assignment type. + :vartype type: str + :param properties: Role assignment properties. + :type properties: ~azure.keyvault.v7_3_preview.models.RoleAssignmentPropertiesWithScope + """ + + _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': 'RoleAssignmentPropertiesWithScope'}, + } + + def __init__( + self, + **kwargs + ): + super(RoleAssignment, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.properties = kwargs.get('properties', None) + + +class RoleAssignmentCreateParameters(msrest.serialization.Model): + """Role assignment create parameters. + + All required parameters must be populated in order to send to Azure. + + :param properties: Required. Role assignment properties. + :type properties: ~azure.keyvault.v7_3_preview.models.RoleAssignmentProperties + """ + + _validation = { + 'properties': {'required': True}, + } + + _attribute_map = { + 'properties': {'key': 'properties', 'type': 'RoleAssignmentProperties'}, + } + + def __init__( + self, + **kwargs + ): + super(RoleAssignmentCreateParameters, self).__init__(**kwargs) + self.properties = kwargs['properties'] + + +class RoleAssignmentFilter(msrest.serialization.Model): + """Role Assignments filter. + + :param principal_id: Returns role assignment of the specific principal. + :type principal_id: str + """ + + _attribute_map = { + 'principal_id': {'key': 'principalId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RoleAssignmentFilter, self).__init__(**kwargs) + self.principal_id = kwargs.get('principal_id', None) + + +class RoleAssignmentListResult(msrest.serialization.Model): + """Role assignment list operation result. + + :param value: Role assignment list. + :type value: list[~azure.keyvault.v7_3_preview.models.RoleAssignment] + :param next_link: The URL to use for getting the next set of results. + :type next_link: str + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[RoleAssignment]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RoleAssignmentListResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + self.next_link = kwargs.get('next_link', None) + + +class RoleAssignmentProperties(msrest.serialization.Model): + """Role assignment properties. + + All required parameters must be populated in order to send to Azure. + + :param role_definition_id: Required. The role definition ID used in the role assignment. + :type role_definition_id: str + :param principal_id: Required. The principal ID assigned to the role. This maps to the ID + inside the Active Directory. It can point to a user, service principal, or security group. + :type principal_id: str + """ + + _validation = { + 'role_definition_id': {'required': True}, + 'principal_id': {'required': True}, + } + + _attribute_map = { + 'role_definition_id': {'key': 'roleDefinitionId', 'type': 'str'}, + 'principal_id': {'key': 'principalId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RoleAssignmentProperties, self).__init__(**kwargs) + self.role_definition_id = kwargs['role_definition_id'] + self.principal_id = kwargs['principal_id'] + + +class RoleAssignmentPropertiesWithScope(msrest.serialization.Model): + """Role assignment properties with scope. + + :param scope: The role scope. Possible values include: "/", "/keys". + :type scope: str or ~azure.keyvault.v7_3_preview.models.RoleScope + :param role_definition_id: The role definition ID. + :type role_definition_id: str + :param principal_id: The principal ID. + :type principal_id: str + """ + + _attribute_map = { + 'scope': {'key': 'scope', 'type': 'str'}, + 'role_definition_id': {'key': 'roleDefinitionId', 'type': 'str'}, + 'principal_id': {'key': 'principalId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RoleAssignmentPropertiesWithScope, self).__init__(**kwargs) + self.scope = kwargs.get('scope', None) + self.role_definition_id = kwargs.get('role_definition_id', None) + self.principal_id = kwargs.get('principal_id', None) + + +class RoleDefinition(msrest.serialization.Model): + """Role definition. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The role definition ID. + :vartype id: str + :ivar name: The role definition name. + :vartype name: str + :ivar type: The role definition type. Possible values include: + "Microsoft.Authorization/roleDefinitions". + :vartype type: str or ~azure.keyvault.v7_3_preview.models.RoleDefinitionType + :param role_name: The role name. + :type role_name: str + :param description: The role definition description. + :type description: str + :param role_type: The role type. Possible values include: "AKVBuiltInRole", "CustomRole". + :type role_type: str or ~azure.keyvault.v7_3_preview.models.RoleType + :param permissions: Role definition permissions. + :type permissions: list[~azure.keyvault.v7_3_preview.models.Permission] + :param assignable_scopes: Role definition assignable scopes. + :type assignable_scopes: list[str or ~azure.keyvault.v7_3_preview.models.RoleScope] + """ + + _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'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'role_type': {'key': 'properties.type', 'type': 'str'}, + 'permissions': {'key': 'properties.permissions', 'type': '[Permission]'}, + 'assignable_scopes': {'key': 'properties.assignableScopes', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(RoleDefinition, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.role_name = kwargs.get('role_name', None) + self.description = kwargs.get('description', None) + self.role_type = kwargs.get('role_type', None) + self.permissions = kwargs.get('permissions', None) + self.assignable_scopes = kwargs.get('assignable_scopes', None) + + +class RoleDefinitionCreateParameters(msrest.serialization.Model): + """Role definition create parameters. + + All required parameters must be populated in order to send to Azure. + + :param properties: Required. Role definition properties. + :type properties: ~azure.keyvault.v7_3_preview.models.RoleDefinitionProperties + """ + + _validation = { + 'properties': {'required': True}, + } + + _attribute_map = { + 'properties': {'key': 'properties', 'type': 'RoleDefinitionProperties'}, + } + + def __init__( + self, + **kwargs + ): + super(RoleDefinitionCreateParameters, self).__init__(**kwargs) + self.properties = kwargs['properties'] + + +class RoleDefinitionFilter(msrest.serialization.Model): + """Role Definitions filter. + + :param role_name: Returns role definition with the specific name. + :type role_name: str + """ + + _attribute_map = { + 'role_name': {'key': 'roleName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RoleDefinitionFilter, self).__init__(**kwargs) + self.role_name = kwargs.get('role_name', None) + + +class RoleDefinitionListResult(msrest.serialization.Model): + """Role definition list operation result. + + :param value: Role definition list. + :type value: list[~azure.keyvault.v7_3_preview.models.RoleDefinition] + :param next_link: The URL to use for getting the next set of results. + :type next_link: str + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[RoleDefinition]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RoleDefinitionListResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + self.next_link = kwargs.get('next_link', None) + + +class RoleDefinitionProperties(msrest.serialization.Model): + """Role definition properties. + + :param role_name: The role name. + :type role_name: str + :param description: The role definition description. + :type description: str + :param role_type: The role type. Possible values include: "AKVBuiltInRole", "CustomRole". + :type role_type: str or ~azure.keyvault.v7_3_preview.models.RoleType + :param permissions: Role definition permissions. + :type permissions: list[~azure.keyvault.v7_3_preview.models.Permission] + :param assignable_scopes: Role definition assignable scopes. + :type assignable_scopes: list[str or ~azure.keyvault.v7_3_preview.models.RoleScope] + """ + + _attribute_map = { + 'role_name': {'key': 'roleName', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'role_type': {'key': 'type', 'type': 'str'}, + 'permissions': {'key': 'permissions', 'type': '[Permission]'}, + 'assignable_scopes': {'key': 'assignableScopes', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(RoleDefinitionProperties, self).__init__(**kwargs) + self.role_name = kwargs.get('role_name', None) + self.description = kwargs.get('description', None) + self.role_type = kwargs.get('role_type', None) + self.permissions = kwargs.get('permissions', None) + self.assignable_scopes = kwargs.get('assignable_scopes', None) + + +class SASTokenParameter(msrest.serialization.Model): + """SASTokenParameter. + + All required parameters must be populated in order to send to Azure. + + :param storage_resource_uri: Required. Azure Blob storage container Uri. + :type storage_resource_uri: str + :param token: Required. The SAS token pointing to an Azure Blob storage container. + :type token: str + """ + + _validation = { + 'storage_resource_uri': {'required': True}, + 'token': {'required': True}, + } + + _attribute_map = { + 'storage_resource_uri': {'key': 'storageResourceUri', 'type': 'str'}, + 'token': {'key': 'token', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SASTokenParameter, self).__init__(**kwargs) + self.storage_resource_uri = kwargs['storage_resource_uri'] + self.token = kwargs['token'] + + +class SelectiveKeyRestoreOperation(msrest.serialization.Model): + """Selective Key Restore operation. + + :param status: Status of the restore operation. + :type status: str + :param status_details: The status details of restore operation. + :type status_details: str + :param error: Error encountered, if any, during the selective key restore operation. + :type error: ~azure.keyvault.v7_3_preview.models.Error + :param job_id: Identifier for the selective key restore operation. + :type job_id: str + :param start_time: The start time of the restore operation. + :type start_time: ~datetime.datetime + :param end_time: The end time of the restore operation. + :type end_time: ~datetime.datetime + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'status_details': {'key': 'statusDetails', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'Error'}, + 'job_id': {'key': 'jobId', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'unix-time'}, + 'end_time': {'key': 'endTime', 'type': 'unix-time'}, + } + + def __init__( + self, + **kwargs + ): + super(SelectiveKeyRestoreOperation, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.status_details = kwargs.get('status_details', None) + self.error = kwargs.get('error', None) + self.job_id = kwargs.get('job_id', None) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + + +class SelectiveKeyRestoreOperationParameters(msrest.serialization.Model): + """SelectiveKeyRestoreOperationParameters. + + All required parameters must be populated in order to send to Azure. + + :param sas_token_parameters: Required. + :type sas_token_parameters: ~azure.keyvault.v7_3_preview.models.SASTokenParameter + :param folder: Required. The Folder name of the blob where the previous successful full backup + was stored. + :type folder: str + """ + + _validation = { + 'sas_token_parameters': {'required': True}, + 'folder': {'required': True}, + } + + _attribute_map = { + 'sas_token_parameters': {'key': 'sasTokenParameters', 'type': 'SASTokenParameter'}, + 'folder': {'key': 'folder', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SelectiveKeyRestoreOperationParameters, self).__init__(**kwargs) + self.sas_token_parameters = kwargs['sas_token_parameters'] + self.folder = kwargs['folder'] diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/models/_models_py3.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/models/_models_py3.py new file mode 100644 index 000000000000..f7c3da2f1a1d --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/models/_models_py3.py @@ -0,0 +1,761 @@ +# 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. +# -------------------------------------------------------------------------- + +import datetime +from typing import List, Optional, Union + +from azure.core.exceptions import HttpResponseError +import msrest.serialization + +from ._key_vault_client_enums import * + + +class Attributes(msrest.serialization.Model): + """The object attributes managed by the KeyVault service. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param enabled: Determines whether the object is enabled. + :type enabled: bool + :param not_before: Not before date in UTC. + :type not_before: ~datetime.datetime + :param expires: Expiry date in UTC. + :type expires: ~datetime.datetime + :ivar created: Creation time in UTC. + :vartype created: ~datetime.datetime + :ivar updated: Last updated time in UTC. + :vartype updated: ~datetime.datetime + """ + + _validation = { + 'created': {'readonly': True}, + 'updated': {'readonly': True}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'not_before': {'key': 'nbf', 'type': 'unix-time'}, + 'expires': {'key': 'exp', 'type': 'unix-time'}, + 'created': {'key': 'created', 'type': 'unix-time'}, + 'updated': {'key': 'updated', 'type': 'unix-time'}, + } + + def __init__( + self, + *, + enabled: Optional[bool] = None, + not_before: Optional[datetime.datetime] = None, + expires: Optional[datetime.datetime] = None, + **kwargs + ): + super(Attributes, self).__init__(**kwargs) + self.enabled = enabled + self.not_before = not_before + self.expires = expires + self.created = None + self.updated = None + + +class Error(msrest.serialization.Model): + """The key vault server error. + + 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 inner_error: The key vault server error. + :vartype inner_error: ~azure.keyvault.v7_3_preview.models.Error + """ + + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + 'inner_error': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'inner_error': {'key': 'innererror', 'type': 'Error'}, + } + + def __init__( + self, + **kwargs + ): + super(Error, self).__init__(**kwargs) + self.code = None + self.message = None + self.inner_error = None + + +class FullBackupOperation(msrest.serialization.Model): + """Full backup operation. + + :param status: Status of the backup operation. + :type status: str + :param status_details: The status details of backup operation. + :type status_details: str + :param error: Error encountered, if any, during the full backup operation. + :type error: ~azure.keyvault.v7_3_preview.models.Error + :param start_time: The start time of the backup operation in UTC. + :type start_time: ~datetime.datetime + :param end_time: The end time of the backup operation in UTC. + :type end_time: ~datetime.datetime + :param job_id: Identifier for the full backup operation. + :type job_id: str + :param azure_storage_blob_container_uri: The Azure blob storage container Uri which contains + the full backup. + :type azure_storage_blob_container_uri: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'status_details': {'key': 'statusDetails', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'Error'}, + 'start_time': {'key': 'startTime', 'type': 'unix-time'}, + 'end_time': {'key': 'endTime', 'type': 'unix-time'}, + 'job_id': {'key': 'jobId', 'type': 'str'}, + 'azure_storage_blob_container_uri': {'key': 'azureStorageBlobContainerUri', 'type': 'str'}, + } + + def __init__( + self, + *, + status: Optional[str] = None, + status_details: Optional[str] = None, + error: Optional["Error"] = None, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + job_id: Optional[str] = None, + azure_storage_blob_container_uri: Optional[str] = None, + **kwargs + ): + super(FullBackupOperation, self).__init__(**kwargs) + self.status = status + self.status_details = status_details + self.error = error + self.start_time = start_time + self.end_time = end_time + self.job_id = job_id + self.azure_storage_blob_container_uri = azure_storage_blob_container_uri + + +class KeyVaultError(msrest.serialization.Model): + """The key vault error exception. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar error: The key vault server error. + :vartype error: ~azure.keyvault.v7_3_preview.models.Error + """ + + _validation = { + 'error': {'readonly': True}, + } + + _attribute_map = { + 'error': {'key': 'error', 'type': 'Error'}, + } + + def __init__( + self, + **kwargs + ): + super(KeyVaultError, self).__init__(**kwargs) + self.error = None + + +class Permission(msrest.serialization.Model): + """Role definition permissions. + + :param actions: Action permissions that are granted. + :type actions: list[str] + :param not_actions: Action permissions that are excluded but not denied. They may be granted by + other role definitions assigned to a principal. + :type not_actions: list[str] + :param data_actions: Data action permissions that are granted. + :type data_actions: list[str or ~azure.keyvault.v7_3_preview.models.DataAction] + :param not_data_actions: Data action permissions that are excluded but not denied. They may be + granted by other role definitions assigned to a principal. + :type not_data_actions: list[str or ~azure.keyvault.v7_3_preview.models.DataAction] + """ + + _attribute_map = { + 'actions': {'key': 'actions', 'type': '[str]'}, + 'not_actions': {'key': 'notActions', 'type': '[str]'}, + 'data_actions': {'key': 'dataActions', 'type': '[str]'}, + 'not_data_actions': {'key': 'notDataActions', 'type': '[str]'}, + } + + def __init__( + self, + *, + actions: Optional[List[str]] = None, + not_actions: Optional[List[str]] = None, + data_actions: Optional[List[Union[str, "DataAction"]]] = None, + not_data_actions: Optional[List[Union[str, "DataAction"]]] = None, + **kwargs + ): + super(Permission, self).__init__(**kwargs) + self.actions = actions + self.not_actions = not_actions + self.data_actions = data_actions + self.not_data_actions = not_data_actions + + +class RestoreOperation(msrest.serialization.Model): + """Restore operation. + + :param status: Status of the restore operation. + :type status: str + :param status_details: The status details of restore operation. + :type status_details: str + :param error: Error encountered, if any, during the restore operation. + :type error: ~azure.keyvault.v7_3_preview.models.Error + :param job_id: Identifier for the restore operation. + :type job_id: str + :param start_time: The start time of the restore operation. + :type start_time: ~datetime.datetime + :param end_time: The end time of the restore operation. + :type end_time: ~datetime.datetime + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'status_details': {'key': 'statusDetails', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'Error'}, + 'job_id': {'key': 'jobId', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'unix-time'}, + 'end_time': {'key': 'endTime', 'type': 'unix-time'}, + } + + def __init__( + self, + *, + status: Optional[str] = None, + status_details: Optional[str] = None, + error: Optional["Error"] = None, + job_id: Optional[str] = None, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + **kwargs + ): + super(RestoreOperation, self).__init__(**kwargs) + self.status = status + self.status_details = status_details + self.error = error + self.job_id = job_id + self.start_time = start_time + self.end_time = end_time + + +class RestoreOperationParameters(msrest.serialization.Model): + """RestoreOperationParameters. + + All required parameters must be populated in order to send to Azure. + + :param sas_token_parameters: Required. + :type sas_token_parameters: ~azure.keyvault.v7_3_preview.models.SASTokenParameter + :param folder_to_restore: Required. The Folder name of the blob where the previous successful + full backup was stored. + :type folder_to_restore: str + """ + + _validation = { + 'sas_token_parameters': {'required': True}, + 'folder_to_restore': {'required': True}, + } + + _attribute_map = { + 'sas_token_parameters': {'key': 'sasTokenParameters', 'type': 'SASTokenParameter'}, + 'folder_to_restore': {'key': 'folderToRestore', 'type': 'str'}, + } + + def __init__( + self, + *, + sas_token_parameters: "SASTokenParameter", + folder_to_restore: str, + **kwargs + ): + super(RestoreOperationParameters, self).__init__(**kwargs) + self.sas_token_parameters = sas_token_parameters + self.folder_to_restore = folder_to_restore + + +class RoleAssignment(msrest.serialization.Model): + """Role Assignments. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The role assignment ID. + :vartype id: str + :ivar name: The role assignment name. + :vartype name: str + :ivar type: The role assignment type. + :vartype type: str + :param properties: Role assignment properties. + :type properties: ~azure.keyvault.v7_3_preview.models.RoleAssignmentPropertiesWithScope + """ + + _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': 'RoleAssignmentPropertiesWithScope'}, + } + + def __init__( + self, + *, + properties: Optional["RoleAssignmentPropertiesWithScope"] = None, + **kwargs + ): + super(RoleAssignment, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.properties = properties + + +class RoleAssignmentCreateParameters(msrest.serialization.Model): + """Role assignment create parameters. + + All required parameters must be populated in order to send to Azure. + + :param properties: Required. Role assignment properties. + :type properties: ~azure.keyvault.v7_3_preview.models.RoleAssignmentProperties + """ + + _validation = { + 'properties': {'required': True}, + } + + _attribute_map = { + 'properties': {'key': 'properties', 'type': 'RoleAssignmentProperties'}, + } + + def __init__( + self, + *, + properties: "RoleAssignmentProperties", + **kwargs + ): + super(RoleAssignmentCreateParameters, self).__init__(**kwargs) + self.properties = properties + + +class RoleAssignmentFilter(msrest.serialization.Model): + """Role Assignments filter. + + :param principal_id: Returns role assignment of the specific principal. + :type principal_id: str + """ + + _attribute_map = { + 'principal_id': {'key': 'principalId', 'type': 'str'}, + } + + def __init__( + self, + *, + principal_id: Optional[str] = None, + **kwargs + ): + super(RoleAssignmentFilter, self).__init__(**kwargs) + self.principal_id = principal_id + + +class RoleAssignmentListResult(msrest.serialization.Model): + """Role assignment list operation result. + + :param value: Role assignment list. + :type value: list[~azure.keyvault.v7_3_preview.models.RoleAssignment] + :param next_link: The URL to use for getting the next set of results. + :type next_link: str + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[RoleAssignment]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: Optional[List["RoleAssignment"]] = None, + next_link: Optional[str] = None, + **kwargs + ): + super(RoleAssignmentListResult, self).__init__(**kwargs) + self.value = value + self.next_link = next_link + + +class RoleAssignmentProperties(msrest.serialization.Model): + """Role assignment properties. + + All required parameters must be populated in order to send to Azure. + + :param role_definition_id: Required. The role definition ID used in the role assignment. + :type role_definition_id: str + :param principal_id: Required. The principal ID assigned to the role. This maps to the ID + inside the Active Directory. It can point to a user, service principal, or security group. + :type principal_id: str + """ + + _validation = { + 'role_definition_id': {'required': True}, + 'principal_id': {'required': True}, + } + + _attribute_map = { + 'role_definition_id': {'key': 'roleDefinitionId', 'type': 'str'}, + 'principal_id': {'key': 'principalId', 'type': 'str'}, + } + + def __init__( + self, + *, + role_definition_id: str, + principal_id: str, + **kwargs + ): + super(RoleAssignmentProperties, self).__init__(**kwargs) + self.role_definition_id = role_definition_id + self.principal_id = principal_id + + +class RoleAssignmentPropertiesWithScope(msrest.serialization.Model): + """Role assignment properties with scope. + + :param scope: The role scope. Possible values include: "/", "/keys". + :type scope: str or ~azure.keyvault.v7_3_preview.models.RoleScope + :param role_definition_id: The role definition ID. + :type role_definition_id: str + :param principal_id: The principal ID. + :type principal_id: str + """ + + _attribute_map = { + 'scope': {'key': 'scope', 'type': 'str'}, + 'role_definition_id': {'key': 'roleDefinitionId', 'type': 'str'}, + 'principal_id': {'key': 'principalId', 'type': 'str'}, + } + + def __init__( + self, + *, + scope: Optional[Union[str, "RoleScope"]] = None, + role_definition_id: Optional[str] = None, + principal_id: Optional[str] = None, + **kwargs + ): + super(RoleAssignmentPropertiesWithScope, self).__init__(**kwargs) + self.scope = scope + self.role_definition_id = role_definition_id + self.principal_id = principal_id + + +class RoleDefinition(msrest.serialization.Model): + """Role definition. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The role definition ID. + :vartype id: str + :ivar name: The role definition name. + :vartype name: str + :ivar type: The role definition type. Possible values include: + "Microsoft.Authorization/roleDefinitions". + :vartype type: str or ~azure.keyvault.v7_3_preview.models.RoleDefinitionType + :param role_name: The role name. + :type role_name: str + :param description: The role definition description. + :type description: str + :param role_type: The role type. Possible values include: "AKVBuiltInRole", "CustomRole". + :type role_type: str or ~azure.keyvault.v7_3_preview.models.RoleType + :param permissions: Role definition permissions. + :type permissions: list[~azure.keyvault.v7_3_preview.models.Permission] + :param assignable_scopes: Role definition assignable scopes. + :type assignable_scopes: list[str or ~azure.keyvault.v7_3_preview.models.RoleScope] + """ + + _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'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'role_type': {'key': 'properties.type', 'type': 'str'}, + 'permissions': {'key': 'properties.permissions', 'type': '[Permission]'}, + 'assignable_scopes': {'key': 'properties.assignableScopes', 'type': '[str]'}, + } + + def __init__( + self, + *, + role_name: Optional[str] = None, + description: Optional[str] = None, + role_type: Optional[Union[str, "RoleType"]] = None, + permissions: Optional[List["Permission"]] = None, + assignable_scopes: Optional[List[Union[str, "RoleScope"]]] = None, + **kwargs + ): + super(RoleDefinition, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.role_name = role_name + self.description = description + self.role_type = role_type + self.permissions = permissions + self.assignable_scopes = assignable_scopes + + +class RoleDefinitionCreateParameters(msrest.serialization.Model): + """Role definition create parameters. + + All required parameters must be populated in order to send to Azure. + + :param properties: Required. Role definition properties. + :type properties: ~azure.keyvault.v7_3_preview.models.RoleDefinitionProperties + """ + + _validation = { + 'properties': {'required': True}, + } + + _attribute_map = { + 'properties': {'key': 'properties', 'type': 'RoleDefinitionProperties'}, + } + + def __init__( + self, + *, + properties: "RoleDefinitionProperties", + **kwargs + ): + super(RoleDefinitionCreateParameters, self).__init__(**kwargs) + self.properties = properties + + +class RoleDefinitionFilter(msrest.serialization.Model): + """Role Definitions filter. + + :param role_name: Returns role definition with the specific name. + :type role_name: str + """ + + _attribute_map = { + 'role_name': {'key': 'roleName', 'type': 'str'}, + } + + def __init__( + self, + *, + role_name: Optional[str] = None, + **kwargs + ): + super(RoleDefinitionFilter, self).__init__(**kwargs) + self.role_name = role_name + + +class RoleDefinitionListResult(msrest.serialization.Model): + """Role definition list operation result. + + :param value: Role definition list. + :type value: list[~azure.keyvault.v7_3_preview.models.RoleDefinition] + :param next_link: The URL to use for getting the next set of results. + :type next_link: str + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[RoleDefinition]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: Optional[List["RoleDefinition"]] = None, + next_link: Optional[str] = None, + **kwargs + ): + super(RoleDefinitionListResult, self).__init__(**kwargs) + self.value = value + self.next_link = next_link + + +class RoleDefinitionProperties(msrest.serialization.Model): + """Role definition properties. + + :param role_name: The role name. + :type role_name: str + :param description: The role definition description. + :type description: str + :param role_type: The role type. Possible values include: "AKVBuiltInRole", "CustomRole". + :type role_type: str or ~azure.keyvault.v7_3_preview.models.RoleType + :param permissions: Role definition permissions. + :type permissions: list[~azure.keyvault.v7_3_preview.models.Permission] + :param assignable_scopes: Role definition assignable scopes. + :type assignable_scopes: list[str or ~azure.keyvault.v7_3_preview.models.RoleScope] + """ + + _attribute_map = { + 'role_name': {'key': 'roleName', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'role_type': {'key': 'type', 'type': 'str'}, + 'permissions': {'key': 'permissions', 'type': '[Permission]'}, + 'assignable_scopes': {'key': 'assignableScopes', 'type': '[str]'}, + } + + def __init__( + self, + *, + role_name: Optional[str] = None, + description: Optional[str] = None, + role_type: Optional[Union[str, "RoleType"]] = None, + permissions: Optional[List["Permission"]] = None, + assignable_scopes: Optional[List[Union[str, "RoleScope"]]] = None, + **kwargs + ): + super(RoleDefinitionProperties, self).__init__(**kwargs) + self.role_name = role_name + self.description = description + self.role_type = role_type + self.permissions = permissions + self.assignable_scopes = assignable_scopes + + +class SASTokenParameter(msrest.serialization.Model): + """SASTokenParameter. + + All required parameters must be populated in order to send to Azure. + + :param storage_resource_uri: Required. Azure Blob storage container Uri. + :type storage_resource_uri: str + :param token: Required. The SAS token pointing to an Azure Blob storage container. + :type token: str + """ + + _validation = { + 'storage_resource_uri': {'required': True}, + 'token': {'required': True}, + } + + _attribute_map = { + 'storage_resource_uri': {'key': 'storageResourceUri', 'type': 'str'}, + 'token': {'key': 'token', 'type': 'str'}, + } + + def __init__( + self, + *, + storage_resource_uri: str, + token: str, + **kwargs + ): + super(SASTokenParameter, self).__init__(**kwargs) + self.storage_resource_uri = storage_resource_uri + self.token = token + + +class SelectiveKeyRestoreOperation(msrest.serialization.Model): + """Selective Key Restore operation. + + :param status: Status of the restore operation. + :type status: str + :param status_details: The status details of restore operation. + :type status_details: str + :param error: Error encountered, if any, during the selective key restore operation. + :type error: ~azure.keyvault.v7_3_preview.models.Error + :param job_id: Identifier for the selective key restore operation. + :type job_id: str + :param start_time: The start time of the restore operation. + :type start_time: ~datetime.datetime + :param end_time: The end time of the restore operation. + :type end_time: ~datetime.datetime + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'status_details': {'key': 'statusDetails', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'Error'}, + 'job_id': {'key': 'jobId', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'unix-time'}, + 'end_time': {'key': 'endTime', 'type': 'unix-time'}, + } + + def __init__( + self, + *, + status: Optional[str] = None, + status_details: Optional[str] = None, + error: Optional["Error"] = None, + job_id: Optional[str] = None, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + **kwargs + ): + super(SelectiveKeyRestoreOperation, self).__init__(**kwargs) + self.status = status + self.status_details = status_details + self.error = error + self.job_id = job_id + self.start_time = start_time + self.end_time = end_time + + +class SelectiveKeyRestoreOperationParameters(msrest.serialization.Model): + """SelectiveKeyRestoreOperationParameters. + + All required parameters must be populated in order to send to Azure. + + :param sas_token_parameters: Required. + :type sas_token_parameters: ~azure.keyvault.v7_3_preview.models.SASTokenParameter + :param folder: Required. The Folder name of the blob where the previous successful full backup + was stored. + :type folder: str + """ + + _validation = { + 'sas_token_parameters': {'required': True}, + 'folder': {'required': True}, + } + + _attribute_map = { + 'sas_token_parameters': {'key': 'sasTokenParameters', 'type': 'SASTokenParameter'}, + 'folder': {'key': 'folder', 'type': 'str'}, + } + + def __init__( + self, + *, + sas_token_parameters: "SASTokenParameter", + folder: str, + **kwargs + ): + super(SelectiveKeyRestoreOperationParameters, self).__init__(**kwargs) + self.sas_token_parameters = sas_token_parameters + self.folder = folder diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/operations/__init__.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/operations/__init__.py new file mode 100644 index 000000000000..fbdd39654293 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/operations/__init__.py @@ -0,0 +1,17 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._key_vault_client_operations import KeyVaultClientOperationsMixin +from ._role_definitions_operations import RoleDefinitionsOperations +from ._role_assignments_operations import RoleAssignmentsOperations + +__all__ = [ + 'KeyVaultClientOperationsMixin', + 'RoleDefinitionsOperations', + 'RoleAssignmentsOperations', +] diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/operations/_key_vault_client_operations.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/operations/_key_vault_client_operations.py new file mode 100644 index 000000000000..e1ad6c1821e7 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/operations/_key_vault_client_operations.py @@ -0,0 +1,541 @@ +# 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.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.core.polling import LROPoller, NoPolling, PollingMethod +from azure.core.polling.base_polling import LROBasePolling + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class KeyVaultClientOperationsMixin(object): + + def _full_backup_initial( + self, + vault_base_url, # type: str + azure_storage_blob_container_uri=None, # type: Optional["_models.SASTokenParameter"] + **kwargs # type: Any + ): + # type: (...) -> "_models.FullBackupOperation" + cls = kwargs.pop('cls', None) # type: ClsType["_models.FullBackupOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._full_backup_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + } + 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] + if azure_storage_blob_container_uri is not None: + body_content = self._serialize.body(azure_storage_blob_container_uri, 'SASTokenParameter') + else: + body_content = None + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['Retry-After']=self._deserialize('int', response.headers.get('Retry-After')) + response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('FullBackupOperation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + _full_backup_initial.metadata = {'url': '/backup'} # type: ignore + + def begin_full_backup( + self, + vault_base_url, # type: str + azure_storage_blob_container_uri=None, # type: Optional["_models.SASTokenParameter"] + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.FullBackupOperation"] + """Creates a full backup using a user-provided SAS token to an Azure blob storage container. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param azure_storage_blob_container_uri: Azure blob shared access signature token pointing to a + valid Azure blob container where full backup needs to be stored. This token needs to be valid + for at least next 24 hours from the time of making this call. + :type azure_storage_blob_container_uri: ~azure.keyvault.v7_3_preview.models.SASTokenParameter + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: By default, your polling method will be LROBasePolling. + Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy. + :paramtype polling: bool or ~azure.core.polling.PollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of LROPoller that returns either FullBackupOperation or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.keyvault.v7_3_preview.models.FullBackupOperation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FullBackupOperation"] + 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._full_backup_initial( + vault_base_url=vault_base_url, + azure_storage_blob_container_uri=azure_storage_blob_container_uri, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + response_headers = {} + response = pipeline_response.http_response + response_headers['Retry-After']=self._deserialize('int', response.headers.get('Retry-After')) + response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('FullBackupOperation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + return deserialized + + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + } + + if polling is True: polling_method = LROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + 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_full_backup.metadata = {'url': '/backup'} # type: ignore + + def full_backup_status( + self, + vault_base_url, # type: str + job_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.FullBackupOperation" + """Returns the status of full backup operation. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param job_id: The id returned as part of the backup request. + :type job_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: FullBackupOperation, or the result of cls(response) + :rtype: ~azure.keyvault.v7_3_preview.models.FullBackupOperation + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FullBackupOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + accept = "application/json" + + # Construct URL + url = self.full_backup_status.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'jobId': self._serialize.url("job_id", job_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) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('FullBackupOperation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + full_backup_status.metadata = {'url': '/backup/{jobId}/pending'} # type: ignore + + def _full_restore_operation_initial( + self, + vault_base_url, # type: str + restore_blob_details=None, # type: Optional["_models.RestoreOperationParameters"] + **kwargs # type: Any + ): + # type: (...) -> "_models.RestoreOperation" + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestoreOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._full_restore_operation_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + } + 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] + if restore_blob_details is not None: + body_content = self._serialize.body(restore_blob_details, 'RestoreOperationParameters') + else: + body_content = None + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['Retry-After']=self._deserialize('int', response.headers.get('Retry-After')) + response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('RestoreOperation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + _full_restore_operation_initial.metadata = {'url': '/restore'} # type: ignore + + def begin_full_restore_operation( + self, + vault_base_url, # type: str + restore_blob_details=None, # type: Optional["_models.RestoreOperationParameters"] + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.RestoreOperation"] + """Restores all key materials using the SAS token pointing to a previously stored Azure Blob + storage backup folder. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous + successful full backup was stored. + :type restore_blob_details: ~azure.keyvault.v7_3_preview.models.RestoreOperationParameters + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: By default, your polling method will be LROBasePolling. + Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy. + :paramtype polling: bool or ~azure.core.polling.PollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of LROPoller that returns either RestoreOperation or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.keyvault.v7_3_preview.models.RestoreOperation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestoreOperation"] + 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._full_restore_operation_initial( + vault_base_url=vault_base_url, + restore_blob_details=restore_blob_details, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + response_headers = {} + response = pipeline_response.http_response + response_headers['Retry-After']=self._deserialize('int', response.headers.get('Retry-After')) + response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('RestoreOperation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + return deserialized + + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + } + + if polling is True: polling_method = LROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + 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_full_restore_operation.metadata = {'url': '/restore'} # type: ignore + + def restore_status( + self, + vault_base_url, # type: str + job_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.RestoreOperation" + """Returns the status of restore operation. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param job_id: The Job Id returned part of the restore operation. + :type job_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RestoreOperation, or the result of cls(response) + :rtype: ~azure.keyvault.v7_3_preview.models.RestoreOperation + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestoreOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + accept = "application/json" + + # Construct URL + url = self.restore_status.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'jobId': self._serialize.url("job_id", job_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) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('RestoreOperation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + restore_status.metadata = {'url': '/restore/{jobId}/pending'} # type: ignore + + def _selective_key_restore_operation_initial( + self, + vault_base_url, # type: str + key_name, # type: str + restore_blob_details=None, # type: Optional["_models.SelectiveKeyRestoreOperationParameters"] + **kwargs # type: Any + ): + # type: (...) -> "_models.SelectiveKeyRestoreOperation" + cls = kwargs.pop('cls', None) # type: ClsType["_models.SelectiveKeyRestoreOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._selective_key_restore_operation_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + } + 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] + if restore_blob_details is not None: + body_content = self._serialize.body(restore_blob_details, 'SelectiveKeyRestoreOperationParameters') + else: + body_content = None + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + response_headers = {} + response_headers['Retry-After']=self._deserialize('int', response.headers.get('Retry-After')) + response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('SelectiveKeyRestoreOperation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + _selective_key_restore_operation_initial.metadata = {'url': '/keys/{keyName}/restore'} # type: ignore + + def begin_selective_key_restore_operation( + self, + vault_base_url, # type: str + key_name, # type: str + restore_blob_details=None, # type: Optional["_models.SelectiveKeyRestoreOperationParameters"] + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.SelectiveKeyRestoreOperation"] + """Restores all key versions of a given key using user supplied SAS token pointing to a previously + stored Azure Blob storage backup folder. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param key_name: The name of the key to be restored from the user supplied backup. + :type key_name: str + :param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous + successful full backup was stored. + :type restore_blob_details: ~azure.keyvault.v7_3_preview.models.SelectiveKeyRestoreOperationParameters + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: By default, your polling method will be LROBasePolling. + Pass in False for this operation to not poll, or pass in your own initialized polling object for a personal polling strategy. + :paramtype polling: bool or ~azure.core.polling.PollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of LROPoller that returns either SelectiveKeyRestoreOperation or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.keyvault.v7_3_preview.models.SelectiveKeyRestoreOperation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SelectiveKeyRestoreOperation"] + 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._selective_key_restore_operation_initial( + vault_base_url=vault_base_url, + key_name=key_name, + restore_blob_details=restore_blob_details, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + response_headers = {} + response = pipeline_response.http_response + response_headers['Retry-After']=self._deserialize('int', response.headers.get('Retry-After')) + response_headers['Azure-AsyncOperation']=self._deserialize('str', response.headers.get('Azure-AsyncOperation')) + deserialized = self._deserialize('SelectiveKeyRestoreOperation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + return deserialized + + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + } + + if polling is True: polling_method = LROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + 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_selective_key_restore_operation.metadata = {'url': '/keys/{keyName}/restore'} # type: ignore diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/operations/_role_assignments_operations.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/operations/_role_assignments_operations.py new file mode 100644 index 000000000000..c112f5913272 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/operations/_role_assignments_operations.py @@ -0,0 +1,330 @@ +# 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 .. 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 RoleAssignmentsOperations(object): + """RoleAssignmentsOperations 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.keyvault.v7_3_preview.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 delete( + self, + vault_base_url, # type: str + scope, # type: str + role_assignment_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.RoleAssignment" + """Deletes a role assignment. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param scope: The scope of the role assignment to delete. + :type scope: str + :param role_assignment_name: The name of the role assignment to delete. + :type role_assignment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RoleAssignment, or the result of cls(response) + :rtype: ~azure.keyvault.v7_3_preview.models.RoleAssignment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleAssignment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + 'roleAssignmentName': self._serialize.url("role_assignment_name", role_assignment_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['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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('RoleAssignment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + delete.metadata = {'url': '/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}'} # type: ignore + + def create( + self, + vault_base_url, # type: str + scope, # type: str + role_assignment_name, # type: str + parameters, # type: "_models.RoleAssignmentCreateParameters" + **kwargs # type: Any + ): + # type: (...) -> "_models.RoleAssignment" + """Creates a role assignment. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param scope: The scope of the role assignment to create. + :type scope: str + :param role_assignment_name: The name of the role assignment to create. It can be any valid + GUID. + :type role_assignment_name: str + :param parameters: Parameters for the role assignment. + :type parameters: ~azure.keyvault.v7_3_preview.models.RoleAssignmentCreateParameters + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RoleAssignment, or the result of cls(response) + :rtype: ~azure.keyvault.v7_3_preview.models.RoleAssignment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleAssignment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + 'roleAssignmentName': self._serialize.url("role_assignment_name", role_assignment_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(parameters, 'RoleAssignmentCreateParameters') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('RoleAssignment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create.metadata = {'url': '/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}'} # type: ignore + + def get( + self, + vault_base_url, # type: str + scope, # type: str + role_assignment_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.RoleAssignment" + """Get the specified role assignment. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param scope: The scope of the role assignment. + :type scope: str + :param role_assignment_name: The name of the role assignment to get. + :type role_assignment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RoleAssignment, or the result of cls(response) + :rtype: ~azure.keyvault.v7_3_preview.models.RoleAssignment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleAssignment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + 'roleAssignmentName': self._serialize.url("role_assignment_name", role_assignment_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['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) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('RoleAssignment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}'} # type: ignore + + def list_for_scope( + self, + vault_base_url, # type: str + scope, # type: str + filter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.RoleAssignmentListResult"] + """Gets role assignments for a scope. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param scope: The scope of the role assignments. + :type scope: str + :param filter: The filter to apply on the operation. Use $filter=atScope() to return all role + assignments at or above the scope. Use $filter=principalId eq {id} to return all role + assignments at, above or below the scope for the specified principal. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RoleAssignmentListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.keyvault.v7_3_preview.models.RoleAssignmentListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleAssignmentListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-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_for_scope.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + 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] + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('RoleAssignmentListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_for_scope.metadata = {'url': '/{scope}/providers/Microsoft.Authorization/roleAssignments'} # type: ignore diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/operations/_role_definitions_operations.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/operations/_role_definitions_operations.py new file mode 100644 index 000000000000..ae921b00e0ac --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/operations/_role_definitions_operations.py @@ -0,0 +1,330 @@ +# 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 .. 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 RoleDefinitionsOperations(object): + """RoleDefinitionsOperations 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.keyvault.v7_3_preview.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 delete( + self, + vault_base_url, # type: str + scope, # type: str + role_definition_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.RoleDefinition" + """Deletes a custom role definition. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param scope: The scope of the role definition to delete. Managed HSM only supports '/'. + :type scope: str + :param role_definition_name: The name (GUID) of the role definition to delete. + :type role_definition_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RoleDefinition, or the result of cls(response) + :rtype: ~azure.keyvault.v7_3_preview.models.RoleDefinition + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleDefinition"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + accept = "application/json" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + 'roleDefinitionName': self._serialize.url("role_definition_name", role_definition_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['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]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('RoleDefinition', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + delete.metadata = {'url': '/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}'} # type: ignore + + def create_or_update( + self, + vault_base_url, # type: str + scope, # type: str + role_definition_name, # type: str + parameters, # type: "_models.RoleDefinitionCreateParameters" + **kwargs # type: Any + ): + # type: (...) -> "_models.RoleDefinition" + """Creates or updates a custom role definition. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param scope: The scope of the role definition to create or update. Managed HSM only supports + '/'. + :type scope: str + :param role_definition_name: The name of the role definition to create or update. It can be any + valid GUID. + :type role_definition_name: str + :param parameters: Parameters for the role definition. + :type parameters: ~azure.keyvault.v7_3_preview.models.RoleDefinitionCreateParameters + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RoleDefinition, or the result of cls(response) + :rtype: ~azure.keyvault.v7_3_preview.models.RoleDefinition + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleDefinition"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.create_or_update.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + 'roleDefinitionName': self._serialize.url("role_definition_name", role_definition_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(parameters, 'RoleDefinitionCreateParameters') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('RoleDefinition', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update.metadata = {'url': '/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}'} # type: ignore + + def get( + self, + vault_base_url, # type: str + scope, # type: str + role_definition_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.RoleDefinition" + """Get the specified role definition. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param scope: The scope of the role definition to get. Managed HSM only supports '/'. + :type scope: str + :param role_definition_name: The name of the role definition to get. + :type role_definition_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RoleDefinition, or the result of cls(response) + :rtype: ~azure.keyvault.v7_3_preview.models.RoleDefinition + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleDefinition"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-preview" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + 'roleDefinitionName': self._serialize.url("role_definition_name", role_definition_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['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) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('RoleDefinition', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}'} # type: ignore + + def list( + self, + vault_base_url, # type: str + scope, # type: str + filter=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.RoleDefinitionListResult"] + """Get all role definitions that are applicable at scope and above. + + :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. + :type vault_base_url: str + :param scope: The scope of the role definition. + :type scope: str + :param filter: The filter to apply on the operation. Use atScopeAndBelow filter to search below + the given scope as well. + :type filter: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RoleDefinitionListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.keyvault.v7_3_preview.models.RoleDefinitionListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleDefinitionListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "7.3-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 = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + 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] + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True), + } + url = self._client.format_url(url, **path_format_arguments) + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('RoleDefinitionListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or 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]: + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/{scope}/providers/Microsoft.Authorization/roleDefinitions'} # type: ignore diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/py.typed b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/py.typed new file mode 100644 index 000000000000..e5aff4f83af8 --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_3_preview/py.typed @@ -0,0 +1 @@ +# Marker file for PEP 561. \ No newline at end of file diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/async_client_base.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/async_client_base.py index 815ce86516d4..63da85b214c4 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/async_client_base.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/async_client_base.py @@ -13,8 +13,6 @@ try: # pylint:disable=unused-import from typing import Any - from azure.core.configuration import Configuration - from azure.core.pipeline.transport import AsyncHttpTransport from azure.core.credentials_async import AsyncTokenCredential except ImportError: # AsyncTokenCredential is a typing_extensions.Protocol; we don't depend on that package diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/client_base.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/client_base.py index 8ad35c9f2045..838b89118251 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/client_base.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/client_base.py @@ -22,10 +22,11 @@ class ApiVersion(str, Enum): """Key Vault API versions supported by this package""" #: this is the default version + V7_3_PREVIEW = "7.3-preview" V7_2 = "7.2" -DEFAULT_VERSION = ApiVersion.V7_2 +DEFAULT_VERSION = ApiVersion.V7_3_PREVIEW class KeyVaultClientBase(object): diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_version.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_version.py index 3ef7aba02cab..25a24cab1be5 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_version.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_version.py @@ -3,4 +3,4 @@ # Licensed under the MIT License. # ------------------------------------ -VERSION = "4.0.1" +VERSION = "4.1.0b1" diff --git a/sdk/keyvault/azure-keyvault-administration/setup.py b/sdk/keyvault/azure-keyvault-administration/setup.py index 91c86b78e2f5..15a86bfbbeaf 100644 --- a/sdk/keyvault/azure-keyvault-administration/setup.py +++ b/sdk/keyvault/azure-keyvault-administration/setup.py @@ -59,7 +59,7 @@ author_email="azurekeyvault@microsoft.com", url="https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/keyvault/azure-keyvault-administration", classifiers=[ - "Development Status :: 5 - Production/Stable", + "Development Status :: 4 - Beta", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", diff --git a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control.test_role_assignment.yaml b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control.test_role_assignment.yaml index a8f95c0def68..912db76deb0c 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control.test_role_assignment.yaml +++ b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control.test_role_assignment.yaml @@ -11,9 +11,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview response: body: string: OK @@ -36,7 +36,7 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210407-3-27236ed1-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-server-latency: - '1' status: @@ -52,17 +52,17 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview response: body: string: '{"value":[{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","name":"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/keys/backup/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Backup","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17","name":"33413926-3206-4cdd-b39a-83574fe37a17","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Crypto Service Encryption","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c","name":"21dbd100-6940-42c2-9190-5d6cb909625c","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/release/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Crypto Service Release","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","name":"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Backup User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17","name":"33413926-3206-4cdd-b39a-83574fe37a17","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Crypto Service Encryption User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c","name":"21dbd100-6940-42c2-9190-5d6cb909625c","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/release/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Crypto Service Release User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","name":"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Auditor","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4","name":"4bd23610-cdcf-4971-bdee-bdc562cc28e4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleAssignments/delete/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/release/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/release/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action","Microsoft.KeyVault/managedHsm/rng/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","name":"515eb02d-2335-4d2d-92f2-b1cbdf9c3778","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete","Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action","Microsoft.KeyVault/managedHsm/keys/export/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Officer","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","name":"a290e904-7015-4bba-90c8-60543313cdb4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/securitydomain/download/action","Microsoft.KeyVault/managedHsm/securitydomain/download/read","Microsoft.KeyVault/managedHsm/securitydomain/upload/action","Microsoft.KeyVault/managedHsm/securitydomain/upload/read","Microsoft.KeyVault/managedHsm/securitydomain/transferkey/read","Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/restore/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/restore/status/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"}]}' @@ -70,7 +70,7 @@ interactions: cache-control: - no-cache content-length: - - '6590' + - '6648' content-security-policy: - default-src 'self' content-type: @@ -82,13 +82,13 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210407-3-27236ed1-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - northeurope + - westus x-ms-server-latency: - - '0' + - '1' status: code: 200 message: OK @@ -107,9 +107,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT - uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments/some-uuid?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments/some-uuid?api-version=7.3-preview response: body: string: '{"id":"/providers/Microsoft.Authorization/roleAssignments/some-uuid","name":"some-uuid","properties":{"principalId":"service-principal-id","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}' @@ -131,9 +131,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - northeurope + - westus x-ms-server-latency: - - '72' + - '49' status: code: 201 message: Created @@ -147,9 +147,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments/some-uuid?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments/some-uuid?api-version=7.3-preview response: body: string: '{"id":"/providers/Microsoft.Authorization/roleAssignments/some-uuid","name":"some-uuid","properties":{"principalId":"service-principal-id","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}' @@ -169,11 +169,11 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210407-3-27236ed1-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - northeurope + - westus x-ms-server-latency: - '0' status: @@ -189,12 +189,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments?api-version=7.3-preview response: body: - string: '{"value":[{"id":"/providers/Microsoft.Authorization/roleAssignments/b80b0b44-26e7-434b-0f6a-fa2fd1b6413e","name":"b80b0b44-26e7-434b-0f6a-fa2fd1b6413e","properties":{"principalId":"af925a48-c0cd-4c15-9130-359e357448eb","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/some-uuid","name":"some-uuid","properties":{"principalId":"service-principal-id","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/7bde12dc-c0a5-4b95-ace3-aac71584f420","name":"7bde12dc-c0a5-4b95-ace3-aac71584f420","properties":{"principalId":"af925a48-c0cd-4c15-9130-359e357448eb","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/54d6a07b-8833-4af2-84c4-e196414a99db","name":"54d6a07b-8833-4af2-84c4-e196414a99db","properties":{"principalId":"af925a48-c0cd-4c15-9130-359e357448eb","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}]}' + string: '{"value":[{"id":"/providers/Microsoft.Authorization/roleAssignments/fc3829ed-d50f-4828-b7d5-6804b903d926","name":"fc3829ed-d50f-4828-b7d5-6804b903d926","properties":{"principalId":"9ef0e031-7cbd-4aab-9db7-33d56e7c0a4c","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/c2b0e95f-3286-4a81-92c4-b93b7bba6611","name":"c2b0e95f-3286-4a81-92c4-b93b7bba6611","properties":{"principalId":"9ef0e031-7cbd-4aab-9db7-33d56e7c0a4c","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/6c1dc4e0-e7d6-0327-1b55-50efea64e56d","name":"6c1dc4e0-e7d6-0327-1b55-50efea64e56d","properties":{"principalId":"9ef0e031-7cbd-4aab-9db7-33d56e7c0a4c","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/some-uuid","name":"some-uuid","properties":{"principalId":"service-principal-id","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}]}' headers: cache-control: - no-cache @@ -211,13 +211,13 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210407-3-27236ed1-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - northeurope + - westus x-ms-server-latency: - - '0' + - '1' status: code: 200 message: OK @@ -233,9 +233,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments/some-uuid?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments/some-uuid?api-version=7.3-preview response: body: string: '{"id":"/providers/Microsoft.Authorization/roleAssignments/some-uuid","name":"some-uuid","properties":{"principalId":"service-principal-id","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}' @@ -257,9 +257,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - northeurope + - westus x-ms-server-latency: - - '50' + - '84' status: code: 200 message: OK @@ -273,12 +273,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments?api-version=7.3-preview response: body: - string: '{"value":[{"id":"/providers/Microsoft.Authorization/roleAssignments/b80b0b44-26e7-434b-0f6a-fa2fd1b6413e","name":"b80b0b44-26e7-434b-0f6a-fa2fd1b6413e","properties":{"principalId":"af925a48-c0cd-4c15-9130-359e357448eb","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/7bde12dc-c0a5-4b95-ace3-aac71584f420","name":"7bde12dc-c0a5-4b95-ace3-aac71584f420","properties":{"principalId":"af925a48-c0cd-4c15-9130-359e357448eb","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/54d6a07b-8833-4af2-84c4-e196414a99db","name":"54d6a07b-8833-4af2-84c4-e196414a99db","properties":{"principalId":"af925a48-c0cd-4c15-9130-359e357448eb","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}]}' + string: '{"value":[{"id":"/providers/Microsoft.Authorization/roleAssignments/fc3829ed-d50f-4828-b7d5-6804b903d926","name":"fc3829ed-d50f-4828-b7d5-6804b903d926","properties":{"principalId":"9ef0e031-7cbd-4aab-9db7-33d56e7c0a4c","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/c2b0e95f-3286-4a81-92c4-b93b7bba6611","name":"c2b0e95f-3286-4a81-92c4-b93b7bba6611","properties":{"principalId":"9ef0e031-7cbd-4aab-9db7-33d56e7c0a4c","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/6c1dc4e0-e7d6-0327-1b55-50efea64e56d","name":"6c1dc4e0-e7d6-0327-1b55-50efea64e56d","properties":{"principalId":"9ef0e031-7cbd-4aab-9db7-33d56e7c0a4c","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}]}' headers: cache-control: - no-cache @@ -295,11 +295,11 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210407-3-27236ed1-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - northeurope + - westus x-ms-server-latency: - '0' status: diff --git a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control.test_role_definitions.yaml b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control.test_role_definitions.yaml index 3cb7aa46fa22..dc9fe7ebfb05 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control.test_role_definitions.yaml +++ b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control.test_role_definitions.yaml @@ -11,9 +11,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview response: body: string: OK @@ -36,7 +36,7 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210407-3-27236ed1-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-server-latency: - '0' status: @@ -52,17 +52,17 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview response: body: string: '{"value":[{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","name":"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/keys/backup/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Backup","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17","name":"33413926-3206-4cdd-b39a-83574fe37a17","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Crypto Service Encryption","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c","name":"21dbd100-6940-42c2-9190-5d6cb909625c","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/release/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Crypto Service Release","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","name":"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Backup User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17","name":"33413926-3206-4cdd-b39a-83574fe37a17","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Crypto Service Encryption User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c","name":"21dbd100-6940-42c2-9190-5d6cb909625c","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/release/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Crypto Service Release User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","name":"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Auditor","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4","name":"4bd23610-cdcf-4971-bdee-bdc562cc28e4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleAssignments/delete/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/release/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/release/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action","Microsoft.KeyVault/managedHsm/rng/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","name":"515eb02d-2335-4d2d-92f2-b1cbdf9c3778","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete","Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action","Microsoft.KeyVault/managedHsm/keys/export/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Officer","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","name":"a290e904-7015-4bba-90c8-60543313cdb4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/securitydomain/download/action","Microsoft.KeyVault/managedHsm/securitydomain/download/read","Microsoft.KeyVault/managedHsm/securitydomain/upload/action","Microsoft.KeyVault/managedHsm/securitydomain/upload/read","Microsoft.KeyVault/managedHsm/securitydomain/transferkey/read","Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/restore/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/restore/status/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"}]}' @@ -70,7 +70,7 @@ interactions: cache-control: - no-cache content-length: - - '6590' + - '6648' content-security-policy: - default-src 'self' content-type: @@ -82,19 +82,19 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210407-3-27236ed1-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - northeurope + - westus x-ms-server-latency: - - '1' + - '0' status: code: 200 message: OK - request: - body: '{"properties": {"roleName": "role-name626010ec", "permissions": [{"dataActions": - ["Microsoft.KeyVault/managedHsm/keys/read/action"]}], "description": "test"}}' + body: '{"properties": {"roleName": "role-name626010ec", "description": "test", + "permissions": [{"dataActions": ["Microsoft.KeyVault/managedHsm/keys/read/action"]}]}}' headers: Accept: - application/json @@ -107,9 +107,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.3-preview response: body: string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"test","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"role-name626010ec","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' @@ -131,15 +131,14 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - northeurope + - westus x-ms-server-latency: - - '91' + - '57' status: code: 201 message: Created - request: - body: '{"properties": {"permissions": [{"notDataActions": ["Microsoft.KeyVault/managedHsm/keys/read/action"], - "dataActions": []}]}}' + body: '{"properties": {"permissions": [{"dataActions": [], "notDataActions": ["Microsoft.KeyVault/managedHsm/keys/read/action"]}]}}' headers: Accept: - application/json @@ -152,9 +151,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.3-preview response: body: string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' @@ -176,9 +175,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - northeurope + - westus x-ms-server-latency: - - '48' + - '56' status: code: 201 message: Created @@ -192,17 +191,17 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview response: body: string: '{"value":[{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","name":"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/keys/backup/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Backup","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17","name":"33413926-3206-4cdd-b39a-83574fe37a17","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Crypto Service Encryption","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c","name":"21dbd100-6940-42c2-9190-5d6cb909625c","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/release/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Crypto Service Release","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","name":"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Backup User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17","name":"33413926-3206-4cdd-b39a-83574fe37a17","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Crypto Service Encryption User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c","name":"21dbd100-6940-42c2-9190-5d6cb909625c","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/release/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Crypto Service Release User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","name":"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Auditor","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4","name":"4bd23610-cdcf-4971-bdee-bdc562cc28e4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleAssignments/delete/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/release/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/release/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action","Microsoft.KeyVault/managedHsm/rng/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","name":"515eb02d-2335-4d2d-92f2-b1cbdf9c3778","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete","Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action","Microsoft.KeyVault/managedHsm/keys/export/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Officer","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","name":"a290e904-7015-4bba-90c8-60543313cdb4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/securitydomain/download/action","Microsoft.KeyVault/managedHsm/securitydomain/download/read","Microsoft.KeyVault/managedHsm/securitydomain/upload/action","Microsoft.KeyVault/managedHsm/securitydomain/upload/read","Microsoft.KeyVault/managedHsm/securitydomain/transferkey/read","Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/restore/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/restore/status/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}]}' @@ -210,7 +209,7 @@ interactions: cache-control: - no-cache content-length: - - '7023' + - '7081' content-security-policy: - default-src 'self' content-type: @@ -222,13 +221,13 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210407-3-27236ed1-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - northeurope + - westus x-ms-server-latency: - - '0' + - '1' status: code: 200 message: OK @@ -242,9 +241,9 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.3-preview response: body: string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' @@ -264,11 +263,11 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210407-3-27236ed1-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - northeurope + - westus x-ms-server-latency: - '0' status: @@ -286,9 +285,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.3-preview response: body: string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' @@ -310,9 +309,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - northeurope + - westus x-ms-server-latency: - - '62' + - '54' status: code: 200 message: OK @@ -326,17 +325,17 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview response: body: string: '{"value":[{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","name":"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/keys/backup/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Backup","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17","name":"33413926-3206-4cdd-b39a-83574fe37a17","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Crypto Service Encryption","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c","name":"21dbd100-6940-42c2-9190-5d6cb909625c","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/release/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Crypto Service Release","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","name":"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Backup User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17","name":"33413926-3206-4cdd-b39a-83574fe37a17","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Crypto Service Encryption User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c","name":"21dbd100-6940-42c2-9190-5d6cb909625c","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/release/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Crypto Service Release User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","name":"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Auditor","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4","name":"4bd23610-cdcf-4971-bdee-bdc562cc28e4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleAssignments/delete/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/release/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/release/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action","Microsoft.KeyVault/managedHsm/rng/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","name":"515eb02d-2335-4d2d-92f2-b1cbdf9c3778","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete","Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action","Microsoft.KeyVault/managedHsm/keys/export/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Officer","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","name":"a290e904-7015-4bba-90c8-60543313cdb4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/securitydomain/download/action","Microsoft.KeyVault/managedHsm/securitydomain/download/read","Microsoft.KeyVault/managedHsm/securitydomain/upload/action","Microsoft.KeyVault/managedHsm/securitydomain/upload/read","Microsoft.KeyVault/managedHsm/securitydomain/transferkey/read","Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/restore/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/restore/status/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"}]}' @@ -344,7 +343,7 @@ interactions: cache-control: - no-cache content-length: - - '6590' + - '6648' content-security-policy: - default-src 'self' content-type: @@ -356,11 +355,11 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210407-3-27236ed1-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - northeurope + - westus x-ms-server-latency: - '0' status: diff --git a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control_async.test_role_assignment.yaml b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control_async.test_role_assignment.yaml index 53160ad65d9c..006223d51a36 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control_async.test_role_assignment.yaml +++ b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control_async.test_role_assignment.yaml @@ -7,9 +7,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview response: body: string: OK @@ -23,48 +23,48 @@ interactions: resource="https://managedhsm.azure.net" x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210407-3-27236ed1-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-server-latency: '0' status: code: 401 message: Unauthorized - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview response: body: string: '{"value":[{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","name":"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/keys/backup/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Backup","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17","name":"33413926-3206-4cdd-b39a-83574fe37a17","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Crypto Service Encryption","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c","name":"21dbd100-6940-42c2-9190-5d6cb909625c","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/release/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Crypto Service Release","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","name":"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Backup User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17","name":"33413926-3206-4cdd-b39a-83574fe37a17","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Crypto Service Encryption User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c","name":"21dbd100-6940-42c2-9190-5d6cb909625c","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/release/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Crypto Service Release User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","name":"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Auditor","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4","name":"4bd23610-cdcf-4971-bdee-bdc562cc28e4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleAssignments/delete/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/release/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/release/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action","Microsoft.KeyVault/managedHsm/rng/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","name":"515eb02d-2335-4d2d-92f2-b1cbdf9c3778","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete","Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action","Microsoft.KeyVault/managedHsm/keys/export/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Officer","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","name":"a290e904-7015-4bba-90c8-60543313cdb4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/securitydomain/download/action","Microsoft.KeyVault/managedHsm/securitydomain/download/read","Microsoft.KeyVault/managedHsm/securitydomain/upload/action","Microsoft.KeyVault/managedHsm/securitydomain/upload/read","Microsoft.KeyVault/managedHsm/securitydomain/transferkey/read","Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/restore/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/restore/status/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"}]}' headers: cache-control: no-cache - content-length: '6590' + content-length: '6648' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210407-3-27236ed1-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: northeurope - x-ms-server-latency: '0' + x-ms-keyvault-region: westus + x-ms-server-latency: '1' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview - request: body: '{"properties": {"roleDefinitionId": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8", "principalId": "service-principal-id"}}' @@ -76,9 +76,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT - uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments/some-uuid?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments/some-uuid?api-version=7.3-preview response: body: string: '{"id":"/providers/Microsoft.Authorization/roleAssignments/some-uuid","name":"some-uuid","properties":{"principalId":"service-principal-id","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}' @@ -91,21 +91,21 @@ interactions: x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: northeurope - x-ms-server-latency: '66' + x-ms-keyvault-region: westus + x-ms-server-latency: '67' status: code: 201 message: Created - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleAssignments/b3ddb676-ee5b-422f-b4cb-4b8db5b56e66?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleAssignments/574356ba-648b-4588-830b-bb70b53384b5?api-version=7.3-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments/some-uuid?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments/some-uuid?api-version=7.3-preview response: body: string: '{"id":"/providers/Microsoft.Authorization/roleAssignments/some-uuid","name":"some-uuid","properties":{"principalId":"service-principal-id","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}' @@ -117,26 +117,26 @@ interactions: strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210407-3-27236ed1-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: northeurope + x-ms-keyvault-region: westus x-ms-server-latency: '0' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleAssignments/b3ddb676-ee5b-422f-b4cb-4b8db5b56e66?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleAssignments/574356ba-648b-4588-830b-bb70b53384b5?api-version=7.3-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments?api-version=7.3-preview response: body: - string: '{"value":[{"id":"/providers/Microsoft.Authorization/roleAssignments/b80b0b44-26e7-434b-0f6a-fa2fd1b6413e","name":"b80b0b44-26e7-434b-0f6a-fa2fd1b6413e","properties":{"principalId":"af925a48-c0cd-4c15-9130-359e357448eb","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/some-uuid","name":"some-uuid","properties":{"principalId":"service-principal-id","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/7bde12dc-c0a5-4b95-ace3-aac71584f420","name":"7bde12dc-c0a5-4b95-ace3-aac71584f420","properties":{"principalId":"af925a48-c0cd-4c15-9130-359e357448eb","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/54d6a07b-8833-4af2-84c4-e196414a99db","name":"54d6a07b-8833-4af2-84c4-e196414a99db","properties":{"principalId":"af925a48-c0cd-4c15-9130-359e357448eb","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}]}' + string: '{"value":[{"id":"/providers/Microsoft.Authorization/roleAssignments/fc3829ed-d50f-4828-b7d5-6804b903d926","name":"fc3829ed-d50f-4828-b7d5-6804b903d926","properties":{"principalId":"9ef0e031-7cbd-4aab-9db7-33d56e7c0a4c","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/c2b0e95f-3286-4a81-92c4-b93b7bba6611","name":"c2b0e95f-3286-4a81-92c4-b93b7bba6611","properties":{"principalId":"9ef0e031-7cbd-4aab-9db7-33d56e7c0a4c","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/6c1dc4e0-e7d6-0327-1b55-50efea64e56d","name":"6c1dc4e0-e7d6-0327-1b55-50efea64e56d","properties":{"principalId":"9ef0e031-7cbd-4aab-9db7-33d56e7c0a4c","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/some-uuid","name":"some-uuid","properties":{"principalId":"service-principal-id","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}]}' headers: cache-control: no-cache content-length: '1607' @@ -145,23 +145,23 @@ interactions: strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210407-3-27236ed1-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: northeurope + x-ms-keyvault-region: westus x-ms-server-latency: '0' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleAssignments?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleAssignments?api-version=7.3-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments/some-uuid?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments/some-uuid?api-version=7.3-preview response: body: string: '{"id":"/providers/Microsoft.Authorization/roleAssignments/some-uuid","name":"some-uuid","properties":{"principalId":"service-principal-id","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}' @@ -174,24 +174,24 @@ interactions: x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: northeurope - x-ms-server-latency: '57' + x-ms-keyvault-region: westus + x-ms-server-latency: '49' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleAssignments/b3ddb676-ee5b-422f-b4cb-4b8db5b56e66?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleAssignments/574356ba-648b-4588-830b-bb70b53384b5?api-version=7.3-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments?api-version=7.3-preview response: body: - string: '{"value":[{"id":"/providers/Microsoft.Authorization/roleAssignments/b80b0b44-26e7-434b-0f6a-fa2fd1b6413e","name":"b80b0b44-26e7-434b-0f6a-fa2fd1b6413e","properties":{"principalId":"af925a48-c0cd-4c15-9130-359e357448eb","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/7bde12dc-c0a5-4b95-ace3-aac71584f420","name":"7bde12dc-c0a5-4b95-ace3-aac71584f420","properties":{"principalId":"af925a48-c0cd-4c15-9130-359e357448eb","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/54d6a07b-8833-4af2-84c4-e196414a99db","name":"54d6a07b-8833-4af2-84c4-e196414a99db","properties":{"principalId":"af925a48-c0cd-4c15-9130-359e357448eb","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}]}' + string: '{"value":[{"id":"/providers/Microsoft.Authorization/roleAssignments/fc3829ed-d50f-4828-b7d5-6804b903d926","name":"fc3829ed-d50f-4828-b7d5-6804b903d926","properties":{"principalId":"9ef0e031-7cbd-4aab-9db7-33d56e7c0a4c","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/c2b0e95f-3286-4a81-92c4-b93b7bba6611","name":"c2b0e95f-3286-4a81-92c4-b93b7bba6611","properties":{"principalId":"9ef0e031-7cbd-4aab-9db7-33d56e7c0a4c","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/6c1dc4e0-e7d6-0327-1b55-50efea64e56d","name":"6c1dc4e0-e7d6-0327-1b55-50efea64e56d","properties":{"principalId":"9ef0e031-7cbd-4aab-9db7-33d56e7c0a4c","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}]}' headers: cache-control: no-cache content-length: '1208' @@ -200,12 +200,12 @@ interactions: strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210407-3-27236ed1-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: northeurope + x-ms-keyvault-region: westus x-ms-server-latency: '0' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleAssignments?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleAssignments?api-version=7.3-preview version: 1 diff --git a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control_async.test_role_definitions.yaml b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control_async.test_role_definitions.yaml index 25aec681c879..27dc961af317 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control_async.test_role_definitions.yaml +++ b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control_async.test_role_definitions.yaml @@ -7,9 +7,9 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview response: body: string: OK @@ -23,51 +23,51 @@ interactions: resource="https://managedhsm.azure.net" x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210407-3-27236ed1-develop - x-ms-server-latency: '0' + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop + x-ms-server-latency: '1' status: code: 401 message: Unauthorized - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview response: body: string: '{"value":[{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","name":"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/keys/backup/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Backup","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17","name":"33413926-3206-4cdd-b39a-83574fe37a17","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Crypto Service Encryption","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c","name":"21dbd100-6940-42c2-9190-5d6cb909625c","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/release/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Crypto Service Release","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","name":"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Backup User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17","name":"33413926-3206-4cdd-b39a-83574fe37a17","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Crypto Service Encryption User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c","name":"21dbd100-6940-42c2-9190-5d6cb909625c","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/release/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Crypto Service Release User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","name":"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Auditor","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4","name":"4bd23610-cdcf-4971-bdee-bdc562cc28e4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleAssignments/delete/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/release/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/release/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action","Microsoft.KeyVault/managedHsm/rng/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","name":"515eb02d-2335-4d2d-92f2-b1cbdf9c3778","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete","Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action","Microsoft.KeyVault/managedHsm/keys/export/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Officer","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","name":"a290e904-7015-4bba-90c8-60543313cdb4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/securitydomain/download/action","Microsoft.KeyVault/managedHsm/securitydomain/download/read","Microsoft.KeyVault/managedHsm/securitydomain/upload/action","Microsoft.KeyVault/managedHsm/securitydomain/upload/read","Microsoft.KeyVault/managedHsm/securitydomain/transferkey/read","Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/restore/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/restore/status/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"}]}' headers: cache-control: no-cache - content-length: '6590' + content-length: '6648' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210407-3-27236ed1-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: northeurope - x-ms-server-latency: '1' + x-ms-keyvault-region: westus + x-ms-server-latency: '0' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview - request: - body: '{"properties": {"roleName": "role-named15f1369", "permissions": [{"dataActions": - ["Microsoft.KeyVault/managedHsm/keys/read/action"]}], "description": "test"}}' + body: '{"properties": {"roleName": "role-named15f1369", "description": "test", + "permissions": [{"dataActions": ["Microsoft.KeyVault/managedHsm/keys/read/action"]}]}}' headers: Accept: - application/json @@ -76,9 +76,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.3-preview response: body: string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"test","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"role-named15f1369","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' @@ -91,15 +91,14 @@ interactions: x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: northeurope - x-ms-server-latency: '46' + x-ms-keyvault-region: westus + x-ms-server-latency: '35' status: code: 201 message: Created - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/1b810a9d-3676-42f3-a28a-d0beeba4b213?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/a44e0299-65df-437e-97eb-fd3e4f5b74e5?api-version=7.3-preview - request: - body: '{"properties": {"permissions": [{"notDataActions": ["Microsoft.KeyVault/managedHsm/keys/read/action"], - "dataActions": []}]}}' + body: '{"properties": {"permissions": [{"dataActions": [], "notDataActions": ["Microsoft.KeyVault/managedHsm/keys/read/action"]}]}}' headers: Accept: - application/json @@ -108,9 +107,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.3-preview response: body: string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' @@ -123,57 +122,57 @@ interactions: x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: northeurope - x-ms-server-latency: '54' + x-ms-keyvault-region: westus + x-ms-server-latency: '60' status: code: 201 message: Created - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/1b810a9d-3676-42f3-a28a-d0beeba4b213?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/a44e0299-65df-437e-97eb-fd3e4f5b74e5?api-version=7.3-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview response: body: string: '{"value":[{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","name":"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/keys/backup/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Backup","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17","name":"33413926-3206-4cdd-b39a-83574fe37a17","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Crypto Service Encryption","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c","name":"21dbd100-6940-42c2-9190-5d6cb909625c","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/release/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Crypto Service Release","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","name":"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Backup User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17","name":"33413926-3206-4cdd-b39a-83574fe37a17","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Crypto Service Encryption User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c","name":"21dbd100-6940-42c2-9190-5d6cb909625c","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/release/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Crypto Service Release User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","name":"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Auditor","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4","name":"4bd23610-cdcf-4971-bdee-bdc562cc28e4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleAssignments/delete/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/release/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/release/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action","Microsoft.KeyVault/managedHsm/rng/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","name":"515eb02d-2335-4d2d-92f2-b1cbdf9c3778","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete","Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action","Microsoft.KeyVault/managedHsm/keys/export/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Officer","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","name":"a290e904-7015-4bba-90c8-60543313cdb4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/securitydomain/download/action","Microsoft.KeyVault/managedHsm/securitydomain/download/read","Microsoft.KeyVault/managedHsm/securitydomain/upload/action","Microsoft.KeyVault/managedHsm/securitydomain/upload/read","Microsoft.KeyVault/managedHsm/securitydomain/transferkey/read","Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/restore/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/restore/status/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}]}' headers: cache-control: no-cache - content-length: '7023' + content-length: '7081' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210407-3-27236ed1-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: northeurope - x-ms-server-latency: '1' + x-ms-keyvault-region: westus + x-ms-server-latency: '0' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.3-preview response: body: string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' @@ -185,23 +184,23 @@ interactions: strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210407-3-27236ed1-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: northeurope + x-ms-keyvault-region: westus x-ms-server-latency: '0' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/1b810a9d-3676-42f3-a28a-d0beeba4b213?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/a44e0299-65df-437e-97eb-fd3e4f5b74e5?api-version=7.3-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.3-preview response: body: string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' @@ -214,46 +213,46 @@ interactions: x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: northeurope - x-ms-server-latency: '49' + x-ms-keyvault-region: westus + x-ms-server-latency: '37' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/1b810a9d-3676-42f3-a28a-d0beeba4b213?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/a44e0299-65df-437e-97eb-fd3e4f5b74e5?api-version=7.3-preview - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview response: body: string: '{"value":[{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","name":"7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/keys/backup/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Backup","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17","name":"33413926-3206-4cdd-b39a-83574fe37a17","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Crypto Service Encryption","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c","name":"21dbd100-6940-42c2-9190-5d6cb909625c","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/release/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Crypto Service Release","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","name":"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Backup User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/33413926-3206-4cdd-b39a-83574fe37a17","name":"33413926-3206-4cdd-b39a-83574fe37a17","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Crypto Service Encryption User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625c","name":"21dbd100-6940-42c2-9190-5d6cb909625c","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/release/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Crypto Service Release User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","name":"2c18b078-7c48-4d3a-af88-5a3a1b3f82b3","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Auditor","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/4bd23610-cdcf-4971-bdee-bdc562cc28e4","name":"4bd23610-cdcf-4971-bdee-bdc562cc28e4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleAssignments/delete/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/release/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed + HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/release/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action","Microsoft.KeyVault/managedHsm/rng/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","name":"515eb02d-2335-4d2d-92f2-b1cbdf9c3778","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete","Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action","Microsoft.KeyVault/managedHsm/keys/export/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Officer","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","name":"a290e904-7015-4bba-90c8-60543313cdb4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/securitydomain/download/action","Microsoft.KeyVault/managedHsm/securitydomain/download/read","Microsoft.KeyVault/managedHsm/securitydomain/upload/action","Microsoft.KeyVault/managedHsm/securitydomain/upload/read","Microsoft.KeyVault/managedHsm/securitydomain/transferkey/read","Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/restore/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/restore/status/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"}]}' headers: cache-control: no-cache - content-length: '6590' + content-length: '6648' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210407-3-27236ed1-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: northeurope + x-ms-keyvault-region: westus x-ms-server-latency: '1' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.3-preview version: 1 diff --git a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_backup_client.test_full_backup_and_restore.yaml b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_backup_client.test_full_backup_and_restore.yaml index b93e5dff6319..fd25305031d2 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_backup_client.test_full_backup_and_restore.yaml +++ b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_backup_client.test_full_backup_and_restore.yaml @@ -13,9 +13,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://managedhsm/backup?api-version=7.2 + uri: https://managedhsm/backup?api-version=7.3-preview response: body: string: '' @@ -38,12 +38,12 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-server-latency: - - '0' + - '1' status: code: 401 message: Unauthorized - request: - body: '{"storageResourceUri": "https://storname.blob.core.windows.net/containerebkvpbdw6vhv6bv", + body: '{"storageResourceUri": "https://storname.blob.core.windows.net/containerwty2n6ncthko2zi", "token": "redacted"}' headers: Accept: @@ -53,19 +53,19 @@ interactions: Connection: - keep-alive Content-Length: - - '235' + - '233' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://managedhsm/backup?api-version=7.2 + uri: https://managedhsm/backup?api-version=7.3-preview response: body: - string: '{"status":"InProgress","statusDetails":null,"error":null,"startTime":1623795979,"endTime":null,"jobId":"19a636ea1cd04e73b872fcd250fed223","azureStorageBlobContainerUri":null}' + string: '{"status":"InProgress","statusDetails":null,"error":null,"startTime":1629414019,"endTime":null,"jobId":"d5e3cbf6feea463ca2b85b6c9c9a1b1f","azureStorageBlobContainerUri":null}' headers: azure-asyncoperation: - - https://managedhsm/backup/19a636ea1cd04e73b872fcd250fed223/pending + - https://managedhsm/backup/d5e3cbf6feea463ca2b85b6c9c9a1b1f/pending cache-control: - no-cache content-length: @@ -75,7 +75,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Tue, 15 Jun 2021 22:26:18 GMT + - Thu, 19 Aug 2021 23:00:18 GMT server: - Kestrel strict-transport-security: @@ -87,9 +87,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - canadacentral + - westus x-ms-server-latency: - - '3112' + - '1953' status: code: 202 message: '' @@ -103,12 +103,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/backup/19a636ea1cd04e73b872fcd250fed223/pending + uri: https://managedhsm/backup/d5e3cbf6feea463ca2b85b6c9c9a1b1f/pending response: body: - string: '{"azureStorageBlobContainerUri":"https://storname.blob.core.windows.net/containerebkvpbdw6vhv6bv/mhsm-mcpatinotesthsm-2021061522261918","endTime":1623795989,"error":null,"jobId":"19a636ea1cd04e73b872fcd250fed223","startTime":1623795979,"status":"Succeeded","statusDetails":null}' + string: '{"azureStorageBlobContainerUri":"https://storname.blob.core.windows.net/containerwty2n6ncthko2zi/mhsm-mcpatinotesthsm-2021081923001939","endTime":1629414027,"error":null,"jobId":"d5e3cbf6feea463ca2b85b6c9c9a1b1f","startTime":1629414019,"status":"Succeeded","statusDetails":null}' headers: cache-control: - no-cache @@ -119,7 +119,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Tue, 15 Jun 2021 22:26:31 GMT + - Thu, 19 Aug 2021 23:00:30 GMT server: - Kestrel strict-transport-security: @@ -129,19 +129,19 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210520-1-d6634624-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - canadacentral + - westus x-ms-server-latency: - - '2436' + - '1822' status: code: 200 message: OK - request: - body: '{"sasTokenParameters": {"storageResourceUri": "https://storname.blob.core.windows.net/containerebkvpbdw6vhv6bv", - "token": "redacted"}, "folderToRestore": "mhsm-mcpatinotesthsm-2021061522261918"}' + body: '{"sasTokenParameters": {"storageResourceUri": "https://storname.blob.core.windows.net/containerwty2n6ncthko2zi", + "token": "redacted"}, "folderToRestore": "mhsm-mcpatinotesthsm-2021081923001939"}' headers: Accept: - application/json @@ -150,19 +150,19 @@ interactions: Connection: - keep-alive Content-Length: - - '319' + - '317' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT - uri: https://managedhsm/restore?api-version=7.2 + uri: https://managedhsm/restore?api-version=7.3-preview response: body: - string: '{"endTime":null,"error":null,"jobId":"a66229e63f5b4dc8864e224990a03f39","startTime":1623795994,"status":"InProgress","statusDetails":null}' + string: '{"endTime":null,"error":null,"jobId":"7b31530810a44958ae8ee7b25d97eda2","startTime":1629414033,"status":"InProgress","statusDetails":null}' headers: azure-asyncoperation: - - https://managedhsm/restore/a66229e63f5b4dc8864e224990a03f39/pending + - https://managedhsm/restore/7b31530810a44958ae8ee7b25d97eda2/pending cache-control: - no-cache content-length: @@ -172,7 +172,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Tue, 15 Jun 2021 22:26:34 GMT + - Thu, 19 Aug 2021 23:00:33 GMT server: - Kestrel strict-transport-security: @@ -184,9 +184,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - canadacentral + - westus x-ms-server-latency: - - '2762' + - '2731' status: code: 202 message: '' @@ -200,12 +200,104 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://managedhsm/restore/7b31530810a44958ae8ee7b25d97eda2/pending + response: + body: + string: '{"endTime":null,"error":null,"jobId":"7b31530810a44958ae8ee7b25d97eda2","startTime":1629414033,"status":"InProgress","statusDetails":null}' + headers: + cache-control: + - no-cache + content-length: + - '138' + content-security-policy: + - default-src 'self' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 19 Aug 2021 23:00:45 GMT + server: + - Kestrel + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-ms-build-version: + - 1.0.20210712-1-6ae2ae9e-develop + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; + x-ms-keyvault-region: + - westus + x-ms-server-latency: + - '1768' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://managedhsm/restore/7b31530810a44958ae8ee7b25d97eda2/pending + response: + body: + string: '{"endTime":null,"error":null,"jobId":"7b31530810a44958ae8ee7b25d97eda2","startTime":1629414033,"status":"InProgress","statusDetails":null}' + headers: + cache-control: + - no-cache + content-length: + - '138' + content-security-policy: + - default-src 'self' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 19 Aug 2021 23:00:53 GMT + server: + - Kestrel + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-ms-build-version: + - 1.0.20210712-1-6ae2ae9e-develop + x-ms-keyvault-network-info: + - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; + x-ms-keyvault-region: + - westus + x-ms-server-latency: + - '2262' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/restore/a66229e63f5b4dc8864e224990a03f39/pending + uri: https://managedhsm/restore/7b31530810a44958ae8ee7b25d97eda2/pending response: body: - string: '{"endTime":null,"error":null,"jobId":"a66229e63f5b4dc8864e224990a03f39","startTime":1623795994,"status":"InProgress","statusDetails":null}' + string: '{"endTime":null,"error":null,"jobId":"7b31530810a44958ae8ee7b25d97eda2","startTime":1629414033,"status":"InProgress","statusDetails":null}' headers: cache-control: - no-cache @@ -216,7 +308,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Tue, 15 Jun 2021 22:26:46 GMT + - Thu, 19 Aug 2021 23:00:59 GMT server: - Kestrel strict-transport-security: @@ -226,13 +318,13 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210520-1-d6634624-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - canadacentral + - westus x-ms-server-latency: - - '2334' + - '1862' status: code: 200 message: OK @@ -246,12 +338,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/restore/a66229e63f5b4dc8864e224990a03f39/pending + uri: https://managedhsm/restore/7b31530810a44958ae8ee7b25d97eda2/pending response: body: - string: '{"endTime":1623796011,"error":null,"jobId":"a66229e63f5b4dc8864e224990a03f39","startTime":1623795994,"status":"Succeeded","statusDetails":null}' + string: '{"endTime":1629414066,"error":null,"jobId":"7b31530810a44958ae8ee7b25d97eda2","startTime":1629414033,"status":"Succeeded","statusDetails":null}' headers: cache-control: - no-cache @@ -262,7 +354,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Tue, 15 Jun 2021 22:26:54 GMT + - Thu, 19 Aug 2021 23:01:07 GMT server: - Kestrel strict-transport-security: @@ -272,13 +364,13 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210520-1-d6634624-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - canadacentral + - westus x-ms-server-latency: - - '2689' + - '1812' status: code: 200 message: OK diff --git a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_backup_client.test_selective_key_restore.yaml b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_backup_client.test_selective_key_restore.yaml index a465fa45dd81..3d83b16eb97f 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_backup_client.test_selective_key_restore.yaml +++ b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_backup_client.test_selective_key_restore.yaml @@ -13,7 +13,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b3 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://managedhsm/keys/selective-restore-test-keya85a1290/create?api-version=7.3-preview response: @@ -38,7 +38,7 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-server-latency: - - '1' + - '0' status: code: 401 message: Unauthorized @@ -56,17 +56,17 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b3 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://managedhsm/keys/selective-restore-test-keya85a1290/create?api-version=7.3-preview response: body: - string: '{"attributes":{"created":1625694978,"enabled":true,"exportable":false,"recoverableDays":90,"recoveryLevel":"Recoverable+Purgeable","updated":1625694978},"key":{"e":"AQAB","key_ops":["wrapKey","decrypt","encrypt","unwrapKey","sign","verify"],"kid":"https://managedhsm/keys/selective-restore-test-keya85a1290/6eef0b1107700ad5274db9b04f0d40d1","kty":"RSA-HSM","n":"nWaMwiHqGjchzFJhEJ2OBh1rDVDBvX183EBdrmFY4-o9NuD9tyvOuTEHdgPHQW7_147Tw4h2oyxb7yF_OSloBCkQbJjRBSomeDGww6PpL6JohTUY1KQtNQNth9dBJnOTFuFM4ZFvUFiAP3PgxP09zHzuUAyJq-BtrRKzsJcSZui3RySOdZ3hWvFi5bsQjnD9YcTRfvCPoyTMnK9le0vcDGTV0Av1RT3PjQIh7g7ZmChclxw64DmRaZo-PY4qOpJQ_8835yKjMyyVVwyTbaqLepRxKOHts12835V8GZXgrfOGYweON6MKdLH1QXpgOFB8NsZ6CknD-pNeevEG-9dozQ"}}' + string: '{"attributes":{"created":1629414147,"enabled":true,"exportable":false,"recoverableDays":7,"recoveryLevel":"CustomizedRecoverable+Purgeable","updated":1629414147},"key":{"e":"AQAB","key_ops":["wrapKey","decrypt","encrypt","unwrapKey","sign","verify"],"kid":"https://managedhsm/keys/selective-restore-test-keya85a1290/6d966201987a4cf43257223feec78805","kty":"RSA-HSM","n":"3cBWeKRC9ANOVLMS_tKOLHpbwP-Q-RjG3p0N8wO3-CD3xdyUV3R6O5vS_IrTp3MmAq0bQod1r8AH-4vj1cU_rgxwwMD6y4aRQo9uRGWVUiAps1VGg7lt8OGsqj9z2gfaVOqJ9_Efxjjj6VMmamLVK7MoKt8IL98sXEeoTtyGH8dsFuZCIfwsUUGwnhqjx4OqtvXBv4YHXF4_Jrvhna5U5PuUxvC15uAfUuxs5C2JmamArBj6bwpsipCB_Ok1jprgBogJKON-b5VVktTfUHikoAFB8mwOBn5Ph7qojY2Ow-8nG7SGOTQd9B5xKWMx2I-I0gGKyyRmfDFKkLCU3Mto3Q"}}' headers: cache-control: - no-cache content-length: - - '733' + - '742' content-security-policy: - default-src 'self' content-type: @@ -82,7 +82,7 @@ interactions: x-ms-keyvault-region: - westus x-ms-server-latency: - - '712' + - '214' status: code: 200 message: OK @@ -100,9 +100,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://managedhsm/backup?api-version=7.2 + uri: https://managedhsm/backup?api-version=7.3-preview response: body: string: '' @@ -130,7 +130,7 @@ interactions: code: 401 message: Unauthorized - request: - body: '{"storageResourceUri": "https://storname.blob.core.windows.net/containerxc4galybzz67xti", + body: '{"storageResourceUri": "https://storname.blob.core.windows.net/container26up2h4osliwqwq", "token": "redacted"}' headers: Accept: @@ -144,15 +144,15 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://managedhsm/backup?api-version=7.2 + uri: https://managedhsm/backup?api-version=7.3-preview response: body: - string: '{"status":"InProgress","statusDetails":null,"error":null,"startTime":1625694981,"endTime":null,"jobId":"df7cedb741334fb49c06442ee2246abd","azureStorageBlobContainerUri":null}' + string: '{"status":"InProgress","statusDetails":null,"error":null,"startTime":1629414149,"endTime":null,"jobId":"79458d1abcc94d3881b4a8301ddf721c","azureStorageBlobContainerUri":null}' headers: azure-asyncoperation: - - https://managedhsm/backup/df7cedb741334fb49c06442ee2246abd/pending + - https://managedhsm/backup/79458d1abcc94d3881b4a8301ddf721c/pending cache-control: - no-cache content-length: @@ -162,7 +162,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 07 Jul 2021 21:56:21 GMT + - Thu, 19 Aug 2021 23:02:29 GMT server: - Kestrel strict-transport-security: @@ -176,7 +176,7 @@ interactions: x-ms-keyvault-region: - westus x-ms-server-latency: - - '2097' + - '1990' status: code: 202 message: '' @@ -190,12 +190,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/backup/df7cedb741334fb49c06442ee2246abd/pending + uri: https://managedhsm/backup/79458d1abcc94d3881b4a8301ddf721c/pending response: body: - string: '{"azureStorageBlobContainerUri":"https://storname.blob.core.windows.net/containerxc4galybzz67xti/mhsm-mcpatinotesthsm-2021070721562154","endTime":1625694989,"error":null,"jobId":"df7cedb741334fb49c06442ee2246abd","startTime":1625694981,"status":"Succeeded","statusDetails":null}' + string: '{"azureStorageBlobContainerUri":"https://storname.blob.core.windows.net/container26up2h4osliwqwq/mhsm-mcpatinotesthsm-2021081923022989","endTime":1629414157,"error":null,"jobId":"79458d1abcc94d3881b4a8301ddf721c","startTime":1629414149,"status":"Succeeded","statusDetails":null}' headers: cache-control: - no-cache @@ -206,7 +206,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 07 Jul 2021 21:56:32 GMT + - Thu, 19 Aug 2021 23:02:41 GMT server: - Kestrel strict-transport-security: @@ -216,19 +216,19 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210605-1-ffd80f31-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - westus x-ms-server-latency: - - '1751' + - '1750' status: code: 200 message: OK - request: - body: '{"sasTokenParameters": {"storageResourceUri": "https://storname.blob.core.windows.net/containerxc4galybzz67xti", - "token": "redacted"}, "folder": "mhsm-mcpatinotesthsm-2021070721562154"}' + body: '{"sasTokenParameters": {"storageResourceUri": "https://storname.blob.core.windows.net/container26up2h4osliwqwq", + "token": "redacted"}, "folder": "mhsm-mcpatinotesthsm-2021081923022989"}' headers: Accept: - application/json @@ -241,15 +241,15 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT - uri: https://managedhsm/keys/selective-restore-test-keya85a1290/restore?api-version=7.2 + uri: https://managedhsm/keys/selective-restore-test-keya85a1290/restore?api-version=7.3-preview response: body: - string: '{"endTime":null,"error":null,"jobId":"5d4b38736996422e84a9cb0269a1b0ba","startTime":1625694995,"status":"InProgress","statusDetails":null}' + string: '{"endTime":null,"error":null,"jobId":"112f082ed9894458b21266d17a42d4ce","startTime":1629414163,"status":"InProgress","statusDetails":null}' headers: azure-asyncoperation: - - https://managedhsm/restore/5d4b38736996422e84a9cb0269a1b0ba/pending + - https://managedhsm/restore/112f082ed9894458b21266d17a42d4ce/pending cache-control: - no-cache content-length: @@ -259,7 +259,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 07 Jul 2021 21:56:34 GMT + - Thu, 19 Aug 2021 23:02:43 GMT server: - Kestrel strict-transport-security: @@ -273,7 +273,7 @@ interactions: x-ms-keyvault-region: - westus x-ms-server-latency: - - '1912' + - '1911' status: code: 202 message: '' @@ -287,12 +287,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/restore/5d4b38736996422e84a9cb0269a1b0ba/pending + uri: https://managedhsm/restore/112f082ed9894458b21266d17a42d4ce/pending response: body: - string: '{"endTime":null,"error":null,"jobId":"5d4b38736996422e84a9cb0269a1b0ba","startTime":1625694995,"status":"InProgress","statusDetails":null}' + string: '{"endTime":null,"error":null,"jobId":"112f082ed9894458b21266d17a42d4ce","startTime":1629414163,"status":"InProgress","statusDetails":null}' headers: cache-control: - no-cache @@ -303,7 +303,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 07 Jul 2021 21:56:46 GMT + - Thu, 19 Aug 2021 23:02:55 GMT server: - Kestrel strict-transport-security: @@ -313,13 +313,13 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210605-1-ffd80f31-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - westus x-ms-server-latency: - - '1685' + - '1706' status: code: 200 message: OK @@ -333,12 +333,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/restore/5d4b38736996422e84a9cb0269a1b0ba/pending + uri: https://managedhsm/restore/112f082ed9894458b21266d17a42d4ce/pending response: body: - string: '{"endTime":1625695010,"error":null,"jobId":"5d4b38736996422e84a9cb0269a1b0ba","startTime":1625694995,"status":"Succeeded","statusDetails":"Number + string: '{"endTime":1629414179,"error":null,"jobId":"112f082ed9894458b21266d17a42d4ce","startTime":1629414163,"status":"Succeeded","statusDetails":"Number of successful key versions restored: 0, Number of key versions could not overwrite: 2"}' headers: @@ -351,7 +351,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 07 Jul 2021 21:56:52 GMT + - Thu, 19 Aug 2021 23:03:01 GMT server: - Kestrel strict-transport-security: @@ -361,13 +361,13 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210605-1-ffd80f31-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - westus x-ms-server-latency: - - '1678' + - '1785' status: code: 200 message: OK @@ -383,17 +383,56 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b3 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://managedhsm/keys/selective-restore-test-keya85a1290?api-version=7.3-preview + response: + body: + string: '{"error":{"code":"Conflict","message":"User triggered Restore operation + is in progress. Retry after the restore operation (Activity ID: 9aec0070-0141-11ec-a114-00224806f988)"}}' + headers: + cache-control: + - no-cache + content-length: + - '176' + content-security-policy: + - default-src 'self' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-ms-server-latency: + - '0' + status: + code: 409 + message: '' +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-keyvault-keys/4.5.0b3 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://managedhsm/keys/selective-restore-test-keya85a1290?api-version=7.3-preview response: body: - string: '{"attributes":{"created":1625694978,"enabled":true,"exportable":false,"recoverableDays":90,"recoveryLevel":"Recoverable+Purgeable","updated":1625694978},"deletedDate":1625695014,"key":{"e":"AQAB","key_ops":["wrapKey","encrypt","decrypt","unwrapKey","sign","verify"],"kid":"https://managedhsm/keys/selective-restore-test-keya85a1290/6eef0b1107700ad5274db9b04f0d40d1","kty":"RSA-HSM","n":"nWaMwiHqGjchzFJhEJ2OBh1rDVDBvX183EBdrmFY4-o9NuD9tyvOuTEHdgPHQW7_147Tw4h2oyxb7yF_OSloBCkQbJjRBSomeDGww6PpL6JohTUY1KQtNQNth9dBJnOTFuFM4ZFvUFiAP3PgxP09zHzuUAyJq-BtrRKzsJcSZui3RySOdZ3hWvFi5bsQjnD9YcTRfvCPoyTMnK9le0vcDGTV0Av1RT3PjQIh7g7ZmChclxw64DmRaZo-PY4qOpJQ_8835yKjMyyVVwyTbaqLepRxKOHts12835V8GZXgrfOGYweON6MKdLH1QXpgOFB8NsZ6CknD-pNeevEG-9dozQ"},"recoveryId":"https://managedhsm/deletedkeys/selective-restore-test-keya85a1290","scheduledPurgeDate":1633471014}' + string: '{"attributes":{"created":1629414147,"enabled":true,"exportable":false,"recoverableDays":7,"recoveryLevel":"CustomizedRecoverable+Purgeable","updated":1629414147},"deletedDate":1629414185,"key":{"e":"AQAB","key_ops":["wrapKey","encrypt","decrypt","unwrapKey","sign","verify"],"kid":"https://managedhsm/keys/selective-restore-test-keya85a1290/6d966201987a4cf43257223feec78805","kty":"RSA-HSM","n":"3cBWeKRC9ANOVLMS_tKOLHpbwP-Q-RjG3p0N8wO3-CD3xdyUV3R6O5vS_IrTp3MmAq0bQod1r8AH-4vj1cU_rgxwwMD6y4aRQo9uRGWVUiAps1VGg7lt8OGsqj9z2gfaVOqJ9_Efxjjj6VMmamLVK7MoKt8IL98sXEeoTtyGH8dsFuZCIfwsUUGwnhqjx4OqtvXBv4YHXF4_Jrvhna5U5PuUxvC15uAfUuxs5C2JmamArBj6bwpsipCB_Ok1jprgBogJKON-b5VVktTfUHikoAFB8mwOBn5Ph7qojY2Ow-8nG7SGOTQd9B5xKWMx2I-I0gGKyyRmfDFKkLCU3Mto3Q"},"recoveryId":"https://managedhsm/deletedkeys/selective-restore-test-keya85a1290","scheduledPurgeDate":1630018985}' headers: cache-control: - no-cache content-length: - - '897' + - '906' content-security-policy: - default-src 'self' content-type: @@ -409,7 +448,7 @@ interactions: x-ms-keyvault-region: - westus x-ms-server-latency: - - '160' + - '166' status: code: 200 message: OK @@ -423,17 +462,17 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b3 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://managedhsm/deletedkeys/selective-restore-test-keya85a1290?api-version=7.3-preview response: body: - string: '{"attributes":{"created":1625694978,"enabled":true,"exportable":false,"recoverableDays":90,"recoveryLevel":"Recoverable+Purgeable","updated":1625694978},"deletedDate":1625695014,"key":{"e":"AQAB","key_ops":["verify","sign","unwrapKey","encrypt","decrypt","wrapKey"],"kid":"https://managedhsm/keys/selective-restore-test-keya85a1290/6eef0b1107700ad5274db9b04f0d40d1","kty":"RSA-HSM","n":"nWaMwiHqGjchzFJhEJ2OBh1rDVDBvX183EBdrmFY4-o9NuD9tyvOuTEHdgPHQW7_147Tw4h2oyxb7yF_OSloBCkQbJjRBSomeDGww6PpL6JohTUY1KQtNQNth9dBJnOTFuFM4ZFvUFiAP3PgxP09zHzuUAyJq-BtrRKzsJcSZui3RySOdZ3hWvFi5bsQjnD9YcTRfvCPoyTMnK9le0vcDGTV0Av1RT3PjQIh7g7ZmChclxw64DmRaZo-PY4qOpJQ_8835yKjMyyVVwyTbaqLepRxKOHts12835V8GZXgrfOGYweON6MKdLH1QXpgOFB8NsZ6CknD-pNeevEG-9dozQ"},"recoveryId":"https://managedhsm/deletedkeys/selective-restore-test-keya85a1290","scheduledPurgeDate":1633471014}' + string: '{"attributes":{"created":1629414147,"enabled":true,"exportable":false,"recoverableDays":7,"recoveryLevel":"CustomizedRecoverable+Purgeable","updated":1629414147},"deletedDate":1629414185,"key":{"e":"AQAB","key_ops":["verify","sign","unwrapKey","encrypt","decrypt","wrapKey"],"kid":"https://managedhsm/keys/selective-restore-test-keya85a1290/6d966201987a4cf43257223feec78805","kty":"RSA-HSM","n":"3cBWeKRC9ANOVLMS_tKOLHpbwP-Q-RjG3p0N8wO3-CD3xdyUV3R6O5vS_IrTp3MmAq0bQod1r8AH-4vj1cU_rgxwwMD6y4aRQo9uRGWVUiAps1VGg7lt8OGsqj9z2gfaVOqJ9_Efxjjj6VMmamLVK7MoKt8IL98sXEeoTtyGH8dsFuZCIfwsUUGwnhqjx4OqtvXBv4YHXF4_Jrvhna5U5PuUxvC15uAfUuxs5C2JmamArBj6bwpsipCB_Ok1jprgBogJKON-b5VVktTfUHikoAFB8mwOBn5Ph7qojY2Ow-8nG7SGOTQd9B5xKWMx2I-I0gGKyyRmfDFKkLCU3Mto3Q"},"recoveryId":"https://managedhsm/deletedkeys/selective-restore-test-keya85a1290","scheduledPurgeDate":1630018985}' headers: cache-control: - no-cache content-length: - - '897' + - '906' content-security-policy: - default-src 'self' content-type: @@ -445,13 +484,13 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210605-1-ffd80f31-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - westus x-ms-server-latency: - - '34' + - '32' status: code: 200 message: OK @@ -467,7 +506,7 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b3 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://managedhsm/deletedkeys/selective-restore-test-keya85a1290?api-version=7.3-preview response: @@ -493,7 +532,7 @@ interactions: x-ms-keyvault-region: - westus x-ms-server-latency: - - '107' + - '97' status: code: 204 message: '' diff --git a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_backup_client_async.test_full_backup_and_restore.yaml b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_backup_client_async.test_full_backup_and_restore.yaml index 6dcf5ba873e7..4b73f67628c6 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_backup_client_async.test_full_backup_and_restore.yaml +++ b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_backup_client_async.test_full_backup_and_restore.yaml @@ -9,9 +9,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://managedhsm/backup?api-version=7.2 + uri: https://managedhsm/backup?api-version=7.3-preview response: body: string: '' @@ -29,159 +29,159 @@ interactions: status: code: 401 message: Unauthorized - url: https://mcpatinotesthsm.managedhsm.azure.net/backup?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/backup?api-version=7.3-preview - request: - body: '{"storageResourceUri": "https://storname.blob.core.windows.net/containerwt3qjyb4eluro3w", + body: '{"storageResourceUri": "https://storname.blob.core.windows.net/containernd7ravf72lgrheo", "token": "redacted"}' headers: Accept: - application/json Content-Length: - - '233' + - '235' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://managedhsm/backup?api-version=7.2 + uri: https://managedhsm/backup?api-version=7.3-preview response: body: - string: '{"status":"InProgress","statusDetails":null,"error":null,"startTime":1623796131,"endTime":null,"jobId":"47fa9b06eeca494d901a9768bc4ecb15","azureStorageBlobContainerUri":null}' + string: '{"status":"InProgress","statusDetails":null,"error":null,"startTime":1629414301,"endTime":null,"jobId":"f9333235639440ffb6e297d8e702eeef","azureStorageBlobContainerUri":null}' headers: - azure-asyncoperation: https://managedhsm/backup/47fa9b06eeca494d901a9768bc4ecb15/pending + azure-asyncoperation: https://managedhsm/backup/f9333235639440ffb6e297d8e702eeef/pending cache-control: no-cache content-length: '174' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Tue, 15 Jun 2021 22:28:50 GMT + date: Thu, 19 Aug 2021 23:05:01 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: canadacentral - x-ms-server-latency: '2503' + x-ms-keyvault-region: westus + x-ms-server-latency: '2100' status: code: 202 message: '' - url: https://mcpatinotesthsm.managedhsm.azure.net/backup?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/backup?api-version=7.3-preview - request: body: null headers: User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/backup/47fa9b06eeca494d901a9768bc4ecb15/pending + uri: https://managedhsm/backup/f9333235639440ffb6e297d8e702eeef/pending response: body: - string: '{"azureStorageBlobContainerUri":"https://storname.blob.core.windows.net/containerwt3qjyb4eluro3w/mhsm-mcpatinotesthsm-2021061522285112","endTime":1623796140,"error":null,"jobId":"47fa9b06eeca494d901a9768bc4ecb15","startTime":1623796131,"status":"Succeeded","statusDetails":null}' + string: '{"azureStorageBlobContainerUri":"https://storname.blob.core.windows.net/containernd7ravf72lgrheo/mhsm-mcpatinotesthsm-2021081923050180","endTime":1629414309,"error":null,"jobId":"f9333235639440ffb6e297d8e702eeef","startTime":1629414301,"status":"Succeeded","statusDetails":null}' headers: cache-control: no-cache content-length: '294' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Tue, 15 Jun 2021 22:29:03 GMT + date: Thu, 19 Aug 2021 23:05:13 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210520-1-d6634624-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: canadacentral - x-ms-server-latency: '2158' + x-ms-keyvault-region: westus + x-ms-server-latency: '1839' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/backup/47fa9b06eeca494d901a9768bc4ecb15/pending + url: https://mcpatinotesthsm.managedhsm.azure.net/backup/f9333235639440ffb6e297d8e702eeef/pending - request: - body: '{"sasTokenParameters": {"storageResourceUri": "https://storname.blob.core.windows.net/containerwt3qjyb4eluro3w", - "token": "redacted"}, "folderToRestore": "mhsm-mcpatinotesthsm-2021061522285112"}' + body: '{"sasTokenParameters": {"storageResourceUri": "https://storname.blob.core.windows.net/containernd7ravf72lgrheo", + "token": "redacted"}, "folderToRestore": "mhsm-mcpatinotesthsm-2021081923050180"}' headers: Accept: - application/json Content-Length: - - '317' + - '319' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT - uri: https://managedhsm/restore?api-version=7.2 + uri: https://managedhsm/restore?api-version=7.3-preview response: body: - string: '{"endTime":null,"error":null,"jobId":"ddd5713e65594a7da0f01a23de7216b2","startTime":1623796145,"status":"InProgress","statusDetails":null}' + string: '{"endTime":null,"error":null,"jobId":"96b140986aa54c25b853ab69ea06dbb3","startTime":1629414315,"status":"InProgress","statusDetails":null}' headers: - azure-asyncoperation: https://managedhsm/restore/ddd5713e65594a7da0f01a23de7216b2/pending + azure-asyncoperation: https://managedhsm/restore/96b140986aa54c25b853ab69ea06dbb3/pending cache-control: no-cache content-length: '138' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Tue, 15 Jun 2021 22:29:05 GMT + date: Thu, 19 Aug 2021 23:05:14 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: canadacentral - x-ms-server-latency: '2440' + x-ms-keyvault-region: westus + x-ms-server-latency: '2039' status: code: 202 message: '' - url: https://mcpatinotesthsm.managedhsm.azure.net/restore?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/restore?api-version=7.3-preview - request: body: null headers: User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/restore/ddd5713e65594a7da0f01a23de7216b2/pending + uri: https://managedhsm/restore/96b140986aa54c25b853ab69ea06dbb3/pending response: body: - string: '{"endTime":null,"error":null,"jobId":"ddd5713e65594a7da0f01a23de7216b2","startTime":1623796145,"status":"InProgress","statusDetails":null}' + string: '{"endTime":null,"error":null,"jobId":"96b140986aa54c25b853ab69ea06dbb3","startTime":1629414315,"status":"InProgress","statusDetails":null}' headers: cache-control: no-cache content-length: '138' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Tue, 15 Jun 2021 22:29:17 GMT + date: Thu, 19 Aug 2021 23:05:27 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210520-1-d6634624-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: canadacentral - x-ms-server-latency: '2234' + x-ms-keyvault-region: westus + x-ms-server-latency: '1739' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/restore/ddd5713e65594a7da0f01a23de7216b2/pending + url: https://mcpatinotesthsm.managedhsm.azure.net/restore/96b140986aa54c25b853ab69ea06dbb3/pending - request: body: null headers: User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/restore/ddd5713e65594a7da0f01a23de7216b2/pending + uri: https://managedhsm/restore/96b140986aa54c25b853ab69ea06dbb3/pending response: body: - string: '{"endTime":1623796163,"error":null,"jobId":"ddd5713e65594a7da0f01a23de7216b2","startTime":1623796145,"status":"Succeeded","statusDetails":null}' + string: '{"endTime":1629414331,"error":null,"jobId":"96b140986aa54c25b853ab69ea06dbb3","startTime":1629414315,"status":"Succeeded","statusDetails":null}' headers: cache-control: no-cache content-length: '143' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Tue, 15 Jun 2021 22:29:25 GMT + date: Thu, 19 Aug 2021 23:05:35 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210520-1-d6634624-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: canadacentral - x-ms-server-latency: '2448' + x-ms-keyvault-region: westus + x-ms-server-latency: '2744' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/restore/ddd5713e65594a7da0f01a23de7216b2/pending + url: https://mcpatinotesthsm.managedhsm.azure.net/restore/96b140986aa54c25b853ab69ea06dbb3/pending version: 1 diff --git a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_backup_client_async.test_selective_key_restore.yaml b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_backup_client_async.test_selective_key_restore.yaml index 4760b400e5bb..2406dc34ade3 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_backup_client_async.test_selective_key_restore.yaml +++ b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_backup_client_async.test_selective_key_restore.yaml @@ -9,7 +9,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b3 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://managedhsm/keys/selective-restore-test-key20e5150d/create?api-version=7.3-preview response: @@ -25,7 +25,7 @@ interactions: resource="https://managedhsm.azure.net" x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-server-latency: '1' + x-ms-server-latency: '0' status: code: 401 message: Unauthorized @@ -40,15 +40,15 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b3 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://managedhsm/keys/selective-restore-test-key20e5150d/create?api-version=7.3-preview response: body: - string: '{"attributes":{"created":1625695065,"enabled":true,"exportable":false,"recoverableDays":90,"recoveryLevel":"Recoverable+Purgeable","updated":1625695065},"key":{"e":"AQAB","key_ops":["wrapKey","decrypt","encrypt","unwrapKey","sign","verify"],"kid":"https://managedhsm/keys/selective-restore-test-key20e5150d/7ced054c63e508d43eb741d81a13ac56","kty":"RSA-HSM","n":"wbjS82bccP_ogiOpb--PiWffG686WBZUT7pM95teMoXK-IT4Y-ukDBwSLX0DYmqHpFbqPxw9_sywYxdjkWpwAMS-4__2XhrhAQDFzWG8nxJdcKS7Vw-ro7-qbpR3FXFTGcruhmrVezrPqNSJfeUt9Dcqm3rYg3GlqeuI48kSXSMdnYdqtUR6yR0NlaMWJnKEGKQNK4XvUkfrLRf3XlazSCmiqofWyBAEFm7IWCivEYmW8qhVGmfb_4gl_hQwSppOKRUiQczWUn6u3Y8KMG5t_4s17TLppi6xBtP_cIxLlptiLtGKPTtfhfLoCl_T7Rbsoyh9JzvLOJI-Y6CDyV59lQ"}}' + string: '{"attributes":{"created":1629414444,"enabled":true,"exportable":false,"recoverableDays":7,"recoveryLevel":"CustomizedRecoverable+Purgeable","updated":1629414444},"key":{"e":"AQAB","key_ops":["wrapKey","decrypt","encrypt","unwrapKey","sign","verify"],"kid":"https://managedhsm/keys/selective-restore-test-key20e5150d/9f0cd5a79fa74e0b21a01883881edfe4","kty":"RSA-HSM","n":"muVbim-cu1RPqX3Duqx-se1wzedU2qmg2F2jqo-uAIfH8w_O75cl7GfRFltVg7RxxcEeyUKaT1DltMUg_wgm2P8yfrWykZUJOMEHG_Hv1_gI-BqzGexofkBYRbe9fC1lUM-WHd698JrL0-7843FZgRwsl6rIBN8S6N9JpKWKjmEfwMbyIVWT8yrr6qWsR01exP20cchAF0zQnuPDJSjzvMY2s99cMqmVFej5T-XaqmefFjjUJNdFFNttOnbkOdmRPrVEVakNZD21rgkSH_e0emlut1MMVvf6N2uJCrM0ED2LTiJoMHOUjJAoUcdliylluT9EhRQ3I4ulvTsk7uR0Cw"}}' headers: cache-control: no-cache - content-length: '733' + content-length: '742' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 strict-transport-security: max-age=31536000; includeSubDomains @@ -56,7 +56,7 @@ interactions: x-frame-options: SAMEORIGIN x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: westus - x-ms-server-latency: '264' + x-ms-server-latency: '1008' status: code: 200 message: OK @@ -71,9 +71,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://managedhsm/backup?api-version=7.2 + uri: https://managedhsm/backup?api-version=7.3-preview response: body: string: '' @@ -91,9 +91,9 @@ interactions: status: code: 401 message: Unauthorized - url: https://mcpatinotesthsm.managedhsm.azure.net/backup?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/backup?api-version=7.3-preview - request: - body: '{"storageResourceUri": "https://storname.blob.core.windows.net/containertess2vef4z6mmq4", + body: '{"storageResourceUri": "https://storname.blob.core.windows.net/containert7s2jzifjb3j73x", "token": "redacted"}' headers: Accept: @@ -103,61 +103,61 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://managedhsm/backup?api-version=7.2 + uri: https://managedhsm/backup?api-version=7.3-preview response: body: - string: '{"status":"InProgress","statusDetails":null,"error":null,"startTime":1625695068,"endTime":null,"jobId":"c0d9df1392704400b95e377bc2de7fa0","azureStorageBlobContainerUri":null}' + string: '{"status":"InProgress","statusDetails":null,"error":null,"startTime":1629414448,"endTime":null,"jobId":"e6b9f8c524404bedaca8d068ff750f26","azureStorageBlobContainerUri":null}' headers: - azure-asyncoperation: https://managedhsm/backup/c0d9df1392704400b95e377bc2de7fa0/pending + azure-asyncoperation: https://managedhsm/backup/e6b9f8c524404bedaca8d068ff750f26/pending cache-control: no-cache content-length: '174' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Wed, 07 Jul 2021 21:57:48 GMT + date: Thu, 19 Aug 2021 23:07:27 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: westus - x-ms-server-latency: '1937' + x-ms-server-latency: '2054' status: code: 202 message: '' - url: https://mcpatinotesthsm.managedhsm.azure.net/backup?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/backup?api-version=7.3-preview - request: body: null headers: User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/backup/c0d9df1392704400b95e377bc2de7fa0/pending + uri: https://managedhsm/backup/e6b9f8c524404bedaca8d068ff750f26/pending response: body: - string: '{"azureStorageBlobContainerUri":"https://storname.blob.core.windows.net/containertess2vef4z6mmq4/mhsm-mcpatinotesthsm-2021070721574869","endTime":1625695077,"error":null,"jobId":"c0d9df1392704400b95e377bc2de7fa0","startTime":1625695068,"status":"Succeeded","statusDetails":null}' + string: '{"azureStorageBlobContainerUri":"https://storname.blob.core.windows.net/containert7s2jzifjb3j73x/mhsm-mcpatinotesthsm-2021081923072811","endTime":1629414456,"error":null,"jobId":"e6b9f8c524404bedaca8d068ff750f26","startTime":1629414448,"status":"Succeeded","statusDetails":null}' headers: cache-control: no-cache content-length: '294' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Wed, 07 Jul 2021 21:58:00 GMT + date: Thu, 19 Aug 2021 23:07:39 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210605-1-ffd80f31-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: westus - x-ms-server-latency: '2242' + x-ms-server-latency: '1850' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/backup/c0d9df1392704400b95e377bc2de7fa0/pending + url: https://mcpatinotesthsm.managedhsm.azure.net/backup/e6b9f8c524404bedaca8d068ff750f26/pending - request: - body: '{"sasTokenParameters": {"storageResourceUri": "https://storname.blob.core.windows.net/containertess2vef4z6mmq4", - "token": "redacted"}, "folder": "mhsm-mcpatinotesthsm-2021070721574869"}' + body: '{"sasTokenParameters": {"storageResourceUri": "https://storname.blob.core.windows.net/containert7s2jzifjb3j73x", + "token": "redacted"}, "folder": "mhsm-mcpatinotesthsm-2021081923072811"}' headers: Accept: - application/json @@ -166,68 +166,40 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT - uri: https://managedhsm/keys/selective-restore-test-key20e5150d/restore?api-version=7.2 + uri: https://managedhsm/keys/selective-restore-test-key20e5150d/restore?api-version=7.3-preview response: body: - string: '{"endTime":null,"error":null,"jobId":"ed500d55f77242e181b6ebfdd0d78b68","startTime":1625695083,"status":"InProgress","statusDetails":null}' + string: '{"endTime":null,"error":null,"jobId":"cdd0a70ccda04f609f10067e795471ac","startTime":1629414461,"status":"InProgress","statusDetails":null}' headers: - azure-asyncoperation: https://managedhsm/restore/ed500d55f77242e181b6ebfdd0d78b68/pending + azure-asyncoperation: https://managedhsm/restore/cdd0a70ccda04f609f10067e795471ac/pending cache-control: no-cache content-length: '138' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Wed, 07 Jul 2021 21:58:02 GMT + date: Thu, 19 Aug 2021 23:07:41 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: westus - x-ms-server-latency: '2039' + x-ms-server-latency: '1938' status: code: 202 message: '' - url: https://mcpatinotesthsm.managedhsm.azure.net/keys/selective-restore-test-key20e5150d/restore?api-version=7.2 -- request: - body: null - headers: - User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://managedhsm/restore/ed500d55f77242e181b6ebfdd0d78b68/pending - response: - body: - string: '{"endTime":null,"error":null,"jobId":"ed500d55f77242e181b6ebfdd0d78b68","startTime":1625695083,"status":"InProgress","statusDetails":null}' - headers: - cache-control: no-cache - content-length: '138' - content-security-policy: default-src 'self' - content-type: application/json; charset=utf-8 - date: Wed, 07 Jul 2021 21:58:14 GMT - server: Kestrel - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210605-1-ffd80f31-develop - x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: westus - x-ms-server-latency: '1785' - status: - code: 200 - message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/restore/ed500d55f77242e181b6ebfdd0d78b68/pending + url: https://mcpatinotesthsm.managedhsm.azure.net/keys/selective-restore-test-key20e5150d/restore?api-version=7.3-preview - request: body: null headers: User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/restore/ed500d55f77242e181b6ebfdd0d78b68/pending + uri: https://managedhsm/restore/cdd0a70ccda04f609f10067e795471ac/pending response: body: - string: '{"endTime":1625695098,"error":null,"jobId":"ed500d55f77242e181b6ebfdd0d78b68","startTime":1625695083,"status":"Succeeded","statusDetails":"Number + string: '{"endTime":1629414473,"error":null,"jobId":"cdd0a70ccda04f609f10067e795471ac","startTime":1629414461,"status":"Succeeded","statusDetails":"Number of successful key versions restored: 0, Number of key versions could not overwrite: 2"}' headers: @@ -235,32 +207,32 @@ interactions: content-length: '233' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Wed, 07 Jul 2021 21:58:21 GMT + date: Thu, 19 Aug 2021 23:07:53 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210605-1-ffd80f31-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: westus - x-ms-server-latency: '1678' + x-ms-server-latency: '2163' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/restore/ed500d55f77242e181b6ebfdd0d78b68/pending + url: https://mcpatinotesthsm.managedhsm.azure.net/restore/cdd0a70ccda04f609f10067e795471ac/pending - request: body: null headers: Accept: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b3 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://managedhsm/keys/selective-restore-test-key20e5150d?api-version=7.3-preview response: body: string: '{"error":{"code":"Conflict","message":"User triggered Restore operation - is in progress. Retry after the restore operation (Activity ID: 722927e8-df6e-11eb-abc8-000d3a30fa9f)"}}' + is in progress. Retry after the restore operation (Activity ID: 48fddaf8-0142-11ec-959f-00224806f988)"}}' headers: cache-control: no-cache content-length: '176' @@ -280,15 +252,15 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b3 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://managedhsm/keys/selective-restore-test-key20e5150d?api-version=7.3-preview response: body: - string: '{"attributes":{"created":1625695065,"enabled":true,"exportable":false,"recoverableDays":90,"recoveryLevel":"Recoverable+Purgeable","updated":1625695065},"deletedDate":1625695105,"key":{"e":"AQAB","key_ops":["wrapKey","encrypt","decrypt","unwrapKey","sign","verify"],"kid":"https://managedhsm/keys/selective-restore-test-key20e5150d/7ced054c63e508d43eb741d81a13ac56","kty":"RSA-HSM","n":"wbjS82bccP_ogiOpb--PiWffG686WBZUT7pM95teMoXK-IT4Y-ukDBwSLX0DYmqHpFbqPxw9_sywYxdjkWpwAMS-4__2XhrhAQDFzWG8nxJdcKS7Vw-ro7-qbpR3FXFTGcruhmrVezrPqNSJfeUt9Dcqm3rYg3GlqeuI48kSXSMdnYdqtUR6yR0NlaMWJnKEGKQNK4XvUkfrLRf3XlazSCmiqofWyBAEFm7IWCivEYmW8qhVGmfb_4gl_hQwSppOKRUiQczWUn6u3Y8KMG5t_4s17TLppi6xBtP_cIxLlptiLtGKPTtfhfLoCl_T7Rbsoyh9JzvLOJI-Y6CDyV59lQ"},"recoveryId":"https://managedhsm/deletedkeys/selective-restore-test-key20e5150d","scheduledPurgeDate":1633471105}' + string: '{"attributes":{"created":1629414444,"enabled":true,"exportable":false,"recoverableDays":7,"recoveryLevel":"CustomizedRecoverable+Purgeable","updated":1629414444},"deletedDate":1629414477,"key":{"e":"AQAB","key_ops":["wrapKey","encrypt","decrypt","unwrapKey","sign","verify"],"kid":"https://managedhsm/keys/selective-restore-test-key20e5150d/9f0cd5a79fa74e0b21a01883881edfe4","kty":"RSA-HSM","n":"muVbim-cu1RPqX3Duqx-se1wzedU2qmg2F2jqo-uAIfH8w_O75cl7GfRFltVg7RxxcEeyUKaT1DltMUg_wgm2P8yfrWykZUJOMEHG_Hv1_gI-BqzGexofkBYRbe9fC1lUM-WHd698JrL0-7843FZgRwsl6rIBN8S6N9JpKWKjmEfwMbyIVWT8yrr6qWsR01exP20cchAF0zQnuPDJSjzvMY2s99cMqmVFej5T-XaqmefFjjUJNdFFNttOnbkOdmRPrVEVakNZD21rgkSH_e0emlut1MMVvf6N2uJCrM0ED2LTiJoMHOUjJAoUcdliylluT9EhRQ3I4ulvTsk7uR0Cw"},"recoveryId":"https://managedhsm/deletedkeys/selective-restore-test-key20e5150d","scheduledPurgeDate":1630019277}' headers: cache-control: no-cache - content-length: '897' + content-length: '906' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 strict-transport-security: max-age=31536000; includeSubDomains @@ -296,7 +268,7 @@ interactions: x-frame-options: SAMEORIGIN x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: westus - x-ms-server-latency: '193' + x-ms-server-latency: '192' status: code: 200 message: OK @@ -307,24 +279,24 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b3 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://managedhsm/deletedkeys/selective-restore-test-key20e5150d?api-version=7.3-preview response: body: - string: '{"attributes":{"created":1625695065,"enabled":true,"exportable":false,"recoverableDays":90,"recoveryLevel":"Recoverable+Purgeable","updated":1625695065},"deletedDate":1625695105,"key":{"e":"AQAB","key_ops":["verify","sign","unwrapKey","encrypt","decrypt","wrapKey"],"kid":"https://managedhsm/keys/selective-restore-test-key20e5150d/7ced054c63e508d43eb741d81a13ac56","kty":"RSA-HSM","n":"wbjS82bccP_ogiOpb--PiWffG686WBZUT7pM95teMoXK-IT4Y-ukDBwSLX0DYmqHpFbqPxw9_sywYxdjkWpwAMS-4__2XhrhAQDFzWG8nxJdcKS7Vw-ro7-qbpR3FXFTGcruhmrVezrPqNSJfeUt9Dcqm3rYg3GlqeuI48kSXSMdnYdqtUR6yR0NlaMWJnKEGKQNK4XvUkfrLRf3XlazSCmiqofWyBAEFm7IWCivEYmW8qhVGmfb_4gl_hQwSppOKRUiQczWUn6u3Y8KMG5t_4s17TLppi6xBtP_cIxLlptiLtGKPTtfhfLoCl_T7Rbsoyh9JzvLOJI-Y6CDyV59lQ"},"recoveryId":"https://managedhsm/deletedkeys/selective-restore-test-key20e5150d","scheduledPurgeDate":1633471105}' + string: '{"attributes":{"created":1629414444,"enabled":true,"exportable":false,"recoverableDays":7,"recoveryLevel":"CustomizedRecoverable+Purgeable","updated":1629414444},"deletedDate":1629414477,"key":{"e":"AQAB","key_ops":["verify","sign","unwrapKey","encrypt","decrypt","wrapKey"],"kid":"https://managedhsm/keys/selective-restore-test-key20e5150d/9f0cd5a79fa74e0b21a01883881edfe4","kty":"RSA-HSM","n":"muVbim-cu1RPqX3Duqx-se1wzedU2qmg2F2jqo-uAIfH8w_O75cl7GfRFltVg7RxxcEeyUKaT1DltMUg_wgm2P8yfrWykZUJOMEHG_Hv1_gI-BqzGexofkBYRbe9fC1lUM-WHd698JrL0-7843FZgRwsl6rIBN8S6N9JpKWKjmEfwMbyIVWT8yrr6qWsR01exP20cchAF0zQnuPDJSjzvMY2s99cMqmVFej5T-XaqmefFjjUJNdFFNttOnbkOdmRPrVEVakNZD21rgkSH_e0emlut1MMVvf6N2uJCrM0ED2LTiJoMHOUjJAoUcdliylluT9EhRQ3I4ulvTsk7uR0Cw"},"recoveryId":"https://managedhsm/deletedkeys/selective-restore-test-key20e5150d","scheduledPurgeDate":1630019277}' headers: cache-control: no-cache - content-length: '897' + content-length: '906' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210605-1-ffd80f31-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: westus - x-ms-server-latency: '38' + x-ms-server-latency: '32' status: code: 200 message: OK @@ -335,7 +307,7 @@ interactions: Accept: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b3 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://managedhsm/deletedkeys/selective-restore-test-key20e5150d?api-version=7.3-preview response: @@ -351,7 +323,7 @@ interactions: x-frame-options: SAMEORIGIN x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: westus - x-ms-server-latency: '112' + x-ms-server-latency: '143' status: code: 204 message: '' diff --git a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_examples_administration.test_example_backup_and_restore.yaml b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_examples_administration.test_example_backup_and_restore.yaml index 468f1a40c990..e8e778c7fc24 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_examples_administration.test_example_backup_and_restore.yaml +++ b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_examples_administration.test_example_backup_and_restore.yaml @@ -13,9 +13,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://managedhsm/backup?api-version=7.2 + uri: https://managedhsm/backup?api-version=7.3-preview response: body: string: '' @@ -43,7 +43,8 @@ interactions: code: 401 message: Unauthorized - request: - body: '{"token": "redacted", "storageResourceUri": "https://storname.blob.core.windows.net/containerwex63hmamrkpesm"}' + body: '{"storageResourceUri": "https://storname.blob.core.windows.net/containerpekthqsz4pl7m6m", + "token": "redacted"}' headers: Accept: - application/json @@ -52,19 +53,19 @@ interactions: Connection: - keep-alive Content-Length: - - '235' + - '233' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://managedhsm/backup?api-version=7.2 + uri: https://managedhsm/backup?api-version=7.3-preview response: body: - string: '{"status":"InProgress","statusDetails":null,"error":null,"startTime":1623789423,"endTime":null,"jobId":"bb817c41fcea4e0dafc2bf1fa3e059c0","azureStorageBlobContainerUri":null}' + string: '{"status":"InProgress","statusDetails":null,"error":null,"startTime":1629414756,"endTime":null,"jobId":"2f4bff5f589643d1b923b338ee02b300","azureStorageBlobContainerUri":null}' headers: azure-asyncoperation: - - https://managedhsm/backup/bb817c41fcea4e0dafc2bf1fa3e059c0/pending + - https://managedhsm/backup/2f4bff5f589643d1b923b338ee02b300/pending cache-control: - no-cache content-length: @@ -74,7 +75,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Tue, 15 Jun 2021 20:37:03 GMT + - Thu, 19 Aug 2021 23:12:36 GMT server: - Kestrel strict-transport-security: @@ -86,9 +87,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - canadacentral + - westus x-ms-server-latency: - - '2542' + - '2323' status: code: 202 message: '' @@ -102,12 +103,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/backup/bb817c41fcea4e0dafc2bf1fa3e059c0/pending + uri: https://managedhsm/backup/2f4bff5f589643d1b923b338ee02b300/pending response: body: - string: '{"azureStorageBlobContainerUri":"https://storname.blob.core.windows.net/containerwex63hmamrkpesm/mhsm-mcpatinotesthsm-2021061520370374","endTime":1623789433,"error":null,"jobId":"bb817c41fcea4e0dafc2bf1fa3e059c0","startTime":1623789423,"status":"Succeeded","statusDetails":null}' + string: '{"azureStorageBlobContainerUri":"https://storname.blob.core.windows.net/containerpekthqsz4pl7m6m/mhsm-mcpatinotesthsm-2021081923123671","endTime":1629414764,"error":null,"jobId":"2f4bff5f589643d1b923b338ee02b300","startTime":1629414756,"status":"Succeeded","statusDetails":null}' headers: cache-control: - no-cache @@ -118,7 +119,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Tue, 15 Jun 2021 20:37:15 GMT + - Thu, 19 Aug 2021 23:12:48 GMT server: - Kestrel strict-transport-security: @@ -128,19 +129,19 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210520-1-d6634624-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - canadacentral + - westus x-ms-server-latency: - - '2348' + - '1701' status: code: 200 message: OK - request: - body: '{"sasTokenParameters": {"token": "redacted", "storageResourceUri": "https://storname.blob.core.windows.net/containerwex63hmamrkpesm"}, - "folderToRestore": "mhsm-mcpatinotesthsm-2021061520370374"}' + body: '{"sasTokenParameters": {"storageResourceUri": "https://storname.blob.core.windows.net/containerpekthqsz4pl7m6m", + "token": "redacted"}, "folderToRestore": "mhsm-mcpatinotesthsm-2021081923123671"}' headers: Accept: - application/json @@ -149,19 +150,19 @@ interactions: Connection: - keep-alive Content-Length: - - '319' + - '317' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT - uri: https://managedhsm/restore?api-version=7.2 + uri: https://managedhsm/restore?api-version=7.3-preview response: body: - string: '{"endTime":null,"error":null,"jobId":"d085c52857d54d90b3c216b8d20355ca","startTime":1623789438,"status":"InProgress","statusDetails":null}' + string: '{"endTime":null,"error":null,"jobId":"b92c0a3ac40449bba50225b08c896ae3","startTime":1629414770,"status":"InProgress","statusDetails":null}' headers: azure-asyncoperation: - - https://managedhsm/restore/d085c52857d54d90b3c216b8d20355ca/pending + - https://managedhsm/restore/b92c0a3ac40449bba50225b08c896ae3/pending cache-control: - no-cache content-length: @@ -171,7 +172,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Tue, 15 Jun 2021 20:37:18 GMT + - Thu, 19 Aug 2021 23:12:50 GMT server: - Kestrel strict-transport-security: @@ -183,9 +184,9 @@ interactions: x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - canadacentral + - westus x-ms-server-latency: - - '2508' + - '1964' status: code: 202 message: '' @@ -199,58 +200,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/restore/d085c52857d54d90b3c216b8d20355ca/pending + uri: https://managedhsm/restore/b92c0a3ac40449bba50225b08c896ae3/pending response: body: - string: '{"endTime":null,"error":null,"jobId":"d085c52857d54d90b3c216b8d20355ca","startTime":1623789438,"status":"InProgress","statusDetails":null}' - headers: - cache-control: - - no-cache - content-length: - - '138' - content-security-policy: - - default-src 'self' - content-type: - - application/json; charset=utf-8 - date: - - Tue, 15 Jun 2021 20:37:30 GMT - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - x-frame-options: - - SAMEORIGIN - x-ms-build-version: - - 1.0.20210520-1-d6634624-develop - x-ms-keyvault-network-info: - - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: - - canadacentral - x-ms-server-latency: - - '2349' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://managedhsm/restore/d085c52857d54d90b3c216b8d20355ca/pending - response: - body: - string: '{"endTime":1623789455,"error":null,"jobId":"d085c52857d54d90b3c216b8d20355ca","startTime":1623789438,"status":"Succeeded","statusDetails":null}' + string: '{"endTime":1629414781,"error":null,"jobId":"b92c0a3ac40449bba50225b08c896ae3","startTime":1629414770,"status":"Succeeded","statusDetails":null}' headers: cache-control: - no-cache @@ -261,7 +216,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Tue, 15 Jun 2021 20:37:38 GMT + - Thu, 19 Aug 2021 23:13:01 GMT server: - Kestrel strict-transport-security: @@ -271,13 +226,13 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210520-1-d6634624-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - - canadacentral + - westus x-ms-server-latency: - - '2289' + - '1701' status: code: 200 message: OK diff --git a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_examples_administration.test_example_selective_key_restore.yaml b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_examples_administration.test_example_selective_key_restore.yaml index 36a2c0329de6..ce90ff450dd5 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_examples_administration.test_example_selective_key_restore.yaml +++ b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_examples_administration.test_example_selective_key_restore.yaml @@ -13,7 +13,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b3 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://managedhsm/keys/selective-restore-test-key45031a2b/create?api-version=7.3-preview response: @@ -38,7 +38,7 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-server-latency: - - '1' + - '0' status: code: 401 message: Unauthorized @@ -56,17 +56,17 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b3 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://managedhsm/keys/selective-restore-test-key45031a2b/create?api-version=7.3-preview response: body: - string: '{"attributes":{"created":1625695228,"enabled":true,"exportable":false,"recoverableDays":90,"recoveryLevel":"Recoverable+Purgeable","updated":1625695228},"key":{"e":"AQAB","key_ops":["wrapKey","decrypt","encrypt","unwrapKey","sign","verify"],"kid":"https://managedhsm/keys/selective-restore-test-key45031a2b/d47a2215690841668194d0ea957d2aa7","kty":"RSA-HSM","n":"qJ9i5U07EfA5BDdKl-9Js_xHv1okv6gw3lEtH32-YkaUk5_HxH8WAxj3K8i8Gvb1VUNUONMB815NtlDLAl56g6hVOxksqub1QXmNKzCL2kPK23pMo4iz6MCPA1oO2-JJbc5jL1Ja99VQ0wrjm51Ap-5WkDmWg--RtI6shZSPzgPE0p8ar1uKepZKDNxi9EtEODHZGJCtvTUZcAZY92Vet-o8olKbfmHnwdX98Wbn4rI-Sa46CBRBOHZN1GHQw2vxVRWzR8EorJnZn0D9p8mdGJQk5kCgIeyJxn9_KYXeBr5svAr2DzD1AeXJOskunCaMKAYLYTSzG3QDpMNIY4UVUQ"}}' + string: '{"attributes":{"created":1629414807,"enabled":true,"exportable":false,"recoverableDays":7,"recoveryLevel":"CustomizedRecoverable+Purgeable","updated":1629414807},"key":{"e":"AQAB","key_ops":["wrapKey","decrypt","encrypt","unwrapKey","sign","verify"],"kid":"https://managedhsm/keys/selective-restore-test-key45031a2b/49678f1d10ba0de60078a3916f08b8bf","kty":"RSA-HSM","n":"mDeF_-APNOAZ1a9BiANg1DXOo3nuhV7XoYg2Mu7ubxBreu1BR7MWydvrRPdvLFn1kFUgkDLZOsDc25JJ7slAJN_mxGQrpfzQb3utm-NjEI4APVVYVK0rsjVZ4fUG1r8DLSp5ZCz4JakMn8DtRaUyGiFjL9KhxtWXIQ7L1_T5Jgj0p7yM1CCNFdChTtBhq66PM7y3PsGZViRmwZ6Xk6NVERc_TlLOLaCvyMrY1AUa3ZsqZwmpEcn6fbfcRy2er_W1VSWWZBEqKZDa-8NxhFSI6K4d-osazNe14zA1V9sYNVPYNqJrK6nHzxcJQ4rBChpsuuEyaLvgV2BcP34zQFZoEQ"}}' headers: cache-control: - no-cache content-length: - - '733' + - '742' content-security-policy: - default-src 'self' content-type: @@ -82,7 +82,7 @@ interactions: x-ms-keyvault-region: - westus x-ms-server-latency: - - '216' + - '222' status: code: 200 message: OK @@ -100,9 +100,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://managedhsm/backup?api-version=7.2 + uri: https://managedhsm/backup?api-version=7.3-preview response: body: string: '' @@ -125,12 +125,12 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-server-latency: - - '0' + - '1' status: code: 401 message: Unauthorized - request: - body: '{"storageResourceUri": "https://storname.blob.core.windows.net/containerokmfum4m5d7wvjs", + body: '{"storageResourceUri": "https://storname.blob.core.windows.net/container3kwejjq3ojbf7tk", "token": "redacted"}' headers: Accept: @@ -140,19 +140,19 @@ interactions: Connection: - keep-alive Content-Length: - - '233' + - '235' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://managedhsm/backup?api-version=7.2 + uri: https://managedhsm/backup?api-version=7.3-preview response: body: - string: '{"status":"InProgress","statusDetails":null,"error":null,"startTime":1625695231,"endTime":null,"jobId":"23cd6741d96a4aeaad0adbeb7ee787be","azureStorageBlobContainerUri":null}' + string: '{"status":"InProgress","statusDetails":null,"error":null,"startTime":1629414810,"endTime":null,"jobId":"bae1825ef9364dcebc08c2e8fc94040b","azureStorageBlobContainerUri":null}' headers: azure-asyncoperation: - - https://managedhsm/backup/23cd6741d96a4aeaad0adbeb7ee787be/pending + - https://managedhsm/backup/bae1825ef9364dcebc08c2e8fc94040b/pending cache-control: - no-cache content-length: @@ -162,7 +162,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 07 Jul 2021 22:00:31 GMT + - Thu, 19 Aug 2021 23:13:30 GMT server: - Kestrel strict-transport-security: @@ -176,7 +176,7 @@ interactions: x-ms-keyvault-region: - westus x-ms-server-latency: - - '2031' + - '2070' status: code: 202 message: '' @@ -190,12 +190,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/backup/23cd6741d96a4aeaad0adbeb7ee787be/pending + uri: https://managedhsm/backup/bae1825ef9364dcebc08c2e8fc94040b/pending response: body: - string: '{"azureStorageBlobContainerUri":"https://storname.blob.core.windows.net/containerokmfum4m5d7wvjs/mhsm-mcpatinotesthsm-2021070722003107","endTime":1625695238,"error":null,"jobId":"23cd6741d96a4aeaad0adbeb7ee787be","startTime":1625695231,"status":"Succeeded","statusDetails":null}' + string: '{"azureStorageBlobContainerUri":"https://storname.blob.core.windows.net/container3kwejjq3ojbf7tk/mhsm-mcpatinotesthsm-2021081923133081","endTime":1629414818,"error":null,"jobId":"bae1825ef9364dcebc08c2e8fc94040b","startTime":1629414810,"status":"Succeeded","statusDetails":null}' headers: cache-control: - no-cache @@ -206,7 +206,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 07 Jul 2021 22:00:42 GMT + - Thu, 19 Aug 2021 23:13:42 GMT server: - Kestrel strict-transport-security: @@ -216,19 +216,19 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210605-1-ffd80f31-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - westus x-ms-server-latency: - - '1629' + - '1745' status: code: 200 message: OK - request: - body: '{"sasTokenParameters": {"storageResourceUri": "https://storname.blob.core.windows.net/containerokmfum4m5d7wvjs", - "token": "redacted"}, "folder": "mhsm-mcpatinotesthsm-2021070722003107"}' + body: '{"sasTokenParameters": {"storageResourceUri": "https://storname.blob.core.windows.net/container3kwejjq3ojbf7tk", + "token": "redacted"}, "folder": "mhsm-mcpatinotesthsm-2021081923133081"}' headers: Accept: - application/json @@ -237,19 +237,19 @@ interactions: Connection: - keep-alive Content-Length: - - '308' + - '310' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT - uri: https://managedhsm/keys/selective-restore-test-key45031a2b/restore?api-version=7.2 + uri: https://managedhsm/keys/selective-restore-test-key45031a2b/restore?api-version=7.3-preview response: body: - string: '{"endTime":null,"error":null,"jobId":"c57441368ef44d3a8a2dcfcc0a5c3102","startTime":1625695244,"status":"InProgress","statusDetails":null}' + string: '{"endTime":null,"error":null,"jobId":"098b3bfaf4e942168c78ebd963d3cad2","startTime":1629414824,"status":"InProgress","statusDetails":null}' headers: azure-asyncoperation: - - https://managedhsm/restore/c57441368ef44d3a8a2dcfcc0a5c3102/pending + - https://managedhsm/restore/098b3bfaf4e942168c78ebd963d3cad2/pending cache-control: - no-cache content-length: @@ -259,7 +259,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 07 Jul 2021 22:00:44 GMT + - Thu, 19 Aug 2021 23:13:44 GMT server: - Kestrel strict-transport-security: @@ -273,7 +273,7 @@ interactions: x-ms-keyvault-region: - westus x-ms-server-latency: - - '1925' + - '2303' status: code: 202 message: '' @@ -287,12 +287,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/restore/c57441368ef44d3a8a2dcfcc0a5c3102/pending + uri: https://managedhsm/restore/098b3bfaf4e942168c78ebd963d3cad2/pending response: body: - string: '{"endTime":null,"error":null,"jobId":"c57441368ef44d3a8a2dcfcc0a5c3102","startTime":1625695244,"status":"InProgress","statusDetails":null}' + string: '{"endTime":null,"error":null,"jobId":"098b3bfaf4e942168c78ebd963d3cad2","startTime":1629414824,"status":"InProgress","statusDetails":null}' headers: cache-control: - no-cache @@ -303,7 +303,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 07 Jul 2021 22:00:56 GMT + - Thu, 19 Aug 2021 23:13:56 GMT server: - Kestrel strict-transport-security: @@ -313,13 +313,13 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210605-1-ffd80f31-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - westus x-ms-server-latency: - - '1778' + - '1810' status: code: 200 message: OK @@ -333,12 +333,12 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/restore/c57441368ef44d3a8a2dcfcc0a5c3102/pending + uri: https://managedhsm/restore/098b3bfaf4e942168c78ebd963d3cad2/pending response: body: - string: '{"endTime":1625695260,"error":null,"jobId":"c57441368ef44d3a8a2dcfcc0a5c3102","startTime":1625695244,"status":"Succeeded","statusDetails":"Number + string: '{"endTime":1629414840,"error":null,"jobId":"098b3bfaf4e942168c78ebd963d3cad2","startTime":1629414824,"status":"Succeeded","statusDetails":"Number of successful key versions restored: 0, Number of key versions could not overwrite: 2"}' headers: @@ -351,7 +351,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 07 Jul 2021 22:01:03 GMT + - Thu, 19 Aug 2021 23:14:03 GMT server: - Kestrel strict-transport-security: @@ -361,13 +361,13 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210605-1-ffd80f31-develop + - 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: - conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: - westus x-ms-server-latency: - - '1954' + - '1914' status: code: 200 message: OK diff --git a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_examples_administration_async.test_example_backup_and_restore.yaml b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_examples_administration_async.test_example_backup_and_restore.yaml index bccbc4df2b98..ff7a01680272 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_examples_administration_async.test_example_backup_and_restore.yaml +++ b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_examples_administration_async.test_example_backup_and_restore.yaml @@ -9,9 +9,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://managedhsm/backup?api-version=7.2 + uri: https://managedhsm/backup?api-version=7.3-preview response: body: string: '' @@ -25,162 +25,163 @@ interactions: resource="https://managedhsm.azure.net" x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-server-latency: '0' + x-ms-server-latency: '1' status: code: 401 message: Unauthorized - url: https://mcpatinotesthsm.managedhsm.azure.net/backup?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/backup?api-version=7.3-preview - request: - body: '{"token": "redacted", "storageResourceUri": "https://storname.blob.core.windows.net/containertpuij7qwbd5ryzl"}' + body: '{"storageResourceUri": "https://storname.blob.core.windows.net/containervg2tfdabj4opa4p", + "token": "redacted"}' headers: Accept: - application/json Content-Length: - - '235' + - '233' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://managedhsm/backup?api-version=7.2 + uri: https://managedhsm/backup?api-version=7.3-preview response: body: - string: '{"status":"InProgress","statusDetails":null,"error":null,"startTime":1623789496,"endTime":null,"jobId":"3561286085204770977885ced9a31fb5","azureStorageBlobContainerUri":null}' + string: '{"status":"InProgress","statusDetails":null,"error":null,"startTime":1629414881,"endTime":null,"jobId":"06cc4cc7355546d3a04946df11ceb76f","azureStorageBlobContainerUri":null}' headers: - azure-asyncoperation: https://managedhsm/backup/3561286085204770977885ced9a31fb5/pending + azure-asyncoperation: https://managedhsm/backup/06cc4cc7355546d3a04946df11ceb76f/pending cache-control: no-cache content-length: '174' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Tue, 15 Jun 2021 20:38:16 GMT + date: Thu, 19 Aug 2021 23:14:40 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: canadacentral - x-ms-server-latency: '2590' + x-ms-keyvault-region: westus + x-ms-server-latency: '1851' status: code: 202 message: '' - url: https://mcpatinotesthsm.managedhsm.azure.net/backup?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/backup?api-version=7.3-preview - request: body: null headers: User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/backup/3561286085204770977885ced9a31fb5/pending + uri: https://managedhsm/backup/06cc4cc7355546d3a04946df11ceb76f/pending response: body: - string: '{"azureStorageBlobContainerUri":"https://storname.blob.core.windows.net/containertpuij7qwbd5ryzl/mhsm-mcpatinotesthsm-2021061520381674","endTime":1623789505,"error":null,"jobId":"3561286085204770977885ced9a31fb5","startTime":1623789496,"status":"Succeeded","statusDetails":null}' + string: '{"azureStorageBlobContainerUri":"https://storname.blob.core.windows.net/containervg2tfdabj4opa4p/mhsm-mcpatinotesthsm-2021081923144106","endTime":1629414889,"error":null,"jobId":"06cc4cc7355546d3a04946df11ceb76f","startTime":1629414881,"status":"Succeeded","statusDetails":null}' headers: cache-control: no-cache content-length: '294' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Tue, 15 Jun 2021 20:38:29 GMT + date: Thu, 19 Aug 2021 23:14:52 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210520-1-d6634624-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: canadacentral - x-ms-server-latency: '2567' + x-ms-keyvault-region: westus + x-ms-server-latency: '1702' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/backup/3561286085204770977885ced9a31fb5/pending + url: https://mcpatinotesthsm.managedhsm.azure.net/backup/06cc4cc7355546d3a04946df11ceb76f/pending - request: - body: '{"folderToRestore": "mhsm-mcpatinotesthsm-2021061520381674", "sasTokenParameters": - {"token": "redacted", "storageResourceUri": "https://storname.blob.core.windows.net/containertpuij7qwbd5ryzl"}}' + body: '{"sasTokenParameters": {"storageResourceUri": "https://storname.blob.core.windows.net/containervg2tfdabj4opa4p", + "token": "redacted"}, "folderToRestore": "mhsm-mcpatinotesthsm-2021081923144106"}' headers: Accept: - application/json Content-Length: - - '319' + - '317' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT - uri: https://managedhsm/restore?api-version=7.2 + uri: https://managedhsm/restore?api-version=7.3-preview response: body: - string: '{"endTime":null,"error":null,"jobId":"5d26d34875964b1c9d400c25b82a5bf4","startTime":1623789511,"status":"InProgress","statusDetails":null}' + string: '{"endTime":null,"error":null,"jobId":"e008a9bd665c49db9bbc3c195520356b","startTime":1629414894,"status":"InProgress","statusDetails":null}' headers: - azure-asyncoperation: https://managedhsm/restore/5d26d34875964b1c9d400c25b82a5bf4/pending + azure-asyncoperation: https://managedhsm/restore/e008a9bd665c49db9bbc3c195520356b/pending cache-control: no-cache content-length: '138' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Tue, 15 Jun 2021 20:38:31 GMT + date: Thu, 19 Aug 2021 23:14:54 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: canadacentral - x-ms-server-latency: '2564' + x-ms-keyvault-region: westus + x-ms-server-latency: '1905' status: code: 202 message: '' - url: https://mcpatinotesthsm.managedhsm.azure.net/restore?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/restore?api-version=7.3-preview - request: body: null headers: User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/restore/5d26d34875964b1c9d400c25b82a5bf4/pending + uri: https://managedhsm/restore/e008a9bd665c49db9bbc3c195520356b/pending response: body: - string: '{"endTime":null,"error":null,"jobId":"5d26d34875964b1c9d400c25b82a5bf4","startTime":1623789511,"status":"InProgress","statusDetails":null}' + string: '{"endTime":null,"error":null,"jobId":"e008a9bd665c49db9bbc3c195520356b","startTime":1629414894,"status":"InProgress","statusDetails":null}' headers: cache-control: no-cache content-length: '138' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Tue, 15 Jun 2021 20:38:43 GMT + date: Thu, 19 Aug 2021 23:15:06 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210520-1-d6634624-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: canadacentral - x-ms-server-latency: '2203' + x-ms-keyvault-region: westus + x-ms-server-latency: '1807' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/restore/5d26d34875964b1c9d400c25b82a5bf4/pending + url: https://mcpatinotesthsm.managedhsm.azure.net/restore/e008a9bd665c49db9bbc3c195520356b/pending - request: body: null headers: User-Agent: - - azsdk-python-keyvault-administration/4.0.0b4 Python/3.5.3 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/restore/5d26d34875964b1c9d400c25b82a5bf4/pending + uri: https://managedhsm/restore/e008a9bd665c49db9bbc3c195520356b/pending response: body: - string: '{"endTime":1623789528,"error":null,"jobId":"5d26d34875964b1c9d400c25b82a5bf4","startTime":1623789511,"status":"Succeeded","statusDetails":null}' + string: '{"endTime":1629414910,"error":null,"jobId":"e008a9bd665c49db9bbc3c195520356b","startTime":1629414894,"status":"Succeeded","statusDetails":null}' headers: cache-control: no-cache content-length: '143' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Tue, 15 Jun 2021 20:38:53 GMT + date: Thu, 19 Aug 2021 23:15:13 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210520-1-d6634624-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; - x-ms-keyvault-region: canadacentral - x-ms-server-latency: '3838' + x-ms-keyvault-region: westus + x-ms-server-latency: '2262' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/restore/5d26d34875964b1c9d400c25b82a5bf4/pending + url: https://mcpatinotesthsm.managedhsm.azure.net/restore/e008a9bd665c49db9bbc3c195520356b/pending version: 1 diff --git a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_examples_administration_async.test_example_selective_key_restore.yaml b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_examples_administration_async.test_example_selective_key_restore.yaml index 5dadace0ecba..96dc6cf2e6c3 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_examples_administration_async.test_example_selective_key_restore.yaml +++ b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_examples_administration_async.test_example_selective_key_restore.yaml @@ -9,7 +9,7 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b3 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://managedhsm/keys/selective-restore-test-keyeb471ca8/create?api-version=7.3-preview response: @@ -25,7 +25,7 @@ interactions: resource="https://managedhsm.azure.net" x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-server-latency: '1' + x-ms-server-latency: '0' status: code: 401 message: Unauthorized @@ -40,15 +40,15 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-keys/4.5.0b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-keys/4.5.0b3 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST uri: https://managedhsm/keys/selective-restore-test-keyeb471ca8/create?api-version=7.3-preview response: body: - string: '{"attributes":{"created":1625695300,"enabled":true,"exportable":false,"recoverableDays":90,"recoveryLevel":"Recoverable+Purgeable","updated":1625695300},"key":{"e":"AQAB","key_ops":["wrapKey","decrypt","encrypt","unwrapKey","sign","verify"],"kid":"https://managedhsm/keys/selective-restore-test-keyeb471ca8/731603c1040b411d29262702acb5ab62","kty":"RSA-HSM","n":"i3xLnsDyZ5UPUjt7cClCkWlC4kWtczpxA_gyqItgyYOj2Fpq-UMWVaYRu1-bs4fQ239Z0Evh42xa5B455ltVR4YEt7_ekTPmefQQteFIP1TZuDbjTyYFkC0cDTVGcSizcCbl6HG7ftVGPkSG9cNyUB1IPZAXeoYsBlrlRSKL4T4N1VWj2_Rckxb1I_iPy-14SDqdxt0eKBszz2Geq8tETue7VxU4VXg_FpoFU0PFEjmd21cpAy70yE2mBYX5n0OAuBKNfeDtZyImEME6Zj2b9qj9tl7VrgxxpxIsa9UcegZkeyW6pn_3e5tcqfFaWld1g01qRRF90UD9Wgx4ekDG4Q"}}' + string: '{"attributes":{"created":1629414938,"enabled":true,"exportable":false,"recoverableDays":7,"recoveryLevel":"CustomizedRecoverable+Purgeable","updated":1629414938},"key":{"e":"AQAB","key_ops":["wrapKey","decrypt","encrypt","unwrapKey","sign","verify"],"kid":"https://managedhsm/keys/selective-restore-test-keyeb471ca8/8729071c719f0ae08489c490c0fb047c","kty":"RSA-HSM","n":"p6q9Arlejw8F-94raadJIqLUfPpMgtF2ptmUcwilMnfdudLWNeIWhb8NMotd896Yg71AUPpfXLOewKJAhuZKO60DM0KvuLxNpBZ5uMdrZoimnRgkpIO8FMuXrHSESYpdKQHH8rUgxHkmxOvqrf4pcYJ4EZcqRXPBrkIpJgb8hN6YlNhztYEisl9plFhdcQiYGHR3OVRMWMUfB6Sg4M1RSBax2NiZS4UjZp5J2vXubFjZDa5Q9anD0zgakf8wFF1zkoZ_A7SYNPYXWPfeTFGWL6aXgYct00a8uQCtxVE2Q_Ys3fGeXKk8B-hYydvteMhHl4eYVWZ7dcu8iQuze8J97Q"}}' headers: cache-control: no-cache - content-length: '733' + content-length: '742' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 strict-transport-security: max-age=31536000; includeSubDomains @@ -56,7 +56,7 @@ interactions: x-frame-options: SAMEORIGIN x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: westus - x-ms-server-latency: '239' + x-ms-server-latency: '250' status: code: 200 message: OK @@ -71,9 +71,9 @@ interactions: Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://managedhsm/backup?api-version=7.2 + uri: https://managedhsm/backup?api-version=7.3-preview response: body: string: '' @@ -87,147 +87,147 @@ interactions: resource="https://managedhsm.azure.net" x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-server-latency: '1' + x-ms-server-latency: '0' status: code: 401 message: Unauthorized - url: https://mcpatinotesthsm.managedhsm.azure.net/backup?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/backup?api-version=7.3-preview - request: - body: '{"storageResourceUri": "https://storname.blob.core.windows.net/containerf5uqpjnhmuspogs", + body: '{"storageResourceUri": "https://storname.blob.core.windows.net/containerbomsi37zaxvlzit", "token": "redacted"}' headers: Accept: - application/json Content-Length: - - '239' + - '235' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: POST - uri: https://managedhsm/backup?api-version=7.2 + uri: https://managedhsm/backup?api-version=7.3-preview response: body: - string: '{"status":"InProgress","statusDetails":null,"error":null,"startTime":1625695302,"endTime":null,"jobId":"88a3e7ede7dd4b119387fe91b464ca50","azureStorageBlobContainerUri":null}' + string: '{"status":"InProgress","statusDetails":null,"error":null,"startTime":1629414940,"endTime":null,"jobId":"70c08efbc25447bfb3bada3d69dd9db5","azureStorageBlobContainerUri":null}' headers: - azure-asyncoperation: https://managedhsm/backup/88a3e7ede7dd4b119387fe91b464ca50/pending + azure-asyncoperation: https://managedhsm/backup/70c08efbc25447bfb3bada3d69dd9db5/pending cache-control: no-cache content-length: '174' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Wed, 07 Jul 2021 22:01:42 GMT + date: Thu, 19 Aug 2021 23:15:41 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: westus - x-ms-server-latency: '1984' + x-ms-server-latency: '3244' status: code: 202 message: '' - url: https://mcpatinotesthsm.managedhsm.azure.net/backup?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/backup?api-version=7.3-preview - request: body: null headers: User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/backup/88a3e7ede7dd4b119387fe91b464ca50/pending + uri: https://managedhsm/backup/70c08efbc25447bfb3bada3d69dd9db5/pending response: body: - string: '{"azureStorageBlobContainerUri":"https://storname.blob.core.windows.net/containerf5uqpjnhmuspogs/mhsm-mcpatinotesthsm-2021070722014288","endTime":1625695311,"error":null,"jobId":"88a3e7ede7dd4b119387fe91b464ca50","startTime":1625695302,"status":"Succeeded","statusDetails":null}' + string: '{"azureStorageBlobContainerUri":"https://storname.blob.core.windows.net/containerbomsi37zaxvlzit/mhsm-mcpatinotesthsm-2021081923154070","endTime":1629414948,"error":null,"jobId":"70c08efbc25447bfb3bada3d69dd9db5","startTime":1629414940,"status":"Succeeded","statusDetails":null}' headers: cache-control: no-cache content-length: '294' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Wed, 07 Jul 2021 22:01:54 GMT + date: Thu, 19 Aug 2021 23:15:53 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210605-1-ffd80f31-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: westus - x-ms-server-latency: '1730' + x-ms-server-latency: '1635' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/backup/88a3e7ede7dd4b119387fe91b464ca50/pending + url: https://mcpatinotesthsm.managedhsm.azure.net/backup/70c08efbc25447bfb3bada3d69dd9db5/pending - request: - body: '{"sasTokenParameters": {"storageResourceUri": "https://storname.blob.core.windows.net/containerf5uqpjnhmuspogs", - "token": "redacted"}, "folder": "mhsm-mcpatinotesthsm-2021070722014288"}' + body: '{"sasTokenParameters": {"storageResourceUri": "https://storname.blob.core.windows.net/containerbomsi37zaxvlzit", + "token": "redacted"}, "folder": "mhsm-mcpatinotesthsm-2021081923154070"}' headers: Accept: - application/json Content-Length: - - '314' + - '310' Content-Type: - application/json User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: PUT - uri: https://managedhsm/keys/selective-restore-test-keyeb471ca8/restore?api-version=7.2 + uri: https://managedhsm/keys/selective-restore-test-keyeb471ca8/restore?api-version=7.3-preview response: body: - string: '{"endTime":null,"error":null,"jobId":"0c76f68233da4b5da214d844695390ee","startTime":1625695316,"status":"InProgress","statusDetails":null}' + string: '{"endTime":null,"error":null,"jobId":"000fa9d4c2cf4c60bf21beedacc57e97","startTime":1629414955,"status":"InProgress","statusDetails":null}' headers: - azure-asyncoperation: https://managedhsm/restore/0c76f68233da4b5da214d844695390ee/pending + azure-asyncoperation: https://managedhsm/restore/000fa9d4c2cf4c60bf21beedacc57e97/pending cache-control: no-cache content-length: '138' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Wed, 07 Jul 2021 22:01:55 GMT + date: Thu, 19 Aug 2021 23:15:55 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: westus - x-ms-server-latency: '1976' + x-ms-server-latency: '2070' status: code: 202 message: '' - url: https://mcpatinotesthsm.managedhsm.azure.net/keys/selective-restore-test-keyeb471ca8/restore?api-version=7.2 + url: https://mcpatinotesthsm.managedhsm.azure.net/keys/selective-restore-test-keyeb471ca8/restore?api-version=7.3-preview - request: body: null headers: User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/restore/0c76f68233da4b5da214d844695390ee/pending + uri: https://managedhsm/restore/000fa9d4c2cf4c60bf21beedacc57e97/pending response: body: - string: '{"endTime":null,"error":null,"jobId":"0c76f68233da4b5da214d844695390ee","startTime":1625695316,"status":"InProgress","statusDetails":null}' + string: '{"endTime":null,"error":null,"jobId":"000fa9d4c2cf4c60bf21beedacc57e97","startTime":1629414955,"status":"InProgress","statusDetails":null}' headers: cache-control: no-cache content-length: '138' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Wed, 07 Jul 2021 22:02:08 GMT + date: Thu, 19 Aug 2021 23:16:07 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210605-1-ffd80f31-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: westus - x-ms-server-latency: '1838' + x-ms-server-latency: '1680' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/restore/0c76f68233da4b5da214d844695390ee/pending + url: https://mcpatinotesthsm.managedhsm.azure.net/restore/000fa9d4c2cf4c60bf21beedacc57e97/pending - request: body: null headers: User-Agent: - - azsdk-python-keyvault-administration/4.0.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + - azsdk-python-keyvault-administration/4.0.1b1 Python/3.9.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://managedhsm/restore/0c76f68233da4b5da214d844695390ee/pending + uri: https://managedhsm/restore/000fa9d4c2cf4c60bf21beedacc57e97/pending response: body: - string: '{"endTime":1625695332,"error":null,"jobId":"0c76f68233da4b5da214d844695390ee","startTime":1625695316,"status":"Succeeded","statusDetails":"Number + string: '{"endTime":1629414971,"error":null,"jobId":"000fa9d4c2cf4c60bf21beedacc57e97","startTime":1629414955,"status":"Succeeded","statusDetails":"Number of successful key versions restored: 0, Number of key versions could not overwrite: 2"}' headers: @@ -235,17 +235,17 @@ interactions: content-length: '233' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 - date: Wed, 07 Jul 2021 22:02:15 GMT + date: Thu, 19 Aug 2021 23:16:14 GMT server: Kestrel strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210605-1-ffd80f31-develop + x-ms-build-version: 1.0.20210712-1-6ae2ae9e-develop x-ms-keyvault-network-info: conn_type=Ipv4;addr=172.92.159.124;act_addr_fam=Ipv4; x-ms-keyvault-region: westus - x-ms-server-latency: '1606' + x-ms-server-latency: '2707' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/restore/0c76f68233da4b5da214d844695390ee/pending + url: https://mcpatinotesthsm.managedhsm.azure.net/restore/000fa9d4c2cf4c60bf21beedacc57e97/pending version: 1